Skip to content
Snippets Groups Projects
  1. May 06, 2004
    • rtoy's avatar
      From Helmut Eller: · c5c28c25
      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.
      c5c28c25
  2. May 19, 2003
  3. May 15, 2003
    • toy's avatar
      o Remove unneeded ALIEN package prefix. · 100a3e66
      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.
      100a3e66
  4. May 14, 2003
  5. Jan 23, 2003
    • toy's avatar
      From Eric Marsden: · f315d7f1
      toy authored
          fix typos in comments, signal more specific error types, remove
          some stale code, fix a few compiler warnings in the runtime.
      f315d7f1
  6. Aug 27, 2002
    • moore's avatar
      · bf84be07
      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.
      bf84be07
  7. Jun 01, 2001
  8. May 31, 2001
  9. Mar 13, 2001
  10. Sep 15, 1999
  11. Mar 21, 1998
  12. Feb 20, 1998
  13. Feb 08, 1998
  14. Feb 06, 1998
    • dtc's avatar
      Re-write record-fields-match which is used in the testing of alien · a8b760a4
      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.
      a8b760a4
  15. Jan 13, 1998
    • dtc's avatar
      The alien object finalizer was being placed on the alien info, but · a04bd1a5
      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.
      a04bd1a5
  16. Sep 16, 1997
  17. Aug 24, 1997
  18. Feb 22, 1997
    • dtc's avatar
      Use a separate stack for alien value allocation on the x86. It had · 1975d13a
      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.
      1975d13a
  19. Jan 18, 1997
  20. Jul 12, 1996
  21. Oct 31, 1994
  22. Oct 19, 1994
  23. Oct 01, 1994
  24. Apr 06, 1994
  25. Aug 26, 1993
  26. Aug 18, 1993
  27. Feb 12, 1993
  28. Feb 11, 1993
  29. Feb 10, 1993
  30. Jan 13, 1993
  31. Nov 11, 1992
  32. May 14, 1992
  33. Mar 10, 1992
  34. Mar 07, 1992
  35. Mar 04, 1992
    • ram's avatar
      Added NULL-ALIEN and many doc-strings. · 29637137
      ram authored
      29637137
    • ram's avatar
      Export SYSTEM-AREA-POINTER from ALIEN for consistency. · d6a0826f
      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.
      d6a0826f
Loading