Re: iOS examples
This is a good point in favor of the Lispworks toolchain.
Gambit also enables you to communicate with the running app on the device, but, as with all other aspects of the Gambit approach, you have to do a lot more infrastructure work yourself from scratch.
> On Jun 23, 2020, at 8:47 AM, Rainer Joswig <joswig@lisp.de> wrote:
>
> LispWorks also has the Lisp language development tools available at runtime via the Lisp interpreter ( REPL with EVAL, which executes s-expressions and allows a mix of compiled and interpreted code). One can attach the runtime to a LispWorks IDE on a remote computer to evaluate expressions and inspect errors...
> Apple does not allow third-parties to provide language runtimes with runtime native compilation. Having a runtime interpreter gets a bit around that restriction.
>
> mocl usually is a bit more restricted since there might not be the whole language available at runtime via EVAL.... it compiles upfront to C.
>
>> Am 23.06.2020 um 15:37 schrieb mikel evins (as mevins at me dot com) <lisp-hug@lispworks.com>:
>>
>>
>>
>>> On Jun 23, 2020, at 7:32 AM, Joel Reymont <joel@stegos.com> wrote:
>>>
>>> Does anyone have examples of apps build with the iOS runtime?
>>>
>>> Has anyone used the runtime?
>>>
>>> What’s your workflow like and what is your experience?
>>
>> I've done some work with it, and with two similar toolchains: mocl and Gambit Scheme. I'll discuss below why I include Gambit.
>>
>> I built a Mac app with Gambit by building app logic and a C API in Scheme, and linking it with a UI written in Objective-C.
>>
>> Later, I did much the same thing under contract on a series of iOS games, again using Gambit for the app and game logic and to expose a C API.
>>
>> Still later I bought mocl and experimented with building an iOS app with it. It worked pretty much the same as my experiences with Gambit, except that the toolchain was easier to set up and there was less Lisp-to-C API work that I had to do from scratch.
>>
>> Later again I evaluated and then bought a license to the Lispworks iOS runtime. I found it generally similar to working with mocl, except that more quicklisp libraries worked with less fiddling around.
>>
>> Lispworks gives you a qemu-based runtime environment for test-running your code, and provides a simple implementation of Othello that you can build and install on your iOS device. It was pretty easy to get it working (compared to iOS development in general), and pretty easy to use and adapt it to figure out how to get things to work.
>>
>> iOS and Android development in general are a pain. Setting up a working toolchain with all of the ancillary resources (certs, entitlements, and so on) can be a grind, andyou sort of have to get used to random parts of the toolchain failing at random moments for random reasons.
>>
>> All of these Lisp runtimes add additional complexity on top of what's baked into the platform tools, so you need a relatively high tolerance for complexity and yak-shaving, but it's workable.
>>
>> I included Gambit in the comparison as a sort of worst-case baseline. Working from just the vanilla Gambit project you can set up a toolchain for building apps on iOS that use Objective-C or Swift for UI and Scheme for everything else, but you'll spend a lot of time reading code and makefiles and mailing lists and trying things before you get your first code to compile and run.
>>
>> mocl and Lispworks basically work the same way: they compile your Lisp code to a library that you link with an Objective-C or Swift program that provides the UI. The main difference is that mocl makes the initial setup much easier, and Lispworks makes it easier still. It's still a pain, and there's still considerable yak-shaving to do before you get a running program, but it's much less than with Gambit.
>>
>> Lispworks' decision to include a qemu-based runtime for running your compile Lisp code is an additional step up (though, obviously, also an additional modest addition to the overall complexity of the toolchain).
>>
>>
>>
>> _______________________________________________
>> Lisp Hug - the mailing list for LispWorks users
>> lisp-hug@lispworks.com
>> http://www.lispworks.com/support/lisp-hug.html
>
>
> _______________________________________________
> Lisp Hug - the mailing list for LispWorks users
> lisp-hug@lispworks.com
> http://www.lispworks.com/support/lisp-hug.html
_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html