source: project/chicken/trunk/NEWS @ 15815

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

inlining of multi-arg for-each/map

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