*** Protokolldatei gestartet *** Datum: Do. Apr 4 19:56:53 2013 [Donnerstag, 4. April 2013] [19:56:53] Betreten Sie haben den Kanal #forth-ev betreten (-bernd@p5DCD65E4.dip0.t-ipconnect.de). [Donnerstag, 4. April 2013] [19:56:58] Modus Kanalmodi: [Donnerstag, 4. April 2013] [19:57:06] Hallo Matthias. [Donnerstag, 4. April 2013] [19:57:13] Hi Bernd [Donnerstag, 4. April 2013] [19:59:12] Mal sehen, ob heute noch wer kommt. [Donnerstag, 4. April 2013] [19:59:34] Sieht wohl eher noch nach Osterferien aus.... [Donnerstag, 4. April 2013] [20:07:44] Betreten volksForth hat den Kanal betreten (~user@212.255.235.42). [Donnerstag, 4. April 2013] [20:07:49] Hallo [Donnerstag, 4. April 2013] [20:07:53] Hallo Carsten! [Donnerstag, 4. April 2013] [20:09:32] Ich guck noch die Geldshow, weil diese Tagesschau anscheinend nur über Geld geht ;-) [Donnerstag, 4. April 2013] [20:09:49] Hallo Carsten [Donnerstag, 4. April 2013] [20:10:00] Hallo Bernd, Hallo Matthias [Donnerstag, 4. April 2013] [20:10:14] @Bernd: war Deine E-Mail das Rätsel, oder die Lösung? [Donnerstag, 4. April 2013] [20:12:29] Ich habe heute am Apple-1 Forth gemacht, es gab einen Fehlerreport für VolksForth [Donnerstag, 4. April 2013] [20:12:43] der Kompiler funktionierte nicht mehr richtig [Donnerstag, 4. April 2013] [20:13:04] Ein Zeitreisender, der sich verlaufen hat?? [Donnerstag, 4. April 2013] [20:13:59] Jemand der die RS232 Schnittstelle des Replica-1 von 2400 auf 19200 aufgebohrt hat (mit Handshaking), und warscheinlich mal ein groesseres Programm laden wollte, und dann auf VolksForth gestossen ist [Donnerstag, 4. April 2013] [20:14:46] Aber Benutzerrückmeldungen sind immer gut für die Motivation, das reicht dann immer für eine Woche intensive Arbeit :) [Donnerstag, 4. April 2013] [20:14:59] Wohl wahr [Donnerstag, 4. April 2013] [20:15:43] Beim amforth hat sich in den letzten 2 Monaten wieder soviel angesammelt, dass eine neue Version eigentilch schon überfällig ist [Donnerstag, 4. April 2013] [20:15:57] Das Changelog ist einfach schon zu lang. [Donnerstag, 4. April 2013] [20:16:47] Die letzte Änderung will ich aber noch etwas reifen lassen. Die greift einfach zu tief unten ein. Na, mal sehen [Donnerstag, 4. April 2013] [20:17:00] Ich würde mich darauf freuen. In Chemnitz gab es auch wieder einiges Interesse an amForth, und Wiederholungstäter die seit unserem Workshop dabei geblieben sind [Donnerstag, 4. April 2013] [20:17:35] @Carsten: Die Lösung zum Drachen in der nächsten VD ist mir bekannt, ich wollte nur sagen, dass man sie auch ergoogeln kann. [Donnerstag, 4. April 2013] [20:17:51] Vielleicht deklariere ich die ja auch als Experimentell. Dann sollten alle gewarnt sein. [Donnerstag, 4. April 2013] [20:17:52] ah, ok. [Donnerstag, 4. April 2013] [20:18:23] was hat sich denn so tiefgreifend geändert? [Donnerstag, 4. April 2013] [20:18:59] Ich gar nicht mal. Ein User hatte die Idee, neue Worte automatisch in Wortlisten zu packen. Ohne CURRENT laufend umzubiegen [Donnerstag, 4. April 2013] [20:19:47] foo::bar würde dann bar in der Wordliste foo erzeugen. usw. [Donnerstag, 4. April 2013] [20:20:05] Wobei das ganze über einen System-Hook läuft. [Donnerstag, 4. April 2013] [20:20:19] über die Recognizer? [Donnerstag, 4. April 2013] [20:20:39] Und um den zu erzeugen, musste ich halt die ganzen GET-CURRENT aufrufe erst mal konsolidieren. [Donnerstag, 4. April 2013] [20:20:54] Nein, Recognizer sind da nicht im Spiel. Der Hook zieht zur Compiletime [Donnerstag, 4. April 2013] [20:21:04] innerhalb von CREATE und Co [Donnerstag, 4. April 2013] [20:21:14] ok, klar [Donnerstag, 4. April 2013] [20:21:45] Recognizer kämen hinterher wieder mit ins Spiel. Aber das Zusammenspiel an dieser Stelle ist noch unklar. [Donnerstag, 4. April 2013] [20:22:43] Man könnte foo::bar im Recognizer so abarbeiten, dass bar in foo gesucht wird. [Donnerstag, 4. April 2013] [20:23:02] jupp. [Donnerstag, 4. April 2013] [20:24:01] Die Idee mit den Scopes ist, dass : foo::bar .... ; das machen *kann*. Standard ist natürlich ein Wordlisteintrag namens foo::bar in CURRENT [Donnerstag, 4. April 2013] [20:24:18] und kein Eintrag bar in der Wordlist foo. [Donnerstag, 4. April 2013] [20:25:07] Doku will dazu erst noch geschrieben werden. [Donnerstag, 4. April 2013] [20:28:07] Beenden volksForth hat den Server verlassen (EOF From client). [Donnerstag, 4. April 2013] [20:28:29] Betreten volksForth hat den Kanal betreten (~user@212.255.235.42). [Donnerstag, 4. April 2013] [20:28:55] Ich streite gerade mit Anton über die Bedeutung von COMPILE, [Donnerstag, 4. April 2013] [20:29:18] Das ist eine Endlos-Diskusson, Anton hat sich richtig an der Wischi-Waschi-Definition im Standard festgebissen. [Donnerstag, 4. April 2013] [20:29:36] Und interpretiert die natürlich so, dass es nur ein mögliches Ergebnis gibt. [Donnerstag, 4. April 2013] [20:30:15] Du meinst den Satz "Append the execution semantics of the definition represented by xt to the execution semantics of the current definition." ? [Donnerstag, 4. April 2013] [20:30:43] Ja. [Donnerstag, 4. April 2013] [20:31:10] In einem System mit smartem COMPILE, wird da einfach das compilation-xt ausgeführt. [Donnerstag, 4. April 2013] [20:31:24] Das darf dann machen, was es will, was u.U. etwas anderes ist als EXECUTE hätte gemacht. [Donnerstag, 4. April 2013] [20:31:34] Weil man das ja frei definieren kann, was das ist. [Donnerstag, 4. April 2013] [20:32:39] Anton stellt sich auf den Standpunkt, dass ' xt compile, äquivalent zu ' xt postpone literal postpone execute sein muss. [Donnerstag, 4. April 2013] [20:34:02] da muss ich erst mal grübeln. [Donnerstag, 4. April 2013] [20:34:25] Ich würde sagen, solange die Seiteneffekte und der Stack gleich bleiben kann COMPILE, machen, was es für am Besten hält [Donnerstag, 4. April 2013] [20:35:07] So rein wortgetreu würd ich sagen, dass Anton nicht unrecht hat. Sein Codefragment ist 1:1 das Englische des Satzes [Donnerstag, 4. April 2013] [20:35:14] Die Frage dabei ist, was man alles zu den Seiteneffekten zählt. Ist Ausführungsgeschwindigkeit auch ein Seiteneffekt? [Donnerstag, 4. April 2013] [20:35:22] Evt muss ja execute smart werden. [Donnerstag, 4. April 2013] [20:36:24] Wortgetreu hat Anton recht, aber das ignoriert komplett die Ausführungen von Mitch Bradley, wozu COMPILE, gut ist. [Donnerstag, 4. April 2013] [20:36:42] Execute ist ausreichend smart, es führt einfach das Wort selbst aus. [Donnerstag, 4. April 2013] [20:37:51] Letztlich geht es um Grenzfälle mit Wörtern wie S" und TO. [Donnerstag, 4. April 2013] [20:37:58] Alles andere ändert sich ohnehin nicht. [Donnerstag, 4. April 2013] [20:38:47] Nur mit ' S" COMPILE, bekam man in Gforth bisher die Interpretations-Semantic von S" im erzeugten Wort (das parste also nach "), und jetzt bekommt man die Compilations-Semantik, es parst also beim Compilieren schon, und legt den String ab. [Donnerstag, 4. April 2013] [20:38:58] : test [ ' s" compile test" ] type ; [Donnerstag, 4. April 2013] [20:39:05] erzeugt ein Program, das "test" ausgibt. [Donnerstag, 4. April 2013] [20:39:19] Vorher war : test [ ' s" compile, ] ; [Donnerstag, 4. April 2013] [20:39:37] ein Wort das mit test test" einfach den String "test" auf den Stack legte. [Donnerstag, 4. April 2013] [20:40:50] Liegt dann das Problem nicht eher bei TO und S" ? So ein klein wenig errinnert mich das die Sorgen, die daher kommen, dass beim amforth die Strings mal im Flash sind und mal im RAM. [Donnerstag, 4. April 2013] [20:41:23] Interpreter s" landen im RAM, in Colondefinitionen werden Flashstrings. Das ist zur Laufzeit nicht immer trivial. [Donnerstag, 4. April 2013] [20:42:26] Das kann man so sagen. [Donnerstag, 4. April 2013] [20:45:18] Das Problem sind nur die combined words. [Donnerstag, 4. April 2013] [20:45:33] Du hast erwähnt, das Mitch irgendwas bezweckt hat. Ich meine das mal gelesen zu haben, habs aber vergessen... [Donnerstag, 4. April 2013] [20:47:16] Das war mal in einer VD ;-) [Donnerstag, 4. April 2013] [20:47:32] Mitch wollte einen User-written Interpreter, der im Compilationsmode folgendes macht: [Donnerstag, 4. April 2013] [20:48:00] BL WORD FIND ( error handling weggelassen ) 0> IF EXECUTE ELSE COMPILE, THEN [Donnerstag, 4. April 2013] [20:48:32] Also: Wenn ein Wort immediate ist, dann gibt EXECUTE die compilatin semantics, wenn es nicht ist, COMPILE, [Donnerstag, 4. April 2013] [20:50:09] beim compile oben steht aber execution semantic, nicht compilation semantic [Donnerstag, 4. April 2013] [20:50:44] Ja. [Donnerstag, 4. April 2013] [20:50:49] das klingt jetzt wie "entweder führe die compilation semantic aus" oder "hänge die execution semantic an" [Donnerstag, 4. April 2013] [20:51:35] da müsste vor das execute erst noch ein execute->compile oder so davor. [Donnerstag, 4. April 2013] [20:51:41] Die Definition von Compilations-Semantics ist aber, dass das das ist, was der Text-Interpreter im Compilations-State macht. [Donnerstag, 4. April 2013] [20:52:11] Wenn der Text-Interpreter also im Compilations-State genau das oben macht, dann ist COMPILE, die Compilations-Semantics für non-immediate words. [Donnerstag, 4. April 2013] [20:52:50] In traditionellen Systemen gibt's da keinen Unterschied. [Donnerstag, 4. April 2013] [20:53:02] compile, ist aber gar nicht für die compilation semantic zuständig. Das war doch IIRC postpone [Donnerstag, 4. April 2013] [20:53:25] POSTPONE muss dazu aber parsen. [Donnerstag, 4. April 2013] [20:54:01] Das execute in deinem Beispiel führt die compilation semantic aus. Soweit so einfach [Donnerstag, 4. April 2013] [20:54:06] ja, sorry. [Donnerstag, 4. April 2013] [20:54:30] das Compile, speichert die execution semantic. Auch wenn der Interpreter im Compilation state ist. [Donnerstag, 4. April 2013] [20:54:52] Daher ist es unmöglich, die compilation semantic zu compilieren [Donnerstag, 4. April 2013] [20:55:06] Was dann keinen Sinn ergibt. [Donnerstag, 4. April 2013] [20:55:07] Oder hab ich was übersehen beim Nitpicken? [Donnerstag, 4. April 2013] [20:55:34] Hehe [Donnerstag, 4. April 2013] [20:56:18] Ich gebe gerne zu, dass ich den Text noch nie so auf Subbuchstabengenauigkeit gelesen habe ;) [Donnerstag, 4. April 2013] [20:57:41] Aber abgesehen vom parsen: postpone speichert aber die compiliation semantic, oder? [Donnerstag, 4. April 2013] [20:58:07] Ja: "Append the compilation semantics of name to the current definition" [Donnerstag, 4. April 2013] [20:58:29] Funny. [Donnerstag, 4. April 2013] [20:59:02] Man kann aus einem XT die compilation semantic ausführen, aber nicht speichern. Dazu muss man immer das Wort kennen. [Donnerstag, 4. April 2013] [21:00:09] So ist es. [Donnerstag, 4. April 2013] [21:00:27] Und jetzt macht Anton einen Aufstand, weil man es mit dem smart COMPILE, plötzlich tun kann. [Donnerstag, 4. April 2013] [21:00:54] Eigentlich konnte man es immer schon, denn selbst Anton hat im Glossary-Entry von COMPILE, was von "compiles the word represented by the xt" geschrieben. [Donnerstag, 4. April 2013] [21:01:39] Wie weiss denn das smarte compile, was es tun soll? Ist es etwa STATE-Smart? [Donnerstag, 4. April 2013] [21:01:51] Das ist einfach ein Xt, der am Header dran hängt. [Donnerstag, 4. April 2013] [21:02:04] Das smarte COMPILE, führt den aus. Der weiß, was zu tun ist. [Donnerstag, 4. April 2013] [21:02:40] D.h. der Wortdefinierer legt das explizit fest (Wie?) [Donnerstag, 4. April 2013] [21:04:14] Buchstabengetreu ist das wirklich nicht. Aber pragmatisch. [Donnerstag, 4. April 2013] [21:05:02] Mit set-compiler oder comp: [Donnerstag, 4. April 2013] [21:05:04] Beispiel [Donnerstag, 4. April 2013] [21:05:19] : s" '"' parse ; comp: drop '"' parse postpone Sliteral ; [Donnerstag, 4. April 2013] [21:05:39] Anderes Beispile, mit set-compiler: [Donnerstag, 4. April 2013] [21:06:00] : Constant Create , [: >body @ postpone literal ;] set-compiler DOES> @ ; [Donnerstag, 4. April 2013] [21:06:46] Das zieht ja alle Forth-Register.. [Donnerstag, 4. April 2013] [21:07:28] Das create beispiel kann ich verstehen. [Donnerstag, 4. April 2013] [21:08:35] Und das smarte compile, reagiert auf das set-compiler Fragment und nimmt das dann. [Donnerstag, 4. April 2013] [21:09:17] Genau. [Donnerstag, 4. April 2013] [21:10:00] Noch schöner ist das Create-Beispiel wenn man [: @ ;] set-does macht. [Donnerstag, 4. April 2013] [21:10:04] Das geht nämlich auch. [Donnerstag, 4. April 2013] [21:10:33] set-does> natürlich. [Donnerstag, 4. April 2013] [21:10:45] ja klar. Ich wollt grade fragen ;) [Donnerstag, 4. April 2013] [21:11:48] Dumme Frage: Warum habt ihr compile, aufgebohrt anstelle eines neuen Wortes? [Donnerstag, 4. April 2013] [21:12:01] Neue Idee, neues Wort. [Donnerstag, 4. April 2013] [21:12:57] Weil das COMPILE, ja bereits heftig benutzt wird. [Donnerstag, 4. April 2013] [21:13:11] Wenn man da ein neues Wort benutzt, funktioniert der Mitch-Bradley-Compiler nicht mehr, und der ist real. [Donnerstag, 4. April 2013] [21:14:01] naja. der ist ja auch für das "alte" compile, gemacht. [Donnerstag, 4. April 2013] [21:16:08] Ich glaub, wir haben Carsten vertrieben ;) [Donnerstag, 4. April 2013] [21:16:27] ich lese gebannt mit, und habe Forth am Atari gemacht :) [Donnerstag, 4. April 2013] [21:16:56] Nein, der ist für das neue COMPILE, gemacht, das alte COMPILE, kann was ganz anderes. [Donnerstag, 4. April 2013] [21:17:06] Jedenfalls nach den Buchstaben des Standards. [Donnerstag, 4. April 2013] [21:17:06] Forth-Quellen der letzten Jahre auf dem PC kompiert, damit ich die morgen im Wiki einstellen kann [Donnerstag, 4. April 2013] [21:17:42] Keine Angst, ich finde es Interessant, auch wenn ich nicht wirklich mitreden kann [Donnerstag, 4. April 2013] [21:17:58] Ja, das ist wirklich tiefes Implementierer-Forth ;-) [Donnerstag, 4. April 2013] [21:19:12] Eine eigene Compile-time Aktion definieren zu können ist aber schon ziemlich dicht an state-smart dran. Viel mehr als Planck-Länge geb ich der Distanz nicht. ;) [Donnerstag, 4. April 2013] [21:19:28] Ja. [Donnerstag, 4. April 2013] [21:19:39] Man benutzt das dann auch so, hat aber viel weniger Probleme damit. [Donnerstag, 4. April 2013] [21:19:54] Weil man mit EXECUTE oder COMPILE, entscheidet, was man jetzt haben will. [Donnerstag, 4. April 2013] [21:20:11] Bei state-smart entscheidet man durch Setzen von STATE. [Donnerstag, 4. April 2013] [21:20:24] Das heißt über einen Seiten-Effekt. Und das ist doof. [Donnerstag, 4. April 2013] [21:20:40] ACK. [Donnerstag, 4. April 2013] [21:21:17] Wenn man jetzt noch ein POSTPONE mit XT machen könnte, wäre das Bild rund [Donnerstag, 4. April 2013] [21:21:39] Kann man. [Donnerstag, 4. April 2013] [21:22:31] Heißt POST, [Donnerstag, 4. April 2013] [21:22:57] Diese gforth'ler frag einen und er hat ein passendes Wort parat ;) [Donnerstag, 4. April 2013] [21:24:17] Das ist eh nötig, weil es einen Postponer gibt, der einfach der Reihe nach mit Recognizern den Text parst, und mit POST, alles ablegt. [Donnerstag, 4. April 2013] [21:24:31] Man sollte euch mal ein Jahr in Klausur sperren und erst raus lassen, wenn ihr den quellcode auf jonesforth niveau kommentiert habt ;) [Donnerstag, 4. April 2013] [21:25:03] Oder auch TeX literate programming. [Donnerstag, 4. April 2013] [21:25:33] Is recht ;-) [Donnerstag, 4. April 2013] [21:26:00] Carsten will ja auf der Tagung erklären, warum JonesForth so populär ist. [Donnerstag, 4. April 2013] [21:26:10] Liegt es an der Doku? [Donnerstag, 4. April 2013] [21:27:22] Ich lese viel in den Quellen (vor allem in kernel/*) aber bis ich die ganzen Verschachtelungen und bedingten Compilierungen auseinandergedröselt habe, habe ich auch selbst was ausgedacht. [Donnerstag, 4. April 2013] [21:27:45] Ist meist schlechter und weniger flexibel, tut aber erst mal [Donnerstag, 4. April 2013] [21:27:52] Ich habe nur Theorien ... [Donnerstag, 4. April 2013] [21:28:09] Irgendwann weite ich die Grenzen und lande beim gforth-Code. Das dauert aber meisst sehr lange [Donnerstag, 4. April 2013] [21:29:20] Ich habe bestimmt schon so manches Rad neu erfunden, was ihr schon lange ad acta gelegt habt. [Donnerstag, 4. April 2013] [21:30:01] Ja, das massive Rad aus Holz verwenden wir nicht. Wir bevorzugen das Rad mit Gummireifen, Alufelgen und Stahlspeichen oder so. Und dichtem Kugellager. [Donnerstag, 4. April 2013] [21:30:22] Der Vergleich ist nicht unangemessen.... [Donnerstag, 4. April 2013] [21:30:31] Ja, so ein Rad ist nicht ganz einfach ;-) [Donnerstag, 4. April 2013] [21:30:38] Das kann man gerne öfter mal neu erfinden. [Donnerstag, 4. April 2013] [21:30:53] Und es wird ziemlich kompliziert, wenn man eine Menge Performance herausholen will. [Donnerstag, 4. April 2013] [21:31:25] Ja, so ein Niederquerschnittpneu mit Alufelgen..... [Donnerstag, 4. April 2013] [21:31:41] Im Stau ist der aber auch nicht schneller als ein Traktor ;) [Donnerstag, 4. April 2013] [21:33:38] Mal was anderes: http://prng.net/blink-faq.html [Donnerstag, 4. April 2013] [21:36:06] Ja, hab' ich schon gelesen. [Donnerstag, 4. April 2013] [21:36:30] Ich versteh' ohnehin nicht, warum eine Web-Engine zig Millionen Zeilen Code braucht. [Donnerstag, 4. April 2013] [21:36:48] Da sind bestimmt lauter DatabaseAbstractionFactoryProxies drin. [Donnerstag, 4. April 2013] [21:37:23] Das Ding setzt Text auf einem Niveau weit unter LaTeX. Und TeX ist ein recht überschaubares Programm. [Donnerstag, 4. April 2013] [21:37:29] Ohne die gehts doch auch gar nicht [Donnerstag, 4. April 2013] [21:38:31] Wenn TeX deutlich mehr Factories und Proxies hätte, wäre es vermutlich ein geeigneter Ausgangspunkt gewesen. [Donnerstag, 4. April 2013] [21:38:40] Hehe. [Donnerstag, 4. April 2013] [21:38:48] Adapter und Interfaces fehlen ja auch [Donnerstag, 4. April 2013] [21:39:00] Genau, ein DatabaseIngerfaceAdapterFactoryProxy. [Donnerstag, 4. April 2013] [21:39:04] Interface [Donnerstag, 4. April 2013] [21:39:09] Hab ich noch was vergessen? [Donnerstag, 4. April 2013] [21:39:15] Ist UML noch aktuell? [Donnerstag, 4. April 2013] [21:39:21] RPC sollte das Ding auch noch machen. [Donnerstag, 4. April 2013] [21:39:39] UML ist, um überhaupt jemandem begreiflich machen zu können, was das sein soll. [Donnerstag, 4. April 2013] [21:39:47] Brendan Eich hat heute einen Blog-Eintrag zum Thema 15 Jahre Mozilla geschrieben und dort auch eingestanden, das Mozilla/Firefox zu viel "Layer" hat [Donnerstag, 4. April 2013] [21:40:11] daher werkelt Mozilla mit Samsung ja auch an einer neuen Engine [Donnerstag, 4. April 2013] [21:40:24] Genau, die alten Engines wandern auf den Müll. [Donnerstag, 4. April 2013] [21:40:34] Mir schwebt bei net2o allerdings ein anderer Ansatz vor. [Donnerstag, 4. April 2013] [21:40:53] In jedem Textsatzsystem wartet eine turing-vollständige Programmiersprache auf ihre Befreihung. [Donnerstag, 4. April 2013] [21:40:55] Der Hype Of The Day: Wir machen unsere eigene Web-Engine. Dismal mit zwei Zylindern und 4 Ventilen [Donnerstag, 4. April 2013] [21:41:03] Haha [Donnerstag, 4. April 2013] [21:41:10] Ich muss mich jetzt leider ausklinken [Donnerstag, 4. April 2013] [21:41:17] Ok, Ciao! [Donnerstag, 4. April 2013] [21:41:18] Ich auch [Donnerstag, 4. April 2013] [21:41:24] \me macht das Licht aus [Donnerstag, 4. April 2013] [21:41:25] War nett geplaudert [Donnerstag, 4. April 2013] [21:41:29] Dann gute Nacht! [Donnerstag, 4. April 2013] [21:41:30] Ciao [Donnerstag, 4. April 2013] [21:41:31] Ciao [Donnerstag, 4. April 2013] [21:41:36] Beenden MatthiasT hat den Server verlassen (EOF From client). [Donnerstag, 4. April 2013] [21:41:36] * BerndPaysan macht das Licht aus [Donnerstag, 4. April 2013] [21:42:40] Verlassen volksForth hat den Kanal verlassen (ERC Version 5.3 (IRC client for Emacs)).