*** Logfile started *** on Mi Mär 19 19:58:49 2008 [Mi Mär 19 2008] [19:58:49] Join You have joined the channel #forth-ev (~bernd@dslb-088-064-089-100.pools.arcor-ip.net). [Mi Mär 19 2008] [19:58:49] Topic The channel topic is "Willkommen, wir diskutieren über Forth.". [Mi Mär 19 2008] [19:58:49] Topic The topic was set by uho!~uho@f054025251.adsl.alicedsl.de on 12.03.2008 20:06:04. [Mi Mär 19 2008] [19:59:05] Hallo [Mi Mär 19 2008] [19:59:11] hi [Mi Mär 19 2008] [19:59:59] Away You are now marked as being away. [Mi Mär 19 2008] [20:06:03] Join uho has joined this channel (~uho@i577A44AE.versanet.de). [Mi Mär 19 2008] [20:06:16] hi [Mi Mär 19 2008] [20:06:31] hi [Mi Mär 19 2008] [20:07:34] hi, war übrigens in polyForth das Wort, das die Extensions geladen hat.... [Mi Mär 19 2008] [20:08:15] bei passender BASE geht's auch als Zahl durch ;=) [Mi Mär 19 2008] [20:08:56] 664 z.B. [Mi Mär 19 2008] [20:09:25] > 26 base ! [Mi Mär 19 2008] [20:09:29] ok [Mi Mär 19 2008] [20:09:33] > hi [Mi Mär 19 2008] [20:09:37] ok [Mi Mär 19 2008] [20:09:37] > decimal [Mi Mär 19 2008] [20:09:37] ok [Mi Mär 19 2008] [20:09:37] > . [Mi Mär 19 2008] [20:09:37] 664 ok [Mi Mär 19 2008] [20:09:38] > [Mi Mär 19 2008] [20:10:06] Ja - ich finde es aber schöner, wenn mein Forth bier ausgibt. [Mi Mär 19 2008] [20:11:02] 537075 [Mi Mär 19 2008] [20:11:21] 36 base ! . [Mi Mär 19 2008] [20:11:51] so grosse Zahlen kann mein Forth nicht [Mi Mär 19 2008] [20:12:49] 537075. 36 base ! D. :-) [Mi Mär 19 2008] [20:14:01] buuuh! [Mi Mär 19 2008] [20:14:25] Buuuuhhhmerang :-)) [Mi Mär 19 2008] [20:15:08] Ist aber auch vermessen, auf einer 8bit CPU mit 32bit Zahlen zu operieren. Früher nannte man sowas größenwahnsinnig ;=) [Mi Mär 19 2008] [20:15:57] Dafür besteht mein Forth immer mehr Tests vom Hayes-Core :=)) [Mi Mär 19 2008] [20:16:08] Ist immer eine Frage der Algorithmen, die man realisieren will. [Mi Mär 19 2008] [20:16:09] Away You are no longer marked as being away. [Mi Mär 19 2008] [20:16:37] Hallo nochmal [Mi Mär 19 2008] [20:16:39] Wo sind denn da im Moment die Knackpunkte? [Mi Mär 19 2008] [20:16:48] Interessant wäre eine (portable) Methode, das Carry-FLag zu pflegen [Mi Mär 19 2008] [20:16:50] Hi, Bernd. [Mi Mär 19 2008] [20:17:11] Dann kann man multi-Byte Arithmetik nach Gusto machen [Mi Mär 19 2008] [20:17:34] Derzeit scheitert es am fehlenden sm/rem/fm/mod und den ganzen Dictionary tests so ab C, [Mi Mär 19 2008] [20:18:00] Ersteres mache ich vielleicht noch mal, letzteres setzt wieder ein Dictionary im RAM voraus [Mi Mär 19 2008] [20:18:07] Hast Du denn ein UM/MOD? [Mi Mär 19 2008] [20:18:11] jo [Mi Mär 19 2008] [20:18:33] Dann gibt es ja High-Level-Definitionen für sm/rem und fm/mod. [Mi Mär 19 2008] [20:18:59] Wo? [Mi Mär 19 2008] [20:19:08] Moment mal. [Mi Mär 19 2008] [20:19:30] Im Gforth z.B. [Mi Mär 19 2008] [20:19:57] : fm/mod ( d1 n1 -- n2 n3 ) [Mi Mär 19 2008] [20:19:57] dup >r dup 0< IF negate >r dnegate r> THEN [Mi Mär 19 2008] [20:19:57] over 0< IF tuck + swap THEN [Mi Mär 19 2008] [20:19:57] um/mod [Mi Mär 19 2008] [20:19:57] r> 0< IF swap negate swap THEN ; [Mi Mär 19 2008] [20:19:57] : sm/rem ( d1 n1 -- n2 n3 ) [Mi Mär 19 2008] [20:19:57] over >r dup >r abs -rot [Mi Mär 19 2008] [20:19:57] dabs rot um/mod [Mi Mär 19 2008] [20:19:57] r> r@ xor 0< IF negate THEN [Mi Mär 19 2008] [20:19:57] r> 0< IF swap negate swap THEN ; [Mi Mär 19 2008] [20:20:14] : SM/REM ( d1 n2 -- n2 n3 ) [Mi Mär 19 2008] [20:20:14] over >r 2dup xor 0< >r [Mi Mär 19 2008] [20:20:14] abs >r dabs r> um/mod ( rem quot ) [Mi Mär 19 2008] [20:20:14] r> ?negate swap r> ?negate swap ; [Mi Mär 19 2008] [20:20:25] Cool, danke [Mi Mär 19 2008] [20:21:31] appropos gforth: Da gibt es Verzeichnis avr. Aber so ausgebaut wie der Port zum R8 scheint das aber nicht zu sein, oder? [Mi Mär 19 2008] [20:21:55] Join frunobulax has joined this channel (~mhx@e243118.upc-e.chello.nl). [Mi Mär 19 2008] [20:22:05] Da ist mal damit angefangen worden, indem Klaus Kohl einen Assembler zur Verfügung gestellt hat [Mi Mär 19 2008] [20:22:10] Aber sonst ist da nichts passiert. [Mi Mär 19 2008] [20:22:16] Hallo Marcel [Mi Mär 19 2008] [20:22:41] Hi, Marcel [Mi Mär 19 2008] [20:22:48] Hi Marcel [Mi Mär 19 2008] [20:23:58] Hi gang-of-four(th) [Mi Mär 19 2008] [20:24:21] Immer noch besser als das fifth rad am Wagen zu sein ;=) [Mi Mär 19 2008] [20:26:57] Join reinhold has joined this channel (~reinhold@1Cust218.tnt5.muc2.deu.da.uu.net). [Mi Mär 19 2008] [20:27:24] Hallo [Mi Mär 19 2008] [20:27:39] Hallo zusammen [Mi Mär 19 2008] [20:29:55] Gibt es eigentlich einen sieve Benchmark, der mit weniger als 8K RAM auskommt? Theoretisch würden ja 8 KBit ausreichen, aber irgendwie scheinen alle auf Bytes zu setzen [Mi Mär 19 2008] [20:30:32] Machbar ist das sicher. [Mi Mär 19 2008] [20:31:11] Sollst mal Albert van der Horst fragen (wenn du viel Zeit hast :-) [Mi Mär 19 2008] [20:31:42] Ich werde mich auf Dich beziehen (und nur EMail benutzen) ;=) [Mi Mär 19 2008] [20:33:52] Eigentlich müsste man ja nur ein flag-get/set faktorieren und das dann optimieren. [Mi Mär 19 2008] [20:34:48] Bei Fibonacci Zahlen ist mein Forth Faktor 2 langsamer als gforth (gleicher Takt unterstellt) [Mi Mär 19 2008] [20:42:52] Ich weiss nicht wie IRC jetzt reagieren wird, aber hier ist bit-sieve.frt.. [Mi Mär 19 2008] [20:43:03] (* [Mi Mär 19 2008] [20:44:20] (* [Mi Mär 19 2008] [20:44:20] * LANGUAGE : ANS Forth [Mi Mär 19 2008] [20:44:20] * PROJECT : Forth Environments [Mi Mär 19 2008] [20:44:20] * DESCRIPTION : The Famous Sieve of Eratosthanes, using bits [Mi Mär 19 2008] [20:44:20] * CATEGORY : Benchmarks [Mi Mär 19 2008] [20:44:21] * AUTHOR : Marcel Hendrix [Mi Mär 19 2008] [20:44:23] * LAST CHANGE : Monday, June 04, 2001 11:54 PM, MHX [Mi Mär 19 2008] [20:44:25] *) [Mi Mär 19 2008] [20:44:30] NEEDS -miscutil [Mi Mär 19 2008] [20:44:34] REVISION -bit-sieve "ÄÄÄ SIEVE benchmark Version 1.01 ÄÄÄ" [Mi Mär 19 2008] [20:44:41] #1000 =: #times [Mi Mär 19 2008] [20:44:43] #8192 =: size [Mi Mär 19 2008] [20:44:46] CREATE flags size 8 / CHARS ALLOT [Mi Mär 19 2008] [20:44:50] : DO-PRIME flags [ size 8 / ] LITERAL %11111111 FILL [Mi Mär 19 2008] [20:44:53] 0 size 0 DO flags I [Mi Mär 19 2008] [20:44:54] BIT? IF I 2* 3 + [Mi Mär 19 2008] [20:44:56] DUP I + [Mi Mär 19 2008] [20:44:59] BEGIN DUP size [Mi Mär 19 2008] [20:45:01] U< WHILE flags OVER BIT-RESET [Mi Mär 19 2008] [20:45:02] OVER + [Mi Mär 19 2008] [20:45:05] REPEAT [Mi Mär 19 2008] [20:45:06] 2DROP 1+ [Mi Mär 19 2008] [20:45:09] ENDIF [Mi Mär 19 2008] [20:45:11] LOOP ; [Mi Mär 19 2008] [20:45:15] : PRIMES CR #times DEC. ." iterations." TIMER-RESET [Mi Mär 19 2008] [20:45:16] 0 #times 0 DO DROP DO-PRIME LOOP [Mi Mär 19 2008] [20:45:19] MS? SWAP CR . ." primes found, " DEC. ." ms elapsed." ; [Mi Mär 19 2008] [20:45:22] :ABOUT CR ." Sieve (" #times 0 .R ." iterations)" [Mi Mär 19 2008] [20:45:25] CR ." Enter PRIMES to run the (bit test) benchmark." [Mi Mär 19 2008] [20:45:27] CR ." On AMD Athlon this is only 10% slower than sieve.frt ." ; [Mi Mär 19 2008] [20:45:30] Quit frunobulax has left this server (Connection reset by peer). [Mi Mär 19 2008] [20:46:58] Join frunobulax has joined this channel (~mhx@e243118.upc-e.chello.nl). [Mi Mär 19 2008] [20:48:50] Das sieht vielversprechend aus. Danke [Mi Mär 19 2008] [20:50:14] Gibt's hier ein paste.bin? [Mi Mär 19 2008] [20:51:00] Keine Ahnung, aber im Zweifel kannst Du ja auch übers Usenet posten [Mi Mär 19 2008] [20:55:09] http://forth.pastebin.ca/949392 [Mi Mär 19 2008] [20:56:35] Ist das ein Tipfehler mit :ABOUT ? [Mi Mär 19 2008] [20:57:48] Nein, Ich habe hier kein ANS Substitut vor handen. [Mi Mär 19 2008] [20:58:51] Ah, also :ABOUT definiert .ABOUT oder wie ist das zu verstehen? [Mi Mär 19 2008] [21:00:13] :ABOUT und .ABOUT gehoeren zusammen und bilden eine gelinkte Liste fuer alle geladene Modulen. (Ach, koennte ich doch Deutsch schreiben :-) [Mi Mär 19 2008] [21:01:34] Das ist aber eine interessante Linkseite: lisp in forth, jedit Anpassungen. [Mi Mär 19 2008] [21:02:18] psst. --- übrigens steht im Header ANS Forth :-O das ist dann ja ein bisschen geflunkert :-) [Mi Mär 19 2008] [21:02:41] .ABOUT gibt die von :ABOUT eingefuegte Hilfe Texten aus. .HELP gibt die letzte Hilfe aus. [Mi Mär 19 2008] [21:03:49] Es sagt auch: NEEDS -miscutil :-) [Mi Mär 19 2008] [21:04:03] Ja - schön so eine eingebaute Hilfe. Ich sage also .ABOUT und bekomme dann zu dem Modul den About-Text angezeigt. [Mi Mär 19 2008] [21:04:33] Rightig! [Mi Mär 19 2008] [21:05:04] und NEEDS ist auch kein ANS :-; [Mi Mär 19 2008] [21:05:10] ;-) [Mi Mär 19 2008] [21:06:57] Vielleicht soll man erst mal den FFL includen :-) [Mi Mär 19 2008] [21:08:26] Nun gut, die Frage war ja nach dem Bit-Eratosthenes und so muss man es halt lesen und verstehen und dann in den Dialekt seiner Wahl umsetzen... [Mi Mär 19 2008] [21:08:49] Mit FFL kann man dann die Anpassung hinbekommen. [Mi Mär 19 2008] [21:09:09] ich denke, ich werde es erst mal ohne versuchen ;=) [Mi Mär 19 2008] [21:09:32] Sollte in diesem Beispiel ja auch nicht so schwer sein. [Mi Mär 19 2008] [21:09:50] Wie war das jetzt mit der portablen Carry-Behandlung? [Mi Mär 19 2008] [21:09:53] Das mit den Bitflags könnte (bei passender Implementierung) auch fürs Multitasking interessant werden [Mi Mär 19 2008] [21:10:29] Carry: da habe ich nur mal drüber nachgedacht, das Carry Flag des Prozessors in die Forth-VM abzubilden [Mi Mär 19 2008] [21:10:55] Wenn der Prozessor das Flag nicht bei allen möglichen Befehlen "kaputtmacht", geht das sicher [Mi Mär 19 2008] [21:11:33] Man sollte aber davon ausgehen, das das geschieht. [Mi Mär 19 2008] [21:12:12] Das ist schon auf Assembler-Ebene aufregend genug, die ganzen Flags zum richtien Zeitpunkt auszuwerten.. [Mi Mär 19 2008] [21:12:52] Wenn man einen Forth-Prozessor hat, kann man das eigentlich ganz brauchbar definieren: [Mi Mär 19 2008] [21:13:13] + - +c -c und die Multiplikations/Divisions-Step-Befehle zerstören das Carry [Mi Mär 19 2008] [21:13:15] Der Rest nicht. [Mi Mär 19 2008] [21:14:24] Naja: 8bit + 8bit ergibt 9bit, 8bit mal 8bit ergibt 16bit. Quasi 8 Carry bits zusätzlich. [Mi Mär 19 2008] [21:15:17] Interessanterweise scheint kaum eine "höhere" Sprache die bei allen Prozessoren vorhandenen Informationen dieser Art durchzureichen. [Mi Mär 19 2008] [21:15:37] Das Carry ist dafür einfach zu fragil [Mi Mär 19 2008] [21:15:51] Da definiert mal lieber solche Konstrukte wie long long und bastelt am Compiler. [Mi Mär 19 2008] [21:17:34] Das low-level Carry ja. Aber die Idee dahinter eher nicht. Aber die Wortschöpfung "c+" gefällt mir [Mi Mär 19 2008] [21:18:15] +c "add with carry" [Mi Mär 19 2008] [21:18:37] Wenn ich mich richtig erinnere, habe ich das von Chuck Moore's Prozessoren abgekupfert. [Mi Mär 19 2008] [21:19:43] Dann gibt's natürlich noch cIF und -cIF, die die nachfolgenden Befehle ausführen, wenn das Carry gesetzt (-c gelöscht) ist. [Mi Mär 19 2008] [21:20:35] c>flag und dann das normale if gefällt mir spontan besser (und flag>c für die Gegenrichtung) [Mi Mär 19 2008] [21:22:44] Auf Machine-Forth-Ebene gibt's halt einen jump on carry, und cIF generiert den. [Mi Mär 19 2008] [21:23:06] Das Carry in ein Flag konvertieren kommt nicht so oft vor, dass es sich lohnt, das als Befehl zu implementieren. [Mi Mär 19 2008] [21:24:02] ich wollte nur die Zahl der if-Varianten begrenzen [Mi Mär 19 2008] [21:24:28] Alles muss man ja nicht vom Prozessorniveau abkupfern [Mi Mär 19 2008] [21:25:22] Außerdem will ein Optimierer ja auch was zu tun bekommen ;=) [Mi Mär 19 2008] [21:26:59] Das mit dem Optimierer ist ja die Idee bei C: (long long)a+b gibt halt die Summe und das Carry im höheren Byte [Mi Mär 19 2008] [21:27:09] bzw. int natürlich ;-) [Mi Mär 19 2008] [21:41:47] Join kardinal has joined this channel (~kvirc@e180134241.adsl.alicedsl.de). [Mi Mär 19 2008] [21:42:06] hoeheren int? [Mi Mär 19 2008] [21:42:14] Kardinal, hi [Mi Mär 19 2008] [21:42:18] hi [Mi Mär 19 2008] [21:42:31] 664 [Mi Mär 19 2008] [21:42:34] Was machst Du mit Forth? [Mi Mär 19 2008] [21:43:34] professionel nicht aber ab und zu programmiere ich FORTH als spass [Mi Mär 19 2008] [21:43:55] Auf was für einer Plattform? [Mi Mär 19 2008] [21:44:57] im 90-jahre auf TDS2020 und TDS9092, jetzt mit gforth un pforth unter Linux [Mi Mär 19 2008] [21:46:52] http://www.triangledigital.com/front.htm [Mi Mär 19 2008] [21:47:16] Konnte der direkt den Flash beschrieben oder war das eine größere Aktion? [Mi Mär 19 2008] [21:48:19] Lese grade http://triangledigital.com/downloadfiles/pdfs/tds2020f.pdf [Mi Mär 19 2008] [21:49:56] jetztz ist TDS* obsolete, damals gabe kein flash aber EPROM, dann auch flash [Mi Mär 19 2008] [21:50:19] Heute am Linux-PC, hast Du auch externe Peripherie, die anzusteuern ist? [Mi Mär 19 2008] [21:52:48] TDS2020 and TDS9092 production ends in September 2008, 57000 Stück verkauft. [Mi Mär 19 2008] [21:53:01] ja [Mi Mär 19 2008] [21:53:25] jch habe in 90-jahre mit TDS* gearbeitet [Mi Mär 19 2008] [21:53:25] Quit uho has left this server (Connection reset by peer). [Mi Mär 19 2008] [21:54:32] Join uho has joined this channel (~uho@87.122.87.255). [Mi Mär 19 2008] [21:55:14] Die Hardware klingt aber schon noch Zeitgemäß [Mi Mär 19 2008] [21:56:29] Ich geh' jetzt, lass das Log aber noch etwas laufen [Mi Mär 19 2008] [21:56:32] Away You are now marked as being away. [Mi Mär 19 2008] [21:57:12] gut nächtle, wie meine schwäbischen Kollegen so schwätzen ;=) [Mi Mär 19 2008] [22:05:09] ich schätze dann mal das gleiche. Adele [Mi Mär 19 2008] [22:05:14] Quit MatthiasT has left this server (EOF From client). [Mi Mär 19 2008] [22:08:42] Irgendwie ist es schon wieder spät. [Mi Mär 19 2008] [22:08:45] Kardinal, nächste Wochen Mi, 20:00 Uhr? [Mi Mär 19 2008] [22:08:48] Ahh - ich kann da ja gar nicht, aber die anderen sind da. [Mi Mär 19 2008] [22:09:03] ok [Mi Mär 19 2008] [22:09:33] bis dann [Mi Mär 19 2008] [22:09:36] Ich bin erst am 2. April wieder dabei. [Mi Mär 19 2008] [22:09:38] bis dann. [Mi Mär 19 2008] [22:10:11] Quit kardinal has left this server ("KVIrc 3.2.4 Anomalies http://www.kvirc.net/"). [Mi Mär 19 2008] [22:10:46] Tschüß. Schöne Feiertage [Mi Mär 19 2008] [22:10:51] Quit reinhold has left this server (""). [Mi Mär 19 2008] [22:22:44] Part uho has left this channel. [Mi Mär 19 2008] [22:37:17] Quit frunobulax has left this server (Connection reset by peer).