Script Compiler Project

Your scripts run 10x faster, your code base is even more secure.

(Pre order your Script Compiler to bring this project to life. First preview estimated for summer 2022)

Project Details

Thank you to everyone who completed the Script Compiler survey following the proposal put forward to you by CEO Kevin Miller (here if you missed it). The survey has shown us there is considerable interest in bringing the Script Compiler project to life. If everyone in the survey makes the purchase indicated we would be around 80% of the way towards funding this project, which gives us the confidence to put these purchasing options to you. By pre ordering your Script Compiler you are helping to bring this project to life. If we do not get the numbers required then we will simply refund everyone in full, so it’s a no risk commitment.

What are the project benefits?

1. Scripts would run around 10X faster after a full compile. (Please note this is a reasonable estimate from our prototype experiments for data intensive processing scripts, there may be aspects which run a little faster or slower once we finish the project and optimize things.) This means it would be practical to write applications that require intensive data manipulation in LiveCode. These applications could be written either client-side or server-side. Even without the full compilation, all LiveCode users would benefit from a 2-3x speed up in calculation heavy operations.

2. By compiling scripts fully, standalones become even more secure. We’ve put a lot of work into making standalones secure at present but there are still limitations on the existing approach that are fundamental to how an interpreter like LiveCode operates. Compiled code does not leave any trace of the original script text.

3. We can upgrade the syntax parser to allow the easy addition of new syntax. This is a big one, there are places where we can easily replace function calls with full English-like chunk expressions. The reason this gets so much easier to do is that we will re-write the syntax parser in LiveCode script and then … you guessed it … compile it with itself! Imagine being able to easily replace all those XML calls and database syntax with English-like phrases. This will be a big bonus for the Web platform as we work on replacing syntax that currently looks something like this:

do “document.getElementById(‘say hello’).value=‘hello world’” as “JavaScript”

with something much more like this:

put “hello world” into field “say hello” of the webPage

Other syntax examples should this project succeed could be…

revOpenDatabase("odbc", hostAddress, databaseName, [userName])

Could become something like this:

open odbc database NAME at HOST with username USERNAME and password PASSWORD

or…

local tAttachment
mobileComposeMail "Test E-mail", "guido@example.net",,, "This is the e-mail body text", tAttachment

Could become something like this:

compose mail "This is the e-mail body text" titled "Test E-mail" to "guido@example.net" cc "another@example.net" bcc "someother@example.net" with attachment tAttachment

4. We would greatly improve error handling and reporting for all users in the process of doing this.

5. You wouldn’t need to rewrite your existing scripts to compile, though you may need to ensure your scripts are properly written. For example don’t miss out things like “the”. However we can provide warnings against any problems of this nature so you can tweak them. (Existing scripts that aren’t going through the new compiler will continue to work as they do today.)

6. It will make it a lot faster for the LiveCode team to develop LiveCode in the future. We can write lots of the engine in LiveCode script instead of using C++ then compile it.

Single Payment Options

Contribute
$99 Ex VAT

No Compiler – but supports the project that will bring 2-3x speed boost and better syntax to core product. All LiveCode license holders benefit.

LiveCode Compiler: 3 Months
$125 Ex VAT

LiveCode Compiler: 6 Months
$249 Ex VAT

Get the 10x Compiler with all benefits for 6 months (No subscription) + supports the project that will benefit all LiveCode license holders.

Subscription Payment Options

LiveCode Compiler: 1 Year
$499 Ex VAT

Get the 10x Compiler with all benefits on a 12 month subscription + supports the project that will benefit all LiveCode license holders.

LiveCode Compiler: 2 Years
$999 Ex VAT

Get the 10x Compiler with all benefits for 24 months on subscription + supports the project that will benefit all LiveCode license holders.

LiveCode Compiler: 3 Years
$1499 Ex VAT

Get the 10x Compiler with all benefits for 36 months on subscription + supports the project that will benefit all LiveCode license holders.

Terms

All license periods start from the final shipping date of the Script Compiler. Your license renewal date will be adjusted once we have this information. If the project does not raise enough money to go ahead, we will refund all purchases.

Frequently Asked Questions

Answers to your questions from the survey

All platforms will benefit. Code will run faster and readable scripts will be removed whatever platform you are targeting.

You would be able to target platforms in the same way as you can now from the Standalone builder. So you can build for any platform you have a license for from Mac. If you are on Windows or Linux, you cannot target iOS.

There would be one compiler that allowed you to target different platforms.

Yes, though the exact impact will depend on exactly how much processing you are doing during these operations. For example, when scrolling a Data Grid, the contents of the rows are often individually calculated by a script. This will be faster, so you are likely to notice an improvement.

You would see many of these benefits in your app. The biggest benefits are to heavy calculations. Command and function calling will be faster. Repeat loops certainly would be improved. File handling and internet communication will only be faster if they are doing extensive data processing. Scrolling will be faster if it is doing calculations during scrolling, which is often the case.

No, this is already under way and would not be affected by this additional project.

No, the script compiler would be an additional project that will increase the budget for LiveCode this year and will not affect projects that are already on our roadmap.

No, we are already heavily committed to Web in LiveCode 10 and this would not impact our delivery of this very important and exciting piece of our future.

Web will initially benefit from some performance and engine size improvements and the ability to fully secure scripts. Fully compiled output on Web is different to other platforms in that it would output directly to Javascript without going through web assembly, this would be a logical extension to the project after the initial phase is complete.

We would aim for it to be part of the standalone builder, so that using it is seamless.

Once your app is compiled with the compiler tool it will not be editable, to make changes you need to go back to your stack and work from there.

By default the compiler would compile all scripts in stacks which are built into the app, However, you will be able to indicate on a per-script basis whether it should or should not be compiled. (For example, in cases where you need to do dynamic script manipulation at runtime).

The full Script Compiler would be an addition to the existing license lineup. If you want the ability to compile your app to machine code, get the full security benefits and the 10x speed increase, you would need to purchase the new compiler. However, the new syntax improvements and a speed up of 2-3 times in general LiveCode coding would be a benefit for all license holders, old and new. You would get these benefits without any additional purchase if you have an active existing license.

We would be targeting a first release for this summer.

Yes. The compiler won’t take away any existing functionality – it would compile scripts which are present at the point the standalone is built. All dynamic script capability (i.e. creating / setting at runtime) would still be supported.

The Script Compiler could in the future facilitate creation of native code libraries which could be used by other languages. This would not be in our first iteration but is very interesting for the future.

Steven CrightonThe Script Compiler Project