M1 Native: Latest LiveCode Releases

by Heather Laine on May 31, 2022 No comments

Today we are pleased to announce the release of LiveCode 9.6.8 rc-1 and the latest 10 preview release, Developer Preview 4, both of which now include the ability to run natively on the latest M1 Macs.

LiveCode 9.6.8 is a maintenance release, and as such focusses primarily on bug fixing and regressions. We have made an exception for M1 support, to ensure this gets into a stable release as soon as possible without having to wait for the end of the LiveCode 10 release cycle. The LiveCode 10 dp4 release has a few more of the features you’ve been waiting to get your hands on.

New Features

M1 Support – 9.6.8 rc-1 and 10 dp4

Apple architecture support has been added to the macOS IDE, standalone builder, and server engine. The IDE and server engine are now shipped as universal binaries with both an Intel and Apple architecture slice. All externals shipped with LiveCode, except for XPDF and the dboracle revdb driver, also now support Apple architecture. You can now select whether you want to build a macOS standalone with an Intel slice, an Apple slice, or both on the macOS pane of standalone settings.

Note: Apple architecture support is currently experimental. To run the IDE using Apple architecture (on supported machines), you must toggle the `Open using Rosetta` option in the `LiveCode.app` bundle’s `Get Info` pane in Finder.

Nothing is Constant – 10 dp4

A new constant “nothing” has been added to expose the special value placed in uninitialized variables. The main purpose of this is to allow it to interoperate smoothly with JSON, which has a “nothing” constant. Whilst we did previously have this concept in LiveCode, it was not named in a way it could be used easily from script. Watch this space for more progress on JSON enhancements.

Array Literals – 10 dp4

Dictionary and sequence literal syntax has been added allowing much easier expression of array-based values. The benefit of this is that you can easily express structured data direct in script without using lots of put statements.

You will be able to write things like:

   put { "a": "b", "c": "d" } into tVar1

Instead of:


   put "b" into tVar1["a"]
   put "d" into tVar1["c"]

This syntax is the same as in Python and JSON, allowing easy copy-paste interoperability between the languages.

Android Activity LCB function – 10 dp4

An activity is a single, focused thing that the user can do. On Android, an Activity is an application component that provides a screen with which users can interact in order to do something. Starting another activity, whether one within your app or from another app, doesn’t need to be a one-way operation. You can also start another activity and receive a result back. For example, your app can start a camera app and receive the captured photo as a result. Or you might start the Contacts app in order for the user to select a contact and you’ll receive the contact details as a result.

A new Android-specific utility handler “StartActivityForResult” has been added to LiveCode Builder which starts an activity defined by a specific Intent and calls a provided callback when the activity returns with any results it generates. For more details see the entry for “StartActivityForResult” in the android-utils section of the LiveCode Builder dictionary.

Fixes and Enhancements

Breaking Change

Correction to system version string on macOS. The engine will now return the correct value for the systemVersion on all macOS versions. Previously, when running on macOS 11.0 and above, the system version would be reported as 10.16.0 . Now, on Big Sur, the system version will be reported starting from 11.0.0 ; and, on Monterey, the system version will be reported starting from 12.0.0 .

Fixes in 9.6.8 rc-1 and 10 dp-4

  • The revpdfprinter driver is now included with the server engine allowing open printing to pdf to work
  • Repeatedly setting the filename of a mobile player control on iOS now works reliably
  • On macOS, the systemVersion will now return the correct value on all operating system versions
  • The default deployment platforms for a new stack are now appropriate for the current license
  • Using exit to top in a function called when evaluating a function call’s arguments now works correctly
  • AppleScript can now be used to control other applications from both the IDE and standalones on macOS
  • The XPDF external is now available again
  • The minWidth, maxWidth, minHeight and maxHeight properties now work correctly on stacks which have their scaleFactor set
  • Exiting fullscreen media playback will no longer cause a crash on iOS
  • The (legacy) Android app icon standalone setting will now persist from older versions of LiveCode
  • The return value of “do as applescript” is now formatted correctly when running through Rosetta on Apple architecture macs
  • The map widget API key is now reliably included in the standalone manifest
  • Folders added to the Copy Files list are now included recursively in web standalones
  • Adding empty files to the Copy Files list will no longer cause standalone building to fail when targeting iOS
  • The supported platforms of the INI Library, Mac Status Menu, Secure Key Storage, Time zone library and Drawing library extensions are now displayed correctly in the standalone builder
  • Encoding text to utf16be using the textEncode function now works correctly on Windows
  • The user guide PDF no longer has missing images
  • Using the image variant of export when the source is not an image object will no longer cause a crash.
  • Updating the screen in a tight loop on macOS will no longer cause memory usage to slowly increase
  • The dictionary entries for mergJSON are now available again
  • The put command can now be used without a target before else in a single-line if statement
  • Ensure everything is redrawn when performing a visual effect immediately after another window update on macOS
  • Using the widget variant of export when the source is an unknown widget kind will no longer cause a crash

Fixes in 10 dp-4 only

  • Deleting a stack will no longer cause an exception when running in web
  • An execution error no longer occurs when a user clicks on a marker in the Map Widget
  • The Map Widget row of the inclusions pane in the standalone settings now includes Web in the supported platforms list
  • An issue preventing check for updates working correctly has been resolved
  • Files created in the web engine’s memory filesystem can now be subsequently read from

LiveCode Global Feature Focus – the new IDE

If you are a part of the ongoing 22/23 LiveCode Global, our Feature Focus session on Tuesday 31st May 2022 will feature a special exclusive build of 10 dp4 prototyping the new Single Window IDE. If you’d like to get your hands on this and be part of the focus group experimenting with this and giving feedback, you can still sign up for LCG 22/23 here.

Getting the releases

To get the latest LiveCode releases, either use the built in updater to check for releases, or log in to your account, here, and download. To see test releases (both rc and dp indicate this is a test release) please scroll down the list of downloads to below the list of Stable releases, to see the test releases available to you.

Not got your license yet? Get one here.

Heather LaineM1 Native: Latest LiveCode Releases

Related Posts

Take a look at these posts

Join the conversation

*