Skip to content
  1. Nov 10, 2013
  2. Jul 02, 2013
  3. May 04, 2013
  4. May 03, 2013
  5. Apr 27, 2013
    • Raymond Toy's avatar
      Clean up madvise implementation · b76e5972
      Raymond Toy authored
       * Remove PAGE_MADVISE_MASK
       * Remove code using PAGE_MADVISE_MASK
       * Move some #defines from gencgc.c to gencgc.h
       * Add new or better comments
      b76e5972
  6. Apr 26, 2013
  7. Apr 24, 2013
  8. Apr 21, 2013
  9. Apr 20, 2013
  10. Sep 01, 2012
    • Raymond Toy's avatar
      Clean up RCS ids · eeab7066
      Raymond Toy authored
       * Get rid of the RCS Header stuff.  They're meaningless in git.
       * Add public domain comment to some of the files if the only comment
         was the RCS header.
      eeab7066
  11. Aug 10, 2012
    • Raymond Toy's avatar
      src/lisp/os.h: · c07cc020
      Raymond Toy authored
       src/lisp/gencgc.c:
       * Move the macros for fpu buffers from gencgc.c to here.
       src/lisp/x86-arch.c:
       * Use the new save_fpu_state instead of fpu_save.  And apply to all
         OSes.
      c07cc020
  12. Jul 18, 2012
    • Raymond Toy's avatar
      Fix ticket:61, using option 2. · 40b532c5
      Raymond Toy authored
      src/lisp/gencgc.c:
      o Save and restore the FPU state in alloc().
      
      src/compiler/x86/alloc.lisp
      src/compiler/x86/array.lisp
      src/compiler/x86/call.lisp
      src/compiler/x86/float-sse2.lisp
      src/compiler/x86/float.lisp
      src/compiler/x86/move.lisp
      src/compiler/x86/sap.lisp:
      o Don't need to use :save-p anymore because the allocation routine
        saves an live registers anyway.  This improves code generation as
        well.
      
      src/general-info/release-20d.txt:
      o Update.
      40b532c5
  13. Jul 05, 2012
  14. Jun 15, 2012
  15. Jan 27, 2012
  16. Nov 04, 2011
  17. Sep 24, 2011
    • Raymond Toy's avatar
      Fix Trac ticket:46. · 44a8f0c7
      Raymond Toy authored
      Make the size of all spaces configurable from the command line.
      
      code/commandline.lisp:
      o Define the switches so lisp doesn't complain.
      
      general-info/lisp.1:
      o Document new switches.
      
      general-info/release-20c.txt:
      o Update
      
      lisp/Darwin-os.c
      lisp/FreeBSD-os.c
      lisp/Linux-os.c
      lisp/NetBSD-os.c
      lisp/backtrace.c
      lisp/cgc.c
      lisp/gencgc.c
      lisp/os-common.c
      lisp/ppc-validate.h
      lisp/purify.c
      lisp/solaris-os.c
      lisp/sparc-arch.c
      lisp/sparc-validate.h
      lisp/x86-validate.h:
      lisp/validate.c
      o Basically rename CONTROL_STACK_SIZE, BINDING_STACK_SIZE,
        READ_ONLY_SPACE_SIZE, and STATIC_SPACE_SIZE to control_stack_size,
        binding_stack_size, read_only_space_size, and static_space_size,
        respectively.
      
      lisp/coreparse.c
      o Check the space size in the core file against the allocated size.
        If the allocated space is too small, print an error message and
        exit.
      
      lisp/globals.c
      o Define new variables for the allocated size of spaces.
      
      lisp/globals.h
      o Declare the new variables for the size of the spaces.
      
      lisp/lisp.c
      o Set the default values of the spaces.
      o Parse the new command-line flags and set the space sizes.
      
      lisp/sunos-os.c:
      o Added os_init0 (that we forgot last time).
      
      lisp/x86-assem.S:
      o Change $CONTROL_STACK_END to GNAME(control_stack_end) to get the
        correct end of the stack.
      44a8f0c7
  18. Jan 09, 2011
    • rtoy's avatar
      Changes to support building on Mac OS X 10.6. When compiled on 10.6, · 0b2b8885
      rtoy authored
      the resulting binary still works on 10.5.
      
      lisp/Config.x86_darwin:
      o Add -m32 flag to build and link a 32-bit binary.
      
      lisp/Darwin-os.h:
      o Include <sys/ucontext.h> instead of <ucontext.h> to get rid of the
        error about deprecated functions in ucontext.h.
      
      lisp/gencgc.h:
      o Mac OS X defines PAGE_SIZE in a header and that conflicts with our
        name.  Rename our PAGE_SIZE to GC_PAGE_SIZE.
      
      lisp/gencgc.c:
      o Rename PAGE_SIZE to GC_PAGE_SIZE.
      0b2b8885
  19. Dec 22, 2010
  20. Jul 26, 2010
  21. Jul 22, 2010
  22. Jul 19, 2010
    • rtoy's avatar
      Merge changes from sparc-tramp-assem-2010-07-19. This moves · 30102669
      rtoy authored
      closure_tramp and undefined_tramp from the C side to the Lisp side via
      Lisp assembly routines.  (Simplifies things quite a bit for sparc.)
      
      Also includes some GC fixes for sparc and ppc to handle moving the pc,
      npc, lr, and ctr registers.  They need to be handled like the lip
      register.
      
      See bootfiles/20a/boot-2010-07-1-cross.lisp for instructions on how to
      bootstrap this change.  A basic cross-compile with a specific cross
      bootstrap file is needed.
      30102669
  23. Apr 01, 2010
    • rtoy's avatar
      Fix SSE2 bug when running · 5efbe364
      rtoy authored
      (defun testfn ()
        (let* ((i-gc-ed-u nil)
               (ext:*gc-notify-before* (lambda (a) (/ a 0.34d0))))
          (dotimes (i 100000)
            (setf i-gc-ed-u nil)
            (let* ((v1 (list (* 1d0 (random 10)) (* 1d0 (random 10))))
                   (v2 (list (* 1d0 (random 10)) (* 1d0 (random 10))))
                   (dot1 (reduce #'+ (mapcar #'* v1 v2)))
                   (dot2 (reduce #'+ (mapcar #'* v1 v2))))
              (when (/= dot1 dot2)
                (print `(gc ,i-gc-ed-u v1 ,v1 v2 ,v2 dot1 ,dot1 dot2 ,dot2)))))))
      
      Running this with sse2 would cuase dot1 and dot2 to sometimes be
      different.  We forgot to save the SSE2 state in call_into_lisp.
      
      (This bug was mentioned on comp.lang.lisp, http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/828371aa4800272c?hl=en#
      
      x86-assem.S:
      o Save and restore SSE2 state when running with SSE2 core.  (This
        might need more tweaking.  Should we use cpuid instead of looking at
        fpu_mode?)
      
      gencgc.c:
      o Save the SSE2 state, along with X87 state for SSE2 cores.
      5efbe364
  24. Dec 21, 2009
  25. Dec 18, 2009
  26. Dec 17, 2009
    • rtoy's avatar
      o Add linux support in other_space_p. · f0626999
      rtoy authored
      o Remove check for object < 0xf0000000 in scavenge.
      f0626999
    • rtoy's avatar
      o Add another function to check for other places that can't be malloc · b7271901
      rtoy authored
        areas.  For sparc, this means anything below the end of the text
        section (to capture undefined_tramp and closure_tramp and some weird
        pointer object in the middle of call_into_c).  For darwin/x86, we
        ignore 0xffffffe9.  Needs to be checked on other OSes and
        architectures.
      o Move the switch statement of allowed static arrays into its own
        function.
      b7271901
  27. Dec 05, 2009
    • rtoy's avatar
      First cut at GCing static vectors, including static simple-arrays. · 45380dbb
      rtoy authored
      This is done by a simple mark-and-sweep GC of the static vectors.
      When scavenging the spaces, we mark any static vectors by setting the
      MSB of the header word.  After GC is done, an *after-gc-hooks*
      function finds all of the static vectors that are not marked and frees
      them.  For marked static vectors, we clear the mark bit.
      
      code/array.lisp:
      o Add *STATIC-VECTORS* to keep track of all static vectors that have
        been allocated.
      o Update MAKE-ARRAY
        - to allow generation of static simple unboxed arrays (1D arrays
          without an array header).
        - Push a weak pointer to the static vector onto *STATIC-VECTORS*
      o Add function FREE-STATIC-VECTOR
      o Add function FINALIZE-STATIC-VECTORS to free static vectors when
        they are no longer referenced.
      
      lisp/gencgc.c:
      o Update scavenge to check for static vectors.  If we find a static
        vector, mark the static vector by setting the MSB of the header
        word.
      45380dbb
  28. Nov 02, 2009
    • rtoy's avatar
      Revert previous changes. They were supposed to go on · d01310f2
      rtoy authored
      amd64-dd-branch.
      d01310f2
    • rtoy's avatar
      This large checkin brings the amd64 port up-to-date with the current · 2bafb654
      rtoy authored
      sources.  No real attempt has been made to make it work, but the
      cross-compile does create a kernel.core, and the C code compiles (on
      openSuSE 10.3).  The resulting kernel.core does not yet work.
      
      Use cross-x86-amd64.lisp as the cross-compile script.  This is
      intended to be cross-compiled using the 20a release for Linux, and
      only supports x87.  The sse2 support has not be ported yet.
      
      tools/cross-scripts/cross-x86-amd64.lisp:
      o Update cross-compile with some missing constants, and frob new
        symbols.
      
      tools/clean-target.sh:
      o Remove amd64f files too.
      
      code/pred.lisp:
      o Define predicates for double-doubles for bootstrapping to work
        around recursive known function problems with these predicates.
      
      code/sap.lisp:
      o Define int-sap with (unsigned-byte 64) type declaration.  (May not
        be needed?)
      
      code/unix-glibc2.lisp:
      o Build fails defining map_failed to (int-sap -1).  Just hard-wire to
        0 for now so we can build.
      
      compiler/float-tran.lisp:
      o Add missing conditional for %complex-double-double-float.
      
      compiler/amd64/float.lisp:
      o Merge double-double support for amd64.  Not really tested yet.
      
      compiler/amd64/parms.lisp:
      o Update to match x86 build.  In particular, get the space address
        correct and update the static symbols.
      
      compiler/amd64/type-vops.lisp:
      o DYLAN-FUNCTION-HEADER-TYPE no longer exists.
      
      compiler/amd64/vm.lisp:
      o Add double-double storage classes and register definitions.
      
      lisp/Config.amd64:
      o Bring in line with Config.x86 and friends.
      
      lisp/Linux-os.c:
      o Bring amd64 code up-to-date with x86/linux code.
      
      lisp/Linux-os.h
      o Need to include sys/ucontext.h to get ucontext defined.  (Why?)
      o Also define __USE_GNU so we get the register offsets in the ucontext
        defined.  (Why?)
      
      lisp/amd64-arch.c:
      o Change struct sigcontext to os_context_t.
      o Use SC_PC instead of context->sc_pc.
      o Merge some changes in from x86 version, like SC_EFLAGS.  May need
        more work.
      
      lisp/amd64-assem.s:
      o Use rbx instead of ebx for jmp.
      
      lisp/amd64-lispregs.h:
      o Define SC_REG, SC_PC, SC_SP using the new x86 style.
      
      lisp/backtrace.c:
      o Remove inline assembly for now until I figure out what the amd64
        version should be.
      
      lisp/gencgc.c:
      o Conditionalize out weak hash table support for now.
      
      lisp/gencgc.h:
      o Set PAGE_SIZE for amd64.  (Is 4096 right?)
      
      lisp/globals.h:
      o Export current_dynamic_space_free_pointer and
        current_auto_gc_trigger like for x86.
      2bafb654
  29. Jul 07, 2009
    • rtoy's avatar
      o Fix a compiler warning about inconsistent arg types. · c5b3b076
      rtoy authored
      o Fix some typos.
      o Clean up consecutive allocation heuristic:
        - Add comments to alloc_stats slots.
        - Removed regions_differ_count slot
        - Reset abandon_region_count when saved_region is updated.
      c5b3b076
  30. Jun 11, 2009
  31. Sep 16, 2008
  32. Sep 11, 2008
    • rtoy's avatar
      Enable gencgc page protection for x86/darwin. · 53ec2e7d
      rtoy authored
      gencgc.c:
      o Enable page protection
      
      Darwin-os.c:
      o Turn on sigbus_handler for x86/darwin.
      o Minor tweaks of sigbus_handler for x86/darwin.
      o Install the sigbus handler.
      53ec2e7d
  33. Apr 11, 2008