This new version of Huemul have many improvements and bug fixes. One of them are the history and the command line editing facilities.

Download it from here

The Huemul Software License, Version 2.0.0

Copyright (c) 2008 Guillermo A. Molina.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

It may be due to a security enforcement related with the kernel. There is an option in Linux kernels called "noexec". This feature prevents the execution of dynamically allocated memory. Huemul uses libc's malloc to allocate memory for normal objects and compiled methods. But as Huemul has to execute the compiled methods, the kernel protects itself and kills Huemul. In future versions of Huemul, memory allocation will be done with mmap. This system call allows execution of code inside dynamically allocated memory. But until that moment arrives, we have to apply a little hack to the kernel to run Huemul.

If you get the following while trying to run Huemul:

$ huemul huemul.image
Huemul Smalltalk - Version 0.6
Initializing...
done
To use the graphical tools write:
AppLauncher open
or
Segmentation fault (core dumped)
$

or:

$ huemul huemul.image
Huemul Smalltalk - Version 0.6
Initializing...
done
To use the graphical tools write:
AppLauncher open
or
killed
$

We have to boot using the "noexec=off" option. This can be done temporarily or permanently. To do it temporarily, you have to interrupt the normal boot process of your system at the grub stage. Most of the distributions gives a chance to interrupt grub (or any other boot manager) by pressing a key (normally the escape key). Then you have to edit the boot configuration, by changing the line that says "kernel /vmlinuz...", at the end of that line add "noexec=off" (add a space before). Accept the edition and boot with that kernel.

Once inside the system test if the change was really made by doing:

# cat /proc/cmdline
....ro root=LABEL=/ apic noexec=off

if noexec=off appears at the end of the line, you can now play with Huemul!

if you want to make it permanent you would have to edit the grub configuration in /boot/grub/menu.lst and put the "noexec=off" on the same line as "kernel /vmlinuz...", at the end (add a space before)
for example:

default=0
timeout=10
splashimage=(hd0,2)/grub/splash.xpm.gz
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.ELsmp)
root (hd0,2)
kernel /vmlinuz-2.4.21-32.0.1.ELsmp ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-32.0.1.ELsmp.img
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL)
root (hd0,2)
kernel /vmlinuz-2.4.21-32.0.1.EL ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-32.0.1.EL.img
title Red Hat Enterprise Linux ES (2.4.21-4.ELsmp)
root (hd0,2)
kernel /vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux ES-up (2.4.21-4.EL)
root (hd0,2)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-4.EL.img

After reboot, verify if booted with noexec=off option

#cat /proc/cmdline
ro root=LABEL=/ apic noexec=off

Please let us know if this works for you.

Last Updated ( Tuesday, 22 April 2008 18:00 )
Huemul is a new implementation of Smalltalk. It is build under the principle of reuse of existing technologies. It is aimed to be compatible with Smalltalk 80 at the language level. Huemul translates methods directly to machine code, and they are kept like that in the image. With this approach, non-Smalltalk code is kept to the bare minimum, making it very easy to port. Huemul is designed to be efficient enough to do primitives in Smalltalk.

Application Launcher

This tool is used as a starting point, to launch the other tools, and to control Huemul's execution


Class Browser

It is the heart of Huemul development experience, it is used to modify the Class/method system


Debugger

It is the main debugging tool, whenever something goes wrong, this is the place to start


Object Inspector

This tool is used to examine the object system, it is a simple and useful way of introspection


Workspace

It is a place to execute code to compute something useful, and develop bits of a program


Transcript

Transcripter is a simple scrolling stream with display, it is used as a logging facility


   

External Sites  

   
© Copyright © 2020 Web de Guillermo Adrián Molina. All Rights Reserved.