source: project/chicken/trunk/NEWS @ 12609

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