source: project/chicken/branches/release/NEWS @ 15303

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

NEWS and site-indx update

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