[19:55] frunobulax hat den Chatroom betreten. [20:01] hyazinthfuchs hat den Chatroom betreten. [20:01] hyazinthfuchs hat den Chatroom verlassen. ("") [20:02] frunobulax hat den Chatroom verlassen. (ircd.snt.utwente.nl *.uunet.nl) [20:02] reinhold hat den Chatroom betreten. [20:09] uho: Hallo Reinhold, wie gehts PowerMops? [20:10] reinhold: Ich treibe den Stollen gerade von der Tcl-Seite aus Richtung Powermops [20:13] reinhold: Eine Tcl-Erweiterung, in die man Powermops einhŠngen kann [20:13] reinhold: aber auch ebensogut ein anderes Forth. Und somit hat es mich "erwischt": [20:14] reinhold: ..ein "neues" Forth, verdammt [20:15] uho: Und - machst Du denn eigentlich wirklich ein neues Forth, oder im Moment eher den portablen Rahmen? [20:16] reinhold: Im Moment das Forth; ziemlich frŸher Zustand: Dictionary-Lookup [20:17] reinhold: eine einfache Zeigerliste erstmal. (Powermops hat Ÿbrigens auch nichts Besseres) [20:18] uho: Ein Forth in TCL also? Und die Primitives dann in C? [20:19] reinhold: In PPC-Assembly. Ich kann zuwenig C. Sonst hŠtte ich kforth eingehŠngt, [20:20] uho: OK - so kann man das machen. Primitives in Assembler, High-Level-Worte in TCL. [20:21] uho: Wohin wird eine :-Definition Ÿbersetzt? Nach TCL? [20:21] reinhold: Die Idee ist, einen Befehl "forth" fŸr Tcl zu schreiben, der Strings als Forth-Code evaluiert [20:21] reinhold: und umgekehrt von Forth aus Tcl-Code zu evaluieren, und drittens [20:22] reinhold: zwischen Forth und Tcl als Coroutinen hin- und herzuschalten. Ich glabe, das klappt. [20:22] reinhold: glaube [20:22] uho: Soll ich denn dann auch interaktiv Definitionen machen dŸrfen? [20:23] uho: Stichwort "Outer Interpreter". [20:23] reinhold: WŠr's denn sonst ein Forth? [20:24] reinhold: Experimente sind geplant: es soll ein compile-only Forth werden [20:25] uho: Es hat da immer wieder mal "klassische" Compiler gegeben, die Quellcode aus Files Ÿbersetzt haben und sonst nix. [20:25] uho: TCOM oder 4th zum Beispiel [20:26] reinhold: etwas unpraktisch, nicht? [20:26] uho: So - und wenn es also einen Outer Interpreter gibt und ich da : test ." hallo" ; eingebe. Was passiert dann in Deinem Forth? [20:26] frunobulax hat den Chatroom betreten. [20:26] uho: Hallo Marcel. [20:27] reinhold: Wir mŸssen das Thema wechseln - Marcel hasst Hobby-Forths. [20:27] uho: [20:27] uho: Die Redaktion der "Vierte Dimension" sucht noch Artikel fŸr die aktuelle Ausgabe. [20:30] reinhold: Das Wort "test" wird zum Wšrterbuch hinzugefŸgt, der Code kommt in den (separaten) Codebereich. Wšrterbuch, Codebereich, und [20:31] reinhold: Datenraum werden per Tcl_Alloc bereitgestellt. Oder was wolltest du genau wissen? [20:32] uho: Und dann hast Du threaded-code. Vielleicht sollte ich besser : test cr s" hallo" count type ; definieren, damit es auch was zum threaden gibt. [20:33] uho: Mich interesiert also, was in den Code-Bereich kommt. [20:34] reinhold: Ach so. Subroutine-threaded code. Tail call Eliminierung ist geplant, vielleicht auch Inlining. [20:36] uho: OK - und der †bergang zwischen TCL und Forth erfolgt durch Interpretieren von Strings? Oder kann man mit TCL-Funktionen auch was auf den Stack legen und mit Forth eine TCL-Parameterliste zusammenbauen? [20:37] reinhold: Ja. Hat der Tcl-Befehl "forth" mehr als zwei Parameter, werden alle bis auf den letzten als Zahlen interpretiert und auf den Stack gelegt. [20:38] reinhold: Das scheint schon zu klappen. Die Tcl-API von Forth aufzurufen, klappt noch nicht. [20:38] uho: Wie willst Du das machen? [20:41] reinhold: Eine C-Funktion, die von Tcl gerufen wird, ruft in einer Schleife Forth (per Assembly). Will ich von Forth eine C-Funktion rufen, [20:42] reinhold: dann unterbreche ich Forth (wie bei einer Coroutine) und gebe eine Flagge zurŸck. Mit der Flagge ind er Hand sucht dann die [20:42] frunobulax hat den Chatroom verlassen. ("a quit that really quits") [20:43] reinhold: C-Schleife die gewŸnschte API-Funktion und ruft dann in der nŠchsten Runde wieder Forth. [20:43] frunobulax hat den Chatroom betreten. [20:43] reinhold: Ich wei§ nicht, ob das jetzt verstŠndlich war. [20:44] uho: Die Flagge bestimmt, welche API-Funktion auzurufen ist? [20:44] uho: aufzurufen ist? [20:45] reinhold: So denke ich naiverweise. Ich hŠtte dann gerne eine Tabelle mit xts, aber so geht das wohl nicht bei C. [20:47] reinhold: Vielleicht mit switch? [20:47] uho: Es kšnnten Funktionspointer sein, aber dann muss man eben auch einen Funktionsaufruf (mit Stackframe) machen. Sprungtabellen gibt es in Standard-C nicht. GCC hat "Labels as Values" dafŸr. Ein Switch wird in der Regel schon in einen Indizierten Sprung Ÿbersetzt. Das kann man ausnutzen. [20:51] reinhold: Hoffentlich. Es muss einfach gehen. Die Zeigervariablen und Datentypen treiben mich ohnehin zum Wahnsinn. [20:52] reinhold: Sternchen hin, Sternchen weg, bis es klappt. [20:52] uho: Dann ist ein switch Ÿber kleine Zahlen genau das richtige und wird auch noch effizient Ÿbersetzt :-* [20:52] frunobulax hat den Chatroom verlassen. ("a quit that really quits") [20:53] uho: Mal was anderes: Ich habe Zeit gefunden, ein wenig mit dem OLPC-XO zu experimentieren. [20:53] frunobulax hat den Chatroom betreten. [20:54] reinhold: Open Firmware? [20:54] uho: Bei meinem XO ist Bitfrost aktiviert. Dadurch ist der Boot-Prozess geschŸtzt [20:54] uho: und man kann die Open-Firmware nicht erreichen (http://wiki.laptop.org/go/Firmware_security) [20:54] uho: Erst mit einem Developer-Key kann man wŠhrend des Bootens durch DrŸcken der [20:54] uho: Escape-Taste in das OpenFirmware-Forth kommen. [20:55] uho: Damit gibt es im Auslieferungszustand leider kein zugŠngliches Forth auf der Kiste [20:55] reinhold: Eine Kindersicherung [20:56] uho: Tja - und wir wollen doch XO-Applikationen, genannt "Activities" in Forth machen.... [20:58] reinhold: Pat LaVarre hat vor 5 Jahren ein Pong-Spiel fŸr Openfirmware geschrieben. Es lŠuft auf G3-Rechnern. Hab' gebrŸllt vor Lachen. [20:59] uho: Ja - das hatte ich auf meinem iBook gehabt. War cool. Vielleicht kann ich das auf den XO portieren. *Ich* komm da ja jetzt ran.... [21:01] frunobulax hat den Chatroom verlassen. (ircd.snt.utwente.nl *.uunet.nl) [21:02] uho: Und zum GlŸck lŠuft gforth auf der Konsole. [21:02] uho: Da der XO ja ein Fedora-Linux hat, lŠsst es [21:02] uho: sich bequem mit "yum install gforth" installieren. [21:04] reinhold: Ist weit weniger cool. LaVarre hatte auch einen Block-Editor: es war nicht mehr weit bis zu einem Forth-OS. [21:05] reinhold: Dann war leider Schluss. [21:06] uho: Wir haben mal versucht Tetris for Terminals ins OpenBoot-Forth zu bringen. Leider hatte ich bei gotoxy zum Cursor positionieren nicht den richtigen Biss. [21:08] reinhold: LaVarres Code ist umstŠndlich programmiert. Ich hab das mal vereinfacht. Bin interessiert! Wo finde ich den Tetris-Code? [21:09] uho: Zum beispiel bei mir: http://www.xlerb.de/uho/forth.htm [21:15] reinhold: Gefunden. Ich sag dann mal tschŸ§. Bis nŠchste Woche. [21:15] uho: Ciao [21:15] reinhold hat den Chatroom verlassen. ("")