Flua 0.4.5
Übersicht

E. Urbachehemals "Basicprogger"Betreff: Flua 0.4.5 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bp (welches seit einiger Zeit in Flua umgetauft wurde) ist mein derzeitiges Projekt, welches ich Ende April wieder aufgegriffen habe und plane dieses Mal mit mehr Erfahrung endlich vollenden zu können.
![]() In diesem Projekt geht es um die Entwicklung einer Programmiersprache und einer dazugehörigen Entwicklungsumgebung. blitzprog soll mehrere Probleme in derzeitigen Sprachen lösen, die die Wiederverwendbarkeit von Code quasi unmöglich machen und im endgültigen 1.0-Release folgende Features beinhalten: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wie ihr seht verfolge ich ein gänzlich anderes Konzept als Bismuth, welches stärker an BMax angelehnt ist. Ich habe aus BMax das (meiner Meinung nach) tolle Modulkonzept wiederaufgenommen und versuche die Library in einem ähnlichen Stil zu entwerfen, außer der Funktionsumfang würde dadurch eingeschränkt werden. Ich und Noobody haben bis vor Kurzem nicht einmal gewusst, dass der jeweils andere an einer Sprache arbeitet und da die Projekte ohnehin verschiedene Konzepte und Ziele haben kommen sie sich auch nicht in die Quere. bp setzt sich die Kombination aus Performance und (dennoch) komfortabler Arbeitsweise als höchste Priorität. Ebenso ist Parallelisierung ein wichtiges aktuelles Thema, welches in bp stark vereinfacht wird um es in eigener Software ohne die sonst üblichen Probleme wie Deadlocks und Race conditions zu benutzen. Wiederverwendbarkeit ist ebenso wichtig für Modulentwickler, deswegen wird an jeder Ecke versucht, in bp geschriebene Funktionen optimal wiederverwendbar zu machen. Falls ihr mal reinschnuppern wollt in den momentanen Alpha-Status, es stehen ein einmaliger ![]() ![]() bp ist Open Source, das heißt: Jeder, der möchte und die entsprechenden Kenntnisse hat, kann die Sprache erweitern und eigene Module schreiben (es stehen momentan keine Grafikmodule zur Verfügung). Ich hoffe dadurch einige interessierte Alphatester und Feedback zu finden. Offizielle Website (engl.) |
||
- Zuletzt bearbeitet von E. Urbach am Mi, Nov 21, 2012 20:28, insgesamt 14-mal bearbeitet
Freak123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da steckt ja eine menge Arbeit drinnen.
Schaut gut aus. Werde ich auf jeden Fall testen. lg |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe die IDE nun sowohl funktional als auch optisch etwas erweitert. Außerdem gibt es nun For-Each Schleifen mit beliebig definierten Iterationsarten. Es ist nicht so einfach das in einem Post zu erklären, aber vielleicht hilft ein Code-Beispiel weiter:
Code: [AUSKLAPPEN] iterator
default pos = 0 end = my.getLength() while pos < end yield my.start[pos] pos += 1 Dieser Code, den ich der Array-Klasse entnommen habe, reicht aus um eine Klasse iterierbar zu machen und er ist anpassbar. Mit dem yield-Keyword gibt man quasi ein Objekt an die Foreach-Schleife weiter was in diesem Fall das Array-Element an der Iteratorposition ist. Anschließend kann man Objekte der Klasse wie folgt verwenden: Code: [AUSKLAPPEN] for x in array
print x Weitere Änderungen sind z.B. die On-The-Fly Sourcecode Ansicht, AutoComplete Verbesserungen (trotzdem noch miserabel...) und zahlreiche Bugfixes. Über Feedback würde ich mich freuen ![]() |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
- Zuletzt bearbeitet von E. Urbach am Mo, Jun 18, 2012 14:38, insgesamt einmal bearbeitet
![]() |
SM3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nettes Projekt, darf man Fragen in welcher Sprache Du das entwickelst? Sprich Deine Sprache und die IDE.
Was auf jeden Fall ein guter Ansatz ist das sich so etwas langfristig erweitern und weiter entwickeln lässt, denn nichts ist so ärgerlich wie bei meinem geliebten Blitz3D, welches dann irgend wann eingestellt wird und aus stirbt. Hut ab für das Projekt und weiter so, wünsche Dir sehr das es erfolgreich wird. MfG SM3D |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für den Kommentar, beides wird in Python 3 entwickelt um deine Frage zu beantworten und ich bereue die Entscheidung nicht, bis auf ein paar Kleinigkeiten wie z. B. keine echten parallelen Prozesse für die IDE aufgrund von Pythons GIL, aber damit kann ich leben. | ||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Update 0.3.4
![]() ![]() ![]() ![]() Wer es schon heruntergeladen hat braucht nur "Help > Reset all local changes" aufzurufen und die IDE neu zu starten. Unter bp.Examples findet sich unter 5 - Graphics ein Beispielcode, der ein GraphicsWindow initialisiert, es wäre nett wenn ihr mir kurz sagen könntet ob es auf eurem PC / eurer Grafikkarte läuft (es sollte ein Farbverlauf zu sehen sein). ![]() ![]() |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jup, läuft bei mir und sieht richtig aus. | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funktioniert mit Intel HD 3000 (Nvidia Optimus).
Was mir an der IDE noch fehlt ist eine Fehlerausgabe mit Verlinkungen und allem. Das Konzept hinter bp finde ich aber interessant, wenn ich auch skeptisch bin, weil alles so abstrakt ist. Und ich enttäuscht auf der angegeben Webseite kein iNothing zu finden. ![]() ![]() Fazit: Weiter machen! ![]() MFG PS: Der += Operator funktioniert nicht für Strings ![]() |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Starwar hat Folgendes geschrieben: PS: Der += Operator funktioniert nicht für Strings
![]() Sollte nun funktionieren. Danke für die Info, dass es auch auf Intel GPUs läuft - Ich hatte schon befürchtet die würden Probleme verursachen. |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Update 0.3.5
![]() ![]() ![]() ![]() Im Detail: in keyword Code: [AUSKLAPPEN] if "a" in "abc"
ist die Kurzform für Code: [AUSKLAPPEN] if "abc".contains("a")
String-Funktionen Code: [AUSKLAPPEN] "abc".padRight(10)
ergibt Code: [AUSKLAPPEN] abc
padLeft ist damit selbsterklärend. Man kann einen String nun auch multiplizieren (wie in Python): Code: [AUSKLAPPEN] "Hello" * 5
ergibt Code: [AUSKLAPPEN] HelloHelloHelloHelloHello
Benchmark-Suite Bei mir ergeben die Tests mit bp.Compiler.Benchmark (F6) auf meinem Dual-Core Laptop folgendes: Code: [AUSKLAPPEN] Use parallel execution? [y/n]
y Strings.Concat: 1,494,494 microseconds Math.Distance: 2,894,894 microseconds FileIO.ReadAll: 2,066,066 microseconds Time.Now: 2,881,881 microseconds Strings.Replace: 1,489,489 microseconds Math.Factorial: 1,733,733 microseconds -------------------------------------------------------------------------------- All benchmarks: 3,131,131 microseconds (auf Lubuntu x86) Falls einer der Tests eine übertrieben hohe Ausführungszeit hat, bitte lasst es mich wissen damit ich die Ursache identifizieren kann. String-Appends habe ich einigermaßen optimiert und es ist noch ein wenig Spielraum für Optimierungen offen. Generell ist bp dank g++ Optimierungen und manuellen Optimierungen ziemlich flott. Edit: Parallele Ausführung verursacht unter Windows momentan Probleme mit dem GC, ich kümmere mich so bald wie möglich drum. Edit 2: Das Problem mit paralleler Ausführung sollte nun behoben sein für 32-Bit Windows. |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Update 0.3.7
![]() ![]() ![]() ![]() ![]() ![]() Um die neue Version zu erhalten einfach oben im Hilfemenü auf Reset all local changes gehen und den Editor neustarten. |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Es gibt für faule Programmierer wie mich die Möglichkeit einen Counter für eine Foreach-Schleife zu erstellen
Was passiert bei verschachtelten Schleifen? Wie komme ich an den Counter der äusseren? Finde ich nicht sehr schön gelöst, vor allem das mit dem Pseudoobject "loop". Was passiert wenn ich eine andere Variable namens loop haben möchte? |
||
Blog. |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hamZta hat Folgendes geschrieben: Was passiert bei verschachtelten Schleifen? Wie komme ich an den Counter der äusseren? Finde ich nicht sehr schön gelöst, vor allem das mit dem Pseudoobject "loop". Was passiert wenn ich eine andere Variable namens loop haben möchte?
Hi hamzta, die Kritik ist berechtigt, daher habe ich es wie folgt angepasst: http://pastebin.com/0Pd39aCa Man kann nun sowohl auf die äußere als auch die innere Schleife zugreifen, der Zählervariable einen eigenen Namen geben und dabei immer noch "counting" als Variable verwenden weil dieses Keyword nur kontext-sensitiv in foreach-Schleifen verwendet wird. Ist es nun in Ordnung für deinen Geschmack oder würdest du eine andere Lösung vorschlagen? |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
So sieht das besser aus, ja. "Magic objects" sind einfach nicht schön ![]() |
||
Blog. |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann man auch schon seinen Quellcode kompilieren? Finde gerade Gefallen an deiner Programmiersprache und würde gerne wissen, ob man auch schon ein ausführbares Programm aus seinem Code machen kann? ![]() EDIT: Hat sich erledigt, eine ausführbare Datei habe ich im Ordner /bp/src/C++ gefunden. |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dont_know_to_use hat Folgendes geschrieben: EDIT: Hat sich erledigt, eine ausführbare Datei habe ich im Ordner /bp/src/C++ gefunden.
Du solltest deine Dateien unter einem eigenen Kürzel speichern, nicht im Top-Level-Directory, sonst passieren beim Löschen böse Dinge. Rechtsklick im Modulbrowser -> Neuen Benutzer anlegen |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay
Sieht auf jeden Fall sehr interessant aus. Ich würde gerne einige mehr Beispielcodes sehen, vielleicht welche, die auch zeigen, was sie so grafisch drauf hat? ![]() |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dont_know_to_use hat Folgendes geschrieben: Ich würde gerne einige mehr Beispielcodes sehen, vielleicht welche, die auch zeigen, was sie so grafisch drauf hat?
![]() Ich verstehe, dass in diesem Portal die meisten Leute natürlich auf das Grafikmodul aus sind, jedoch muss ich Prioritäten setzen. Es fehlen noch einige Sprachfeatures, die entwickelt werden müssen. Die Entwicklung von einem einzigen Modul ist bei weitem nicht so wichtig, das kann immer noch (theoretisch) jemand anders machen, denn das hat mit der Sprache an sich nichts am Hut. Update 0.3.8 ![]() ![]() ![]() ![]() ![]() ![]() |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Update 0.3.9 enthält Python-äquivalentes String-Slicing
Code: [AUSKLAPPEN] print "Hello World"[6:]
und ich habe nebenbei noch einige Stunden mit der teils sehr verwirrenden OGL-Doku verbracht, wodurch ich jedoch das Laden von Texturen endlich geschafft habe: ![]() Das Beispiel liegt unter bp.Examples.6 - Graphics und ist äußerst experimentell. Keine Ahnung ob es bei euch läuft, es braucht Shader. Die/das API ist keinesfalls final, da wird sich noch einiges dran ändern. Zum Updaten oben im Hilfemenü auf Reset all local changes gehen und den Editor neustarten. |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Läuft hier.
Allerdings macht das "An empty window"-Programm beim Umschalten der Syntax komische Dinge. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group