source: project/chicken/trunk/NEWS @ 13452

Last change on this file since 13452 was 13452, checked in by felix winkelmann, 11 years ago

some cleanup, manual fixes, NEWS and README update

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