JazzScheme is a development system based on extending the Scheme programming
language and the Gambit system. It includes a module system, hygienic macros,
object-oriented programming, a full featured cross-platform application framework,
a sophisticated programmable IDE and a build system that creates binaries for
Mac OS X, Windows and Linux. JazzScheme has been used for more than 10 years
to develop high-quality commercial software.
from its public Git repository.
NEW IN 2.3
Kernel
* Added -load option to load a specific module
* Added -eval option to evaluate code after loading the kernel
* Added -test option to run the validation suite of a product
* Added -force option to the kernel that can be used with -compile
* New crash handler that will output a backtrace when a crash occurs
Build System
* Static build of libraries
* The Jazz kernel can now be built as a library
* Build system is now fully scriptable
* Added an option to build executables without including the Gambit compiler
* Added new options to build without debug environments or debug location
* Added parallel build support specified by jobs: number-of-jobs
* Added a -link option (objects libraries all) to the build system
Language
* Module require/import/export are now special forms
* Added a validation suite for Jazz
* Added support for public / protected modules
* Import conflicts are now detected
* Major simplification and cleanup of everything related to literals
* Added walk-time argument count validation
* Implementated runtime library access of its exported symbols
* All Jazz exception handling now fully supports scheme exceptions
* Printing load stack in error message when cyclic dependencies occur
* Added override modifier to methods overriding a base virtual method
* Replaced function special-form with lambda in all modules
* Now supporting slots in meta classes
* Added initial support for type-safe enumerations
Hygiene (many thanks to Alex Shinn)
* Added support for hygienic macros using syntax-rules
* Initial define-syntax support
* Converted many macros to the new hygienic define-syntax
Gambit
* Added a new 'gambit' library that exports every Gambit procedure
* Now cataloging Gambit's define-type-of- special form
* Added an API to Gambit's structures and types
* Added support for s8/u8/.../f32/f64 homogeneous vectors
Framework
* Every repository and package is now automatically an alias
* Greatly improved load time of applications
User Interface
* Added support for merged cells in the tree view
Cross-Platform
* Many fix to X11 so it is now in a fairly usable state
Libraries
* Irregex
- Ported Alex Shinn's Irregex library
* Match
- Ported Alex Shinn's Match library
* Statprof
- Added support for keeping a backtrace for each registered call
* Added base64 module (from Gambit's examples)
* Loading of a PNG image from a u8vector
IDE
* Catalogs are now automatically updated on save in a background thread
* Regular expressions support in the multi-search/replace
* Added a define-form macro enabling user forms to extend the IDE
* Added basic arrow navigation in F8
* Added a new SQL workspace
* Started a Showcase view to showcase available widgets
* Launch time error now get reported after IDE has finished launching
* Made mouse copy work accross views and in plain texts
* Added Debug With... menu item to debug using any kernel (core, debug, ...)
* Added full-screen functionality
* Added register-user-completion(s) to user extend auto-completion
* Directories search is now done in a background thread
* Every text style can now be customized in the preferences. Have fun!
* Started work on workspaces composed of independant OS windows
Emacs
* Added support for all basic emacs commands
* Incremental search with highlight of every occurence found
* Added c-x c-f find-file, c-x c-F find-filename and c-x b find-buffer
* Adding M-y cyclic-paste behavior to emacs bindings
* An experimental implementation of paredit is available
Debugger
* Major improvements to the remote debugger
* Inspectors now work with remote REPLs
* Added a Show Dynamic Environment button to the Variables pane
* Added access to selected frame local variables in REPL evaluations
* Started work on integrating Gambit's stepper in Jedi
* Now binding debuggee's current-input/output-port to the debugger's console
* The inspector can now inspect Gambit structures and types
Designer
* Started work on a full-fledged GUI designer
Website
* Added a new Hello World tutorial section
* Added a FAQ
ON THE HORIZON
* Prototype-based programming
* Static link of executables
* Finish work on the GUI designer