1. 27 Aug, 2020 5 commits
    • Raymond Toy's avatar
      Update comments · a95db7ba
      Raymond Toy authored
    • Raymond Toy's avatar
      Fix #86: Make cmucl work with gcc 8.1.1 and later · d51dabf0
      Raymond Toy authored
      In alloc(), save the fpu state on entry to the function and restore it
      just before returning.  
      While we're at it, use the __attribute__ option to get a 16-byte
      aligned area where we can save the fpu state.
      And also set optimization to -O2 for linux.
    • Raymond Toy's avatar
      Fix #85: Let each x86 configs set optimization level · 29cac208
      Raymond Toy authored
      Add `COPT` variable in `Config.x86_common` to set the optimization
      level (defaulting to `-O2`).  Then each `Config.x86` file can set
      `COPT` as desired if the default doesn't work.
      Thus, `Config.x86_linux` sets `COPT` to `-O1`, but others can use the
      default value.  See issue #68.
    • Raymond Toy's avatar
      Fix typo · d1c5289e
      Raymond Toy authored
    • Raymond Toy's avatar
      Fix #85: Let each x86 configs set optimization level · 449f8ec1
      Raymond Toy authored
      Add `COPT` variable in `Config.x86_common` to set the optimization
      level (defaulting to `-O2`).  Then each `Config.x86` file can set
      `COPT` as desired if the default doesn't work.
      Thus, `Config.x86_linux` sets `COPT` to `-O1`, but others can use the
      default value.  See issue #68.
  2. 25 Mar, 2020 1 commit
  3. 17 Apr, 2019 1 commit
  4. 07 Oct, 2018 1 commit
  5. 22 Sep, 2018 1 commit
  6. 25 Aug, 2018 1 commit
    • Raymond Toy's avatar
      Add support for compiling with clang on x86/linux · 82bf2c72
      Raymond Toy authored
      Add `Config.x86_linux_clang` to use clang instead of gcc to build
      cmucl.  update `create-target.sh` so that it sets the motif variant
      correctly when using `Config.x86_linux_clang`
      See issue #68.
      With this config, Fedora 28 successfully builds cmucl and passes all
      the tests.
  7. 05 Aug, 2018 1 commit
    • Raymond Toy's avatar
      Fix compiler warning · 2de12cd7
      Raymond Toy authored
      clang complains:
       warning: incompatible pointer to integer conversion passing
            'lispobj *' (aka 'unsigned long *') to parameter of type 'lispobj' (aka 'unsigned long');
            dereference with * [-Wint-conversion]
              || in_range_p(addr, control_stack, control_stack_size)
      So cast control_stack to lispobj.  Same complaint for binding_stack
  8. 05 Nov, 2017 2 commits
  9. 07 Oct, 2017 1 commit
    • Raymond Toy's avatar
      Rename stdin/stdout/stderr to proc_* · a5662d50
      Raymond Toy authored
      Because we include stdio.h now, Solaris defines stdin, stdout, and
      stderr in a way that they can't be used to name the args to the spawn
      function.  Hence rename these args.
  10. 30 Sep, 2017 1 commit
    • Raymond Toy's avatar
      Fix #45: Handle relative paths in `run-program` · 12018284
      Raymond Toy authored
      This is basically the solution proposed by Elias Pipping with a few
      minor tweaks.
          - In `run-program`, don't merge `program` with the "path:"
            search-list.  `spawn` will handle this.
          - In `spawn`, if the first call to execve fails, instead of trying
            "/bin/sh", use "/usr/bin/env" which will use the user's PATH if
            necessary to find the program.
  11. 16 Sep, 2017 2 commits
    • Raymond Toy's avatar
      Clean up prog_status · 81e08ecb
      Raymond Toy authored
       - If `waidpid` returns 0 or -1, we should return.
       - Make the fprintf message a bit clearer on what's happening when we
         have some kind of status that we didn't handle.
    • Raymond Toy's avatar
      Fix up minor issues in implementation · 65ce358d
      Raymond Toy authored
       - process-alive-p should return T for continued processes
       - Simplify prog-status slightly by making the status code array start
         :signaled instead of nil.
       - Update prog_status with enum to specify the codes to make it
         clearer what they mean and to make it clearer that it matches the
         expectations in prog-status.
  12. 09 Sep, 2017 1 commit
    • Raymond Toy's avatar
      Fix #41: Report proper process status · f05cb10a
      Raymond Toy authored
      The main problem is that we weren't calling wait3 with WCONTINUED so
      that we would be signaled when the process continues.  And we also
      need to check that result of wait call was WCONTINUED>
      Replace the wait3 routine with a C routine (prog_status) so we don't
      have to deal with the OS-specific flags.  This function basically
      returns what the lisp function wait3 did.
      Use this function in GET-PROCESSES-STATUS-CHANGES.
       - runprog.c:
         - Add prog_status
       - run-program.lisp:
         - Use prog_status instead of wait3
       - issues.lisp:
         - Add basic test
  13. 31 Aug, 2017 1 commit
    • Raymond Toy's avatar
      Fix compiler warning about else · 3b4f3977
      Raymond Toy authored
      Add braces around the else clause that's indented as if it were part
      of the else clause.  Inspection of the algorithm indicates that this
      is probably the intended code and in this case doesn't change what
      gets executed because the following statements would have been anyway.
      Also verified a few random values that `(asin x)` and `(asin (float x
      1w0))` produce the same values.  Only need to test 2^-27 <= x < 0.5.
  14. 29 Aug, 2017 1 commit
    • Raymond Toy's avatar
      Fix #40: Move start of heap space higher · c40b7a6b
      Raymond Toy authored
      This is a workaround for issue #40.  By moving the start of the heap
      to a higher address, we can still run on older systems (albeit with
      reduced max heap size), and run on newer systesm where the C code is
      now mapped at or overlapping the (old) heap start.  Arbitrarily choose
      0x60000000 as a compromise.
      This also requires moving the foreign linkage start to a different
      address because the old address overlaps the new C area.
      Ideally, we could fix this if we could map the heap wherever the OS
      wants to put it, but we're not there yet.
      Use boot-2017-04.lisp to bootstrap this change from the 2017-04
  15. 27 Aug, 2017 1 commit
    • Raymond Toy's avatar
      Print more info for dynamic space lossage · 2830e140
      Raymond Toy authored
      If we get dynamic space lossage, print out the actual address and the
      expected addresses for the dynamic space so we can see what happened.
      This is really useful if you change the dynamic space address but
      didn't update everything correctly.
  16. 22 Mar, 2017 2 commits
  17. 17 Dec, 2016 3 commits
  18. 11 Dec, 2016 2 commits
  19. 03 Dec, 2016 2 commits
    • Raymond Toy's avatar
      Initial Config for sparc64 build. · f9d62c05
      Raymond Toy authored
      Copy Config.sparc_sunc to Config.sparcv9_sunc, removing the -m32
      option and updating ASSEM_SRC to sparcv9-assem.S.  Remove that from
      Config.sparc_common and put it in Config.sparc_sunc.
    • Raymond Toy's avatar
      Copy sparc/* to sparcv9/* · cdbb2388
      Raymond Toy authored
      Pure copy of sparc files to sparcv9 directory and copy sparc-assem.S
      to sparcv9-assem.S
      No other changes made.
  20. 02 Dec, 2016 1 commit
    • Raymond Toy's avatar
      Apply cmucl style · 7e4f7eb9
      Raymond Toy authored
      ieee754_rem_pio2 was not formatted according to cmucl style.  Just
      re-indent. No other changes.
  21. 30 Nov, 2016 1 commit
  22. 29 Nov, 2016 3 commits
    • Raymond Toy's avatar
      Solaris needs -lrt library to get nanosleep. · f09db6e5
      Raymond Toy authored
    • Raymond Toy's avatar
      Minor cosmetic tweaks · 05585b8d
      Raymond Toy authored
      o Include math.h before netdb.h (from Carl)
      o Use ceil instead of trunc and add comment on why.
      o Conform to cmucl style.
    • Raymond Toy's avatar
      Fix #26: Use nanosleep to sleep · e5777ecb
      Raymond Toy authored
      o Implement os_sleep(double) to sleep for the given number of
        seconds.  Uses nanosleep on all platforms to sleep, taking care to
        sleep more if nanosleep was interrupted.
      o Use the new os_sleep function to sleep for the requested amount of
  23. 01 Oct, 2016 3 commits
  24. 22 May, 2016 1 commit
  25. 21 May, 2016 1 commit