Seite 7 von 7
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Fr 24. Mär 2023, 13:38
von Wuerfel_21
yeti hat geschrieben: ↑Di 14. Mär 2023, 20:20
Wer noch nicht mit FlexSPIN, -BASIC und -C im Bytecode-Modus gespielt hat sollte sich das mal ansehen. OpenSpin könnte obsolet werden, zumindest solange kein OpenSpin-fehlerkompatibler Compiler benötigt wird.
Um was für OpenSpin-spezifische Eigenheiten handelt es sich denn? Wenn irgendwas in flexspin nicht passt, wird es passend gemacht (fast alle Eigenheiten des Original-PropellerTool-Kompilers sollten unterstützt sein, besonders im BC-Modus. Das einzige was nicht funktionieren sollte und kein Fehler ist, ist Code der sich selbst modifiziert (gezwungenermaßen mit festen offsets in PBASE).
Man beachte auch die Spin2-ismen, die auch für Spin1/P1 unterstützt sind. z.B. die Möglichkeit, Konstanten in Unterobjekten zu überschreiben.
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Fr 24. Mär 2023, 13:43
von yeti
Bloß nich...
Im Umfeld des Versuches TriOS mit OpenSpin zu bauen tauchten Unterschiuede zwischen OpenSpin und BSTC auf, die man nun wirklich nicht in FlexSpin haben will.
Fehlerkompatibel sollte meinen "kompiliert gewisse Dinge gar nicht". Z.B. zuviele Funktionen, zuviele IF/ELSE/...
BSTC konnte das teils umschiffen weil erst Unbenutztes rausgeschmissen wurde und OpenSpin sich erst weigerte und danach optimiert hätte (wenn ich das richtig verstand).
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Fr 24. Mär 2023, 18:18
von Wuerfel_21
FlexSpin hat eigentlich keine Limits dergleichen. Nicht benutze Funktionen werden gar nicht erst kompiliert. Und Konstrukte in der Funktion sollten sich unendlich verschachteln lassen (naja, irgendwann läuft der Systemstack dir über... 8MB auf Linux, nur 1MB auf Windows...)
BSTC hat teils... interessante Fehler. Wer versuchen würde Spin Hexagon (was zwar auf flexspin LLM gedacht ist..) mit BSTC zu kompilieren, würde nicht glücklich werden (aber auch nicht mit Homespun). Siehe hier:
https://forums.parallax.com/discussion/ ... r-shootout
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Fr 24. Mär 2023, 18:40
von yeti
Und BST(C) gibt's nur binär und wird irgendwann auf keinem aktuellen OS mehr laufen. Diesen Mist hab ich mit anderen Compilern bzw Microcontrollern schon hinter mir, weil manch Projekt sich zu sehr an eine bestimmte GCC-Version kettete.
Spatz geht anders.
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: So 26. Mär 2023, 00:30
von Wuerfel_21
Och ja, und XMM... Das wär was. Auf P2-Seite hätte das auch vertretbare Performance dank Streamer-DMA. Nicht sicher wie das wohl am besten zu implementieren ist. Ich glaube die implementation in GCC cache-t einfach gleich große Blöcke und führt sie aus. Und ich glaube ohne FCACHE, da das ja nicht einfach so aufzuteilen ist. P2 ist ja kein reines RISC und hat diese Probleme auch von Haus aus (liebe grüße von AUGS und SETQ. Lässt sich vielleicht lösen, wenn man diese Konstrukte alle auf 64-bit alignt). Und einzelne kleine Transfers leiden eher unter Latenz... Andererseits ist mein 68000-Emulator ja eigentlich auch nur XMM auf Umwegen. Und der läuft auch noch gut, wenn er (
siehe NeoYume-Spaghetti) nur indirekt an den Bus kann und evtl eine Weile warten muss, bis der andere Cog den Interrupt wahrnimmt. Da werden 16 Instruktionswörter (=32 byte) gequeuet, wann immer der PC den aktuellen Bereich verlässt. Und genau von da an. Hat den Nachteil, dass man sich mit den ollen DRAM-Zeilen rumschlagen muss, da der Bereich ja über eine Zeilengrenze gehen könnte.
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Sa 12. Aug 2023, 17:33
von yeti
---------8<-----{20230812-1633-UTC}----->8----------
Ich seh PSRAM in SPIN2CPPs Changelog erwhähnt...
Verpaß ich Nur-P1-Benutzer da grad bahnbrechende Neuerungen oder ist das nur für P2-Leute interessant?
---------8<-----{20230812-1802-UTC}----->8----------
Code: Alles auswählen
(yeti@kumari:6)/opt/propellertools/src$ grep -ilr psram totalspectrum__spin2cpp
totalspectrum__spin2cpp/include/spin/psram.spin2
totalspectrum__spin2cpp/include/spin/psram4drv-dualCE.spin2
totalspectrum__spin2cpp/include/spin/psram16drv.spin2
totalspectrum__spin2cpp/include/spin/hypermemory.spin2
totalspectrum__spin2cpp/include/spin/psram8drv.spin2
totalspectrum__spin2cpp/COPYING.LIB
totalspectrum__spin2cpp/.git/index
totalspectrum__spin2cpp/.git/objects/pack/pack-abe8ee2390da035494e9e1e2df4c612e841ec062.pack
totalspectrum__spin2cpp/Changelog.txt
...also wohl nur für die P2-Fraktion.
---------8<-----{Wohl kein Happy-End.}----->8----------
Re: Spin2CPP, FlexSpin, FlexCC, FlexProp (PASM, Spin, BASIC, C)
Verfasst: Mo 14. Aug 2023, 21:03
von Wuerfel_21
Is nur für ramdisk als dateisystem, keine sorge.