problems running Self on Linux

Jecel Assumpcao Jr jecel at
Thu Sep 15 16:27:23 UTC 2005

Slava Pestov got the error shown in the stack dump in the following page
when trying to run Self on Linux:

My impression is that "os nodename" is returning "emu e)" for him
instead of just "emu" as it should. Looking at the implementation for
'nodename' this could happen if the uname() system call doesn't clear
the buffer it returns the answer in and the documentation doesn't
mention whether it does or not. It is also pretty nasty that the Self
code supposes all strings are 65 characters in length when the system
call doesn't commit to that but I see no way around this. Slava's Linux
kernel is 2.6.8 while mine is 2.6.10 so it is likely that I am not
having this problem due to the longer host name of my machine rather
than any difference in the system call.

One possible solution would be to change the method in unixGlobals os
osVariants linux:

utsnameIfFail: fb = ( | buf <- '' |
   buf: buf copySize: (sys_nmln * 5).
   "uname(2) returns 0 for success and -1 for failure"
   "sys call checks for -1"
   syscall: sys_name With: buf And: 0
      IfFail: [|:e| fb value: e].
   0 to: 4 do: [ |:index. clear<-false|
      index*sys_nmln to: (index succ*sys_nmln)-1 do: [ |:cp|
         (buf at: cp) == '\0' ifTrue: [clear: true].
         clear ifTrue: [buf at: cp Put: ' ']

But the use of "finger" to guess the host name and user name is a
problem in itself since that application is now considered a security
risk and is no longer found on most machines. On my new Linux (Fedora
Core 2) this combines with another security feature (not rejecting
connections to unmonitored ports in order to slow down port scanning) to
make it so that the GUI window comes up right after Self starts but
nothing happens until I hit control-C twice to kill the two finger
attempts. They would probably eventually time out but this seems to take
more than the five minutes which is the most I have waited so far.

On this new Linux I am also having font problems, so that the Demo
snapshot doesn't start at all and the Barebones snapshot works until I
click on the open stack triangle on a debugger: 

Error: could not load substitute font:
Receiver is: a x11Globals fontDictionary.

I won't worry much about this, however, as this Linux has enough other
problems that I should replace it as soon as I have a little time (2013.

-- Jecel

More information about the Self-interest mailing list