source: project/chicken/trunk/NEWS @ 15647

Last change on this file since 15647 was 15647, checked in by felix winkelmann, 10 years ago

fixed version in NEWS

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