source: project/chicken/trunk/NEWS @ 13711

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

macro? and undefine-macro! are gone

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