Fat widgets

Kevin Miller kevin at livecode.com
Sat Jul 8 12:32:09 CEST 2017

What we do one one large project that uses widgets and moves between 8 and
9 is to automatically recompile them on startup using a script. The logic
is simple - if a try determines the widget library functions are not
running and available, uninstall the widget, recompile it and reinstall
it. Its pretty much instant to do that and its mean that (in this project
at least) we¹ve stopped thinking about this issue.

Kind regards,


Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps

On 08/07/2017, 11:22, "use-livecode on behalf of hh via use-livecode"
<use-livecode-bounces at lists.runrev.com on behalf of
use-livecode at lists.runrev.com> wrote:

>This is the current situation:
>[*] A stack that contains a widget that is compiled with LC 8.1.5
>can not be used with any other LC version than LC 8.1.5,
>[*] A stack that contains a widget that is compiled with LC 9.0.0
>can not be used with any other LC version than LC 9.0.0
>Mark Waddingham did recently already post thoughts to that here (see
>Option (1) below is the build of "fat widgets" that contain several
>one for each currently valid widget format. Would be great, thus one
>could be
>"downward compatible" in LC 8/9.
>Is there any chance to enable such "fat widgets" in the short future?
>[And how is this solved for the current company-widgets (Clock etc.)?]
>> On Jun 16, 2017; 11:10 Mark wrote:
>> > [MatthiasRebbe wrote:] Mark,
>> > regarding to recompiling widget for newer LC version:
>> > If i use LC 8 and 9, do i have to recompile it every time i use the
>> > other version?
>> Right now - yes - the lcm (compiled LCB) formats are not compatible.
>> There are a couple of potential solutions:
>> 1) Make it so that multiple LCM versions can sit in the same extension.
>> We can package up the lcb toolchain for each version as a distinct
>> download to help with this.
>> 2) Have a plugin in the IDE which fetches a git repo containing a widget
>> (or widgets) and compiles them locally. lc-compile is really lightweight
>> and bundled into the IDE so doing this automatically is quite
>> straight-forward.
>> Case (1) would work for people wanting to distribute lce files which
>> people can just install on their machine. Case (2) is suitable
>> particularly for community widgets - it would mean that anyone
>> subscribing to a particular 'widget repo' could get updates as soon as
>> they are pushed by the maintainer.
>> I think it is worth doing (1) regardless - it is a simple matter of
>> having say 'module.8.lcm' and 'module.9.lcm' files. The 9 format is
>> unstable until we go GM, but the 8 format is now 'stable' - i.e. won't
>> change ever again.
>use-livecode mailing list
>use-livecode at lists.runrev.com
>Please visit this url to subscribe, unsubscribe and manage your
>subscription preferences:

More information about the use-livecode mailing list