Fix plugins with MSVC, thanks to Gulam Faruque.
[syx.git] / NEWS
blob6e1d1c27a25d072acca1a01e921703081ab34632
1 07 June 2008
2 ------------
4         Released Syx 0.1.7 version.
6         This versions enhances a new version of the interpreter, major updates to the scheduler,
7         and as usual a lot of bug fixes.
8         Syx left the Google Code SVN repositories because of many connection problems.
10         You can find informations about the new GIT repository here:
11         http://code.google.com/p/syx/wiki/GitSource?tm=4
13         Installation instructions:
14         http://code.google.com/p/syx/wiki/InstallationInstructions
16         API and environment:
17         - SYX_ROOT_PATH and SYX_PLUGIN_PATH environment variables have been introduced.
18         - Process and context creation changed.
19         - New functions have been added for the scheduler, for manually do events iteration and adding
20           idle functions to wake up semaphores.
21         - Startup responsibility has been dropped from libsyx.
22         - Added syx errors for system signals to be used with syx_signal.
23         - Image recovering has been fixed.
25         Smalltalk:
26         - Covered several standard methods for Collections, Numbers and Object printing/storing.
27         - Error reporting from the VM now drops the exception to the Smalltalk environment when
28           the interpreter is running.
29         - Random class has been added.
30         - Signal handling improvements for the GTK+ plugin.
31         - #display family methods have been introduced for Smalltalk objects.
33         Interpreter:
34         - System signal handling has been improved.
35         - Cache hash code of Symbols.
36         - The interpreter has been refactored to use one stack per Process.
37         - Contexts are now created only on demand.
38         - Optimized Symbols creation.
39         - Signal class has been abstracted.
41         Parser:
42         - The parser have been changed for handling new interpreter specifications.
43         - Several fixes to the parser for special cases.
44         - Fixed blocks scope.
45         - Support <- assignment.
47         Image:
48         - Image snapshot will nullify C pointers
49         - Image format has been changed for handling new interpreter specifications.
50         - Handle internal interpreter C pointers to be restored the right way.
52         Scheduler:
53         - Different behavior of the scheduler for POSIX and Windows systems has been introduced.
54         - Scheduler external idle sources have been added.
55         - Asyncronous command line and GTK+ loop using semaphores. This leads to dropping readline.
56         - A simple round robin scheduler has been added.
57         - Dropped image saving of POSIX fd poll
59         Documentation:
60         - Added lots of new comments.
61         - Started documentation project including a manual still under development and a manpage.
63 06 January 2008
64 ---------------
66         Released Syx 0.1.6 version.
68         This is a major bug fixes release, but introduce as usual many features.
69         First of all this release put the GNU build (autotools) as first build system,
70         and SCons as secondary which is still useful for MingW and the WinCE port.
71         - Full GNU build support
72         - X11 plugin
73         - A basic CommandLine class for parsing the command line
74         - Basic support for handling foreign C pointers and structs/unions from Smalltalk has been added
75         - Several fixes for building on Sparc 64 using SCons
76         - The -e option from command line has been added
77         - Some help and Syx status will be printed in console mode
78         - FileStream fileIn has been fixed
79         - Class declaration from Smalltalk has been fixed
80         - Lexer fixes for symbols, identifier and strings
81         - FileStream now handles FILE* instead of file descriptors and this fixed several bugs
82         - System startup has been fixed when fileing in files
83         - Dictionary rehashing has been fixed
84         - Basic support for handling foreign C structs and unions from Smalltalk has been added
86         Thanks to everyone contributing to the project.       
88 14 December 2007
89 ----------------
91         Released Syx 0.1.5 version.
93         This version includes yet more features, compatibility with other build systems on different
94         platforms, important bug fixes and a great performance boost, which will be continued
95         in next releases.
96         A list of the major changes:
97         - MSVC support has been improved
98         - ANSI C and strict ISO compilation
99         - External declarations for C++
100         - The ST runtime compiler has been replaced with a C-side compiler
101         - Class creation issues from ST has been fixed
102         - Tracebacks and error reporting have been improved
103         - Install desktop files on GNU/Linux platforms
104         - Support for the GNU building system has been added as an alternative to SCons
105         - Build under MSYS has been fixed
106         - Block ensuring has been fixed
107         - New examples have been added such as web code browser and a simple GTK+ application
108         - Dictionary rehashing has been fixed
109         - A better implentation of OrderedCollection has been enhanced
110         - Internal profiling and gprof support at compile-time
111         - Created one stack per process against one stack per context
113         This version breaks the API for creating new processes and contexts from C and ST too.
114         Thanks for anyone who contributed to Syx.
116 20 August 2007
117 --------------
119         Released Syx 0.1.4 version.
121         A more stable VM has been reached with this version. Many features have been added for both
122         the embedding and the environment. This version also includes the "image endianness compatibility"
123         target of the 0.2 roadmap and a lot of wrapper methods for GTK+ with a basic GtkWorkspace.
124         This is the list of the major changes:
125         - Running blocking processes inside the scheduler has been fixed
126         - Major fixes to the garbage collector, object finalization, number parsing and to the scheduler
127         - Rehashing support for hashed collections such as Dictinoary, Set and Bag
128         - #perform: and #copyReplace family ANSI methods have been added
129         - Interval and StdIOStream classes have been added
130         - Missing lexer rules for quoted symbols and double quotes in strings have been added
131         - ZeroDivide exception check for number division
132         - Comparing methods to String have been added
133         - A bunch of improvements for the SyxGtk plugin
134         - Rehash dictionaries from C
135         - Visual Studio compilation and debugging support
136         - Useful functions for embedding Syx have been added
137         - Reorganized inline functions to support other compilers and use dllexport and dllimport when
138           building the library on Windows
139         - Inheritance for method and block objects has been fixed
140         - rootdir and plugindir Scons options have been added
141         - Install dependent-machine object files into libdir instead of sharedir
142         - Option -c has been added to syx to continue the startup sequence once filed in files
143           from the command line
144         - Support for big endian machines has been completed
145         - System signal handling has been added
146         - Print a bug report to the stdout on SIGSEGV or SIGILL containing informations on the memory state,
147           the execution state and the traceback of the active broken Process
148         - Image recovery on SIGSEGV and SIGILL or through the syx --recovery option
149         - Scripting header (e.g. #!/usr/bin/env syx) support on fileIn
150         - argumentCount check for methods and blocks has been introduced
151         - Documentation installation and uninstallation is now supported
152         - Support for 'a' and 'w+' mode with O_CREAT flag have been added to FileStream
153         - Several issues have been fixed for packaging binary distributions of Syx using Scons
154         - Getopt dependency has been removed
155         - Desktop files for Posix systems have been added
156         
157         Syx changed its logo since previous version. The Windows installer will handle .st and .sim files.
158         Roadmap for 0.5 version includes both internal and OS-level threads based schedulers,
159         with possibly parallel computing support.
160         
161         Thanks for all critiques and suggestions, and a special thank to everyone who's contributing to Syx.
163 (Luca Bruno)
166 30 July 2007
167 ------------
169         Released Syx 0.1.3 version.
171         This release adds yet more support for other platforms (Windows CE), a bunch of bug fixes,
172         and many features like the ST compiler. This is a list of what changed
173         since previous release:
174         - Fractions, division methods and some other match functions
175           (floor, ceiling, quo, trunc, ...) have been added
176         - Some lexer issues (quotes, minus, ...) have been fixed
177         - Fixed garbage collection while finalizing objects
178         - Many ANSI methods for Character have been covered
179         - First attempt to reach endianness image compatibility
180         - String to Number methods and viceversa have been added
181         - Super messages have been fixed
182         - Syntax shortucts such as Object>>#caseOf:otherwise: have been added
183         - Fixed cascading parsing
184         - A complete Smalltalk compiler has been added
185         - Support for cross-compiling and with more options have been added to Scons
186         - Save text of methods
187         - Increased initial memory size from 20000 objects to 100000 objects
188         - More C functions have been documented
189         - An important issue in ArrayedCollection>>#replace:From:To:With: primitive has been fixed
190         - Access mode (read, write, read and write) to Streams and more methods
191           to FileStreams have been added
192         - CompiledMethod and CompiledBlock inheritance has been reorganized
193         - Run Smalltalk scripts from command line
194         - New plugin to wrap native Win API to create a simple WinWorkspace
195         - Build Syx for Windows CE with WinWorkspace running on the device
196         - Support for user-defined startup sequence has been added
197         - Support for wide-character strings has been added
198         - getopt, errno, fstat, access, getenv and perror are now optional functions
200         Cross-compiling to Windows CE has been done with host=arm-wince-mingw32ce using CeGCC
201         by disabling all configuration options.
202         Endianness compatibility is not perfectly reached yet.
204 (Luca Bruno)
207 13 July 2007
208 ------------
210         Released Syx 0.1.2 version.
212         This version has a bunch of new features added to the Smalltalk environment,
213         and a more stable VM. Major enhancements includes:
214         - New compiler flags to build Syx on Mac OS
215         - Added Sets and Bags
216         - Refactored objects to hold both instance variables and indexed variables
217         - Literals in methods are now constant
218         - Added basic WriteStream
219         - Doubled initial memory size to hold 20000 objects
220         - Fixed ByteArray/String small integer to character conversion
221         - Added object finalization by fixing GC transactions
222         - Added support for infinite-precision numbers using GMP
223         - Integer overflow checks when doing sum, difference, multiplication and bit-shift
225         Note that Syx can be compiled also without GMP. Eventough you use an image containing
226         LargeIntegers, Syx will run without problems but won't understand that numbers.
228 (Luca Bruno)
231 05 July 2007
232 ------------
234         Released Syx 0.1.1 version.
236         This second version of Syx includes as many bug fixes as feature enhancements.
237         I wanted to release this version just after 3 days because i think these
238         changes are very important.
239         - Implemented linear hash tables, similiar to double hash
240         - Added method caching to unary and binary messages too
241         - Added bdist command to create a binary distribution
242         - Improved exception handling and tracebacks
243         - Added Integer class with basic bit-wise operations
244         - Inline whileFalse: block
245         - Covered most of PositionableStream standard
246         - Added basic subclassing at runtime
248 (Luca Bruno)
251 02 July 2007
252 ------------
254         Released Syx 0.1 version.
256         This is the first version of Syx and includes an almost
257         stable VM without memory leaks till now (we hope).
258         - Added a simple garbage collector.
259         - Covered a limited number of Smalltalk-80 standards.
260         - Image compatible with both 32-bit and 64-bit platforms.
261         - The VM works indifferently on Win32 and Posix.
262         - Use Scons as building system
263         - Interactive console from whithin Smalltalk itself
264         - Immediate SmallIntegers and Characters
265         - A basic plugin system
266         - Support for Floats and LargeIntegers
267         - Fixed operations between different numbers
268         - Easy C to Smalltalk interaction
269         - Added class variables
270         - Variable bindings for globals and class variables
271         - Added OrderedCollection
272         - Very simple method caching
273         - Still limited exceptions and tracebacks
274         - Remove Glib dependency
275         - Syncronous I/O multi-plexing trough Semaphores
276         - Use direct pointers instead of indexes for oops
277         - Organized better debugging informations
278         - Documented using Doxygen
279         - Reorganized Syx initialization
281 (Luca Bruno)
284 28 May 2007
285 -----------
287         After i defined how the VM should become in the time,
288         i created a google code account at: http://code.google.com/p/syx.
289         Now Syx is officially opened to Internet as an open source project under MIT license.
290         I hope to release the first 0.1 version very soon.
292 (Luca Bruno)