Startseite
Amiforce 2.1     Amiforce-News Amiforce-News Amiforce-Forum Amiforce-Forum Amiforce-Chat/IRC-Chat Amiforce-Chat/IRC-Chat Gästebuch Gästebuch Kontakt mit dem Webmaster aufnehmen Kontakt mit dem Webmaster aufnehmen

Amiblitz3
Amiblitz2(alt)
Storm Wizard
Abakus-Design
Helpguide
Toolsguide
Tipps&Tricks
Gamesfun
Links
Download
Musik

Bugfixes am Forum
Subdomains aktiviert
Counterscript entfernt
  Navigation:   Index / 
Amiforce Forum - AmiBlitz4, A/A++ oder Amiga Thunder
Registrierung Häufig gestellte Fragen Suche Mitgliederliste Moderatoren und Administratoren Startseite Bugtracker Chat Irc
Amiforce Forum » AmiBlitz2/3 (Archiv) » AmiBlitz4, A/A++ oder Amiga Thunder » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema | Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag [  «    1  2  3  4  5    »  ]
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Bernd

Wenn ich ein Compiler und IDE schreibe, wärst du dann mit im Boot einen 68K (und wenn es funzt später auch x86 und PPC) Code Generator zu schreiben?
Wie gesagt, ich sehe die Probleme eher in der OS Anbindung, die Codevorbereitung habe ich im Griff. Du siehst in der OS Anbindung keine so grosse Schwierigkeit. Kombiniert wäre das doch was!

Wie schon oben beschrieben, der Code kommt dann als Virtuelles Binary mit ca. 50-100 Funktionen, etwa 200-300 wenn man es auf die verschiedenen Typen ausrollt. (Also long+ word+ byte+ float+ string+ etc.)

Ein eigener Codegenerator wäre sicher schneller als Lowlevel C zu erzeugen und in den GCC zu füttern.
Ausserdem bräuchte man keine extra Intallation.

Library Calls kämen dann etwa so:

libcall("graphics.library","BltBmapRastPort",param1,...paramN)

Mehr vorparsen geht nicht, denn z.B. x86 hat ja andere Register. Dort wird glaube ich mit dem Stack gearbeitet. d.h. der Codegenerator muss wissen, wie er daraus einen gültigen Aufruf macht.

Der MonkeyScript Compiler ist nicht sehr ästhetisch geschrieben, aber er kann immerhin schon fast alles. Es fehlen nur Funktionen und Macros. Wenn das ganze klappt, könnte ich das auch neu, schneller und sauberer implementieren.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 25.01.2009, 20:44 Uhr editiert.

25.01.2009, 20:42 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zur Vereutlichung habe ich eine Grafik gemacht:


__________________
Check out http://www.hd-rec.de !

25.01.2009, 22:59 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Andi
Routinier



Dabei seit: Dezember 2007
Herkunft: Dresden/Sachsen
Beiträge: 255
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Andi suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Wanderer
Wenn wir beim Ideenaustausch für die Zukunft sind:
Könnten wir nicht auch die Erstellung von Shared Libs in A/A++ ermöglichen?

26.01.2009, 09:25 Andi ist offline   Profil von Andi Füge Andi deiner Freunde-Liste hinzu Email an Andi senden
Andi
Routinier



Dabei seit: Dezember 2007
Herkunft: Dresden/Sachsen
Beiträge: 255
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Andi suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Honitos
Schön zu hören, dass es Schritt für Schritt weitergeht. Du hattest hier schon mal geschrieben, dass die IDE jetzt aus AB3 heraus kompiliert werden kann. Mit dem zuletzt auf den Server geladenen Paket vom 17.10.08 ist das noch nicht ohne weiteres möglich, oder? Aktualisierst Du das Paket demnächst noch einmal?

26.01.2009, 09:45 Andi ist offline   Profil von Andi Füge Andi deiner Freunde-Liste hinzu Email an Andi senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ja natürlich für Shared Libs würden auch gehen.

(gehen übrigends in Amiblitz3 auch, weil das so klang als ob du das vermisst)


__________________
Check out http://www.hd-rec.de !

26.01.2009, 11:46 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Nochmal zu der Grafik:

- AmigaOS SDK mit .h Files, daher kommen die ganzen Konstanten und Strukturen für AmigaOS (=> all.res).

- Amiga Shared Libraries / FD Files werden in A Includes umgewandelt und so verwendbar

- A/A++ Inlcudes ist die High-Level API, also A++.

- Der USer schreibt sein Hauptprgroamm, und verwendet A Code (wie C) und A++ API (Includes).

- Der A-Compiler compiler das ganze in eine Virtuelle Binary, die dann entweder interpretiert werden kann oder per Codegenerator in eine Executable umgewandelt wird.


__________________
Check out http://www.hd-rec.de !

26.01.2009, 12:58 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Aber wenn du mal monkey script releasen würdest und es welche gäbe die damit was machen würden, dann würden da meiner Meinung nach sehr schnell Fehler in Deinem Befehls Parser gefunden werden, die bei dir nie aufgetreten sind, weil Du nicht alle milliarden möglichen Formelschreibweisen durchtesten kannst.



Es gibt lediglich zwei Produktionsregeln für Ausdrücke:

Ausdruck => Function(Ausdruck,...)
Ausdruck => Contant

Mehr geht nicht, keine Milliaren von möglichkeiten.
Die Syntax der Sprach muss natürlich von eine Contextfreien Grammatik parsbar sein. Bei C ist das so, bei Amiblitz3 weitestgehend.

Hast du MonkeyScript mal ausprobiert und hast du es "brechen" können?

Ich müsste noch eine Beschreibung der Syntax abliefern, bisher kannst du das nur an den Beispielen sehen.
Zum Editieren kannst du den aktuellen TuiTED benutzenm, der kann MonkeyScript highlightning und zeigt dir auch alle Tokens an, die es gibt mit kleinem Hilfe-Text.

http://www.hd-rec.de/Archive/TuiTED.lha




__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 26.01.2009, 14:30 Uhr editiert.

26.01.2009, 13:35 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Mit dem zuletzt auf den Server geladenen Paket vom >17.10.08 ist das noch nicht ohne weiteres möglich, >oder?

amiblitz konnte sich schon immer komplett selbst kompilieren, wahrscheinlich fehlen dir da ein paar files

>Mehr geht nicht, keine Milliaren von möglichkeiten.

ja gut, aber wenn du monkey script nur zu 90% fertig bekommen hast, mit den wenigen Möglichkeiten, wie hoch schätzt du dann die Chancen ein, dass du nicht vorher die Lust verlierst und tatsächlich ein bessres amiblitz hinbekommst ?

wieviele Stunden hast du eigentlich so grob geschätzt mit monkey script verbracht ?

irgendwie sollte man sich nicht an amiblitz so verkünsteln, es ist wohl mit abstand das beste Entwicklungssystem auf dem amiga und wenn es unter windows laufen würde, würden es auch mit sicherheit mehr nutzen.Unter windows wäre amiblitz auch gleich das beste opensource basic.

Auf dem amiga oder Zukunftsamiga schreibt ja fast keiner Pogramme, schon in C.wieviele haben denn in C, das es nativ gibt 2008 neue Programme angefangen ?
Ich denke keiner.

mal sehen wie es mit AROS weitergeht, dann sieht man, ob man in der Praxis überhaupt merkt, dass amiblitz nicht 68k code nutzt.

Aber um es auf eine andre Platform als amiga zu bekommen, muss man eben das ganze amigaspezische wegbekommen, windows/messaging der Zielplatform nehmen.und das ist die meiste Arbeit.

mit dem was monkey script kann, ist es beim amiblitz nachfolger lange nicht getan und erfordert viele viele Stunden mehr arbeit.

Hast du tatsächlich die Zeit und Ausdauer dazu ?

>Wenn ich ein Compiler und IDE schreibe, wärst du >dann mit im Boot einen 68K (und wenn es funzt später >auch x86 und PPC) Code Generator zu schreiben?

ne ich bin nicht der Typ der bei 0 anfangen will.
Ich habe amiblitz damals erweitert weil es schon wesentliche Vorteile zu C hatte.Und wenn mir was fehlte und ich es haben wollte konnte ich das Feature in ein paar stunden reinbauen.

Das was mir noch fehlte, reinzubauen war nicht viel Arbeit.vorallem halt schnellerer Code, schnelleres compilieren, die IDE Funktionen instruktion browser, typ browser usw, syntax highlighting waren mir da wichtig.

