On 2017-05-24 14:55, Mike Kerner via use-livecode wrote:
On the CompileIt thoughts, that was what I was hoping we were going to
get
with LCB (We already have Double-XX). You could make any Mac Toolbox
call
in CompileIt, which meant you could build any XCMD/XFCN to add to your
stack, but the syntax was still HC (with some restrictions).
LCB already has the ability to call C functions - which is what
CompileIt allowed you to do (as far as I understand). However, there is
a fair bit of glue required to deal with things like C arrays (which are
just pointers at the end of the day) and structs - that is something we
would like to make much easier.
[ That being said, many C APIs are moving towards 'opaque pointers with
accessor functions' rather than exposing C-bound concepts - mainly
because that way it is much easier to bind to 'higher-level' languages
(Python, Ruby, JavaScript etc.) - which just mean you have to deal with
opaque pointers. ]
What we don't have is much documentation as to *how* to use the features
which already exist. Although there is some usage of the feature
littered about in some of the engine LCB files, I can appreciate that is
not that easy to grok.
We also have an almost complete Java FFI system - Ali is currently
working on the final piece: adding 'Listener' support (essentially
callbacks) which the Android APIs use ubiquitously - e.g. for event
handlers on Views.
I can attest to the fact that LCB FFI (for C) works - our LCFM plugin is
written in LCB and the FM Plugin API is wrapped in LCB using the current
C FFI features which are available (doing so has given me some more
ideas about how to make such things easier *and* safer - which is a
critical factor these days).
For Mac / iOS APIs we need to add a way to wrap an Obj-C object, and
implement a Delegate (although you can manipulate Obj-C objects through
a C API so technically you can do this already, if you don't mind a bit
of bit munching). However, now we have done Java, Obj-C should follow
very quickly. Both Obj-C objects and Java objects have very similar
(abstract) properties in terms of how you access from from native code;
and Listeners and Delegates are very similar things also.
In terms of actually compiling stuff to native code - it is a goal we
have; but there are a few more ducks to get in a row before it can
become a reality.
Warmest Regards,
Mark.
--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps
_______________________________________________
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