*** Protokolldatei gestartet *** Datum: Mi. Mär 28 19:55:46 2012 [Mittwoch, 28. März 2012] [19:55:46] Betreten Sie haben den Kanal #forth-ev betreten (-bernd@p5DCD620B.dip0.t-ipconnect.de). [Mittwoch, 28. März 2012] [19:55:49] Modus Kanalmodi: [Mittwoch, 28. März 2012] [19:56:00] wird die geworfen, wird derzeit der Command Prompt aktiviert [Mittwoch, 28. März 2012] [19:56:03] Hallo Bernd [Mittwoch, 28. März 2012] [19:56:10] Hallo! [Mittwoch, 28. März 2012] [19:56:10] Hallo Bernd [Mittwoch, 28. März 2012] [19:56:12] Das ist für embedded Systems eher unpraktisch [Mittwoch, 28. März 2012] [19:56:36] ja, im ebedded bereich unschoen [Mittwoch, 28. März 2012] [19:56:44] wäre es nicht besser, gleich COLD aufzurufen. Dann würde der TURNKEY wieder aktiviert werden und alles würde weitermachen [Mittwoch, 28. März 2012] [19:57:18] ganz spontan wuerde ich denken, ein deferred word zu machen welches die 'exception' aktion ist [Mittwoch, 28. März 2012] [19:57:34] Das würde natürlich nur den ganz äußersten Catcher betreffen [Mittwoch, 28. März 2012] [19:57:42] Wenn jemand seinen eigenen hat, ok. [Mittwoch, 28. März 2012] [19:57:42] je, den [Mittwoch, 28. März 2012] [19:58:08] per default kann das dann QUIT sein, man kann das aber auch auf COLD oder eine eigene Fehlerbehandlung umbiegen [Mittwoch, 28. März 2012] [19:58:23] Bernd hat dazu sicher auch eine Meinung [Mittwoch, 28. März 2012] [19:58:35] Es geht um die Auswirkungen von einer Exception [Mittwoch, 28. März 2012] [19:58:40] wird die geworfen, wird derzeit der Command Prompt aktiviert [Mittwoch, 28. März 2012] [19:58:43] COLD hätte den Charme, das es alles wieder auf die Beine stellen kann. [Mittwoch, 28. März 2012] [19:59:05] ja, aber fest eingebaut ist das weniger flexibel [Mittwoch, 28. März 2012] [19:59:07] Die Stacks sind ohnehin nicht sehr interessant (in diesem fall einer unhandled exception) [Mittwoch, 28. März 2012] [19:59:14] Die Exception kommt woher? Aus der Turnkey-App? [Mittwoch, 28. März 2012] [19:59:32] als Programmierer wuerde ich mir fuer meine Anwendung wuenschen selbst entscheiden zu koennen [Mittwoch, 28. März 2012] [19:59:32] Die Anwendung kann jederzeit ihren eigenen catcher benutzen [Mittwoch, 28. März 2012] [19:59:57] Es geht nur um den system-default, wenn der Programmierer nicht dran gedacht hat [Mittwoch, 28. März 2012] [20:00:19] Dann würde ich in den Interpreter gehen, also QUIT machen, weil man dann Diagnosemöglichkeiten hat. [Mittwoch, 28. März 2012] [20:00:50] der Programmierer faengt nicht immer alle Exceptions [Mittwoch, 28. März 2012] [20:01:02] COLD würde die Turnkey-App neu starten, was die Gefahr birgt, dass man in einer Crash-Schleife bleibt. [Mittwoch, 28. März 2012] [20:01:38] Ein Commandprompt ist für den Benutzer das gleiche wie elektro-schrott. "tut nicht" [Mittwoch, 28. März 2012] [20:01:59] Er wird kaum ein Terminal dranhängen [Mittwoch, 28. März 2012] [20:02:24] Ja, aber im Normalfall muss die Turnkey-App ihren eigenen Catcher mitbringen, weil das System einfach nicht wissen kann, was sinnvoll ist. [Mittwoch, 28. März 2012] [20:02:30] Klar, turnkey hat die Gefahr der Endlosschleife [Mittwoch, 28. März 2012] [20:02:50] Deswegen habe ich ja geschrieben. "system-default, wenn der Programmierer nicht dran gedacht hat" [Mittwoch, 28. März 2012] [20:03:36] Kann man ganz open ein 'catch-all' einhaengen (ich habe in Forth noch nie mit Exceptions gearbeitet) [Mittwoch, 28. März 2012] [20:03:36] Man könnte auch die Fehlermeldung am Terminal ausgeben (wenn jemand eines dranhängt), und dann COLD machen. [Mittwoch, 28. März 2012] [20:03:47] nur in Java-Sprachen [Mittwoch, 28. März 2012] [20:03:53] In der Hoffnung, dass die Anwendung nur selten abstürzt, und nach einem Reset gut weiterläuft. [Mittwoch, 28. März 2012] [20:04:11] Forths CATCH fängt sowieso alles ab. [Mittwoch, 28. März 2012] [20:04:12] Reboot tut gut ;) [Mittwoch, 28. März 2012] [20:04:16] was genau gemacht wird sollte vom Programmierer bestimmbar sein, mit einem sinnvollen Default [Mittwoch, 28. März 2012] [20:05:01] Der Programmierer hat die absolute Kontrolle über die Exceptions, sofern er einen catcher benutzt. Da kommen alle Exceptions vorbei, egal, woher [Mittwoch, 28. März 2012] [20:05:15] Ist nicht so wie bei Java... [Mittwoch, 28. März 2012] [20:05:55] ah, ok [Mittwoch, 28. März 2012] [20:05:56] Nur wenn kein eigener Handler im Spiel, kommt der system-catcher im Interpreter (eigentlich in QUIT) ins Spiel [Mittwoch, 28. März 2012] [20:06:40] Und um dessen Verhalten geht eigentlich nur ... [Mittwoch, 28. März 2012] [20:06:52] dann wuerde ich ein rueckfall in die interaktive Kommandozeile lassen [Mittwoch, 28. März 2012] [20:06:56] als defaukt [Mittwoch, 28. März 2012] [20:07:08] das ist bei der Entwicklung, was ich erwarten wuerde [Mittwoch, 28. März 2012] [20:07:19] fuer die Produktion muss man dann selbst abfangen [Mittwoch, 28. März 2012] [20:07:20] Und ein Rezept für "wie baue ich eine embedded Applikation" [Mittwoch, 28. März 2012] [20:07:41] ja, so etwas [Mittwoch, 28. März 2012] [20:08:03] Und Entwicklern sollte man zutrauen können, dass sie lesen können .... ;) [Mittwoch, 28. März 2012] [20:09:17] lesen schon, kuemmern nicht so [Mittwoch, 28. März 2012] [20:09:39] ich habe einen ECR (engineering change request) zum amForth [Mittwoch, 28. März 2012] [20:10:11] es geht um case-sensitivitaet (bitte verbessert mich wenn ich falsch liege). [Mittwoch, 28. März 2012] [20:10:47] meines Wissens startet amForth per default case-sensitive, es sei denn man setzt einen Schalter beim kompilieren, korrekt? [Mittwoch, 28. März 2012] [20:11:17] Beim compilieren kann man einstellen, ob case sensitiv oder eben nicht gesucht wird. [Mittwoch, 28. März 2012] [20:11:32] Der default ist case sensitiv. [Mittwoch, 28. März 2012] [20:11:34] ja genau, was ist in den Quellen voreingestellt? [Mittwoch, 28. März 2012] [20:11:36] ok [Mittwoch, 28. März 2012] [20:12:34] .set WANT_IGNORECASE = 1 heisst die Zauberzeile, die man vor dem includieren von "amforth.asm" einbauen soltle [Mittwoch, 28. März 2012] [20:13:29] der Default steht in core/macros.asm (ok, nicht grade der ideale Platz, aber die Datei gabs halt schon) [Mittwoch, 28. März 2012] [20:15:03] Also, ich find case-in-sensitiv richtig Müll. Aber das hab ich ja schon woanders geschrieben. [Mittwoch, 28. März 2012] [20:16:45] Und jetzt der ECR? [Mittwoch, 28. März 2012] [20:16:51] Das ist halt historisch so gewachsen, weil in Forth zunächst alles in Großbuchstaben geschrieben wurde. [Mittwoch, 28. März 2012] [20:17:24] Der Forth-Standard (94 und auch wohl noch der aktuelle) sagt irgendwie aus das die standard woerter im Forth kern IN GROSSBUCHSTABEN zu suchen sind, was nicht schoen ist und vieleicht geaendert werden koennte, aber so steht es dort. Wenn ein Forth case-insensitive ist, ist das kein Problem, wenn die forth woerter des kerns in klein geschrieben sind (so macht es gForth). [Mittwoch, 28. März 2012] [20:17:30] ich schreibe und formuliere noch [Mittwoch, 28. März 2012] [20:18:40] Es ist ein leichtes, den Quellcode auf Großbuchstaben zu ändern [Mittwoch, 28. März 2012] [20:18:46] der ECR waere den default auf case-in-sensitive zu setzen (auch wenn es der Erich und auch ich nicht so moegen), aber um amForth fuer Anfenger 'predictable' zu machen [Mittwoch, 28. März 2012] [20:19:34] Anfaenger wollen/koennen aber nicht unbedingt gleich einen neuen Kern assemblieren, sondern bekommen einen fertigen, und erwarten das sich Forth so verhaelt wie Forth [Mittwoch, 28. März 2012] [20:19:42] Oder steht im ANS auch drin, dass die CORE worte auch als Kleinbuchstaben gefunden werden können sollen?? [Mittwoch, 28. März 2012] [20:19:46] aber vielleicht ist das schon zu detailliert und [Mittwoch, 28. März 2012] [20:19:52] klein-klein [Mittwoch, 28. März 2012] [20:20:11] Nein, in ANS steht alles in Großbuchstaben. [Mittwoch, 28. März 2012] [20:20:27] Ergo ist ein lowercase if kein IF? [Mittwoch, 28. März 2012] [20:20:40] @Bernd: wie war die entscheidung bei gforth? [Mittwoch, 28. März 2012] [20:20:52] gforth scheint alles im core klein zu haben [Mittwoch, 28. März 2012] [20:21:17] (korrigiere) nicht alles, aber das meiste [Mittwoch, 28. März 2012] [20:21:24] Case insensitive, das meiste klein geschrieben. [Mittwoch, 28. März 2012] [20:21:42] gab es dazu eine Entscheidung oder ist das einfach so geschehen? [Mittwoch, 28. März 2012] [20:21:47] Ein Lowercase if kann eines sein, muss aber nicht. Ein uppercase IF muss. [Mittwoch, 28. März 2012] [20:21:56] Schreib doch einfach die obige Zeile mit dem WANT in das Applikationsfile und generier damit das Hexfile. [Mittwoch, 28. März 2012] [20:22:08] Dazu gab es eine bewusste Entscheidung, weil wir NICHT DAUERND SCHREIEN WOLLTEN. [Mittwoch, 28. März 2012] [20:22:33] Dann klappen Großbuchstaben (soweit ich das selten genug teste) und keiner wird mehr überrascht [Mittwoch, 28. März 2012] [20:23:02] De facto hat sich case-insensitiv durchgesetzt. [Mittwoch, 28. März 2012] [20:23:07] Eben aus diesem Grund. [Mittwoch, 28. März 2012] [20:23:11] @Matthias: es geht nicht um mich, es geht um Anfaenger die in unseren Kursen sind und dann zu hause eine neue Version von amForth flashen, und dann läuft es anders als in gforth und in der Schulung [Mittwoch, 28. März 2012] [20:23:34] Das Du damit zurecht kommst, hab ich auch nie bezweifelt [Mittwoch, 28. März 2012] [20:24:33] vielleicht sollte ich warten ob das wirklich zu problemen fuehrt, nur das wir das nicht mitbekommen wenn ein Anfaenger die FLinte ins Korn wirft im heimischen kaemmerlein [Mittwoch, 28. März 2012] [20:24:33] Würde es reichen, dass in die Template-Applikation (und arduino) aufzunehmen? [Mittwoch, 28. März 2012] [20:24:50] wuerde mir reichen [Mittwoch, 28. März 2012] [20:24:55] @Bernd: wenn das case-in-sensitiv ist, dann findet das Forth doch if oder IF immer das erste, oder nich? [Mittwoch, 28. März 2012] [20:25:04] Damit kann ich gut leben [Mittwoch, 28. März 2012] [20:25:45] Das zuletzt definierte if oder IF oder iF oder If. [Mittwoch, 28. März 2012] [20:26:34] Eben. Wenn das zuletzt definierte [iI][fF] kein IF ist, dann ist das halt Pech, oder gewollt. [Mittwoch, 28. März 2012] [20:27:05] Halb-Profis wie Erich und ich finden den Weg, wie wir das so einstellen wie wir das moechten, aber der Anfänger findet es so vor wie 'erwartet' [Mittwoch, 28. März 2012] [20:27:54] also wie das auch bei anderen Forth systemen laeuft [Mittwoch, 28. März 2012] [20:28:17] @Bernd: weisst Du wie es in SwiftForth ud VFX ist? [Mittwoch, 28. März 2012] [20:28:36] Na, das ist doch eher umgekehrt: Anfänger wird von amforth angefixxt und wundert sich, warum in anderes-Forth x und X das gleiche tun. [Mittwoch, 28. März 2012] [20:29:00] Alles gleich, case insensitiv. [Mittwoch, 28. März 2012] [20:29:03] oder so [Mittwoch, 28. März 2012] [20:29:22] Nach dem dritten Forth wundert man sich doch nicht mehr. Eigentlich ist da ziemlich viel verschieden --- siehe auch die Diskussion, wie die Pin Worte auf dem MSP heißen sollen. [Mittwoch, 28. März 2012] [20:29:27] Revision 1191 hat die Anpassungen. [Mittwoch, 28. März 2012] [20:29:41] muchas gracias [Mittwoch, 28. März 2012] [20:30:15] also ein ".set WANT_IGNORECASE = 1" an passender Stelle [Mittwoch, 28. März 2012] [20:30:29] Ich hatte bei VolksForth am Anfang etwas Frust, weil ich dachte, man müsste alles GROSS eingeben, und deshalb die Caps-Lock-Taste eingerastet war. Da lief dann der Editor nicht. [Mittwoch, 28. März 2012] [20:31:07] Weil man es nicht groß eingeben muss, und natürlich niemand die Caps-Lock-Taste nutzt - außer Anfängern ;-). [Mittwoch, 28. März 2012] [20:31:24] :) [Mittwoch, 28. März 2012] [20:32:33] ich habe in der Zeit 1985-1999 Forth auch 3-4 mal angefangen und wieder weg-gelegt, weil die Buecher die ich in der Buecherei fand nicht zu den Forth passten, welches ich auf dem Rechner hatte. Das kann sehr fristrierend sein [Mittwoch, 28. März 2012] [20:32:41] frustrierend [Mittwoch, 28. März 2012] [20:33:14] erst 1999 hatte ich genug Zeit und Wissen, um mich durchzubeissen (und mein eigenes Forth zu implementieren) [Mittwoch, 28. März 2012] [20:33:25] aber so weit muss es ja nicht kommen :) [Mittwoch, 28. März 2012] [20:33:48] Ne, wir wollen schließlich keine Konkurrenz ;) [Mittwoch, 28. März 2012] [20:34:21] Erich hat recht, das Forth Systeme alle irgendwie verschieden sind, bei Hardware-Differenzen ist das ja auch verstaendlich [Mittwoch, 28. März 2012] [20:35:00] Ja, aber man muss es ja nicht übertreiben. [Mittwoch, 28. März 2012] [20:35:14] Carsten: beim msp430, gibt's da auch den Unterschied zwischen (AVR-Sprache) PORTx und PINx? [Mittwoch, 28. März 2012] [20:35:21] Man sollte es schaffen, dass man ein simplen Ausgabe-Pin trotzdem übergreifend defineren kann [Mittwoch, 28. März 2012] [20:35:41] Man kann Anfaengern auch sagen RTFM, wenn es denn ein gutes Manual gibt (amForth hat gute Dokumentation), aber halt keine eigenen Einführungsbücher [Mittwoch, 28. März 2012] [20:36:00] die (paar) Bücher die es gibt sollten also am besten mit jedem Forth funktionieren [Mittwoch, 28. März 2012] [20:36:04] Dafür hat Erich die geniale Idee mit dem Kochbuch gehabt [Mittwoch, 28. März 2012] [20:36:20] Kleine Aufgaben, kleine Lösungen [Mittwoch, 28. März 2012] [20:36:43] Die Idee ist ganz klar aus dem Perl-cookbook geklaut :-))) [Mittwoch, 28. März 2012] [20:36:48] Kochbuch ist gut, aber wir sind zu wenig Forthler als das wir solche Kochbuecher fuer jeden Forth anpassen konnen [Mittwoch, 28. März 2012] [20:37:12] es waere halt schoen, wenn die vorhandene Information weiterverwendet werden kann [Mittwoch, 28. März 2012] [20:37:13] Bingo. Deswegen ja auch die Idee, das gleichartig zu machen [Mittwoch, 28. März 2012] [20:37:58] Einen Pin auf Ausgabe zu schalten ist schon eine Standardaufgabe [Mittwoch, 28. März 2012] [20:38:12] @Erich: ich kenne mich Hardwareseitig beim MSP430 nicht genug aus, ich sehe nur das 4e4th es anders macht als amForth, und das finde ich nicht so toll [Mittwoch, 28. März 2012] [20:38:34] Das kann man schon gleichartig verpacken. Intern wird das ziemlich sicher immer anders laufen, aber für den Nutzer wird es transparent [Mittwoch, 28. März 2012] [20:39:12] fuer mich muss soetwas (einen PIN schalten) auch nicht in den Forth-Kern, es reicht wenn es einen Quellcode gibt der die Funktionalitaet nachlaed und es so macht wie ich das schon kenne [Mittwoch, 28. März 2012] [20:39:26] ACK [Mittwoch, 28. März 2012] [20:39:40] Wenn man ein lib/bitnames.frt auch für den msp schreibt, dann ist doch alles gut. Aber dazu wollte sich halt noch keiner durchringen. [Mittwoch, 28. März 2012] [20:39:43] Das ist aber eine Hardware-nahe Library, die eine Standard-API bereitstellt [Mittwoch, 28. März 2012] [20:40:04] d.h. wenn ich vom amForth komme, dann es so machen wie bei amForth, wenn jemand vom MSP430 zum amFOrth kommt, moechte der die Programme moeglichst weiterbenutzen koennen [Mittwoch, 28. März 2012] [20:40:22] wär das nicht toll [Mittwoch, 28. März 2012] [20:40:24] ? [Mittwoch, 28. März 2012] [20:41:27] ich weiß nicht. msp ist msp und avr ist anders. und pic ist noch anders, und r8c erst ... da wird man doch nie fertig. [Mittwoch, 28. März 2012] [20:41:27] ja, das waere toll, und ich bin auch bereit, bitnames.frt auf dem MSP430 zu portieren [Mittwoch, 28. März 2012] [20:42:04] Wer Forth kann, der nimmt die Konzepte und die höheren Konstrukte mit. Aber unten, an den Registern und Pins ist im Zweifelsfall immer alles anders. [Mittwoch, 28. März 2012] [20:42:21] grundlegende Sachen die es auf jeder MCU gibt kann man aber gleich machen [Mittwoch, 28. März 2012] [20:42:51] man _muss_ es nicht gleich machen, aber man kann [Mittwoch, 28. März 2012] [20:42:58] Ein Soft-I2C, der ohne Anpassungen überall läuft, wäre doch hübsch. [Mittwoch, 28. März 2012] [20:43:21] Einfach eine HAL Lib laden (braucht man eh) und der rest passt dann. [Mittwoch, 28. März 2012] [20:43:52] Oder ein 1-wire Modul [Mittwoch, 28. März 2012] [20:44:01] das mit den bitnames, das ist eine Funktion die nachgeladen werden kann, anders als case-sensitivitaet, das steckt so tief im kern, das kann man nicht 'nachaladen' [Mittwoch, 28. März 2012] [20:44:04] Da ist es wieder das Wort: "einfach". Fehlt nur noch "gschwind". [Mittwoch, 28. März 2012] [20:44:32] ;) [Mittwoch, 28. März 2012] [20:44:41] alles was man nachladen kann ist flexibel [Mittwoch, 28. März 2012] [20:44:57] Ich bastele seit 6 Jahren an amforth. Gschwind ist was anderes ;) [Mittwoch, 28. März 2012] [20:45:14] Forth CORE ist erst jetzt erreicht [Mittwoch, 28. März 2012] [20:46:23] jetzt hole ich mir Schlaege ab: ich habe eine String-Bibliothek fuer amForth (und spaeter MSP430) angefangen http://forth-ev.de/wiki/doku.php/projects:avr:strings [Mittwoch, 28. März 2012] [20:47:39] : 2+ 1+ 1+ ; ist kürzer ;) [Mittwoch, 28. März 2012] [20:47:54] Grund ist die Anfrage eines Benutzer nach einer String-Bibliothek. Ist noch nicht fertig, hat noch Fehler, wird sind aber hoffendlich entwickeln [Mittwoch, 28. März 2012] [20:48:12] Kuerzer oder schneller? [Mittwoch, 28. März 2012] [20:48:13] und counted strings sind in der Tat gestorben [Mittwoch, 28. März 2012] [20:48:23] beides [Mittwoch, 28. März 2012] [20:48:31] ok, wird geaendert [Mittwoch, 28. März 2012] [20:48:41] aber nur marginal (1 Flashzelle und vermutlich nur wenige CPU Zyklen) [Mittwoch, 28. März 2012] [20:49:20] geaendert [Mittwoch, 28. März 2012] [20:49:22] danke [Mittwoch, 28. März 2012] [20:50:02] , neu zu definieren ist nicht wirklich nebenwirkungsfrei [Mittwoch, 28. März 2012] [20:50:09] die Strings sind bei mir immer noch 'counted', aber halt nicht auf dem Stack [Mittwoch, 28. März 2012] [20:50:41] Ähm, das orschenool comma , speichert ins flash, oddrrr? [Mittwoch, 28. März 2012] [20:51:02] Und count wird auch neudefiniert... [Mittwoch, 28. März 2012] [20:51:05] , soll IIRC mit dem Dictionary zusammenarbeiten [Mittwoch, 28. März 2012] [20:51:18] Und das ist nunmal im Flash [Mittwoch, 28. März 2012] [20:51:18] upps, gibt es ',' etwa schon, hatte ich im Doctionary nicht gefunden [Mittwoch, 28. März 2012] [20:52:01] wie sollte ein ',' genannt werden, welches ins RAM schreibt? [Mittwoch, 28. März 2012] [20:52:02] Auch habe ich meine Zweifel, dass deine Stringbibliothek einen Reset überlebt. [Mittwoch, 28. März 2012] [20:52:10] tut sie nicht [Mittwoch, 28. März 2012] [20:52:17] alles nur im RAM [Mittwoch, 28. März 2012] [20:52:17] Da bin ich seit Erich ein gebranntes Kind [Mittwoch, 28. März 2012] [20:52:31] by design [Mittwoch, 28. März 2012] [20:52:39] , hat beim RAM nichts verloren. IMHO [Mittwoch, 28. März 2012] [20:52:56] beim forth200x gibts buffer: als neues Wort [Mittwoch, 28. März 2012] [20:53:09] Sowas sind Deine Strings doch im Kern auch, oder? [Mittwoch, 28. März 2012] [20:53:38] wie das Kind heisst ist mir relativ egal, was ich brauche ist ein Wort welches in die naechste freien RAM-Zelle schreibt [Mittwoch, 28. März 2012] [20:54:01] buffer: muss ich mir anschauen [Mittwoch, 28. März 2012] [20:54:17] Dein String ist ein buffer: aus dem obigen Standard-tobe [Mittwoch, 28. März 2012] [20:54:36] Ansonsten würde ich mich an die string.fs-Library im Gforth halten. [Mittwoch, 28. März 2012] [20:54:39] also das mit dem Platz allozieren und dessen Adresse bereithalten [Mittwoch, 28. März 2012] [20:55:04] 20 buffer: a$ wäre vermutlich passend [Mittwoch, 28. März 2012] [20:55:07] imho braucht's zweierlei strings: welche, die im flash wohnen und nach dem Neustart wieder da sind, und die im RAM, die nur zur Laufzeit gültig sind. [Mittwoch, 28. März 2012] [20:55:12] Die braucht zwar in Gforth dynamischen Speicher, aber das kann man ja im Embedded-System anders implementieren. [Mittwoch, 28. März 2012] [20:55:47] strings im flash gehen mit S" ...." doch schon, oder? [Mittwoch, 28. März 2012] [20:55:51] Die Strings in solchen String-Vars werden manipuliert, und gehören deshalb ins RAM. [Mittwoch, 28. März 2012] [20:56:05] s! ist mir vage als PLACE irgendwie schon mal untergekommen [Mittwoch, 28. März 2012] [20:56:55] Strings im flash sind ... Strings im Flash. s" ist da ambivalent. Interaktiv sind es Teile des TIB, als Colon-Worte Flash-Adressen [Mittwoch, 28. März 2012] [20:56:58] meine Idee ist das String-Literale im Flash liegen, bei Start der Applikation aber von Flash in das RAM uebernommen werden und dort weiterverarbeitet werden [Mittwoch, 28. März 2012] [20:57:39] Ich habe noch die Idee, dass die sliteral die Strings generell zuerst in den RAM kopiert und dann die RAM Adresse zurückgibt [Mittwoch, 28. März 2012] [20:57:56] Problem dabei ist nur, wohin in den RAM? [Mittwoch, 28. März 2012] [20:58:20] HERE wäre passend (PAD ein no-go) [Mittwoch, 28. März 2012] [20:58:29] Dagegen spricht ja nixx. Ich habe noch so die Idee, daß meine Sensoren eine "Beschreibung" haben, die soll natürlich im flash liegen, damit der Daten-Einsammler danach fragen kann. [Mittwoch, 28. März 2012] [20:58:30] meine Loesung waere das der Programmierer die Speicherverwaltung selbst lösen muss, und daher den Zielspeicher explizit angibt [Mittwoch, 28. März 2012] [21:00:46] S" erlaubt ja schon Strings im flash, per S! oder PLACE kann man die in das RAM ueberfuehren [Mittwoch, 28. März 2012] [21:00:46] Dann wäre eine USER Variable für den String-Buffer angemessen? [Mittwoch, 28. März 2012] [21:01:19] Dann könnte man den Sachverhalt, das die Strings eigentlich im flash sitzen, komplett ignorieren. [Mittwoch, 28. März 2012] [21:01:36] Bearbeiten kann man sie dann trotzdem nicht (also etwas einfügen oder so). [Mittwoch, 28. März 2012] [21:01:41] Das Kopieren dürfte auch nicht allzu teuer sein [Mittwoch, 28. März 2012] [21:02:17] so eine USER Variable referenziert _einen_ String-Buffer, ich brauche aber immer mehrere [Mittwoch, 28. März 2012] [21:02:30] Die RAM Kopie kann er schon bearbeiten. Nur darf er nicht erwarten, dass das auch alles gespeichert wird [Mittwoch, 28. März 2012] [21:03:39] Der string-buffer ist nur für temporäre Strings. Der wird sofort überschrieben [Mittwoch, 28. März 2012] [21:03:59] ich mag so 'unsichtbare' automatische Speicher-Verwaltung nicht so gerne (hidden-knowledge), lieber ist es mir der Programmierer gibt die Zielspeicherstelle bei jedem Wort extra an. Das ist zwar mehr Schreibarbeit )oder mehr Daten auf dem Stack, aber klarer in Quelltext lesbar [Mittwoch, 28. März 2012] [21:04:20] ergo sowas wie" s" huhu" move-away s" haha" " ist schon angeraten [Mittwoch, 28. März 2012] [21:04:50] Ja, aber gerade bei Strings sollte man nicht den Design-Fehler von C wiederholen. [Mittwoch, 28. März 2012] [21:05:08] Und die vorher festgelegte Puffergröße ist der mit Abstand größte Design-Fehler von C. [Mittwoch, 28. März 2012] [21:05:10] ja, das habe ich ja mit s" Sensorname" a$ s! (schiebt den Text "Sensorname" in die String-Variable a$) [Mittwoch, 28. März 2012] [21:05:55] Klar ist dynamische Speicherverwaltung auf einem Controller mit vielleicht 1k RAM Overkill. [Mittwoch, 28. März 2012] [21:06:38] ja, genau. dynamische Speicherverwaltung und Grabage Collection ist fuer groessere Systeme nett [Mittwoch, 28. März 2012] [21:07:24] Wobei das für Strings eigentlich so trivial ist, dass man es auch im Controller machen kann. [Mittwoch, 28. März 2012] [21:07:52] kennst Du Code wo ich mir das anschauen kann? [Mittwoch, 28. März 2012] [21:07:56] Leutz mir fallen gleich die Augen zu. Ich hau ab. [Mittwoch, 28. März 2012] [21:08:00] send patch [Mittwoch, 28. März 2012] [21:08:06] Ciao Erich [Mittwoch, 28. März 2012] [21:08:09] Ciao, wohl Sommerzeitgeschädigt ;-) [Mittwoch, 28. März 2012] [21:08:15] Ciao und gute Nacht [Mittwoch, 28. März 2012] [21:08:37] Ich kenn' keinen Code, aber ich kann ja mal was schreiben. [Mittwoch, 28. März 2012] [21:08:48] Speichermanagement ist auch so ein Teil, vor dem ich mich bislang erfolgreich gedrückt hab ;) [Mittwoch, 28. März 2012] [21:08:58] Verlassen erwaelde hat den Kanal verlassen (bye.). [Mittwoch, 28. März 2012] [21:09:03] In den meisten Fällen braucht man nämlich nur eine Operation: An einen String etwas anhängen oder einfügen. [Mittwoch, 28. März 2012] [21:09:06] Wenn es kurz und nicht viel Arbeit ist, ich würde mich dafür interessieren [Mittwoch, 28. März 2012] [21:09:25] Alle Strings sind in einem gemeinsamen Puffer, der zu bearbeitende ist immer hinten. [Mittwoch, 28. März 2012] [21:09:32] Dann ist das Anhängen nämlich trivial. [Mittwoch, 28. März 2012] [21:09:49] Wenn man einen anderen String zum Bearbeiten wählt, rutscht der erst mal nach hinten, und alle anderen eins nach vorn. [Mittwoch, 28. März 2012] [21:10:08] Wr hat die Übersicht, welcher String grad wo ist? [Mittwoch, 28. März 2012] [21:10:28] Jeder String im Puffer hat einen Backlink auf die benannte Variable, die auf den String zeigt. [Mittwoch, 28. März 2012] [21:10:49] Dann weiß man beim Herumrücken Bescheid. [Mittwoch, 28. März 2012] [21:10:52] addr/len ist da aber erst mal nicht im Spiel, oder? [Mittwoch, 28. März 2012] [21:11:11] Die Strings im Speicher müssen self-contained sein, also auch die Länge enthalten. [Mittwoch, 28. März 2012] [21:11:12] d.h. man muss immer über die Variable gehen [Mittwoch, 28. März 2012] [21:11:16] Ja. [Mittwoch, 28. März 2012] [21:11:29] dieser Puffer ist aber dynamisch, oder? D.h der Programmierer muss dem Puffer grenzen setzen koennen, für andere Daten im RAM [Mittwoch, 28. März 2012] [21:11:37] dann kann ich das nachvollziehen [Mittwoch, 28. März 2012] [21:11:54] Ja, der Programmierer muss sagen "für den String-Speicher zwacke ich von meinem 1k 300 Bytes ab" oder so. [Mittwoch, 28. März 2012] [21:12:11] das hoert sich spannend an [Mittwoch, 28. März 2012] [21:12:28] und dann noch 512 bytes für die SD Card Buffers, und schwupps.. Ist der RAM übervoll [Mittwoch, 28. März 2012] [21:12:37] Controller sind was feines ;) [Mittwoch, 28. März 2012] [21:13:20] wenn ich SD cards buffers habe, dann kann ich den String-Puffer auf die SD-Card auslagern :) [Mittwoch, 28. März 2012] [21:13:30] YMMD [Mittwoch, 28. März 2012] [21:14:05] Blocks -- juchuuu [Mittwoch, 28. März 2012] [21:14:28] bei FAT gibt es doch bestimmt unbenutzte Sektoren die man dort benutzen kann :) [Mittwoch, 28. März 2012] [21:14:33] Gibts eigentlich dieses Jahr auch die Folien von der Tagung? [Mittwoch, 28. März 2012] [21:14:51] Sollte es geben, die Veranstalter haben die eingesammelt. [Mittwoch, 28. März 2012] [21:15:06] Du kannst bei FAT ja auch einfach erst mal eine Datei namens STRINGS anlegen. [Mittwoch, 28. März 2012] [21:15:10] Jau, mit den Filmen, haengt bei mir, Folien kann ich morgen schon mal auf die Webseite bringen [Mittwoch, 28. März 2012] [21:15:11] Ich fand die eigentlich immer sehr inspirerend [Mittwoch, 28. März 2012] [21:15:35] Filme dauert noch bis mitte April [Mittwoch, 28. März 2012] [21:15:48] ja, es waren nette Themen dabei [Mittwoch, 28. März 2012] [21:15:51] Filme sind nett, aber folien kann man auch so lesen ;) [Mittwoch, 28. März 2012] [21:16:21] bei manchen ja, bei anderen beinhalten die Worte des Vortragenden noch extra Informationen [Mittwoch, 28. März 2012] [21:16:45] aber ich bringe die Folien morgen auf die Seite [Mittwoch, 28. März 2012] [21:16:46] das ist der Fluch des nicht-dabei-seins. [Mittwoch, 28. März 2012] [21:16:51] danke :=) [Mittwoch, 28. März 2012] [21:18:07] Aber zurück zu den Strings: Ein kombiniertes String/Block Buffer Management wäre doch nützlich, oder? [Mittwoch, 28. März 2012] [21:18:54] Ja, wenn man dann auf dem Controller besagten String-Buffer auslagern kann, wenn man ihn gerade nicht braucht. [Mittwoch, 28. März 2012] [21:18:58] Nur das ein(ige) buffer bei dirty halt nicht auf die Platte zurückgeschrieben werden können [Mittwoch, 28. März 2012] [21:19:19] oder die STRINGS Datei... [Mittwoch, 28. März 2012] [21:19:22] ja [Mittwoch, 28. März 2012] [21:20:01] ich versuche mal, Bernds Idee mit dem String-Buffer zu implementieren, ich denke ich habe es verstanden [Mittwoch, 28. März 2012] [21:20:21] das mit dem Buffer management kann man dann noch darauf setzen [Mittwoch, 28. März 2012] [21:20:31] Keine Frage, ja [Mittwoch, 28. März 2012] [21:20:37] (optional), bei gleichen woertern [Mittwoch, 28. März 2012] [21:21:03] SD Karten sind bei COntrollern wohl immer SPI Geräte [Mittwoch, 28. März 2012] [21:21:21] Also nicht so ganz trivial [Mittwoch, 28. März 2012] [21:21:46] Na, mal sehen. Die String-Bibliothek fängt aber gut an :) [Mittwoch, 28. März 2012] [21:21:53] nochmal zum Namen des Wortes, welches wie ',' aber ins RAM schreibt: 'r,', 'ram,' oder kennt Ihr schon eine Wortschöpfung aus andern Systemen? [Mittwoch, 28. März 2012] [21:22:29] ,r in Analogie zu @e (fetch-eeprom) [Mittwoch, 28. März 2012] [21:22:39] Ich würde die Wörter aus der Gforth-string.fs-Library nehmen. Dann kann man am Gforth üben, und am Controller funktiniert das genauso. [Mittwoch, 28. März 2012] [21:22:52] wobei aber , für mich mit dem Dictionary verknüfpt ist. Also nix mit RAM [Mittwoch, 28. März 2012] [21:23:01] ja, ich schau mit die string library im >GForth an [Mittwoch, 28. März 2012] [21:23:23] Sonst hat man wieder die Situation, dass es auf jedem Forth anders ist :-) [Mittwoch, 28. März 2012] [21:23:36] was zu verhindern ist :-) [Mittwoch, 28. März 2012] [21:23:46] da spricht der Weise aus dem Morgenland ;) [Mittwoch, 28. März 2012] [21:24:05] so, ich muss jetzt auch schluss machen. [Mittwoch, 28. März 2012] [21:24:10] ich auch [Mittwoch, 28. März 2012] [21:24:18] Bin kommenden Woche nicht dabei, dann aber wieder [Mittwoch, 28. März 2012] [21:24:20] Ciao. [Mittwoch, 28. März 2012] [21:24:23] Schoenen abend! [Mittwoch, 28. März 2012] [21:24:25] Ciao [Mittwoch, 28. März 2012] [21:24:29] * BerndPaysan macht das Licht aus [Mittwoch, 28. März 2012] [21:24:33] Beenden MatthiasT hat den Server verlassen (""). [Mittwoch, 28. März 2012] [21:24:36] Verlassen volksForth hat den Kanal verlassen (bye).