Skip to content
  1. 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
  2. Jan 27, 2012
  3. Dec 22, 2011
  4. Nov 04, 2011
  5. 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
  6. Sep 03, 2011
  7. Sep 01, 2011
    • rtoy's avatar
    • rtoy's avatar
      Add os_init0 to allow for some really early OS inits. · dafb9e03
      rtoy authored
      On Linux, os_init can re-exec lisp to set up the correct personality.
      Not normally a problem, but if any output happens before os_init is
      called, the output appears to happen twice.  So add os_init0 to do
      this early on, before any output.  This is a bit of a kludge.
      
      lisp/lisp.c:
      o Call os_init0 early in main.
      
      lisp/Linux-os.c:
      o Move the personality stuff from os_init to os_init0.
      
      lisp/Darwin-os.c:
      lisp/FreeBSD-os.c:
      lisp/NetBSD-os.c:
      lisp/OpenBSD-os.c:
      lisp/hpux-os.c:
      lisp/irix-os.c:
      lisp/mach-os.c:
      lisp/osf1-os.c:
      lisp/solaris-os.c:
      lisp/sunos-os.c:
      o Add dummy implementation of os_init0.  These OSes don't (currently)
        need anything special.
      
      lisp/os.h:
      o Declare os_init0.
      dafb9e03
    • rtoy's avatar
      Make the stack checking feature actually work on Darwin. Previously, · 4970f6a7
      rtoy authored
      stack overflows would crash lisp.
      
      Darwin-os.c:
      o Need to check for stack overflow in the sigbus handler.  (Without
        that, it's treated as a regular bus error.)
      o Add the rest of the infrastructure to handle the stack overflow.
      
      release-20c.txt:
      o Update
      4970f6a7
  8. Dec 26, 2010
  9. Jun 22, 2010
    • rtoy's avatar
      Make previous changes build for x87. · 139c4f23
      rtoy authored
      compiler/x86/vm.lisp:
      o Change *float-register-names* to be defparameter.
      o Setup float-regs and def-random-reg-tns appropriately for x87 and
        sse2.
      
      lisp/Darwin-os.c:
      lisp/Linux-os.c:
      o Conditionalize previous change for FEATURE_SSE2.
      139c4f23
    • rtoy's avatar
      Revert the previous change to fix debug:arg/trace issue. Instead, use · 1fea054f
      rtoy authored
      Carl's suggestion and define new SC numbers for the xmm registers
      instead of overloading the x87 fpu registers and the xmm register
      SC's.
      
      bootfiles/20a/boot-2010-06-cross-x86.lisp:
      o New file needed for cross-compiling this change.
      
      code/x86-vm.lisp:
      o Revert previous change.
      
      compiler/x86/sse2-c-call.lisp:
      o Use xmm0-tn instead of fr0-tn.  No functional change, but makes the
        code more readable.
      
      compiler/x86/vm.lisp:
      o Increase the number of float registers from 8 to 16 (8 more for SSE2
        registers).
      o Define new xmm<n> registers
      o Update the locations with the new sse2 SC locations for single-reg,
        double-reg, double-double-reg, complex-single-reg,
        complex-double-reg, and complex-double-double-reg storage classes.
      
      lisp/Darwin-os.c:
      o Revert previous change.
      o Update os_sigcontext_fpu_reg to support the xmm registers.
      
      lisp/Linux-os.c:
      o Update os_sigcontext_fpu_reg to support the xmm registers.
      1fea054f
    • rtoy's avatar
      Fix issue where the debugger (and TRACE) would get the wrong · 2b3d7fb0
      rtoy authored
      floating-point values for arguments because the x87 registers were
      used instead of the sse2 registers in the sigcontext.
      
      code/x86-vm.lisp:
      o For SSE2 on Mac OS X, call os_sigcontext_fpu_reg_sse2 to get the
        SSE2 register values from the sigcontext.
      
      lisp/Darwin-os.c:
      o Add os_sigcontext_fpu_reg_sse2 to get the SSE2 floating point
        values.
      
      general-info/release-20b.txt:
      o Document this change.
      2b3d7fb0
  10. Feb 01, 2010
    • 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
  11. Jan 06, 2009
  12. Dec 29, 2008
    • rtoy's avatar
      Support building and running on OSX 10.4 (Tiger). · c2e1d8a6
      rtoy authored
      lisp/Config.x86_darwin:
      o Add -mmacosx-version-min=10.4 so the C code can run on Tiger.
      
      lisp/Darwin.c:
      lisp/x86-lispregs.h:
      o The mcontext slot names have a prefix of "__" on 10.5, but have no
        prefix on 10.4.  Add #define's to make the source code work on either.
      c2e1d8a6
  13. Dec 10, 2008
  14. Dec 07, 2008
  15. Nov 12, 2008
  16. Sep 16, 2008
  17. 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
  18. Sep 10, 2008
  19. Mar 19, 2008
  20. Jan 17, 2008
    • rtoy's avatar
      Clear the FPU status word before loading the control word from the · 346910c6
      rtoy authored
      sigcontext.
      
      This is a workaround for an issue on x86/darwin where loading of the
      control word enabling the invalid operation exception would cause that
      exception because the status word had that exception.  Not sure why
      this is needed or why the invalid operation exception was set.  It was
      happening in a call run-program while concatenating the files for the
      hemlock library.
      346910c6
  21. Jan 03, 2008
    • cshapiro's avatar
      Switch the FreeBSD port to use the common floating point trap handling · 9495c516
      cshapiro authored
      code.  Rather than introduce a new FreeBSD case to the x86 sigcontext
      member accessor routines, collapse all of the system specific routines
      down to a common set of routines.
      
      * code/debug-int.lisp - Disable some Darwin-specific code to debug
        NULL mcontext pointers.
      
      * code/float-trap.lisp - Remove ancient FreeBSD-specific code for
        handling floating point signals.
      
      * code/macros.lisp, code/sap.lisp, compiler/saptran.lisp - Include the
        SAP-REF-LONG setter by default on the x86.
      
      * code/x86-vm.lisp - Remove operating system specific sigcontext
        definitions and sigcontext accessors.  Define the alien sigcontext
        as a system area pointer.  Replace the sigcontext accessors with
        foreign function calls that mask the complexity of the underlying
        sigcontext member access.
      
      * compiler/x86/float.lisp - Unconditionally define STORE-LONG-FLOAT.
        This function is used by the %SET-SAP-REF-LONG VOP that underlies
        the SAP-REF-LONG setter.
      
      * compiler/x86/sap.lisp - Unconditionally define %SET-SAP-REF-LONG.
        In the case where there is not a distinct LONG-FLOAT type, admit
        DOUBLE-FLOAT values instead.  The x87 automatically widens values
        pushed onto stack.  This mirrors the behavior of the SAP-REF-LONG
        VOP.
      
      * lisp/Darwin-os.c, lisp/Linux-os.c - Define functions to access
        sigcontext members of interest to Lisp.  Delete the sc_reg function
        and replace its uses with os_sigcontext_reg which is more suitably
        typed.
      
      * lisp/FreeBSD-os.c - Define functions to access sigcontext members of
        interest to Lisp.  We need to be careful about the SSE and non-SSE
        cases for retrieving x87 registers from the saved machine state.
        Define a low-level SIGFPE handler to intercept floating point traps
        and restore the cleared status word bits based on the signal code.
        Get rid of sc_reg for the reasons noted above.
      
      * lisp/Darwin-os.h, lisp/FreeBSD-os.h - Declare the restore_fpu
        function and define a specialized RESTORE_FPU macro.  Remove the
        sc_reg prototype.
      
      * lisp/Linux-os.h - Remove the sc_reg prototype.
      
      * lisp/os.h - Add prototypes for the new os_sigcontext functions.
      
      * lisp/x86-lispregs.h - Redefine SC_REG and SC_PC to expand out to the
        new os_sigcontext functions.  Redfine SC_SP to expand out to SC_REG.
        Eliminate all platform-specific defintions of SC_PC and SC_SP.
      9495c516
  22. Nov 16, 2007
  23. Nov 14, 2007
  24. Jul 31, 2007
  25. Jul 15, 2007
  26. Jul 06, 2007
  27. Jun 12, 2007
  28. Jan 31, 2006
    • rtoy's avatar
      When scavenging interrupt contexts, we need to scavenge LR and CTR · 87e1c793
      rtoy authored
      registers, in case they're pointing into our heap and what they're
      pointing to has moved.
      
      lisp/Darwin-os.c:
      o Add support for getting the LR and CTR registers from the context.
      
      lisp/gencgc.c:
      o Handle LR and CTR registers when scavenging the interrupt context.
      
      lisp/ppc-lispregs.h:
      o Define reg_LR and reg_CTR appropriately.
      87e1c793
  29. Jan 18, 2006
  30. Sep 15, 2005
  31. Sep 06, 2005