Hi,
my vacation is over, I have to continue working on
something else. Therfore I have less time now to
continue with the Self port. I think that there is
not missing too much to finally get a running system
(with all the applications :-)). It all comes down to
the stack walking code.
In order to give others the chance to participate, too,
I have put the stuff on the web server. Everybody who
likes to see Self on Linux as soon as possible, and
knows how to use a debugger is invited to help fixing
the remaining problems. I will continue, too, of course.
Maybe, I also made some mistakes...
http://www.cichon.de/self/
-gordon
--
----------------------------------------------------
Gordon Cichon email: Gordon(a)Cichon.de
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
Jecel wrote:
>It is indeed much like the Wiki Wiki Web or the SWiki, but I felt
>something more structured would be better.
I've the same feeling but then a friend of mine told me (and somewhat
convinced me) that hypertext is actually made for non-structured data and
that at least some spaces in your web should feature this kind of
unstructured (chaotic) data as this can feature creativity.
>> [pyweb]
>Sounds very interesting, but looking through some search engines
>(even at http://www.python.org) didn't turn up anything. It is
>always nice to look at sample source code, but I will still have
>to write most of this site from scratch.
If I'm back home again, I can send you the source.
> > - at some point there will be a demand for the software at this
> > site to be distributed via CD-ROMs. Many people prefer to pay
> > $20 or so in order not to have to download 30MB over a modem.
I really like that idea!
> > I am looking into selling these CD-ROMs myself (though anyone
> > else is free to do so as well). Should I have a system where
> > people can tag that stuff they put on the web site shouldn't
> > go into the CD-ROM?
by adding content to the web, people already agreed upon distribution I
think. You should warn them that they give away there exclusive copyright
to the one who produces the CD. However, they also keep the copyright for
all other matters. Therefore, I think that's not needed.
> > - the site will be multilingual: every page will include links
Cool idea, but i fear that this will reduce the usage of the overall site
if people start to write things in there own language only. You should
force them to submit at least an english (=international) version. And
what's about but reports and other notes - will you provide them also as
multilangual?
> > go to the technology page[pt][FR][es][de]. Also see...
> > --------------- -- -- -- --
You could also use little flags - in bright colors for up-to-date info and
in dim colors for older information. Up to date flags might even be
animated as if they're moved by the wind.
bye
--
Stefan Matthias Aust // Truth Until Paradox!
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
Hello, folks!
Let me bother once more with those implementation issues...
I am implementing a simple bytecode interpreter for the Self 4.0 VM,
which I suppose will make it portable among platforms other than the
SPARC.
I have been studying the Self bytecodes, mainly in the fast_compiler VM
code and a paper dated 1989 (from Self 1.0 or 2.0).
There are eight different codes:
SELF_CODE: push the object whose code is being interpreted on the stack
LITERAL_CODE: push a literal (the index of it on the literals vector of
the code is given) on the stack
RETURN_CODE: return
INDEX_CODE: load the index extension register with the 6th to 10th bits
of the extended index. This will be used in the next code to indicate
that the index of the next code is greater than 31
SEND_CODE: send a message to an object. The receiver, the selector and
arguments are given somewhere.
IMPLICIT_SEND_CODE: send a message, just like the previous, only that
the receiver in this case is self.
RESEND_CODE: send a message to a parent (directed resend) or to all
parents (undirected resend). This is equivalent to Java's super.---()
method invocations or to C++'s overridden non-virtual method
invocations. Smalltalk has something similar, I have read.
DELEGATEE_CODE: load the delegatee register with the parent to whom the
next resend should be directed.
It all seems fine, but I don´t understand something seemingly
straightforward: knowing that in a send the receiver and arguments are
popped off stack and the result is pushed onto stack, how is the number
of arguments of a send determined, so that my interpreter could know how
many pops it should make? It seems that in the fast_compiler, when the
machine code for a send is generated, the information of number of
arguments is kept somewhere. Where?
If someone can explain that to me, I appreciate.
Cheers to all,
Douglas
(P.S.: This is the second version of an e-mail I was writing to the
list. The first was lost when Netscape exited with a GPF. This is why
you might notice that I have resumed the explanations about the
bytecodes)
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
Oops, forgot to send to the list...
-------- Original Message --------
Subject: Re: [self-interest] Re: The initial Self World
Date: Tue, 25 May 1999 08:42:03 -0300
From: Douglas Atique <datique(a)alcatel.com.br>
Organization: Alcatel Telecom
To: david.ungar(a)eng.sun.com
References: <"v04204e01b36f9a91a5e0(a)(091)152.70.20.120(093)*"@MHS>
Hello, Dave (may I call you Dave?)
You see, it is a very different feeling to see the VM running and find
out
that it is no more than a program. It is not something from another
world, as
I was imagining after looking at the source code.
Though I have tried the graphical UI, I cannot use it frequently
because:
1) the workstation from which I am borrowing CPU cycles has only 64 MB
RAM
and runs an intranet web server (not a good idea to load it, right?)
2) I run Self through my Windows PC, with a freeware X server, which
does not
have many of the Solaris fonts.
Anyway, I am glad to be able to run the empty VM because I am interested
in
evaluating the read-eval-print loop, in order to diagnose the correct
behavior I should expect for my bytecode interpreter. Now reading the
source
code makes more sense, even with those crazy Resource memory allocation
schemes and unusual friend class "constructors".
This is why I believe that a portable bytecode interpreter should help
other
people (that can´t access a SPARC) to see and understand Self in
practice.
My first goal is to master using the empty VM in the most ways I can,
like an
assembly programmer ;-) Then I will look at more application-oriented
Self
programming.
If you can (perhaps Sun has some technology-transfer-restriction policy
:-)
and feel like discussing internals, I appreciate. I know sometimes I
don´t
understand things very well, but the Self implementation is complex and
I am
only learning. I know I will get there and I know Self can get there,
too.
One day I'll (or we'll) make it a complete operating environment.
Regards,
Douglas
david.ungar(a)eng.sun.com wrote:
> I'm glad you have a SPARC to play with Self on, and
> it sounds as though Jecel has already answered your questions.
>
> Have your tried either of the UIs yet?
> They offer more visual ways to explore than in the empty world.
>
> - Dave
>
> At 9:09 AM -0300 5/20/99, Douglas Atique wrote:
> >Hi, folks!
> >I somehow managed to get Self 4.0 to run on a SPARCstation here at my
> >workplace. Now I can understand better a lot of things that I knew in
> >theory, but couldn´t feel in practice.
> >I am experimenting a little with the empty Self world, that is the bare
> >VM. I tried to do the following:
> >self _AddSlots: ( | prims = _PrimitiveList . credits = _Credits | )
> >This was successful and added the two slots to the lobby (strangely one
> >cannot access the lobby with the "lobby" selector, but with "self"
> >because the VM# prompt evaluation context is the lobby).
> >Unfortunately, what I wanted to do was to invoke the credits slot as a
> >method slot, so that it would print the credits. Instead, the result was
> >that it only kept the returned object (´Thanks!´) on the slot. Then I
> >tried another idea:
> >self _AddSlots: ( | prims = _PrimitiveList . credits = [ _Credits ] | )
> >Yes, a block. Perhaps I could invoke the primitive with "self credits
> >value".
> >Unfortunately it didn´t work. It only complained about non-lifo blocks
> >invocation after the block´s enclosing scope has returned.
> >Does anyone know a workaround to really INVOKING a primitive from a slot
> >of the lobby (or generically any object)?
> >
> >Regards,
> >Douglas
> >
> >
> >------------------------------------------------------------------------
> >@Backup - The #1 Online Backup Service
> >Automatic, Safe, Reliable Backup and Restores. FREE for
> >30 Days. INSTALL Now and have a chance to win a Palm Pilot V!
> >http://clickhere.egroups.com/click/218
> >
> >
> >eGroups.com home: http://www.egroups.com/group/self-interest
> >http://www.egroups.com - Simplifying group communications
>
> David Ungar
> Sun Microsystems Laboratories
> (650) 336-2618
>
> ------------------------------------------------------------------------
> The Weather Underground. We provide weather across the world.
> Visit http://clickhere.egroups.com/click/48
>
> eGroups.com home: http://www.egroups.com/group/self-interest
> http://www.egroups.com - Simplifying group communications
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
Hi, folks!
I somehow managed to get Self 4.0 to run on a SPARCstation here at my
workplace. Now I can understand better a lot of things that I knew in
theory, but couldn´t feel in practice.
I am experimenting a little with the empty Self world, that is the bare
VM. I tried to do the following:
self _AddSlots: ( | prims = _PrimitiveList . credits = _Credits | )
This was successful and added the two slots to the lobby (strangely one
cannot access the lobby with the "lobby" selector, but with "self"
because the VM# prompt evaluation context is the lobby).
Unfortunately, what I wanted to do was to invoke the credits slot as a
method slot, so that it would print the credits. Instead, the result was
that it only kept the returned object (´Thanks!´) on the slot. Then I
tried another idea:
self _AddSlots: ( | prims = _PrimitiveList . credits = [ _Credits ] | )
Yes, a block. Perhaps I could invoke the primitive with "self credits
value".
Unfortunately it didn´t work. It only complained about non-lifo blocks
invocation after the block´s enclosing scope has returned.
Does anyone know a workaround to really INVOKING a primitive from a slot
of the lobby (or generically any object)?
Regards,
Douglas
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
>
>Sounds like this "WikiWikiWeb" idea Ward Cunningham et.al. What kind of
>advantages do you expect compared to this email list?
>
Hmmm....
A website has "persistence"....... and a more broad visibility..... It can
be reached by search engines.... you can explain in a more convenient form
the Self history and status.... include graphics and downloads.... (although
the downloads can be in the egroups.com)
Angel "Java" Lopez
ajlopez(a)ajlopez.com
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
I am thinking of setting up a new web site for use by all in the
Self community. I will pay for it myself, and will also do the
necessary programming (in Python, I'm afraid. I can't use Self or
even Squeak/PWS to host a site with commercial hosting services)
to get it going. The pages will be editable by everyone (with
some minimal protection to avoid vandalism), so this won't work
unless there are enough interested people.
My idea for the layout would be something like the OutlinerMorphs
in Self 4.0, with the following categories:
- People: it isn't much of a community if we don't get to know
each other
- Documentation: papers, future books, web pages and any other stuff
- Applications: end user programs like the Browser or Simulators
- Infrastructure: middle level programs. Frameworks like Morphic
- Implementations: virtual machines, like JSelf, Self 4.0 Sparc,
Self 4.0 Intel, Self/R, OpenSelf
Well, it wouldn't always be easy to fit a project in one of these
categories. And as the list grows, we would have to subdivide into
subcategories some of the above. And there would be a lot of
interdependece between these projects, so it would be nice to have
hyperlinks automatically inserted.
For any given page, the following items can be added separately:
- request: a suggestion for a feature for that project, or even
for starting a new project
- bug report: similar to the above, but describing a problem with
the project
- change: indicates that some new code has been added. Normally
associated with requests and changes. Also has a link
from which the source code may be fetched
- comment: can be associated with any of the above (or even with
another comment). Forms a very specific an localized
discussion
The code included in the changes is always in the form of a patch
to be applied to a release. Every once in a while, the project "owner"
will gather a set of changes into a new release, thus altering
the status of a series of bugs and requests from "pending" to
"fixed". Anyone can create any of the above except for a new release.
If this looks like the system in the Smalltalk "green book", that
is because that is where the original inspiration came from. I
have used CVS for controlling software versions and have also given
Aegis a try, but I think this simpler and older system would
better serve the needs of this community.
I would really like some feedback on this, If there is enough support,
I will create the new site in the first week of June.
-- Jecel
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
We had a nice little chat on Saturday, from about 10pm to 11pm GMT.
Diego Gómez Deck was there first, soon joined by me and Germán Morales
(who left in the middle). Stefan Matthias Aust arrived pretty near
that begining and Federico Ricca more towards the end.
We mostly talked about the JSelf project (and got to see it in action)
and how it was similar to what Stefan wants to do, and how the next
version will be similar to what I want to do (called Self/R, previously
tinySelf 2). I also talked about my hardware implementation of Self
(called Merlin 6).
It was a lot of effort, both to coordinate getting together in the
first place and then to keep the conversation going in the chat
format with delays. But I feel it was worth it - email is sometimes
too slow for some things.
-- Jecel
------------------------------------------------------------------------
eGroups.com home: http://www.egroups.com/group/self-interesthttp://www.egroups.com - Simplifying group communications
Folks,
I have been reading about your chat plans and have suggestions:
- you could try to start with mini-chats with few people, for which it
is easier to arrange the date and time. Then when it gets successful,
you just invite more people. It will be easier to get people to attend
the event if some of them have already tried and liked.
- you could standardize the way you talk about time, for example always
specify time UTC (explicitly), so that everyone understands everyone.
There are so many messages that say things like : "What time is the
chat?" or "What time zone?"
- you could establish what you are going to talk about. For example, I
didn´t apply to the chat because I have noticed that I was the only one
speaking about Self internals, almost speaking to myself. If the chat
were about internals, I would attend. If I don´t know what it is about,
perhaps it won´t interest me so much. So define what you are going to
chat about.
I hope you have a successful chat and that this be the first of many.
Regards,
Douglas
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/self-interesthttp://www.eGroups.com - Simplifying group communications
Hi!
>Event: Self Chat
>Date: Saturday May 15, 1999
>Time: 5:00 pm
>URL: http://www.egroups.com/cal?listname=self-interest&md=d&day=10726
I'd like to join the chat (even if I don't really know a special topic -
did I miss something) but could any kind soul explain me the time as a GMT
time? I think, I'm living at GMT+2 (because of daylight saving time) so
that 21:00-22:00 GMT would be perfect.
bye
--
Stefan Matthias Aust // ...and now something completely different
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/self-interesthttp://www.eGroups.com - Simplifying group communications