source: project/chicken/trunk/NEWS @ 15575

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

-O2 enables inlining by default; fixed bug in rational? reported by Zbigniew

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