MetroMail Responsive Email Template
 
 
icon 2    March 21st, 2014
 
 
 
UPDATES & NEWS FOR THE LIVECODE COMMUNITY
 
 
 
 
 
 
 
TOP STORY: 7.0 Goes Into Testing
 
 
main image

LiveCode 7.0 has just gone into its first public test release. Why should you be excited?

 

The Unicorn is Tamed

There are lots of reasons. If you've been with us for a while, and especially if you use a language that is not "plain" English, then the news that the unicorn of Unicode has finally been tamed will be the best news you've heard this year. Right to left text, seamless handling of accents, Cyrillic or Chinese alphabets, and everything else implied by Unicode means LiveCode is ready for a big expansion into Asian, Arabic, Eastern and other markets - not to mention making French, Spanish, Italian and many other European languages far easier to support.

 

The Monolith is Broken

But the hidden news in this release is that it represents if not the full "Next Generation" release promised by our Kickstarter campaign, at least the biggest chunk of it. This engine has been refactored to a very large degree, starting to bring the modularisation and modernisation we need to build for the future. You may not immediately see any dramatic benefit. LiveCode still works "just as before". Only, it doesn't. It's working in brand new ways to produce the same effect, and this means that now we - and you - can really start to deliver. The engine is no longer a 20 year old monolith. It is in the process of being rejuvenated.

 

Goodbye, Butterfly

The big idea of modularization is that an Open Source community can work on self contained parts of the engine without the "butterfly effect" causing unexpected and unwanted behavior in other areas. This should mean that the rate of progress both from you, the community, working on the engine and our own dedicated team working on all the features you want, can increase dramatically. We're not quite there yet, but we've got a long long way. Future releases will be building on the huge amounts of work that have already been done here.

 

Enough preamble... what exactly is new for you in this test release of 7.0?

 

A Warning: The file format has changed. Back up your stacks and expect the unexpected. This is an early test release and if you don't encounter any issues, you're not really trying.

 

Unicode for You

In LiveCode 7.0, the engine has been extensively re-written to be able to handle Unicode text transparently throughout. The standard text manipulation operations work on Unicode text without any additional effort on your part; Unicode text can now be used to name controls, stacks and other objects; menus containing Unicode selections no longer require tags to be usable - anywhere text is used, Unicode should work.

 

New Syntax and Functions

We're bringing you quite a few new terms to deal with the new unicode abilities. I don't want to reprint the release notes here, but I do highly recommend you read them. There is a nice overview of what unicode is and why and how LiveCode had to change its handling of it, followed by detailed notes on exactly how to use it. Here is a sample:

 

Chunk expressions: byte, char, codepoint, codeunit

 

byte x to y of text -- Returns bytes from a binary string
char x to y of text -- As a series of graphical units
codepoint x to y of text -- As a series of Unicode codepoints
codeunit x to y of text -- As a series of UTF-16 codeunits

 

The key change is that byte and char are no longer synonyms - a byte is strictly an 8-bit unit and can only be reliably used with binary data. For backwards compatibility, it returns the corresponding native character from Unicode text (or a '?' if not representable) but this behaviour is deprecated and should not be used in new code.

 

The char chunk type no longer means an 8-bit unit but instead refers to what would naturally be thought of as a single graphical character (even if it is composed of multiple sub-units, as in some accented text or Korean ideographs). Because of this change, it is inappropriate to use this type of chunk expression on binary data.

 

The codepoint chunk type allows access to the sequence of Unicode codepoints which make up the string. This allows direct access to the components that make up a character. For example, á can be encoded as (a,combining-acute-accent) so it is one character, but two codepoints (the two codepoints being a and combining-acute-accent). The codeunit chunk type allows direct access to the UTF-16 code-units which notionally make up the internal storage of strings. The codeunit and codepoint chunk are the same if a string only contains unicode codepoints from the Basic Multilingual Plane. If, however, the string contains unicode codepoints from the Supplementary Planes, then such codepoints are represented as two codeunits (via the surrogate pair mechanism).

 

The most important feature of the 'codeunit' chunk is that it guarantees constant time indexed access into a string (just as char did in previous engines) however it is not of general utility and should be reserved for use in scripts which need greater speed but do not need to process Supplmentary Plane characters, or are able to do such processing themselves. The hierarchy of these new and altered chunk types is as follows: byte w of codeunit x of codepoint y of char z of word...

 

Read the rest of the release notes here (and don't miss the important information about numToChar and charToNum).

 

Don't miss Ali Lloyd's excellent blog post on all the new chunk types in 7. Along with these chunks he talks about the new sentence, paragraph and trueWord chunks.

 

We really need your involvement at this stage. We need you, yes you, to download 7.0 dp1 and test it. Then tell us what doesn't work by reporting all bugs in the Quality Center. We want this release to be solid, stable, and deliver everything it promises. To do that it needs as much real world testing as it can get. We've been testing it for some months now. A tiny group of early outside testers have had their go at it. Now it's your turn.

Description: Macintosh HD:Users:rglassman:Desktop:SNV31034a.jpg

About The Author

 

Heather Laine is Customer Services Manager for RunRev Ltd.

 
 
section image
 
7.0 Goes Into Testing
 
7.0 is not just Unicode, find out what else there is to be excited about
 
read more
 
 
section image
 
Reaping the Whirlwind
 
How to handle the influx of new releases arriving on your desktop
 
read more
 
 
section image
 
Gemischte Doppel
 
Success story: from drawing board to chart topper in 3 months flat.
 
read more
 
 
section image
 
Mobile Browser Control
 
This lesson describes how to build a simple web page navigator for mobile
 
read more
 
 
 
Join Us in San Diego
 

Early Bird Pricing Still Available!

 
download
 
 
Featured Extensions
 
section image
 
LC Tasklist
 
Efficiently manage and fix your code with bookmarks by simply imbedding keywords into your script comments.
 
read more
 
 
animation Engine
 
Scripters Scrapbook
 
Your personal reference library and source code repository. Integrate desktop convenience web resources
 
read more
 
Connect With Us
 
 
RunRev © Copyright 2013 . All Rights Reserved
 
 
 
RunRev © Copyright 2013 . All Rights Reserved