News
- 2009-01-26 - JazzScheme Publicly Released
- 2008-12-24 - Closed-beta Release to the discusion group members
- 2008-11-27 - Presentation at the MSLUG and closed-beta release
- 2008-11-06 - X11 Port and Debugger Update
- 2008-09-26 - Public Open-Source Release Update
- 2008-04-30 - Contract awarded to use the new Gambit based JazzScheme
- 2008-04-29 - Progress update
- 2008-02-04 - New build system fully implemented in Gambit
- 2007-11-11 - New Gambit based kernel now faster than the old C++ kernel!
- 2007-09-26 - Jedi running under the new Gambit based kernel
- 2007-08-08 - Presentation at the lispvan
- 2007-05-28 - JazzScheme 1.0b6 available
- 2007-05-14 - Work on porting JazzScheme to X11 and Macintosh started
- 2007-05-03 - JazzScheme 1.0b5 available
- 2007-04-23 - JazzScheme public beta released
- 2007-01-12 - JazzScheme ported to Visual Studio 2005
- 2006-12-13 - Presentation at the MSLUG
- 2006-12-12 - Montreal company to use JazzScheme
- 2006-11-22 - Website goes live
2009-01-26 - JazzScheme Publicly Released
JazzScheme was publicly released today. Note that this is a Beta release. It can be downloaded at http://www.jazzscheme.org/releases.htm . Consequently, the JazzScheme google group is now freely accessible. Anyone can view the discussion threads and join the group.2008-12-24 - Closed-beta Release to the discusion group members
JazzScheme was released today as a closed-beta to the discusion group members. The main goal of this release is to let people experiment with Jazz and the Jedi IDE and gather feedback in preparation for a public release.Changes since the MSLUG presentation
Project Management Project management has received a major overhaul. The result is hopefully a very flexible and intuitive to learn project management system that offers various project templates for easy learning. Only downside is that most of the tutorials on the website that where created for the MSLUG presentation are now somewhat out of date. Please take a look at them even then as they should help you get started. We will be working on and off to bring them up to date in the next few weeks. Debugger Using new Gambit hooks, the debugger is now able to locate source code even if it is moved around. This is extremely useful for binary releases where the source code will end up in a different location than the one where it was when the compiled .o1 was generated. Build System A serious memory problem in the build system has been solved. Before, building Jazz could end up taking up to 2G of memory! Now, after a quick peek of 700M when linking the kernel, the whole build process seldoms takes more than 200M of memory. Kernel *Every* call to unsafe ## Gambit primitives is now wrapped in a safe %% macro that, depending on the safety chosen in the build configuration will be expanded to either a safe call for 'debug' safety or an unsafe call for 'release' safety. In theory, no code run in 'debug' should ever crash. Note that for performance reasons, the default safety is 'release' and thus by default jazz and jedi are built in 'release'. Should you encounter a serious crash in Jedi, as the build system supports multiple configurations, you can easily build a separate 'debug' version to try and solve the problem. Emacs An emacs bindings was added to the Jedi IDE. Although there is no objective for Jedi to ever be an emacs clone, we sure plan on integrating every nice emacs concept. User Profile Every user setting is saved in a 'profile'. If some of these settings are manually edited and corrupted, the IDE would fail to launch. Now, every profile setting will load safely and a generic one will be used should a problem ever occur so that in theory, no amount of corruption should ever stop the IDE from launching correctly.Todo before the public release
Debugger- The remote debugger is totally functional at the moment but is still missing many features
- Common Lisp debugger through SWANK
2008-11-27 - Presentation at the MSLUG and closed-beta release
November 27, I will be giving a presentation of JazzScheme at the next MSLUG meeting. This will also be the occasion for a closed-beta release to prepare for an upcoming public release. After the meeting, I will send invitations to all JazzScheme group members to join the closed-beta. I warmly invite all of you to join in the fun! Guillaume Cartier Announcement Date: Thursday, November 27, 2008Time: 7:00pm - 9:00pm
Location: Room 3195, André-Aisenstadt Building, Université de Montréal
Street: 2920 chemin de la Tour
City/Town: Montreal, QC
As some of you know, Guillaume Cartier has been working for the past 12 years on his JazzScheme system. It is a powerful and complete development environment for Scheme applications. You can read about it here: http://www.jazzscheme.org A couple of years ago, he decided to port the whole Jazz kernel to Gambit-C Scheme and to eventually release Jazz under an Open Source License. With the near completion of X11 support, the time to do a full public release is coming very close. In order to help spot and iron out the remaining issues for a full public release, Guillaume will be doing a "Closed Beta" release to the participants of the MSLUG. The release will take place at the MSLUG meeting on November 27th. You are encouraged to bring your own laptop, as Guillaume will walk us through the installation of Jazz and the creation of a simple application. Note that Jazz should run on Windows *and* on systems featuring an X11 server. Thanks to Marc Feeley, WiFi Internet access will be available at the meeting, which should help with the whole process. Once everybody is up and going with the system, we'll merrily go down the mountain to the pub and celebrate the release. Everybody is welcome. Please spread the news around and invite friends and colleagues. Map of UdeM campus: http://www.stcum.qc.ca/metro/images/c56.pdf http://schemeway.dyndns.org/mslug/mslug-home
2008-11-06 - X11 Port and Debugger Update
X11 I am very happy to report that X11 has progressed by leaps and bounds in the last weeks. A big structural change to the windowing system where Jazz now manages everything inside the toplevel windows fixed nearly all the X11 problems. This change has also unified profoundly the windowing architecture of all platforms so that all platforms should now evolve much more uniformly towards stability and completeness. Personally, I have worked exclusively on X11 for the last 2 weeks and it felt almost as good as working under the Windows version. The only things I missed where drag & drop (we are looking into it) and faster scrolling (we are looking into using XCopyArea to implement fast scrolling on X11). There are other shortcomings like dialogs not being modal at the moment so that you can crash the system by being a smart ... and breaking the modality but those are no show-stoppers to use the system as-is imo. As the X11 port was the main hurdle to the open-source release, this is very good news. At this point, apart from small improvements, the main task that remains is writing documentation, tutorials, ... Debugging The other big change is that after being unsure for the last 2 years about what was the right approach to having the debugger fully understand the Jazz language, between :- 1) writing my own interpreter for the Jazz language and
- 2) fully integrating the Jazz macros with Gambit
- precise reporting of the position of an error in the source file
- stack backtrace with for every frame precise highlighting of the call site
- statprof statistical profiler is now integrated with Jedi
- ...
2008-09-26 - Public Open-Source Release Update
Now that our first JazzScheme contract is over, here is an update on where we stand. First of all, I am very happy to say that the contract was a complete success. It proved that developing a business application in the new Gambit based JazzScheme is a viable solution. I must say that development was a charm and on top, the client loves the result! For some other very good news, during the contract, to support development we added many missing features to the Jazz platform :- Kernel module and build system is now language agnostic
- Project management through a visual workbench
- GUI remote debugger
- Programmatic restarts
- Full unicode support throughout the IDE
- Printing support on Windows
- Windows COM support
- A new crash handler routine on Windows will dump a Gambit stack even on fatal crashes
- Jedi as a Gambit IDE with full remote debugging
- Emacs inspired bindings for basic commands (almost complete)
2008-04-30 - Contract awarded to use the new Gambit based JazzScheme
I am very happy to announce that MetaScoop was awarded a contract to implement a full business application using the newly developed Gambit based JazzScheme. Note that we will still be developing JazzScheme actively but with focus on more 'business' aspects like :- Robustness and Performance
- Full database support on Windows using ADO
- Printing support on Windows
- Localization
- Distribution of built code
2008-04-29 - Progress update
Here's a summary of the most important developments in the last 2 months : Build system- Now using pkg-config to simplify build dependencies processing
- Added support for binary packages for a complete distribution solution
- TCP/IP
- Threading
- U8 vectors
- Added branch prediction to the type system for nillable types and the 'or' special form
- Implemented a new 'meta' keyword that greatly simplifies metaclass programming
- Many improvements on X11
- Carbon work started up to the point where the Jedi IDE now fully loads
- Gomoku
- Connect-4
- Views now support arbitrary scaling
- Added printing support on windows
- Ported many parts of the visual GUI designer
2008-02-04 - New build system fully implemented in Gambit
Here's a summary of the most important developments since the last update (apart from a very nice Christmas vacation with my son :-) : Build system A new build system was developed to automate Jazz building and deployment. It follows the usual configure / make methodology and is fully implemented in Gambit making it highly portable. See the INSTALL file at the root of the distribution for details.- The build will now create a 'jazz' executable file that encapsulates the Jazz kernel. Use this executable to load Jazz code, launch Jazz applications, ...
- Under Unix, we are now using pkg-config to simplify building library depencies.
- With it, Jazz applications can be deployed as compiled binaries, source files or as a mix of both.
- Jazz will use a sha-1 digest of the source file to automatically determine if a file should be loaded interpreted or compiled.
- View debugging tools (F8) are now fully functional under Windows.
- Groupware compare directories and compare files.
- Login dialog.
- Users management.
- Many Gambit specific improvements related to performance and space.
- All jazz modules have now been ported to the new kernel at least enough to load correctly.
2007-11-11 - New Gambit based kernel now faster than the old C++ kernel!
A lot has happened since the last news update a month 1/2 ago. Let me try and summarize the most important developments : Performance As I was saying in the last message, performance was very critical as this stage as it was so far behind the old Jazz as to make the new one unusable. The benchmark I have been using is editing Window.jazz a big file with lots of syntax coloring necessitating a lot of sexpr navigation. As every Lisp related tool must be able to navigate sexpr in text, those operations are so critical that in the old Jazz they where handcoded directly in C. So keep in mind that in the benchmark results, it is handcoded C code vs Jazz code generating Gambit code. First timing was : Old Jazz : 0.3sNew Jazz : 28.5s so 95x slower. We are now at 0.17s so 167x faster than the first version and 60% faster than the old handcoded C code. Note that there is still a lot of room to make this much faster but now that performance is acceptable we are going to put performance aside for a while in favor of other priorities. Thanks to Guillaume Germain for his wonderful statprof statistical profiler which really helped in finding the hot spots to optimize. Type System Jazz now supports a fairly complete and completely optional type system. Every part of a Scheme program can now be type annotated. Note that usually, just annotating the type of the input parameters of a function will be sufficient, as the new type system will use type inference whenever possible to deduce the type of expressions. To support the new type system, a new experimental specializer / template system is also available. Any comments / suggestions on this part are most welcome as it is unclear what is the best approach: templates a la c++, generics a la java, parameterized types, ... Note that Jazz as a whole doesn't use the new type system a lot. I'd say that around 30 files out of Jazz's 3000+ files use the new type system. Annotating only those 30 something critical modules resulted in huge performance improvements. Also note that the type annotations are purely optional and removing any of them will not change any code semantics. IDE The IDE while still missing a lot of functionality has become functional enough for it to become usable. I now try and use it as my main development IDE over the old Jazz's IDE. Mainly missing from the old Jazz IDE is debugging support. We are still relying on the Gambit console. Note that this is really not painful at all as the Jazz generated Scheme code is so close to the original code that reading a Gambit stack of Jazz code is almost identical as what a pure Jazz debugger stack would look like. Scheme Compliance The old Jazz, although 'Scheme inspired' was never a full Scheme implementation. Everything that Jazz was redefining from Scheme was rethought / renamed so that now I am very happy to report that Jazz is now a full R5RS Scheme (to be more precise: as R5RS as the underlying Scheme you are using is) system where any R5RS Scheme code can be run as is inside a Jazz module or library. If pure Scheme is used inside a Jazz module or library, the resulting code will have no overhead and will be the exact same code. The Jazz library system will just validate at compile time that every symbol referenced exists in the underlying Scheme system and report any unresolved symbols. Cross-Platform / X11 The Jedi IDE while not functional, is now booting completely under X11! What was astonishing was that nothing was working, and a couple changes later, Jeremie had a version where *everything* was rendering perfectly! The port of the graphical code to Cairo really payed off there. I am very happy about this new development, especially as Jeremie was able to pull this off part time while studying for his master's degree. Gratz! Public beta release is still planned for very early 2008.
2007-09-26 - Jedi running under the new Gambit based kernel
I am very happy to report that Jedi, the Jazz IDE is now running under the new Gambit based kernel. Lots of features where temporarely commented out but basically most of the language and the library has now been ported to the new kernel. The port of 100+ C++ classes to Gambit was very demanding at first but now the development has really become a joy. Even though the start was difficult, developing the new kernel on Gambit's extremely robust, fast and flexible architecture has now surpassed all my expentations in development speed and quality of code that could be developed with it. Cheers to Gambit! Next steps are:- Complete the port
- Optimize the new kernel to make it as fast as Gambit can be (that's fast!)
- Port the library and IDE to Mac and X11 (this should be fairly fast at this point)