source: project/chicken/trunk/NEWS @ 12940

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

length checks argument for being cyclic (suggested by Taylor Campbell)

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