Download | Compiling | Benchmarks | License SourceForge.net Logo

Hummin is Smalltalk-80 implementation with nearly full ANSI Smalltalk class library. It is file based and does not have images like other Smalltalk implementations do. It currently runs only on x86 linux. There is a plan to port it to other architectures (probably MIPS or PowerPC) and over Windows.

It's main target is having fast Smalltalk implementation. It has interpreter and simple just in time compiler that is already pretty fast. It is a little bit slower than VisualWorks, and much faster then Squeak. It's speed is certainly going to be improved by using much more aggressive optimization techniques.

Hummin has a simple license (BSD like) that does not require to publish changes like GNU smalltalk and Squeak do for their virtual machine code. At the same time it is compatible with GPL, allowing it to bind to vast array of open source libraries.

Download latest release from Sourceforge - Hummin v0.1


Compiling Hummin

To compile hummin, it is recommended to have installed gtk+ v2.0 libraries with all header files. On debian, it is enough to install libgtk2.0-dev package. It is possible to compile hummin without support for gtk+ by issuing make hummin instead of make.

To start compilation, it is enough to issue

make

If you do not have command gcc-3.4 (or have different gcc version), issue

make CC=gcc

After compilation has completed, hummin is ready for use. Issue ./hummin from hummin directory (it won't work from any other directory), Hummin Workplace window should open up, try to enter 5 factorial! in the window.

To check that all unit tests still pass, issue

./hummin sunit/test.hm

If you don't want to run it always from the hummin directory, you should install it. As root issue make install. By default all files will be installed under /usr/local directory in /usr/local/bin and /usr/local/share/hummin. To change the directory prefix edit PREFIX in the Makefile (and don't forget to recompile by issuing make clean all).


Benchmarks

 1000 bytecodes/sec 1000 sends/sec
VisualWorks NC r5i.4 697 006 (100%) 59 822 (100%)
Hummin 0.1 345 192 (49.5%) 24 212 (40.5%)
Squeak 3.7 139 865 (20.0%) 6 491 (10.8%)
GNU Smalltalk v2.1.8 (no JIT) 69 678 (10.0%) 4 463 (7.5%)

All benchmarks were run on Celeron 2.53GHz with 256Mb of memory under Linux. Percentages are calculated relative to VisualWorks performance.

Benchmarks could be rerun with command (from hummin source code directory):

./hummin extra/bench.hm

Hummin License

Copyright (c) 2002-2005, Raivis Bucis
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Copyright © 2002-2005 Raivis Bucis <raivis@users.sourceforge.net>