How does this compare to the PECL runkit extension? Also have you
benchmarked it against Scribunto? Because Scribunto does kind of the same
exact thing except just with a different programming language (and
Scribunto uses a native interpreter rather than one written in PHP).

*-- *
*Tyler Romeo*
Stevens Institute of Technology, Class of 2016
Major in Computer Science


On Mon, Jan 13, 2014 at 3:58 AM, Pavel Astakhov <pastak...@yandex.ru> wrote:

> Hi! I would like to discuss an idea.
>
> In MediaWiki is not very convenient to docomputingusing the syntax of the
> wiki. We have to use several extensions like Variables, Arrays,
> ParserFunctions and others. If there are a lot of computing, such as data
> processing received from Semantic MediaWiki, the speed of page construction
> becomes unacceptable. To resolve this issue have to do another extension
> (eg Semantic Maps displays data from SMW on Maps). Becomes a lot of these
> extensions, they don't work well with each other and these time-consuming
> to maintain.
>
> I know about the existence of extension Scribunto, but I think that you
> can solve this problem by another, more natural way. I suggest using PHP
> code in wiki pages, in the same way as it is used for html files. In this
> case, extension can be unificated. For example, get the data from
> DynamicPageList, if necessary to process, and transmit it to display other
> extensions, such as Semantic Result Formats.This will give users more
> freedom for creativity.
>
> In order to execute PHP code safely I decided to try to make a controlled
> environment. I wrote it in pure PHP, it is lightweight and in future can be
> included in the core. It can be viewed as an extension Foxway. The first
> version in branch master. It gives an idea of what it is possible in
> principle to do and there's even something like a debugger. It does not
> work very quickly and I decided to try to fix it in a branch develop. There
> I created two classes, Compiler and Runtime.
>
> The first one processes PHP source code and converts it into a set of
> instructions that the class Runtime can execute very quickly. I took a part
> of the code from phpunit tests to check the performance. On my computer,
> pure PHP executes them on average in 0.0025 seconds, and the class Runtime
> in 0.05, it is 20 times slower, but also have the opportunity to get even
> better results. I do not take in the calculation time of class Compiler,
> because it needs to be used once when saving a wiki page. Data returned
> from this class is amenable to serialize and it can be stored in the
> database. Also, if all the dynamic data handle as PHP code, wiki markup can
> be converted into html when saving and stored in database. Thus, when
> requesting a wiki page from the server it will be not necessary to build it
> every time (I know about the cache). Take the already prepared data (for
> Runtime and html) and enjoy. Cache is certainly necessary, but only for
> pages with dynamic data, and the lifetime of the objects in it can be
> greatly reduced since performance will be higher.
>
> I also have other ideas associated with the use of features that provide
> this realization. I have already made some steps in this direction and I
> think that all of this is realistic and useful.
> I'm not saying that foxway ready for use. It shows that this idea can work
> and can work fast enough. It needs to be rewritten to make it easier to
> maintain, and I believe that it can work even faster.
>
> I did not invent anything new. We all use the html + php. Wiki markup
> replaces difficult html and provides security, but what can replace the
> scripting language?
>
> I would like to know your opinion: is it really useful or I am wasting my
> time?
>
> Best wishes. Pavel Astakhov (pastakhov).
>
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to