[15282] | 1 | News |
---|
| 2 | **** |
---|
| 3 | |
---|
[18390] | 4 | 0.16 |
---|
| 5 | ==== |
---|
| 6 | |
---|
| 7 | * New modules `rep.data.trie', `rep.threads.proxy' |
---|
| 8 | |
---|
| 9 | * Also added `rep.xml.reader' and `rep.xml.printer', though these |
---|
| 10 | should probably be used with extreme caution |
---|
| 11 | |
---|
| 12 | * Appending to queues is now O(1) not O(n) |
---|
| 13 | |
---|
| 14 | * Many changes to `rep.net.rpc' module, protocol is incompatible |
---|
| 15 | with previous version. Should be more robust |
---|
| 16 | |
---|
| 17 | * `rep.i18n.gettext' module exports the `bindtextdomaincodeset' |
---|
| 18 | function (Christophe Fergeau) |
---|
| 19 | |
---|
| 20 | * Slightly more secure way of seeding the rng |
---|
| 21 | |
---|
| 22 | * `inexact->exact' can now convert floating point numbers to |
---|
| 23 | rationals (though not optimally). This means that `numerator' and |
---|
| 24 | `denominator' also work better with floats now |
---|
| 25 | |
---|
| 26 | * New function `file-ttyp' |
---|
| 27 | |
---|
| 28 | * Some random bug fixes |
---|
| 29 | |
---|
| 30 | |
---|
[17361] | 31 | 0.15 |
---|
| 32 | ==== |
---|
| 33 | |
---|
| 34 | * Parser can now associate lexical location (file name and line |
---|
| 35 | number) with parsed objects. Added `call-with-lexical-origins' and |
---|
| 36 | `lexical-origin' functions. This adds memory overhead but is only |
---|
| 37 | enabled in interpreted mode, or other times it could be useful |
---|
| 38 | (e.g. when compiling) |
---|
| 39 | |
---|
| 40 | * The compiler enables line-numbering, and uses the information when |
---|
| 41 | it prints errors. It also prints errors in a more standard format |
---|
| 42 | (intended to mimic GCC), and distinguishes warnings from errors |
---|
| 43 | |
---|
| 44 | * Debugger is much improved, and supports emacs-style emission of |
---|
| 45 | line number tokens. Use the included `rep-debugger.el' elisp code |
---|
| 46 | to source-debug rep programs in Emacs! |
---|
| 47 | |
---|
| 48 | * New command line option `--debug'. When given, rep starts up in |
---|
| 49 | the debugger |
---|
| 50 | |
---|
| 51 | * Reformatted backtrace output. Also backtraces only ever include |
---|
| 52 | evaluated argument lists now. They also include lexical information |
---|
| 53 | when possible |
---|
| 54 | |
---|
| 55 | * Syntax errors include error description and line number |
---|
| 56 | |
---|
| 57 | * Now supports weak reference objects. New functions |
---|
| 58 | `make-weak-ref', `weak-ref', `weak-ref-set'. A weak reference is a |
---|
| 59 | pointer to another object. When that object is garbage collected, |
---|
| 60 | the pointer in the weak reference is set to false. |
---|
| 61 | |
---|
| 62 | * New `error helper' module. When an error is handled, this module |
---|
| 63 | is called and tries to print a human-understandable message |
---|
| 64 | explaining why the error may have occurred |
---|
| 65 | |
---|
| 66 | * REPL commands may now be specified by their shortest unique set of |
---|
| 67 | leading characters, e.g. `,o' instead of `,open' |
---|
| 68 | |
---|
| 69 | * Added an `#undefined' value. Returned by `%define' and the macros |
---|
| 70 | using it (`defun', `defmacro', etc...) |
---|
| 71 | |
---|
| 72 | * New function `table-size' in module `rep.data.tables' |
---|
| 73 | |
---|
| 74 | * `thread-suspend' returns true iff the timeout was reached (i.e. |
---|
| 75 | return false if `thread-wake' was used to unsuspend the thread) |
---|
| 76 | |
---|
| 77 | * Objects defined using the `object' macro now have an implicit |
---|
| 78 | `self' binding - the object representing their self (or their most |
---|
| 79 | derived self) |
---|
| 80 | |
---|
| 81 | * Added TIMEOUT parameter to `condition-variable-wait' and |
---|
| 82 | `obtain-mutex' functions |
---|
| 83 | |
---|
| 84 | * New `rep.threads.message-port' module, implements a simple message |
---|
| 85 | queue for threads |
---|
| 86 | |
---|
| 87 | * `log' function now optionally accepts a second argument, the base |
---|
| 88 | of the logarithm |
---|
| 89 | |
---|
| 90 | * Use gmp to generate random numbers when possible (if at least |
---|
| 91 | version 3 of gmp is found) [disabled in librep 0.15.1 - gmp seems |
---|
| 92 | to be buggy?] |
---|
| 93 | |
---|
| 94 | * The `string-replace' function may now be given a function as its |
---|
| 95 | TEMPLATE parameter |
---|
| 96 | |
---|
| 97 | * Bug fixes: |
---|
| 98 | |
---|
| 99 | - Signal an error if writes don't write all characters they were |
---|
| 100 | asked to. Also, some functions could write fewer characters |
---|
| 101 | than they were supposed to even if no errors occurred |
---|
| 102 | |
---|
| 103 | - Remembered that file sizes may not fit in fixnums |
---|
| 104 | |
---|
| 105 | - Don't preserve trailing slashes in results of |
---|
| 106 | canonical-file-name (to make the path canonical) |
---|
| 107 | |
---|
| 108 | - Don't signal an error when end of file is encountered |
---|
| 109 | immediately after reading `#\X' syntax |
---|
| 110 | |
---|
| 111 | - `current-thread' and `all-threads' will create a thread |
---|
| 112 | object for the implicit thread if there isn't one already |
---|
| 113 | |
---|
| 114 | - In C subrs that take optional integer arguments, signal an |
---|
| 115 | error if the given value isn't an integer or undefined |
---|
| 116 | (false). Also, accept all types of numbers where it makes |
---|
| 117 | sense to do so |
---|
| 118 | |
---|
| 119 | - Signal an error if end of file is read while parsing a block |
---|
| 120 | comment |
---|
| 121 | |
---|
| 122 | - Don't ever return a null object from `current-time-string' |
---|
| 123 | |
---|
| 124 | - Catch errors signalled during command line option processing, |
---|
| 125 | and pass them to the standard error handler |
---|
| 126 | |
---|
| 127 | - Right hand side of `letrec' bindings may now have more than |
---|
| 128 | one form |
---|
| 129 | |
---|
| 130 | - The `object' macro now evaluates its BASE-OBJECT parameter |
---|
| 131 | exactly once |
---|
| 132 | |
---|
| 133 | - Finally removed `define-value' |
---|
| 134 | |
---|
| 135 | - Ignore null lines (or lines which only have comments) in the |
---|
| 136 | repl |
---|
| 137 | |
---|
| 138 | - In the compiler, don't expand macros which have have been |
---|
| 139 | shadowed by local bindings |
---|
| 140 | |
---|
| 141 | - Don't print some compiler errors/warnings twice |
---|
| 142 | |
---|
| 143 | - Fixes for `mips-compaq-nonstopux' architecture (Tom Bates) |
---|
| 144 | |
---|
| 145 | - Fixed `,reload' and `,unload' repl commands not to try to |
---|
| 146 | remove non-existent structures |
---|
| 147 | |
---|
| 148 | |
---|
| 149 | 0.14 |
---|
| 150 | ==== |
---|
| 151 | |
---|
| 152 | * New module `rep.util.md5', has two functions for generating MD5 |
---|
| 153 | message digests (of files or strings) |
---|
| 154 | |
---|
| 155 | * Changes to the `rep.io.sockets' function: |
---|
| 156 | |
---|
| 157 | In the `socket-server' function the HOST and/or PORT arguments may |
---|
| 158 | be false, meaning to listen on all addresses and to choose a |
---|
| 159 | random unused port. |
---|
| 160 | |
---|
| 161 | New functions `socket-peer-address' and `socket-peer-port', these |
---|
| 162 | always returns the details of the far end of the connetion. |
---|
| 163 | `socket-address' and `socket-port' have been changed to always |
---|
| 164 | return the details of the local connection point. |
---|
| 165 | |
---|
| 166 | * New function in `rep.system' module, `crypt'. A wrapper for the |
---|
| 167 | system's `crypt' function (if it has one) |
---|
| 168 | |
---|
| 169 | * New function in `rep.threads' mdoule, `make-suspended-thread' |
---|
| 170 | |
---|
| 171 | * New module `rep.net.rpc', provides a text-stream based RPC |
---|
| 172 | mechanism for Lisp programs. Similar in some ways to untyped CORBA. |
---|
| 173 | (This is still in the experimental stage - its interface may |
---|
| 174 | change in forthcoming releases) |
---|
| 175 | |
---|
| 176 | * New functions in `rep.data' module, `list->vector' and |
---|
| 177 | `vector->list' |
---|
| 178 | |
---|
| 179 | * New macro `define-special-form'. A combination of `defvar' and |
---|
| 180 | `setq' - it always makes the variable special and it always sets |
---|
| 181 | it to the given value |
---|
| 182 | |
---|
| 183 | * New module `rep.test.framework' implementing `assert', `check' and |
---|
| 184 | `test' macros. This provides a framework for implementing unit |
---|
| 185 | tests in Lisp modules (such that running the interpreter with the |
---|
| 186 | `--check' option will run all tests that have been set up to be |
---|
| 187 | autoloaded |
---|
| 188 | |
---|
| 189 | * Bug fixes: |
---|
| 190 | |
---|
| 191 | - When reading from strings, don't choke on zero bytes |
---|
| 192 | |
---|
| 193 | - When writing into sockets, be aware that the socket is in |
---|
| 194 | non-blocking mode |
---|
| 195 | |
---|
| 196 | - SDBM and GDBM modules now close any open databases before the |
---|
| 197 | interpreter exits |
---|
| 198 | |
---|
| 199 | - Fixed the `rep_parse_number' function not to require a |
---|
| 200 | terminating null character in the string when parsing bignums |
---|
| 201 | |
---|
| 202 | - Only define `Qrep_lang_interpreter' once |
---|
| 203 | |
---|
| 204 | - Don't assign vm registers to physical registers on 68000 |
---|
| 205 | architectures - it's been reported to crash |
---|
| 206 | |
---|
| 207 | - When running asynchronous subprocesses, open and initialize |
---|
| 208 | the pty slave before forking to avoid a race condition with |
---|
| 209 | the child process |
---|
| 210 | |
---|
| 211 | - Flush symbols from the module cache at another point |
---|
| 212 | |
---|
| 213 | - Fixes for Unixware |
---|
| 214 | |
---|
| 215 | - When compiling non-top-level `defvar' forms, add any doc |
---|
| 216 | string they have to the database |
---|
| 217 | |
---|
| 218 | |
---|
| 219 | 0.13.5 |
---|
| 220 | ====== |
---|
| 221 | |
---|
| 222 | * Tar file handling no longer requires GNU tar |
---|
| 223 | |
---|
| 224 | * The `defvar' special form can now take only a single argument |
---|
| 225 | |
---|
| 226 | * The reader now treats `#\return' characters as white space |
---|
| 227 | |
---|
| 228 | * Other miscellaneous bug fixes... |
---|
| 229 | |
---|
| 230 | |
---|
[15761] | 231 | 0.13.4 |
---|
| 232 | ====== |
---|
| 233 | |
---|
| 234 | * Don't restrict symbols exported from plugin libraries, some need |
---|
| 235 | to export symbols to work properly (this bug only seemed to appear |
---|
| 236 | on Solaris systems) |
---|
| 237 | |
---|
| 238 | * Added `rep_file_type' and `rep_guardian_type' to the list of |
---|
| 239 | symbols exported from librep |
---|
| 240 | |
---|
| 241 | * Fixed the `install-aliases' script (Peter Teichman) |
---|
| 242 | |
---|
| 243 | * New module `rep.threads.condition-variable' |
---|
| 244 | |
---|
| 245 | * Added `string-split' and `string-replace' to the gaol |
---|
| 246 | |
---|
| 247 | |
---|
| 248 | 0.13.3 |
---|
| 249 | ====== |
---|
| 250 | |
---|
| 251 | * Try to only export public symbols from `librep.so' and modules |
---|
| 252 | |
---|
| 253 | * When expanding file names translate `/..' to `/' |
---|
| 254 | |
---|
| 255 | * Set an upper bound on the allowed recursion depth when regexp |
---|
| 256 | matching, prevents the stack from overflowing in pathological cases |
---|
| 257 | |
---|
| 258 | * Added optional second arg to `readline' function, a function to |
---|
| 259 | call to generate completions. The `rl-completion-generator' method |
---|
| 260 | of supplying this function is deprecated |
---|
| 261 | |
---|
| 262 | * Fixed bugs when handling character-case in regexp module (Andrew |
---|
| 263 | Rodionoff) |
---|
| 264 | |
---|
| 265 | * Added an `premature-end-of-stream' error. This is signalled |
---|
| 266 | instead of `end-of-stream' when reading characters in the middle |
---|
| 267 | of a syntax form. The `end-of-stream' error is only signalled when |
---|
| 268 | the end of the stream is reached before encountering anything other |
---|
| 269 | than whitespace characters |
---|
| 270 | |
---|
| 271 | * Fixed bug of expanding declarations in the `define' macro expansion |
---|
| 272 | |
---|
| 273 | |
---|
[15282] | 274 | 0.13.2 |
---|
| 275 | ====== |
---|
| 276 | |
---|
| 277 | * Fix `define' so that it tracks bound variables and ignores |
---|
| 278 | shadowed keywords when traversing code |
---|
| 279 | |
---|
| 280 | * Added checks to compilation process for the kind of missing |
---|
| 281 | shared-library problems that many people see |
---|
| 282 | |
---|
| 283 | * Fixed the `install-aliases' shell script |
---|
| 284 | |
---|
| 285 | * New configure option: `--enable-full-name-terminator' |
---|
| 286 | |
---|
| 287 | |
---|
| 288 | 0.13.1 |
---|
| 289 | ====== |
---|
| 290 | |
---|
| 291 | * Added functions `remove-if' and `remove-if-not' |
---|
| 292 | |
---|
| 293 | * Various bug-fixes for non-linux or solaris systems (John H. |
---|
| 294 | Palmieri, Philippe Defert) |
---|
| 295 | |
---|
| 296 | * `#f', `#t', `#!optional', `#!key' and `#!rest' are now uninterned |
---|
| 297 | symbols. Keywords are interned in a separate obarray |
---|
| 298 | |
---|
| 299 | * Fixed bug of caching regexps even when their string has been |
---|
| 300 | modified |
---|
| 301 | |
---|
| 302 | * Fixed some bugs in the ftp remote file handler and the |
---|
| 303 | `pwd-prompt' function |
---|
| 304 | |
---|
| 305 | * Fixed `define' to ignore `structure' and `define-structure' forms |
---|
| 306 | |
---|
| 307 | |
---|
| 308 | 0.13 |
---|
| 309 | ==== |
---|
| 310 | |
---|
| 311 | * The end-of-list / boolean-false object is no longer the symbol |
---|
| 312 | `nil'. Instead there is a special object `()' fulfulling these two |
---|
| 313 | roles. For modules importing the `rep' module, the symbol `nil' |
---|
| 314 | evaluates to `()'. This allows the `scheme' module to be more |
---|
| 315 | compliant with the Scheme standard |
---|
| 316 | |
---|
| 317 | * Parameter list changes: |
---|
| 318 | |
---|
| 319 | - Deprecated `&optional' and `&rest', in favour of `#!optional' |
---|
| 320 | and `#!rest'. |
---|
| 321 | |
---|
| 322 | - Added keyword parameters. Use `#!key' to declare them. |
---|
| 323 | Keyword syntax is `#:PARAM'. For example: |
---|
| 324 | |
---|
| 325 | ((lambda (#!key a b) (list a b)) #:b 2 #:a 1) => (1 2) |
---|
| 326 | |
---|
| 327 | - `#!optional' and `#!key' parameters may now have default |
---|
| 328 | values, syntax is `(VAR DEFAULT)'. For example: |
---|
| 329 | |
---|
| 330 | ((lambda (#!optional (a 1)) a)) => 1 |
---|
| 331 | |
---|
| 332 | * The module namespace is now hierarchical. `.' characters in module |
---|
| 333 | names denote directory separators, e.g. `foo.bar' translates to |
---|
| 334 | the file `foo/bar' |
---|
| 335 | |
---|
| 336 | All module names prefixed with `rep.' are reserved for librep, |
---|
| 337 | other top-level names should be picked to be as unique as possible |
---|
| 338 | |
---|
| 339 | The existing modules have been renamed to fit this scheme (see the |
---|
| 340 | file `TREE' in the distribution for the hierarchy details). |
---|
| 341 | However, old module names will still work for the time being |
---|
| 342 | |
---|
| 343 | * The `rep' module no longer includes the `rep.regexp', |
---|
| 344 | `rep.system', `rep.io.files', `rep.io.processes' or |
---|
| 345 | `rep.io.file-handlers' modules. These need to be imported |
---|
| 346 | explicitly |
---|
| 347 | |
---|
| 348 | * Doc strings are now indexed by module name as well as symbol name. |
---|
| 349 | The `define' macro now takes a doc string as its optional third |
---|
| 350 | parameter |
---|
| 351 | |
---|
| 352 | * Record constructors may include all lambda-list keywords (e.g. |
---|
| 353 | keywords and/or default values) |
---|
| 354 | |
---|
| 355 | * Incompatible virtual machine changes, hence bytecode files will |
---|
| 356 | need to be recompiled. Improvements include: |
---|
| 357 | |
---|
| 358 | - Only heap-allocate variables when absolutely necessary |
---|
| 359 | |
---|
| 360 | - Closure analysis to allow inlining of some types of `letrec' |
---|
| 361 | expressions |
---|
| 362 | |
---|
| 363 | - Added a `safe' virtual machine, which makes no assumptions |
---|
| 364 | regarding validity of bytecode, so is safe for untrusted code |
---|
| 365 | |
---|
| 366 | * Added an `unscheme' module. Another Scheme implementation, but the |
---|
| 367 | goal of this one is to integrate cleanly with the librep runtime |
---|
| 368 | environment, even if this is at the expense of R4RS compliance |
---|
| 369 | |
---|
| 370 | For example, in `unscheme' code, `#f => ()' and `#t => t'. This |
---|
| 371 | allows rep and unscheme functions to call each other without |
---|
| 372 | needing to convert any data |
---|
| 373 | |
---|
| 374 | * By default, it is now illegal to modify top-level variables that |
---|
| 375 | have not previously been defined |
---|
| 376 | |
---|
| 377 | * New macro `define-structures' to export multiple views of a single |
---|
| 378 | underlying environment |
---|
| 379 | |
---|
| 380 | * The librep runtime no longer handles the `--help' option itself, |
---|
| 381 | this should be done by scripts |
---|
| 382 | |
---|
| 383 | * Don't search `$LD_LIBRARY_PATH' for plugins, but prepend all |
---|
| 384 | directories in colon-separated `$REP_DL_LOAD_PATH' to |
---|
| 385 | `dl-load-path'. Similarly, the contents of `$REP_LOAD_PATH' is |
---|
| 386 | prepended to `rep-load-path' |
---|
| 387 | |
---|
| 388 | * `(/ X) => (/ 1 X)' |
---|
| 389 | |
---|
| 390 | * Extra string-manipulation functions: `string-replace', |
---|
| 391 | `string-split' (in the `rep.regexp' module) |
---|
| 392 | |
---|
| 393 | * `#f' and `#t' are now primitive symbols, not special objects |
---|
| 394 | |
---|
| 395 | * Special case tail-recursive calls to `apply', to ensure they get |
---|
| 396 | eliminated |
---|
| 397 | |
---|
| 398 | * The `0x123' and `0123' read syntaxes have been deprecated, use |
---|
| 399 | `#x123' and `#o123' instead |
---|
| 400 | |
---|
| 401 | * `#| ... |#' comments now nest correctly |
---|
| 402 | |
---|
| 403 | * New modules: `rep.i18n.gettext', `rep.vm.safe-interpreter', |
---|
| 404 | `rep.vm.assembler', `unscheme', `rep.data.objects', |
---|
| 405 | `rep.www.quote-url', `rep.www.fetch-url', `rep.util.ispell', |
---|
| 406 | `rep.util.base64', `rep.util.autoloader', `rep.io.sockets', |
---|
| 407 | `rep.util.time', `rep.net.domain-name' |
---|
| 408 | |
---|
| 409 | * Bug fixes, including: |
---|
| 410 | |
---|
| 411 | - Find size of `long long' type on AIX, IRIX and Solaris (Dan |
---|
| 412 | McNichol, Albert Chin-A-Young) |
---|
| 413 | |
---|
| 414 | - Never allow macros to be called as functions |
---|
| 415 | |
---|
| 416 | - Make bitfields unsigned (Albert Chin-A-Young) |
---|
| 417 | |
---|
| 418 | - Fixed bounds-checking when parsing non-base-10 fixnums |
---|
| 419 | |
---|
| 420 | - Thread fixes (and much lower thread-switch latency in many |
---|
| 421 | cases) |
---|
| 422 | |
---|
| 423 | - Fixed `DEFUN' macro for C++ (Matt Tucker); also fixed header |
---|
| 424 | files to avoid C++ keywords |
---|
| 425 | |
---|
| 426 | - Make error message for bytecode version mismatches more |
---|
| 427 | meaningful |
---|
| 428 | |
---|
| 429 | - Fixed: `default-boundp', `continuation-callable-p' |
---|
| 430 | |
---|
| 431 | - Only the evaluate the value of `defvar' forms if the symbol |
---|
| 432 | isn't already bound |
---|
| 433 | |
---|
| 434 | - Compile else-less `case' expressions correctly; eliminate |
---|
| 435 | tail-recursion in `cond' forms when possible |
---|
| 436 | |
---|
| 437 | - Various fixes in `scheme' module |
---|
| 438 | |
---|
| 439 | 0.12.4 |
---|
| 440 | ====== |
---|
| 441 | |
---|
| 442 | * Support building without GNU MP, `--without-gmp' option to |
---|
| 443 | configure. Use `long long' for non-fixnum integers (promote to |
---|
| 444 | floats when out of range); no exact rationals. There's also an |
---|
| 445 | option to disable continuations/threading |
---|
| 446 | (`--disable-continuations') |
---|
| 447 | |
---|
| 448 | * Sanitized function inlining: |
---|
| 449 | |
---|
| 450 | - Use `(declare (inline NAMES...))' to tell the compiler that |
---|
| 451 | it might be useful to inline the named functions |
---|
| 452 | |
---|
| 453 | - Don't even think about inlining across module/file boundaries |
---|
| 454 | (for now anyway) |
---|
| 455 | |
---|
| 456 | * Cleaned up the `gaol' module. Interface is essentially: |
---|
| 457 | `gaol-define', `gaol-define-special', `gaol-define-file-handler'. |
---|
| 458 | Added `gaol-open' to import complete modules. Still supports old |
---|
| 459 | interface |
---|
| 460 | |
---|
| 461 | * Be a lot more efficient when printing quoted strings and symbol |
---|
| 462 | names (for some streams there used to be a system-call per |
---|
| 463 | character!) Also, when quoting weird symbol names, be more |
---|
| 464 | intelligent |
---|
| 465 | |
---|
| 466 | * Removed code to autoload from modules (which didn't really work |
---|
| 467 | anyway) |
---|
| 468 | |
---|
| 469 | * Be more intelligent about deciding when to flush the module cache |
---|
| 470 | |
---|
| 471 | * Build fixes for IRIX (David Kaelbling) |
---|
| 472 | |
---|
| 473 | * Other miscellaneous bug-fixes and performance tweaks |
---|
| 474 | |
---|
| 475 | |
---|
| 476 | 0.12.3 |
---|
| 477 | ====== |
---|
| 478 | |
---|
| 479 | * New function `thread-join', waits for a specified thread to exit, |
---|
| 480 | then returns the value of the last form it evaluated |
---|
| 481 | |
---|
| 482 | * Added a rudimentary profiler (`,profile FORM' command in repl) |
---|
| 483 | |
---|
| 484 | * Reorganized `ring' module, sanitized the interface (preserving |
---|
| 485 | compatibility with old functions), also added a `ring->list' |
---|
| 486 | function |
---|
| 487 | |
---|
| 488 | * `rplaca' and `rplacd' (but not `setcar' and `setcdr') functions |
---|
| 489 | now return the cell being modified, not the value being stored |
---|
| 490 | into it, for compatibility with CL (Karl Hegbloom) |
---|
| 491 | |
---|
| 492 | * `unwind-protect', `catch', `condition-case': these special forms |
---|
| 493 | are now macros |
---|
| 494 | |
---|
| 495 | * When signalling `bad-arg' or `missing-arg' errors, try to include |
---|
| 496 | the function as the first element of the error data |
---|
| 497 | |
---|
| 498 | * `load' function now _only_ loads files without suffixes if |
---|
| 499 | NO-SUFFIX arg is non-`nil' (prevents picking up un-suffixed files |
---|
| 500 | by mistake, e.g. from the current directory) |
---|
| 501 | |
---|
| 502 | * Fixed some bugs when reading rationals |
---|
| 503 | |
---|
| 504 | * Fixed bug of `gettext' module not redefining `_' binding in `rep' |
---|
| 505 | module |
---|
| 506 | |
---|
| 507 | * Fixed bug when building `rep-config' script (Mark Hewitt, Dan |
---|
| 508 | Winship) |
---|
| 509 | |
---|
| 510 | * Fixed bug of `rep_INTERN_SPECIAL' macro not looking for default |
---|
| 511 | values of special variables |
---|
| 512 | |
---|
| 513 | * Fixed interpreted versions of `min' and `max' when operating on |
---|
| 514 | non-numeric values |
---|
| 515 | |
---|
| 516 | * If unable to allocate heap space, just print an error and |
---|
| 517 | terminate the program (the low-memory handling doesn't currently |
---|
| 518 | work properly) |
---|
| 519 | |
---|
| 520 | * Fixed bug when extracting doc strings from `define' forms |
---|
| 521 | |
---|
| 522 | * Fixed bug when compiling structure definitions in non-top-level |
---|
| 523 | environments |
---|
| 524 | |
---|
| 525 | * Fixed bug of being unable to `load' empty files |
---|
| 526 | |
---|
| 527 | * When recursively macro-expanding, dereference identifiers in the |
---|
| 528 | correct module |
---|
| 529 | |
---|
| 530 | |
---|
| 531 | 0.12.2 |
---|
| 532 | ====== |
---|
| 533 | |
---|
| 534 | * The tar file-handler now caches the unpacked archive (wins big |
---|
| 535 | when loading sawfish themes) |
---|
| 536 | |
---|
| 537 | * The `gaol' module can now create multiple gaols, each with it's |
---|
| 538 | own namespace |
---|
| 539 | |
---|
| 540 | * More performance tweaks |
---|
| 541 | |
---|
| 542 | * Miscellaneous bug-fixes (more vm stack smashing, `defconst' never |
---|
| 543 | evaluates its constant) |
---|
| 544 | |
---|
| 545 | |
---|
| 546 | 0.12.1 |
---|
| 547 | ====== |
---|
| 548 | |
---|
| 549 | * Some virtual machine performance tweaks |
---|
| 550 | |
---|
| 551 | * Fixed nasty stack smashing bug (when using compiler declarations) |
---|
| 552 | |
---|
| 553 | * Some 64-bit cleanups (George Lebl) |
---|
| 554 | |
---|
| 555 | * Fixed non-ANSI C syntax (Sam Falkner) |
---|
| 556 | |
---|
| 557 | |
---|
| 558 | 0.12 |
---|
| 559 | ==== |
---|
| 560 | |
---|
| 561 | * Added a basic module system. |
---|
| 562 | |
---|
| 563 | Modelled after the Scheme48 system, but simpler. At its simplest, |
---|
| 564 | include a `define-structure' form in each file representing a |
---|
| 565 | module: |
---|
| 566 | |
---|
| 567 | (define-structure NAME INTERFACE CONFIG BODY...) |
---|
| 568 | |
---|
| 569 | The external definitions of this module can then be imported by |
---|
| 570 | other modules through their CONFIG statements, e.g. `(open |
---|
| 571 | NAMES...)'. Most modules will open `rep' to get the standard |
---|
| 572 | language definitions. |
---|
| 573 | |
---|
| 574 | `foo#bar' reads as `(structure-ref foo bar)' |
---|
| 575 | |
---|
| 576 | The `timers', `tables', `sdbm', `gdbm', `readline', `gettext', |
---|
| 577 | `ring', `mutex', `memoize', `lisp-doc', `disassembler', `compiler', |
---|
| 578 | `date', `cgi-get', `gaol' features are all now modules (this is |
---|
| 579 | backwards compatible, since modules may be imported using |
---|
| 580 | `require') |
---|
| 581 | |
---|
| 582 | See the "Modules" section of the manual for more details. |
---|
| 583 | |
---|
| 584 | * The repl now contains meta-commands for inspecting and configuring |
---|
| 585 | the module system (amongst other things) |
---|
| 586 | |
---|
| 587 | * Added a facility for creating new primitive types: `make-datum', |
---|
| 588 | `datum-ref', `datum-set', `has-type-p', `define-datum-printer' |
---|
| 589 | |
---|
| 590 | * Added an SRFI 9 compatible `define-record-type' macro for defining |
---|
| 591 | data structures (the `records' module) |
---|
| 592 | |
---|
| 593 | * Added fluid variables--a method of creating dynamically scoped |
---|
| 594 | bindings that fit well with lexically scoped definitions |
---|
| 595 | (`make-fluid', `fluid', `fluid-set', `with-fluids', `let-fluids') |
---|
| 596 | |
---|
| 597 | * Added a `queues' module providing a basic queue type |
---|
| 598 | |
---|
| 599 | * Added stream functions: `peek-char', `input-stream-p', |
---|
| 600 | `output-stream-p' |
---|
| 601 | |
---|
| 602 | * Interpreter now also eliminates tail-calls |
---|
| 603 | |
---|
| 604 | * Changed handling of inexact numbers to be compatible with the |
---|
| 605 | Scheme standard: |
---|
| 606 | |
---|
| 607 | - Many operations now produce inexact outputs if any of their |
---|
| 608 | inputs are inexact (e.g. `min', `max', `floor', `ceiling', |
---|
| 609 | `round', `truncate') |
---|
| 610 | |
---|
| 611 | - `eql' and `equal' no longer ignore exactness when comparing |
---|
| 612 | numbers. `=', `/=', `<', `>', `<=' and `>=' _do_ ignore |
---|
| 613 | inexactness. E.g. |
---|
| 614 | |
---|
| 615 | (eql 2 2.) => nil |
---|
| 616 | (= 2 2.) => t |
---|
| 617 | |
---|
| 618 | * Support most of Scheme's read-syntax for numbers (i.e. `#b', `#o', |
---|
| 619 | `#d', `#x' radix prefixes, and `#e', `#i' exactness prefixes). |
---|
| 620 | |
---|
| 621 | * Implemented Scheme's `string->number' and `number->string' |
---|
| 622 | functions |
---|
| 623 | |
---|
| 624 | * Included a basic R4RS Scheme implementation (module: `scheme'). Do |
---|
| 625 | `,new foo <RET> ,open scheme' to test it in the repl, use `(open |
---|
| 626 | scheme)' instead of `(open rep)' to use it within modules. |
---|
| 627 | |
---|
| 628 | The compiler also knows enough about Scheme to be able to compile |
---|
| 629 | it. Also, use the `-s' or `--scheme' options to load a file of |
---|
| 630 | Scheme code. |
---|
| 631 | |
---|
| 632 | * The debugger works better (and can be used to walk the stack |
---|
| 633 | history somewhat) |
---|
| 634 | |
---|
| 635 | * Last arg of `append' and `nconc' may be a non-proper-list now |
---|
| 636 | |
---|
| 637 | * Implemented the Scheme `do' macro for iteration |
---|
| 638 | |
---|
| 639 | * `define' supports curried functions. E.g. `(define ((plus a) b) (+ |
---|
| 640 | a b))', then `(plus 1)' evaluates to the function that adds one to |
---|
| 641 | its argument. |
---|
| 642 | |
---|
| 643 | * Many performance improvements: |
---|
| 644 | |
---|
| 645 | - Allocates less memory (so garbage collects less often) |
---|
| 646 | |
---|
| 647 | - Much faster at bytecode-to-bytecode function calling |
---|
| 648 | |
---|
| 649 | - Much reduced VM overhead (when compiled with GCC) |
---|
| 650 | |
---|
| 651 | * Compiler improvements: |
---|
| 652 | |
---|
| 653 | - Supports the `(declare CLAUSES...)' form. See the "Compiler |
---|
| 654 | Declarations" section of the manual for details on the actual |
---|
| 655 | declarations supported. |
---|
| 656 | |
---|
| 657 | - Is cleverer about detecting when to create new bindings when |
---|
| 658 | tail recursing, and when the old bindings can just be |
---|
| 659 | overwritten |
---|
| 660 | |
---|
| 661 | - Groks the module system, and the language of the module being |
---|
| 662 | compiled (so that it can compile both rep and Scheme code) |
---|
| 663 | |
---|
| 664 | - Splices bodies of top-level `progn' and `begin' forms |
---|
| 665 | themselves into the top-level (for when macros expand into |
---|
| 666 | multiple definitions) |
---|
| 667 | |
---|
| 668 | - Compiling already defined functions (or whole modules of |
---|
| 669 | functions) now (mostly) works |
---|
| 670 | |
---|
| 671 | - Coalesce and compile non-defining top-level forms |
---|
| 672 | |
---|
| 673 | * Many bug fixes (see ChangeLog files for details) |
---|
| 674 | |
---|
| 675 | |
---|
| 676 | 0.11.3 |
---|
| 677 | ====== |
---|
| 678 | |
---|
| 679 | * Fixed bug of throwing uninitialized errors when autoloading |
---|
| 680 | |
---|
| 681 | * Fixed bug of interpreting `(let () ...)' as a named let |
---|
| 682 | |
---|
| 683 | 0.11.2 |
---|
| 684 | ====== |
---|
| 685 | |
---|
| 686 | * Replaced many special forms by macros--`let', `let*', `function', |
---|
| 687 | `if', `and', `or', `prog2', `defmacro', `defun', `defconst', |
---|
| 688 | `define-value', `setq-default' |
---|
| 689 | |
---|
| 690 | * `let' now supports Scheme's named-let construct for iteration via |
---|
| 691 | tail recursion |
---|
| 692 | |
---|
| 693 | * Parse some standard Common Lisp and Scheme syntax: `#| ... |#' |
---|
| 694 | block comments, `#\C' or `#\NAME' characters (where NAME may be |
---|
| 695 | one of: `space', `newline', `backspace', `tab', `linefeed', |
---|
| 696 | `return', `page', `rubout'), and `#(...)' vectors |
---|
| 697 | |
---|
| 698 | * When comparing symbols, compare their names as strings |
---|
| 699 | |
---|
| 700 | * Implemented Scheme's `dynamic-wind' function |
---|
| 701 | |
---|
| 702 | * Fixed bug of sometimes evaluating function arguments in the |
---|
| 703 | environment of the callee not the caller |
---|
| 704 | |
---|
| 705 | * Fixed bug when calculating how long to sleep for when no threads |
---|
| 706 | are available |
---|
| 707 | |
---|
| 708 | * Fixed bugs in mutex implementation (Damon Anderson) |
---|
| 709 | |
---|
| 710 | * Work around bugs in Tru64 `RTLD_GLOBAL'; everything should work on |
---|
| 711 | Tru64 now (Aron Griffis) |
---|
| 712 | |
---|
| 713 | * Fixed bug of not saving current regexp state across continuations |
---|
| 714 | |
---|
| 715 | |
---|
| 716 | 0.11.1 |
---|
| 717 | ====== |
---|
| 718 | |
---|
| 719 | * The compiler now eliminates single-function tail calls (instead of |
---|
| 720 | leaving it to the virtual machine) |
---|
| 721 | |
---|
| 722 | * Updated to use libtool-1.3.4 |
---|
| 723 | |
---|
| 724 | * Miscellaneous bug fixes and minor changes |
---|
| 725 | |
---|
| 726 | 0.11 |
---|
| 727 | ==== |
---|
| 728 | |
---|
| 729 | * Better support for numerical computing. Now supports bignums, |
---|
| 730 | rational numbers (numerator and denominator are bignums), and |
---|
| 731 | floating point values as well as the original fixnums. Many new |
---|
| 732 | numerical functions supporting these types. Promotes and demotes |
---|
| 733 | hopefully as you'd expect (never demotes an inexact number to an |
---|
| 734 | exact number). Tries to follow the Scheme numeric system as much |
---|
| 735 | as possible |
---|
| 736 | |
---|
| 737 | * Supports "guardian" objects through the `make-guardian' function |
---|
| 738 | (as described in Dybvig's paper). These are a clean mechanism for |
---|
| 739 | allowing the programmer to control when arbitrary lisp objects are |
---|
| 740 | finally deallocated. Also added a new hook: `after-gc-hook' |
---|
| 741 | |
---|
| 742 | * The default error handler can now be redefined. If the variable |
---|
| 743 | `error-handler-function' contains a function then it will be |
---|
| 744 | called to handle the error, with arguments `(ERROR DATA)'. |
---|
| 745 | |
---|
| 746 | * New special form `case', switches on a key value and sets of |
---|
| 747 | constants |
---|
| 748 | |
---|
| 749 | * New function `call/cc' (also available through the alias |
---|
| 750 | `call-with-current-continuation'). Provides scheme-like |
---|
| 751 | continuation functions. Special variables are now deep-bound to |
---|
| 752 | support this correctly |
---|
| 753 | |
---|
| 754 | * Supports "soft" preemptive threads using continuations and a |
---|
| 755 | general "barrier" mechanism (used either for restricting control |
---|
| 756 | flow, or for receiving notification when control passes across a |
---|
| 757 | barrier) |
---|
| 758 | |
---|
| 759 | * Parameter lists in lambda expressions now support improper lists, |
---|
| 760 | as in scheme. E.g. `(lambda (x . y) ...)' |
---|
| 761 | |
---|
| 762 | * Implements the scheme `define' syntax, with support for inner |
---|
| 763 | definitions |
---|
| 764 | |
---|
| 765 | * The `tables' plugin implements hash tables, with extensible |
---|
| 766 | hashing and comparison methods; supports both strongly and weakly |
---|
| 767 | keyed tables |
---|
| 768 | |
---|
| 769 | * Included a GDBM binding; DOC files are now stored in GDBM files |
---|
| 770 | (SDBM has limits on datum sizes) |
---|
| 771 | |
---|
| 772 | * `put' and `get' functions now use `equal' to compare property names |
---|
| 773 | |
---|
| 774 | * Virtual machine / compiler improvements: |
---|
| 775 | |
---|
| 776 | - Variable references and mutations are classified by type: |
---|
| 777 | lexical bindings use (one-dimensional) lexically addressed |
---|
| 778 | instructions, global non-special bindings have their own |
---|
| 779 | instructions, everything else uses the original instructions. |
---|
| 780 | Similar classification when creating new bindings |
---|
| 781 | |
---|
| 782 | - Eliminate tail-recursive function calls wherever possible in |
---|
| 783 | compiled code (when the calling function has no dynamic state) |
---|
| 784 | |
---|
| 785 | Compiled lisp code will need to be rebuilt to run on the modified |
---|
| 786 | virtual machine. |
---|
| 787 | |
---|
| 788 | * When expanding macros, bind `macro-environment' to the macro |
---|
| 789 | environment it was called with. This allows macros to reliably |
---|
| 790 | expand inner macro uses |
---|
| 791 | |
---|
| 792 | * New hook `before-exit-hook'. Called immediately before exiting |
---|
| 793 | |
---|
| 794 | * `rep-xgettext' now has an option `--c'. This makes it output |
---|
| 795 | pseudo C code containing the string constants found |
---|
| 796 | |
---|
| 797 | * Fixed misfeature of interpreting filenames `FOO//BAR' as `/BAR'. |
---|
| 798 | Contiguous path separators are now merged (i.e. `FOO/BAR') |
---|
| 799 | |
---|
| 800 | |
---|
| 801 | 0.10 |
---|
| 802 | ==== |
---|
| 803 | |
---|
| 804 | * Updated support for dumping (freezing) lisp definitions to handle |
---|
| 805 | lisp-1 nature with closures. Also now generates C code instead of |
---|
| 806 | assembler for portability; creates a plugin that may be loaded |
---|
| 807 | through the REP_DUMP_FILE environment variable |
---|
| 808 | |
---|
| 809 | * Plugin `.la' files may now contain rep-specific settings: |
---|
| 810 | `rep_open_globally=yes' and `rep_requires='FEATURES...'' |
---|
| 811 | |
---|
| 812 | * New function `define-value'. A combination of `set' and `defvar', |
---|
| 813 | but without implying dynamic scope |
---|
| 814 | |
---|
| 815 | * `load' scans AFTER-LOAD-ALIST for plugins as well as lisp libraries |
---|
| 816 | |
---|
| 817 | * `(if t)' now evaluates to `nil' not `t' |
---|
| 818 | |
---|
| 819 | * Fix regexp bug in matching simple non-greedy operators (Matt Krai) |
---|
| 820 | |
---|
| 821 | * Borrowed guile's bouncing parentheses for readline (Ceri Storey) |
---|
| 822 | |
---|
| 823 | * New C functions `rep_load_environment' and `rep_top_level_exit' |
---|
| 824 | |
---|
| 825 | * `defvar' allows symbols to be redefined in protected environments |
---|
| 826 | if they haven't also been defined by unprotected environments |
---|
| 827 | |
---|
| 828 | * Detect GCC's with broken `__builtin_return_address' functions |
---|
| 829 | (George Lebl) |
---|
| 830 | |
---|
| 831 | * Try to use libc `gettext' implementation, but only if it looks |
---|
| 832 | like it's the GNU implementation |
---|
| 833 | |
---|
| 834 | |
---|
| 835 | 0.9 |
---|
| 836 | === |
---|
| 837 | |
---|
| 838 | * Support for using GNU readline (give configure the |
---|
| 839 | `--with-readline' option) |
---|
| 840 | |
---|
| 841 | * New functions: `letrec', `caar', ..., `cddr', `caaar', ..., |
---|
| 842 | `cdddr', `in-hook-p', `make-variable-special' |
---|
| 843 | |
---|
| 844 | * Changed `unless' to have the Common Lisp semantics--return `nil' |
---|
| 845 | when the condition evaluates true, not the value of the condition |
---|
| 846 | |
---|
| 847 | * Fixed/added some compiler optimisations |
---|
| 848 | |
---|
| 849 | * Fixed `rep-xgettext' script to remove duplicated strings and to |
---|
| 850 | search exhaustively |
---|
| 851 | |
---|
| 852 | * `add-hook' forces the hook variable to be special (in case it |
---|
| 853 | wasn't declared using `defvar') |
---|
| 854 | |
---|
| 855 | |
---|
| 856 | 0.8.1 |
---|
| 857 | ===== |
---|
| 858 | |
---|
| 859 | Fixed some documentation bugs; fixed some build problems |
---|
| 860 | |
---|
| 861 | 0.8 |
---|
| 862 | === |
---|
| 863 | |
---|
| 864 | * Default scoping is now lexical, only variables declared using |
---|
| 865 | `defvar' are dynamically scoped. |
---|
| 866 | |
---|
| 867 | * There is now only a single namespace for symbols (excepting |
---|
| 868 | property lists), this means that the `fset', `symbol-function' and |
---|
| 869 | `fboundp' functions have been removed |
---|
| 870 | |
---|
| 871 | This allows all elements in procedure-call forms to be evaluated |
---|
| 872 | equally (as in scheme), so things like: |
---|
| 873 | |
---|
| 874 | ((if t + -) 1 2) |
---|
| 875 | |
---|
| 876 | now work. Related to this, function names (i.e. symbols and lambda |
---|
| 877 | expressions) are no longer dereferenced by any operations taking |
---|
| 878 | functions as arguments. Only built-in subroutines and closures are |
---|
| 879 | considered functions. |
---|
| 880 | |
---|
| 881 | This means that where before you'd write something like: |
---|
| 882 | |
---|
| 883 | (mapcar '+ '(1 2 3)) |
---|
| 884 | |
---|
| 885 | this is now illegal; the `+' function must be evaluated: |
---|
| 886 | |
---|
| 887 | (mapcar + '(1 2 3)) |
---|
| 888 | |
---|
| 889 | * `lambda' is now a special form evaluating to a closure (as in |
---|
| 890 | scheme); this means that the following are exactly equivalent: |
---|
| 891 | |
---|
| 892 | (lambda (x) x) == (function (lambda (x) x)) == #'(lambda (x) x) |
---|
| 893 | |
---|
| 894 | An alternative method of enclosing a lambda expression is to use |
---|
| 895 | the `make-closure' function. |
---|
| 896 | |
---|
| 897 | * `gaol' module providing semi-safe environment for untrusted code |
---|
| 898 | to evaluate in |
---|
| 899 | |
---|
| 900 | * Support for i18n through `gettext' module; also support for `%1$s' |
---|
| 901 | type format specifiers |
---|
| 902 | |
---|
| 903 | * New functions `string-equal' and `string-lessp' |
---|
| 904 | |
---|
| 905 | |
---|
| 906 | 0.7.1 |
---|
| 907 | ===== |
---|
| 908 | |
---|
| 909 | * Added `--with-rep-prefix' option to autoconf AM_PATH_REP macro |
---|
| 910 | |
---|
| 911 | * Fixed bug when inserting a new timer before an existing timer |
---|
| 912 | |
---|
| 913 | * Fix the malloc tracking code |
---|
| 914 | |
---|
| 915 | * Fix dlmalloc for FreeBSD |
---|
| 916 | |
---|
| 917 | * Use install when installing, not cp |
---|
| 918 | |
---|
| 919 | * Some fixes for compiling with SUN's C compiler on Solaris |
---|
| 920 | |
---|
| 921 | |
---|
| 922 | 0.7 |
---|
| 923 | === |
---|
| 924 | |
---|
| 925 | * Added file handler for read-only access to the contents of tar |
---|
| 926 | archives, access files like `foo.tar.gz#tar/bar' |
---|
| 927 | |
---|
| 928 | * `process-id' function now returns pid of lisp interpreter when |
---|
| 929 | called with zero arguments |
---|
| 930 | |
---|
| 931 | * Added (untested) support for loading dynamic objects via |
---|
| 932 | `shl_load' (HP-UX) |
---|
| 933 | |
---|
| 934 | * Added (untested) support for systems that prefix symbol names in |
---|
| 935 | dynamic objects with underscores |
---|
| 936 | |
---|
| 937 | * Fix bug when compiling `last' function |
---|
| 938 | |
---|
| 939 | * Fix bug of not closing files in the `load' function |
---|
| 940 | |
---|
| 941 | |
---|
| 942 | 0.6.2 |
---|
| 943 | ===== |
---|
| 944 | |
---|
| 945 | * Added `autoload-verbose' variable; set it to `nil' to turn off the |
---|
| 946 | messages when autoloading |
---|
| 947 | |
---|
| 948 | * Fix problems when `--prefix' option has a trailing slash |
---|
| 949 | |
---|
| 950 | * Updated libtool files to version 1.3.3 |
---|
| 951 | |
---|
| 952 | * Initial (incomplete) support for building under Tru64, from Aron |
---|
| 953 | Griffis |
---|
| 954 | |
---|
| 955 | |
---|
| 956 | 0.6.1 |
---|
| 957 | ===== |
---|
| 958 | |
---|
| 959 | No new features; minor portability tweaks and build changes. Fix bug |
---|
| 960 | of trying to load directories as Lisp scripts |
---|
| 961 | |
---|
| 962 | 0.6 |
---|
| 963 | === |
---|
| 964 | |
---|
| 965 | * Add `unsetenv' function |
---|
| 966 | |
---|
| 967 | * `system' now uses `process-environment' |
---|
| 968 | |
---|
| 969 | * Workaround compiler bug with GCC 2.95 on sparc |
---|
| 970 | |
---|
| 971 | * Fix build problem where libsdbm.la can't be located |
---|
| 972 | |
---|
| 973 | |
---|
| 974 | 0.5 |
---|
| 975 | === |
---|
| 976 | |
---|
| 977 | * New function `set-input-handler', registers an asynchronous input |
---|
| 978 | handler for a local file |
---|
| 979 | |
---|
| 980 | * Don't abort on receipt of unexpected `SIGCHLD' signals |
---|
| 981 | |
---|
| 982 | * Upgrade libtool to version 1.2f |
---|
| 983 | |
---|
| 984 | * The `rep' binary by default always loads a script named `rep', not |
---|
| 985 | named by it's `argv[0]' (this breaks under the newer libtool) |
---|
| 986 | |
---|
| 987 | |
---|
| 988 | 0.4 |
---|
| 989 | === |
---|
| 990 | |
---|
| 991 | * Sending a rep process a `SIGUSR2' prints all debug buffers |
---|
| 992 | |
---|
| 993 | * Added `--with-value-type', and `--with-malloc-alignment' configure |
---|
| 994 | options. Also added code to automatically detect the first of |
---|
| 995 | these options. |
---|
| 996 | |
---|
| 997 | * Fixed some 64-bit problems |
---|
| 998 | |
---|
| 999 | * Removed the difference between static and dynamic strings |
---|
| 1000 | |
---|
| 1001 | |
---|
| 1002 | 0.3 |
---|
| 1003 | === |
---|
| 1004 | |
---|
| 1005 | * New compiler command line option `--write-docs' |
---|
| 1006 | |
---|
| 1007 | |
---|
| 1008 | 0.2 |
---|
| 1009 | === |
---|
| 1010 | |
---|
| 1011 | * The variables `error-mode' and `interrupt-mode' control where |
---|
| 1012 | errors and user-interrupts (i.e. `SIGINT' signals) are handled. |
---|
| 1013 | The three possible values are: `top-level', `exit' and `nil' |
---|
| 1014 | (denotes the current event loop). |
---|
| 1015 | |
---|
| 1016 | * Fixed bug where all dynamic types were erroneously `symbolp'. |
---|
| 1017 | |
---|
| 1018 | * `SIGINT', `SIGHUP' and `SIGTERM' signals should now be caught more |
---|
| 1019 | successfully. |
---|
| 1020 | |
---|
| 1021 | * Added a new directory to `dl-load-path': `LIBEXECDIR/rep/ARCH' to |
---|
| 1022 | contain third-party shared libraries. |
---|
| 1023 | |
---|
| 1024 | |
---|
| 1025 | 0.1 |
---|
| 1026 | === |
---|
| 1027 | |
---|
| 1028 | First public release. |
---|
| 1029 | |
---|