*** Logfile started *** on Mi Feb 20 19:57:06 2008 [Mi Feb 20 2008] [19:57:06] Join You have joined the channel #forth-ev (~bernd@dslb-088-064-067-078.pools.arcor-ip.net). [Mi Feb 20 2008] [19:57:15] hi [Mi Feb 20 2008] [19:57:18] Hallo [Mi Feb 20 2008] [19:57:42] nabend [Mi Feb 20 2008] [19:59:54] Away You are now marked as being away. [Mi Feb 20 2008] [20:00:33] Join reinhold has joined this channel (~hyazinthf@1Cust177.tnt4.muc2.deu.da.uu.net). [Mi Feb 20 2008] [20:01:44] slashdot hat grade einen blogartikel "geslashdotted" Feynmans Meinungen zum Challanger-Unglück auf die Software und deren Entstehung angwandt: "Big design up front is foolish" [Mi Feb 20 2008] [20:03:15] oder auch "Reliable systems are built by rigorously tested, incremental bottom-up engineering with an 'attitude of highest quality'" klingt doch sehr nach Forth, oder? ;=) [Mi Feb 20 2008] [20:06:26] Moin. Die Frage ist, wie man mit Änderungen umgeht. Das System erstmal bottom-up aufzubauen ist eine Sache. Und dann? Ohne automatische Tests wird's schwer. Und automatische Tests sehe ich in Forth nicht praktiziert.... [Mi Feb 20 2008] [20:07:17] Wo werden die praktiziert? [Mi Feb 20 2008] [20:07:39] junit? [Mi Feb 20 2008] [20:08:30] sunit war wohl der anfang.. seitdem haben alle OOP-sprachen, die was auf sich halten, nen unit test system [Mi Feb 20 2008] [20:08:31] Quit uho has left this server (Connection reset by peer). [Mi Feb 20 2008] [20:09:51] Join uho has joined this channel (~uho@e177102030.adsl.alicedsl.de). [Mi Feb 20 2008] [20:10:52] Wie vom Server getrennt. Ich komme jetzt über Karlsruhe anstatt über Ilmenau... [Mi Feb 20 2008] [20:13:23] wären automatische / praktizierbare Unittests nicht mal eine Überlegung wert? Hayes ist ein Anfang, und die forth200xler haben auch verschiedentlich Testfälle einbezogen [Mi Feb 20 2008] [20:16:25] Für java habe ich bei sourceforge mal ein Tutorial gefunden, das Java/eclipse für "absolute beginners" via Testcases eingeführt hat. (wobei eine eclipse Unterstützung für forth auch eine nette Idee wäre) [Mi Feb 20 2008] [20:16:44] Away You are no longer marked as being away. [Mi Feb 20 2008] [20:16:56] Ja - ich hab' früher mal "sprechende" Tests vorgestellt, die man in den Source-Code eingestreut hat und die dann beim Laden ausgeführt wurden... Die Syntax ist mir entfallen - ich kann aber nochmal danach suchen. [Mi Feb 20 2008] [20:17:23] So etwas wie assertions? [Mi Feb 20 2008] [20:17:48] Wenn Du damit Laufzeittests meinst, nein [Mi Feb 20 2008] [20:18:01] IMHO [Mi Feb 20 2008] [20:18:19] forth unterscheidet Lade-, Übersetzungs und Laufzeit. [Mi Feb 20 2008] [20:18:31] Die Tests liefen zu Ladezeit. [Mi Feb 20 2008] [20:18:40] Eher so: : wort ... ; : test-wort wort ; [Mi Feb 20 2008] [20:19:06] ja [Mi Feb 20 2008] [20:19:29] vielleicht noch forget test-wort [Mi Feb 20 2008] [20:19:33] assert (zumindest das von C) macht sowas zur Laufzeit [Mi Feb 20 2008] [20:19:45] Anderes vocabulary? [Mi Feb 20 2008] [20:19:53] "funit" [Mi Feb 20 2008] [20:20:33] Das mit dem Test hatten wir doch schon mal, siehe tester.fs in Gforth [Mi Feb 20 2008] [20:20:47] Beispiel: { 1 2 + -> 3 } [Mi Feb 20 2008] [20:21:01] wird das auch oft praktiziert? [Mi Feb 20 2008] [20:21:18] Gforth testet sich beim Build so selbst [Mi Feb 20 2008] [20:21:36] Oft wird das also nicht praktiziert ;-) [Mi Feb 20 2008] [20:22:02] Wir waren bei Änderungen in großen Applikationen [Mi Feb 20 2008] [20:22:11] Wäre aber eine Empfehlung a la Standard wert [Mi Feb 20 2008] [20:22:34] Paul Bennett hat auf der EuroForth mal einen Vortrag in die Richtung gehalten [Mi Feb 20 2008] [20:23:10] In der Regel sind diese Art von Tests ja Unit-Tests, und Unit-Tests sind bei großen Applikationen ja oft recht nichtssagend [Mi Feb 20 2008] [20:23:26] D.h. die Units funktionieren alle, nur zusammen klappt nichts ;-) [Mi Feb 20 2008] [20:23:55] Dann brauchen wir automatisierte Integrationstest :-) [Mi Feb 20 2008] [20:24:38] Nee, nur jemanden, der sich mit Tests und deren Cases auskennt. [Mi Feb 20 2008] [20:25:12] pro Projekt natürlich [Mi Feb 20 2008] [20:25:49] Ein Problem mit automatischen Regression-Tests ist, dass es ja oft die Spec ist, die geändert werden musste [Mi Feb 20 2008] [20:26:45] Das hat mir bei den Unit-Tests aber gefallen: Erst wird der Testcase definiert danach die Zielfunktion auf den Testcase abgestimmt. Spec == Testdefinition [Mi Feb 20 2008] [20:26:46] Vor meinem letzten Chip-Tapeout musste auch ein Teil der Regression-Tests umgeschrieben werden, eben weil das vorherige Verhalten zwar spec-konform war, aber halt unbrauchbar [Mi Feb 20 2008] [20:27:24] Da hilft auch nichts, wenn man den Test zuerst schreibt. [Mi Feb 20 2008] [20:27:29] Es gibt auch die Sichtweise: Der Test ist die Spec. [Mi Feb 20 2008] [20:27:47] Stimmt, unbrauchbare spec ist sowas wie garbage in garbage out. [Mi Feb 20 2008] [20:28:26] oder wie habe ich mal aufgeschnappt: "Wenn aus Prinzip etwas falsches passiert, ist das Prinzipt falsch", hochpolitisch i.allg. [Mi Feb 20 2008] [20:28:44] Oft sind das sehr subtile Sachen [Mi Feb 20 2008] [20:29:06] Beispiel: Die Zeitkonstante für die digitale PLL im Audio-Chip war zu kurz [Mi Feb 20 2008] [20:29:28] Merkt man, wenn man ein verjittertes SPDIF-Eingangssignal hat [Mi Feb 20 2008] [20:29:46] Und das fällt natürlich im Regression-Test (Simulation) *nie* auf. [Mi Feb 20 2008] [20:30:16] Und die längere Zeitkonstante hat dann jede Menge harmloser Nebenwirkungen, die aber alle Tests auseinanderbröseln lässt. [Mi Feb 20 2008] [20:30:17] Aber kannst Du dafür jetzt nicht einen Test schreiben? [Mi Feb 20 2008] [20:30:53] Im Prinzip kann man einen Test dafür schreiben, in der Praxis aber nicht ausführen - dauert zu lang [Mi Feb 20 2008] [20:31:57] Das Blöde ist, dass es auch im Labor lang nicht aufgefallen ist, erst als für eine Messe ein High-End-CD-Player angeschlossen wurde [Mi Feb 20 2008] [20:32:11] oops [Mi Feb 20 2008] [20:32:21] Dessen SPDIF-Ausgang war etwa zehnmal verjitterter als die üblichen Billig-Teile, die wir im Labor haben ;-) [Mi Feb 20 2008] [20:34:04] Eigentlich kann man so etwas nur als Modell testen (Matlab o.ä.), und dann vom Modell Parameter für den Regression-Test ableiten [Mi Feb 20 2008] [20:34:16] muttu mp3 filter zwischenschalten, dann hört das keiner mehr ;=)) [Mi Feb 20 2008] [20:35:21] Hab gestern morgen meinen XO aus dem Zoll geholt. [Mi Feb 20 2008] [20:36:13] und? 110 Volt Anschluß? [Mi Feb 20 2008] [20:36:20] Und, hast du ihn schon aufklappen können? [Mi Feb 20 2008] [20:36:40] Die meisten Entwicklungsländer haben 230V [Mi Feb 20 2008] [20:36:56] Die, die keine 230V haben, haben gar keinen Strom ;-) [Mi Feb 20 2008] [20:37:05] BerndPaysan: ist die frage, ob amis sowas auch wissen [Mi Feb 20 2008] [20:37:14] Nein - bin bis morgen voll im Stress. 240V aber US-Pins. Ich hab nicht mal zeit einen Adpater zu holen :-( [Mi Feb 20 2008] [20:38:26] Die meisten Entwicklungsländer haben den Euro-Stecker [Mi Feb 20 2008] [20:38:35] "früher" hatten die mal eine Kurbel zum Aufladen vorgesehen. Würde als Stressabbauhelfer eine gute Figur machen [Mi Feb 20 2008] [20:38:50] Ich glaube, jetzt ist ein Jojo-Netzteil dabei [Mi Feb 20 2008] [20:39:33] Hat aber keine Kurbel mehr. Das sieht mir aber wie ein ganz normales Steckernetzteil aus. Nur eben OLPC-grün. [Mi Feb 20 2008] [20:39:56] Vielleicht gehen die Jojo-Netzteile nur in die 3. Welt. [Mi Feb 20 2008] [20:40:53] Fairer Weise muss ich sagen, das mein XO auch für die USA gedacht war. Aus dem G1G1-Programm [Mi Feb 20 2008] [20:41:05] naja, 3. welt ;) [Mi Feb 20 2008] [20:41:25] Nordamerika ist die 2, Welt, IIRC [Mi Feb 20 2008] [20:41:49] Sind wir wieder beim Problem, wieviele Stackelemente 3. erzeugt :-) [Mi Feb 20 2008] [20:42:13] :) [Mi Feb 20 2008] [20:42:21] 2. Welt, war das nicht die Sowjetunion? [Mi Feb 20 2008] [20:42:42] eigentlich schon, ja [Mi Feb 20 2008] [20:43:16] sozusagen NIP [Mi Feb 20 2008] [20:43:21] ja, ok. ihr habt recht :=( [Mi Feb 20 2008] [20:43:36] Und die neue Welt? [Mi Feb 20 2008] [20:43:47] wikipedia ist eben doch schlauer [Mi Feb 20 2008] [20:44:18] Wie auch immer - ich werde berichten, wenn ich mir die Openfirmware auf dem XO angesehen habe. [Mi Feb 20 2008] [20:56:31] Gibt es Forths, die mit SIMD-Instruktionen umgehen können? [Mi Feb 20 2008] [20:57:18] Was für eine Architektur hast Du denn im Sinn? [Mi Feb 20 2008] [20:57:40] Pentium hat sie, der PPC auch [Mi Feb 20 2008] [20:57:50] Aber wie nutzt man sie in Forth? [Mi Feb 20 2008] [20:58:13] Single Instruction Multiple Data? [Mi Feb 20 2008] [20:58:22] ja [Mi Feb 20 2008] [20:59:13] Vektorstapel? Oder single instruction multiple cells? [Mi Feb 20 2008] [20:59:15] Die außerhalb der x86-Architektur liegenden Vektor-Befehle? [Mi Feb 20 2008] [21:00:11] Ich würde mir vorstellen dass das wie seinerzeit der Arith-Coprozessor gehen müßte. [Mi Feb 20 2008] [21:00:47] Also eigener Stapel wie bei den Gleitkommazahlen? [Mi Feb 20 2008] [21:00:56] Daten vom Stack oder aus dem Dict bereitstellen und dann Vektor-Befehle aufrufen und Ergebnisse abholen. [Mi Feb 20 2008] [21:01:11] Eigener Stack mach auch Sinn. [Mi Feb 20 2008] [21:02:09] Eine PPC oder Pentium-Implementierung, die sowas schon machen würde, kenn ich aber nicht. [Mi Feb 20 2008] [21:03:44] Powermops hat eine Klasse "vector", deren Methoden Altivec-Instruktionen enthalten. (Nicht sehr forth-like finde ich.) [Mi Feb 20 2008] [21:05:32] Wie arbeitet denn diese Klasse? [Mi Feb 20 2008] [21:08:41] Es gibt Klassen mit Bestandteilen unterschiedlicher Länge, also 16 Bytes oder 4 Zellen, [Mi Feb 20 2008] [21:08:41] Vektoraddition sieht dann so aus v1 v2 +: v3 [Mi Feb 20 2008] [21:08:42] Dann gibt es "lange" Vektorklassen mit Schleifen. [Mi Feb 20 2008] [21:09:49] Ja - sieht aus wie Reverse Polish Pascal :-) [Mi Feb 20 2008] [21:10:29] Kann das Ergebnis auch auf dem Stack bleiben? [Mi Feb 20 2008] [21:12:18] Direkt nicht; die Adresse eines Objekts kommt auf den Stapel durch den Objektnamen [Mi Feb 20 2008] [21:13:38] und +: erwartet v3? [Mi Feb 20 2008] [21:15:03] Ja, das ist die vielkritisierte method object Syntax. Man kann auch v1 v2 v3 +: class_as> word_vector schreiben [Mi Feb 20 2008] [21:15:33] oder v1 v2 v3 +: [] mit late-bind [Mi Feb 20 2008] [21:16:57] Das heißt ich kann nicht beliebig tief geschachtelte Ausdrücke schreiben? [Mi Feb 20 2008] [21:17:44] Wenn Zwischenergebnisse nicht auf dem Stack bleiben können, wird's halt nicht Forth-like.... [Mi Feb 20 2008] [21:19:53] Ja. Aber den Stack zu benutzen ist auch unschön. Man hat 16 Byte-Operationen oder 4 Integers-Op, oder 2 FP auf einmal. [Mi Feb 20 2008] [21:21:13] Ignorieren gilt andererseits auch nicht. Schließlich hat man die MMX-Einheit mit teurem Geld gekauft ;) [Mi Feb 20 2008] [21:22:27] Ein Stack der die Daten kopiert hat den Reiz des Einfachen. Müßte man mal sehen, ob das wirklich soo langsam wäre... [Mi Feb 20 2008] [21:25:03] Eigentlich sollte das schon schnell gehen, wenn man einen "richtigen" Compiler hat [Mi Feb 20 2008] [21:25:06] wie VFX oder iForth [Mi Feb 20 2008] [21:29:10] Das sehe ich mal nach. Für heute sage ich tschüß. [Mi Feb 20 2008] [21:29:27] Quit reinhold has left this server (""). [Mi Feb 20 2008] [21:30:50] Ich sag' auch tschüss, lass das Log aber noch etwas weiterlaufen [Mi Feb 20 2008] [21:30:53] Error awaay: Unknown command. [Mi Feb 20 2008] [21:30:55] Away You are now marked as being away. [Mi Feb 20 2008] [21:38:25] Quit uho has left this server (Not owner). [Mi Feb 20 2008] [21:38:32] Quit MatthiasT has left this server (EOF From client). [Mi Feb 20 2008] [21:38:43] Join uho has joined this channel (~uho@e177102030.adsl.alicedsl.de). [Mi Feb 20 2008] [22:09:04] Part uho has left this channel.