mich dann monatelang hinsetzen an was zu coden, das lange nicht im entferntesten das kann was amiblitz kann habe ich keine Lust.Ich will schnell neue Features haben.

ansonsten auf sourceforge gibts noch mathathias basic, das sollte auch ein Blitzbasic Nachfolger werden, da wurde schon seit Jahren nix mehr dran gemacht.

vielleicht kannste damit was anfangen, aber so wie ich dich kenne findest du den Code zu unsauber und machst lieber was neues.

>Hast du MonkeyScript mal ausprobiert und hast du >es "brechen" können?

Ich habe mal probiert, abgestürzt ist aber nix, hat nur nicht gemacht was ich wollte und nen Fehler hat es auch nicht angezeigt.iss ja keine doku dabei.

genauso erging es mir bei meinen TUI versuchen, da kaman allerdings merkwürdige abstürze etc.

daher finde ich ein GUI Designer wichtig, auch wenn man weniger möglichkeiten hat.

wichtig ist, dass man die nötigen Möglichkeiten hat, man braucht garnicht tausende möglichkeiten um das was man heutzutage so als GUI sieht zu machen.

wie heist so schön, wer die Wahl hat, hat die Qual.
zuviel auswahl ist nicht gut, zu wenig auch.

26.01.2009, 15:05 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Wenn ich ein Compiler und IDE schreibe, wärst du >dann mit im Boot einen 68K (und wenn es funzt später >auch x86 und PPC) Code Generator zu schreiben?

>ne ich bin nicht der Typ der bei 0 anfangen will.
Du musst ja nicht bei 0 anfangen, Compiler und IDE kommen von mir. Der TuiTed macht ja jetzt schon besseres Highlightning als Amiblitz und ist flotter und Systemkonformer. Syntax Hilfe als Bubble habe ich in 10min eingebaut.

Das NTUI Textbox widget wird in Punkt grossen Sourcen nochmal beschleunigt, indem nur das Tokenisiert wird, was man auf dem Bildschirm sieht, und blockweises Reinladen ermöglicht. (also nicht 1 Zeile=1 Allocmem).

An anderen Basics will ich nicht machen. Die eigentliche Leistung in richtung Basic sind ja die Inlcudes, die eine Basic API darstellen. Darunter will ich was C-artiges, damit man keinen Einschränkungen unterliegt.

MonkeyScript ist mächtiger als du denkst. Das einziges was es nicht gibt sind Macros, eigene Funktionsaufrufe in MonkeyScript und Pointer.
Der Compiler gibt wesentlich mehr Informationen heraus als der Amiblitz compiler. Es gibt auch Warnings und verschiedene Strictness-Level, so kann man auf "Loose" ein kleines Tool schreiben, und mit "Strict" ein grosses Projekt.


> wieviele Stunden hast du eigentlich so grob geschätzt mit monkey script verbracht ?
Viele. Aber die sind ja schon erbracht. Bei der 2. implementuierung ist man immer schneller. siehe NTUI. Da steckt nichtmal 10% der Arbeit von TUI drin, und trotzdem kann es bereits mehr und ist sehr viel eleganter.



__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 26.01.2009, 15:18 Uhr editiert.

26.01.2009, 15:16 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Der TuiTed macht ja jetzt schon besseres Highlightning >als Amiblitz und ist flotter und Systemkonformer. >Syntax Hilfe als Bubble habe ich in 10min eingebaut.

Wenn dann wollte ich schon die sourcebrowser etc alles haben, nur nen nackten Editor ist mir zu wenig.mit nem noch besseren hihlighting kann ich nix anfangen.

den tuited nutzen als ped ersatz wolltest du auch mal machen, ich habe dir da alles was du gefragt hattest erklärt, und dich gebeten mal ein Beispiel zu machen, an dem ich rumprobieren kann.Wenn es funktioniert mache ich den ped screen unsichtbar.

Aber irgendwie hast du dann das Interesse verloren.Ich habe mal nachgeschaut, was ich als letztes geschrieben habe, war am 13.4.04 und habe dir erklärt wie du den compiler steuern kannst.die fehlermeldungen wurden zu der Zeit auch schon in nem File im Ram ausgegeben.das hättste dann auch verwenden können.

hier mal meine letzte Mail an dich Titel Tuited und amiblitz.

da sieht man wie man den compiler steuern kann.Man müsste halt das laden von nicht tokenisierten sourcen beschleunigen, bei grossen Programmen wirds langsam.Aber du hast so geschrieben, als ob tuited tokenisiert.

