- 31 October 2005.
- Increased speed of loading compiled scripts.
- TPaxScripter.OnLoadDll event.
- TPaxScripter.IsExecutableSourceLine method.
- 25 August 2005.OnHalt event.
- 17 August 2005. OnInclude event.
- 30 June 2005. CallFunctionEx, CallFunctionByIdEx methods.
- 14 June 2005. paxScript engine is compatible with Free Pascal 2.0.
- 16 March 2005. Support of Single and Currency types.
- 13 March 2005. Importing zero-based static array types.
- 28 February 2005. Converting dfm files into paxJavaScript, paxBasic and paxC scripts.
- 15 February 2005. VBScript routines.
- 18 January 2005. Importing Delphi forms. New TPaxScripter methods:
procedure AddDelphiForm(const DfmFileName, UnitFileName: String); overload;
procedure AddDelphiForm(const ModuleName: String; Dfm, Source: TStream); overload;
-
- 5 January 2005. Compact representation typed pax-arrays.
- 25 December 2004. Improvements in the code exploring.
- 27 November 2004. Importing interface types.
- 2 November 2004. Operator overloading in paxJavaScript.
- 8 October 2004. Improved performance in a multi-threaded application.
- 20 September 2004. Support of ASP tags <% .... %>.
- 9 September 2004. New TPaxScripter methods
procedure UnregisterConstant(const Name: String; Owner: Integer = -1);
procedure UnregisterVariable(const Name: String; Owner: Integer = -1);
procedure UnregisterObject(const Name: String; Owner: Integer = -1);
procedure UnregisterAllVariables;
procedure UnregisterAllObjects;
procedure UnregisterAllConstants;
allows you to unregister once registered variables, constants and objects.
- 16 August 2004.
- Explicit type casting (paxPascal, paxBasic, paxC).
- TPaxScripter.OnDefine event.
- Procedure RegisterField method allows you to register private, protected and public fields
of a Delphi class. For example:
RegisterClassType(TMyClass);
RegisterField(TMyClass, 'F1', 'Integer', Integer(@TMyClass(nil).F1));
- 29 July 2004. Operator overloading. The list of overloadable operators is: '+', '-', '*', '/',
'=', '<>', '>', '<', '>=', '<=', 'shl', 'shr', 'mod'.
- 23 July 2004. Dynamic arrays in paxPascal.
- 7 July 2004.
A few bugs, related to the thread safety and JavaScript prototypes, have been fixed.
New TPaxLanguage property JavaScriptOperators allows paxScript to interpret the arithmetical and
comparison operators in paxPascal, paxBasic, paxC as JavaScript operators. For example:
var x, y, z;
begin
x := 'abc';
y := 77;
z := x + y;
writeln(z); // result: abc77
end.
- 21 June 2004. Registering overloaded routines and routines
which have default parameters.
- 9 June 2004. Set types.
- 1 June 200 4. Overloaded routines.
- 12 May 2004. OnUsedModule event allows you to create modules,
enumerated in the uses clause,
on the fly.
- 5 May 2004. Default parameters. (All pax-languages).
- 3 May 2004. Fixed bugs related to the search pathes.
- 29 April 2004. You can use {$I} directive instead od {$include}.
- 20 April 2004. Suport of the IN keyword in the uses clause.
- 12 April 2004. Conditional compilation.
- 9 April 2004. LISPPA technology.
- 15 March 2004.
Optimization of working with imported classes. The speed of calling imported methods and routines has been increased considerably.
- 6 March 2004. >You can import Delphi classes, routines, variables and constants from a dll.
paxScript importer
(paximp.exe) allows you to generate source code of the dll.
- 16 February 2004. Separate compilation of paxScript modules.
- 11 February 2004. Direct call-routines defined in a dll in paxBasic and paxC.
- 19 January 2004. paxScript
importer has been extended with a possibility to import
enumeration types, variables and constants.
- 26 December 2003. Fixed bugs related to the memory leak and thread-safety.
- 28 November 2003. You can embed your paxScript scripts into html pages and embed variables into
the string literals. Println statement has been added to all pax-languages.
- 27 November 2003. Decreased size of paxScript footprint. It takes about 20KB per extra TPaxScripter
instance. Decreased size of compiled scripts. Stack size property.
- 24 November 2003. Pax languages are represented as Delphi components, so you can choose selected
languages. Besides the base of designing user-defined languages has been created.
- 19 November 2003. Extra TPaxScripter methods allows to build the code explorer tree. The code explorer
panel has been added to paxIDE.
- 15 November 2003. New paxScript importer (comes with full source code for registered paxScript
users).
- 10 November 2003. Direct call routines defined in a dll.
- 30 October 2003. Bug fixes in paxJavaScript date functions. Variant array routines.
- 29 October 2003. Optimization of paxJavaScript code.
- 15 October 2003. TPaxScripter.Values property provides access to script-defined variables.
TPaxScripter.GetMemberID, TPaxScripter.CallFunctionByID methods. Long string literals. String
literals with parameters (see paxPascal features . String handling routines.
- 2 October 2003. paxJavaScript, final release.
- 19 September 2003. TPaxScripter property OnUndeclaredIdentifier allows you to set up
undeclared variables dynamically.
- 19 September 2003. paxJavaScript, beta-version.
- 18 September 2003. PAX_RTTI.pas.
- 10 September 2003.
Support of Cardinal (uint) and Int64 (long) types. Const and Label statements,
Inc and Dec procedures in paxPascal. Regular expression support powered by
TRegExpr library. Memory leak fixes.
- 21 August 2003.
All pax-languages support Boolean, Integer, String, Double and record types.
paxPascal supports Object Pascal syntax and has a few
extra features.
- 18 August 2003. Optimization of array processing.
- 30 July 2003. SaveToStream, LoadFromStream methods.
- 25 July 2003. Optimization of recursive procedures.
- 22 July 2003. Code optimization (data conversion, function calls).
- 17 July 2003. Code optimization (arithmetical, logical, bitwise operations).
- 14 July 2003. Speed of loop processing was increased twice.
- 10 July 2003.
- You can import Delphi routines that have open array parameters. In partilular, Delphi Format
function is available for importing now.
- All pax-languages support the member visibility: public and private.
- 6 July 2003.
TpaxScripter.CallFunction method allows to call a method of host-defined or script-defined object.
For example:
paxScripter1.RegisterObject('FormMain', FormMain);
paxScripter1.AddModule('main', paxBasic);
paxScripter1.AddCode('main', 'Function F(N)');
paxScripter1.AddCode('main', ' return N + N');
paxScripter1.AddCode('main', 'End Function');
paxScripter1.Compile;
V := paxScripter1.CallFunction('F', [3]);
paxScripter1.CallFunction('Hide', [], 'FormMain');
- 3 July 2003.
- paxC unsigned right shift operator '>>>'.
- Hexadecimal and bit constants in all pax-languages: $5A, 0xFF4E, 0b110001.
- Backslashes in string constants in all pax-languages: "Two \n lines".
- 2 July 2003.
TpaxScripter.OnRunning event allows to process messages at the script run-time.
For example:
procedure TForm1.paxScripter1Running(Sender: TpaxScripter);
begin
Application.ProcessMessages;
end;
- 23 June 2003.
TpaxScripter.CallFunction method allows to call a script-defined function
or procedure located in global (noname) namespace. For example:
paxScripter1.AddModule('main', paxBasic);
paxScripter1.AddCode('main', 'Function F(N)');
paxScripter1.AddCode('main', ' return N + N');
paxScripter1.AddCode('main', 'End Function');
paxScripter1.Compile;
V := paxScripter1.CallFunction('F', [3]);
- 16 June 2003.
TpaxScripterPrintEvent type has been changed:
TpaxScripterPrintEvent = procedure (Sender: TpaxScripter;
L: TStringList) of object;
instead of
TpaxScripterPrintEvent = procedure (Sender: TpaxScripter; const S: String)
of object;
- 16 June 2003.
Syntax of paxBasic For-Next statement and With statement has been changed
to provide a compatibility with VB.NET. The following code are allowed now:
Dim I, J
For I = 1 To 2
For J = 1 to 3
print I, " ", J
Next J, I
With Form1
.Caption = "abc"
End With
I'll be very grateful for any remarks regarding the language structure and
bug reports.
Please write to me at the e-mail address: