MSElang, der zukünftige Compiler für MSEide+MSEgui

Forum für alles rund um die MSEide und MSEgui
Antworten
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mschnell »

marcov hat geschrieben:EInfach, wie Delphi alle 1-byte Typen rauswerfen. Also TStrings ist auf UnicodeString basiert und basta. )

Ganz schlechte Idee.

Ich und meine Kollegen machen sehr viel Protokolle über Serielle Schnittstellen, TCP/IP, ... Da werden 1-Byte Strings gebraucht.

-Mcihael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mschnell »

Christian hat geschrieben:Vielleicht wirds wirklich zeit das Lazarus mehrere compiler unterstützt...

Super: C++ und Java !!!

Jede Unit könnte man in einer anderen Sprache schreien. Fände ich toll.

-Michael

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von marcov »

mschnell hat geschrieben:
marcov hat geschrieben:EInfach, wie Delphi alle 1-byte Typen rauswerfen. Also TStrings ist auf UnicodeString basiert und basta. )

Ganz schlechte Idee.

Ich und meine Kollegen machen sehr viel Protokolle über Serielle Schnittstellen, TCP/IP, ... Da werden 1-Byte Strings gebraucht.


Rauswerfen als in nicht völlig unterstützten für alle Ziele. Also, raus aus der Klassenhierarchie.

Die Typen können für ein bisschen lowlevel interfacing da bleiben (wie in Delphi). Das ist nicht das Problem.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mschnell »

Ich brauche jedenfalls Sachen wie TStringList auch mit 8 Bit Strings.

"Irgendwer" wird natürlich Unicode brauchen Also muss TStringList Unicode können.

Wie man das meiner Ansicht nach sinnvoll und trotzdem kompatibel zu Delphi (nur 16 Bit Strings ordentlich unterstützt) und zum aktuellen Lazarus (nur 8 Bit Strings ordentlich unterstützt) machen könnte habe ich im Wiki beschrieben (Versuch). -> http://wiki.freepascal.org/not_Delphi_c ... de_Support

-Michael

BeniBela
Beiträge: 308
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von BeniBela »

mschnell hat geschrieben:Ich brauche jedenfalls Sachen wie TStringList auch mit 8 Bit Strings.


TStringList ist sowieso eine Schnapsidee


Eine generische Listenklasse und eine generische Mapklasse bräuchte man, statt eine Klasse, die alles ein bisschen kann.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mse »

llvm ist wirklich verblüffend, hier ein Beispiel mit einer Schlaufe:

Code: Alles auswählen

 
program while1;
var
 i1,i2: int32;
begin
 i1:= 0;
 i2:= 0;
 while i1 < 5 do begin
  inc(i1);
  i2:= i1+i2;
 end;
 exitcode:= i2;
end.
 


MSElang-llvm -O3:

Code: Alles auswählen

 
        .file   "test-opt.ll"
        .text
        .globl  main
        .align  16, 0x90
        .type   main,@function
main:                                   # @main
# BB#0:
        movl    $15, %eax
        ret
.Ltmp0:
        .size   main, .Ltmp0-main
 
 
        .section        ".note.GNU-stack","",@progbits
 


FPC fixes_2_6 -O3:

Code: Alles auswählen

 
main:
# Temps allocated between esp+0 and esp+0
# Var i1 located in register ecx
# Var i2 located in register edx
# [test1.pas]
# [4] begin
        call    FPC_INITIALIZEUNITS
        movl    $0,%eax
        movl    $0,%eax
# [5] i1:= 0;
        movl    $0,%ecx
# [6] i2:= 0;
        movl    $0,%edx
# [7] while i1 < 5 do begin
        jmp     .Lj8
        .balign 4,0x90
.Lj7:
# [8] inc(i1);
        incl    %ecx
# [9] i2:= i1+i2;
        movl    %edx,%eax
        addl    %ecx,%eax
        movl    %eax,%edx
.Lj8:
        cmpl    $5,%ecx
        jl      .Lj7
.Lj9:
# [11] exitcode:= i2;
        movl    %edx,operatingsystem_result
# [12] end.
        call    FPC_DO_EXIT
        ret
.Le0:
        .size   main, .Le0 - main
 

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von marcov »

(getested, machte nichts aus)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mschnell »

marcov hat geschrieben:(getested, machte nichts aus)

Was genau meinst Du ?

-Michael

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von Dragon »

Sorry fürs ausgraben des alten Therads. Ich wollte mal fragen wie es mitl mit dem Projekt steht einen Pascalcompiler mit llvm backend zu bauen. Viele links führen ja mitl ins leere.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mse »

Dragon hat geschrieben:Ich wollte mal fragen wie es mitl mit dem Projekt steht einen Pascalcompiler mit llvm backend zu bauen.

Das commit Log ist hier:
https://gitlab.com/mseide-msegui/mselang/commits/master
Die Entwicklung verläuft planmässig, eine furchtbare Plackerei. ;-)
Viele links führen ja mitl ins leere.

Welche?

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von Dragon »

Zum-beispiel der in deinem Eingangspost der wirft mir ein 404 ist der erste der mir spontan einfällt ein anderen hätt ich jetzt nicht zur hand.

Ich kann mir vorstellen das das ein Plakerei sein muss^^.
ist der Kompiler schon testbar mit einfachen grundprogrammen würde gerne ein bisl mit rumspielen.

Ich finde es übrigens beachtlich was du so alles alleine auf die Beine stellst meine hochachtung.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mschnell »

Dragon hat geschrieben:Ich finde es übrigens beachtlich was du so alles alleine auf die Beine stellst meine hochachtung.

Ich bin sicher dass er einen Kopierer hat auf den er sich setzen kann, um viele Clones von sich selbst zu schaffen :) .
-Michael

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSElang, der zukünftige Compiler für MSEide+MSEgui

Beitrag von mse »

Dragon hat geschrieben:Zum-beispiel der in deinem Eingangspost der wirft mir ein 404 ist der erste der mir spontan einfällt ein anderen hätt ich jetzt nicht zur hand.

Den habe ich repariert, vielen Dank für den Hinweis. Gitorious wurde von GitLab übernommen.
ist der Kompiler schon testbar mit einfachen grundprogrammen würde gerne ein bisl mit rumspielen.

Leider ist er noch noch nicht allgemein verwendbar.
Ein Leistungsvergleich ist hier:
https://www.mail-archive.com/fpc-pascal ... 41615.html
https://www.mail-archive.com/mseide-mse ... 09491.html

Oder
viewtopic.php?f=53&t=7320&start=63
https://www.mail-archive.com/mseide-mse ... 08074.html
https://www.mail-archive.com/mseide-mse ... 08295.html

Vielleicht auch noch interessant (von 2014)
https://www.mail-archive.com/mseide-mse ... 07618.html
Ich finde es übrigens beachtlich was du so alles alleine auf die Beine stellst meine hochachtung.

Danke! :-)

Antworten