source: project/chicken/branches/scrutiny/NEWS @ 14827

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

merged trunk changes until 14826 into scrutiny branch

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