Hi folks,

Just a quick update to let you know that work has already started on the "LiveCode Infinity" improvements to LiveCode Builder.

There are two really interesting things that will be finished soon.

Variables in LCB are going to become lexically scoped (https://github.com/livecode/livecode/pull/4113). This means that variables declared inside an "if" or "repeat" block won't be accessible after the end of that block.

    if true then
       variable tVar as String
    end if
    -- tVar isn't accessible here

This also means that if you have a "repeat" loop, the variables that are declared inside the loop will be automatically reset on each iteration. It helps avoid bugs where temporary values created inside a loop get carried over to the next run of the loop.

   repeat 5 times
      variable tVar as optional String
      -- tVar is reset to "nothing" every time the loop runs
   end repeat

If you wanted tVar to be preserved from one iteration to the next, you can simply move the declaration outside the "repeat" loop.

Finally, it means that you can now "shadow" variables. For example, this will become valid LCB code:

   variable tX as Array
   repeat 5 times
      variable tX as Number
      repeat 4 times
         variable tX as String
      end repeat
   end repeat

The second new feature is the "bytecode" block (https://github.com/livecode/livecode/pull/4097). This lets you write blocks of raw LCB bytecode in your LCB source files. At the moment there are not very many places where this is likely to be useful, but in the future when we add more bytecodes (as part of the "LiveCode Infinity" project) bytecode blocks will let us write much more of LCB in LCB.

I believe that "unsafe" blocks and "unsafe" handlers will be added soon. These will be used to mark code that does risky direct memory manipulation.

                                    Peter

--
Dr Peter Brett <peter.br...@livecode.com>
LiveCode Technical Project Manager

LiveCode 2016 Conference: https://livecode.com/edinburgh-2016/

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to