Introducing a new Smalltalk project.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Introducing a new Smalltalk project.

pgregory
Hi everyone,

I hope it's not frowned upon to post announcements on this forum. I'd like to introduce a project I've been working on in my spare time for a while now, and have made it available on GitHub more recently. 


The project is called Tumbleweed (for no particular reason), and is a new, lightweight Smalltalk system, originally based on the code from Timoth A. Budd for "A Little Smalltalk". Since forking from the original code, I've made many significant advances to the core...
  1. Replaced the object memory management, with a new (at the moment, quite naive) mark and sweep memory manager.
  2. Implemented proper meta class support.
  3. Added a quite well featured FFI interface, including struct support, and callbacks.
  4. Added the basis of exception handling, entirely within the language itself, little or no changes to the VM were necessary.
  5. Many other smaller changes and improvements.
I blog semi-regularly about my work on Tumbleweed at http://www.indigobeetle.co.uk.

The project, for some time, just floated around as and interesting little distraction from my day job, but more recently I decided on a firmer direction. I intend to turn Tumbleweed into a multi-media authoring solution, for producing interactive media presentations. This is a relatively broad space, including things like highly graphical, interactive applications, games, menu systems, etc., anything that involves rich 2D/3D graphics, and lots of animation and interaction.

I would welcome any feedback, and of course contributions or offers of assistance are very welcome too. I'm especially keen to hear from anyone with Smalltalk VM experience, or experience with the "A Little Smalltalk" code base.


Cheers



Paul Gregory
Reply | Threaded
Open this post in threaded view
|

Re: Introducing a new Smalltalk project.

Stefan Marr-5
Hi Paul:

On Friday, September 21, 2012 3:37:51 PM UTC+2, Paul Gregory wrote:
I hope it's not frowned upon to post announcements on this forum. I'd like to introduce a project I've been working on in my spare time for a while now, and have made it available on GitHub more recently. 


The project is called Tumbleweed (for no particular reason), and is a new, lightweight Smalltalk system, originally based on the code from Timoth A. Budd for "A Little Smalltalk".

Thanks for sharing. I am always interested to see such projects. Especially, when it comes with some details on the VM, as you got on your blog.

Is it just me, or are a couple of little Smalltalks showing up here and there recently?

I also noticed https://github.com/martinmcclure/mist/, but didn't find anything on the web about it.

Best regards
Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Introducing a new Smalltalk project.

pgregory
On Sunday, September 23, 2012 4:12:47 PM UTC+1, Stefan Marr wrote:

Thanks for sharing. I am always interested to see such projects. Especially, when it comes with some details on the VM, as you got on your blog.

Thanks, I'm also beginning to document the internals of the VM on the project Wiki, here. It's very early so far, but I plan to add to it as I dig deeper into the operation of the VM.
 

Is it just me, or are a couple of little Smalltalks showing up here and there recently?

I also noticed https://github.com/martinmcclure/mist/, but didn't find anything on the web about it.


I've not seen that one, and indeed there doesn't seem to be anything behind it, apart from a project page and some 404's. It wouldn't surprise me though. There is a resurgence of small, succinct, efficient applications these days, maybe a fight back against the ever-growing number of monstrous applications full of bloat. Given this, LST is a very good starting point, being written to work on devices with very limited resources.
 

Cheers


Paul
Reply | Threaded
Open this post in threaded view
|

Re: Introducing a new Smalltalk project.

Michael Haupt-3
In reply to this post by pgregory
Paul,

thanks for posting this!

Perhaps you have some advice for me ... trying to build Tumbleweed on
Linux (Ubuntu 12.04, x64), cmake rejects all attempts to inform it
about libsfml/libcsfml locations. I was able to tell it about the
libffi include path successfully, but I don't get past the SFML issue.

As for comments on Tumbleweed itself, a dynamic compiler seems to be
one requirement if you want good performance. Likewise, GPU support if
you're focusing on multi-media and graphics.

Regards,

Michael
Reply | Threaded
Open this post in threaded view
|

Re: Introducing a new Smalltalk project.

pgregory
Hi,

I've not tried to build it on Linux for a while, I will do when I get a chance. In the meantime, I've looked over the FindSFML.cmake module (in sfml/cmake/modules) and deduced the following information that might be useful.

For the header files location, it searches for "SFML/Config.hpp" in the following locations...

${SFML_ROOT}
$ENV{SFML_ROOT}
~/Library/Frameworks
/Library/Frameworks
/usr/local/
/usr/
/sw # Fink
/opt/local/ # DarwinPorts
/opt/csw/ # Blastwave
/opt/

So if you can find out where "SFML/Config.hpp" can be found in your installation, you can either set the environment variable SFML_ROOT to point to it, or set the CMake variable of the same name on the command line or in the UI.

Similarly, for libraries, it searches for each named component, [window, system, graphics, audio] in the same locations, using find_library which according to the CMake documentation will search in each of the locations, appending '/lib/' for the library. The FindSFML.cmake module constructs the library name as follows...

sfml-${FIND_SFML_COMPONENT_LOWER}

which means, for 'window' CMake will be looking for...

libsfml-window.so

...if I've got it right.

Hope that helps a bit, I'll try and get it building on Linux later today and let you know if I find out anything else.


Cheers


Paul

On 25 September 2012 07:18, Michael Haupt <[hidden email]> wrote:
Paul,

thanks for posting this!

Perhaps you have some advice for me ... trying to build Tumbleweed on
Linux (Ubuntu 12.04, x64), cmake rejects all attempts to inform it
about libsfml/libcsfml locations. I was able to tell it about the
libffi include path successfully, but I don't get past the SFML issue.

As for comments on Tumbleweed itself, a dynamic compiler seems to be
one requirement if you want good performance. Likewise, GPU support if
you're focusing on multi-media and graphics.

Regards,

Michael



--
Paul Gregory
http://www.aqsis.org
Reply | Threaded
Open this post in threaded view
|

Re: Introducing a new Smalltalk project.

vonbecmann
In reply to this post by pgregory
 Paul,
    do you have the Little Smalltak's original code from the book? because i would like to read it.

thanks

On Fri, Sep 21, 2012 at 10:37 AM, Paul Gregory <[hidden email]> wrote:
Hi everyone,

I hope it's not frowned upon to post announcements on this forum. I'd like to introduce a project I've been working on in my spare time for a while now, and have made it available on GitHub more recently. 


The project is called Tumbleweed (for no particular reason), and is a new, lightweight Smalltalk system, originally based on the code from Timoth A. Budd for "A Little Smalltalk". Since forking from the original code, I've made many significant advances to the core...
  1. Replaced the object memory management, with a new (at the moment, quite naive) mark and sweep memory manager.
  2. Implemented proper meta class support.
  3. Added a quite well featured FFI interface, including struct support, and callbacks.
  4. Added the basis of exception handling, entirely within the language itself, little or no changes to the VM were necessary.
  5. Many other smaller changes and improvements.
I blog semi-regularly about my work on Tumbleweed at http://www.indigobeetle.co.uk.

The project, for some time, just floated around as and interesting little distraction from my day job, but more recently I decided on a firmer direction. I intend to turn Tumbleweed into a multi-media authoring solution, for producing interactive media presentations. This is a relatively broad space, including things like highly graphical, interactive applications, games, menu systems, etc., anything that involves rich 2D/3D graphics, and lots of animation and interaction.

I would welcome any feedback, and of course contributions or offers of assistance are very welcome too. I'm especially keen to hear from anyone with Smalltalk VM experience, or experience with the "A Little Smalltalk" code base.


Cheers



Paul Gregory



--
Bernardo E.C.