source: project/chicken/trunk/NEWS @ 12939

Last change on this file since 12939 was 12939, checked in by felix winkelmann, 12 years ago

added finalizable GC roots, as suggested by Alejandro

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