Qi on Clozure CL

7 views
Skip to first unread message

Nik

unread,
Oct 9, 2009, 6:08:49 AM10/9/09
to Qilang
Hi folks,

Does somebody work on porting Qi to Clozure CL?

Regards
Nik

Nik

unread,
Nov 10, 2009, 9:30:34 AM11/10/09
to Qilang
Dear Nik,

Seemingly nobody!
By the way I know you very well!
You are a smart guy and you should be able to do it yourself:-)

Regards
Nik

Emeka

unread,
Nov 10, 2009, 3:17:51 PM11/10/09
to qil...@googlegroups.com
Nik, 
It is time you turn the "you" to "I". It would be exciting following your work, hope you will start soon.

Regards,
Janus

Raoul Duke

unread,
Nov 10, 2009, 1:24:23 PM11/10/09
to qil...@googlegroups.com
>> Does somebody work on porting Qi to Clozure CL?

since in theory CCL is a Common Lisp then it should be a small job to
do. but i don't really know, i'm just theorizing.

snorgers

unread,
Nov 10, 2009, 4:16:06 PM11/10/09
to Qilang
Hi Nik,

If you would like to try porting it, that's great. You can ask
questions
on the forum and I will try answer your question as good as I can.
I usually check it at least once a day.

Regards
Stefan

Emeka

unread,
Nov 11, 2009, 6:42:18 AM11/11/09
to qil...@googlegroups.com
Snorgers,
 
Have you started porting to Clojure?
 
Regards,
Emeka

snorgers

unread,
Nov 11, 2009, 11:47:16 AM11/11/09
to Qilang
The infrastructure is almost there, I just need a couple of day's mare
and then I will
start to write the translational code

/Stefan

On 11 Nov, 12:42, Emeka <emekami...@gmail.com> wrote:
> Snorgers,
>
> Have you started porting to Clojure?
>
> Regards,
> Emeka
>

Emeka

unread,
Nov 12, 2009, 2:09:10 AM11/12/09
to qil...@googlegroups.com
Would by any means allow me to participate in it. I won't add much weigh but I would do my best.

Regards,
Emeka

n2kra

unread,
Nov 12, 2009, 1:43:28 PM11/12/09
to Qilang
Qi is/was #+CL implementation conditionalized in like 4 places.
I think the trickiest part is below. (now) CCL is ? mostly compiled ?
This did not work in Qi 8.0 -

(DEFUN fix-closures ()
#+CMU (SETQ *closures* '(FUNCTION COMPILED-FUNCTION
EVAL::INTERPRETED-FUNCTION))
#+CLISP (SETQ *closures* '(FUNCTION COMPILED-FUNCTION))
#+ALLEGRO (SETQ *closures* '(EXCL::CLOSURE FUNCTION COMPILED-
FUNCTION))
#+SBCL (SETQ *closures* '(FUNCTION COMPILED-FUNCTION SB-
EVAL:INTERPRETED-FUNCTION))
#+OPENMCL (SETQ *closures* '(FUNCTION COMPILED-FUNCTION
CCL::COERCE-TO-COMPILED-FUNCTION))
#-(OR CLISP CMU SBCL ALLEGRO OPENMCL)
(ERROR "Qi does not recognise this platform ~A" (LISP-
IMPLEMENTATION-TYPE)))

snorgers

unread,
Nov 13, 2009, 5:49:41 AM11/13/09
to Qilang
Can you suggest what area you would like to help with.

Such as (my examples here, please fill in your own if you like so),

1. Answer specific clojure questions
2. Dig out how to best do certain things like simple tail call
optimizations, fast stack implementation for qi-prolog etc.
3. Find out about things that can be hard to implement in clojure in
the code made already.
4. Have a view of the design of the overall tool
5. Suggestions for features cool ideas etc.
6. Testing the tool
7. Making fun and learning examples

/Stefan

On 12 Nov, 08:09, Emeka <emekami...@gmail.com> wrote:
> Would by any means allow me to participate in it. I won't add much weigh but
> I would do my best.
>
> Regards,
> Emeka
>

Emeka

unread,
Nov 13, 2009, 1:37:30 PM11/13/09
to qil...@googlegroups.com


Can you suggest what area you would like to help with.

Such as (my examples here, please fill in your own if you like so),

1. Answer specific clojure questions
I like this.
 
2. Dig out how to best do certain things like simple tail call
optimizations, fast stack implementation for qi-prolog etc.
May try here. 
3. Find out about things that can be hard to implement in clojure in
the code made already.
I would try here. 
4. Have a view of the design of the overall tool
I am not a language designer but this sounds interesting 
5. Suggestions for features cool ideas etc.
6. Testing the tool
This would be exciting.
7. Making fun and learning examples
I would enjoy this. 

Thanks for the offer.

Regards,
Emeka

snorgers

unread,
Nov 14, 2009, 5:33:35 AM11/14/09
to Qilang
Great,

This is how I try to divide the work.

There is one framework dual licensed under QiII and LPGL that is
the rewrite I've been doing and will live at github under the Shen
project.
Mainly the BoopCore directory.

Here the code transformer and the core pattern matching tool will be
placed.
My intention is to have maybe a non-qi like but general protocol to
cover
1. unification and backtracking - e.g. the base for qi-prolog
2. extensions to state-machines that takes parameters
3. Qi-Yacc like features
4. (Maybe) regexp matchers using already made regexp libriries (for
those that want need speed)
5. segmentation, both in unification (maybe) and as basic matching
6. type-checking suportative matching
7. support for multiple streams, e.g. you shoule be able to quckly
modify the code to take an array stream in stead
of a list stream and do it reasonable effective
8. support for more general destructions then [first rest] logic,
think structures for examples

Code transformation will be done by type sensitive code generation so
that when we can deduce type information.
this will be divided in a strict and "sloppy" mode, where strict is
(tc -) and sloppy is trying to use as much type information
as possible but might give up for sum constructs and issue a warning.

So this is the framework, now there will be another package, called
Shen or Qi, that will use this tool, add a reader and a writer
plus the actual Qi-Yacc, Qi-Prolog, define Sequents and so on and this
will be shen.

The current state is that there is a usable version at github. I have
not implemented all features above, but I wan't to make a first
version that does transformations to lisp/clojure/.. as well as
compiling to basic qi as it does right now before going further
so that you guy's can help testing and developing it.

Let me suggest that we try communicate via email when we are just a
few persons doing work, and if more people are interested
we try to make an email list.

/Regards
Stefan
Reply all
Reply to author
Forward
0 new messages