- May 06, 2004
-
-
rtoy authored
the following enters an infinite recursion if it gets compiled two times: (def-alien-type nil (struct foo (f (* (function (values) (* (struct foo))))))) During the second compile, the existing type is compared with the to be defined type. This enters a recursion because (struct foo) is recursive and the comparison is done again. The current code has a "depth" counter and simply returns true if it exceeds 10. But it only works for pointers to records and loops forever for function pointers. The patch below should fix this. It keeps a hashtable of the already compared types and returns true if a pair is already in the hashtable.
-
- May 19, 2003
-
-
toy authored
The lisp-fn takes 2 fixnum args, not 1. (Noted by Eric Marsden.)
-
- May 15, 2003
-
-
toy authored
o Add support for doc-strings and declarations for callback functions. The declarations apply to the entire callback function, not just to the body. o Remove an unneeded sap+ when returning the value from the callback.
-
- May 14, 2003
-
-
toy authored
-
toy authored
code/alieneval.lisp: o Main callback support code/exports.lisp: o Export DEF-CALLBACK and CALLBACK. o Export CALLBACK-ACCESSOR-FORM and MAKE-CALLBACK-TRAMPOLINE o Reindent a few items. x86/c-call.lisp: o Helmut's MAKE-CALLBACK-TRAMPOLINE for x86. sparc/c-call.lisp: o MAKE-CALLBACK-TRAMPOLINE for sparc.
-
- Jan 23, 2003
-
-
toy authored
fix typos in comments, signal more specific error types, remove some stale code, fix a few compiler warnings in the runtime.
-
- Aug 27, 2002
-
-
moore authored
On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved. They now go through a table -- effectively a new space in the core file. Function references are resolved lazily, data references are resolved on startup and when a .so is loaded. The end result is that cores can be dumped that contain references to symbols in shared libraries. Also, the dependence of the core on addresses in the Lisp runtime is broken. The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C runtime. Several foreign symbols are now Lisp static symbols, so a cross compile is required whether or not the new stuff is used. I've checked in boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:) Seriously, lets start a discussion on standardizing "cross compilation," not to mention the general build procedure.
-
- Jun 01, 2001
-
-
toy authored
-
- May 31, 2001
-
-
toy authored
code generation for alien types.
-
- Mar 13, 2001
-
-
pw authored
-
- Sep 15, 1999
-
-
dtc authored
-
- Mar 21, 1998
- Feb 20, 1998
-
-
dtc authored
bits but was 64 bits.
-
- Feb 08, 1998
-
-
dtc authored
-
- Feb 06, 1998
-
-
dtc authored
type equivalence. Cyclic record and pointer types, which CMUCL supports, could cause the algorithm to infinitely recurse and overflow the stack. The fixed limits the depth of the search by assuming pointer types are equivalent beyond a certain depth.
-
- Jan 13, 1998
-
-
dtc authored
this info may be shared among many alien objects making cancellation of the finalisation upon alien object deallocation problematic. Probably for this reason this cancellation had been disabled, however this often resulted in objects being freed twice and possibly live objects being freed. To fix this, the finalizer is now placed on the alien object rather than the alien info, and this finalizer is cancelled before the deallocation of the alien object to prevent repeated freeing. Problem tracked down thanks to a bug report and some experimentation by Andrei V. Elkin.
-
- Sep 16, 1997
-
-
dtc authored
to always deport 1.
-
- Aug 24, 1997
-
-
dtc authored
(subtypep '(alien (* t)) '(alien (* t))) which caused other failures in the type system.
-
- Feb 22, 1997
-
-
dtc authored
been sharing the control stack with the compiler which could cause trouble (pushes and pops out of order, holes in arguments built up on the stack, exposed stack that can be written over on interrupt, etc) Assigned a static symbol, x86::*alien-stack*, and by default set it to the old C stack. A program many rebind this if it needs more room or wants the allocation elsewhere. The *alien-stack* is saved with the dynamic environment so is restored with a non-local exist. It's not save on function entry/exit so you need to take care to match an allocation with a deallocation. Makes use of new VOPs which are already in place. Backout an old alien stack deallocation hack.
-
- Jan 18, 1997
-
-
ram authored
-
- Jul 12, 1996
-
-
ram authored
:out or :in-out. It sort of worked with c-string, but ended up passing in a pointer to the string data, which is confusing to the uninitiated.
-
- Oct 31, 1994
-
-
ram authored
-
- Oct 19, 1994
-
-
ram authored
-
- Oct 01, 1994
-
-
ram authored
implemented: (string symbol)
-
- Apr 06, 1994
-
-
hallgren authored
-
- Aug 26, 1993
-
-
wlott authored
-
- Aug 18, 1993
-
-
ram authored
ALIEN-TYPE-= instead of calling ALIEN-TYPE-P with two args.
-
- Feb 12, 1993
-
-
ram authored
-
- Feb 11, 1993
- Feb 10, 1993
-
-
ram authored
constructor, since the default constructor uses gensym arg names, and we can't reference the other slot values in the default.
-
- Jan 13, 1993
-
-
cvs2git authored
-
- Nov 11, 1992
-
-
wlott authored
the from-alist so that enum aliens are unparsed in a canonical format.
-
- May 14, 1992
-
-
ram authored
-
- Mar 10, 1992
- Mar 07, 1992
-
-
wlott authored
in ALIEN, import them before trying to export them.
-
- Mar 04, 1992
-
-
ram authored
-
ram authored
Export MAKE-ALIEN and FREE-ALIEN from ALIEN. Export ALIEN-VALUE-TYPE from ALIEN-INTERNALS so that TYPE-OF can use it. Changed ALIEN-VALUE printer to be less verbose. Implemented %MAKE-ALIEN and FREE-ALIEN using malloc/free. Changed MAKE-ALIEN to accept an alien-type object as well as an Alien type descriptor. Now that we've implemented FREE-ALIEN, finalize the Aliens created by interpreted WITH-ALIEN. Added an (OPTIMIZE-INTERFACE (SAFETY 2)) declaration on %CAST so that we get a better type error message.
-