""""
Ich habe tuited ins blitz2: dir kopiert.Aber tokenisiert hat der nix.Der bb2
source hatte ? drin.Ich habe die libs auch einzeln in decompiled drin.
Das AB2 starten+ fileladen+compilieren müsste gehen.Die hilfe nutzt das

Das ist das script für showexamples.evtl hilft dir das.Schau auch mal in
eine redguide rein.
Da siehst du wie es von guide aufgerufen wird

.key file/k
.bra {
.ket }

set PORT=TED_REXX`Blitz2:REDHelp/GetTEDNumber`
set FILESPEC="{file}"

if "$PORT" eq "TED_REXX"
set LC=0
lab myloop
set LC=`eval "$LC+1"`
if "$LC" NOT eq "10"
set TEDSPORT="TED_REXX"$LC
Blitz2:REDHelp/FindPort $TEDSPORT
if "$RC" eq "2"
if "$FILESPEC" eq "COMPILE"
SYS:REXXC/rx "address $TEDSPORT ;
SHOWSCREEN"
SYS:REXXC/rx "address $TEDSPORT ; COMPILE"
else
echo "$FILESPEC"
SYS:REXXC/rx "address $TEDSPORT ; LOADNEW
'$FILESPEC'"
endif
SYS:REXXC/rx "address $TEDSPORT ; SHOWSCREEN"
SYS:REXXC/rx "address $TEDSPORT ; ACTIVATE"
quit
endif
skip back myloop
endif
run >NIL: Blitz2:Blitz2 $FILESPEC
quit
endif

if "$FILESPEC" eq "COMPILE"
SYS:REXXC/rx "address $PORT ; SHOWSCREEN"
SYS:REXXC/rx "address $PORT ; COMPILE"
else
SYS:REXXC/rx "address $PORT ; LOADNEW '$FILESPEC'"
endif

SYS:REXXC/rx "address $PORT ; ACTIVATE"

Dieser Beitrag wurde von bernd_ am 26.01.2009, 19:35 Uhr editiert.

26.01.2009, 19:19 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ja, das habe ich nicht gemacht weil ich andere Dinge für wichtiger gehalten habe (auch auf dein Anraten hin). Was ich hier vorgeschlagen habe ist aber eine Neuimplementierung, das ist was anderes. Ich frickle ungerne in einem schwer verständlichen Code herum, was du wiederum vielleicht als Knobelaufgabe siehst gerne machst. Z.B. ein disassembliertes Amiblitz hätte ich nie im Leben angefasst. Aber du hast was Tolles draus gemacht. Meistens hat das aber Nachteile, z.B. das mehrfache Refreshen im PED stört mich schon. Zuerst wird es zweifarbig gezeichnet, dann mehrfarbig drüber, und oft wird der ganze PED mit Clear refreshed wenn sich nur eine Zeile ändert.
Aber das ist noch nicht genug Anreiz für mich, TuiTED zu integrieren, weil er ja nicht sooo viel besser ist, ausserdme kam dan Sven mit der Autovervollständigung was mich wieder besänftigt hat.
Ich hatte es auf CLI Tool Ebene probiert, aber das ist schwierig weil TuiTED die Tokens kennen muss, und das Libraryformat ist so verzwickt, dass ich nur 99% der Tokens auslesen konnte, manche aber nicht.

Vielleicht ist es tatsächlich vernünftiger, A/A++ nicht zu machen. Ist ja nur ien Brainstorm Thread hier, und mich juckt es halt in regelmässigen Abständen sowas zu machen. Ich weiss dass es einiges an Arbeit ist. Aber mittlerweile kann ich viel schneller als früher programmieren, vor allem weil ich es strukturierter angehe.

Vielleicht schreibst du einen Codegenerator, wenn ich Compiler, IDE und Interpreter vorlege? Das wäre für mich im bereich des Möglichen.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 26.01.2009, 19:30 Uhr editiert.

26.01.2009, 19:28 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Die eigentliche Leistung in richtung Basic sind ja die >Inlcudes, die eine Basic API darstellen. Darunter will >ich was C-artiges, damit man keinen Einschränkungen >unterliegt.

da ist es am einfachsten, man macht eine shared library daraus.z.b bei ffmpeg

vielleicht willste ja ne videcodec include machen, auf Basis von ffmpeg.den winvideorec möchte ich auch mal als videorecoder machen.

>Vielleicht ist es tatsächlich vernünftiger, A/A++ nicht zu >machen.

Kannst es ja machen, aber ich mache da höchstwahrscheinlich kaum was dran.von mir aus könnt ihr alles neu machen, aber wenn ich was an amiblitz vermisse, baue ich es eben da rein.die compile Zeiten bei C nehmen mir ziemlich die Lust,

Ich habe dir aber nicht geraten tuited nicht zu machen, nur dass der als alleiniger amiblitz editor fungiert, wenn er nicht das kann was ped kann.

du hättest den nebenbei laufen lassen können und den compiler mit arex steuern, da hätte ich es dann so gemacht, dass man ped nicht sieht, wenn du eine brauchtbare version gemacht hättest.

das ped komplett mit tuited ersetzen war mir zu viel arbeit, ich habe wo erklärt was zu machen wäre, evtl macht es Sven ja

Dieser Beitrag wurde von bernd_ am 26.01.2009, 19:52 Uhr editiert.

26.01.2009, 19:36 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Eine shared library kann man nicht so einfach draus machen, der Code muss dafür extra gemacht sein. NTUI habe ich so geschrieben, dass man es einfach als Library compilieren kann, wenn es fertig ist. Das geht bei vielen Includes aber nicht, da sie eine globale Engine haben. Das geht erst wenn wirklich alle Includes Objektorientiert sind und man sich die Engines erzeugt.

Gibt es von ffmepg eine Library? Das wäre toll und würde mich motivieren, in HD-Rec auch Video Editing einzubauen. Bildbearbeitungseffekte habe ich ja mittlerweile die wichtigsten schon implementiert.

Wenn du keinen Codegenerator schreibst, habe ich kaum Motivation für A++, da ich das selbst nicht kann, mangels Kenntnisse über die AmigaOS internas.
Wie du sagst, GCC wäre dann spürbar langsamer. Und Amiblitz3, dann bin ich ja wieder bei 68k festgeklebt. Dann kann ich auch Amiblitz3 weiterhin nutzen. Ist ja nicht so dass Amiblitz3 schlecht wäre, ich schreibe hier nur meine Visionen was machbar wäre.

Zur Klärung: Wenn du einen Codegenerator schrieben würdest, dann wäre kein GCC oder Amiblitz mehr im Spiel. Der Codegenerator wäre relativ einfach, muss aber eben die Schnittstelle zum System machen. D.h. Libraries und Devices öffnen, CLI Argumente abholen usw, sofern man das nicht in A++ erledigen kann.


__________________
Check out http://www.hd-rec.de !

26.01.2009, 20:49 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Honitos
König




Dabei seit: Mai 2002
Herkunft: Hambühren/Niedersachsen
Beiträge: 968
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Honitos suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von bernd_
das ped komplett mit tuited ersetzen war mir zu viel arbeit, ich habe wo erklärt was zu machen wäre, evtl macht es Sven ja



Ja, ich mache das. Ich habe da Lust dazu (das mit der Knobelaufgabe ist gar nicht so falsch, Thilo...)

Gut, das es hier eine Druckfunktion für Threads gibt.
Im Augenblick drucke ich mir eine THread nach dem anderen aus und lese den im Zug, damit ich nicht ganz den Anschluss verliere...

Update des Komplettarchivs, wo alle Files zum Kompilieren drin sind, gibt es diese Woche.

@Thilo: Wir sollten kurz über eine TuiTED/NTUITED-Version sprechen, die ich zum Integrieren verwenden könnte.
Allerdings muss ich da fast alle Erweiterungen wieder neu implementieren, jedefalls zum Teil...


__________________
On the web at http://www.programmed-excellence.de

27.01.2009, 12:52 Honitos ist offline   Profil von Honitos Füge Honitos deiner Freunde-Liste hinzu Email an Honitos senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Und Amiblitz3, dann bin ich ja wieder bei 68k >festgeklebt.

na und, vieles ist auf X86 festgeklebt.Nur weil es beim amiga nen CPU Wechsel zu PPC gab hat man das Problem, das es halt Emuliert etwas langsamer läuft.

Hätte OS4 auch ordentliches HW 3d, dann hättest du vielleicht auch den alpha support darüber gemacht.

für alphablending etc, nimmt man nunmal 3d Hardware, dazu ist sie da und opengl ist auch 2d grafik tauglich.

und würde deine include 3d HW unterstützen, dann würde das panzer Demo auf ner voodoo 3 oder so selbst ohne JIT auf etwa 300 fps bei 640*480 kommen.
und nebenbei kann man auch noch beleuchtungseffekte etc reinbauen.



Und wenn die PPC OS Macher für das viele Geld der HW auch zeitgemässe Rechenleistung bieten würden, wäre 68k auch ausreichend schnell.Da jetzt wegen im höchstfall 50% mehr speed tausende stunden arbeit reinstecken ist einfach Unsinn.Das dankt einem sowieso keiner, die PPC Pfuscher bekommen die Kohle und werden auch noch gelobt für ihre Taten, für teures Geld auf dem Amiga ne langsame HW zu etablieren.

Und der Programmierer muss es dann ausbaden, denn schlieslich sollen die Programme auch genauso schnell laufen wie auf dem 3 GHZ X86.schlieslich hat man doch kein windows, sondern Amiga OS.

und wenn es auch 3 GHZ PPC HW zum Preis von X86 HW gäbe, dann wäre man mit amiblitz auch mit emu nahe an der speed dran, schon alleine weil der speicherbus über 6* schneller ist als beum SAM und die Hardware auch noch mehr 2. Levelcache hat.

Und wenn MOS mal endlich auf dem mac mini kommt, da hat man dann auch genug speed zum akzeptablen Preis und SDL HW 3D geht da auch.

hier in den kommentaren hab ich geschrieben welche SDL games es für HW3d gibt

http://www.amiga-news.de/de/news/AN-2009-01-00080-DE.html

27.01.2009, 13:05 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Bernd_

Bitte keine PPC Hasspredikten hier.

Es geht hier nicht um PPC.
Es geht in erster Linie darum, dass es Spass macht einen eigenen Compiler zu schreiben, hier wird ja niemand bezahlt.
In zweiter Line geht es darum, dass sich neue Perspektiven eröffnen, da man ALLES in der Hand hat, und zwar als gut leserlichen und strukturierten Code.

Neue Perspektiven sind verschiedene Target CPUs, ja da gehört auch PPC dazu, aber auch x86 oder sonstwas, z.b. Virtuelle CPU die dann interpretiert wird.
Könnte Hilfreich beim Debuggen sein, kann ich mir vorstellen. Man könnte auch mit einer Amiga.dll liebäugeln, die die wichtigsten Funktionen von AmigaOS bereitstellt, sodass man ein Programm auch für Windows kompilieren kann. Viele Sachen, z.B. NTUI machen ja fast alles selbst, und brauchen nur Linien und Bitmapszeichnen und den Message Loop.
Neue Perspektiven sind aber auch ein Cleanup der Syntax, OOP und verwendung von den offiziellen AmigaOS SDKs, die in C daherkommen.

Das geht natürlich mit gewissem Aufwand auch alles in Amiblitz3, aber ohne Altlasten abzuwerfen würde es langsam zu einem unwartbaren Klumpen.

Aber vielleicht kann ich dich da damit locken:

Man könnte auch einen WinUAE Codegenerator machen, der Stellenweise x86 Code erzeugt, der dann nicht nur nativ wäre sondern auch auf einem anderen Core läuft.

Z.b. lässt sich eine RayCasting Engine Problemlos parallelisieren. Oder verschiedene DSP Effekte.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 27.01.2009, 13:24 Uhr editiert.

27.01.2009, 13:22 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Es geht in erster Linie darum, dass es Spass macht >einen eigenen Compiler zu schreiben, hier wird ja >niemand bezahlt.

was soll daran SPass machen Compiler zu schreiben auf eine veraltete amiga Hardware ?.Nur weil da welche was von Zukunft faseln und viel Geld verdienen wollen soll es interessant sein und man soll dafür viel Zeit investieren ?

Wenn schon dann sollen, die auch was konkurenzfähiges machen, mit dem man sich nicht schämen muss.

für 68k würde ich auch keinen neuen Codegenerator schreiben, aber den zu erweitern macht nicht viel arbeit

was konkurenzfähiges kann man übrigens auch mit dem 68k machen.

z.b nen natami, der die grafikkarte per USB anspricht.ne billige 68k CPU im FPGA drauf und ne USB graka mit directx10 support d-h mit voll programmierbaren Pixelshadern.

Da amiblitz anpassen, so dass man in basic bequem progs schreiben kann.

Es gibts schon raytracer/videocodecs und andre codes, die auf den graka schneller laufen als es je eine PC Hardware kann.

nen X86 codegenerator schreiben, der 50% mehr speed unter X86 bringt.lächerlich, wenn man nen Codegenerator schreibt, der die grafikchips nutzt, ist das mehr als 20* schneller, schon alleine wegen dem schnellen ram der graka.

512 MB graka ram sind heute schon standard und deine includes auf so einem grafikchip laufen, auf so ner graka per USB angeschlossen, da wäre selbst der alte classic eine Rakete mit hdrec und deinen grafikincluds.

http://www.nvidia.de/object/cuda_learn_de.html

und sowas wie cuda dann auf dem grafikchip mit amiblitzsyntax

man muss dabei auch garnicht den kompletten amiblitz befehlssatz mit byte word long unterstützen, es reicht wenn es long und float gibt, if then, select case while wend , eben die Befehle die du in den speedkritischen Teilen auch benutzt.

später kann man es nach und nach ausbauen

nur wenn ich das jetzt mache, kann man es ausser unter winuae eh nirgends nutzen, weil wohl niemals PCIe Hardware oder USB graka treiber für irgend ein amga system erscheinen werden, die directx 10 support hat.

per USB2 erreicht man ja die speed des Grafikkbus locker, da USB2 35
megabytes kann.ein classic mit voodoo 3 kommt nur auf etwa 8 mb, wahrscheinlich weil das BUs interface des A1200 nicht mehr kann und 16 bit überträgt.beim A4000 bekomme ich etwa das doppelte (13 megabyte), an ner piccolo3/Merlin und 17 mb an der cybervisionppc.

von daher am classic der eh nur etwa 8mb zum grafikbus macht, reicht USB locker.

und nebenbei man kommt auch mit einfacher t3c Textur Kompression beim classic beim transferieren auf mehr transferrate, da der grafikchip die USB Daten entpacken kann quasi in Echtzeit.slebst ne 060 cpu wäre schneller wenn sie die Daten mit t3c erst komprimiert und dann über die Leitung schickt.

da ne 60 Euro Radeon 4200 graka mit 512 MB per USB an nen classic und der
classic oder natami ginge ab wie eine Rakete trotz 060 CPU.

hier gibts mal ein paar Test von USB graka.

http://www.tomshardware.com/de/Displayli...hte-239985.html

>Man könnte auch einen WinUAE Codegenerator >machen, der Stellenweise x86 Code erzeugt, der dann >nicht nur nativ wäre sondern auch auf einem anderen >Core läuft.

das könnte ich alles in den vorhanden compiler reinbauen.habe dir ja geschrieben wo man was ändern muss

der vorhande compiler core ist rock solid, bisher hast Du in den 2 Jahren, gerade mal 1 Bug gefunden.

Guck dir an wieviele Bugs bei C gefunden werden.

Wenn man viel ändert, schleichen sich eben auch viele Fehler ein, in amiblitz 3 habe ich auch als noch merkwürdige abstürze.reproduzieren wo die her kommen kann ich nicht.

da viel neuer code eingebaut wurde, weis ich auch nicht wo ich suchen muss.

von daher erweitere ich lieber vorhandenes als neues zu schreiben, denn jede neue Codezeile kann neue Bugs erzeugen

erweitere ich vorhandenes mit minimalsten Codeaufwand, dann finde ich auch die Fehler am schnellsten.

Dieser Beitrag wurde von bernd_ am 28.01.2009, 13:22 Uhr editiert.

28.01.2009, 13:06 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Bernd

Mir macht es Spass, was ästhetisches zu implementieren. Das ist so wie manche gerne Puzzeln, und zufrieden sind wenn alles Teile sich zusammengefügt haben. Ich habe die notwendige Ausbildung so etwas wie einen Compiler zu schreiben und es macht mir Spass. Ich denke das reicht als Rechtfertigung.


Und geht hier nicht um PPC (ich nehme an, das meinst du mit veralteter Amiga Hardware). Der Compiler erstellt ein Virtuelles Binary. Der CODEGENERATOR bestimmt die Ziel CPU und das Betriebsystem. Wie schon gesagt, kann man das auch in AB3 reinbauen, ist aber wohl zu kompliziert und macht deshalb keiner. Auch die verwendung der Blitzlibs würde einiges an Kopfscmerzen bereiten. Dann doch lieber einen sauberen Schnitt, in einer Hochsprache wäre das recht einfach.


Als Codegenerator wäre auch ein Grafikchip Codegenerator denkbar. Der Codegenerator ist ein recht einfaches Stück Software, aber man muss sich mit dem jeweiligen OS auskennen, wie ein Exe Header aussieht etc, und das tue ich nicht.
Vielleicht würde ich ein 68K Codegenerator hinbekommen, aber mehr nicht.

Es geht hier auch nicht drum, die allerneueste Hardware zu programmieren und die optimale Performance zu erreichen. Denn dann würde ich gar nichts für den Amgia machen sondern unter Windows oder Linux programmieren. Das ist halt das Amiga-Paradoxon.

Wie ich dir gesagt habe, bin ich schon in der Lage einen Compiler zu schreiben der auch stabil ist. Auch ein IDE aufsetzen wäre nicht schwer, die meisten Dinge die fehleranfällig sind, sind schon implementiert, z.B. ein Prefix-Tree zu schnellen Tokenisieren oder ein TextEditor der korrekt Highlighted.

Zu dem Rock-Solid: In Amiblitz sind schon noch einige Fehler drin, nur kann man die meisten verschmerzen.
Auch macht die verwendung der BlitzLibs Kopfschmerzen, weil man wie bei einer Pralienenschachtel nicht weiss, was man kriegt. In einer BlitzLib kann alles drin sein. Vom Bugs, Viren bis zu illegal Opcodes ist alles möglich. Z.b. das mysteriöse Problem, dass scheinbar AB3 die FPU benötigt, und keiner weiss woher das kommt.
Hier sehe ich auch klar wieder den Vorteil der Inlcudes, die als Sourcecode eingebunden werden und man jederzeit nachgucken oder auch Debuggen kann, was da drin passiert. Einem A/A++ Codegenerator könnte man ganz klar sagen, welche CPU und ob mit FPU oder ohne, da er der einzige ist, der Binärcode erzeugt. Und dann ist das auch tatsächlich so. Bei Amiblitz3 ist es derzeit so, dass die Blitzlibs teil der Codegenerierung sind, und die sind für uns eine Black Box.



Wenn CJ den bugtracker geupated hat dann schreibe ich die da rein. (beim Update bekommst du dann einen Login-Link).

Beispiele für Fehler:

- nicht korrektes Highlightning von Kommentaren, Konstanten und Stringkonstanten wenn die Zeile etwas länger ist.

- Mehrfaches, unnötiges Refresh des Editors (eher Optimierung als Bug)

- Optionale Parameter mit string, wenn gar nichts angegeben wird (hatten wir schon)

- Fehler bei "|", wenn man Konstanten und Variablen mischt

Geht:

code:

    flags.l = #TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE
    flags | addFlags



Geht nicht (flags wird immer zu $FFFFFFFF):
code:

    flags.l = #TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE|addFlags



- Fehler beim Aufrufen von Library Funktionen (A4) wird nicht gerettet, crashed z.B. bei AppAppIconA()

Geht (hässlicher Workaround):
code:

    MOVE.l a4,-(a7)
    AddAppIconA_ #APP_ICON,!_NULL,& *tuiEngine\appIconText\str,*tuiEngine\appPort,!_NULL,*tuiEngine\appIconDO,! _NULL
    MOVE.l d0,appIcon
    MOVE.l (a7)+,a4
    *tuiEngine\appIcon = Peek.l(?appIcon)
...
appIcon:
Dc.l 0



Geht nicht:
code:

   *tuiEngine\appIcon = AddAppIconA_( #APP_ICON,!_NULL,& *tuiEngine\appIconText\str,*tuiEngine\appPort,!_NULL,*tuiEngine\appIconDO,! _NULL)



Viele Fehler, wie z.B. das mit dem "|" können bei einer sauberen Implementierung gar nicht erst passieren.
Marc Silby war eher an optimaler Speed interessiert, als an einer sauberen Implementierung. Das sieht man auch an den BlitzLibs. Kann man aber verstehen, wenn man mit 7MHz und 512kb auskommen muss, aber heute, 15-20 Jahr später, können wir uns eben mehr Leisten, auch auf einem Classic.



__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 28.01.2009, 14:10 Uhr editiert.

28.01.2009, 13:55 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>flags.l = >#TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE|addFlags

habs getestet stimmt das geht tatsächlich nicht.

Ich denke das ist dir schon vor Jahren aufgefallen oder ?

aber so rum gehts

flags.l = addFlags |
#TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE

so gehts auch

flags.l = #TUIF_BOLD|#TUIF_CENTER | addFlags | #TUIF_MIDDLE

da siehts du an einem Beispiel, was die Milliarden Möglichkeiten betrifft.Du hast halt das addflag hintendran geschrieben und genau diese Situation machte den Fehler.

Um sowas zu vermeiden, da hilft kein Neuschreiben des Kompilers sowas passiert immer, da hilft nur wenn einem das auffällt, dass er es reportet.

Und das reporten ist bei dir auch etwas das mir ziemlich die Lust genommen hat, viel an amiblitz zu machen.oft schon haste was reportet und es stellte sich dann nach langem warten auf deine Mails raus, es ware kein Fehler oder es lag an was anderen.Ich habe dir auch schon öfters Mails geschrieben nach etwa 3 wochen oder so, was ist nun, ist das Problem noch da oder nicht.

Hast du alle Möglichkeiten in monkeyscript durchgetestet und es geht immer korrekt ?

geht der Code in monkeyscript auch korrekt ?

flags.l = #TUIF_BOLD|#TUIF_CENTER | getflags{x,y} | #TUIF_MIDDLE

das geht z.b auch

>- Optionale Parameter mit string, wenn gar nichts >angegeben wird (hatten wir schon)

ja das war der, bei dem du den code geschickt hattest und ich den suchen musste.

auch wieder so ne sache, hätte man das Feature nicht reingebaut gäbe es keine Probleme, weil das ganze halt unterschiedliche behandlungen erfordert durch die ganzen Möglichkeiten die sich durch die variablen Parameter eröffnen.rechne doch einmal aus mit wieviel möglichkeiten der Compiler zurechtkommen muss, bei kombinieren von word long string unterschiedliche Paramter frei etc.

Wenn du in amiblitz vielleicht so coden würdest wie in monkeyscript würde es vielleicht auch immer korrekt laufen.

Oder hälst du dich etwa für unfehlbar weil du "sauber programmierst", wenn du in monkeyscript alle features von amiblitz reinbaust, dass das 100% geht ?

Wenn ja, dann würdest du Händeringend von allen die Compiler Porgrammieren gesucht, denn du wärst der einzigste der das kann.

übrigens im gcc 4.4 wurde der registerallocator ersetzt, derzeit hat GCC 4.4 mehr probleme als andre GCC compiler und der release verschiebt sich stark

Aber es gibt genug die reporten die Bugs, so dass das gefixt werden kann, ausserdem arbeiten da auch mehr daran.

aber ich kann mir schon vorstellen, was geschieht wenn man einen neuen codegenerator schreiben würde, es würde keiner nutzen und Bugs reporten, weil er zu faul dazu ist.

blackbird und Thomas sind eigentlich die einzigsten die sich die Zeit nehmen Bugs zu suchen und zu reporten.

Aber Thomas, codet nicht viel in amiblitz, da bliebe nur noch blackbird, ob der dann wenn es viel Bugs gäbe noch Lust hat das neue zu nutzen ist auch fraglich.

amiblitz3 auch wenn es fehler hatte konnte man immer noch was kompilieren, aber wenn der compiler selber Fehler hat, kann man nix anfangen damit

>Wie schon gesagt, kann man das auch in AB3 >reinbauen, ist aber wohl zu kompliziert und macht >deshalb keiner.

Ne es macht keiner, weil auf dem amiga keiner ausser E einen Compiler schreibt.

normalerweise sollte man sein Programm kapseln, gut blitz basic ist durchgehender code, aber man kann genausogut die Code Erzeugung abkapseln und aufrufe einfügen und das neue genauso machen wie wenn man es neu schreibt, das geht viel schneller, als wenn alles neu macht.

>Ich habe die notwendige Ausbildung so etwas wie >einen Compiler zu schreiben und es macht mir Spass. >Ich denke das reicht als Rechtfertigung.

na also dann kannst du es ja machen.

>Mir macht es Spass, was ästhetisches zu >implementieren. Das ist so wie manche gerne Puzzeln, >und zufrieden sind wenn alles Teile sich >zusammengefügt haben.

Mir macht es Spass wenn ich mit wenig Code und Arbeit eine Funktion Implementiere und die dann benutzen kann.

z.b wenn ich wüsste ich kann in 2 Wochen nen kompletten Codegenerator schreiben, dann würde ich es machen.Aber ich wäge immer den Zeitaufwund und den Nutzen ab.

Ich sehe es eben als sinnvoller, amiblitz so zu erweitern und in der gesparten Zeit dann andre Programme zu machen sdl mit HW3d AFA oder was ich sonst so alles mache und das auch was benutzbares ist.

Es ist für mich einfach keine gute Zeit nutzen Rechnung, wenn ich für wenn man glück hat 50% mehr speed durch native PPC tausend stunden aufwenden muss.

mit nem codegenerator der auf PPC native ist, kann ich nix anfangen, und ich möchte das amiblitz so schnell wie möglich kompiliert.

da jetzt nen preprocessor reinbauen und "sauberen" Codegenerator um dann jedesmal beim kompilieren länger zu warten, habe ich keine Lust.

zumal ästhetic sowieso geschmackssache ist.DU z.b nutzt schienbar überhaupt keine fertigen codes, machst alles selber, alle treffen wohl nicht deinen Geschmack.

Dieser Beitrag wurde von bernd_ am 28.01.2009, 15:21 Uhr editiert.

28.01.2009, 15:12 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

> flags.l = >#TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE|addFlags
> habs getestet stimmt das geht tatsächlich nicht.
> Ich denke das ist dir schon vor Jahren aufgefallen oder ?
Nein, wie du siehst, ist es mir beim Coden von NTUI aufgefallen.

> da siehts du an einem Beispiel, was die Milliarden Möglichkeiten betrifft.
> Du hast halt das addflag hintendran geschrieben und genau diese Situation machte den Fehler.
Das habe ich dir ja bereits erklärt. Es gibt nicht Milliarden von Möglichkeiten, wenn man die Strukur darin erkennt.
Dieser Fehler könnte z.B. in MonkeyScript prinzipbedingt niemals auftreten. Wenn sowas auftreten kann,
dann ist der Codegenerator scheisse gemacht, und verutlich ein Produkt von Trial-and-Error Implementierung,
und nicht von strukturierter Vorgehensweise.

> Um sowas zu vermeiden, da hilft kein Neuschreiben des Kompilers sowas passiert immer, da hilft nur wenn einem das auffällt, dass er es reportet.
Doch, da hilft ein Neuschreiben (und nur ein Neuschreiben) gewaltig.
Du kannst so einen Fehler in MonkeyScript niemals produzieren,
da kannst du dich auf den Kopf stellen wie du willst.
Du kannst vielleicht fehler im Text-Parser hervorrufen, aber einmal compilert ohne zu meckern ist der Code korrekt.

> Hast du alle Möglichkeiten in monkeyscript durchgetestet und es geht immer korrekt ?
Das ist die falsche Denkweise.
Strukturiert heist, dass wenn a und b funktionieren, und die Verschachtelung auch,
dann geht jeder beliebige ausdruck...

a = a*(b+2)+a*(b)/10000*Sin(b+a+b|a)

auch. Egal wie komplex das wird, das brauche ich nichtmal testen.


> geht der Code in monkeyscript auch korrekt ?
> flags.l = #TUIF_BOLD|#TUIF_CENTER | getflags{x,y} | #TUIF_MIDDLE
> das geht z.b auch
Ja natürlich würde das gehen.

>- Optionale Parameter mit string, wenn gar nichts >angegeben wird (hatten wir schon)
> ja das war der, den du reportet hattest.
> rechne doch einmal aus mit wieviel möglichkeiten der Compiler zurechtkommen muss, bei kombinieren von word long string unterschiedliche Paramter frei etc.
Wieder zu einfach gedacht. Wenn es richtig implementiert ist, dann es es völlig egal wie, wo und von welchem Typ optionale
Parameter sind. ich muss keine Kombinationen durchtesten, wenn ich sichergestellt habe, dass es im Kleinen geht.

> Wenn du in amiblitz vielleicht so coden würdest wie in monkeyscript würde es vielleicht auch immer korrekt laufen.
Tue ich ja mittlerweile. Das hat damit aber nichts zu tun.

> Oder hälst du dich etwa für unfehlbar weil du "sauber programmierst", wenn du in monkeyscript alle features von amiblitz reinbaust, dass das 100% geht ?
Ich bin nicht unfehlbar, aber ich weiss wie man es sauber machen kann, sodass nach ein paar Tests alles funktioniert.

> übrigens im gcc 4.4 wurde der registerallocator ersetzt, derzeit hat GCC 4.4 mehr probleme als andre GCC compiler und der release verschiebt sich stark
Kann ja sein, aber vergiss nicht dass GCC eine Recht komplexe Geschichte ist, und der Codegenerator bis zum Erbrechen Optimiert.
Ich habe das Beispiel was ich oben gepostet ahbe mit zwei einfachen Regeln von 12 auf 7 Befehle kürzen können. Ich denke das ist
genug optimiert.

> aber ich kann mir schon vorstellen, was geschieht wenn man einen neuen codegenerator schreiben würde, es würde keiner nutzen und Bugs reporten, weil er zu faul dazu ist.
So ein Codegenerator ist realtiv einfach. Ich glaube du stellst dir das zu kompliziert vor.
Wie schon gesagt, für 68K Könnte ich Assembler Code ausspucken, wenn ich die Opcodes raussuche auch Binary. Aber dann sind wir
ja noch nicht vorrangekommen. Man bräuchte noch die Exe Header Geschichten und weitere CPUs.

>Wie schon gesagt, kann man das auch in AB3 >reinbauen, ist aber wohl zu kompliziert und macht >deshalb keiner.
> Ne es macht keiner, weil auf dem amiga keiner ausser E einen Compiler schreibt.
Ja, das könntst momentan nur du. Aber dich kann man schwer motivieren.

>Ich habe die notwendige Ausbildung so etwas wie >einen Compiler zu schreiben und es macht mir Spass. >Ich denke das reicht als Rechtfertigung.
> na also dann kannst du es ja machen.
Jup, bis auf die OS spezifischen Dinge.

>Mir macht es Spass, was ästhetisches zu >implementieren. Das ist so wie manche gerne Puzzeln, >und zufrieden sind wenn alles Teile sich >zusammengefügt haben.
> Mir macht es Spass wenn ich mit wenig Code und Arbeit eine Funktion Implementiere und die dann benutzen kann.
ich weiss, deshalb habe ich dir ja angeboten, das IDE und den Compiler zu machen. Du bekommst dann einen Stream von low-level anweisungen, die dann in Binärcode umgesetzt werden müssen.
Als Interpreter kann ich sowas schreiben, aber nicht als Exe.

> z.b wenn ich wüsste ich kann in 2 Wochen nen kompletten Codegenerator schreiben, dann würde ich es machen.Aber ich wäge immer den Zeitaufwund und den Nutzen ab.
Ich denke nicht, dass es länger als 2 Wochen dauert. Zumindest nicht eine Funktionierende Version. Optimieren kann man natürlich beliebig, aber wenns mal läuft dann bekommt man auch mehr Motivation.

> Es ist für mich einfach keine gute Zeit nutzen Rechnung, wenn ich für wenn man glück hat 50% mehr speed durch native PPC tausend stunden aufwenden muss.
Fernshegucken hat eine noch miessere Kosten-Nutzen Rechnung. Darum geht es ja nicht. Und bashe nicht immer PPC, darum gehts nicht!
Für mich persönlich wäre eine WinUAE und AROS Unterstützung interessant.

> mit nem codegenerator der auf PPC native ist, kann ich nix anfangen, und ich möchte das amiblitz so schnell wie möglich kompiliert.
Das sind verschiedene Sachen. Keiner hat was von PPC Codegenerator gesagt. Das kann, wenn das Skelett da ist, auch jemand anders amchen,
wenn es Leute gibt die das interessiert.

> da jetzt nen preprocessor reinbauen und "sauberen" Codegenerator um dann jedesmal beim kompilieren länger zu warten, habe ich keine Lust.
Vermutlich wäre das Compileren länger. Käme auf einen Versuch an.

> zumal ästhetic sowieso geschmackssache ist.DU z.b nutzt schienbar überhaupt keine fertigen codes, machst alles selber, alle treffen wohl nicht deinen Geschmack.
Ist es, aber es gibt guten und schlechten Geschmack. Was strukturiert ist und was nicht, darüber kann man sich aber nicht streiten.

Es macht auch keinen Sinn sich hier zu streiten. Da werden die Posts nur immer länger und länger.

Mich würde nur eins Interessieren, wenn ich ein gutes IDE und einen eingiermassen schnellen Compiler baue, bekomme ich dann Unterstützung im Codegenerator?


__________________
Check out http://www.hd-rec.de !

28.01.2009, 15:42 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Strukturiert heist, dass wenn a und b funktionieren, >und die Verschachtelung auch,
>dann geht jeder beliebige ausdruck...

und damit ist das Programm dann schnarch langsam.beim optimieren muss man Ausdrücke zusammenfassen anders anordnen etc.Und das kann eben auch Fehler bringen, aber eben auch viel höhere Geschwindigkeit.

http://en.wikipedia.org/wiki/Peephole_optimization

Wenn du einen Codegenerator schreibst der stur wie dein monkeyscript alles abarbeitet wie es da steht, das ist dann so als wenn du optimize 0 oder beim gcc -O0 machst.

Da funktionieren die Compiler alle.auch amiblitz bei deinem code.
Aber dann sind die auch um Faktoren langsamer.kompilier doch mal ein Rechenintensives C prog ohne Optimizer.

dshalb hat man eben peephole Optimizer und da die sich ne codestelle raussuchen anhand eines patterns kann es eben vorkommen, dass eine code sequenz falsch erkannt wird.wie in deinem Beispiel.

deshalb kann man den Optimizer in jedem Compiler abstellen, wenn man sich nicht sicher ist, ob der compiler was falsch macht.

aber wenn der compiler etwas falsch macht, dann reporten es ein paar.beim amiga gibts aber so wenig User, gerade dann auf PPC, das es da schon schwer ist wenn man weis das die meisten eh keine Lust haben Bugs zu reporten.

wir können gerne um 500 Euro wetten, dass nach 4 Jahren also sagen wir 2013 amiblitz schneller ist in 68k als deine Version native Version und amiblitz auch noch weniger Fehler enthält und schneller kompiliert.

biste einverstanden ?

wäre ja mal intersant wie das die PPC Fans sehen, ob sie lieber einen native PPC Compiler wollen, der langsameren Code erzeugt und langsamer Kompiliert als einen in allen belangen schnelleren 68k Compiler.

>Du kannst so einen Fehler in MonkeyScript niemals >produzieren,
>da kannst du dich auf den Kopf stellen wie du willst.

dann mach das mal fertig, mach es so, dass monkey script programme so schnellen code erzeugen wie amiblitz und auch soviele Möglichkeiten haben

Ich habe schon bemerkt, du machst spartansiche Programme, die wenig Funktionen haben, so wie tuited tuiplayer, hd-rec etc.

Als hd-rec komplexer wurde, habe ich auch gemerkt, wie du dann durch neues einbauen auch neue Fehler eingebaut hast.

Das ist nunmal so, da hilft auch kein neuschreiben oder die Funktionsnamen umbenennen.

Ich bin mir 100% sicher, jeder der sowas wie amiblitz neu macht, der hockt erstmal 1000 von stunden dran und muss mit Fehlern rummachen die es vorher nicht gab.

Aber du kannst ja gerne den Codegenerator schreiben, oder ein komplexes Programm machen, aber ich bin mir sicher, sobald Deine Programme komplexer werden, hast du genau wie Jeder andere Mensch damit zu kämpfen dass die wahrscheinlichkeit bei neuem Code Fehler einzubauen grösser wird, und es schwerer wird die Fehler zu finden, je mehr neuen Code du einbaust und je länger du an einem Programm arbeitest.

>dann ist der Codegenerator scheisse gemacht, und >verutlich ein Produkt von Trial-and-Error >Implementierung,

weist du eigentlich dass du und auch alle Lebewesen ein Produkt aus Trail und Error ist ?

Aber ich mache es dir leicht, bastle einfach ein Pflanzenprogramm das sich selbstständig vermehrt und ohne Hilfe lebensfähig ist.Da bin ich mal gespannt ob Dein Code gegen alle widrigkeiten und gefahren für die Pflanze nicht abstürzt oder Unsinn macht.

Da kannst du mal planen.

Das blitzbasic nicht gerade das Vorbild an Programmierung ist, ist halt so, aber letztendlich ist es von Menschen geschrieben, die Fehler machen, das machen die bei GCC4 genauso und derjenige der keine Fehler macht, der macht auch nix.

und genau deshalb ist es eben so wichtig finde ich, nix unnötiges zu ändern, weil man da nur mehr Fehler hat.

Ist doch logisch oder ?

28.01.2009, 19:38 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Mich würde nur eins Interessieren, wenn ich ein gutes >IDE und einen eingiermassen schnellen Compiler baue, >bekomme ich dann Unterstützung im Codegenerator?

ne, habe ich doch schon erklärt, ich hänge keine 1000 Std rein, wenn man den amiblitz code genauso verwenden kann.

Ich geb eben zu, dass ich denke wenn es neu gecoded ist, auch nicht besser wird als wenn ich den alten Code erweitere.

aber wenn du denkst du kannst bessres erreichen, dann mach es halt

ach ja die inzwischen 2 compiler bugs habe ich nicht gefixt, weil Sven mir noch keinen amiblitz source gemailt hatte

Dieser Beitrag wurde von bernd_ am 28.01.2009, 19:51 Uhr editiert.

28.01.2009, 19:49 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Tja, zwei Leute und zwei verschiedene Ansichten.

Aber ich sags nochmal:

Es geht hier nicht um PPC!

Und ein Codegenerator braucht keine 1000h Arbeit.
Ich denke in 10h hat man eine funktionierende Verison, ohne Optimierungen. Und nochmal 10-20, dann ist es auch schon flott.
Beim Optimieren ist es wie bei allem: mit ein paar wenigen Regeln erreichst du 90%. Die Restlichen 10% holen dir dann Verzweiflungstaten wie der Peephole Optimizer.

Ich denke aber, dass auch ohne Optimierung das ganze schon brauchbar ist. Die Optimierung bei Visual Studio holt bei einem normalen Program zwischen 20-40% Speed raus. D.h. auch ohne Optimierung ist das Program nutzbar. Beim optimieren hast du 4 Layer:

- Design Layer
- Algorithm Layer
- Execution Layer
- Hardware Layer

Fangen wir von hinten an. Durch kauf schnellerer Hardware kannst du dein Programm schneller machen. Das liegt aber nicht in unserer Hand.

Auf dem Execution Layer arbeitet der Peephole Optimizer. Die Möglichkeiten hier sind aber begrenzt, weil sich die Komplexität des Programms nicht ändert. Das muss man verstanden haben. (Komplexitätslehre)

Der Algorithm Layer hat da schon mehr potential.
Wenn ich z.B. Tokens suche, dann ist ein Prefix-Tree viel schneller als eine Lineare Suche, soviel ich da auch auf dem Execution Layer optimiere. O(log(n)) schlägt bei grossen Mengen nunmal O(n) nicht, egal wie schnell eine Einheit in O(n) ist.

Und auf dem Design Layer ist genauso viel zu holen.
Da entscheide ich, ob ich z.B. überhaupt den Algorithmus ausführe, und wenn ja, zu welchem Zeitpunkt. Z.B. Läd der neue NTuiTED zwar das ganze File rein, berechnet das Highlightning aber nur für die sichtbaren paar Zeilen. Das macht einen extrem schnellen Eindruck im Vergleich zuvor. Da kann das Tokenisieren algorithmisch 10x langsamer sein, es fühlt sich trotzdem schneller an bei grossen Files. Bei kleinen Spiel es keine Rolle.
Oder ich verzögere den Refresh so wie bei NTUI so lange, bis keine Events mehr im Queue sind und setze/lösche Dirty-Flags. Dann muss ich beim Slider oder Resizen nur 1x Refreshen, statt 20x bei jedem Event.

Bei den letzen zwei Layern ist meistens mehr zu holen als im Rest. Hängt natürlich vom Problem ab, man kann das nicht über einen Kamm scheren.

Die Wette mit den 500EUR ist unfair, weil nur ich was leisten muss.

Wir können wie Wette aber so machen:
Wenn ich jemals A++ implementiere und einen Codegenerator schreibe für AROS, dann werden die damit kompilierten Progamme schneller sein als unter AROS mit E-UAE und Amiblitz3.
Mich zwingenlassen das zu realisieren will ich aber nicht.


Ausserdem will ich mit dir keine blöden Wetten machen, sondern hätte gerne Hilfe beim Codegenerator (optmieren kann ich selbst).

Aber wir können Folgende Wette machen:
Wenn ich es schaffe, einen A++ Compiler zu schreiben, der ähnlich mächtig wie Amiblitz ist, eine ähnlich mächtiges IDE dazu und einen Interpreter, dann schreibst du den 68K und x86 Codegenerator dazu.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 28.01.2009, 21:32 Uhr editiert.

28.01.2009, 21:15 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Gast
unregistrierter Benutzer



Dabei seit:
Herkunft:
Beiträge:
  Antwort mit Zitat Beitrag editieren/löschen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Der Wanderer

wenn ich auch nochmal was dazu sagen darf ?

Wenn du der Meinung bist das du das durchziehen kannst, dann solltest du versuchen das ohne jegliche Hilfe zu schaffen...

Bernd hat seinen Standpunkt klar gemacht, ich denke wenn du Fragen hast wird er dir sicherlich trotzdem mit Rat und Tat zur Seite stehen, ich kenne Bernd als stets hilfsbereiten Zeitgenossen solange er nicht selbst Hand anlegen muß...

Was ich allerdings auch anmerken muß, ist die Tatsache das du dir evtl. manchmal "zu" viele Dinge gleichzeitig "vornimmst"...Auch du hast nicht 120% Zeit...

Dein Engagemnt in allen Ehren, aber ich denke so wird nix fertig...

28.01.2009, 21:26  
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Bernd kennst sich in Solchen Dingen wie x86 Code in WinUAE oder Exectuables erstellen besser aus als ich.
Den Rest kann ich machen.

Aber ich wiederhole, das hier ist ein Philosophier-Thread, keine Ankündigung oder sowas.

Aber immerhin, MonkeyScript gibt es ja schon real, der TuiTED kann das Highlighten.

Ich werde mal einen kleinen Shooter schreiben in MonkeyScript, mal sehen wie schnell und Robust der Compiler ist. Beim Interpreter kann man natürlich auch noch viel machen. Im Moment hat der schon einiges an Overhead.


__________________
Check out http://www.hd-rec.de !

28.01.2009, 22:36 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>dann schreibst du den 68K und x86 Codegenerator >dazu.

ne solange es unter X86 auch keine Zukunftsperspektive und Akzeptanz vorallem bessre develop Tools gibt, mache ich nix.

unter X86 ist amiblitz so oder so auch emuliert rasend schnell, aber was mir fehlt sind bessre Amiga Programme.In hd-rec vermisse ich auch viel, ne Videschnittsoftware möchte ich auch, und noch andre Dinge.Wenn am Amiga soviele Software fehlt, da ist es doch eigentlich unwichtig, ob das nun 50% schneller läuft oder nicht oder ?

auf X86 läuft amiblitz 68k Soft sowieso viel schneller als PPC native Soft, trotzdem haben Leute diese langsame Hardware gekauft und bleiben OS4 auch treu.scheint also maximale speed garnicht so wichtig zu sein.

Und wenn es mal auf dem Amiga mehr Programme gibt, so dass ich nicht alles selbermachen muss, wenn ich mehr features will, dann kann ich das auch im alten amiblitz, aber nur mit X86 64 bit support.

du hast ja deine grafik schön gemacht, mit einem virtuellen binary.

so kann man es auch im alten Cmpiler machen, dann macht man nach jeder Programmzeile nen Aufruf in den Backend rein, der eine Basic Funktion ist und als Parameter die startadresse und endadresse hat.

Da kann man dann auch auf asm verzichten.

nur dass das virtual binary eben die 68k CPU ist, die wird am schnellsten erzeugt, der rest dauert dann eben länger, weil das Prinzip,dass du beschreibst eigentlich ein Compiler mit nachfolgenden Crosscompiler ist.

problematisch ist allerdings das anpassen der Sprünge.denn wie findet der crosscompiler dann das korrekte label, weil ja der code später dann länger oder kürzer wird.

du verzichtest quasi auf den Just in Time Crosscompiler des UAE und machst einen offline Crosscompiler rein.

gut in dem virtuellen binary kannst du die HEX nummern der opcodes wählen und es etwas besser machen, aber ich denke nicht, dass der Aufwand und die damit eingebauten Fehler sich lohnt, auch wenn man amiblitz an 20 CPU anpassen müsste.

Da man sowieso konstaten für das virtuelle binary nimmt, dann ist es eh egal on $1 move_mem_reg0 ist oder $2e3a

man macht es eben so im backend

code=peek.w(codeaddr)

if code=move_mem_reg0 then ppcode=$3452
if code=move_mem_reg1 then ppcode=$4452
if code=add_reg0_reg1 then ppcode=$4552

Da kommt dann etwa 80 solcher Terme zusammen und das raussuchen der opcodes ist der grösste Zeotaufwand.von daher ob der amiblitz frontend nun etwas sauberer ist oder nicht, ist mir latte.programmieren kostet nunmal Zeit und ich gebe mich nicht der Illusion hin, dass neucoden besser ist.

guck dir AFA an, guck dir AROS an.AROS auf 68k kompiliert, läuft fast nix, hat eigentlich vom skin system auch weniger Features als AFA.

AROS ist komplett neu, in AFA ist nur das neu wo es notwendig für neue Features ist.Das habe ich ganz alleine Gemacht.

Nun vergleich mal, welche Methode bringt mehr features in kürzerer Zeit ?

MOS und OS4 ist auch nicht komplett neugeschriebeb, MOS nutzt AROS und OS4 OS3-OS3.9

Du gehtst immer davon aus, dass es problemlos geht, aber ich sehe bei andren die etwas "sauberer" machen wie lange die dann da dran sitzen und welche neuen Fehler das dann hat, die garnicht aufgetreten wären, wenn sie den alten Code so gelassen hätten

habe ich bei dir auch schon öfters erlebt, dass Dinge die vorher gingen, nicht mehr gingen, weil du es umgeschrieben hast.

passiert dir wie jedem anderen genauso finde ich, und daher überzeugt mich neuschreiben einfach nicht.

erweitern hat halt den Vorteil wenn man arbeit reinsteckt, hat man in kurzer Zeit mehr als vorher.

trotzdem und das hast du ja auch erkannt, bleibt halt auch als grosse arbeit, das ganze an das ABI anzupassen mit den Funktionsaufrufen und dem executable Format.

Und das geht eben am besten, wenn das OS auf das es portiert werden soll, komfortable Debugger hat.

und dann muss man auch noch nen debugger integrieren, der genauso gut ist wie der alte, runtime check das ist auch arbeit.

und interne teile muss man immer in asm des Targets machen, nur nicht alle blitzlibs.

29.01.2009, 11:08 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Du hast ja recht, das bestreite ich nicht.
Nur dass ich dem Neuschreiben etwas positiver gegenüber stehe. Z.B. ist NTUI einfach viel schöner und sauberer, und man kann neue Features dank übersichtlicher Struktur schnell einbauen. TUI hatte schon seine grenze erreicht, wo man quasi mit reinem Warten des Codes zu 90% beschäftigt ist, und keine Zeit für neue Features übrigbleibt. Schlimmstes Beispiel ist wohl PfPaint. Bis Blackbird da mal Land sieht für wirklich neue Sache wie Layer, das wird wohl so schnell nicht passieren.

Wenn man genau weiss was man schreiben will, dann ist es viel weniger Arbeit als wenn man mit was kleinem Anfängt und nach und nach Features reinbaut.

Zu A++ ist der Weg doch gar nicht so gross:

1. Es gibt einen MonkeyScript kompiler der etwa 50% des benötigten schon kann.

2. Es gibt einen TextEditor, der Highlightning beherrscht und leicht erweiterbar ist.

3. Es gibt Strukturen wie den Prefix-Tree, mit dem man sowas wie Tokens etc. leicht beherrschen kann.


Ich würde gerne mal einen Test machen.

Und zwar wir einigen uns auf ein mini-Codeschnipsel.
Du kompilierst es mit AB3 und postest den disassemblierten Code.

Ich schreibe hier was MonkeyScript 1:1 daraus machen würde, und führe danach ein paar Optimierungen vor, die einfach nachzuvollziehen sind.
Dann können wir vergleichen, wie weit die Optimierungen noch auseinanderliegen.

Ich schlage einfach mal

code:

b.l = 7
a.l = 3
a = (a*2 + b) *3


vor.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 29.01.2009, 12:13 Uhr editiert.

29.01.2009, 12:12 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Das wäre der Code, unoptimiert (30 Instructions):
A5 ist die Variablen Base für globale Vars, a und b sind die Offsets wo die Variable sich befindet, das sind Konstanten die zur Compilezeit ermittelt werden.

code:

Move.l #7,-(A7)         ; 7       **** b.l = 7

Move.l ##var_b,-(A7)    ; &b.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1  
Move.l D1,D0(A5)

Move.l #3,-(A7)         ; 3       **** a.l = 3

Move.l ##var_a,-(A7)    ; &a.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)


Move.l #var_a(A5),-(A7) ; a.l     **** a = (a*2 + b) *3

Move.l #2,-(A7)         ; 2

Move.l (A7)+,D0         ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l #var_b(A5),-(A7) ; b.l

Move.l (A7)+,D0         ; +  
Move.l (A7)+,D1
Add.l D0,D1
Move.l D1,-(A7)

Move.l #3,-(A7)         ; 3

Move.l (A7)+,D0         ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l ##var_a,-(A7)    ; &a.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)




__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 29.01.2009, 13:54 Uhr editiert.

29.01.2009, 12:21 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Wenn ich per Hand optimiere, komme ich auf 9 Befehle:
Das sollte so in etwa das beste darstellen, was man erreichen kann. D.h. der generische Code von oben ist 3x langsamer, als handoptimierter Assembler (in Instructions gerechnet).
Das ist doch schonmal gar nicht soooo schlimm.
Den generischen Code von oben kann man aber noch gewaltig optimieren. Ich denke man wird so bei 15 Befehlen landen. Das rechne ich hier aber noch vor, wie das geht.

code:

Move.l #7,#var_b(a5)
Move.l #3,D0
Move.l #2,D1
Muls.l D0,D1
Move.l #var_b(a5),D0
Add.l D0,D1
Move.l #3,D0
Muls.l D0,D1
Move.l D1,#var_a(A5)


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 29.01.2009, 15:20 Uhr editiert.

29.01.2009, 15:19 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
wawa
Tripel-As



Dabei seit: März 2008
Herkunft:
Beiträge: 153
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von wawa suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

an bernd,wanderer:
ich möchte mich hier als leie eigentlich nicht einmischen, aber halte wanderers initiative eigentlich nicht für verkehrt. ich glaube in seiner gegenwärtigen form hält amiblitz viele eventuell interessierte von einstig auf. es ist einfach schwehr durchzublicken mit den vielen nativen befehlen und den includes (und beim meistens felendem doku) was zu was gehört und wie es genau angewendet werden muss. man muss sich auf die alten bb2 docs stützen und weiterrätseln. leute die in amiblitz seit jahren sitzen wie ihr begreifen vielleicht nicht wie schwehr der einstieg mittelerweile geworden ist, aber die anzahl der leute die das forum hier besuchen spricht für sich.
dabei könnte amiblitz "die" noob-sprache für amiga sein wozu doch basic eigentlich überhaupt immer gedacht war (jetzt ohne es runter machen zu wollen).

also ich wäre für die aufräum-aktion. und dann gibts vielleicht wieder bischen bewegung in der bude. unabhängig ob es irgendeine neue hardware für amiga oder sonstige perspektiven gibt oder nicht.

29.01.2009, 15:38 wawa ist offline   Profil von wawa Füge wawa deiner Freunde-Liste hinzu
[  «    1  2  3  4  5    »  ]   « Vorheriges Thema | Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu: