Last changes in the Scriptol programming language
and the Scriptol-PHP compiler
Download page -
Home
|
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.
- XML declaration recognized. Not used for now.
|
|
6.2 - August 2006
- Compatibility with PHP 5 improved.
- Added the -4 option for compatibility of this edition with PHP
4. This is limited to the syntax, new functions are not available
with the PHP 4 interpreter.
|
|
6.1 - June 2006
- The date works. The usual format is date("c", x),
x may be returned by time() or filetime().
The "c" option works only with PHP 5.
|
|
6.0 - May 2, 2006. The compiler is now compatible with PHP
5. Scriptol PHP 4 is still supported.
- Compatibility with PHP 5.
- The "match" command, previously deprecated, is no
longer supported.
- This version of the compiler is compatible with PHP 4 for now,
even if a version for PHP 4 exists.
|
|
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.
- toString method added to array.
|
|
5.5 - August 25, 2005
- These methods are now built-in:
- opendir, readdir, closedir.
- is_dir, is file.
- filetype, filetime, file_exists
- Dir.get() added to dir methods (requires dir.sol included).
|
|
5.4 - July 25, 2005
- The archive is splitted into two files, one for the Scriptol
to PHP compiler, the other one for the Scriptol to C++ compiler.
- The dir keyword is added to
|
|
5.3 - June 25, 2005
- Multi-line strings are enclosed inside ~~ .. ~~ markers and
may be assigned to variables.
- Added time() and localtime() to built-in functions.
- For full compatibility, PHP compatible literal string are
written:
$"string"
or $'string'
and C compatible string are written:
"string"
or 'string'.
|
|
5.2 - May 2005
- Added the input statement to the language.
- Methods on numbers are replaced by constructors and deprecated.
- The randomize built-in function requires one argument.
- These functions are now built in: cos, sin, tan, acos, asin,
atan, ceil, floor, log, exp, abs, sqrt
|
|
5.1 - April 2005
- Overloading of both static and non static method is now allowed.
- The reference manual has been relooked. The old tutorial is
now integrated into the reference manual.
- Added these methods to dyn: isArray, isText, isNumber, isReal,
isBoolean, isNatural, isInt, isInteger, isFile.
- Added the cat method to text.
- Corrected bug when chaining methods.
|
|
4.7 December 2004
- Line feed may be inserted inside enum structures.
- Typed arrays of int, text, real, etc... are now parts of
the common language.
|
|
4.6 September 2004
- It is now possible to align on the next line the ending curly
brace in literal arrays, for better readabilty.
- The isNumber() method is added to text .
- a new keyword, cstring, is now recognized by the compiler
and replaces both external types string and char *.
- The compilers have been modified to work better in the console
of Windows XP.
- Extended the include statement to allow numerical sub-directories.
- Arrays of natural, real and number are now implemented.
|
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
- The "using xxx" statement produces a C++ "using
namespace xxx;" statement. No effect when compiled to PHP.
|
2.11
- Now you can use static variables without the need to declare
any instance of the class. |
|
2.10
- The language now allows to declare a class or a virtual
object just by invoking its constructor.
Ex: print Object(10)
is equivalent to: Object o(10);
print o
- The constructor of an int or a text may be used for conversion
purpose.
Ex:
text a = "12"
int x = int(a)
- Options at command line may be combined:
solp -br xxxx is
equivalent to solp -b -r xxxx
|
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
Implemented inheritance of class.
The method "compare" now compares lexicographically
(no case).
The method "identical" performs case-sensitive comparison.
1.0p January 9, 2002
Added the union || operator to complete operators on lists.
1.0n January 7, 2002
Added these methods to text: toInt(), toReal()
Added the toText() method to integer and real (or number).
1.0m January 2, 2002
Support to Java now available.
Methods may be chained now, ex: a ="DEMO"
a.lower.capitalize() ...returns "Demo"
Now you can assign several variables the elements of array or
dict by a multiple assignment..
Multiple assignment allowed to call of function returning a single
value.
Added the classical "str" to list of built-in functions.
It is equivalent to strval.
Both array and dict now has a sort and a kSort method, the first
sorting the values and the second sorting the indexes or keys.
1.0l December 28, 2001
A method may be associated to a literal. For text literal mainly.
Ex: "DEMO".length() returns
4.
1.00 First version, October 22, 2001
Several updates will follow until the 1.0l one.
|
|
|