chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #910: Failure with many arguments on amd64


From: Chicken Trac
Subject: Re: [Chicken-janitors] #910: Failure with many arguments on amd64
Date: Sun, 02 Sep 2012 11:40:46 -0000

#910: Failure with many arguments on amd64
-----------------------------+----------------------------------------------
  Reporter:  sjamaan         |       Owner:  felix   
      Type:  defect          |      Status:  assigned
  Priority:  critical        |   Milestone:  4.9.0   
 Component:  core libraries  |     Version:  4.8.x   
Resolution:                  |    Keywords:          
-----------------------------+----------------------------------------------

Comment(by felix):

 No, `C_do_apply` is not involved. But `C_restore_rest` would overflow the
 temporary stack. But the crash happens earlier - already when doing the
 call (or directly when entering the procedure). I get (like you) all sorts
 of weird segfaults and illegal instruction errors. This looks the call is
 already exceeding the allowed parameter limit (AFAIK, the C standard just
 allows a handful, passing a very large number of arguments to a C function
 may result in undefined behaviour), particularly because it calls a vararg
 function. This seems simply to be a limitation of the x86-64 ABI.

 I see no fix besides introducing a static limit, in other words: give a
 warning or error when compiling a call with more than (say) 1024
 arguments.

 I also think this is not relevant to 4.8.0, as there isn't much that can
 be done about it.

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/910#comment:7>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]