source: project/chicken/trunk/NEWS @ 15845

Last change on this file since 15845 was 15845, checked in by Ivan Raikov, 10 years ago

trunk version set to 4.2.1

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