37 | | than it ought to be. The win64 toolchain in |
38 | | ftp://ftp.clozure.com/pub/mingw-w64-bin_i686-cygwin-1.5.25-15_4.4.1a.tar.bz2 |
39 | | works to build the lisp kernel; versions of that toolchain that are much newer |
40 | | probably won't work. |
| 37 | than it ought to be. The WindowsNotes wiki topic outlines how to do it, but |
| 38 | newer versions of the mingw-ww64 toolchain appear to have incompatibly changed, |
| 39 | and can no longer build the lisp kernel. |
| 40 | The win64 toolchain in |
| 41 | ftp://ftp.clozure.com/pub/mingw-w64-bin_i686-cygwin-1.5.25-15_4.4.1a.tar.bz2 is |
| 42 | known to work. |
| 43 | |
| 44 | Several serious bugs involving Windows have been fixed since the 1.5 release. |
| 68 | == New exported symbols == |
| 69 | The following symbols are now exported from the CCL package: |
| 70 | |
| 71 | * delete-directory |
| 72 | * get-gc-notification-threshold, set-gc-notification-threshold |
| 73 | * *pending-gc-notification-hook* |
| 74 | * wait-for-signal |
| 75 | * object-direct-size |
| 76 | * add-feature, remove-feature |
| 77 | |
| 78 | The function ccl:delete-directory deletes a directory and all its contents. |
| 79 | |
| 80 | A new pre-gc notification mechanism is available on the x86 and x86-64 ports. |
| 81 | When the heap is a configurable threshold value away from being full enough for a gc, |
| 82 | the function of no arguments in ccl:*pending-gc-notification-hook* will be called. |
| 83 | |
| 84 | The function ccl:wait-for-signal takes two arguments: a signal number, and a duration in seconds. |
| 85 | It will wait until the signal is received, or until the specified number of seconds has passed. If |
| 86 | the signal number is one that is used by the lisp internally, an error will be signaled. An error |
| 87 | will always be signaled on Windows. |
| 88 | |
| 89 | The function ccl:object-direct-size returns the size of a heap-allocated lisp object in bytes, |
| 90 | including any headers and alignment overhead. If you squint, it's sort of like |
| 91 | C's sizeof operator. |
| 92 | |
| 93 | The functions ccl:add-feature and ccl:remove-feature operate on *features* |
| 94 | in a thread-safe way. |
| 95 | |
| 96 | == Cocoa IDE == |
| 97 | === Background Listener Processes === |
| 98 | (gui:background-process-run-function ''name'' ''thunk'') |
| 99 | |
| 100 | executes the 0-argument function THUNK in a lisp process named NAME with the standard stream variables effectively bound to a stream which references a listener window (with associated Hemlock buffer and infrastructure.) The window is invisible (it's actually created on demand) unless/until an I/O operation is performed on this stream. |
| 101 | |
| 102 | When the process is runing, the window's close button (and command-W/the Close menu item) hides the window but doesn't deallocate its resources or kill the process; subsequent I/O operations to the stream cause the window to become visible again. |
| 103 | |
| 104 | If a background listener window is visible when the associated process exits, it stays visible (so that its contents can be saved via "Save To..." or otherwise manipulated). |
| 105 | |
| 106 | When the window is visible and the process is in a break loop, it behaves like other listener windows/processes: the backtrace and restarts dialogs can be used, and the listener window/process can be used to evaluate selections from editor windows when the listener window is the frontmost listener window. |
| 107 | |
| 108 | === Other IDE Changes === |
| 109 | If the shift key is held down when the IDE application is launched, no init files (neither ccl-init.lisp nor ccl-ide-init.lisp) will be loaded. |
| 110 | |