source: project/chicken/trunk/NEWS @ 15720

Last change on this file since 15720 was 15720, checked in by iraikov, 10 years ago

trunk version set to 4.1.8

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