![]() | |
![]() |
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
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
To start compilation, it is enough to issue
If you do not have command
After compilation has completed, hummin is ready for use.
Issue
To check that all unit tests still pass,
issue
If you don't want to run it always from the hummin directory, you should
install it. As
Compiling Hummin
make hummin
instead of make
.
make
gcc-3.4
(or have different gcc version), issue
make CC=gcc
./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.
./hummin sunit/test.hm
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
Copyright (c) 2002-2005, Raivis Bucis
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.
All rights reserved.
Copyright © 2002-2005 Raivis Bucis <raivis@users.sourceforge.net>