

TLC, a tiny lua cocoa bridge - fyolnish
https://gist.github.com/2211379

======
jws
That is a spectacular amount of functionality in one small source file. It
appears to open all objective C classes and their methods to Lua.

~~~
gravitronic
I looked at these comments before the code and assumed it was going to be an
ugly first-principals dump of code connecting lua to objc.

What I found instead is beautiful.

------
seany
What's the reason to use this over <https://bitbucket.org/ewing/luacocoa> ?

------
rainysunday
Amazing. Can you use this to run a LuaCocoa example? Like
[https://bitbucket.org/ewing/luacocoa/src/e939d422b62a/LuaCoc...](https://bitbucket.org/ewing/luacocoa/src/e939d422b62a/LuaCocoa/Samples/MinimalAppKit/MinimalAppKit.lua)

Can you load a framework with this? I know hardly anything about Objective-C.

~~~
fyolnish
There's no need to load a framework since linking to a framework means all of
it's classes are added to the runtime. You simply request the class you want.
That is, if you are embedding lua in your app.

I haven't tried using TLC from the standalone luajit interpreter, but in that
case you would probably have to use fii.load() to load the Framework & libobjc
before being able to use objc. But that is not what it was designed for

To translate a LuaCocoa example you'd in most cases just have to add
objc_loadClass calls for any class you want to use, and use dots instead of
colons to call methods (obj:method() -> obj.method() ).

------
wildmXranat
Hmm, this looks very interesting. Could it be used as a scripting layer within
a OSX/iOS application or could you whip up a complete application with this ?

~~~
fyolnish
It was designed for use for scripting within an objc app.
(<http://github.com/aptiva/tranquil> to be precise)

It doesn't support subclassing objective-c objects so that would probably
limit you if you tried to write your app exclusively in lua.

------
pirateking
Anyone know any real world examples of Lua being used with Objective-C, and
what use cases it is good for? Sounds very interesting.

~~~
hjaltij
Take a look at the app that the OP is building. It's pretty interesting and
uses this scripting bridge for generating OpenGL visuals.
(<http://github.com/aptiva/tranquil>)

------
prpatel
Question: how is this different than iPhoneWax?

~~~
fyolnish
Well, the biggest difference is that it's written in Lua. And it uses LuaJIT
not vanilla Lua. (LuaJIT being orders of magnitude faster)

And from what I can tell, iphonewax is intended for writing entire apps in
lua, this project is intended to be used when embedding bits of lua code in
your objc app. (But there's nothing stopping you from writing most of your app
in it)

------
atilimcetin
Is it using LuaJIT or any another ffi library?

~~~
fyolnish
Yes, it does indeed require LuaJIT. (I probably should indicate this more
clearly in the source)

~~~
pygy_
Did you try it in vanilla Lua with the FFI port linked in a sibling of your
post?

~~~
fyolnish
Nope, can't say I have.

------
fyolnish
It's moved to <https://github.com/aptiva/TLC>

------
seclorum
Amazing .. off to pack it into an iOS bundle and wire it up to an editor. ;)

