source: project/chicken/trunk/NEWS @ 15770

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

added -emit-all-import-libraries

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