Pascal Script - Lazarus wiki (original) (raw)

Deutsch (de)English (en)español (es)日本語 (ja)русский (ru)

Pascal Script is an Object Pascal/Delphi/Lazarus-compatible interpreter with bytecode compiler that delivers a scripting environment for application programs.

It currently works in macOS, Windows and Linux on 32-bit and 64-bit x86, PowerPC and ARM processors.

It was created and is maintained by Carlo Kok and is copyrighted by RemObjects software as freeware with full source available.

The fixing of a few incompatibilities between ROPS (RemObjects Pascal Script) and Free Pascal 2.0.1 was made by Bogusław Brandys with a great help of many developers from #fpc and #lazarus-ide IRC channels. Thank You.

Its main characteristics are :

The download contains the components package for Delphi (various versions) and Lazarus + a few samples for Delphi (which may or may not work under Free Pascal+ Lazarus). It is work in progress...

This component is now designed for cross-platform applications, however limited to 32-bit Intel platform only. I'd like to make it work on PowerPC and 64-bit architectures someday. (Note: The current version seems to support 64-bit machines, according to RemObjects.)

Screenshots

Here are some screenshots how it looks under Lazarus:

License

BSD like, see full text.

Download

This is the main page of RemObjects Pascal Script distribution. There are download links for binary packages.

Change Log

Dependencies / System Requirements

Installation

Compilation errors

When compiling to install the package, the compiler will stumble on two lines in uPSR_forms.pas:

RegisterMethod(@TAPPLICATION.HELPCOMMAND, 'HELPCOMMAND'); // <-- this one RegisterMethod(@TAPPLICATION.HELPCONTEXT, 'HELPCONTEXT'); RegisterMethod(@TAPPLICATION.HELPJUMP, 'HELPJUMP'); // <-- and that one

Simply comment out the lines. These methods are not yet implemented in the LCL.

Usage

Drop the PascalScript component on a form and a few plugins. (TODO:finish)

If you get the error "Fatal: Can't find unit uPSCompiler used by ...", open up the pascalscript package, and under the "more" options, select "add to project".

See the example projects.

See also these articles from RemObjects.

Example application

Sample small console mode interpreter application:Pascal Script Examples (psce)

Sample components Demo with Lazarus GUI: [[1]]

History

Pascal Script started out in 2001 with CajScript 1.0, which was soon superseded by CajScript 2.0 (later called Innerfuse Pascal Script 2.0). Version 2.0 interpreted scripts while it ran them, which had the disadvantage that every piece of code had to be reparsed every time the script engine went over it. With Pascal Script 3.0, this was changed to a new model, where the compiler and runtime were completely separated from each other and used a custom byte code format to represent the compiled script. This compiled script only contained the bare minimum that was required to execute the code. Later, when Carlo Kok joined RemObjects, it was renamed RemObjects Pascal Script and is now being maintained by RemObjects Software.

One prominent use of Pascal Script is the Open Source InnoSetup project. InnoSetup is a widely used setup engine that uses Pascal Script as scripting engine to provide advanced scripting abilities during installation and uninstallation. Using Pascal Script, users can customize almost all parts of the setup, add new wizard pages, call into dlls to add advanced features and provide custom behavior and install conditions.

See also