Newbie-Frage(n) zur Auflockerung zwischendurch

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Newbie-Frage(n) zur Auflockerung zwischendurch

thomas.metz@web.de
Liebe Squeak-Experten,

erstmal vielen Dank für den interessanten Squeak-Nachmittag, insbesondere an
Marcus für die Einladung und Organisation (und die leckeren Brezel :-))

Ich war mittlerweile auch schon "missionarisch" tätig und habe gestern versucht (im
Rahmen meiner bescheidenen Möglichkeiten), einem Freund die Vorzüge von
Squeak zu vermitteln.

Dabei ergab sich allerdings eine Frage, die ich ihm nicht beantworten konnte (auch
das Browsen durch die Klassen und Google-Suche haben uns nicht weitergeholfen):

- Ist es möglich, in Squeak Assembler-Befehle direkt einzugeben?

Es trat außerdem ein merkwürdiges Problem unter Knoppix 3.2 auf:

Wenn ich aus dem Object Catalog einen SoundRecorder rausziehe und auf "Record"
drücke, friert das System ein. Weder Maus noch Tastatur reagieren dann noch (auch
nicht die Tastenkombination "Strg-Esc" zum Aufruf des Process-Tables, um einen
Prozess abzuschießen).

Unter Windows2000 und XP tritt dieses Problem nicht bei mir auf.

Übrigens:
Besonders angetan war mein Kumpel von  der Möglichkeit, Squeak Deutsch mit
amerikanischem Akzent babbeln zu lassen:


"------------ Frauenstimme: Hallo, wie geht es dir? -----------"

Speaker woman say:'Hullo, we gate us dear?'

"--------------------------------------------------------------------------"

;-)))

Grüße aus Rheinhessen

Thomas
Reply | Threaded
Open this post in threaded view
|

Re: Newbie-Frage(n) zur Auflockerung zwischendurch

Marcus Denker-2
On Thu, Jul 17, 2003 at 03:59:43PM +0200, [hidden email] wrote:
> Liebe Squeak-Experten,
>
> - Ist es möglich, in Squeak Assembler-Befehle direkt einzugeben?
>
Assembler ist ja von Prozessor zu Prozessor verschieden. Und eines
der Ziel von Squeak ist es, "ueberall" lauffaehig zu sein. Dies
wird ueber eine sog. virtuelle Maschine erreicht: Dies ist, sozusagen,
ein in in Software realisierter Prozessor. Squeak selber erzeugt
dann "Maschinencode" fuer diese virtuelle Maschine: Den Bytecode (der
heist so, weil die befehle ein byte gross sind).

Fuer diesen Bytecode gibt es einen Assemblierer (er ist Teil des
Closure-Compilers, also noch nicht im Image). Das sieht dann so
aus:

    IRBuilder new
                rargs: #(self a); "receiver and args names"
                addTemps: #(z); "extra temps (not used here)"
                pushTemp: #self;
                getField: 1;
                pushTemp: #a;
                send: #>;
                jumpAheadTo: #else if: false;
                pushLiteral: 'yes';
                returnTop;
                jumpAheadTarget: #else;
                pushLiteral: 'no';
                returnTop;
                ir


Das ist also "Squeak Assembler". Aber sinnvoll ist das nur, wenn man
das innerhalb eines Uebersetzers verwendet (z.B. verwendet es der
Uebersetzer, der Smalltalk in Bytecode compiliert).

Aber zurueck zur Frage ;-) :

Assembler in dem Sinne, in dem es wahrscheinlich gemeint war, kann man
nicht direct von innerhalb Squeak verwenden. Das macht ja auch keinen
Sinn, denn dann laeuft das ja nur auf einem System. Man kann natuerlich
Assembler wie C anbinden... wenn man ein .o file erzeugt, dass den
Link-Konventionen fuer C entspricht kann man es zur VM dazulinken, oder
man koennte gewiss auch eine DLL (bzw. .so unter linux bzw. .bundle unter Mac)
bauen und FFI verwenden.... dann wird man aber wahrscheinlich das meiste in C
schreiben, und nur fuer das wirklich noetige auf Assembler zurueckgreifen.

Dumme Frage: Wofuer braucht der das denn? Macht heutzutage Assembler
ausserhalb des Compilerbaus ueberhaupt noch Sinn? Kann ich mir nicht
so recht vorstellen... die C-Compiler sind schon sehr gut, heutzutage.

Wenn er so richtig experimentell sein will: Exupery enthaellt tatsaechlich
einen x86-Assemblierer (naja, eher ein compiler-backend), in Squeak fuer Squeak:

http://map1.squeakfoundation.org/sm/package/3f443df5-3d77-4e98-a8e0-dd8661371fa1


      Marcus


--
Marcus Denker [hidden email]  -- Squeak! http://squeak.de

Reply | Threaded
Open this post in threaded view
|

Re: Newbie-Frage(n) zur Auflockerung zwischendurch

Esther Mietzsch
In reply to this post by thomas.metz@web.de

> Es trat außerdem ein merkwürdiges Problem unter Knoppix 3.2 auf:
>
> Wenn ich aus dem Object Catalog einen SoundRecorder rausziehe und auf
> "Record" drücke, friert das System ein. Weder Maus noch Tastatur reagieren
> dann noch (auch nicht die Tastenkombination "Strg-Esc" zum Aufruf des
> Process-Tables, um einen Prozess abzuschießen).
>
> Unter Windows2000 und XP tritt dieses Problem nicht bei mir auf.

Bei meinem Linux (Suse 8.0) funktioniert der SoundRecorder auch nicht, aber
wenigstens stürzt nichts ab. Klappt denn bei dir das Beispiel "Music" in
"Worlds of Squeak"? Bei mir tut sich da gar nichts, aber ich bin ohnehin
unmusikalisch.

Gruß
Esther