Skip to content
Snippets Groups Projects
  1. Feb 01, 2010
    • rtoy's avatar
      o For DARWIN (and NetBSD), use the SpaceStart_* values for the · e4ba8f5e
      rtoy authored
        starting addresses.
      o Make DYNAMIC_SPACE_SIZE an unsigned to get rid of an overflow
        warning when compiling.
      e4ba8f5e
    • rtoy's avatar
      Linux-os.c: · 0f0aed07
      rtoy authored
      o Follow CMUCL coding style.
      o Argv and envp are const char*.
      
      os.h:
      lisp.c:
      Darwin-os.c:
      FreeBSD-os.c:
      NetBSD-os.c:
      OpenBSD-os.c:
      hpux-os.c:
      irix-os.c:
      mach-os.c:
      osf1-os.c:
      solaris-os.c:
      sunos-os.c:
      o argv and envp are const char *.
      0f0aed07
    • rtoy's avatar
      Patch from Stelian Ionescu on cmucl-imp, 2010/02/01: · 911be032
      rtoy authored
          When run on a kernel compiled without COMPAT_BRK CMUCL segfaults,
          so I copied the kludge used by SBCL - check the current
          personality, and if necessary, enable ADDR_NO_RANDOMIZE and
          re-exec itself.
      
      Linux-os.c:
      o Check for personality and rexec if necessary.
      
      os.h:
      o New prototype for os_init needed because it needs argv and envp.
      
      lisp.c:
      Darwin-os.c:
      FreeBSD-os.c:
      NetBSD-os.c:
      OpenBSD-os.c:
      hpux-os.c:
      irix-os.c:
      mach-os.c:
      osf1-os.c:
      solaris-os.c:
      sunos-os.c:
      o Update call to os_init, which needs argv and envp now.
      911be032
  2. Jan 26, 2010
  3. Dec 21, 2009
  4. Dec 18, 2009
  5. 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
  6. 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
  7. 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
      Use the right instruction for amd64 to get the fp. · 695d7d4c
      rtoy authored
      695d7d4c
    • 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
  8. Oct 16, 2009
  9. Oct 15, 2009
  10. Sep 28, 2009
  11. Sep 17, 2009
  12. Aug 30, 2009
  13. Aug 12, 2009
  14. Jul 16, 2009
  15. Jul 13, 2009
    • rtoy's avatar
      lisp/lisp.c: · 4de992e8
      rtoy authored
      o Make debug_lisp_search global instead of static.
      
      lisp/elf.c:
      o Use debug_lisp_search to control printing of some debug information
        when searching for the linker script.
      o Update to support executables with Unicode support.  (CMUCL_LIB is a
        wide string, so we need to hack that into a C string.  This needs
        work.)
      4de992e8
  16. Jul 07, 2009
    • rtoy's avatar
      Add new config for sparc/solaris, matching what was done for x86. The · d80ed711
      rtoy authored
      sun4_solaris_gcc and sun4_solaris_sunc configs are now obsolete, but
      we leave the around for now.
      
      Tested both configs and they work.
      
      lisp/Config.sparc_common:
      o New file for common config for gcc and Sun C builds on Solaris
      
      lisp/Config.sparc_gcc:
      o New file for building on sparc/solaris with gcc
      
      lisp/Config.sparc_sunc:
      o New file for building on sparc/solaris with Sun C
      
      tools/create-target.sh:
      o Change default from sun4_solaris_gcc to sparc_gcc to use new
        configuration.
      d80ed711
    • 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
    • rtoy's avatar
      Fix compiler warning on sparc. · 0fc8f462
      rtoy authored
      0fc8f462
  17. Jun 11, 2009
  18. Apr 08, 2009
  19. Mar 25, 2009
  20. Feb 22, 2009
  21. Feb 09, 2009
  22. Jan 20, 2009
  23. Jan 13, 2009
  24. Jan 11, 2009
    • rtoy's avatar
      Config.x86_common: · de39fd0a
      rtoy authored
      o Use += to append to variables instead of setting them.
      o Add common OS_SRC files.
      o Move rule for building e_rem_pio2.c to here.  Add CPPFLAGS too.
      
      Config.x86_common:
      o Remove common files from OS_SRC.
      o Remove rele for e_rem_pio2.c
      
      Config.x86_darwin:
      o Update to use Config.x86_common.
      
      GNUmakefile:
      o Use CPPFLAGS when building version.o
      de39fd0a
  25. Jan 07, 2009
  26. Jan 06, 2009
  27. Jan 05, 2009
    • rtoy's avatar
      Fix for handling arithmetic errors with x87. · 9edd3c4b
      rtoy authored
      Use bootstrap-2009-01-1.lisp to bootstrap this change.
      
      code/float-trap.lisp:
      o FLOATING-POINT-MODES for :X87 needs to massage the results into the
        expected format (SSE2 MXCSR order).
      o Update for changed VOP names too.
      
      compiler/x86/float.lisp:
      o Rename the floating-point-modes and set-floating-point-modes VOPS to
        x87-floating-point-modes and set-x87-floating-point-modes.  Change
        the translations accordingly too.
      
      compiler/x86/parms.lisp:
      o The float property bytes have been updated to match the SSE2 MXCSR
        register for both SSE2 and X87 builds because the code assumes SSE2
        format.
      
      lisp/Linux-os.c:
      o Don't OR in the SSE2 modes if we're not running an SSE2 build.
        Doing this can erroneously mask out exceptions because the Lisp code
        didn't set up the sse2 modes.  (This happens if you select the x87
        core on a chip that supports sse2.)
      
      lisp/globals.h:
      o Declare fpu_mode.
      
      lisp/lisp.c:
      o Set fpu_mode to be the mode determined from the core file.  Needed
        in Linux-os.c to process the SSE2 modes correctly with an x87 core
        on a sse2-capable chip.
      9edd3c4b
Loading