{5} Assigned, Active Tickets by Owner (Full Description) (34 matches)

List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.

gb

Ticket Summary Component Milestone Type Created
Description
#50 Exception when accessing text attributes in echo area buffers IDE None defect 08/08/07

After some number of operations that write to/clear the echo area, I sometimes see an exception logged:

NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds

This seems to occur when #/attributesAtIndex:effectiveRange: is called on the textstorage object associated with an echo-area buffer; the hemlock buffer seems to be non-empty, but the parallel mutable attributed string has length 0.

I'm not sure what (hemlock stream operations ?) causes them to get out of sync.

Sometimes this seems to be recoverable; other times, it doesn't.


#81 Listener marks get confused IDE None defect 08/24/07

Now that I'm doing more testing/debugging, I find the listener very often gets in a state where hitting return reports Hemlock error "Marks in different buffers have no relation", and the only recourse is to kill the listener (not fun if you have state in a breakloop). I don't have a specific repeatable case, but because of ticket:80 I'm doing a lot of copying and pasting between the listener and editor buffers, and that might have something to do with it.

(F04E4B90) : 0 (REPORT-CONDITION-IN-HEMLOCK-FRAME #<SIMPLE-ERROR #xC417CD6> #<HEMLOCK-LISTENER-FRAME <HemlockListenerFrame?: 0x2871400> (#x2871400)>) 528

(CONDITION CCL::FRAME)

CONDITION: #<SIMPLE-ERROR #xC417CD6> CCL::FRAME: #<HEMLOCK-LISTENER-FRAME <HemlockListenerFrame?: 0x2871400> (#x2871400)>

SEMAPHORE: #<SEMAPHORE #xC417C66> CCL::MESSAGE: #<NS-MUTABLE-STRING "Marks in different buffers have no relation." (#x5E0AA0)> CCL::SEM-VALUE: #<NS-NUMBER 92575 (#x5F36B0)> CCL::PARAMPTRS: #<A Foreign Pointer [stack-allocated]


#90 Editor silently lets you clobber changed file IDE None defect 08/28/07

Open a file in the IDE. Open the same file in emacs, make a change, save it. Now make a change in the IDE and save it -- it quietly overwrites the changes you made in emacs. It should notice the change and confirm whether you want to overwrite it


#101 mmap failures sometimes ignored Runtime (threads, GC) None defect 08/31/07

On some platforms (depending on OS kernel settings that control overcommit policy), attempts to grow the heap after GC fail (the mmap() call fails.) The lisp kernel ignores the return value, and wackiness ensues.


#145 Handling exceptions (lisp errors, NSExceptions ...) in the event thread IDE None defect 10/26/07

There are probably several problems with the mechanism(s) used to handle/report exceptions that occur on the Cocoa event thread.

(It is likely that we'd eventually want higher-level debugging facilities - a window based backtrace dialog, interaction with the inspector and other IDE facilities, etc. - to be available when an error occurs during event processing; that's a separate set of issues, and it's likely that anything that we eventually do to address them depend on the issues described here.)

It is necessary that exceptions on the event thread:

- do not block the event process. I've seen log output that shows that the event thread tries to enter a break loop. When the IDE is run standalone, it fills the log file prompting for input from /dev/null.

- unwind the stack in a way that gives both lisp exception handling and unwind-protect cleanup code and any ObjC runtime handlers/cleanups a chance to run. The latter means different things in 32-bit ObjC runtimes than in the 64-bit case. In both cases, it means that lisp errors that occur during ObjC callbacks have to be handled by forcing the callback to raise an NSException on return and by treating NSExceptions that occur during lisp functions that call ObjC methods as lisp errors.

- handle any recursive errors (while printing backtrace info or elsewhere) with the same concerns

- provide as much debugging info as practical (this is currently just stack traces written to standard output.)

I think that we've seen evidence of all of these things failing in some circumstances, sometimes in combination.

We may want to split this ticket into several smaller tickets, but I think that it'd be good to isolate "problems related to exception handling" from things like "backtrace in a TTY is hard to read".


#150 confused by close paren at end of file IDE None defect 11/01/07

Reported by Ron Garret in openmcl-devel:

Double-clicking on a close-paren doesn't do the right thing when the close paren is the last character in the file.


#186 Compilation time grows exponentially Compiler None defect 11/26/07

Time to compile a function containing an n-ary call to + grows exponentially with the number of arguments to +.

(EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8)) (+ A B C D E F G H)))) took 27 milliseconds (0.027 seconds) to run

with 2 available CPU cores.

During that period, 29 milliseconds (0.029 seconds) were spent in user mode

0 milliseconds (0.000 seconds) were spent in system mode

33,968 bytes of memory allocated.

#<Anonymous Function #x300041AF5DEF> ? (EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8) (I 9)) (+ A B C D E F G H I)))) took 70 milliseconds (0.070 seconds) to run

with 2 available CPU cores.

During that period, 71 milliseconds (0.071 seconds) were spent in user mode

0 milliseconds (0.000 seconds) were spent in system mode

39,440 bytes of memory allocated.

#<Anonymous Function #x300041AE9BEF> ? (EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8) (I 9) (J 10)) (+ A B C D E F G H I J)))) took 195 milliseconds (0.195 seconds) to run

with 2 available CPU cores.

During that period, 198 milliseconds (0.198 seconds) were spent in user mode

1 milliseconds (0.001 seconds) were spent in system mode

1 milliseconds (0.001 seconds) was spent in GC.

45,440 bytes of memory allocated.

#<Anonymous Function #x3000419BC23F> ? (EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8) (I 9) (J 10) (K 11)) (+ A B C D E F G H I J K)))) took 560 milliseconds (0.560 seconds) to run

with 2 available CPU cores.

During that period, 561 milliseconds (0.561 seconds) were spent in user mode

1 milliseconds (0.001 seconds) were spent in system mode

53,424 bytes of memory allocated.

#<Anonymous Function #x3000419AC6BF> ? (EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8) (I 9) (J 10) (K 11) (L 12)) (+ A B C D E F G H I J K L)))) took 1,653 milliseconds (1.653 seconds) to run

with 2 available CPU cores.

During that period, 1,651 milliseconds (1.651 seconds) were spent in user mode

5 milliseconds (0.005 seconds) were spent in system mode

59,728 bytes of memory allocated.

#<Anonymous Function #x300041B3B8CF> ? (EVAL '#'(LAMBDA NIL (LET ((A 1) (B 2) (C 3) (D 4) (E 5) (F 6) (G 7) (H 8) (I 9) (J 10) (K 11) (L 12) (M 13)) (+ A B C D E F G H I J K L M)))) took 4,903 milliseconds (4.903 seconds) to run

with 2 available CPU cores.

During that period, 4,906 milliseconds (4.906 seconds) were spent in user mode

9 milliseconds (0.009 seconds) were spent in system mode

66,240 bytes of memory allocated.

#<Anonymous Function #x300041B2827F>


