1 | 4.0.0x |
---|
2 | |
---|
3 | - the macro system has been completely overhauled and converted |
---|
4 | to hygienic macros |
---|
5 | - a macro-aware module system has been added |
---|
6 | - added "-sx" option to csi |
---|
7 | - removed the following deprecated functions: |
---|
8 | [un]shift! |
---|
9 | andmap ormap |
---|
10 | byte-vector? byte-vector-fill! |
---|
11 | make-byte-vector byte-vector |
---|
12 | byte-vector-set! byte-vector-ref |
---|
13 | byte-vector->list list->byte-vector |
---|
14 | string->byte-vector byte-vector->string |
---|
15 | byte-vector-length |
---|
16 | make-static-byte-vector static-byte-vector->pointer |
---|
17 | byte-vector-move! byte-vector-append! |
---|
18 | set-file-position! set-user-id! set-group-id! |
---|
19 | set-process-group-id! |
---|
20 | - the situation-identifiers "run-time" and "compile-time" have |
---|
21 | been removed |
---|
22 | - the compiler options "-check-imports", "-import" and "-emit-exports" |
---|
23 | have been removed |
---|
24 | - new procedures: |
---|
25 | strip-syntax |
---|
26 | expand |
---|
27 | - new macros |
---|
28 | define-syntax |
---|
29 | module |
---|
30 | export |
---|
31 | - the following macros have been removed: |
---|
32 | define-foreign-record |
---|
33 | define-foreign-enum |
---|
34 | define-macro |
---|
35 | define-extension |
---|
36 | |
---|
37 | 3.4.0 |
---|
38 | |
---|
39 | - Fixes to the MinGW build. |
---|
40 | - PCRE 7.7 |
---|
41 | - Bug fix for bitwise-or use [Joerg Wittenberger] |
---|
42 | - Bug fix in thread-terminate! [thanks to Joerg Wittenberger] |
---|
43 | - Cygwin build patched to put the runtime libraries in the right place. |
---|
44 | [thanks to Nathan Thern] |
---|
45 | - added support for out-of-tree compilation (via the SRCDIR variable) |
---|
46 | [thanks to Ivan Shmakov] |
---|
47 | - bug fix for (string->number "/") |
---|
48 | - support for selective procedure profiling in the compiler |
---|
49 | - unit utils: moved file- and pathname-related procedures to unit files |
---|
50 | - new unit files |
---|
51 | |
---|
52 | 3.3.0 |
---|
53 | |
---|
54 | - bug fix for bitwise-or use [Joerg Wittenberger] |
---|
55 | - bug fixes for tickets 393, 430, 436 |
---|
56 | - bug fix pointer->address |
---|
57 | - the build system now sets the SONAME field of libchicken.so under Linux |
---|
58 | - fixed an allocation bug in decode_literal |
---|
59 | - some fixes to the build system when USE_HOST_PCRE is set |
---|
60 | - added use of unit ports to unit extras and chicken-setup |
---|
61 | - unit utils and extras: moved port extensions to unit ports |
---|
62 | - new unit ports |
---|
63 | |
---|
64 | 3.2.0 |
---|
65 | |
---|
66 | - unit extras: moved lists, queues, strings to data-structures |
---|
67 | - new unit data-structures |
---|
68 | - unit library: symbol->string now copies its argument |
---|
69 | - chicken-setup: added option -svn-trunk |
---|
70 | - unit utils: added file-copy and file-move (request by the einit team) |
---|
71 | - unit srfi-69: added hash-table-clear! |
---|
72 | - unit srfi-69: new |
---|
73 | - unit extras: moved SRFI 69 to unit srfi-69 |
---|
74 | |
---|
75 | 3.1.0 |
---|
76 | |
---|
77 | - svnrevision.sh - cleaned logic to prevent invalid error message |
---|
78 | - csc - fixed bug preventing static linking of executables (build order issues) |
---|
79 | - unit regex: PCRE 7.6 |
---|
80 | - unit regex: avoid string copy in regex matching [Jim Ursetto] |
---|
81 | - chicken-setup: eggs are downloaded to and compiled in a temporary |
---|
82 | directory determined by CHICKEN_TMPDIR or TMPDIR environment |
---|
83 | variables, or by -build-prefix and -download-dir options, |
---|
84 | respectively; -destdir option is replaced with -install-prefix. |
---|
85 | - unit regex: PCRE 7.6 |
---|
86 | - unit tcp: use of offset into string rather than substring for faster |
---|
87 | socket write [Jim Ursetto] |
---|
88 | - MSVC can now be used to build the system, when standard UNIX tools (like |
---|
89 | MSYS) are available [Many thanks to Ashley] |
---|
90 | - unit library: added "flonum-print-precision" for changing the default of |
---|
91 | 16 |
---|
92 | - unit posix: create-directory can now handle DOS drive letters |
---|
93 | in the given path |
---|
94 | - unit posix: added stat- predicates for file types |
---|
95 | - unit posix: added strftime format string support to "time->string" |
---|
96 | - unit posix: added "string->time", which takes a strptime format string |
---|
97 | (Unix only) |
---|
98 | - unit extras: added "left-section", "right-section", "none?", "always?", |
---|
99 | and "never?" |
---|
100 | - unit extras: added "hash-table-merge", "hash-table-map", |
---|
101 | "hash-table-for-each", and extended "make-hash-table" with minimum/maximum |
---|
102 | load & initial value |
---|
103 | - unit extras: added "eq?-hash", "eqv?-hash", "equal?-hash", "number-hash", |
---|
104 | "symbol-hash", "keyword-hash", "##sys#number-hash-hook", and |
---|
105 | "hash-by-identity" as a synonym for "eq?-hash" |
---|
106 | |
---|
107 | 3.0.0 |
---|
108 | |
---|
109 | - upgraded scheme-complete.el to version 0.6 [Thanks to Alex Shinn] |
---|
110 | - unit library: added "blob=?" |
---|
111 | - the library can optionally be built with an already installed libpcre |
---|
112 | - chicken-setup accesses a separate set of eggs, specific on the major CHICKEN |
---|
113 | version (3) |
---|
114 | - added csi options "-p" ("-print") and "-P" ("-pretty-print") |
---|
115 | - support for Mac OS X universal binaries hase been added [Thanks to Zbigniew] |
---|
116 | - `cond-expand' is available in the set of core macros [Thanks to Alex Shinn] |
---|
117 | - On sparc64 architectures more than 126 procedure arguments are allowed |
---|
118 | [Thanks to Peter Bex] |
---|
119 | - posix unit: "seconds->string" and "time->string" have now their trailing |
---|
120 | #\newline character removed. THIS IS A BACKWARD-INCOMPATIBLE CHANGE. |
---|
121 | |
---|
122 | 2.739 |
---|
123 | |
---|
124 | - the SVN checkout can now be built from a bootstrapping tarball without |
---|
125 | the need for a pre-installed "chicken" executable |
---|
126 | - literals are compiled in a platform-independent binary encoding into |
---|
127 | the executable which results in faster C compile times and moe compact |
---|
128 | binaries. This also makes the "compress-literals" option and declaration |
---|
129 | unnecessary |
---|
130 | - the "-compress-literals" compiler option and the "compress-literals" |
---|
131 | declaration have been removed |
---|
132 | - the CHICKEN_HOME environment variable is now obsolete, use CHICKEN_PREFIX |
---|
133 | and possibly CHICKEN_REPOSITORY_PATH |
---|
134 | - added pre GC hook C-level variable |
---|
135 | - Cygwin is now fully supported |
---|
136 | - removed deprecated functions: |
---|
137 | extension-info |
---|
138 | print-backtrace |
---|
139 | test-feature? |
---|
140 | ___callback (chicken.h) |
---|
141 | foreign-callback-lambda[*] |
---|
142 | thread-deliver-signal! |
---|
143 | critical-section |
---|
144 | enable-interrupts |
---|
145 | disable-interrupts |
---|
146 | invalid-procedure-call-handler |
---|
147 | - There is no platform-dependent pathname directory separator |
---|
148 | anymore, the slash ("/") and backslash ("\") characters can be |
---|
149 | used interchangably |
---|
150 | - New procedures "regexp*", "regex-optimize" and "make-anchored-pattern" |
---|
151 | (regex library unit) |
---|
152 | - New procedures "terminall-size", "terminal-name" and "get-host-name" |
---|
153 | (posix library unit) |
---|
154 | - chicken-setup: can create repository catalog file from local |
---|
155 | SVN checkout of egg repository |
---|
156 | - chicken-setup has the new option "-host-extension" to force |
---|
157 | compiling extensions in "host" mode when using a cross-compiling |
---|
158 | chicken |
---|
159 | - Better cross-development support for the build system (the |
---|
160 | Makefile accepts various variables for customizing the build) |
---|
161 | - "file-size" and "file-stat" handle file-sizes of >4GB now |
---|
162 | - "find-files" collects directories as well, now [Thanks to Ivan Raikov] |
---|
163 | - added "dist" target to toplevel makefile |
---|
164 | - "andmap" and "ormap" have been deprecated |
---|
165 | - makefiles support relinking now |
---|
166 | - added "thread-wait-for-i/o!" (srfi-18 library unit) |
---|
167 | - the "chicken-bug" program can now be used to create bug reports |
---|
168 | and send them to the CHICKEN maintainers |
---|
169 | |
---|
170 | 2.717 |
---|
171 | |
---|
172 | - New binary compatibility version (3) - installed eggs mst be recompiled! |
---|
173 | - deprecated "shift!" and "unshift!" |
---|
174 | - regex unit: |
---|
175 | Uses PCRE 7.4 |
---|
176 | - utils unit: |
---|
177 | Uses compiled regular expressions |
---|
178 | - unit posix: |
---|
179 | Uses compiled regular expressions |
---|
180 | - removed build option for extra symbol slot |
---|
181 | - added Lisp-style symbol property lists |
---|
182 | |
---|
183 | 2.701 |
---|
184 | |
---|
185 | - countless bugfixes and minor improvements |
---|
186 | - new foreign types: |
---|
187 | [nonnull-]unsigned-c-string[*] |
---|
188 | c-string-list[*] |
---|
189 | - added "unused" declaration specifier |
---|
190 | - new GNU Make based build process |
---|
191 | - libffi is not used anymore, handcoded assembler is used for x86, x86-64 |
---|
192 | and powerpc platforms |
---|
193 | - library unit: |
---|
194 | blob? |
---|
195 | make-blob |
---|
196 | blob-size |
---|
197 | string->blob |
---|
198 | blob->string |
---|
199 | - regex unit: |
---|
200 | glob? |
---|
201 | - utils unit: |
---|
202 | directory-null? |
---|
203 | port-fold |
---|
204 | - extras unit: |
---|
205 | hash-table-remove! |
---|
206 | - lolevel unit: |
---|
207 | mutate-procedure |
---|
208 | - srfi-4 unit: |
---|
209 | XXXvector->blob[/shared] |
---|
210 | blob->XXXvector[/shared] |
---|
211 | - csc options: |
---|
212 | -cxx-name |
---|
213 | -disable-compiler-macros |
---|
214 | - byte-vectors have been removed and replaced by new "blob" type, |
---|
215 | added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit |
---|
216 | - ":optional" has been renamed to "optional" (the old name is still |
---|
217 | available but deprecated) |
---|
218 | - "switch" has been replaced by "select" ("switch" is still available but |
---|
219 | deprecated) |
---|
220 | - "tcp-connect" and "tcp-accept" handle time-outs via parameters |
---|
221 | "tcp-connect-timeout" and "tcp-accept-timeout" |
---|
222 | - tcp unit: support for read/write timeouts |
---|
223 | |
---|
224 | |
---|
225 | 2.6 |
---|
226 | |
---|
227 | - Many bugfixes |
---|
228 | - Better support for Sun's C compiler |
---|
229 | - Input-performance has been improved |
---|
230 | - PCRE (Perl compatible regular expressions) by Philip Hazel is now |
---|
231 | bundled with CHICKEN |
---|
232 | - Static linking of extensions is now possible (when supported by |
---|
233 | the egg) |
---|
234 | - The interpreter warns about references to potentially unbound variables |
---|
235 | in loaded code and expressions entered on the REPL |
---|
236 | - The expansion process is traced during compilation and interpretation |
---|
237 | to give (slightly) more usable syntactic context in error messages |
---|
238 | - library: |
---|
239 | * added `any?`, `bit-set?' and `on-exit' |
---|
240 | - eval: |
---|
241 | * new procedure `set-parameterized-read-syntax!' |
---|
242 | - posix: |
---|
243 | * SRFI-17 setters for `file-position`, `current-user-id', |
---|
244 | `current-group-id', `process-group-id'; the respective setter-procedures |
---|
245 | are still available but have been deprecated |
---|
246 | * `file-stat' returns more information (including device info) |
---|
247 | * added `process*' |
---|
248 | - extras: |
---|
249 | * added `read-string!' |
---|
250 | - utils: |
---|
251 | * `apropos' and `apropos-list' procedures |
---|
252 | - srfi-4: |
---|
253 | * added `read-u8vector', `read-u8vector!' and `write-u8vector' |
---|
254 | - srfi-18: |
---|
255 | * added `time->milliseconds' and `milliseconds->time' |
---|
256 | - csi: |
---|
257 | * `-ss SCRIPTNAME' option |
---|
258 | - csc: |
---|
259 | * accepts options given in the environment variable `CSC_OPTIONS' |
---|
260 | * new options `-static-extensions' and `-host' |
---|
261 | - chicken/csc: |
---|
262 | * new option `-keep-shadowed-macros' |
---|
263 | - chicken-setup: |
---|
264 | * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS' |
---|
265 | * allows retrieval and installation of eggs from subversion repository |
---|
266 | and the local filesystem |
---|
267 | * new options `-tree FILENAME', `-svn', `-local', `-revsion' and |
---|
268 | `-destdir PATHNAME' |
---|
269 | * added helper procedures `required-chicken-version' and |
---|
270 | `required-extension-version' |
---|
271 | - Lots of improvements in the CMake build |
---|
272 | |
---|
273 | Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley, |
---|
274 | Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven |
---|
275 | Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna |
---|
276 | Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn, |
---|
277 | Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements |
---|
278 | and contributing fixes. |
---|
279 | |
---|
280 | Thanks again to Brandon Van Every for his extensive work on the CMake |
---|
281 | build process. |
---|
282 | |
---|
283 | Special thanks to Kon Lovett for many improvements made in the posix |
---|
284 | library. |
---|
285 | |
---|
286 | |
---|
287 | 2.5 |
---|
288 | |
---|
289 | - Bugfixes |
---|
290 | - CHICKEN can now be built using CMake <http://www.cmake.org>, in fact CMake |
---|
291 | is required to built CHICKEN from sources on Windows with the Microsoft |
---|
292 | tools |
---|
293 | - the whole build process has been cleaned up and simplified |
---|
294 | - the "easyffi" and "tinyclos" library units have been removed from the base |
---|
295 | system and are now available as separate extensions |
---|
296 | - the deprecated "set-dispatch-read-syntax!" has been removed |
---|
297 | - Will Farr cleaned up the behaviour of number-type specific numeric operations |
---|
298 | ("fx..."/"fp...") with respect to safe/unsafe mode |
---|
299 | - added "(finite? NUMBER)" |
---|
300 | - the "$" macro moved into its own separate extension |
---|
301 | - the values of "software-type", "software-version", "machine-type" and "machine-byte-order" |
---|
302 | are now registered as features and can be tested using "cond-expand" or "#+" |
---|
303 | - all tools now support the "-release" option |
---|
304 | - chicken-setup: added "-test" option |
---|
305 | |
---|
306 | Special thanks to Brandon Van Every, who put considerable effort into the |
---|
307 | CHICKEN build system and who ported it to CMake completely from scratch. |
---|
308 | The installation instructions and build file are extensively documented and may |
---|
309 | serve as a tutorial for creating non-trivial software projects with CMake. |
---|
310 | Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware |
---|
311 | for their support. |
---|
312 | |
---|
313 | Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo, |
---|
314 | dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew |
---|
315 | Szadkowski for reporting bugs, suggesting improvements and contributing fixes. |
---|
316 | |
---|
317 | |
---|
318 | 2.41 |
---|
319 | |
---|
320 | - Bugfixes galore |
---|
321 | - compiler: |
---|
322 | * added support for the generation of "export" files through the "-emit-exports" option |
---|
323 | * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite |
---|
324 | helpful in finding unbound variable errors (this requires all extensions ("eggs") to be |
---|
325 | adapted to this new feature, a process which isn't complete yet) |
---|
326 | * new declarations `emit-exports', `constant' and `import' |
---|
327 | * new option `-disable-warning' and declaration `disable-warning' |
---|
328 | * new options `-release' and `-import' |
---|
329 | - chicken-setup: |
---|
330 | * new `exports' extension property |
---|
331 | * option `-check' checks for extension upgrades |
---|
332 | * added `-eval' option |
---|
333 | * added parameters `setup-install-flag' and `setup-verbose-flag' |
---|
334 | - FFI: |
---|
335 | * added the handy `$' macro, which lets you do foreign calls directly without declaring |
---|
336 | a placeholder procedure |
---|
337 | * `define-foreign-enum' for treating C enums as symbol-sets |
---|
338 | * `foreign-safe-wrapper' has been deprecated |
---|
339 | - Slight reorganization of TinyCLOS and match macros and support code |
---|
340 | - `thread-join!' has been generalized to allow a thread to have multiple results |
---|
341 | - Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler' |
---|
342 | to `set-procedure-call-handler!' |
---|
343 | - The system can be configured to add an extra slot to symbol objects |
---|
344 | - Another configuration option enables GC of unused symbols by default |
---|
345 | - The extension repository is now versioned to catch binary incompatible |
---|
346 | installations, this requires to either move all installed extensions to the |
---|
347 | new location ("$prefix/lib/chicken/1") or reinstall them |
---|
348 | - Now supports SRFI-61 (extended `cond') |
---|
349 | - Added procedures `load-relative', `tcp-buffer-size`, `string-chomp' |
---|
350 | - trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have |
---|
351 | been added to the library to allow more portable code |
---|
352 | - Breakpoints and single-stepping of compiled code on the function-level, new |
---|
353 | procedures `breakpoint' and `singlestep' |
---|
354 | - csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly', |
---|
355 | `,exn' and `,c' |
---|
356 | - csi: `set-describer!' allows definition of custom output for the `,d' command |
---|
357 | - Added `integer64' foreign type specifier |
---|
358 | - The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding |
---|
359 | the installation path prefix in case you want to install and run multiple instances/versions |
---|
360 | of CHICKEN or install on a shared network |
---|
361 | - csc: added `-dry-run' option |
---|
362 | - removed `-split...' options (and the ability to generate multiple C files from a single |
---|
363 | Scheme file) |
---|
364 | - `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from |
---|
365 | now on (deprecated), use SRFI-18 mutexes instead |
---|
366 | |
---|
367 | Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust, |
---|
368 | John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech |
---|
369 | Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan |
---|
370 | Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew |
---|
371 | Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports! |
---|
372 | |
---|
373 | |
---|
374 | 2.3 |
---|
375 | |
---|
376 | - Many many bugfixes |
---|
377 | - compiler: |
---|
378 | * new option `-profile-name FILENAME' |
---|
379 | - the `chicken-config' script has been removed, identical functionality can be provided |
---|
380 | by `csc' |
---|
381 | - csc: |
---|
382 | * new option `-objc' compiles generated C files in Objective-C mode |
---|
383 | * accepts .m files and handles the case when only object files are given |
---|
384 | * new options `-framework', `-F<dir>' and `-rpath' |
---|
385 | * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name' |
---|
386 | - chicken-setup: |
---|
387 | * detects whether eggs are gzipped or not and accepts ungzipped eggs |
---|
388 | * if no other actions are specified and no eggs are given on the command line, then |
---|
389 | all .setup scripts in the current directory are executed |
---|
390 | * added `setup-build-directory' and `setup-root-directory' parameters |
---|
391 | * helper procedures `copy-file', `move-file', `remove-file' and `create-directory' |
---|
392 | - csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace' |
---|
393 | macros have been replaced byy the toplevel commands `,tr' and `,utr' |
---|
394 | - new toplevel commands in csi can be defined with the `toplevel-command' procedure |
---|
395 | - `extension-info' has been renamed to `extension-information'. The old name is |
---|
396 | still available, but deprecated |
---|
397 | - `print-backtrace' has been renamed to `print-call-chain'. The old name is still |
---|
398 | available (and deprecated) |
---|
399 | - `transcript-on' and `transcript-off' are no longer supported |
---|
400 | - New macro `define-for-syntax' |
---|
401 | - library: |
---|
402 | (get-call-chain [DEPTH]) |
---|
403 | (current-read-table) |
---|
404 | (copy-read-table READ-TABLE) |
---|
405 | (current-gc-milliseconds) |
---|
406 | `print-error-message' writes now to the current output-port, not the error port |
---|
407 | `number-string' does now a slightly better job converting large exact integers |
---|
408 | with non-decimal base |
---|
409 | - extras: |
---|
410 | (each PROC ...) |
---|
411 | `hash-table-ref' throws (exn access) on error |
---|
412 | - posix: |
---|
413 | (local-time->seconds TIME) |
---|
414 | (utc-time->seconds TIME) |
---|
415 | (local-timezone-abbreviation) |
---|
416 | `directory' takes optional path and dotfiles arguments |
---|
417 | `[group|system]-information' return lists instead of multiple values |
---|
418 | - tcp: |
---|
419 | (tcp-port-numbers PORT) |
---|
420 | - `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old |
---|
421 | name is still available but deprecated) |
---|
422 | - evaluated code generates call-trace information (as compiled code does), which |
---|
423 | results in much better back-traces. |
---|
424 | - new foreign types `[unsigned-]int32' and `[unsigned-]integer32' |
---|
425 | - added SRFI-17 setters for many accessors of the core libraries |
---|
426 | - tinyclos: added a couple of missing classes for core library structures |
---|
427 | - `let[*]-values' is now SRFI-11 compliant |
---|
428 | - the finalizer-table is now resized dynamically, which speeds up code that uses |
---|
429 | very many finalizers [Thanks to Zbigniew Szadkowski] |
---|
430 | - reloading compiled code dynamically does basically work (but still leaks memory) |
---|
431 | - the manual contains a section on pattern matching |
---|
432 | - libffi is used by default, when available |
---|
433 | - CHICKEN has now experimental support for the "CMake" build system <http://www.cmake.org> |
---|
434 | Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this |
---|
435 | - added compiler/runtime support for object serialization via the `s11n' extension |
---|
436 | (see <http://www.call-with-current-continuation.org/eggs/s11n.html>) |
---|
437 | |
---|
438 | Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN. |
---|
439 | Thanks, Sergey! |
---|
440 | |
---|
441 | Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5, |
---|
442 | John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev, |
---|
443 | Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt |
---|
444 | Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions, |
---|
445 | suggestions and bug reports! |
---|
446 | |
---|
447 | Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions. |
---|
448 | |
---|
449 | |
---|
450 | 2.2 |
---|
451 | |
---|
452 | - Many bugfixes |
---|
453 | - The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))' |
---|
454 | - `foreign-parse' and `foreign-parse/spec' have been removed |
---|
455 | - lolevel: Executable byte-vector stuff has been removed |
---|
456 | - SRFIs 28, 31, 62 and 69 are now officially supported |
---|
457 | - New compiler option `-extension' simplifies static compilation of eggs |
---|
458 | - csc: changed `-E' to `-P', `-E' is now an alias for `-extension' |
---|
459 | - Embedding: |
---|
460 | * All the `entry-point' related things have been removed, as has been `define-embedded', |
---|
461 | calling Scheme from C is now exclusively done with callbacks |
---|
462 | * Integrated boilerplate embedding API into the `eval' unit |
---|
463 | * Added `CHICKEN_continue' API function |
---|
464 | * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a |
---|
465 | separate Scheme file |
---|
466 | * Different stack-levels during invocation of CHICKEN_run or callbacks could result |
---|
467 | in crashes - this is now detected (or can be checked manually) |
---|
468 | - Added extension-specifier `(version ...)' |
---|
469 | - New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace |
---|
470 | the declaration-specifiers of the same name |
---|
471 | - Hash-table resizing was ridiculously slow, and should now be much faster |
---|
472 | - `define-foreign-record' handles recursive structures |
---|
473 | - `require-extension' is now available by default, and so can be used with the |
---|
474 | plain Scheme evaluator |
---|
475 | - Procedures now contain some basic debug information, unless a file was compiled |
---|
476 | with `-no-lambda-info' |
---|
477 | - compiler: `-debug-level 2' is now the default (enables trace- and lambda-info) |
---|
478 | - chicken-setup: |
---|
479 | * handles direct downloads from arbitrary URLs |
---|
480 | * HTML documentation for eggs can now be included into the egg and will be installed |
---|
481 | in the repository (using the `documentation' info-property) |
---|
482 | * `chicken-setup -docindex' shows path of generated documentation index for all |
---|
483 | installed eggs |
---|
484 | - extras: |
---|
485 | * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since |
---|
486 | the API is not compatible to the previous one |
---|
487 | * `clear-hash-table!', `get' and `put!' are gone |
---|
488 | * `read-file' accepts optional reader procedure and max count |
---|
489 | * `read-lines' accepts filename instead of port |
---|
490 | - library: |
---|
491 | * `signum' is now exactness-preserving |
---|
492 | * `procedure-information' returns some basic debug info for a given procedure |
---|
493 | * Added `(warning MESSAGE ARGUMENTS ...)' |
---|
494 | * `(promise? X)' |
---|
495 | - posix: |
---|
496 | * `(current-directory DIR)' is equivalent to `(change-directory DIR)' |
---|
497 | - regex: |
---|
498 | * `pattern->regexp' has been renamed to `glob->regexp' |
---|
499 | - The `format' library unit has been removed from the base system and is noww available |
---|
500 | separately |
---|
501 | - SRFI-17, on the other hand has been moved into the base system |
---|
502 | - String literals and the print-names of symbol literals are now allocated in static |
---|
503 | (non-GC'd) memory |
---|
504 | - If static or shared build is disabled, no `...-static' executables will be generated |
---|
505 | |
---|
506 | |
---|
507 | Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven |
---|
508 | Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for |
---|
509 | their helpful contributions, suggestions and bug reports! |
---|
510 | |
---|
511 | |
---|
512 | 2.0 |
---|
513 | |
---|
514 | - Many bugfixes |
---|
515 | - Loads of minor improvements (better error messages, more warnings, more error |
---|
516 | checks, etc.) |
---|
517 | - On systems supported by the "libffi" library, the 128-argument limit can |
---|
518 | be exceeded (currently to an arbitrary maximum of 1000). To take advantage |
---|
519 | of this, add `--with-libffi' to the configuration options when building |
---|
520 | chicken |
---|
521 | - The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded |
---|
522 | into `libchicken', so only a single library is linked with generated |
---|
523 | executables, which greatly simplifies and speeds up the build process. |
---|
524 | It is recommended to remove any traced of `libstuffed-chicken.*' and |
---|
525 | `libsrfi-chicken.*' before installing a new release. This requires also |
---|
526 | to reinstall all eggs (extension libraries). |
---|
527 | - The compiler is able to inline more procedure calls |
---|
528 | - Implicit non-multival continuations (like in `begin' or 'let') accept multiple |
---|
529 | values and discard all but the first value |
---|
530 | - finalization should actually work now and is much more efficient (unless |
---|
531 | used excessively) |
---|
532 | - csi: |
---|
533 | `advise' has been removed |
---|
534 | `-eval' implies `-batch' and `-quiet' |
---|
535 | added `-require-extension' |
---|
536 | short option names are now supported and may be collapsed, if unambigous |
---|
537 | - New runtime options: |
---|
538 | -:b (enter REPL on error) |
---|
539 | -:B (ring bell on every major GC) |
---|
540 | -:fNNN (set pending finalizer maximum limit) |
---|
541 | - New compiler options: |
---|
542 | -accumulate-profile |
---|
543 | -inline |
---|
544 | -inline-limit |
---|
545 | -emit-external-prototypes-first |
---|
546 | - The compiler-option `-require-for-syntax' has been renamed to `-require-extension' |
---|
547 | and is the same as putting a `(require-extension ...)' form directly into the code |
---|
548 | - Removed compiler- and interpreter option `-no-feature' |
---|
549 | - New declarations: |
---|
550 | (lambda-lift) |
---|
551 | ([not] inline) |
---|
552 | (inline-limit LIMIT) |
---|
553 | (emit-external-prototypes-first) |
---|
554 | ([not] check-c-syntax) |
---|
555 | - `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the |
---|
556 | old names are still valid but deprecated |
---|
557 | - New foreign type specifier `scheme-pointer' (the same as `pointer', which is |
---|
558 | deprecated now) |
---|
559 | - Easy FFI: |
---|
560 | `___scheme_pointer' and `___byte_vector' pseudo types |
---|
561 | `___pointer' and `___length' markers |
---|
562 | `default_renaming' and `opaque' pseudo declarations |
---|
563 | `___inout' and `___out' argument markers work also for C++ reference types |
---|
564 | Recognizes `C_word' and `size_t' |
---|
565 | - The reader supports selective case sensitive/insensitive reading using the |
---|
566 | `#cs...' and `#ci...' syntax (as supported in PLT Scheme) |
---|
567 | - `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals |
---|
568 | - `#\UXXXXXXXX' character literal syntax |
---|
569 | - `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab' |
---|
570 | and `#\nul' character literals |
---|
571 | - `chicken-setup' supports proxy connections via the `-proxy' option |
---|
572 | - library: |
---|
573 | (set-dynamic-load-mode! MODE) |
---|
574 | `(end-of-file)' has been removed (use `#!eof' instead) |
---|
575 | - The alternative continuation API described in Marc Feeley's paper |
---|
576 | "A better API for first class continuations" is supported natively: |
---|
577 | (continuation-capture PROC) |
---|
578 | (continuation-graft K THUNK) |
---|
579 | (continuation-return K VALUE ...) |
---|
580 | (continuation? X) |
---|
581 | - `foreign-primitive' and `define-extension' macros |
---|
582 | - tinyclos: |
---|
583 | (instance-of? X) |
---|
584 | `define-method' specializes on all arguments and allows DSSSL keyword argument lists |
---|
585 | - eval: |
---|
586 | (set-dispatch-read-syntax! CHAR PROC) |
---|
587 | - extras: |
---|
588 | (hash-table-update! HT KEY PROC INIT) |
---|
589 | (hash-table-exists? HT KEY) |
---|
590 | (hash-table-values HT) |
---|
591 | (hash-table-keys HT) |
---|
592 | (alist->hash-table ALIST [TEST SIZE]) |
---|
593 | `hash-table->list' has been renamed to `hash-table->alist |
---|
594 | `hash-table-for-each' takes the arguments in reversed order (the old order is still |
---|
595 | valid but deprecated) |
---|
596 | Hash-tables support now user-defined hash functions |
---|
597 | - posix: |
---|
598 | (file-link OLD NEW) |
---|
599 | (symbolic-link? FILENAME) |
---|
600 | (regular-file? FILENAME) |
---|
601 | errno/exist |
---|
602 | `process' and `process-execute' allow passing an environment |
---|
603 | - regex: |
---|
604 | (regexp-escape STR) |
---|
605 | - tcp: |
---|
606 | (tcp-listener-fileno LISTENER) |
---|
607 | - utils: |
---|
608 | (port-for-each FN THUNK) |
---|
609 | (port-map FN THUNK) |
---|
610 | - On Windows, the batch file `win-install.bat' can be used to install the system |
---|
611 | into the desired location |
---|
612 | - Building Chicken on Windows with the free development tools from Microsoft (VCToolkit, |
---|
613 | Platform Core SDK) has been tested and is documented in the file `vctk-install.txt' |
---|
614 | - The `-script-meta' option has been removed |
---|
615 | - The srfi-25 and srfi-37 library units and the test-infrastructure facility have been |
---|
616 | removed from the core system and is now separately available as an extensions (eggs) |
---|
617 | - The syntax-case macro and module system has been removed and also available as an |
---|
618 | extension. This implies that all compiler- and interpreter options related to hygienic |
---|
619 | macros and syntax-case are gone as well. |
---|
620 | - All strictness compiler- and interpreter options (and the `strict-reader' parameter) |
---|
621 | have been removed |
---|
622 | - the `examples' directory and its contents have been removed from the distribution |
---|
623 | |
---|
624 | |
---|
625 | Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan, |
---|
626 | Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf, |
---|
627 | Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk, |
---|
628 | Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier, |
---|
629 | Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko, |
---|
630 | Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik |
---|
631 | Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports! |
---|