*** Protokolldatei gestartet *** Datum: Mi. Jul 18 19:57:40 2012 [Mittwoch, 18. Juli 2012] [19:57:40] Betreten Sie haben den Kanal #forth-ev betreten (-bernd@p5DCD612C.dip0.t-ipconnect.de). [Mittwoch, 18. Juli 2012] [19:57:45] Modus Kanalmodi: [Mittwoch, 18. Juli 2012] [20:10:33] Betreten erwaelde hat den Kanal betreten (-user@p5B14092D.dip0.t-ipconnect.de). [Mittwoch, 18. Juli 2012] [20:10:39] Betreten MatthiasT hat den Kanal betreten (~mt@dslb-094-220-169-011.pools.arcor-ip.net). [Mittwoch, 18. Juli 2012] [20:10:49] Guten Abend zusammen [Mittwoch, 18. Juli 2012] [20:10:53] Moggään! [Mittwoch, 18. Juli 2012] [20:12:45] Hallo! [Mittwoch, 18. Juli 2012] [20:13:16] Ich seh grad, ich muß erst mal einen update auf amforth machen :-) [Mittwoch, 18. Juli 2012] [20:13:19] Ich musste heute mal (wieder) auf Handwerker warten. In der Zeit habe ich mal die Forth200x Structurs auf amforth angepasst. Ist aber gar nicht so einfach, mal ein einfaches Beispiel dafür zu finden [Mittwoch, 18. Juli 2012] [20:14:18] Hm, die sind doch ziemlich einfach. [Mittwoch, 18. Juli 2012] [20:14:30] Kommt auf die Perspektive an ;) [Mittwoch, 18. Juli 2012] [20:14:44] +FIELD erzeugt ein Wort, das einen Offset addiert. [Mittwoch, 18. Juli 2012] [20:14:45] Bei den Testcases steht auch nur TBD [Mittwoch, 18. Juli 2012] [20:14:59] Bei den anderen Sachen fand ich die durchaus hilfreich. [Mittwoch, 18. Juli 2012] [20:15:36] Hm, keine Testcases sind natürlich nicht nett. [Mittwoch, 18. Juli 2012] [20:15:37] Aber [Mittwoch, 18. Juli 2012] [20:15:38] Dabei ist mir aufgefallen, das die Strukturen vermutlich ein guter Kandidat für Recognizer sind [Mittwoch, 18. Juli 2012] [20:16:08] begin-structure foo field: a field: b field:c end-structure [Mittwoch, 18. Juli 2012] [20:16:11] so sachen wie $liste->next würd ich gut verstehen -.... [Mittwoch, 18. Juli 2012] [20:16:54] dazu kommt, dass man die Feldnamen klug wählen sollte. Immerhin sind die global und ohne Scopes [Mittwoch, 18. Juli 2012] [20:17:22] Aber dann der Handwerker doch noch und ich habs erst mal nur eingechecked [Mittwoch, 18. Juli 2012] [20:17:30] sollte { foo -> 3 cells } { 0 a -> 0 } { 100 a -> 100 } { 200 c -> 200 2 cells + } { 300 b -> 300 cell+ } erfolgreich durchlaufen. [Mittwoch, 18. Juli 2012] [20:18:20] Dumm nur, dass a b und c dann Einträge im Dictionary sind und wohl nur selten mit 10 11 und 12 initialisert sind [Mittwoch, 18. Juli 2012] [20:18:54] das meinte ich mit "Feldnamen klug wählen" [Mittwoch, 18. Juli 2012] [20:19:01] Das ist ja nur ein Testcase. [Mittwoch, 18. Juli 2012] [20:19:13] Klar soll man Feldnamen in der Realität auch vernünftig wählen. [Mittwoch, 18. Juli 2012] [20:19:43] Wobei es manchmal besser ist, jede Structure in ihrem eigenen Vokabular zu verpacken. [Mittwoch, 18. Juli 2012] [20:20:16] In C hat man das irgendwann mal eingeführt, war ein voller Erfolg (K&R-Strukturen haben einen globalen Namespace). [Mittwoch, 18. Juli 2012] [20:20:54] Der Übergang zum OO ist fließend ;) [Mittwoch, 18. Juli 2012] [20:21:53] Das ist so auch richtig. [Mittwoch, 18. Juli 2012] [20:21:54] Eigentlich war nur von einem winzigen Lisp-Interpreter angetriggert. Aber den find ich jetzt nicht mehr wieder... War mir sicher, dass der auf der Festplatte liegt.. [Mittwoch, 18. Juli 2012] [20:22:17] Der hatte structs und den wollte ich mal ausprobieren. [Mittwoch, 18. Juli 2012] [20:23:19] Ich ärgere mich gerade über Google - auf Android kann man mit C-Libraries fast alles machen, nur kein Fenster darstellen. [Mittwoch, 18. Juli 2012] [20:23:35] Also reinzeichnen geht, aber man bekommt es nicht - das darf nur Java. [Mittwoch, 18. Juli 2012] [20:24:07] Faszinierend [Mittwoch, 18. Juli 2012] [20:24:13] Ich hab' mir dann mal den Code angesehen, der angeblich "kein stabiles Interface" haben kann: Das stimmt überhaupt nicht. [Mittwoch, 18. Juli 2012] [20:24:45] Der hat die Methoden, die ich von jedem Fenster-Manager kenne: Erzeuge ein Fenster, setze Größe und Position, zeige es an (mit Layer-Nummer) und verstecke es. [Mittwoch, 18. Juli 2012] [20:25:07] Das war schon immer so, seit Xerox. [Mittwoch, 18. Juli 2012] [20:25:37] Sidn die ganzen Apps wirklich Fenster? Die sind doch alle Fullscreen [Mittwoch, 18. Juli 2012] [20:25:42] ? [Mittwoch, 18. Juli 2012] [20:25:53] Ja, das sind alles Fullscreen-Fenster. [Mittwoch, 18. Juli 2012] [20:26:17] Wobei sie die Status-Bar nicht überdecken, die ist ein Fenster für sich. [Mittwoch, 18. Juli 2012] [20:26:28] Und das Aufrollen derselben, was glaubst du, wie das gemacht wird? [Mittwoch, 18. Juli 2012] [20:26:42] Ganz einfach: ein neues Fenster obendrüberlegen. [Mittwoch, 18. Juli 2012] [20:27:10] Da ist nichts, aber auch gar nichts, irgendwie ungewöhnlich oder so neu, dass man jahrelang dran rumbasteln muss. [Mittwoch, 18. Juli 2012] [20:27:33] Das sind schlicht und einfach Sprach-Nazis, die ihr Java jedem aufzwängen wollen. [Mittwoch, 18. Juli 2012] [20:27:42] ;=) [Mittwoch, 18. Juli 2012] [20:28:15] Wenn mein net2o fertig ist, gibt's da bestimmt mehrere Optionen zur Auswahl, um das zu programmieren - nicht nur Forth. [Mittwoch, 18. Juli 2012] [20:28:41] Dürfte den Bekanntheitsgrad auch eher befördern [Mittwoch, 18. Juli 2012] [20:28:44] Da wird dann in der Lizenz für die anderen Optionen drinstehen, dass Googles Android-Programmierer die nicht verwenden dürfen - die müssen Forth nehmen :-) [Mittwoch, 18. Juli 2012] [20:28:52] :=)) [Mittwoch, 18. Juli 2012] [20:29:05] ROTFL [Mittwoch, 18. Juli 2012] [20:29:31] Ebenfalls erlaubt: Whitespace, Piet, und Intercal. [Mittwoch, 18. Juli 2012] [20:29:40] Matthias: warum krieg ich das: AMFORTH_LIB=../../amforth/trunk/core ../../amforth/trunk/core/../tools/amforth-shell.py -p /dev/ttyUSB0 -s 115200 ./lib/forth200x/see.frt [Mittwoch, 18. Juli 2012] [20:29:40] [Mittwoch, 18. Juli 2012] [20:29:40] ---- Unexpected exception ---- [Mittwoch, 18. Juli 2012] [20:29:40] Traceback (most recent call last): [Mittwoch, 18. Juli 2012] [20:29:43] File "../../amforth/trunk/core/../tools/amforth-shell.py", line 423, in main [Mittwoch, 18. Juli 2012] [20:29:46] self.upload_file(fn) [Mittwoch, 18. Juli 2012] [20:29:49] File "../../amforth/trunk/core/../tools/amforth-shell.py", line 546, in upload_file [Mittwoch, 18. Juli 2012] [20:29:53] if len(self._filedirs[filename])>1: [Mittwoch, 18. Juli 2012] [20:29:57] KeyError: './lib/forth200x/see.frt' [Mittwoch, 18. Juli 2012] [20:30:00] [Mittwoch, 18. Juli 2012] [20:30:35] Weil Du nur see.frt anstelle des Pfadnamen haben sollst. Den Pfad bastelt sich das script selbst. Pfade kommen aber (wieder) rein [Mittwoch, 18. Juli 2012] [20:31:19] ich gebe nur noch die Dateinamen an, den Pfad lass ich komplett weg. [Mittwoch, 18. Juli 2012] [20:31:25] sehr praktisch [Mittwoch, 18. Juli 2012] [20:31:47] (Kann man durchaus als das Umgehen von bekannten Bugs ansehen) [Mittwoch, 18. Juli 2012] [20:32:03] Nee, das tut nicht: AMFORTH_LIB=../../amforth/trunk ../../amforth/trunk/core/../tools/amforth-shell.py -p /dev/ttyUSB0 -s 115200 see.frt [Mittwoch, 18. Juli 2012] [20:32:03] [Mittwoch, 18. Juli 2012] [20:32:03] ---- Unexpected exception ---- [Mittwoch, 18. Juli 2012] [20:32:03] Traceback (most recent call last): [Mittwoch, 18. Juli 2012] [20:32:06] File "../../amforth/trunk/core/../tools/amforth-shell.py", line 423, in main [Mittwoch, 18. Juli 2012] [20:32:10] self.upload_file(fn) [Mittwoch, 18. Juli 2012] [20:32:13] File "../../amforth/trunk/core/../tools/amforth-shell.py", line 548, in upload_file [Mittwoch, 18. Juli 2012] [20:32:16] self.progress_callback("ERROR", None, "wrong # of files:"+ filename + " can be found in "+ len(self._filedirs[filename])+ " directories") [Mittwoch, 18. Juli 2012] [20:32:19] TypeError: cannot concatenate 'str' and 'int' objects [Mittwoch, 18. Juli 2012] [20:32:22] [Mittwoch, 18. Juli 2012] [20:32:39] Kann/muß in AMFORTH_LIB 'ne Liste stehen? [Mittwoch, 18. Juli 2012] [20:33:04] zumindest wird anhand von : aufgeteilt und mein AMFORTH_LIB hat zwei Einträge [Mittwoch, 18. Juli 2012] [20:33:08] Oder tut das mit relativen Pfaden nicht? [Mittwoch, 18. Juli 2012] [20:33:36] Du kannst Sachen machen ... Keine Ahnung, habs noch nicht ausprobiert [Mittwoch, 18. Juli 2012] [20:34:34] Grr. die alte Version (rev.1244) hat schon mal mit mir gespielt. [Mittwoch, 18. Juli 2012] [20:36:24] Was steht denn bei Dir in AMFORTH_LIB drinne? [Mittwoch, 18. Juli 2012] [20:37:20] svn revert amforth-shell.py [Mittwoch, 18. Juli 2012] [20:37:22] Rückgängig gemacht: »amforth-shell.py« [Mittwoch, 18. Juli 2012] [20:37:24] mt@ayla:~/Projekte/Sourceforge/amforth/trunk/tools$ AMFORTH_LIB=../lib ./amforth-shell.py -p /dev/ttyUSB0 tuck.frt [Mittwoch, 18. Juli 2012] [20:37:26] |I=using tuck.frt from/home/mt/Projekte/Sourceforge/amforth/trunk/lib/ans94/core [Mittwoch, 18. Juli 2012] [20:37:28] |I=mcudef [Mittwoch, 18. Juli 2012] [20:37:30] |I=failed loading device.py for atmega16 .. continuing [Mittwoch, 18. Juli 2012] [20:37:32] |F=/home/mt/Projekte/Sourceforge/amforth/trunk/lib/ans94/core/tuck.frt [Mittwoch, 18. Juli 2012] [20:37:34] |W| 1| [Mittwoch, 18. Juli 2012] [20:37:36] |S| 2|: tuck ( n1 n2 -- n2 n1 n2 ) [Mittwoch, 18. Juli 2012] [20:37:38] |S| 3| swap over [Mittwoch, 18. Juli 2012] [20:37:40] |S| 4|; [Mittwoch, 18. Juli 2012] [20:37:42] mt@ayla:~/Projekte/Sourceforge/amforth/trunk/tools$ [Mittwoch, 18. Juli 2012] [20:37:44] Works for me [Mittwoch, 18. Juli 2012] [20:38:12] Python 2.7 irgendwas von Ubuntu 12.04 [Mittwoch, 18. Juli 2012] [20:39:25] Du bist damit auf der Stufe 1 des bugfreien Programms angelangt: WFM. [Mittwoch, 18. Juli 2012] [20:39:35] Stufe 2 ist: Works for some otheres, too. [Mittwoch, 18. Juli 2012] [20:40:30] Das ganze amforth ist im Zweifel auf Stufe 1 ;) [Mittwoch, 18. Juli 2012] [20:40:42] Manchmal auch drunter :( [Mittwoch, 18. Juli 2012] [20:40:55] Also for me wörkt das nicht. Ich hab grad das alte Ding noch ausm repo geholt. Funzzt einwandfrei. [Mittwoch, 18. Juli 2012] [20:41:09] Programmierer mit typsicheren Spachen haben noch einen Halbschritt darunter: Compiliert! [Mittwoch, 18. Juli 2012] [20:42:48] (ATmega32)> see toggle [Mittwoch, 18. Juli 2012] [20:42:48] : toggle [Mittwoch, 18. Juli 2012] [20:42:48] [ EE2 ] 38B9 over [Mittwoch, 18. Juli 2012] [20:42:48] [ EE3 ] 38B9 over [Mittwoch, 18. Juli 2012] [20:42:51] [ EE4 ] EC0 pin_high? [Mittwoch, 18. Juli 2012] [20:42:54] [ EE5 ] 381D 0branch -> EEA [Mittwoch, 18. Juli 2012] [20:42:57] [ EE7 ] E60 low [Mittwoch, 18. Juli 2012] [20:43:00] [ EE8 ] 3815 branch -> EEB [Mittwoch, 18. Juli 2012] [20:43:04] [ EEA ] E54 high [Mittwoch, 18. Juli 2012] [20:43:07] [ EEB ] 3804 ; ok [Mittwoch, 18. Juli 2012] [20:43:10] Cool! [Mittwoch, 18. Juli 2012] [20:43:41] hmm. da das ganze File-Suchen erst nach rev 245 reinkam, ist das alles etwas seltsam [Mittwoch, 18. Juli 2012] [20:43:54] Das SEE ist von Carsten, ich habs nur ein bissel poliert [Mittwoch, 18. Juli 2012] [20:46:03] Also, meiner unbescheidenen Meinung nach sind solche Suchpfade zwar praktisch, aber eben unoffensichtlich. So wie z.B. auch eine external reference in subversion. Ich bin ein Freund von ``alles relativ von $PWD oder absolute Pfadnahmen'' dann ist das m.E. auch eindeutig. Und wenn ich's falsch reintippe, dann kann ich's auch flicken. [Mittwoch, 18. Juli 2012] [20:47:35] Relative Pfadnamen haben mitunter den Nachteil, dass sie nur relativ zu exakt einem Ausgangsverzeichnis sind. [Mittwoch, 18. Juli 2012] [20:48:10] Und wo ist jetzt der Nachteil? [Mittwoch, 18. Juli 2012] [20:48:28] Das sie in einem anderen Teil des Verzeichnisbaums nicht mehr gültig sind [Mittwoch, 18. Juli 2012] [20:48:53] wenn ich mich in appl/whatever tummle gelten andere Regeln als in lib [Mittwoch, 18. Juli 2012] [20:49:17] Sollen sie denn das sein? Und in welcher Reihenfolge werden gleichlautende Dateien gefunden? Und welche gewinnt? [Mittwoch, 18. Juli 2012] [20:50:02] Deswegen ruf ich das terminal programm immer von appl/_ auf. Und da drin ist ein link auf das korrekte release/XX/lib Verzeichnis. [Mittwoch, 18. Juli 2012] [20:50:20] Mit den Dateien ist das wie mit den Feldnamen in den Strukturen ;) Die sind einmalig im ganzen Subtree. Und wenn es mehr als einen Namen gibt, kommt ne Fehlermeldung (too many files oder so). [Mittwoch, 18. Juli 2012] [20:50:22] Ich hab ja auch ``alten'' Code im Baum, der mit trunk eben genau nicht tut. [Mittwoch, 18. Juli 2012] [20:50:32] In Gforth ist die Regel so: Absolute und relative Pfade erkennt Gforth direkt, und nutzt sie auch so. [Mittwoch, 18. Juli 2012] [20:50:45] Der Rest wird im Suchpfad gesucht, erster Hit wird genommen. [Mittwoch, 18. Juli 2012] [20:50:59] Absolut: Was mit / vorne dran. Relativ: Was mit ./ vorne dran. [Mittwoch, 18. Juli 2012] [20:51:10] Oder ../ [Mittwoch, 18. Juli 2012] [20:51:11] Aber relative Namen kann ich mir auch noch vorstellen: Relativ zum CWD und auch relativ zu den Einträgen in AMFORTH_LIB [Mittwoch, 18. Juli 2012] [20:51:45] Wobei das doppelte Namen Handicap auch einer intelligenteren Lösung harrt [Mittwoch, 18. Juli 2012] [20:52:21] Erklär das mal den Mädels/Jungs in der Fort(h)bildung. Wenn Du das in einer Minute kannst und alle verstehen sofort, dann isses richtig. [Mittwoch, 18. Juli 2012] [20:52:42] Das ist der ultimative Test wenns mal fertig ist ;) [Mittwoch, 18. Juli 2012] [20:53:13] Genau, ../ gehört auch noch zu "relativ". [Mittwoch, 18. Juli 2012] [20:53:31] Es gibt nur zwei denkbare Konzepte für relativ: Relativ zum CWD und relativ zu der Datei, die ich gerade lade. [Mittwoch, 18. Juli 2012] [20:53:40] Mit dem Status Quo (ein lib-Verzeichnis, in dem alles als eindeutiger Filename vorhanden ist, der durch die Verzeichnisse nur strukturiert wird) kann ich derzeit gut leben [Mittwoch, 18. Juli 2012] [20:53:41] Alles andere ist definitiv Suchpfad. [Mittwoch, 18. Juli 2012] [20:54:21] Wir verwenden in Gforth "relativ zu der Datei, die ich gerade lade", und haben für CWD dann ~+/ [Mittwoch, 18. Juli 2012] [20:54:50] jo, sowas ist auch denkbar [Mittwoch, 18. Juli 2012] [20:54:50] Wobei man nach dem Start im Terminal .=CWD ist. [Mittwoch, 18. Juli 2012] [20:55:59] Zwar verstehe ich, wenn Frau Anfängerin nur "#include see.frt" sagen muß, daß das praktisch ist. Noch praktischer wärs, wenn die Endungen .fs .frt und was weiß ich auch noch automatisch an das see geklebt werden. Aber sie wird nicht lernen, wo die Dateien wirklich sind. [Mittwoch, 18. Juli 2012] [20:56:40] wenn man "#include see" sagen kann und alles kommt wie es soll, ist das IMHO ok [Mittwoch, 18. Juli 2012] [20:57:14] und einmalig eine Umgebungsvariable zu setzen, dürfte einen (angehenden) Entwicklerauch nicht überfordern [Mittwoch, 18. Juli 2012] [20:57:56] Bei Unix hat man dafür ein which [Mittwoch, 18. Juli 2012] [20:58:18] oder "type -a". [Mittwoch, 18. Juli 2012] [20:58:53] also which see "würde" dann "/home/ew/kruscht/amForth-4.3.17/carsten/see.frt" ausgeben. [Mittwoch, 18. Juli 2012] [20:58:55] oder so [Mittwoch, 18. Juli 2012] [20:58:58] "which see" [Mittwoch, 18. Juli 2012] [20:59:10] Matthias, mach's wie Du's denkst. Und schreib das Wesen von AMFORTH_LIB und der Suche in die Ausgabe von --help. [Mittwoch, 18. Juli 2012] [21:00:01] Which ist eine nette Idee, wenn die Pfadnamen wieder funktionieren. Und ich mach sowieso, was ich will; Außer wenn Du mich dazu bringst, was anderes zu wollen ;) [Mittwoch, 18. Juli 2012] [21:00:27] Darin bin ich kein Meister. Das letzte mal gab's Nummer-Prefixe :-) [Mittwoch, 18. Juli 2012] [21:01:40] aber das mit dem --help ist komplizierter als ich jetzt so spontan dachte. Keith scheint ein Python-Profi zu sein [Mittwoch, 18. Juli 2012] [21:02:20] Du meinst, die machen das nach dem Prinzip "warum einfach, wenn's auch kompliziert geht"? [Mittwoch, 18. Juli 2012] [21:02:30] Also, mal den mecker-Mode abschalten: ich find amforth und wasses drumrum so gibt, ziemlich super. Z.B. das mit den recognizern. Fortschritt und nicht festkleben in den Konzepten von anno dazumal. Also erst mal ein dickes Lob! [Mittwoch, 18. Juli 2012] [21:02:50] python ist nicht kompliziert, nur anders. [Mittwoch, 18. Juli 2012] [21:03:09] Danek [Mittwoch, 18. Juli 2012] [21:04:35] Keith hat ein paar Sachen im Einsatz, von denen ich keine Ahnung hab. (Decorations etc). Da muss ich mich erst mal auf einen aktuellen Stand bringen [Mittwoch, 18. Juli 2012] [21:05:31] Und ein 45K großes script ist per se nicht trivial, sobald der Kommentaranteil unter 90% sinkt [Mittwoch, 18. Juli 2012] [21:09:24] Wenn man in Java-Code 'reinguckt, findet man sehr viel Trivialitäten. [Mittwoch, 18. Juli 2012] [21:12:40] Aber dafür schreiben diese Leute ernsthaften Code. Also wie Willis bei Thinking Forth. [Mittwoch, 18. Juli 2012] [21:13:47] Naja, auch wenn ich mich über die ärgere: Ich habe jetzt eine Rechtfertigung, das Gforth-als-Library in Angriff zu nehmen. [Mittwoch, 18. Juli 2012] [21:14:06] Dann kann man es nämlich in Java-Code einbinden. [Mittwoch, 18. Juli 2012] [21:14:10] *musste mal ans Telefon* Mit dem prop-forth hab ich's immer noch nicht hingekriegt, ein paar Pins als SPI Schnittstelle zu konfigurieren (dazu muss man ein SPIN oder ASM Modul einbauen, irgendwie) [Mittwoch, 18. Juli 2012] [21:14:13] SAchen wie parser.add_argument("--directive", "-d", action="store", [Mittwoch, 18. Juli 2012] [21:14:15] default="all", [Mittwoch, 18. Juli 2012] [21:14:17] help="Local directive configuration (where found)") Sind sicher trivial, aber immer noch einigermaßen gut lesbar. Aber wie packe ich da die Beschreibung der Umgebungsvariablen dazu? --> Doku lesen [Mittwoch, 18. Juli 2012] [21:15:53] Grundsätzlich das Script eher gut dokumentiert. [Mittwoch, 18. Juli 2012] [21:17:20] jedoch nicht die Trivialitäten, die aus der Sprache selbst kommen. Oder Standard-modulen. [Mittwoch, 18. Juli 2012] [21:17:32] Ich muß dann mal weg. Werd den Rest auf forth-ev.de lesen. Ciao! [Mittwoch, 18. Juli 2012] [21:17:39] Ciao! [Mittwoch, 18. Juli 2012] [21:17:41] ciao [Mittwoch, 18. Juli 2012] [21:17:47] Verlassen erwaelde hat den Kanal verlassen (ERC Version 5.3 (IRC client for Emacs)). [Mittwoch, 18. Juli 2012] [21:19:06] Dann wünsch ich viel Spaß dabei [Mittwoch, 18. Juli 2012] [21:19:14] Ich bin dann auch weg [Mittwoch, 18. Juli 2012] [21:19:16] Ciao [Mittwoch, 18. Juli 2012] [21:19:17] Ciao! [Mittwoch, 18. Juli 2012] [21:19:24] Beenden MatthiasT hat den Server verlassen (""). [Mittwoch, 18. Juli 2012] [21:20:50] * BerndPaysan macht das Licht aus