Ankündigung

Einklappen
Keine Ankündigung bisher.

Kompatibilität von Edomi mit neueren PHP Versionen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Zitat von jonofe Beitrag anzeigen

    Teile von EDOMI sind mit bcompiler compiliert. bcompiler ist nur bis PHP 5.3.x lauffähig. Daher ist derzeit keine Änderung in Sicht.
    jonofe

    gaert

    Hallo zusammen,

    ich möchte mich nun nach einiger Zeit mit einer kleinen Überraschung zurückmelden: bcgen
    https://github.com/nanosonde/bcgen

    bcgen ist kein direkter bcompiler Ersatz, sondern ein komplett neuer Bytecode-Generator.
    Nachdem mein erster Versuch, bcompiler fit für PHP7 zu bekommen, nicht erfolgreich war in Bezug auf komplexe Skripte mit OOP usw., habe ich ein ganz neuen Ansatz gestartet. Zwischenzeitlich hatte ich auch Kontakt mit einem Autor des bcompiler. Er hatte leider kein Interesse mehr daran, irgendetwas bei bcompiler weiterzuentwickeln.
    bcompiler selbst basierte ja auf dem alten APC (Advanced PHP Cache). Er hat mich bestärkt, es mit OPcache zu versuchen.

    bcgen basiert auf dem aktuellen Source Code von OPcache (bcgen Code Stand heute ist PHP-7.2.6, im master-branch ist auch schon eine Version für die kommende PHP-7.3 Version, dort sind aber noch nicht alle Änderungen vom bcgen-7.2.6 enthalten. bcgen-7.2.6 ist derzeit meine Arbeitsversion.)
    Es ist quasi eine Abwandlung von OPcache mit der Einstellung "file_cache_only".
    Das Gute ist, dass OPcache von Zend selbst gepflegt wird. So muss man also nur OPcache im Auge behalten und schauen, ob sich etwas an der Serialisierung/Deserialisierung der PHP-internen Strukturen geändert hat oder nicht.

    Ich habe alle Testcases von bcompiler übernommen und ein wenig angepasst, da die Fehlerausgabe bei PHP7 jetzt etwas anders aussieht.
    Alle bcompiler Testcases laufen mit PASS durch.

    Getestet habe ich bcgen bisher mit PHP-7.2.5 unter Debian Stretch amd64, Raspian Stretch armhf und einem Debian Stretch arm64 für den Raspberry Pi 3.
    Vorkompilierte Skripte mit bcgen auf einem PC liefen auch auf dem ARM64 Debian des RPi3.
    Man muss sich allerdings für eine Architektur entscheiden: 32-Bit oder 64-Bit.
    Vorkompilierte Skripte laufen nicht auf beiden Architekturen gleichzeitig. Die Serialisierung/Deserialsierung der entsprechenden Datentypen ist da leider nicht so flexibel. Manche sind halt entweder 4 Bytes lang (32-Bit) oder aber eben 8 Bytes lang (64-Bit). Das wollte ich auch erstmal nicht umbauen, da der Code sich dann von der OPcache Vorlage entfernt.

    Ein Skript, das bcompiler zum Vorkompilieren benutzt, muss ein wenig geändert werden.

    Aus
    PHP-Code:
    $fh fopen("example.phb""w");
    bcompiler_write_header($fh);
    bcompiler_write_file($fh"example.php");
    bcompiler_write_footer($fh);
    fclose($fh); 
    wird

    PHP-Code:
    bcgen_write_file("example.php""example.phb"); 
    Mehr Funktionen bietet bcgen nicht.

    bcgen wird wie OPcache geladen über zend_extension=bcgen.so.
    In der php.ini sollte dann noch mind. der Eintrag
    HTML-Code:
    [bcgen]
    bcgen.enable=1
    stehen.

    Ich würde mich freuen, wenn gaert mir mal eine mit bcgen kompilierte Version von Edomi unter einem 64-Bit Linux zur Verfügung stellen könnte, damit ich weiter testen kann.

    Jedenfalls gibt es jetzt den Grund "bcompiler' nicht mehr...
    Zuletzt geändert von Nanosonde; 25.05.2018, 20:19.

    Kommentar


      #47
      gaert Nanosonde
      Gibt es Neuigkeiten zu bcgen und EDOMI? Hört sich für mich interessant an, insbesondere das es dann ein aktuelleres CentOS als Basis bedeuten würde...

      Kommentar


        #48
        Wenn man zwischen den Zeilen so liest.... https://knx-user-forum.de/forum/proj...92#post1242392

        Kommentar


          #49
          Danke für die Info, das eine Wort sagt viel aus...

          Kommentar


            #50
            https://pecl.php.net/package/bcgen

            Das Projekt "bcgen" hat einen neuen Owner und ein neues Zuhause.
            Ich habe leider nie irgendetwas vom Edomi Erschaffer diesbzgl. gehört. Schade.
            Darum beschäftige ich mich nicht weiter damit. Allerdings gibt es andere Entwickler, die sich offenbar weiter damit für ihre Projekte befassen wollen.

            Kommentar


              #51
              Mein Schweigen hat durchaus seine Berechtigung - abwarten...
              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

              Kommentar


                #52
                Zitat von gaert Beitrag anzeigen
                abwarten...
                Brace yourself, winter is coming!

                Kommentar


                  #53
                  Grundsätzlich verstehe ich den Hype um "neuer=besser" nicht so ganz...
                  "Alt & bewährt" ist auch ein ganz nettes Konzept - wichtiger wäre mir (persönlich) der Import / Export :-)
                  EPIX
                  ...und möge der Saft mit euch sein...
                  Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                  Kommentar


                    #54
                    Zitat von gaert Beitrag anzeigen
                    Mein Schweigen hat durchaus seine Berechtigung - abwarten...
                    Jetzt bin ich aber neugierig...

                    Kommentar


                      #55
                      Das glaub' ich Dir
                      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                      Kommentar


                        #56
                        huiii nun bin ich auch neuierig... gibts was ganz neues :-)

                        Kommentar

                        Lädt...
                        X