*** Protokolldatei gestartet *** Datum: Mi Aug 20 20:06:34 2008 [Mi Aug 20 2008] [20:06:34] Betreten Sie haben den Kanal #forth-ev betreten (~bernd@ppp-93-104-127-146.dynamic.mnet-online.de). [Mi Aug 20 2008] [20:07:04] Ist es eigentlich opportun, einen (weiteren) Artikel zu verfassen, der die Änderungen seit der in der VD beschriebenen Version 1.3 bis heute beschreibt? [Mi Aug 20 2008] [20:07:46] Ja, ich denke das macht Sinn. amForth hat sich doch mächtig [Mi Aug 20 2008] [20:07:55] weiterentwickelt, so wie ich hörte. [Mi Aug 20 2008] [20:08:08] Hab' selber leider momentan keine Zeit, reinzusehen. [Mi Aug 20 2008] [20:08:43] Der Assembler-Artikel ist natürlich auch klasse. [Mi Aug 20 2008] [20:08:56] AVR-Assembler hatten wir glaube ich noch nicht. [Mi Aug 20 2008] [20:09:37] Obacht: Ich schreibe keinen Assembler Artikel, eher "wie sieht der Assembler in amforth aus" [Mi Aug 20 2008] [20:09:59] Was die Kistchen alles machen können, streife ich nur am Rande [Mi Aug 20 2008] [20:10:19] Na, dafür wirst Du doch auch ein paar Schnippsel AVR-Assembler verwenden. [Mi Aug 20 2008] [20:10:38] ja sicher, aber Grundlagenwissen setze ich voraus ;=) [Mi Aug 20 2008] [20:10:40] Willst Du die Implementierung des Assemblers beschreiben? [Mi Aug 20 2008] [20:10:57] Nein, dazu kenne ich den zuwenig. Ist schließlich nicht von mir [Mi Aug 20 2008] [20:11:26] Ah - habe ich nur lose auf der Mailing-Liste verfolgt. Eine Zuarbeit? Prima. [Mi Aug 20 2008] [20:11:41] fand ich auch. [Mi Aug 20 2008] [20:12:04] Also was willst Du dann im Artikel beschreiben? Dass es den Assembler jetzt gibt und wie man ihn verwendet? [Mi Aug 20 2008] [20:12:17] Ja [Mi Aug 20 2008] [20:12:48] Ist doch in Ordnung. Wer dann wissen will, wie so ein Wunderteil funktioniert, kann ja in den Source-Code schauen. [Mi Aug 20 2008] [20:14:30] Betreten BirdReynolds hat den Kanal betreten (~mhx@e243118.upc-e.chello.nl). [Mi Aug 20 2008] [20:14:32] Fein. [Mi Aug 20 2008] [20:14:49] Hallo Marcel [Mi Aug 20 2008] [20:14:58] Hi Marcel [Mi Aug 20 2008] [20:16:39] Hallo, alle zusammen. [Mi Aug 20 2008] [20:16:55] Hallo! [Mi Aug 20 2008] [20:21:18] Bald ist EuroForth. Die Anmeldungsdeadline war zwar gestern, aber man kann sich bestimmt auch jetzt noch anmelden.... [Mi Aug 20 2008] [20:21:23] Also los! [Mi Aug 20 2008] [20:21:57] Ich habe mich diesmal so früh angemeldet, dass ich sogar den Frühbucherrabatt bekommen habe ;-) [Mi Aug 20 2008] [20:22:57] All zu viele sind es aber wohl nicht geworden. Anton hat in seiner letzten Mail 11 Teilnehmer gelistet, inklusive Dir, exklusive mir. Ich habe mich erst Montag angemeldet. [Mi Aug 20 2008] [20:24:18] Ich möchte in der kommenden VD auch etwas über ColorForth haben. Kennt Ihr jemanden, der einen Einführungsartikel schreiben möchte? [Mi Aug 20 2008] [20:27:36] Hm, ich habe nur sehr wenig mit ColorForth gemacht... [Mi Aug 20 2008] [20:28:24] Ich hab auch nicht viel mehr gemacht, als ein wenig damit zu spielen, um rauszufinden, wie das geht. [Mi Aug 20 2008] [20:29:20] Bernd Beuster, der früher mal Artikel für die VD geschrieben hat, und auf seiner Seite auch was über ColorForth hat, hat dankend abgelehnt. Er macht jetzt CommonLisp statt ColorForth.... [Mi Aug 20 2008] [20:29:30] Na, das qualifiziert euch doch schon als Experten ;=) [Mi Aug 20 2008] [20:30:42] :-) aber wir können ja nicht alle Artikel schreiben ... [Mi Aug 20 2008] [20:31:31] Im Zweifen übersetzen wir die zugehörigen Artikel aus der FIG-UK [Mi Aug 20 2008] [20:31:32] Mich stört am Colorforth, das ich das nicht auf meinem B/W Drucker ausdrucken kann. [Mi Aug 20 2008] [20:32:14] Welchen Zweck Farbe bei Quelltext haben soll, ist mir auch nicht so ganz ersichtlich. [Mi Aug 20 2008] [20:32:14] Du könntest ja unterstrichen, kursiv, fett und durchgestrichen (Kommentar : -)) nehmen. [Mi Aug 20 2008] [20:32:15] Na, das ist jetzt nun wirklich nicht das Problem: Fett, unterstrichen, kursiv, das lässt genügend Spielraum für die Darstellung [Mi Aug 20 2008] [20:32:34] ROTFL [Mi Aug 20 2008] [20:32:55] Im Editor ist Farbe sinnvoll, aber beim Compiler? [Mi Aug 20 2008] [20:33:10] Der Compiler weiß anhand der Farbe, was du mit dem Wort meinst [Mi Aug 20 2008] [20:33:11] Naja - das ist eben der Clou beim ColorForth. [Mi Aug 20 2008] [20:33:24] : test wird eben rot geschrieben. [Mi Aug 20 2008] [20:33:36] Ist es ein Label (eine Definition), ein interpretiertes oder compiliertes Wort, eine Zahl, etc. [Mi Aug 20 2008] [20:33:43] test ?? [Mi Aug 20 2008] [20:33:57] Können wir hier eigentlich auch 04Farbe? [Mi Aug 20 2008] [20:34:06] Ich sehe die Farbe. [Mi Aug 20 2008] [20:34:22] Farbe ist rot [Mi Aug 20 2008] [20:35:07] Wie sieht der Quelltext von Colorforth eigentlich aus? Ist der Versionierbar? [Mi Aug 20 2008] [20:35:25] Der Quelltext wird natürlich in Blöcken abgespeichert ;-) [Mi Aug 20 2008] [20:35:31] Ich sehe ' 04Farbe'. [Mi Aug 20 2008] [20:35:48] Also : sqr dup * ; wird dann eben 04sqr 09dup * ; 01geschrieben. [Mi Aug 20 2008] [20:35:56] Wenn du ein VCS hast, das mit Binärdateien umgehen kann (Subversion, bazaar), dann geht das. [Mi Aug 20 2008] [20:36:00] Und die Farbe steht dann in ANSI Steuercodes drin? [Mi Aug 20 2008] [20:36:21] Eher als ein Byte [Mi Aug 20 2008] [20:36:22] ok, wie Word also ;=( [Mi Aug 20 2008] [20:36:45] irgendein BLOB [Mi Aug 20 2008] [20:37:23] Nein, das ist alles viel spezieller. Die Buchstaben sind Huffman-codiert und der Editor macht zusätzlich Farb-Bits an die Token, die dann vom Compiler verwendet werden. [Mi Aug 20 2008] [20:38:02] Im Grunde ist der Editor so eine Art Precompiler. [Mi Aug 20 2008] [20:38:25] Die Colorforth Blöcke sind also nur sinnvoll innerhalb von Colorforth nutzbar? [Mi Aug 20 2008] [20:38:33] Der Editor könnte auch noch weitergehen, und sich die Symbole in einer eigenen Tabelle merken, und den Compiler noch mehr entlasten. [Mi Aug 20 2008] [20:38:44] Ja. [Mi Aug 20 2008] [20:38:51] Aber man kann sicher einen Emacs-Mode dafür schreiben ;-) [Mi Aug 20 2008] [20:39:04] Wem der Editor des Systems nicht gefällt (vi/emacs halt), der hat Pech gehabt und darf seinen eigenen neu schreiben [Mi Aug 20 2008] [20:39:18] Und der Sinn dies alles ist ... [Mi Aug 20 2008] [20:40:07] Laut Chuck, dass alles noch einfacher wird. [Mi Aug 20 2008] [20:40:40] Deswegen gibt es auch kein WHILE und REPEAT oder UNTIL [Mi Aug 20 2008] [20:41:03] Das ist dann wohl eine Geschmackssache. [Mi Aug 20 2008] [20:41:07] Das macht man mit Tail-Calls mit Sprung-Optimierung. [Mi Aug 20 2008] [20:41:27] Es ist schon deutlich anders als das uns bekannte Forth. [Mi Aug 20 2008] [20:41:32] - macht xor [Mi Aug 20 2008] [20:41:39] or macht xor [Mi Aug 20 2008] [20:41:41] Und T/N stehen für DUP und OVER [Mi Aug 20 2008] [20:41:43] - ist INVERT [Mi Aug 20 2008] [20:41:48] Kein SWAP [Mi Aug 20 2008] [20:43:05] kann man als 04swap 09over push push drop pop pop ; definieren. [Mi Aug 20 2008] [20:43:29] push ist übrigens >R [Mi Aug 20 2008] [20:43:35] und pop R> [Mi Aug 20 2008] [20:44:21] Der Kern hat auch kein + (wer braucht sowas) [Mi Aug 20 2008] [20:44:36] Gab es da nicht eine Katze in Alice in Wunderland ... [Mi Aug 20 2008] [20:44:45] Quatsch, hat kein - [Mi Aug 20 2008] [20:44:49] + hat es schon. [Mi Aug 20 2008] [20:44:57] : - INVERT 1- + ; [Mi Aug 20 2008] [20:45:11] Was machte denn die Katze? [Mi Aug 20 2008] [20:45:35] Ich kann mich nur an den Hasen erinnern. Und README kommt vom Trink-Mich auf der Flasche. [Mi Aug 20 2008] [20:46:29] War etwas mit Woerter die ihre Bedeutung aenderte wenn die Katze das besser fand [Mi Aug 20 2008] [20:46:29] Ach ja IF konsumiert kein Element vom Stack sondern wertet die Prozessor-Flags aus. [Mi Aug 20 2008] [20:46:57] Wo liegt denn eigentlich der fundamentale Fortschritt von Colorforth? Bis jetzt ist das alles nichts weltbewegendes, ausser dass man die gesamte Codebasis neu schreiben muss [Mi Aug 20 2008] [20:46:57] Hm, ich habe das so verstanden, dass ein normales IF das TOS auswertet, aber nicht verwirft. [Mi Aug 20 2008] [20:47:02] Ah. Ja - so ist das. Chuck macht das ja auch für sich und nicht zum Ideenaustausch mit anderen. [Mi Aug 20 2008] [20:47:22] Dann gibt's auch noch ein IF, das praktisch das Carry-Flag auswertet (das ist das oberste Bit im TOS) [Mi Aug 20 2008] [20:47:37] Der Stack ist dafür dann ein Bit breiter als der Speicher. [Mi Aug 20 2008] [20:47:59] Hab' ich in der Jul31-Version so nicht gesehen. Aber vielleicht habe ich das ja auch falsch verstanden. [Mi Aug 20 2008] [20:48:18] ColorForth ist wohl auch je nach Prozessor etwas anders aufgebaut ;-) [Mi Aug 20 2008] [20:48:27] Für x86: Flags auswerten, das ist sinnvoll. [Mi Aug 20 2008] [20:48:30] Ich will auch nicht ausschließen, dass es mehrere auch untereinander nicht kompatible Versionen gibt. [Mi Aug 20 2008] [20:48:36] Für c18/SeaForth: TOS angucken. [Mi Aug 20 2008] [20:48:43] Kann sein, dass die Intel-Version anders ist. [Mi Aug 20 2008] [20:49:45] Mein Primzahl-Programm ging jedenfalls erst, als ich die Flag-Annahme gemacht habe. [Mi Aug 20 2008] [20:50:16] Insbesondere blöde, wenn man TOS-testen will. Dann muss man DUP AND DROP machen, um aus TOS die Flags zu setzen.... [Mi Aug 20 2008] [20:50:49] Naja - hat was von Kreuzworträtsel oder Sudoku. [Mi Aug 20 2008] [20:52:27] Ich verstehe das historisch: Das ist Chucks Rückkehr von OK zum Quelltext. [Mi Aug 20 2008] [20:52:42] Da ist er halt auf halbem Weg stehengeblieben. [Mi Aug 20 2008] [20:53:40] Es zeichnet ihn aus, dass er "The map is not the territory" als Fehler einsah und das auch zugibt. Abstraktion hat eben was. [Mi Aug 20 2008] [20:56:10] ColorForth ist trotzdem nur ein halbes Forth: Es gibt keine parsing words. [Mi Aug 20 2008] [20:56:19] Nur Farben können parsen. [Mi Aug 20 2008] [20:56:43] Klingt wie die Quantenchromodynamik. [Mi Aug 20 2008] [20:57:12] Im Sinne des traditionellen Compilerbau geht's eher um Tokenisierung. [Mi Aug 20 2008] [20:57:33] Das ist heute noch ein Thema? [Mi Aug 20 2008] [20:57:37] Mich hat das ganze an meine guten alten ZX-81 erinnert [Mi Aug 20 2008] [20:57:53] Bei dem hat man auch Tokens eingegeben. War cool. [Mi Aug 20 2008] [20:57:54] Naja: traditioneller Compiler besteht aus Lexer und Parser. [Mi Aug 20 2008] [20:58:06] Der Lexer tokenisiert, der Parser verarbeitet nur Token. [Mi Aug 20 2008] [20:58:25] Insofern ist der Name von PARSE völlig falsch gewählt ;-) [Mi Aug 20 2008] [20:58:26] Hier macht der Editor die Token [Mi Aug 20 2008] [20:58:45] Ja, der Editor ist praktisch der Lexer von ColorForth. [Mi Aug 20 2008] [20:58:51] Und der Compiler kann direkt auf den Tokens ausetzen. [Mi Aug 20 2008] [20:58:53] Schon klar, aber das Thema ist IMHO nicht so spannend, das man dafür eine eigene Sprache baut. Außer zum Spaß natürlich [Mi Aug 20 2008] [20:59:32] Es ist ein minimales Programmiersystem in Synthese mit Chucks Chips. [Mi Aug 20 2008] [20:59:49] Mir ist das eine Spur *zu* einfach. [Mi Aug 20 2008] [21:02:34] Ich find's für den Zweck eigentlich eine Spur zu komplex. [Mi Aug 20 2008] [21:02:44] Das läuft ja nicht auf den Chips selbst, sondern auf einem Host. [Mi Aug 20 2008] [21:02:56] :-) ja stimmt. [Mi Aug 20 2008] [21:03:10] Und auf dem Host kann man auch ein richtiges Forth laufen lassen. [Mi Aug 20 2008] [21:03:25] In dem die Entwicklungsumgebung für den Chip dann als Forth-Programm abläuft. [Mi Aug 20 2008] [21:03:42] Im b16-Assembler lehne ich mich zwar etwas an Color-Forth an [Mi Aug 20 2008] [21:03:46] Aber ohne Farben. [Mi Aug 20 2008] [21:03:56] : erzeugt ein Label [Mi Aug 20 2008] [21:04:06] Huffman codierung macht es doch nicht einfacher? (AFAIR das Hello-World Program ist noch immer nicht fertig :-) [Mi Aug 20 2008] [21:04:21] ColorForth selbst kann keine Strings. [Mi Aug 20 2008] [21:04:25] Nur der Editor kann die. [Mi Aug 20 2008] [21:04:45] Und dessen Wörter lassen sich irgendwie nicht benutzen. [Mi Aug 20 2008] [21:08:49] (Es war Humpty Dumpty: [Mi Aug 20 2008] [21:09:18] ok - Das Wort und der Name des Wortes? [Mi Aug 20 2008] [21:10:01] Was ColorForth auch schwierig macht, ist die eigenwillige Tastaturbelegung [Mi Aug 20 2008] [21:10:03] (Es war Humpty Dumpty: "It's a stupid name emough!" Humpty Dumpty interrupted impatiently. "What does it mean?") [Mi Aug 20 2008] [21:11:03] Die aktuelle Version bei Jeff Fox kann auch QWERTY. [Mi Aug 20 2008] [21:11:07] Was bei der Huffmann-Codierung witzig ist: Chuck selbst verwendet sehr viele sehr kurze Wörter (1, 2, 3 Buchstaben) [Mi Aug 20 2008] [21:11:40] Ja, ColorForth wird langsam Bloatware - jetzt gibt's schon mehrere Tastaturlayouts ;-) [Mi Aug 20 2008] [21:12:35] Ach ja - der Zeichensatz (ColorFortj hat einen eigenen Zeichensatz) hat übrigens kein < = oder >. Im Kernel gibt es ein Wort LESS, dass die Flags gemäß < setzt.... [Mi Aug 20 2008] [21:13:15] Ich glaube, die aktuelle Version ist auch nicht von Chuck. Die Doku ist viel zu geschwätzig. [Mi Aug 20 2008] [21:15:36] Die Existenz einer Doku an sich sollte schon stutzig machen ;-) [Mi Aug 20 2008] [21:15:53] Ja - hat es auch... [Mi Aug 20 2008] [21:16:18] Richtige Programmierer stanzen die Löcher in den Karten mit den Fingernägeln. [Mi Aug 20 2008] [21:16:35] cat > a.out [Mi Aug 20 2008] [21:16:56] Ach was, Karten, richtige Programmierer geben das OS auswenig über Dip-Switches ein. [Mi Aug 20 2008] [21:17:00] Die Makros in Colorforth werden ja auch mit Opcode , erzeugt. *Kein* Assembler. [Mi Aug 20 2008] [21:18:05] Ok, das ist eine Aufwandsabwägung: Bei 30 Macros oder so lohnt es sich nicht, einen Assembler zu schreiben, der dann ja auch wieder die Opcodes enthalten würde. [Mi Aug 20 2008] [21:19:16] Ja - wenn man minimal bleiben will. Aber auf dem Host wäre eben genügend Platz. [Mi Aug 20 2008] [21:21:03] Zumal die Opcodes für einen Forth-Prozessor ja recht einfach tabellarisch (über create does> in der Schleife) erzeugbar sind. [Mi Aug 20 2008] [21:21:07] $08 8 insts xor com and or + +c *+ /- [Mi Aug 20 2008] [21:21:07] $18 8 insts nip drop over dup >r >a r> a [Mi Aug 20 2008] [21:21:16] So sieht im B16-Assembler aus. [Mi Aug 20 2008] [21:22:03] Aber Create Does> hat er ja nicht mehr. [Mi Aug 20 2008] [21:22:29] Geht ja auch nicht, weil CREATE ja eine Farbe wäre, kein Wort. [Mi Aug 20 2008] [21:23:40] Also müßte man neue Farben definieren können. [Mi Aug 20 2008] [21:24:06] Ja, das geht aber auch nicht. [Mi Aug 20 2008] [21:24:39] Zumindest nicht so direkt (das ist ein Eingriff in Editor und Compiler, die für das ColorForth-Programm anscheinend "off limits" sind) [Mi Aug 20 2008] [21:25:41] Man muss dann Color.com neu machen und das ist wohl in Assembler geschrieben. [Mi Aug 20 2008] [21:25:48] MASM [Mi Aug 20 2008] [21:26:06] Das gilt ja wohl irgendwie nicht. Ein ColorForth sollte ja wohl in ColorForth geschrieben sein. [Mi Aug 20 2008] [21:26:57] Ganz Deiner Meinung. Mir hat cmForth deutlich besser gefallen. [Mi Aug 20 2008] [21:33:42] Immerhin muss man sagen: OKAD ist tatsächlich in ColorForth geschrieben. [Mi Aug 20 2008] [21:34:18] Vielleicht ist das ColorForth von Chuck Moore auch in ColorForth geschrieben - nur das von Jeff Fox nicht. [Mi Aug 20 2008] [21:34:48] Das in MASM ist praktisch das fig-ColorForth ;-) [Mi Aug 20 2008] [21:35:25] Beenden BirdReynolds hat den Server verlassen (Ping timeout). [Mi Aug 20 2008] [21:36:06] Schwer zu sagen. Es gibt die Jul31-Variante. Die hat ein COLOR.ASM [Mi Aug 20 2008] [21:36:15] das so beginnt: [Mi Aug 20 2008] [21:36:18] ;colorForth, 2001 Jul 22, Chuck Moore, Public Domain [Mi Aug 20 2008] [21:36:18] .MODEL tiny [Mi Aug 20 2008] [21:36:18] .486p [Mi Aug 20 2008] [21:36:19] only SEGMENT USE32 [Mi Aug 20 2008] [21:36:19] ASSUME DS:only [Mi Aug 20 2008] [21:36:19] next MACRO adr [Mi Aug 20 2008] [21:36:21] dec ECX [Mi Aug 20 2008] [21:36:23] jnz adr [Mi Aug 20 2008] [21:36:24] ENDM [Mi Aug 20 2008] [21:36:42] Da hat aber vielleicht auch jemand in Chucks namen programmiert :-) [Mi Aug 20 2008] [21:37:19] Na, da bin ich ja mal gespannt. Aber einstweilen klinke ich mich mal aus. Bis neulich dann [Mi Aug 20 2008] [21:37:25] Beenden MatthiasT_ hat den Server verlassen (EOF From client). [Mi Aug 20 2008] [21:37:42] Genau - ist ja dann auch schon wieder spät. [Mi Aug 20 2008] [21:37:46] Bis dann. [Mi Aug 20 2008] [21:37:50] Ciao