Re: [RFC] Preloading
| From: | Crocodile | Date: | Mon, 29 Oct 2018 10:44:08 +0000 |
| Subject: | Re: [RFC] Preloading | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-103408@lists.php.net to get a copy of this message | ||
Just a side question: will the information on preloaded userland classes
and functions be available via php --rc / php --rf commands?
On Thu, Oct 25, 2018 at 10:42 AM Dmitry Stogov <dmitry@zend.com> wrote:
>
> On 10/25/18 10:47 AM, Michael Wallner wrote:
> > On 20/10/2018 15:06, Dmitry Stogov wrote:
> >>
> >> On Oct 19, 2018 5:20 PM, Sara Golemon <pollita@php.net> wrote:
> >> On Fri, Oct 19, 2018 at 3:17 AM Dmitry Stogov <dmitry@zend.com> wrote:
> >>> I would like to start discussion on a Preloadng RFC
> https://wiki.php.net/rfc/preload
> >>>
> >> 4) "In conjunction with ext/FFI (dangerous extension), we may allow
> >> FFI functionality only in preloaded PHP files, but not in regular
> >> ones." Is there any interest in something like HHVM's HNI interface?
> >> FFI always sounds nice in theory, but complex types mean that a little
> >> bit of glue code is often a plus.
> >
> > As always when it comes to PHP and FFI I'd like to point out ext-psi [1]
> > which uses a different approach than other PHP FFIs until now.
> >
> > It parses PSI files at startup, which basically are C header files
> > augmented with the PHP userland interface decls, see for example the PSI
> > file for time.h [2]
> >
> > As you can see, marshalling from and to native types has been taken
> > seriously, and while we're capable of recursively unmarshalling e.g.
> > addrinfo structs [3] and handling sqlite callbacks [4] it's still not
> > possible yet for something like curl_easy_setopt.
> >
> >
> >
> > [1] https://github.com/m6w6/ext-psi
> > [2]
> > https://github.com/m6w6/ext-psi/blob/master/psi.d/time.psi
> > [3]
> > https://github.com/m6w6/ext-psi/blob/master/psi.d/netdb.psi#L70
> > [3]
> > https://github.com/m6w6/ext-psi/blob/master/tests/netdb/gai001.phpt
> > [4]
>
> https://github.com/m6w6/ext-psi/blob/master/tests/sqlite/sqlite.psi#L56
> > [4]
>
> https://github.com/m6w6/ext-psi/blob/master/tests/sqlite/sqlite001.phpt
> >
> >
> hi Michael,
>
> You made a great job developing ext-psi.
>
> But anyway, I more like my own FFI implementation (at least because it's
> simpler and it's mine).
>
> FFI::load() in conjunction with preloading, would provide functionality
> similar to PSI files loading on startup.
>
> In the future, I would like to push ext/FFI into core and integrate it
> with JIT (similar to LuaJIT way).
>
> In any case, this thread is about preloading, that is interesting by
> itself. FFI and JIT are the future scope.
>
> Thanks. Dmitry.
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Best regards,
Victor Bolshov