Monday, July 30, 2007

Syx 0.1.3 has been released

this new release of Smalltalk YX adds yet more support for other platforms (Windows CE), a bunch of bug fixes, and many features like the ST compiler. This is a list of what changed since previous release:
  • Fractions, division methods and some other match functions (floor, ceiling, quo, trunc, ...) have been added
  • Some lexer issues (quotes, minus, ...) have been fixed
  • Fixed garbage collection while finalizing objects
  • Many ANSI methods for Character have been covered
  • First attempt to reach endianness image compatibility
  • String to Number methods and viceversa have been added
  • Super messages have been fixed
  • Syntax shortucts such as Object>>#caseOf:otherwise: have been added
  • Fixed cascading parsing
  • A complete Smalltalk compiler has been added
  • Support for cross-compiling and with more options have been added to Scons
  • Save text of methods
  • Increased initial memory size from 20000 objects to 100000 objects
  • More C functions have been documented
  • An important issue in ArrayedCollection?>>#replace:From:To:With: primitive has been fixed
  • Access mode (read, write, read and write) to Streams and more methods to FileStreams? have been added
  • CompiledMethod? and CompiledBlock? inheritance has been reorganized
  • Run Smalltalk scripts from command line
  • New plugin to wrap native Win API to create a simple WinWorkspace
  • Build Syx for Windows CE with WinWorkspace running on the device
  • Support for user-defined startup sequence has been added
  • Support for wide-character strings has been added
  • getopt, errno, fstat, access, getenv and perror are now optional functions

Cross-compiling to Windows CE has been done with host=arm-wince-mingw32ce using CeGCC by disabling all configuration options. Endianness compatibility is not perfectly reached yet.

See the ChangeLog for a complete list of things that changed.

Sunday, July 29, 2007

Smalltalk YX to run on PocketPC

Smalltalk YX is known to work on many platforms at this time. However, lately i've been working to port it on PocketPC with a small graphical workspace.
It took me about 3 days of work but now it works very well. Cross compilation has been easily done using CeGCC on Windows with just some changes in the VM.

The only problem is that Syx needs to be installed into the root device to work, it's not working in other directories, but i think this is the last problem to care about.

A plugin has been added, called WinWorkspace, which is a native Windows GUI containing a text box for both the input and the Transcript, and a DoIt button to evaluate the code. This plugin also works on Win32.
I think Syx can be easily ported to Smartphone as well without many changes.

Here you can find some screenshots:

Stay tuned with the next 0.1.3 release, bye.

Thursday, July 19, 2007

Smalltalk YX to compile itself

lately i've been working on a compiler for Syx in Smalltalk. Actually, it's mostly a plain translation of the C one, but works pretty nice. This is an example without using intermediate shortcuts:

$ syx
> | text lexer parser method context |
> text := 'message ^123+32'.
> lexer := CompilerLexer on: text.
> parser := CompilerParser on: text for: nil class.
> parser parse.
> method := CompiledMethod fromParser: parser.
> context := MethodContext on: method parent: thisContext receiver: nil arguments: #().
> ^Processor enter: context!

Eventough it's still missing features such as cascading and optimized blocks, i hope to release 0.1.3 version very soon. The purpose is to use this compiler for the console and for files instead of the C one.

Stay tuned, bye!

Friday, July 13, 2007

Syx 0.1.2 has been released


this version of Syx has a bunch of new features added to the Smalltalk
environment, and a more stable VM. Major enhancements includes:
  • New compiler flags to build Syx on Mac OS
  • Added Sets and Bags
  • Refactored objects to hold both instance variables and indexed variables
  • Literals in methods are now constant
  • Added basic WriteStream
  • Doubled initial memory size to hold 20000 objects
  • Fixed ByteArray/String small integer to character conversion
  • Added object finalization by fixing GC transactions
  • Added support for infinite-precision numbers using GMP
  • Integer overflow checks when doing sum, difference, multiplication and bit-shift

Note that Syx can be compiled also without GMP. Eventough you use an
image containing LargeIntegers, Syx will run without problems but won't understand that


Monday, July 09, 2007

Syx on FreeBSD and Sparc

actually, Syx is known to work on Linux and Windows with 32-bit and 64-bit support and image compatibility.
Now Syx is available also on Sparc SunOS and FreeBSD.
A contributor sent me two packages after some troubleshoots with Scons on these two platforms.

Also, i would announce the creation of a google group for Syx discussions.

Stay tuned for the next 0.1.2 version. Bye!

Thursday, July 05, 2007

Syx 0.1.1 has been released

this second version of Syx includes as many bug fixes as feature enhancements. I wanted to release this version just after 3 days because i think these changes are very important.
  • Implemented linear hash tables, similiar to double hash
  • Added method caching to unary and binary messages too
  • Added bdist command to create a binary distribution
  • Improved exception handling and tracebacks
  • Added Integer class with basic bit-wise operations
  • Inline whileFalse: block
  • Covered most of PositionableStream? standard
  • Added basic subclassing at runtime
See the ChangeLog for a complete list of things that changed.

I've also added binaries for Linux on x86 and x86-64 platforms.

Please comment, give me suggestions but especially critiques ;)

Monday, July 02, 2007

Syx 0.1 has been released!

finally after a month, i've just released the first version 0.1 of Smalltalk YX.

You can find detailed informations on what Syx reached till now by reading the release notes.
Downloads and installation instructions are provided on the home page, including binaries for Win32 and an installer.

Feel free to add comments of any type, from critiques to suggestions.
You can also email me and ask about the project.