Last changes in the Scriptol language and the Scriptol-PHP compiler
| 7.0 - August 2007 - The @ symbol is now implemented to prevent PHP functions to display warnings on Web pages. - Constants are now really translated to PHP constant (with the define statement). - Constants may be declared extern now. - The 'scan by' control supports only one array now for compatibilité with array_walk of PHP 5. - Included the FTP interface in the archive. - Included the Winbinder interface too. |
|
6.3 - September 2006 - Variables may be embedded into double-quoted strings with a
$ prefix. Adding a $ prefix to the string is now deprecated. |
|
6.2 - August 2006 - Compatibility with PHP 5 improved. |
|
6.1 - June 2006 - The date works. The usual format is date("c", x),
x may be returned by time() or filetime(). |
|
6.0 - May 2, 2006. The compiler is now compatible with PHP 5. Scriptol PHP 4 is still supported. - Compatibility with PHP 5. |
|
5.7 - December 1, 2005 - Double-quotes sign inside single-quoted string are now escaped in the target PHP code, as dollar and curly braces. |
|
5.6 - October 25, 2005 - These functions are now built-in : round, filetype, exec. |
|
5.5 - August 25, 2005
|
|
5.4 - July 25, 2005
|
|
5.3 - June 25, 2005
|
|
5.2 - May 2005
|
|
5.1 - April 2005
|
|
4.7 December 2004
|
|
4.6 September 2004
|
| 4.5 July 2004 - Changes in the
C++ version only. |
| 4.4 June 2004 - Improved JavaScript generator by including the declaration of the external dom class. |
| 4.3 March 2004 - Implemented the new concept of Scriptet. - Unlimited number of dimensions is allowed to arrays. This works for both PHP and C++ targets. - Literal array implemented: a list of elements enclosed between curly braces. - Insert() and reserve() methods added to text. - Examples demonstrating how to enter a text from the console or a web page, now included. |
| 4.2 March 2004 - Changes in the
C++ version only. |
| 4.1 February 2004 - The nil assigment to remove an element from a dict is now working: x["str"] = nil. - A typed literal array is denoted by curly braces: Ex: int { ... } |
| 3.10 November 2003 - The double symbol ~~ allows to insert code directly into the target listing. - A natural is a "unsigned __int64" in C++ and a int in PHP, and a natural literal is terminated by "n". - Real numbers are better handled with this version. - Literal strings may be several lines now. |
| 3.9 Octobre 2003 - PHP 5 partially implemented and -5 option allows to produce PHP 5 compatible code. - Exceptions are handled with the try catch structure. Works with the C++ and PHP 5 targets. This is alpha feature. - An import ... /import tag is added to declare content of external Java classes. |
| 3.8 September 2003 All editions: - Added the boolval built-in function for compatibility with Visual C. - Description of classes of the library added to the libdoc subdirectory. Enterprise edition: - A typed array of objects is now implemented. |
| 3.7 July 2003 - Now the Scriptol to PHP compiler produces indented PHP code. - Typed array of int and text are now recognized. - A multi-lingual preprocessor is integrated. |
| 3.6 June 2003 - Added the reverse method to arrays. - The common compilers are now absolutely free for anyone and any program. - The enterprise edition of the compiler is generated by the install command. |
| 3.5 April-May 2003 - The define type = "function" statement allows to use functions as arguments. - The "function" keyword is deprecated, but still working in the Scriptol to PHP version. - An instance is declared by assigning the constructor (without the "new" operator) to the identifier. No other syntax is supported now. - A PHP or C++ array may be prefixed by the $ symbol. |
| 3.4 April 2003 - Changes in the
C++ compiler only. |
| 3.3 March 2003 - "define ident" allows to integrate a new type from an external library, for compatibility with C++. |
| 3.2 February 2003 - If an include statement holds a filename without the ".sol" extension, the file is not parsed. With the Scriptol C++ compiler, the statement is transmitted to the C++ target code. - Creating an instance of class with a "null" assignment allows to use extern PHP classes. |
|
3.1 January 2003 |
| 2.11 - Now you can use static variables without the need to declare any instance of the class. |
|
2.10 |
| 2.9 - The one-statement "if" and other one-statement control structures (for orthogonality) may be written now without the "let" symbol if the following statement starts with a keyword (break, continue, return, print, echo, define). Ex: if x < y break (instead of if x < y let break). - Added the "plural" function to built-in. - You can now pass comments to the target code with the double `` comment symbol. - Now you can declare a class inside "extern" tags (useful for Java classes) |
| 2.08 August 2002 - Changes in the C++ compiler only. |
| 2.07 July 2002 - Changes in the C++ compiler only. |
| 2.06 June 28, 2002 C++ version, First
public release The version number is the date for this compiler: 2 = year 2002, 6 = month june, a letter may follow. |
| 1.6a July 15, 2002 - Now the binary operators & | ^ are usable with arrays also, for intersection, union and complement of intersection. The || and # old operators are deprecated; - Compound assignment with union of arrays is now available. - the doXXX cast methods on dynamic object are replaced by toXXX and setXXX are suppressed. - The Scriptol to PHP compiler is now invoqued by solp on Windows & Linux and the Scriptol to C++ one by solc. |
| 1.6 July 1, 2002 - External variables and constants now can start with an underscore (not Scriptol ones). Ex: $(__FILE__) - Added the method "empty" to array. - Added several built-in functions. Look at the reference manual. - Now "extern" is a tag: you can enclose several external declarations between extern and /extern. |
| 1.5b June 7, 2002 - A variable declared inside the heading of a "for" control structure is now local to the block of statements, for compatibility with ANSI C++. - The "append" array's method is now useless. Suppressed. - Now both + and - operators are allowed on an array with a scalar. - The "merge" method is deprecated, but not suppressed for now. - In 4.2.1 version, the PHP staff has corrected the "array_unique" function. This may causes some difference when your program use the "unique" virtual method or the union operator. - Unique now returns void. - The "main" function has changed for compatibilty with C++. |
| 1.5a May 21, 2002 Arrays are indexed list, dicts are associative ones. The difference is reinforced to not be confused by indices and numerical keys. - Array and dict are no longer compatibles types.You can't assign one with the other, add them, etc... You still can use the "values()" method to convert a dict to array. - A "pack()" method replaces the "arrange()" one. - The "unique" method now return void. - Splicing a dict with another dict retains the keys (PHP loses them). For array, splicing causes a "pack". |
| 1.5 May 2, 2002 - Implemented an automatic cast for int variables assigned with real numbers. Sorry but this may cause some differences in previously written program but allows for full compatibility with the coming C++ version... - Option -quiet added to. - In the last version, not relevant error message may be thrown when an error occur, corrected. |
| 1.4a April 16, 2002 - Method "store" added to array, allowing saving it in a file (no PHP equivalent). |
| 1.4 beta April 11, 2002 - Now you can declare "extern" any PHP variable, constant or function and use it as scriptol object, with control of type at reference or assignment. |
| 1.3 Final April 4, 2002 The final 1.3 version is available for Windows and Linux. |
| 1.3c April 2, 2002 - Static attributes are now allowed. PHP has static methods but lacks for static attributes, however Scriptol bypass this limitation when compiling into PHP. - Added tests on static methods. - The "let" final element now is generalized for any one-line statement (along with "?"). |
| 1.3b March 26, 2002 - Added "-verbose" to the list of options. - No any message is displayed when running a program, now (but if -v option is passed). - The "not in" operator previously was not working on arrays. Corrected. - The tutorial is now included into the archives. |
| 1.3a Win/Linux March 18, 2002 - The archive is smaller once I have replaced the BCC 5.4 compiler by MingW 2.95.3. - The Linux version now can run the PHP code once it is compiled. |
| 1.3a Windows March 12, 2002 - Modified some system calls for the program to run under Unix as under Windows. |
| 1.3 beta February 20, 2002 - Now all tests on idents ignore truly case to prevent errors at runtime, as PHP is not case-sensitive (for identifiers of functions). - The "static" keyword is now recognized by the compiler for a method. |
| 1.2 final February 15, 2002 |
| 1.2e beta February 13, 2002 - Improved subscripting. Now the compiler recognizes a statement as ident[i][x..y] , providing that the i element is an list or a text. |
| 1.2d beta February 7, 2002 - Reduced the size of the compiler. - Now a script is launched directly when the compilation is successful, and thus you do not see difference with an interpreted language! (apart that errors are all detected at compile time, a Net advantage). - Now an instance of class may be declared in any scope (including another class). - Conditional assignment with the := operator lets the target assigned if the source is not nil or the target not assigned yet. (This is in level 2.) |
| 1.2c beta January 25, 2002 - The annoying file to include "scriptol.PHP" is no longer required. - Now splicing is available for text also. Thus slicing and splicing can operate on text, array and dict. |
| 1.2b beta January 21, 2002 - Extended methods to dynamic variables with empty [] indices. - The method toText of array and toArray of text has been replaced by join and split to avoid eventual confusions. - The "in" operator can now be used also in composite if. - The "match" operator now works in any relational expression. The "swap" option added to the define statement. - The "Match" chapter moved to the new Level II reference manual (this has no effect on the compiler). - Now an array initializer accepts any expression as element. - Added to built-in the "swap" function. - Built-in functions and virtual methods are no longer case-sensitive. |
| 1.2a beta January 17, 2002 - Simplified the language, array and dict are unified with a common set of methods. - Now dynamic variables have all the methods of any type. - And thus one can now invoque a method on an element of an array, for example: print myarray[10].upper() One can also chain the methods: myarray[10].lower().capitalize() - Post-casting is a new set of methods that give a type to dynamic variables: doInt(), doText(), etc...and dynamic variables may be changed to typed ones with setInt(), setText(), etc... - A new type of var is implemented: "function", that allows to pass functions as parameters. - By assigning "nil", you can now remove an element or a range of an array or dict. - Added to text the method "dup". |
|
1.1 final January 11, 2002 1.0p January 9, 2002 |
| Tweet |
|