Skip to content
Snippets Groups Projects
  1. Sep 15, 2005
  2. Sep 07, 2005
    • cshapiro's avatar
      General cleanup of spawn() · 0d9fb588
      cshapiro authored
        * Set the process group leader using setsid() on all ports.
      
        * Call sigprocmask() unmasking any signals masked by Lisp.
      
        * Make spawn() officially return a pid_t instead of an int.
      
        * Make a few minor whitespace and formatting corrections while we're
          at it.
      
        * Fix the includes list to eliminate compiler warnings and reflect
          reality.
      0d9fb588
  3. Sep 06, 2005
  4. Sep 05, 2005
  5. Aug 17, 2005
  6. Aug 01, 2005
  7. Jun 01, 2005
  8. May 23, 2005
  9. May 16, 2005
    • rtoy's avatar
      From Gerd Moellman, cmucl-imp, 2005-05-15: · 3b9ca962
      rtoy authored
          Bruno reported an endless loop in the following test case:
      
          (let ((tab (make-hash-table :test 'eq :weak-p t)))
            (let ((a (list 'x)))
      	(let ((b (list 'y)))
      	  (setf (gethash a tab) 'xxx)
      	  (setf (gethash b tab) (cons 'yyy b)))
      	(gc)
      	(list (hash-table-count tab)
      	      (gethash a tab)
      	      (let ((l nil))
      		(maphash #'(lambda (k v) (push k l)) tab) l))))
      
      But we return (2 XXX ((Y) (X))) instead of (1 XXX ((X))).
      3b9ca962
  10. May 03, 2005
  11. Apr 29, 2005
  12. Apr 28, 2005
  13. Apr 24, 2005
  14. Apr 16, 2005
    • rtoy's avatar
      Gdb on OS X 10.2.8 (at least) doesn't like local variables names with · 1484dfe2
      rtoy authored
      the same name as a structure name.  So change the name of the local.
      (Stupid gdb.)
      1484dfe2
    • rtoy's avatar
      New pseudo-atomic scheme that looks more like sparc where we use the · ced8187e
      rtoy authored
      LSB of alloc-tn to denote pseudo-atomic interrupted.  We still need
      the flag-gn (hardwired to NL3) as a temporary though because we need
      somewhere to store the LSB of alloc-tn so we can trap if it's not
      zero.
      
      ppc/macros.lisp:
      o New pseudo-atomic macro implementing the change.
      
      lisp/ppc-arch.c:
      o Update arch_set_pseudo_atomic_interrupted to set the LSB of
        alloc-tn.
      o Catch the TWNEI reg_NL3, 0 instruction that denotes a deferred
        interrupt.
      
      lisp/ppc-assem.S:
      o Update assembly to code to set and test pseudo-atomic stuff like the
        pseudo-atomic macro does.
      ced8187e
  15. Apr 15, 2005
    • rtoy's avatar
      lisp/lisp.c: · 1cceeb7e
      rtoy authored
      o Add function for ppc to compute the number of CPU cycles per
        timebase ticks.  Save this in a global variable.
      
      code/time.lisp:
      o Adjust cycle-count/float for ppc to use the cycles-per-tick to
        compute the actual number of CPU cycles, so we can display cycles
        instead of ticks.
      1cceeb7e
  16. Apr 08, 2005
  17. Mar 19, 2005
  18. Mar 18, 2005
    • rtoy's avatar
      DYNAMIC_SPACE_SIZE was too large and causes the heap to overlap · 7ff810d5
      rtoy authored
      foreign linkage space.  Make it smaller.
      7ff810d5
    • rtoy's avatar
      Port Helmut's trace/known-return to ppc. Fix some bugs along the way · cabad02a
      rtoy authored
      as well.
      
      lisp/breakpoint.c:
      o Enable function-end stuff in compute_offset for DARWIN too.
      o Lots of printf's so we can see what's happening on ppc since gdb is
        majorly broken there.
      
      lisp/ppc-assem.S:
      o Actually implement the function-end breakpoint template.  Basically
        copied the sparc version, with appropriate mods.
      
      lisp/ppc-arch.c:
      o Add TWLLEI_R0 macro to create the appropriate trap instructions that
        we need, and use as appropriate.
      o arch_install_breakpoint was actually broken and installed a twllgei
        instruction instead of twllei.
      o arch_do_displaced_inst was also broken.  It didn't install the
        after-break-point trap after the breakpoint trap.  And it also
        didn't continue running the code and returned instead.  That's
        wrong.
      o The trap_AfterBreakpoint case in sigill_handler was inserting the
        wrong instruction back.  (Probably too much copying of the sparc
        port.)
      cabad02a
  19. Mar 17, 2005
    • rtoy's avatar
      Implement tracing for the known-return convention. This is basically · 46a81e81
      rtoy authored
      Helmut Eller's patch sent to cmucl-imp on 2005-03-08.  This basically
      means tracing recursive functions will show all recursions during the
      trace and not just the final call.
      
      code/debug-int.lisp:
      o Apply Helmut's patch.  Tweak it so when the known-return convention
        is being used, we tell MAKE-BOGUS-LRA that we're using the
        known-return so we can handle it properly.
      
      lisp/breakpoint.c:
      o Add an extra parameter to compute_offset so we know we're handling a
        function-end breakpoint or not.  Needed because reg_CODE isn't
        pointing to the bogus lra in this case, so the offsets are all
        wrong.  We compute the right offset for the known return and return
        the offset as negative so we can tell.
      o Adjust all callers of compute_offset.
      o Adjust handle_function_end_breakpoint to handle negative offsets
        from compute_offset so we can get the right code component for the
        bogus lra.
      46a81e81
  20. Feb 24, 2005
    • rtoy's avatar
      o Fix typo. · 522ebee0
      rtoy authored
      o When PPC_FUN_HACK is not defined, the raw_addr slot of an fdefn
        object should be on a word boundary, so change undefined_tramp and
        closure_tramp to be on such a boundary.  Previously, these had a
        lowtag of 1.  With this change, can we get rid of the other parts of
        a function definition that we don't use?
      522ebee0
  21. Feb 18, 2005
  22. Feb 09, 2005
  23. Feb 07, 2005
  24. Feb 06, 2005
    • rtoy's avatar
      Initial support for linkage-tables on PPC/Darwin. This is a · 6a4fd3c3
      rtoy authored
      relatively straightforward port of the sparc version of
      linkage-tables.  Some refinements are probably still needed, as well
      as some testing.
      
      Use boot-2005-02-ppc-linkage.lisp to bootstrap this change from the
      2005-02 snapshot.
      
      * code/ppc-vm.lisp
        o Add appropriate FOREIGN-SYMBOL-ADDRESS-AUX and FIND-FOREIGN-SYMBOL
          functions for linkage-table.
      
      * compiler/generic/new-genesis.lisp
        o Basically do the same as the sparc port for linkage-tables.
        o need to extern-alien-name on the cold linkages since they C names
          depend on the backend conventions.
      
      * compiler/ppc/alloc.lisp
        o Load "undefined_tramp" appropriately for linkage-tables.
      
      * compiler/ppc/c-call.lisp
        o Define new vops (FOREIGN-SYMBOL-CODE-ADDRESS,
          FOREIGN-SYMBOL-DATA-ADDRESS) for linkage-tables so we can access
          correctly.
      
      * compiler/ppc/cell.lisp
        o Load "closure_tramp" appropriately for linkage-tables
        o Load "undefined_tramp" appropriately for linkage-tables
      
      * compiler/ppc/parms.lisp
        o Put the foreign linkage space start at the end of the static space
          to make it easier to bootstrap.  (We need already mapped memory.)
          We can move this later.
        o Correct TARGET-FOREIGN-LINKAGE-ENTRY-SIZE.
        o Add new static-symbol *linkage-table-data*
        o While were at it, add SPARE-9 and SPARE-0 static symbols so we
          have 10 spares.
      
      * lisp/Config.ppc_darwin
        o Add -DLINKAGE_TABLE to CFLAGS/ASFLAGS if we have linkage-table
          support.
      
      * lisp/Darwin-os.c
        o Add os_dlsym to support linkage-tables.  (This nees a little
          refactoring because we just copied the #defines for dlopen modes.)
      
      * lisp/os-common.c
        o The checking of the linkage tables that is done for sparc almost
          works for ppc, but not quite.  Implement one for ppc.
      
      * lisp/ppc-arch.c
        o Add PPC version of arch_make_jump_entry, arch_make_linkage_entry,
          arch_linkage_entry.
      
      * lisp/ppc-assem.S
        o Add lazy_resolve_linkage to support linkage-tables.  This needs
          some more work.
        o Add undefined_foreign_symbol_trap.  This probably needs work, and
          definitely needs testing.
      
      * lisp/ppc-validate.h
        o Define the start of the linkage space and size.
      6a4fd3c3
    • cshapiro's avatar
      Retire i586_bzero() in favor of memset(). The i586_bzero() routine is · a52d33fa
      cshapiro authored
      demonstrably slower than extant compiler intrinsics or C runtime
      memset() implementations for blocks of memory greater than or equal to
      an x86 VM page.
      a52d33fa
  25. Feb 04, 2005
  26. Feb 03, 2005
    • rtoy's avatar
      Martin Rydstrom reports that CMUCL with the default heap size doesn't · d0c874d1
      rtoy authored
      work on Solaris 10. (Eventually, he gets a GC lossage).  But setting
      -dynamic-space-size 256 works fine.  The difference is that the
      default is 256 MB - 32 KB.
      
      So change the default to just 256 MB.  We don't understand why the old
      default causes funny things to happen on Solaris 10.
      d0c874d1
  27. Jan 13, 2005
Loading