source: project/chicken/trunk/NEWS @ 15794

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

documented reexport; added test

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