From: Mark Tarver on
After extended cross-Atlantic exchange, I and Carl Shapiro at Google
have joined together to enable Qi to run directly on a virtual
machine. Our current target is the Dalvik Virtual Machine (see
http://en.wikipedia.org/wiki/Dalvik_virtual_machine) which is a close
variant of the Java Virtual Machine designed for mobile devices.

The initiative here came from Carl who wrote to me out of the blue in
India on 28/11/09 in reply to a casual mail in April (it got lost in
his queue). Here he suggested implementing Qi for the mobile device
market because of its compact size, and this I found sufficiently
exciting to abandon the mountain and return to CS. But because of my
inaccessibility and a bout of flu, we didn't get to really thrash it
out until 2010.

Part of our intent is to develop a mini-language called K Lambda,
which will be a very compact Lisp with extensive type annotations
designed to run quickly. Carl will be designing the compiler from K
Lambda into the virtual machine target. K Lambda will be the object
code of Qi. Qi will be completely self-compiling and capable of
running on mobile devices.

Since K Lambda is not limited to virtual machines and can be mapped to
existing FPLs such as Clojure and Python, we intend to publish open
standards allowing K Lambda to be mapped to CL, Clojure and also to
Python, thus unifying 'the tongues of Lisp' as described in my talk
http://www.lambdassociates.org/blog/nextlisp(1).htm.

To facilitate this work, For the first time Qi is to be issued for all
under a license which allows you to freely use the new distribution of
Qi for the production of commercial closed source. Effectively the
current commercial license that comes with the book will be extended
to all users in this next release.

You can read the development plan here.

http://www.lambdassociates.org/blog/klambda.htm

Mark
From: Paul Rubin on
Mark Tarver <dr.mtarver(a)ukonline.co.uk> writes:
> Part of our intent is to develop a mini-language called K Lambda,
> which will be a very compact Lisp with extensive type annotations
> designed to run quickly. Carl will be designing the compiler from K
> Lambda into the virtual machine target. K Lambda will be the object
> code of Qi. Qi will be completely self-compiling and capable of
> running on mobile devices.

That sounds cool, but are you basically re-implementing the IL phases of
a Haskell compiler like GHC or even JHC?
From: Kaz Kylheku on
On 2010-01-19, Mark Tarver <dr.mtarver(a)ukonline.co.uk> wrote:
> After extended cross-Atlantic exchange, I and Carl Shapiro at Google
> have joined together to enable Qi to run directly on a virtual
> machine.

From the Qi FAQ's:

3. If I choose Qi II, do I have to give up Lisp?

Absolutely not. In fact you can mix Qi II and Lisp functions into one
file and load them together. You can use Lisp functions within Qi II
code with no problems. You can even add to the type discipline of Qi II
to tell it about the types of functions that you have written in Lisp
and it will accept your information.

4. What advantages does writing in Qi II have over writing in ML or
Haskell?

Qi II runs on top of Lisp, which means that Qi II inherits all the
features of Lisp that ML and Haskell do not have; (think macros, EVAL,
hash-tables, property-lists, metaprogramming ....)

So now it looks as if advantages 3 and 4 will actually be advantages of a Qi
dialect that targets Lisp, and not the portable ``common Qi''.
From: Mark Tarver on
On 20 Jan, 01:37, Kaz Kylheku <kkylh...(a)gmail.com> wrote:
> On 2010-01-19, Mark Tarver <dr.mtar...(a)ukonline.co.uk> wrote:
>
> > After extended cross-Atlantic exchange, I and Carl Shapiro at Google
> > have joined together to enable Qi to run directly on a virtual
> > machine.
>
> From the Qi FAQ's:
>
>     3. If I choose Qi II, do I have to give up Lisp?
>
>     Absolutely not. In fact you can mix Qi II and Lisp functions into one
>     file and load them together. You can use Lisp functions within Qi II
>     code with no problems. You can even add to the type discipline of Qi II
>     to tell it about the types of functions that you have written in Lisp
>     and it will accept your information.
>
>     4. What advantages does writing in Qi II have over writing in ML or
>     Haskell?
>
>     Qi II runs on top of Lisp, which means that Qi II inherits all the
>     features of Lisp that ML and Haskell do not have; (think macros, EVAL,
>     hash-tables, property-lists, metaprogramming ....)
>
> So now it looks as if advantages 3 and 4 will actually be advantages of a Qi
> dialect that targets Lisp, and not the portable ``common Qi''.

If you prefer to use Qi III under CL none of those things are lost to
you.

Mark
From: Raffael Cavallaro on
On 2010-01-20 08:47:39 -0500, Mark Tarver <dr.mtarver(a)ukonline.co.uk> said:

> Concurrency is a complex topic since there are different applications
> of this idea; for example to the creation of threads and also for the
> parallelisation of computation and for the latter there are different
> models - implicit and explicit. It belongs to the later stages of the
> project, which are much more long term.

With respect, Hans Boenm would beg to differ:

<http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf>

IOW, if you don't design your kernel with concurrency in mind to begin
with, when you try to add it later as a library it most likely will not
work properly.

--
Raffael Cavallaro