#283 Error: bad regspec: NIL while compiling Hunchentoot Compiler defect 04/09/08

While compiling Hunchentoot 0.15.5 (which is the current version) on FreeBSD 6.3 using CCL from trunk, I see this error:

;Compiling "/home/hans/bknr-svn/thirdparty/hunchentoot-0.15.5/server.lisp"...
> Error: bad regspec: NIL
> While executing: CCL::%HARD-REGSPEC-CLASS, in process listener(1).

He is a backtrace:

 (800EEEE18) : 0 (ABNORMAL-APPLICATION-EXIT) 277
  NIL

  #:G59259: (ERROR)
  CCL::%HANDLERS%: ((ERROR) (CCL:PROCESS-RESET))

 (800EEEE48) : 1 (%ERROR #<SIMPLE-ERROR #x300041E1F63D> '(NIL) 4296924622) 357
  (CONDITION CCL::ARGS CCL::ERROR-POINTER)
   CONDITION: #<SIMPLE-ERROR #x300041E1F63D>
   CCL::ARGS: (NIL)
   CCL::ERROR-POINTER: 4296924622



 (800EEEE70) : 2 (%HARD-REGSPEC-CLASS NIL) 173
  (CCL::REGSPEC)
   CCL::REGSPEC: NIL



 (800EEEE88) : 3 (NODE-REG-P NIL) 37
  (CCL::REG)
   CCL::REG: NIL



 (800EEEEA0) : 4 (ENSURE-NODE-TARGET NIL) 37
  (CCL::REG)
   CCL::REG: NIL



 (800EEEEB8) : 5 (X862-REF-SYMBOL-VALUE #<DLL-HEADER  #x300041DE1ACD> NIL NIL '*HUNCHENTOOT-STREAM* T) 501
  (CCL::SEG CCL::VREG CCL::XFER CCL::SYM CCL::CHECK-BOUNDP)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: NIL
   CCL::XFER: NIL
   CCL::SYM: *HUNCHENTOOT-STREAM*
   CCL::CHECK-BOUNDP: T

  CCL::*AVAILABLE-BACKEND-NODE-TEMPS*: 1992

 (800EEEF28) : 6 (FUNCALL #'#<CCL::X862-PROGN> #<DLL-HEADER  #x300041DE1ACD> NIL NIL '(#)) 149
  (CCL::SEG CCL::VREG CCL::XFER CCL::FORMS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: NIL
   CCL::XFER: NIL
   CCL::FORMS: ((#:|nil|))

  CCL::FORM: (84 *HUNCHENTOOT-STREAM*)

 (800EEEF70) : 7 (FUNCALL #'#<CCL::X862-PROGN> #<DLL-HEADER  #x300041DE1ACD> NIL NIL '(# #)) 149
  (CCL::SEG CCL::VREG CCL::XFER CCL::FORMS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: NIL
   CCL::XFER: NIL
   CCL::FORMS: ((44 # #) (44 # #))

  CCL::FORM: (22529 (# #))

 (800EEEFB8) : 8 (FUNCALL #'#<CCL::X862-UNWIND-PROTECT> #<DLL-HEADER  #x300041DE1ACD> #<LREG 45 GPR [6]> 524288 '(29 # # # 2424832) '(22529 #)) 981
  (CCL::SEG CCL::VREG CCL::XFER CCL::PROTECTED-FORM CCL::CLEANUP-FORM)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 45 GPR [6]>
   CCL::XFER: 524288
   CCL::PROTECTED-FORM: (29 (#) (#) (22529 #) 2424832)
   CCL::CLEANUP-FORM: (22529 (# # #))

  CCL::CLEANUP-LABEL: 15
  CCL::PROTFORM-LABEL: 16
  CCL::OLD-STACK: #(13 0 216 #<LCELL 33>)
  CCL::*X862-VSTACK*: 248
  CCL::*X862-TOP-VSTACK-LCELL*: #<LCELL 37>

 (800EEF058) : 9 (X862-UNDO-BODY #<DLL-HEADER  #x300041DE1ACD> #<LREG 40 GPR [6]> 524288 '(56 # #) #(9 0 88 #<LCELL 17>)) 381
  (CCL::SEG CCL::VREG CCL::XFER CCL::BODY CCL::OLD-STACK)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 40 GPR [6]>
   CCL::XFER: 524288
   CCL::BODY: (56 (29 # # # 2424832) (22529 #))
   CCL::OLD-STACK: #(9 0 88 #<LCELL 17>)

  CCL::CURRENT-STACK: #(13 0 216 #<LCELL 33>)
  CCL::NUMUNDO: 4

 (800EEF0B8) : 10 (FUNCALL #'#<CCL::X862-LET> #<DLL-HEADER  #x300041DE1ACD> #<LREG 40 GPR [6]> 524288 '(# # # #) NIL '(56 # #) 2424832) 1477
  (CCL::SEG CCL::VREG CCL::XFER CCL::VARS CCL::VALS CCL::BODY CCL::P2DECLS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 40 GPR [6]>
   CCL::XFER: 524288
   CCL::VARS: (#<VAR  #x300041DF147D> #<VAR  #x300041DF141D> #<VAR  #x300041DF13BD> #<VAR  #x300041DF135D>)
   CCL::VALS: NIL
   CCL::BODY: (56 (29 # # # 2424832) (22529 #))
   CCL::P2DECLS: 2424832

  CCL::OLD-STACK: #(9 0 88 #<LCELL 17>)
  CCL::VAL: (-268435344 . #<LCELL 21>)
  CCL::BITS: -268435456
  CCL::VALCOPY: NIL
  CCL::*X862-TAIL-ALLOW*: T
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-OPEN-CODE-INLINE*: T
  CCL::*X862-TRUST-DECLARATIONS*: T

 (800EEF198) : 11 (X862-UNDO-BODY #<DLL-HEADER  #x300041DE1ACD> #<LREG 27 GPR [6]> 524288 '(28 # # # 2424832) #(6 0 56 #<LCELL 11>)) 381
  (CCL::SEG CCL::VREG CCL::XFER CCL::BODY CCL::OLD-STACK)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 27 GPR [6]>
   CCL::XFER: 524288
   CCL::BODY: (28 (# # # #) (# # # #) (56 # #) 2424832)
   CCL::OLD-STACK: #(6 0 56 #<LCELL 11>)

  CCL::CURRENT-STACK: #(9 0 88 #<LCELL 17>)
  CCL::NUMUNDO: 3

 (800EEF1F8) : 12 (FUNCALL #'#<CCL::X862-LET*> #<DLL-HEADER  #x300041DE1ACD> #<LREG 27 GPR [6]> 524288 '(# #) '(# #) '(28 # # # 2424832) 2424832) 341
  (CCL::SEG CCL::VREG CCL::XFER CCL::VARS CCL::VALS CCL::BODY CCL::P2DECLS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 27 GPR [6]>
   CCL::XFER: 524288
   CCL::VARS: (#<VAR  #x300041DF16ED> #<VAR  #x300041DF159D>)
   CCL::VALS: ((30733 #) (25650 # #))
   CCL::BODY: (28 (# # # #) (# # # #) (56 # #) 2424832)
   CCL::P2DECLS: 2424832

  CCL::OLD-STACK: #(6 0 56 #<LCELL 11>)
  CCL::*X862-TAIL-ALLOW*: T
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-OPEN-CODE-INLINE*: T
  CCL::*X862-TRUST-DECLARATIONS*: T

 (800EEF2C8) : 13 (X862-UNDO-BODY #<DLL-HEADER  #x300041DE1ACD> #<LREG 8 GPR [6]> 524288 '(29 # # # 2424832) #(3 0 24 #<LCELL 3>)) 381
  (CCL::SEG CCL::VREG CCL::XFER CCL::BODY CCL::OLD-STACK)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 8 GPR [6]>
   CCL::XFER: 524288
   CCL::BODY: (29 (# #) (# #) (28 # # # 2424832) 2424832)
   CCL::OLD-STACK: #(3 0 24 #<LCELL 3>)

  CCL::CURRENT-STACK: #(6 0 56 #<LCELL 11>)
  CCL::NUMUNDO: 3

 (800EEF328) : 14 (FUNCALL #'#<CCL::X862-LET*> #<DLL-HEADER  #x300041DE1ACD> #<LREG 8 GPR [6]> 524288 '(# #) '(# #) '(29 # # # 2424832) 2424832) 341
  (CCL::SEG CCL::VREG CCL::XFER CCL::VARS CCL::VALS CCL::BODY CCL::P2DECLS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 8 GPR [6]>
   CCL::XFER: 524288
   CCL::VARS: (#<VAR  #x300041DF1DCD> #<VAR  #x300041DF1C2D>)
   CCL::VALS: ((30733 #) (25650 # #))
   CCL::BODY: (29 (# #) (# #) (28 # # # 2424832) 2424832)
   CCL::P2DECLS: 2424832

  CCL::OLD-STACK: #(3 0 24 #<LCELL 3>)
  CCL::*X862-TAIL-ALLOW*: T
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-OPEN-CODE-INLINE*: T
  CCL::*X862-TRUST-DECLARATIONS*: T

 (800EEF3F8) : 15 (X862-UNDO-BODY #<DLL-HEADER  #x300041DE1ACD> NIL 524292 '(29 # # # 2424832) #(2 0 24 #<LCELL 3>)) 381
  (CCL::SEG CCL::VREG CCL::XFER CCL::BODY CCL::OLD-STACK)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: NIL
   CCL::XFER: 524292
   CCL::BODY: (29 (# #) (# #) (29 # # # 2424832) 2424832)
   CCL::OLD-STACK: #(2 0 24 #<LCELL 3>)

  CCL::CURRENT-STACK: #(3 0 24 #<LCELL 3>)
  CCL::NUMUNDO: 1

 (800EEF458) : 16 (X862-MULTIPLE-VALUE-BODY #<DLL-HEADER  #x300041DE1ACD> '(29 # # # 2424832)) 253
  (CCL::SEG CCL::FORM)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::FORM: (29 (# #) (# #) (29 # # # 2424832) 2424832)

  CCL::LAB: 4
  CCL::*X862-VSTACK*: 240
  CCL::*X862-TOP-VSTACK-LCELL*: #<LCELL 36>
  CCL::OLD-STACK: #(2 0 24 #<LCELL 3>)

 (800EEF4B8) : 17 (FUNCALL #'#<CCL::X862-CATCH> #<DLL-HEADER  #x300041DE1ACD> #<LREG 0 GPR [6]> 262143 '(24614 #) '(29 # # # 2424832)) 621
  (CCL::SEG CCL::VREG CCL::XFER CCL::TAG CCL::VALFORM)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 0 GPR [6]>
   CCL::XFER: 262143
   CCL::TAG: (24614 #<VAR  #x300041DF2DED>)
   CCL::VALFORM: (29 (# #) (# #) (29 # # # 2424832) 2424832)

  CCL::TAG-LABEL: 3
  CCL::TAG-LABEL-VALUE: #<VINSN-LABEL 3>
  CCL::MV-PASS: T

 (800EEF520) : 18 (X862-UNDO-BODY #<DLL-HEADER  #x300041DE1ACD> #<LREG 0 GPR [6]> 262143 '(54 # #) #(0 0 16 #<LCELL 2>)) 261
  (CCL::SEG CCL::VREG CCL::XFER CCL::BODY CCL::OLD-STACK)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 0 GPR [6]>
   CCL::XFER: 262143
   CCL::BODY: (54 (24614 #) (29 # # # 2424832))
   CCL::OLD-STACK: #(0 0 16 #<LCELL 2>)

  CCL::CURRENT-STACK: #(1 0 24 #<LCELL 3>)
  CCL::NUMUNDO: 1

 (800EEF580) : 19 (FUNCALL #'#<CCL::X862-LET> #<DLL-HEADER  #x300041DE1ACD> #<LREG 0 GPR [6]> 262143 '(#) NIL '(54 # #) 0) 1477
  (CCL::SEG CCL::VREG CCL::XFER CCL::VARS CCL::VALS CCL::BODY CCL::P2DECLS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 0 GPR [6]>
   CCL::XFER: 262143
   CCL::VARS: (#<VAR  #x300041DF2DED>)
   CCL::VALS: NIL
   CCL::BODY: (54 (24614 #) (29 # # # 2424832))
   CCL::P2DECLS: 0

  CCL::OLD-STACK: #(0 0 16 #<LCELL 2>)
  CCL::VAL: NIL
  CCL::BITS: 36241408
  CCL::VALCOPY: NIL
  CCL::*X862-TAIL-ALLOW*: NIL
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-OPEN-CODE-INLINE*: NIL
  CCL::*X862-TRUST-DECLARATIONS*: NIL

 (800EEF660) : 20 (FUNCALL #'#<CCL::X862-LOCAL-BLOCK> #<DLL-HEADER  #x300041DE1ACD> #<LREG 0 GPR [6]> 262143 '(#) '(28 # # # 0)) 533
  (CCL::SEG CCL::VREG CCL::XFER CCL::BLOCKTAG CCL::BODY)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 0 GPR [6]>
   CCL::XFER: 262143
   CCL::BLOCKTAG: ((# . #))
   CCL::BODY: (28 (#) (NIL) (54 # #) 0)

  CCL::CURSTACK: #(0 0 16 #<LCELL 2>)
  CCL::COMPOUND: NIL
  CCL::MVPASS-P: NIL
  CCL::NEED-LABEL: NIL
  CCL::END-OF-BLOCK: NIL
  CCL::LAST-CD: 262143
  CCL::DEST: #<LREG 0 GPR [6]>

 (800EEF6E0) : 21 (FUNCALL #'#<CCL::X862-LAMBDA> #<DLL-HEADER  #x300041DE1ACD> #<LREG 0 GPR [6]> 262143 '(# #) NIL NIL NIL '(NIL NIL) '(44 # #) 2424832) 9037
  (CCL::SEG CCL::VREG CCL::XFER CCL::REQ CCL::OPT REST CCL::KEYS CCL::AUXEN CCL::BODY CCL::P2DECLS)
   CCL::SEG: #<DLL-HEADER  #x300041DE1ACD>
   CCL::VREG: #<LREG 0 GPR [6]>
   CCL::XFER: 262143
   CCL::REQ: (#<VAR  #x300041DF2FCD> #<VAR  #x300041DF2F4D>)
   CCL::OPT: NIL
   REST: NIL
   CCL::KEYS: NIL
   CCL::AUXEN: (NIL NIL)
   CCL::BODY: (44 (#) (28 # # # 0))
   CCL::P2DECLS: 2424832

  CCL::STACK-CONSED-REST: NIL
  CCL::NEXT-METHOD-VAR-SCOPE-INFO: NIL
  CCL::LEXPRP: NIL
  CCL::REST-VAR-BITS: NIL
  CCL::REST-IGNORED-P: NIL
  CCL::WANT-STACK-CONSED-REST: NIL
  CCL::AFUNC: #<AFUNC  #x300041DF310D>
  CCL::INHERITED-VARS: NIL
  CCL::FBITS: 8
  CCL::METHODP: NIL
  CCL::METHOD-VAR: NIL
  NEXT-METHOD-P: NIL
  CCL::ALLOW-OTHER-KEYS-P: NIL
  CCL::HARDOPT: NIL
  CCL::LAP-P: NIL
  CCL::NUM-INH: 0
  CCL::NUM-REQ: 2
  CCL::NUM-OPT: 0
  CCL::NO-REGS: T
  CCL::ARG-REGS: (NIL NIL)
  CCL::OPTSUPVLOC: NIL
  CCL::REGLOCATIVES: NIL
  CCL::PREGS: 0
  CCL::RESERVED-LCELLS: (#<LCELL 1> #<LCELL 2>)
  CCL::*X862-VSTACK*: 24
  CCL::*X862-TAIL-ALLOW*: T
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-OPEN-CODE-INLINE*: T
  CCL::*X862-TRUST-DECLARATIONS*: T

 (800EEF898) : 22 (X862-COMPILE #<AFUNC  #x300041DF310D> [...]) 5205
  (CCL::AFUNC &OPTIONAL CCL::LAMBDA-FORM CCL::*X862-RECORD-SYMBOLS*)
   CCL::AFUNC: #<AFUNC  #x300041DF310D>
   CCL::LAMBDA-FORM: NIL
   CCL::*X862-RECORD-SYMBOLS*: T

  CCL::*X862-CUR-AFUNC*: #<AFUNC  #x300041DF310D>
  CCL::*X862-RETURNING-VALUES*: NIL
  CCL::*X86-CURRENT-CONTEXT-ANNOTATION*: NIL
  CCL::*X862-WOI*: NIL
  CCL::*NEXT-LCELL-ID*: 37
  CCL::*X862-OPEN-CODE-INLINE*: NIL
  CCL::*X862-REGISTER-RESTORE-COUNT*: NIL
  CCL::*X862-COMPILER-REGISTER-SAVE-LABEL*: NIL
  CCL::*X862-VALID-REGISTER-ANNOTATIONS*: 0
  CCL::*X862-REGISTER-EA-ANNOTATIONS*: #()
  CCL::*X862-REGISTER-RESTORE-EA*: NIL
  CCL::*X862-CONSTANT-ALIST*: ((# . #) (# . #) (# . #) (# . #) (# . #) ...)
  CCL::*X862-DOUBLE-FLOAT-CONSTANT-ALIST*: NIL
  CCL::*X862-SINGLE-FLOAT-CONSTANT-ALIST*: NIL
  CCL::*X862-VSTACK*: 0
  CCL::*X862-CSTACK*: 0
  CCL::*X862-TARGET-NUM-ARG-REGS*: 3
  CCL::*X862-TARGET-NUM-SAVE-REGS*: 4
  CCL::*X862-TARGET-LCELL-SIZE*: 8
  CCL::*X862-TARGET-FIXNUM-SHIFT*: 3
  CCL::*X862-TARGET-NODE-SHIFT*: 3
  CCL::*X862-TARGET-BITS-IN-WORD*: 64
  CCL::*X862-TARGET-NODE-SIZE*: 8
  CCL::*X862-TARGET-HALF-FIXNUM-TYPE*: (SIGNED-BYTE 60)
  CCL::*X862-TARGET-DNODE-SIZE*: 16
  CCL::*X862-TOS-REG*: NIL
  CCL::*X862-ALL-LCELLS*: (#<LCELL 37> #<LCELL 36> #<LCELL 35> #<LCELL 34> #<LCELL 33> ...)
  CCL::*X862-TOP-VSTACK-LCELL*: #<LCELL 3>
  CCL::*X862-BOTTOM-VSTACK-LCELL*: #<LCELL 0>
  CCL::*X862-VAR-CELLS*: ((# . #) (# . #) (# . #) (# . #) (# . #))
  CCL::*BACKEND-VINSNS*: #<HASH-TABLE :TEST EQ size 513/687 #x3000407198ED>
  CCL::*BACKEND-NODE-REGS*: 57288
  CCL::*BACKEND-NODE-TEMPS*: 1992
  CCL::*AVAILABLE-BACKEND-NODE-TEMPS*: 1992
  CCL::*BACKEND-IMM-TEMPS*: 7
  CCL::*AVAILABLE-BACKEND-IMM-TEMPS*: 7
  CCL::*BACKEND-CRF-TEMPS*: 1
  CCL::*AVAILABLE-BACKEND-CRF-TEMPS*: 1
  CCL::*BACKEND-FP-TEMPS*: 4703919738795935662080
  CCL::*AVAILABLE-BACKEND-FP-TEMPS*: 4703919738795935662080
  CCL::BITS: 0
  CCL::*LOGICAL-REGISTER-COUNTER*: 45
  CCL::*BACKEND-ALL-LREGS*: (#<LREG 45 GPR [6]> #<LREG 44 GPR [7]> #<LREG 43 GPR [7]> #<LREG 42 GPR [7]> #<LREG 41 GPR [7]> ...)
  CCL::*X862-POPJ-LABELS*: NIL
  CCL::*X862-POPREG-LABELS*: NIL
  CCL::*X862-VALRET-LABELS*: NIL
  CCL::*X862-NILRET-LABELS*: NIL
  CCL::*X862-UNDO-COUNT*: 15
  CCL::*BACKEND-LABELS*: #(#<VINSN-LABEL 0> #<VINSN-LABEL 1> #<VINSN-LABEL 2> #<VINSN-LABEL 3> #<VINSN-LABEL 4> ...)
  CCL::*X862-UNDO-STACK*: #(#(0 0 16 #) #(1 0 24 #) #(2 0 24 #) #(3 0 24 #) #(4 0 32 #) ...)
  CCL::*X862-UNDO-BECAUSE*: #(2 0 5 2 2 ...)
  CCL::*X862-ENTRY-LABEL*: NIL
  CCL::*X862-TAIL-LABEL*: NIL
  CCL::*X862-TAIL-VSP*: NIL
  CCL::*X862-TAIL-NARGS*: NIL
  CCL::*X862-INHIBIT-REGISTER-ALLOCATION*: T
  CCL::*X862-TAIL-ALLOW*: T
  CCL::*X862-RECKLESS*: NIL
  CCL::*X862-TRUST-DECLARATIONS*: T
  CCL::*X862-ENTRY-VSTACK*: 16
  CCL::*X862-FIXED-NARGS*: NIL
  CCL::*X862-NEED-NARGS*: T
  CCL::FNAME: PROCESS-CONNECTION
  CCL::*X862-ENTRY-VSP-SAVED-P*: T
  CCL::*X862-VCELLS*: ((CCL:*CURRENT-PROCESS*) (*CLOSE-HUNCHENTOOT-STREAM*) (*REMOTE-PORT*) (*REMOTE-HOST*) (*LOCAL-HOST*) ...)
  CCL::*X862-FCELLS*: ((MAYBE-INVOKE-DEBUGGER) (CCL::%UNLOCK-RECURSIVE-LOCK-OBJECT) (SERVER-WORKERS) (DELETE) (SETF::|HUNCHENTOOT::SERVER-WORKERS|) ...)
  CCL::*X862-RECORDED-SYMBOLS*: ((# *REMOTE-PORT* # #) (# *REMOTE-HOST* # #) (# *LOCAL-HOST* # #) (# *HUNCHENTOOT-STREAM* # #) (# CCL::%HANDLERS% # #) ...)
  #:G13469: #<DLL-HEADER  #x300041DE1ACD>
  #:G13470: #<POOL  #x300040CC1CDD>

 (800EEFF90) : 23 (COMPILE-NAMED-FUNCTION '(LAMBDA # # #) [...]) 765
  (CCL::DEF &OPTIONAL CCL::NAME CCL::ENV CCL::KEEP-LAMBDA CCL::KEEP-SYMBOLS CCL::POLICY CCL::*LOAD-TIME-EVAL-TOKEN* CCL::TARGET)
   CCL::DEF: (LAMBDA (SERVER HANDLE) (DECLARE #) (BLOCK PROCESS-CONNECTION #))
   CCL::NAME: PROCESS-CONNECTION
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041DF322D>
   CCL::KEEP-LAMBDA: NIL
   CCL::KEEP-SYMBOLS: T
   CCL::POLICY: #<COMPILER-POLICY  #x30004097B21D>
   CCL::*LOAD-TIME-EVAL-TOKEN*: #:LOAD-TIME-EVAL
   CCL::TARGET: :FREEBSDX8664

  CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041DF31DD>
  CCL::*TARGET-BACKEND*: #<BACKEND FREEBSDX8664 #x30004071960D>
  CCL::AFUNC: #<AFUNC  #x300041DF310D>

 (800EF0040) : 24 (FCOMP-NAMED-FUNCTION '(LAMBDA # # #) 'PROCESS-CONNECTION #<LEXICAL-ENVIRONMENT  #x300041D4318D>) 229
  (CCL::DEF CCL::NAME CCL::ENV)
   CCL::DEF: (LAMBDA (SERVER HANDLE) (DECLARE #) (BLOCK PROCESS-CONNECTION #))
   CCL::NAME: PROCESS-CONNECTION
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>

  CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041DF322D>

 (800EF0078) : 25 (FCOMP-LOAD-%DEFUN '(CCL::%DEFUN # #) #<LEXICAL-ENVIRONMENT  #x300041D4318D>) 485
  (CCL::FORM CCL::ENV)
   CCL::FORM: (CCL::%DEFUN (CCL:NFUNCTION PROCESS-CONNECTION #) '"This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs.")
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>

  #:WHOLE45120: ((CCL:NFUNCTION PROCESS-CONNECTION #) '"This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs.")
  #:ARGS45121: #<DESTRUCTURE-STATE  #x80110116D>
  CCL::FN: (CCL:NFUNCTION PROCESS-CONNECTION (LAMBDA # # #))
  CCL::DOC: '"This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs."

 (800EF00B8) : 26 (FCOMP-FORM '(CCL::%DEFUN # #) #<LEXICAL-ENVIRONMENT  #x300041D4318D> :NOT-COMPILE-TIME) 1821
  (CCL::FORM CCL::ENV CCL::PROCESSING-MODE)
   CCL::FORM: (CCL::%DEFUN (CCL:NFUNCTION PROCESS-CONNECTION #) '"This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs.")
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>
   CCL::PROCESSING-MODE: :NOT-COMPILE-TIME

  CCL::PRINT-STUFF: NIL
  CCL::LOAD-TIME: T
  CCL::COMPILE-TIME-TOO: NIL
  CCL::*FCOMP-INDENTATION*: 0
  *COMPILE-PRINT*: NIL

 (800EF0140) : 27 (FCOMP-FORM-LIST '(# # #) #<LEXICAL-ENVIRONMENT  #x300041D4318D> :NOT-COMPILE-TIME) 93
  (CCL::FORMS CCL::ENV CCL::PROCESSING-MODE)
   CCL::FORMS: ((EVAL-WHEN # #) (CCL::%DEFUN # #) 'PROCESS-CONNECTION)
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>
   CCL::PROCESSING-MODE: :NOT-COMPILE-TIME

  #:G44988: ('PROCESS-CONNECTION)
  CCL::FORM: (CCL::%DEFUN (CCL:NFUNCTION PROCESS-CONNECTION #) '"This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs.")

 (800EF0180) : 28 (FCOMP-FORM '(PROGN # # #) #<LEXICAL-ENVIRONMENT  #x300041D4318D> :NOT-COMPILE-TIME) 1821
  (CCL::FORM CCL::ENV CCL::PROCESSING-MODE)
   CCL::FORM: (PROGN (EVAL-WHEN # #) (CCL::%DEFUN # #) 'PROCESS-CONNECTION)
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>
   CCL::PROCESSING-MODE: :NOT-COMPILE-TIME

  CCL::PRINT-STUFF: NIL
  CCL::LOAD-TIME: T
  CCL::COMPILE-TIME-TOO: NIL
  CCL::*FCOMP-INDENTATION*: 0
  *COMPILE-PRINT*: NIL

 (800EF0208) : 29 (FCOMP-FORM '(DEFUN PROCESS-CONNECTION # "This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs." #) #<LEXICAL-ENVIRONMENT  #x300041D4318D> :NOT-COMPILE-TIME) 1821
  (CCL::FORM CCL::ENV CCL::PROCESSING-MODE)
   CCL::FORM: (DEFUN PROCESS-CONNECTION (SERVER HANDLE) "This function is called by the server in a newly-created thread
with the SERVER object itself and a socket 'handle' from which a
stream can be created.  It reads the request headers and hands over to
PROCESS-REQUEST.  This is done in a loop until the stream has to be
closed or until a read timeout occurs." (HANDLER-BIND # #))
   CCL::ENV: #<LEXICAL-ENVIRONMENT  #x300041D4318D>
   CCL::PROCESSING-MODE: :NOT-COMPILE-TIME

  CCL::PRINT-STUFF: NIL
  CCL::LOAD-TIME: T
  CCL::COMPILE-TIME-TOO: NIL
  CCL::*FCOMP-INDENTATION*: 0
  *COMPILE-PRINT*: NIL


#322 Need to update Wiki entries on upgrading from source (and via svn) Documentation 1.2 defect 07/30/08

The information seems to still be generally informative and accurate as far as it goes, but deals with things as of 1.1x.


#325 call-next-method bug on x8632 Compiler IA-32 port defect 08/14/08

The following doesn't work right in the x8632 lisp, and I wonder if someone else could take a look at it.

From the test suite:

(defgeneric cnm-gf-03 (x)
  (:method ((x integer)) #'call-next-method)
  (:method ((x t)) t))

(funcall (cnm-gf-03 0))

The result should be t, but the x8632 lisp gets an error.


#342 ffi-parser limitations need workaround Foreign Function Interface defect 10/03/08

On Fedora 9/PPC, /usr/include/asm/ioctl.h contains:

/* provoke compile error for invalid uses of size argument */
extern unsigned int __invalid_size_argument_for_IOC;
#define _IOC_TYPECHECK(t) \
	((sizeof(t) == sizeof(t[1]) && \
	  sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
	  sizeof(t) : __invalid_size_argument_for_IOC)

/* used to create numbers */
#define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0)
#define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
#define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))

and some ioctl constants are then defined in terms of _IOR(), _IOW(), etc.

The conditional expression in the expansion of _IOC_TYPECHECK (and possibly the reference to the variable) cause the FFI parser to give up, so some IOCTL constants aren't defined.

We can either try to be more ambitious and interpret the expansion (it should always expand to "sizeof(t)" unless there's an error in the header file) or do all macroexpansion as if:

#define _IOC_TYPECHECK(t) sizeof(t)

was predefined and not overridden by the definition in the header file.

(We might be able to translate this particular macro into something that we can make sense of, but we can't always do that, so it seems like a mechanism for dealing with intractable nonsense would be desirable.)


#361 Loading WebKit example fails Runtime (threads, GC) defect 10/23/08

Just trying to load the webkit framework via:

(eval-when (:compile-toplevel :load-toplevel :execute)
  (objc:load-framework "WebKit" :webkit))

fails with an error from something in the bridge that seems not to know that method signatures of different lengths aren't EQUAL and that it should stop CDRing:

? 
> Error: Unknown foreign type: NIL
> While executing: %PARSE-FOREIGN-TYPE, in process Listener(3).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b
 (13536820) : 0 (%PARSE-FOREIGN-TYPE NIL #S(FOREIGN-TYPE-DATA :TRANSLATORS #<HASH-TABLE :TEST EQ size 17/60 #x300040B2F80D> :KIND-INFO #<HASH-TABLE :TEST EQ size 164/203 #x300040B2F21D> ...)) 733
 (13536868) : 1 (PARSE-FOREIGN-TYPE NIL #S(FOREIGN-TYPE-DATA :TRANSLATORS #<HASH-TABLE :TEST EQ size 17/60 #x300040B2F80D> :KIND-INFO #<HASH-TABLE :TEST EQ size 164/203 #x300040B2F21D> ...)) 253
 (135368B0) : 2 (FUNCALL #'#<(:INTERNAL SIGNATURES-EQUAL POSTPROCESS-OBJC-MESSAGE-INFO)> (:VOID :ID) (:VOID)) 157
 (135368F8) : 3 (MEMBER-TEST (:VOID :ID) ((:<BOOL>) (:VOID)) #<Compiled-function (:INTERNAL SIGNATURES-EQUAL POSTPROCESS-OBJC-MESSAGE-INFO) (Non-Global)  #x300040EC781F>) 573
 (13536930) : 4 (ADJOIN (:VOID :ID) ((:<BOOL>) (:VOID)) :TEST #<Compiled-function (:INTERNAL SIGNATURES-EQUAL POSTPROCESS-OBJC-MESSAGE-INFO) (Non-Global)  #x300040EC781F> :TEST-NOT NIL :KEY NIL) 501
 (135369B8) : 5 (POSTPROCESS-OBJC-MESSAGE-INFO #S(OBJC-MESSAGE-INFO :MESSAGE-NAME "goForward" :METHODS (#<# -[# #] #x3000422BC61D> #<# -[# #] #x3000422BC6CD> #<# -[# #] #x300041EB79CD>) ...)) 797

#368 Cannot make datagram socket Compiler IA-32 port defect 10/29/08

Open a unconnected UDP (datagram, internet) socket failed on CCL trunk darwinX8632. (darwinX8664 is OK)

Welcome to Clozure Common Lisp Version 1.3-dev-r11173M-trunk  (DarwinX8632)!
? (openmcl-socket:make-socket :address-family :internet
					  :type :datagram)
> Error: value NIL is not of the expected type (OR INTEGER STRING).
> While executing: CCL::HOST-AS-INET-HOST, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b  
 (454C2C) : 0 (HOST-AS-INET-HOST NIL) 1199
 (454C38) : 1 (MAKE-TCP-STREAM-SOCKET
                4
                :ADDRESS-FAMILY
                :INTERNET
                :TYPE
                :DATAGRAM) 359
 (454C78) : 2 (MAKE-TCP-SOCKET :ADDRESS-FAMILY :INTERNET :TYPE :DATAGRAM) 503
 (454CAC) : 3 (MAKE-SOCKET :ADDRESS-FAMILY :INTERNET :TYPE :DATAGRAM) 695
 (454DA0) : 4 (CALL-CHECK-REGS
                MAKE-SOCKET
                :ADDRESS-FAMILY
                :INTERNET
                :TYPE
                :DATAGRAM) 247
 (454DBC) : 5 (TOPLEVEL-EVAL
                (MAKE-SOCKET :ADDRESS-FAMILY :INTERNET :TYPE :DATAGRAM)
                NIL) 759
 (454DFC) : 6 (READ-LOOP :INPUT-STREAM
                         #<SYNONYM-STREAM to *TERMINAL-IO* #x891D4C6>
                         :OUTPUT-STREAM
                         #<SYNONYM-STREAM to *TERMINAL-IO* #x891D3EE>
                         :BREAK-LEVEL
                         0
                         :PROMPT-FUNCTION
                         #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global)  #x834F0CE>) 1567
 (454F00) : 7 (TOPLEVEL-LOOP) 79
 (454F08) : 8 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 87
 (454F14) : 9 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 583
 (454F60) : 10 (RUN-PROCESS-INITIAL-FORM
                 #<TTY-LISTENER listener(1) [Active] #x891C886>
                 (#<COMPILED-LEXICAL-CLOSURE # #x891C5A6>)) 671
 (454FA4) : 11 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)>
                        #<TTY-LISTENER listener(1) [Active] #x891C886>
                        (#<COMPILED-LEXICAL-CLOSURE # #x891C5A6>)) 335
 (454FCC) : 12 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279

#87 Need IDE init file IDE None enhancement 08/27/07

I'd like to make some personal customizations to the editor, but the editor stuff is not accessible when my openmcl-init.lisp is loaded. We need an init file that gets loaded when the IDE starts up.


#220 Adding a type specifier to one slot makes instantiation over 3x slower Performance enhancement 12/16/07

Running on a 2.16 GHz Core 2 Duo MacBook? Pro with 2 GB RAM:

Welcome to Clozure Common Lisp Version 1.1-r7809 (DarwinX8664)!
? (defclass class-with-typed-slot ()
  ((attribute-one :initarg :attribute-one
                  :type string)))

(defclass class-with-untyped-slot ()
  ((attribute-one :initarg :attribute-one)))

(defun instantiate-class-with-typed-slot (times)
  (dotimes (i times)
    (make-instance 'class-with-typed-slot :attribute-one "one")))

(defun instantiate-class-with-untyped-slot (times)
  (dotimes (i times)
    (make-instance 'class-with-untyped-slot :attribute-one "one")))

? ? ? INSTANTIATE-CLASS-WITH-UNTYPED-SLOT
? (time (instantiate-class-with-typed-slot 50000))
(INSTANTIATE-CLASS-WITH-TYPED-SLOT 50000) took 336 milliseconds (0.336 seconds) to run 
                    with 2 available CPU cores.
During that period, 307 milliseconds (0.307 seconds) were spent in user mode
                    6 milliseconds (0.006 seconds) were spent in system mode
4 milliseconds (0.004 seconds) was spent in GC.
 6,400,624 bytes of memory allocated.
NIL
? (time (instantiate-class-with-untyped-slot 50000))
(INSTANTIATE-CLASS-WITH-UNTYPED-SLOT 50000) took 97 milliseconds (0.097 seconds) to run 
                    with 2 available CPU cores.
During that period, 93 milliseconds (0.093 seconds) were spent in user mode
                    4 milliseconds (0.004 seconds) were spent in system mode
3 milliseconds (0.003 seconds) was spent in GC.
 4,800,624 bytes of memory allocated.
NIL
? 

#221 defstruct accessors don't check argument type ANSI CL Compliance enhancement 12/22/07

? (defstruct foo x) FOO ? (defstruct baz y) BAZ ? (foo-x (make-baz)) NIL

Should be an error.


#234 [ACL2] Garbage Collection Performance on OpenMCL Runtime (threads, GC) enhancement 01/31/08

The folks at UTexas have been playing around with mergesort, and since you're already improving the garbage collector, you would probably like to see this problematic example.

Can you make running the below example with garbage collection enabled as fast as (or at least closer in performance to) executing when the garbage collector has really large GC thresholds? With GC effectively disabled, non-parallelized code speeds up by a factor close to 15. And parallelized code (via my threading library) speeds up by a factor close to 100.

This smaller example yields a slow down of about 3 when using default garbage collection thresholds. This example runs on ACL2-3.3 compiled with OpenMCL x86-64.

If you would like, I can also send you the parallelized mergesort example. Running this would require you to download PACL2, but you've done this before, so maybe this would be a good thing to do.

Thanks, David

(include-book "finite-set-theory/osets/sets" :dir :system)

(defmacro assign$ (name value)
 `(make-event (pprogn (f-put-global
                       (quote ,name)
                       ,value
                       state)
                      (value '(value-triple nil)))))


(in-package "SETS")

(defun integers (n acc)
 (if (zp n)
     (reverse acc)
   (integers (1- n) (cons n acc))))

(ACL2::assign$ int-list (integers 3200000 nil))
; For true dramatic effect use this commented out version instead
; (ACL2::assign$ int-list (integers 32000000 nil))


(ACL2::cw "Timing the serial verions of mergesort")

(ACL2::assign$ serial-result (time$ (SETS::mergesort-exec (@ int-list))))



:q
(ccl:set-lisp-heap-gc-threshold (* 4 16777216))
(ccl:configure-egc (expt 2 16) (expt 2 17) (expt 2 17))
; For true dramatic effect use this commented out version instead
; (ccl:configure-egc (expt 2 30) (expt 2 31) (expt 2 32))


(progn

 (with-standard-io-syntax
  (let ((*package* (find-package "CCL")))
    (eval (read-from-string "

 ;;; Work of Gary Byers.

 ;;; The #_ and #$ reader macros in the code below are part of
 ;;; OpenMCL's ffi; you'd basically need to hide this code in
 ;;; a file that's isolated from other implementations.
 (defun acl2::physical-memory ()
    (rlet ((info :sysinfo))
      (if (eql 0 (#_sysinfo info))
        (pref info :sysinfo.totalram))))"))))

 (defparameter *gc-min-threshold* (expt 2 31))

 (defparameter *max-mem-usage*
   (let ((phys (physical-memory)))
     (max (floor (* 6/8 phys))
          *gc-min-threshold*)))


 (defun set-and-reset-gc-thresholds ()
   (let ((n (max (- *max-mem-usage* (ccl::%usedbytes))
                 *gc-min-threshold*)))
     (cond ((not (eql n (ccl::lisp-heap-gc-threshold)))
            (ccl::set-lisp-heap-gc-threshold n)
            )))
   (ccl::use-lisp-heap-gc-threshold)
   (cond ((not (eql *gc-min-threshold*
                    (ccl::lisp-heap-gc-threshold)))
          (ccl::set-lisp-heap-gc-threshold *gc-min-threshold*)
          )))


 (defun set-max-mem-usage (max)
   (setf *max-mem-usage* max)
   (set-and-reset-gc-thresholds))

 (ccl::add-gc-hook
  #'(lambda ()
      (ccl::process-interrupt
       (slot-value ccl:*application*
                   'ccl::initial-listener-process)
       #'set-and-reset-gc-thresholds))
  :post-gc)

 (set-and-reset-gc-thresholds)

 (ccl::gc-verbose t t)
 (ccl:egc nil)
 (ccl:gc)
 )




(lp)

(ACL2::cw "GC Disabled.  Timing the serial verions of mergesort (again)")


(ACL2::assign$ serial-result (time$ (SETS::mergesort-exec (@ int-list))))

#317 Should provide a way to update the ccl hierarchy Infrastructure and Support enhancement 07/27/08

Need a function (or an argument to rebuild-ccl) that does the two step process necessary to properly update a ccl hierarchy from subversion: 'svn up' and then 'svn revert' the kernel and image.

The reason for this is that 'svn up' doesn't overwrite modified binaries, so if a user ever did a rebuild-ccl (which they must if they use the trunk), 'svn up' no longer gets the latest checked in binaries. See for example the thread starting with http://clozure.com/pipermail/openmcl-devel/2008-July/008399.html


#373 x86 ports: invalid numerical comparisons Compiler defect 11/01/08

Incorrect code seems to be generated for comparisons with a bignum.

Welcome to Clozure Common Lisp Version 1.3-dev-r11281M  (LinuxX8632)!
? (defun tax (income)
    (declare (type (integer 0 1000000) income))
    (if (> income 1000000000) 1 0))
TAX
? (tax 10)
1

#374 struct accessors are incorrect with struct option (:type (vector single-float)) Compiler defect 11/01/08

Hi, i came across the following when trying to do some maths with clozure:

(defstruct (foo (:type (vector single-float))) 
  (x 0s0 :type single-float) 
  (y 0s0 :type single-float))

(defun bar (v) 
  (foo-y v))

(bar (make-foo :x 1s0 :y 1s0))
;; => 1.0907007E-40

i think the code is correct,so this is a ccl bug.


#49 meta-dot for structure accessors should work IDE None defect 08/07/07

Currently, meta-dot on a structure accessor quietly fails. It should go to the defstruct, and ideally the cursor should be at the line that defines the slot.


#324 process-whostate sometimes returns a weird value Runtime (threads, GC) IA-32 port defect 08/12/08

Sometimes, something like this happens.

Welcome to Clozure Common Lisp Version 1.2-r10446:10448M-trunk  (DarwinX8632)!
? (process-run-function "do nothing" (lambda ()))
#<PROCESS do nothing(2) [#<Unprintable IMMEDIATE : #xF3>] #x88CB886>

#xf3 is x8632::subtag-no-thread-local-binding.

One expect to see this:

#<PROCESS do nothing(2) [Reset] #x88CB886>

#358 filesystem character encoding Runtime (threads, GC) defect 10/21/08

CCL doesn't properly deal with filenames with unicode characters which are beyond latin-1.

Neither DIRECTORY does list correct filenames, nor OPEN can acces files with unicode pathnames.

-K utf-8 is supplied, *default-file-character-encoding* => :UTF-8. That is on 64 and 32 bit linux.


#375 ccl::%svref with "large" fixnum indices Compiler IA-32 port defect 11/04/08

I'm not sure if this is limited to just %svref (it might happen for other vector types in unsafe code, but:

? (defun foo (v)
  (%svref v 40000))
> Error: bad regspec: NIL
> While executing: %HARD-REGSPEC-VALUE, in process listener(1).

Some of the x8664 constants may also be a bit off, but x8632::max-32-bit-constant-index is supposed to be an upper bound on the largest integer we can use to access an element in a 32-bit vector, i.e., a little bit less than MOST-POSITIVE-FIXNUM when misc-data-offset/misc-float-offset are accounted for. This number was much smaller on PPC, where constent displacements have to fit in 16 bits.


#232 New backtrace-as-list function Compiler enhancement 01/22/08

SBCL has a sb-debug::backtrace-as-list function which returns the backtrace summary in list form. This is useful for certain kinds of tracing and profiling. The attached diff adds a similar function to OpenMCL/CCL.


#21 don't need yield-syscall constant in x8664-arch.lisp Compiler None defect 05/30/07

The constant yield-syscall defined in x8664-arch.lisp isn't used anywhere and could be removed.


gz

Ticket Summary Component Milestone Type Created
Description
#286 compile-time error when compiling ref to unknown type ANSI CL Compliance defect 04/23/08
? (compile nil '(lambda () (typep nil '(or none-such null)))) 
> Error: Unknown type specifier: NONE-SUCH 
> While executing: CCL::%%TYPEP, in process listener(1). 
> Type :POP to abort, :R for a list of available restarts. 
> Type :? for other options. 
1 >  

I'm working on a fix, just entering the bug for the record.


#292 Console window should not become the front window whenever a new message appears IDE defect 05/01/08

The new console window in v1.2 becomes the front window whenever a new message appears. This is annoying, particularly when e.g. exiting a break loop using cmd-. because that causes an exitBreak message to appear (and hence removes focus from the listener).


#235 make-array does not check the validity of its :element-type argument Compiler enhancement 02/01/08

"Version 1.2-r8284S (LinuxX8664)"

make-array does not verify that the :element-type is a valid type.


mikel

Ticket Summary Component Milestone Type Created
Description
#54 Convert Apple quick-start Cocoa example programs to Lisp IDE None enhancement 08/11/07

FInd quick-start examples provided by Apple to teach Cocoa programming, and convert some of them to a Lisp implementation using the OpenMCL Cocoa bridge. Should choose them based on their suitability as simple examples of how to use the Cocoa bridge and other OpenMCL facilities with commonly-needed Cocoa features.


#59 Add a simple Graphics API IDE None enhancement 08/11/07

We could use a graphics API that enables a user to create a window with an easy interface for creating graphics, and that supports event-handling, scrolling, and so on, with an API much simpler than the full OSX graphics and event-handling APIs.

Both 2-D and 3D versions would be nice.


#192 Fix "Load Buffer..." and related menu-items IDE None enhancement 11/28/07

For completeness sake, CCL should have "Load File..." and "Compile File..." menu items. These could be on the "Lisp" menu, as a new section underneath the current section containing "Execute Selection," "Load Buffer," etc.


rme

Ticket Summary Component Milestone Type Created
Description
#25 Text Window Problems IDE None defect 07/28/07

There are a number of problems with the graphic components of text windows in the IDE that make it look cobbled together rather than like a real cocoa application.

1. Three of the windows corners are rounded and one is square. (The bottom left is the square one.) Either all four should be rounded (like windows in the Finder, for example), or the top two should be rounded and the bottom two square (like windows in the Terminal, for example).

2. The resize tab in the bottom left corner is large and gray. If you use this type of large gray resize tab, the gray region should extend across the whole bottom of the window (cf the Finder, Safari, etc). Otherwise you have a gray box that doesn't match up with the width of the vertical scrollbar sitting right on top of it. If you don't want a gray bar going across the bottom of the window, you should use the small white resize tab (cf the Terminal application).

3. The modeline is 2-dimensional (flat) and looks strange next to the 2.5-d horizontal scrollbar region. Those two regions should have the same look.

One way to address these would be to move the modeline down into the region to the left of the resize box. Make that region shadowed gray all the way across (cf Finder windows, which put file count and available space in the gray region at the bottom of the window). Make the horizontal scrollbar take the full width of the window. I'd also try having the modeline be roman rather than italic font.

All this applies to the listener, too.


#63 Narrowing a window scrolls left edge IDE None defect 08/22/07

Making the editor window narrower scrolls (horizontally) a few pixels off the screen, at least the first time you do it.

Note this is different from Ticket #45 which is about vertical positioning.


Note: See TracReports for help on using and creating reports.