*** Protokolldatei gestartet *** Datum: Mi. Okt 26 19:59:00 2011 [Mittwoch, 26. Oktober 2011] [19:59:00] Betreten Sie haben den Kanal #forth-ev betreten (-bernd@p5DCD67E3.dip0.t-ipconnect.de). [Mittwoch, 26. Oktober 2011] [19:59:03] Modus Kanalmodi: [Mittwoch, 26. Oktober 2011] [19:59:36] Hallo! [Mittwoch, 26. Oktober 2011] [20:00:09] Au, s'zuckt. Tag die Herren! [Mittwoch, 26. Oktober 2011] [20:00:32] Matthias: ich sitz schon am faktorisieren :-) [Mittwoch, 26. Oktober 2011] [20:00:36] Hallo Bernd [Mittwoch, 26. Oktober 2011] [20:00:43] Ach, ich dachte nur Zombies. [Mittwoch, 26. Oktober 2011] [20:01:09] @Erich: Ich denke mal ab kommender Woche hab ich auch wieder mehr Zeit fürs Hobby [Mittwoch, 26. Oktober 2011] [20:01:16] Zombie-Nacht kommt doch denNeXT, oddrrr? [Mittwoch, 26. Oktober 2011] [20:01:33] Dann kann ich auch wieder mehr machen als Dumme Sprüche (tm) abzusondern ;) [Mittwoch, 26. Oktober 2011] [20:01:47] Ja kein Thema, ist alles nur Hobby, wenn man Zeit hat. [Mittwoch, 26. Oktober 2011] [20:03:25] Ich habe beschlossen, dass task: zur Laufzeit gar nixx macht, nur die flash addresse auf dem stack lässt, so daß man mit >tid >sp0 >rp0 >size an die einzelnen Informationen dran kommt. Lauter kleine Einzeiler. [Mittwoch, 26. Oktober 2011] [20:04:15] (Bernd: Erich hat einen gravierenden Fehler im Multitasker gefunden und jetzt basteln wir (also eigentlich Erich) den grade um) [Mittwoch, 26. Oktober 2011] [20:04:46] Ich hab mal ein Wort namens OTHER gefunden, womit man den Zugriff auf die Uservariablen eines anderen Tasks machen konnte [Mittwoch, 26. Oktober 2011] [20:05:04] Ich muss mal schauen, ob ich das wiederfinde [Mittwoch, 26. Oktober 2011] [20:05:27] sozusagen 10 base other ! (IIRC) [Mittwoch, 26. Oktober 2011] [20:05:57] Betreten Mandalargon hat den Kanal betreten (~user@cable-86-56-84-213.cust.telecolumbus.net). [Mittwoch, 26. Oktober 2011] [20:06:00] Ja, da muss natürlich irgendwo noch der Zieltask angegeben werden. [Mittwoch, 26. Oktober 2011] [20:06:08] Ah, noch einer ;-), Hallo! [Mittwoch, 26. Oktober 2011] [20:06:13] Hallo Gido [Mittwoch, 26. Oktober 2011] [20:06:14] moin [Mittwoch, 26. Oktober 2011] [20:06:28] In bigForth gibt's USER', damit bekommt man den Offset, also etwa USER' BASE [Mittwoch, 26. Oktober 2011] [20:06:33] Hi Gido, Bernd: Natürlich. Mein Gedächtnis ist eben nicht mehr das beste ... [Mittwoch, 26. Oktober 2011] [20:06:42] Das kann man dann zu einem anderen Task dazuzählen. [Mittwoch, 26. Oktober 2011] [20:07:06] Aber mit up@ - + ! sollte es auch gehen. [Mittwoch, 26. Oktober 2011] [20:07:44] Ja klar, die Arithmetik ist einfach. Das mit dem OTHER hat das aber hübsch verpackt [Mittwoch, 26. Oktober 2011] [20:09:02] Sowas wäre eigentlich ein netter Einstieg in ein Multitasking Wordset [Mittwoch, 26. Oktober 2011] [20:09:47] sowas scheint es ja gar nicht zu geben... [Mittwoch, 26. Oktober 2011] [20:12:42] Naja, es gibt ja schon eine Menge gemeinsamer Wörter wie USER und PAUSE und so. [Mittwoch, 26. Oktober 2011] [20:16:56] Daneben braucht man noch ein Wort, um Tasks zu erzeugen und eins zum Aktivieren des Tasks. [Mittwoch, 26. Oktober 2011] [20:17:17] http://www.ultratechnology.com/p21fchp7.html und da 'S [Mittwoch, 26. Oktober 2011] [20:19:43] Wobei grade das ACTIVATE bei mir keine wirkliche Begeisterung auslöst. IMHO passender wäre es, wenn man ein XT nimmt und einem Task zuweist. Die Taskliste ist damit zunächst erst mal ein Container, der keinen eigenen Code hat [Mittwoch, 26. Oktober 2011] [20:20:11] Ist das XT zuende (warum auch immer) wird der Slot deaktiviert und die anderen Tasks machen weiter. [Mittwoch, 26. Oktober 2011] [20:20:33] (oder innerhalb des XT wird PAUSE aufgerufen) [Mittwoch, 26. Oktober 2011] [20:20:52] oder stop [Mittwoch, 26. Oktober 2011] [20:21:27] naja, was auch immer den aktuellen Task dazu bringt, mal nichts zu machen und andere dranzulassen. [Mittwoch, 26. Oktober 2011] [20:21:50] IMHO sollte man eigentlich xt und Task-Erzeugung miteinander verbinden. [Mittwoch, 26. Oktober 2011] [20:22:12] Das ist alles ein bisschen kleinteilig. [Mittwoch, 26. Oktober 2011] [20:22:29] warum? Ob ein Wort als paralleler Task oder im Vordergrund läuft ist doch erst mal die Entscheidung des Nutzers, oder? [Mittwoch, 26. Oktober 2011] [20:22:31] Oder halt nach dem Threadpool-Prinzip aufgebaut. [Mittwoch, 26. Oktober 2011] [20:22:48] Threadpool passt schon [Mittwoch, 26. Oktober 2011] [20:23:06] Threadpool sollte man vor dem Benutzer verstecken. [Mittwoch, 26. Oktober 2011] [20:23:22] Explizites Threadpool-Management durch den Benutzer ist nicht gut. [Mittwoch, 26. Oktober 2011] [20:23:55] Aber threadpool hinter meinem Rücken ist auch nixx. Die Reihenfolge hätt ich schon gern selbst entschieden. [Mittwoch, 26. Oktober 2011] [20:24:21] Naja, du willst ein Wort im Hintergrund ausführen, also sagt du irgendwas wie ' FOO BACKGROUND [Mittwoch, 26. Oktober 2011] [20:24:31] Und dann sollte es im Hintergrund vor sich hin werkeln. [Mittwoch, 26. Oktober 2011] [20:24:41] Bingo [Mittwoch, 26. Oktober 2011] [20:24:47] Wenn das an einen Threadpool gekoppelt ist, nimmt sich BACKGROUND den nächsten freien Thread aus dem Pool. [Mittwoch, 26. Oktober 2011] [20:24:58] Wenn ich das entscheiden darf, dann gerne. [Mittwoch, 26. Oktober 2011] [20:25:52] Ich meine, das sollte der Implementierer des Multitaskers entscheiden können. [Mittwoch, 26. Oktober 2011] [20:26:10] Betreten martin_53 hat den Kanal betreten (-martin@pD9FAC8D9.dip.t-dialin.net). [Mittwoch, 26. Oktober 2011] [20:26:11] Wenn's, wie beim R8C nur einen Background-Task gibt, dann kann BACKGROUND vielleicht meckern, wenn der schon in Benutzung ist. [Mittwoch, 26. Oktober 2011] [20:26:13] Hallo Martin! [Mittwoch, 26. Oktober 2011] [20:26:29] Grüß Euch alle, Meister der Kommandozeile! [Mittwoch, 26. Oktober 2011] [20:27:07] Hallo Martin! [Mittwoch, 26. Oktober 2011] [20:27:51] BACKGROUND als Userinterface für irgendeinen Multitasker ist mir (abgesehen vom Namen, ich würd wahrscheinlich & nehmen) sympatisch [Mittwoch, 26. Oktober 2011] [20:29:06] Ob dabei eine fixe Liste von Threadslots existiert oder die dynamisch verwaltet wird oder an ein OS weitergereicht wird, ist damit erst mal nebensächlich [Mittwoch, 26. Oktober 2011] [20:30:44] Hallo Martin [Mittwoch, 26. Oktober 2011] [20:34:17] Das, was man dann vom OS noch gerne hätte, sind asynchrone IO-Calls und Events. [Mittwoch, 26. Oktober 2011] [20:34:41] ( wofür könnte HAT als Bezeichner des Wortes, das Tasks erzeugt stehen? ) [Mittwoch, 26. Oktober 2011] [20:34:41] Dann kann man nämlich tatsächlich einfach nur so viele Threads aufmachen wie es CPUs gibt, und die dann von Forth aus richtig befüllen. [Mittwoch, 26. Oktober 2011] [20:35:38] A für Allocate und T für Task ist noch verständlich, aber H??? [Mittwoch, 26. Oktober 2011] [20:35:48] Solche Bezeichner sind einfach nix. [Mittwoch, 26. Oktober 2011] [20:37:39] Da man bei IO im wesentlichen wartet, dürfte eine Überbuchung der CPU(s) zulässig sein. [Mittwoch, 26. Oktober 2011] [20:38:40] Wobei das mit der IO ja auch nicht so einfach ist - es gibt da durchaus auch IOs, bei denen das Warten sowieso vom User nicht bemerkt wird. [Mittwoch, 26. Oktober 2011] [20:39:02] Schreiben auf die Festplatte z.B., das landet erst im Cache, und wird erst später wirklich geschrieben. [Mittwoch, 26. Oktober 2011] [20:39:39] Per se würde ich die Anzahl der möglichen threads auch nicht begrenzen. Dafür wird eine Execption a la "cannot fork" definiert und gut ist. [Mittwoch, 26. Oktober 2011] [20:39:55] Wenn man dagegen Netzwerk-Code macht, dann kann das mit viel Warterei verbunden sein. [Mittwoch, 26. Oktober 2011] [20:40:25] Und ein single task system macht halt einen dummy-BACKGROUND [Mittwoch, 26. Oktober 2011] [20:41:22] EXECUTE=BACKGROUND sollte legitim sein. [Mittwoch, 26. Oktober 2011] [20:41:44] ACK [Mittwoch, 26. Oktober 2011] [20:43:12] (Das IO Thema hab ich nicht übersehen, ich wollte aber erst mal mit den Threads weitermachen) [Mittwoch, 26. Oktober 2011] [20:43:20] Bernd: Ich hab Deine Artikel für die VD gelesen (vor 'ner Woche oder so). Im zweiten ist, glaube ich, ein Block Text vom ersten Artikel übrig geblieben, wenn ich das richtig überblick. [Mittwoch, 26. Oktober 2011] [20:45:20] Da habe ich einen Block verschoben, mal sehen, ob der im ersten noch drin ist... [Mittwoch, 26. Oktober 2011] [20:46:14] Im EuroForth-Artikel sollte eigentlich nur von Stephen Pelcs Vortrag berichtet werden, und der Rest, was nachher lief, gehört in den OOP-Text [Mittwoch, 26. Oktober 2011] [20:49:34] Dann isses wohl so rum. Jedenfalls kam mir der Text sehr bekannt vor. [Mittwoch, 26. Oktober 2011] [20:50:19] Ja, das passt so. Der Textblock ist eben in einen anderen Artikel gewandert. [Mittwoch, 26. Oktober 2011] [20:50:34] Reuse nennt man das, aber es war cut&paste-Reuse ;-) [Mittwoch, 26. Oktober 2011] [20:51:08] Der EuroForth-Artikel braucht noch mindestens ein Foto. [Mittwoch, 26. Oktober 2011] [20:51:42] Da braucht's noch viel. [Mittwoch, 26. Oktober 2011] [20:53:42] Fotos gibt's hier: https://plus.google.com/photos/114020517704693241828/albums/5654822948570957649 [Mittwoch, 26. Oktober 2011] [20:54:00] Leider haben die anderen EuroForth-Teilnehmer zwar Fotos gemacht, aber weder URLs noch Zips herumgeschickt. [Mittwoch, 26. Oktober 2011] [20:54:39] Ich muss auch das Foto von Ertlgasse und Antonshöhe noch in den Artikel einbauen, weil die ja erwähnt werden ;-). [Mittwoch, 26. Oktober 2011] [20:55:02] @Matthias: Sie haben ePost. [Mittwoch, 26. Oktober 2011] [21:00:47] >sp0 (und Co) ist IMHO missverständlich. [Mittwoch, 26. Oktober 2011] [21:00:50] Ach ja, die Fotos sind natürlich auch über Picasa zugänglich: https://picasaweb.google.com/bernd.paysan/EuroForth2011 [Mittwoch, 26. Oktober 2011] [21:01:45] Wie wäre es mit t:sp0 [Mittwoch, 26. Oktober 2011] [21:03:49] Hmmm. t>sp0 t->sp0 t.sp0 --- ohne das t vorne dran isses in der Tat woanders missverständlich. Im laufenden Programmtext sollt das zwar nur in der form '' my_task >tid task-activate '' etc. vorkommen, aber mann weiß ja nie. [Mittwoch, 26. Oktober 2011] [21:04:16] t->sp0 wär auch ok. Ich würd das verstehen ;) [Mittwoch, 26. Oktober 2011] [21:04:25] :-) [Mittwoch, 26. Oktober 2011] [21:05:43] und das mit dem & ist ja wohl auch entschieden, oder? [Mittwoch, 26. Oktober 2011] [21:05:55] Naja, & ist ein bisschen zu kurz. [Mittwoch, 26. Oktober 2011] [21:06:07] Das geht in einem shell-Script. [Mittwoch, 26. Oktober 2011] [21:06:24] Da muss man das ja auch dauernd machen. [Mittwoch, 26. Oktober 2011] [21:06:24] genauso [Mittwoch, 26. Oktober 2011] [21:06:35] fehlt nur noch ein waitpid [Mittwoch, 26. Oktober 2011] [21:07:06] dann wird forth an dieser Stelle fast schon POSIX kompatibel :=)) [Mittwoch, 26. Oktober 2011] [21:07:08] Frage: gab's da nicht auch'n wort um vom XT zum PFA zu kommen? [Mittwoch, 26. Oktober 2011] [21:07:25] >body ? [Mittwoch, 26. Oktober 2011] [21:07:57] XT und PFA sind unterschiedliche Forth-Generationen (IIRC) [Mittwoch, 26. Oktober 2011] [21:08:12] > ' t_demo >body u. [Mittwoch, 26. Oktober 2011] [21:08:12] >body ?? -13 14 [Mittwoch, 26. Oktober 2011] [21:08:12] [Mittwoch, 26. Oktober 2011] [21:08:31] Eigentlich isses ja nur +1, aber man weiß ja nie. [Mittwoch, 26. Oktober 2011] [21:08:32] : >body 1+ ; [Mittwoch, 26. Oktober 2011] [21:09:01] Zählt halt so viel dazu, wie im jeweiligen System für's Code-Feld gebraucht werden. [Mittwoch, 26. Oktober 2011] [21:09:03] Ich war sehr frei in der Benamsung der Label im Quelltext [Mittwoch, 26. Oktober 2011] [21:10:03] "eigentlich" müssten alle PFA_ Label BA_ heissen (Body Address) [Mittwoch, 26. Oktober 2011] [21:10:08] Also eigentlich heißt die Frage anders: ``task:'' speichert drei Variablen mit , im flash. [Mittwoch, 26. Oktober 2011] [21:10:28] Wenn ich nur die erste davon hab (tid) komm ich dann an die anderen dran? [Mittwoch, 26. Oktober 2011] [21:10:50] Eher nur über ' mytask +1 @i ... ' [Mittwoch, 26. Oktober 2011] [21:11:25] und dann steht da eben mytask wieder drin und das ganze ist von einem task zum anderen zu verdoppeln. [Mittwoch, 26. Oktober 2011] [21:11:26] task: legt drei RAM Adressen im Flash ab. [Mittwoch, 26. Oktober 2011] [21:11:35] Aber vielleicht hab ich ja noch 'n Denkfehler. [Mittwoch, 26. Oktober 2011] [21:12:02] Die erste ist der Start der USER Area, die anderen beiden die Stackstartadressen [Mittwoch, 26. Oktober 2011] [21:12:09] Schon klar. [Mittwoch, 26. Oktober 2011] [21:12:33] WObei die Task-ID selbst die Flashadresse ist, die die drei anderen Zahlen enthält [Mittwoch, 26. Oktober 2011] [21:13:01] Wenn ich will, daß task: zur Laufzeit die tid und nicht die flash Adresse auf den stack legt, dann komm ich an die drei Werte im flash nicht mehr dran. Oder? [Mittwoch, 26. Oktober 2011] [21:13:03] wobei das natürlich gnadenlos implemention details sind [Mittwoch, 26. Oktober 2011] [21:13:32] Nee, die task-id ist die RAM Adresse, wo der Block losgeht. here , [Mittwoch, 26. Oktober 2011] [21:13:56] das ist die Laufzeit-Info [Mittwoch, 26. Oktober 2011] [21:14:09] Ergo haben wir eigentlich zwei Task-ID [Mittwoch, 26. Oktober 2011] [21:14:42] eine im Flash und eine im RAM [Mittwoch, 26. Oktober 2011] [21:15:09] Ich hab mich wohl missverständlich ausgedrückt. [Mittwoch, 26. Oktober 2011] [21:15:24] flash lesen ist schnell, würde es was ausmachen, die RAM Adresse jedesmal zu neu einzulesen? [Mittwoch, 26. Oktober 2011] [21:15:58] So mach ich's ja jetzt: [Mittwoch, 26. Oktober 2011] [21:16:06] task: mytask [Mittwoch, 26. Oktober 2011] [21:16:13] später [Mittwoch, 26. Oktober 2011] [21:16:22] mytask >tid bla.... [Mittwoch, 26. Oktober 2011] [21:17:06] Ich häng nur an der Stelle fest, ob man : task: create ... does> @i ; oder ohne @i machen muss. [Mittwoch, 26. Oktober 2011] [21:17:29] Warum eigentlich nicht gleich die TID zurückgeben? [Mittwoch, 26. Oktober 2011] [21:17:35] wenn nun alsotaks und Freunde nicht die RAM Adresse nehmen sondern die Flashadresse, wo die Startadresse der USER Area des Tasks drinsteht, wär die Welt auch wieder in Ordnung [Mittwoch, 26. Oktober 2011] [21:17:39] Oder braucht man das, was mytask zurückgibt, auch in Rohform? [Mittwoch, 26. Oktober 2011] [21:18:20] Die Flashadresse mit den drei RAM Adressen könnte die bessere Wahl sein, da damit auch die Stackadressen ermittelbar sind [Mittwoch, 26. Oktober 2011] [21:18:57] Ah, jetzt ja. Die anderen Sachen ändern. Bernd: Wenn ich den Block von lauter Nullen aufbauen muß, z.B. nach einem Strom aus/an, dann muß ich an die anderen beiden Zahlen hin: die Adresse der stacks. [Mittwoch, 26. Oktober 2011] [21:18:57] @erich: ohne [Mittwoch, 26. Oktober 2011] [21:19:30] Ja schon, das gehört in die Datenstruktur, aber das muss nicht für den Benutzer sichtbar sein. [Mittwoch, 26. Oktober 2011] [21:19:41] Dann war's die Diskussion ja schon wert. :-) Danke. [Mittwoch, 26. Oktober 2011] [21:20:43] Der Benutzer sieht nur eine magische Zahl. Nur die Worte, die damit was anfangen sollen, können das auch dechiffrieren [Mittwoch, 26. Oktober 2011] [21:21:25] tid == Anfang des RAM Blocks kann man sich halt gleich vorstellen. Das andere ist halt eine Indirektion mehr. [Mittwoch, 26. Oktober 2011] [21:21:33] ja [Mittwoch, 26. Oktober 2011] [21:21:41] ist aber besser so. [Mittwoch, 26. Oktober 2011] [21:21:56] Na gut, dann ist die nächste Iteration ja auch schon fast vorgezeichnet :-) [Mittwoch, 26. Oktober 2011] [21:22:13] Ich freu mich schon drauf 8) [Mittwoch, 26. Oktober 2011] [21:22:43] Ein Task in Forth ist die User-Area. [Mittwoch, 26. Oktober 2011] [21:22:48] Da gibt's nix mit magischen Zahlen. [Mittwoch, 26. Oktober 2011] [21:22:51] (btw: die WIndows-Version von & ist start: start calc.exe funktioniert) [Mittwoch, 26. Oktober 2011] [21:23:11] Und die Stacks? [Mittwoch, 26. Oktober 2011] [21:23:30] Die User-Area enthält User-Variablen, mit denen man auf die Stacks zugreifen kann. [Mittwoch, 26. Oktober 2011] [21:23:33] Genau, und der zweite task hat 'ne zweite Userarea und separate stacks, oder nich? [Mittwoch, 26. Oktober 2011] [21:24:01] setzt voraus, das die USER Area korrekt initialisiert ist [Mittwoch, 26. Oktober 2011] [21:24:16] Beim Flash ist das sicher, beim RAM nicht so unbedingt [Mittwoch, 26. Oktober 2011] [21:24:21] Sogar nach 'nem Stromausfall :-) [Mittwoch, 26. Oktober 2011] [21:24:45] Das ist auch beim RAM sicher, wenn du beim Booten aus dem Flash das RAM richtig initialisierst. [Mittwoch, 26. Oktober 2011] [21:25:04] Also jedenfalls bin ich sehr froh, daß ich verstanden habe, daß das auf zwei von [Mittwoch, 26. Oktober 2011] [21:25:21] Da der RAM in dieser Hinsicht sparse ist, muss dass nicht sein. [Mittwoch, 26. Oktober 2011] [21:25:22] meinen Boards nur zufällig funktioniert, und auf den anderen eben nicht. [Mittwoch, 26. Oktober 2011] [21:25:49] Es gibt keine Kopie des RAM im Flash, das beim Start geladen wird. [Mittwoch, 26. Oktober 2011] [21:26:06] Ergo muss man die essentiellen RAM Adressen expliziert beschreiben [Mittwoch, 26. Oktober 2011] [21:26:24] Muss ja auch nicht sein. Du musst beim Start nur die Liste der bereits angelegten Tasks durchlaufen, und damit das RAM initialisieren. [Mittwoch, 26. Oktober 2011] [21:26:26] Und das wird grenzwertig zum Henne/Ei Problem [Mittwoch, 26. Oktober 2011] [21:27:20] IMHO sollte eine Task-ID den Zugang zur entsprechenden USER Area ermöglichen, sie muss es aber mitnichten selbst sein [Mittwoch, 26. Oktober 2011] [21:27:23] Bernd: stimmt. Und genau das hat bislang gefehlt. Der tasker hat die Info eben nicht im Flash aufbewahrt. [Mittwoch, 26. Oktober 2011] [21:27:50] (womi wir beim Thema Standard wieder wären ) [Mittwoch, 26. Oktober 2011] [21:28:46] Nein, die Task-ID ist die User-Area. Was du im Flash aufbewahrst und wie du damit das RAM nach dem Booten restaurierst, ist deine Sache. [Mittwoch, 26. Oktober 2011] [21:29:21] Nö [Mittwoch, 26. Oktober 2011] [21:29:34] Das ist aber auf einem Hostet-System gar nicht vorhanden. [Mittwoch, 26. Oktober 2011] [21:29:39] Also belaste den User nicht damit. [Mittwoch, 26. Oktober 2011] [21:29:56] Der User hat kein Problem damit [Mittwoch, 26. Oktober 2011] [21:30:15] Der hat eine Task-ID und kann daraus den Task manipulieren [Mittwoch, 26. Oktober 2011] [21:30:37] Wo die USER Area liegt, ist ermittelbar. Ebenso die Stacks [Mittwoch, 26. Oktober 2011] [21:31:05] Dass die USER Area auch als Task Control Block genuttz wird, ist implementation abhängig [Mittwoch, 26. Oktober 2011] [21:32:18] Der User muss bei dir überall >TID schreiben, was in den klassischen Systemen gar nicht da ist. [Mittwoch, 26. Oktober 2011] [21:32:22] Ups: Ich habe so interessiert mitgelesen (und versucht zu denken:) Ich muss jetzt weg. CU all! Lass aber weiterlaufen wg. LOg_Datei [Mittwoch, 26. Oktober 2011] [21:32:28] Ciao [Mittwoch, 26. Oktober 2011] [21:32:32] ciao Martin [Mittwoch, 26. Oktober 2011] [21:33:04] soll ich mal gemein sein: Klassische Systeme machen alles nach eigenem Ermessen ;) [Mittwoch, 26. Oktober 2011] [21:33:44] Ja klar, aber wenn es möglich ist, dein System so zu implementieren, dass es wie ein klassisches aussieht, ohne dass dir wirklich etwas fehlt, dann tu's. [Mittwoch, 26. Oktober 2011] [21:34:35] Du hast irgendwo die initiale Belegung einer User-Area im Flash, und die musst du beim Hochfahren halt in alle vorhandenen Tasks kopieren. [Mittwoch, 26. Oktober 2011] [21:35:01] Beenden martin_53 hat den Server verlassen ("Leaving."). [Mittwoch, 26. Oktober 2011] [21:35:21] Ganz ohne jeden Zweifel kann man das so machen. Das ist aber so etwa wie die Beobachtung dass ein character immer in 8 bit passt. [Mittwoch, 26. Oktober 2011] [21:36:41] Na, war jedenfalls ein ergiebiger Abend [Mittwoch, 26. Oktober 2011] [21:36:57] danke+ bis neulich [Mittwoch, 26. Oktober 2011] [21:37:05] Bernd. Klar kann man die inital user area überall reinkopieren. Aber das ist nicht die ganze Geschichte. [Mittwoch, 26. Oktober 2011] [21:37:13] Beenden MatthiasT hat den Server verlassen (""). [Mittwoch, 26. Oktober 2011] [21:37:25] Die Orte der verschiednen stacks sind definitiv nicht dabei. [Mittwoch, 26. Oktober 2011] [21:37:36] Doch, s0 und r0 sind in der User-Area. [Mittwoch, 26. Oktober 2011] [21:37:58] Die müssen natürlich angepasst werden, aber das ist Aufgabe des Codes, der durch die Task-Liste im Flash läuft. [Mittwoch, 26. Oktober 2011] [21:38:05] s0 und r0 sind nicht die gleichen für die einzelnen tasks, oder? [Mittwoch, 26. Oktober 2011] [21:38:10] Das soll *nicht* der Benutzer machen, das ist viel zu fehleranfällig. [Mittwoch, 26. Oktober 2011] [21:38:34] Das macht auch der user nicht direkt. Der schreibt: [Mittwoch, 26. Oktober 2011] [21:38:49] task: t_demo [Mittwoch, 26. Oktober 2011] [21:38:54] Im Flash steht pro Task dann User-Adresse, S0, R0, nächster Task. [Mittwoch, 26. Oktober 2011] [21:39:19] Ja, und t_demo legt die Struktur im Flash an, und gibt beim Aufruf die User-Adresse zurück. [Mittwoch, 26. Oktober 2011] [21:40:16] : Dann muß ich die tasks aber auch noch in einer separaten liste verwalten, wie's scheint. [Mittwoch, 26. Oktober 2011] [21:40:35] Sowieso, weil es ja auch ein Wort TASKS gibt, das die alle auflistet. [Mittwoch, 26. Oktober 2011] [21:41:20] Nö. Es gibt tlist, das nur die mit alsotask eingehängten auflistet. Ich kann aber mehr haben. [Mittwoch, 26. Oktober 2011] [21:42:07] Ihr macht da zu viel explizit. [Mittwoch, 26. Oktober 2011] [21:42:19] Kann sein. ABER: [Mittwoch, 26. Oktober 2011] [21:42:25] Die angelegten Tasks gibt's, wenn sie nichts zu tun haben, schlafen sie halt. [Mittwoch, 26. Oktober 2011] [21:42:43] War es nicht immer die Aussage von Forth: das kann man alles verstehen? [Mittwoch, 26. Oktober 2011] [21:42:59] Ja, kann man ja auch alles verstehen, wenn man's nicht künstlich umständlich macht. [Mittwoch, 26. Oktober 2011] [21:43:38] Wenn Du mich fragst, als Anfänger, dann ist der multitasker gerade so noch mit 3 Tage nachdenken zu knacken. Unda daß ich ein Teil der Information dauerhaft aufheben muß, das hab ich dabei gelernt. [Mittwoch, 26. Oktober 2011] [21:43:49] Jetzt geht's um 'ne Lösung. [Mittwoch, 26. Oktober 2011] [21:44:07] Wenn die allzu elegant ist, dann versteh ich sie wahrscheinlich schon mal nicht. [Mittwoch, 26. Oktober 2011] [21:44:21] Das hat mit Eleganz nichts zu tun. [Mittwoch, 26. Oktober 2011] [21:44:33] Du musst dir immer klar sein: Konzepte minimieren. [Mittwoch, 26. Oktober 2011] [21:44:37] Und eintippen tu ich am Ende am Mikrokontroller nixx. das wird schön aufgeschrieben. [Mittwoch, 26. Oktober 2011] [21:44:41] Wenn ein Task da ist, dann ist er da. [Mittwoch, 26. Oktober 2011] [21:44:53] init initialsiert alles, auch die task liste. [Mittwoch, 26. Oktober 2011] [21:45:01] run-turnkey startet alles. [Mittwoch, 26. Oktober 2011] [21:45:03] Wenn du Tasks in verschiedenen Zuständen hast, musst du die Zustände rechtfertigen. [Mittwoch, 26. Oktober 2011] [21:45:19] Running und Sleeping z.B. sind gerechtfertigt. [Mittwoch, 26. Oktober 2011] [21:45:26] Aber nicht initialisiert ist nicht gerechtfertigt. [Mittwoch, 26. Oktober 2011] [21:46:01] Kann man so sehen, muß man aber nicht. Hauptsache, es funktioniert. [Mittwoch, 26. Oktober 2011] [21:46:40] Es ist definitiv fehleranfälliger, wenn es so etwas wie "für den Benutzer sichtbar nicht initialisiert" gibt. [Mittwoch, 26. Oktober 2011] [21:47:16] run-turnkey und tasks muss an die Liste der Tasks herankommen. [Mittwoch, 26. Oktober 2011] [21:47:39] Kann sein: Aber in amforth gibts kaum Fehlerprüfungen. Das gehört so. Das ist die Lizenz zum in den Fuß schießen. Ich will kein system, das mich vor dem controller schützt. [Mittwoch, 26. Oktober 2011] [21:48:07] Darum geht's nicht. [Mittwoch, 26. Oktober 2011] [21:48:50] Wenn du einen zusätzlichen Zustand einführst, mit dem du dir in den Fuß schießt, der aber nicht nötig ist, dann lass ihn einfach weg. [Mittwoch, 26. Oktober 2011] [21:49:05] Er erfüllt keinen anderen Zweck als das System zu destabilisieren. [Mittwoch, 26. Oktober 2011] [21:50:22] *einfach*. Wenn's so einfach wär, dann wär er schon weg. Und ich habe einen Weg gefunden, alles korrekt zu initialisieren. Darf ich das nicht? Muß ich's klassisch machen? Für irgend 'ne Definition von klassich, die ich nicht kenne? [Mittwoch, 26. Oktober 2011] [21:50:47] Nein, das muss nicht klassisch sein. [Mittwoch, 26. Oktober 2011] [21:51:02] Das muss nur vernünftig gedacht sein. [Mittwoch, 26. Oktober 2011] [21:51:14] Und es ist einfach. [Mittwoch, 26. Oktober 2011] [21:51:25] Ich gestehe Dir zu, daß Dir nicht gefällt, was Du siehst. [Mittwoch, 26. Oktober 2011] [21:51:35] Aber im Moment ist es so, wie es ist. [Mittwoch, 26. Oktober 2011] [21:51:41] Ja, weil das, was ich sehe, einfach künstlich verkompliziert ist. [Mittwoch, 26. Oktober 2011] [21:51:54] Das gefällt mir so, wie ein angezogener David von Michelangelo. [Mittwoch, 26. Oktober 2011] [21:52:10] Oder noch besser: Eine angezogene Venus von Milo. [Mittwoch, 26. Oktober 2011] [21:52:36] Das ist dann weder klassisch noch sinnvoll, die beiden sind nur nackig richigt. [Mittwoch, 26. Oktober 2011] [21:52:37] Es ist nicht jeder ein Michelangelo. [Mittwoch, 26. Oktober 2011] [21:53:09] Und darf ein nicht-M. keine Sachen machen? [Mittwoch, 26. Oktober 2011] [21:53:35] Doch, aber dann sollte man bereit sein, Kritik zu verkraften ;-) [Mittwoch, 26. Oktober 2011] [21:53:52] Michelangelo auch: Sein David hat definitiv einen zu kleinen Pimmel. [Mittwoch, 26. Oktober 2011] [21:54:26] Wenn dem so ist, dann muß ich mich vom Forth-ev leider verabschieden, weil ich nicht die Perfektion beherrsche. Ich verkrafte Kritik. Aber ich sehe nicht ein, daß ich's nicht auf meine Tour machen darf. [Mittwoch, 26. Oktober 2011] [21:54:42] Muß nur auf mein Hirn passen, ein anderes hab ich nicht. [Mittwoch, 26. Oktober 2011] [21:57:00] Klar darfst du auf deine Tour machen. [Mittwoch, 26. Oktober 2011] [21:57:12] Danke. [Mittwoch, 26. Oktober 2011] [21:57:43] Aber die Diskussion ist doch auch da, Anfängerfehler aufzudecken, und Stoff zum Nachdenken zu geben. [Mittwoch, 26. Oktober 2011] [21:58:22] Das war nicht die letzte Iteration. Enspannt bleiben! [Mittwoch, 26. Oktober 2011] [21:58:32] Genau. [Mittwoch, 26. Oktober 2011] [21:58:55] Wir sind an diesem Thema seit vielleicht 2 Wochen dran. [Mittwoch, 26. Oktober 2011] [21:59:00] In der Forth-eV sind auch Leute wie Willi Stricker willkommen, die eben keine Recherche machen. [Mittwoch, 26. Oktober 2011] [21:59:20] Das witzige dabei ist, dass er dann unabhängig trotzdem (wenn auch langsamer) zu den gleichen Lösungen kommt. [Mittwoch, 26. Oktober 2011] [22:01:13] Weil sie gut sind. Und weil man nach dem langen Weg auch versteht, warum. Und wenn mir heute die gute Fee erzählt, wie's richtig ist, dann kann ich ihre Antwort leider (noch) nicht verstehen. [Mittwoch, 26. Oktober 2011] [22:02:17] Ja klar. Das ist eben der Zen am Forth ;-). [Mittwoch, 26. Oktober 2011] [22:02:18] Nun denn. Dann wünsch ich Dir ein gut's Nächtle. [Mittwoch, 26. Oktober 2011] [22:02:49] Bis demNeXT. [Mittwoch, 26. Oktober 2011] [22:03:05] Verlassen erwaelde hat den Kanal verlassen (bye.). [Mittwoch, 26. Oktober 2011] [22:08:24] Gido, du hörst nur zu? [Mittwoch, 26. Oktober 2011] [22:09:35] ja, heute mal ja [Mittwoch, 26. Oktober 2011] [22:10:50] Ja, ich mach' dann mal das Licht aus. [Mittwoch, 26. Oktober 2011] [22:10:55] * BerndPaysan macht das Licht aus [Mittwoch, 26. Oktober 2011] [22:11:01] Gute Nacht! [Mittwoch, 26. Oktober 2011] [22:11:03] bis dann