MediaWiki Extension which implements a general-purpose programming language to be used in MediaWiki articles. Basically PostScript without graphics, with some additional operators including database querying.
Be the first to post a text review of StackFunctions Extension. Rate and review a project by clicking thumbs up or thumbs down in the right column.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.8: Thanks to JG for the bug reports and the suggestion for recursionoverflow. :* Bugfix: '''show''' does not print 0's any more. :* Bugfix: '''type''' now correctly classifies arrays. :* Bugfix: '''=''' now displays names as specified by the PostScript reference. :* New operators: '''vprintf''', '''vsprintf'''. :* New feature: Exception '''recursionoverflow'''. :* Enhancement: '''show''' when applied to a datatype that is internally represented by a php array shows the value instead of the array. For instance, <nowiki><sf>/testname show</sf></nowiki> now shows "testname" instead of "Array". ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced. :* New operators: '''dbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.8: Thanks to JG for the bug reports and the suggestion for recursionoverflow. :* Bugfix: '''show''' does not print 0's any more. :* Bugfix: '''type''' now correctly classifies arrays. :* Bugfix: '''=''' now displays names as specified by the PostScript reference. :* New operators: '''vprintf''', '''vsprintf'''. :* New feature: Exception '''recursionoverflow'''. :* Enhancement: '''show''' when applied to a datatype that is internally represented by a php array shows the value instead of the array. For instance, <nowiki><sf>/testname show</sf></nowiki> now shows "testname" instead of "Array". ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced. :* New operators: '''dbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.8: Thanks to JG for the bug reports and the suggestion for recursionoverflow. :* Bugfix: '''show''' does not print 0's any more. :* Bugfix: '''type''' now correctly classifies arrays. :* Bugfix: '''=''' now displays names as specified by the PostScript reference. :* New operators: '''vprintf''', '''vsprintf'''. :* New feature: Exception '''recursionoverflow'''. :* Enhancement: '''show''' when applied to a datatype that is internally represented by a php array shows the value instead of the array. For instance, <nowiki><sf>/testname show</sf></nowiki> now shows "testname" instead of "Array". ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced. :* New operators: '''dbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced :* New operators: '''dbkey2textdbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced :* New operators: '''dbkey2textdbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.71 :* Upgrade to MW 1.13.3: sf_func now invokes Parser::replaceVariables, otherwise templates are not replaced :* New operators: '''dbkey2textdbkey2text''', '''text2dbkey'''. ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
The following is the wikitext copied from http://www.mediawiki.org/wiki/Extension:StackFunctions/ChangeLog ; 0.7 :* Bugfix: The execution unit now recursively looks up executable names which refer again to executable names. :* Bugfix: '''revision''' now calculated in the correct place within the code. :* New feature: Immediately evaluated names are now supported. :* Feature enhancement: When an exception occurs, the output created so far is now shown. :* Feature modification: While in previous versions the entire program text was first parsed and then executed, it is now parsed and executed token by token, as PostScript does. This may adversely impact performance, but was necessary to implement immediately evaluated names. In addition, this makes it possible not to discard the output when an exception occurs. :* Feature modification: Precompiled code is now allowed in prologs only. :* Internal enhancement: <tt>init()</tt> looks up MediaWiki magic words only the first time - this can save much time when StackFunctions is used several times on the same page. :* Internal enhancement: Extension setup function now class member so that the only global namespace items in this extension are now the class name and the name of its instance. ; 0.61 :* New operator: '''replace'''. :* New operator: '''token'''. :* Operator bugfix: '''forall''' returns dictionary keys as names rather than strings. :* Operator bugfix: '''exec''' and '''load''' now handle correctyl executable names :* Feature enhancement: Escaped unbalanced parentheses in strings now supported. ; 0.6 : Most enhancements based on suggestions by [http://nomicapolis.net/wiki/User:Chuck Chuck]. :* New operators: '''=''', '''==''' and '''disablecache'''. :* Operator bugfix: '''forall''' now works correctly with dictionaries. :* Operator enhancement: '''pstack''' output now more similar to [http://www.cs.wisc.edu/~ghost ghostscript] and thus much more readable. :* Operator enhancement: '''usertime''' and '''realtime''' now return floats, thus providing higher precision. :* Operator enhancement: '''rand''' and '''srand''' now use <tt>mt_</tt> functions. :* Operator enhancement: '''cvx''' now makes literal names executable, '''cvlit''' does the opposite, and '''xcheck''' recognizes executable names as exceutable, thus providing better compliance with PostScript. :* New feature: Now support for hex strings in < >. :* Feature enhancement: Debugging output in case of exceptions is now more detailed (similar to the new '''pstack''' output) and more readable. :* Feature enhancement: Serialized data is now signed so that it is no more possible to upload arbitrary php code from other sources. :* Feature enhancement: Compression algorithm for '''serialize''' is now configurable. :* Feature enhancement: Arguments given to tag or parser function calls are now available in the status dictionary. :* Feature enhancement: Introduced ''invalidexit'' exception. :* Feature enhancement: [, ], << and >> are now operators defined in systemdict, thus providing better compliance with PostScript. :* Internal enhancement: use symbolic constants for internal data structure; internal data structure now uses numeric rather than string keys. :* Internal enhancement: Inline preprocessing so that patch to Parser.php becomes redundant. :* Internal enhancement: Exception handling now in separate class. :* Internal enhancement: Function parse replaced by parseraw after preprocessing, parseraw renamed to parse. :* Several minor bugfixes and code structure enhancements. ; 0.563 :* Bugfixes in the operators which require a mark on the stack. Now throw an exception when no mark is found. ; 0.562 :* New operators: '''id2namespace''', '''namespace2id''', '''tolower''' and '''toupper'''. :* Feature enhancement: '''statusdict''' with additional items '''pageid''', '''namespaceid'''. ; 0.561 :* Bugfixes in the '''get, put, query''' operators. ; 0.56 :* New operators: '''serialize''' and '''unserialize'''. :* New feature: serialized code in tags and prologs. :* Feature enhancement: default namespace for prolog pages becomes configurable. :* Feature enhancement: prolog pages can now contain any text outside of pre-tags. ; 0.551 :* New operators: '''explode''', '''implode'''. :* Enhancements in internal code structure. ; 0.55 : :* New feature: use StackFunctions as an xml-like parser extension. :* Feature enhancement: '''statusdict''' now easier to use. :* New operator: '''concat'''. ; 0.542 : :* First version published.
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: