[self-interest] [Ann][Quack] Self 4.5.0 ("Mallard") released

Baltasar baltasarq at gmail.com
Mon Jan 13 11:25:42 UTC 2014


Hi, everyone!

> OK, so Self Mallard (4.5.0, named after the the majestic, awe inspiring Anas platyrhynchos) is now live at:
> http://selflanguage.org/files/releases/4.5/Self-4.5.0.dmg
> http://selflanguage.org/files/releases/4.5/Self-4.5.0.tar.gz

	First of all, this is an excellent work. Kudos for the effort!

	Okay, I've tried and installed it. Since it has been a very long time since I played with Self, it was more like a newbie experience than anything else.

	I hadn't read the blog yet, so I Hadn't learn about the -s option.

	After unpacking, the first thing I tried was:

==
$ ./Self
bash: ./Self: Permission denied
baltasarq at PC-baltasarq:~/Desktop/Self-4.5.0$ chmod +x Self
==
	This is a little bit annoying, but anyway.
==
$ ./Self
Self Virtual Machine Version 4.1.13, Sat 11 Jan 14 21:43:40 Linux i386 (4.4-272-g885323f)
Copyright 1989-2003: The Self Group (type _Credits for credits)

for I386:  LogVMMessages = true
for I386:  PrintScriptName  = true
for I386:  Inline = true
for I386:  SICDeferUncommonBranches = false (not implemented)
for I386:  SICReplaceOnStack = false (not implemented)
for I386:  SaveOutgoingArgumentsOfPatchedFrames = true

#VM	
==
	Well, all right, let's try the magic word:
==
#VM help
	To begin using Self, you must read in the world of Self objects.
	To read in the world, type:

		'worldBuilder.self' _RunScript

	When this process is complete, you will be at the Self prompt.
	At the Self prompt, you can start the user interface by typing:

		desktop open
==
	So now, the next step is obvious:
==
#vm 'worldBuilder.self' _RunScript

A lookup error happened while sending the message
	primitiveFailedError:Name:
to
	'worldBuilder.self'.
Subsequently, the lookup error message
	undefinedSelector:Receiver:Type:Delegatee:MethodHolder:Arguments:
was sent to
	<2>,
and was also not understood, causing the process to be aborted by the Self VM.
(...)
==

	This is not good. I exited Self by hitting ^C many times...

==
VM# ^C^C^C^C^CSelf VM warning: press one more ^\ or ^C to force abort
^C
Do you really want to force a 'hard' abort (y/n)? y
Self VM fatal error (/home/russell/self/vm/src/any/os/sig.cpp, line 191): forced ^\ abort

VM Version: 4.1.13, Sat 11 Jan 14 21:43:40 Linux i386 (4.4-272-g885323f)

Self process 25883 on PC-baltasarq has crashed.
Do you want to:
   1) Quit Self (optionally attempting to write a snapshot)
   2) Try to print the Self stack
   3) Try to return to the Self prompt
   4) Force a core dump
   5) Print the interrupted context registers
Your choice: 1
Enter snapshot name (hit return to omit snapshot) > 
No snapshot specified, will skip this step
==

Next thing I tried was to drop Clean.snap onto the Self executable (nothing happened), or call Self with the --help option (a standard option nowadays). This executed the Self console without any noticeable change.

> I've lightly updated the website, and put a blog post up at:
> http://blog.selflanguage.org/2014/01/12/self-mallard-4-5-0-released/

	Thanks to that, I was able to finally fire up Self.

==
$ ./self -s Clean.snap
==

	And the main problem comes when you close the window of the desktop. The console does not exit, and the prompt just shows: "Self 1". I tried the other magic word:

==
"Self 1" quit
Save to Clean.snap before quitting? 
  y => save, then quit
  n => quit without saving
  RET => cancel
Response: y
Snapshot file name? [RET => Clean.snap] 
Saving object code in snapshot is currently disabled.

    1. Enable
    2. Disable
[Type the number of your selection]
1
Snapshot compression is currently enabled.

    1. Enable
    2. Disable
[Type the number of your selection]
1
Code cache size (code only) ? [RET => 16777216] 
Change object heap sizes y/[n] ? n
Starting: Thoroughly cleaning up memory......
Finished: Thoroughly cleaning up memory...
Starting: Writing snapshot to Clean.snap...
sigchild ignored
Finished: Writing snapshot to Clean.snap
==

	Save it or not? Enable compression? Cache size?
	Shouldn't the image just be saved automatically? Maybe copying the original one as Clean.snap.bak?

	The thing I want to state is that Self, in its current state, is not very friendly for beginners. Maybe just a "start.sh" with the "chmod +x Self && ./Self -s Clean.snap" would just solve the problem of beginning with Self. About finishing, I think it should be completely simplified.

	Another, completely different issue is how bad the font is seen in Ubuntu. Maybe is just that the system font is too small in the title window, and in the buttons: Get it, Do it and Close. Can that be somehow fixed?

	Finally, in the self page the tutorial in: http://selflanguage.org/_static/tutorial/index.html is recommended. The problem is how to start. Nowhere is to be found how to create a new, empty object, so you can start with the balance example.

	Hope this, somehow, helps.
-- 
Baltasar García Perez-Schofield (jbgarcia at uvigo.es)
Dpt. Informática, Universidad de Vigo, España
http://webs.uvigo.es/jbgarcia/




More information about the Self-interest mailing list