Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Pull requests

Received: by 10.66.82.2 with SMTP id e2mr3461706pay.40.1343790086736;
        Tue, 31 Jul 2012 20:01:26 -0700 (PDT)
X-BeenThere: lispyscript@googlegroups.com
Received: by 10.68.117.7 with SMTP id ka7ls2929951pbb.9.gmail; Tue, 31 Jul
 2012 20:01:26 -0700 (PDT)
Received: by 10.68.233.5 with SMTP id ts5mr2592239pbc.20.1343790086576;
        Tue, 31 Jul 2012 20:01:26 -0700 (PDT)
Date: Tue, 31 Jul 2012 20:01:26 -0700 (PDT)
From: Santosh Rajan <santra...@gmail.com>
To: lispyscript@googlegroups.com
Message-Id: <532085f9-0419-49c9-b056-c46d5975549f@googlegroups.com>
In-Reply-To: <77F6ADF5E61045E3B35DAC0CC9A250DE@gmail.com>
References: <77F6ADF5E61045E3B35DAC0CC9A250DE@gmail.com>
Subject: Re: Pull requests
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_19_32226389.1343790086292"

------=_Part_19_32226389.1343790086292
Content-Type: multipart/alternative; 
	boundary="----=_Part_20_26845605.1343790086293"

------=_Part_20_26845605.1343790086293
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


Hi Irakli,
I have been busy with some other work and hence could not find time at the 
moment. But I am with you on most of the issues and intend to add these 
features in the next version. Also I have replied to you in private 
regarding my detailed plans.
Thanks
Santosh


On Wednesday, 1 August 2012 03:14:38 UTC+5:30, Irakli Gozalishvili wrote:
>
>  Hi Santosh,
>
> I've being very excited about your lispyscript project and have being 
> hacking on it a lot far past month. I also have send you bunch of pull 
> requests, but have never heard from you back :( I don't know what is a 
> reason, but I really want to move this project forward, although I don't 
> know if you agree with directions I took. At the moment I'm little upset 
> that I can't publish my improvements into npm or get them to them pulled 
> in. Please let me know what's your plan are on this. If you don't intend on 
> collaborating I'll probably rename my fork and give the project life of 
> it's own, although I prefer not to.
>
> Little overview of what I did and plan on doing:
>
> 1. I do like clojure a lot & with clojurescript it even more tempting to 
> share syntax so that programs / libraries written in clojurescript could 
> run on lispy. So I did bunch of changes to make syntax interoperable. It 
> does not really runs clojurescript code just yet, but it definitely makes 
> reading code a lot easier if you come from clojure.
>
> 2. I removed node dependency, now lispy compiler can run in browser, in 
> fact you can even embed script tags  with lispy and it will transpile them 
> at runtime. Here is small demo page I put up that does live translation of 
> entered  lisp to js http://jeditoolkit.com/lispyscript/ (it also saves 
> changes between refreshes). Also in fact it loads lispy file as a script 
> tag https://github.com/Gozala/lispyscript/blob/gh-pages/index.html#L23
>   
>
> 3. I borrowed some ideas from coffcee script, that helps 
> development process one already mentioned above which allows one to just 
> load lispy files on page via `type=application/lispyscript` script tags. 
> Another one is for node that allows one to just require lispy modules 
> https://github.com/Gozala/lispyscript/blob/master/src/node.ls doing 
> translation at runtime. 
>
> 4. I would like to make a proper website for lispy similar to the one 
> coffee script to illustrating language features example by example.
>
> 5. I already rewrote most of the special forms like function, try catch, 
> if else.. as macros using `js*` special forms (borrowed idea from 
> clojurescript). I also intend to move other forms to macros & rewrite 
> parser in a lisp itself.
>
> 6. Tail call optimisations. At the moment I have implemented some very 
> basic support for tail calls via clojure like `loop` 
> http://clojuredocs.org/clojure_core/clojure.core/loop  for example try 
> following example:
>
> (loop [i 0]
>   (if (< i 5)    
>     (println i)    
>     (recur (inc i)); loop i will take this value
> ))
>
>
> In http://jeditoolkit.com/lispyscript/ to get an idea what it compiles 
> to. I'll probably will be doing some work to try to analyse functions to 
> spot tail recursions and generate `while` loop based solutions for such 
> case.
>
> 7. Once parser is rewritten I'll be changing it so that comments are 
> included in the generated js too.
>
> 8. Clojure has support for metadata via ^boolean form that can used as 
> optional typing system. I'll be adding support to that too to output 
> annotated JS so tools like closure compiler could take advantage of it.
>
> 9. I already do translations of conventions like:
>
> (foo-bar 1) -> fooBar(1)
> (foo? bar) -> isFoo(bar)
>
> I plan on taking to a level, where idiomatic clojure code will output 
> idiomatic JS code.
>
>
> Please let me know if these plans go along with your view of the project 
> and if you intend on pulling in my changes.
>
> Thanks!
>  
> --
> Irakli Gozalishvili
> Web: http://www.jeditoolkit.com/
>
>
------=_Part_20_26845605.1343790086293
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div><br></div>Hi Irakli,<div>I have been busy with some other work and hen=
ce could not find time at the moment. But I am with you on most of the issu=
es and intend to add these features in the next version. Also I have replie=
d to you in private regarding my detailed plans.</div><div>Thanks</div><div=
>Santosh</div><div><br><br>On Wednesday, 1 August 2012 03:14:38 UTC+5:30, I=
rakli Gozalishvili  wrote:<blockquote class=3D"gmail_quote" style=3D"margin=
: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
                <div>
                    <div><span style=3D"font-size:14px">Hi&nbsp;Santosh,</s=
pan></div><div><span style=3D"font-size:14px"><br></span></div><div><span s=
tyle=3D"font-size:14px">I've being very excited about your&nbsp;lispyscript=
 project and have being hacking on it a lot far past month. I also have sen=
d you bunch of pull requests, but have never heard from you back :( I don't=
 know what is a reason, but I really want to move this project forward, alt=
hough I don't know if you agree with directions I took. At the moment I'm l=
ittle upset that I can't publish my improvements into&nbsp;npm or get them =
to them pulled in. Please let me know what's your plan are on this. If you =
don't intend on collaborating I'll probably rename my fork and give the pro=
ject life of it's own, although I prefer not to.</span></div><div><span sty=
le=3D"font-size:14px"><br></span></div><div><span style=3D"font-size:14px">=
Little overview of what I did and plan on doing:</span></div><div><span sty=
le=3D"font-size:14px"><br></span></div><div><span style=3D"font-size:14px">=
1. I do like clojure a lot &amp; with clojurescript it even more tempting t=
o share syntax so that programs / libraries written in clojurescript could =
run on lispy. So I did bunch of changes to make syntax&nbsp;interoperable. =
It does not really runs clojurescript code just yet, but it&nbsp;definitely=
&nbsp;makes reading code a lot easier if you come from clojure.</span></div=
><div><span style=3D"font-size:14px"><br></span></div><div><span style=3D"f=
ont-size:14px">2. I removed node dependency, now&nbsp;lispy compiler can ru=
n in browser, in fact you can even embed script tags &nbsp;with&nbsp;lispy =
and it will&nbsp;transpile them at runtime. Here is small demo page I put u=
p that does live translation of entered &nbsp;lisp&nbsp;to js&nbsp;<a href=
=3D"http://jeditoolkit.com/lispyscript/" style=3D"color:rgb(0,106,227)" tar=
get=3D"_blank">http://jeditoolkit.com/<wbr>lispyscript/</a>&nbsp;(it also s=
aves changes between refreshes). Also in fact it loads&nbsp;lispy file as a=
 script tag&nbsp;<a href=3D"https://github.com/Gozala/lispyscript/blob/gh-p=
ages/index.html#L23" style=3D"color:rgb(0,106,227)" target=3D"_blank">https=
://github.com/Gozala/<wbr>lispyscript/blob/gh-pages/<wbr>index.html#L23</a>=
</span></div><div><span style=3D"font-size:14px">&nbsp;&nbsp;</span></div><=
div><span style=3D"font-size:14px"><br></span></div><div><span style=3D"fon=
t-size:14px">3. I borrowed some ideas from&nbsp;coffcee script, that helps =
development&nbsp;process one already mentioned&nbsp;above which allows one =
to just load lispy files on page via `type=3Dapplication/lispyscript` scrip=
t tags. Another one is for node that allows one to just require&nbsp;lispy =
modules&nbsp;<a href=3D"https://github.com/Gozala/lispyscript/blob/master/s=
rc/node.ls" style=3D"color:rgb(0,106,227)" target=3D"_blank">https://github=
.com/<wbr>Gozala/lispyscript/blob/<wbr>master/src/node.ls</a>&nbsp;doing tr=
anslation at runtime.&nbsp;</span></div><span style=3D"font-size:14px"></sp=
an><div><div><span style=3D"font-size:14px"><br></span></div><div><span sty=
le=3D"font-size:14px">4. I would like to make a proper website for&nbsp;lis=
py similar to the one coffee script to illustrating language features examp=
le by example.</span></div><div><span style=3D"font-size:14px"><br></span><=
/div><div><span style=3D"font-size:14px">5. I already rewrote most of the s=
pecial forms like function, try catch, if else.. as macros using `js*`&nbsp=
;special forms (borrowed idea from clojurescript). I also intend to move ot=
her forms to macros &amp; rewrite parser in a&nbsp;lisp&nbsp;itself.</span>=
</div><div><span style=3D"font-size:14px"><br></span></div><div><span style=
=3D"font-size:14px">6. Tail call&nbsp;optimisations. At the moment I have i=
mplemented some very basic support for tail calls via clojure like `loop`&n=
bsp;<a href=3D"http://clojuredocs.org/clojure_core/clojure.core/loop" style=
=3D"color:rgb(0,106,227)" target=3D"_blank">http://clojuredocs.org/<wbr>clo=
jure_core/clojure.core/loop</a><wbr>&nbsp;&nbsp;for example try following e=
xample:</span></div><div><span style=3D"font-size:14px"><font face=3D"Monac=
o"><br></font></span></div><div><div><font face=3D"Monaco">(loop [i 0]</fon=
t></div><div><font face=3D"Monaco">&nbsp; (if (&lt; i 5) &nbsp; &nbsp;</fon=
t></div><div><font face=3D"Monaco">&nbsp; &nbsp; (println i) &nbsp; &nbsp;<=
/font></div><div><font face=3D"Monaco">&nbsp; &nbsp; (recur (inc i)); loop =
i will take this value</font></div><div><font face=3D"Monaco">))</font></di=
v></div><div><br></div><div><br></div><div><span style=3D"font-size:14px">I=
n&nbsp;<a href=3D"http://jeditoolkit.com/lispyscript/" style=3D"color:rgb(0=
,106,227)" target=3D"_blank">http://jeditoolkit.com/<wbr>lispyscript/</a>&n=
bsp;to get an idea what it compiles to. I'll probably will be doing some wo=
rk to try to&nbsp;analyse&nbsp;functions to spot tail recursions and genera=
te `while` loop based solutions for such case.</span></div><div><span style=
=3D"font-size:14px"><br></span></div><div><span style=3D"font-size:14px">7.=
 Once parser is rewritten I'll be changing it so that comments are included=
 in the generated js too.</span></div><div><span style=3D"font-size:14px"><=
br></span></div><div><span style=3D"font-size:14px">8. Clojure has support =
for metadata via ^boolean form that can used as optional typing system. I'l=
l be adding support to that too to output annotated JS so tools like closur=
e compiler could take advantage of it.</span></div><div><span style=3D"font=
-size:14px"><br></span></div><div><span style=3D"font-size:14px">9. I alrea=
dy do translations of conventions like:</span></div><div><span style=3D"fon=
t-size:14px"><br></span></div><div><span style=3D"font-size:14px">(foo-bar =
1) -&gt; fooBar(1)</span></div><div><span style=3D"font-size:14px">(foo? ba=
r) -&gt; isFoo(bar)</span></div><div><span style=3D"font-size:14px"><br></s=
pan></div><div><span style=3D"font-size:14px">I plan on taking to a level, =
where idiomatic clojure code will output idiomatic JS code.</span></div><di=
v><span style=3D"font-size:14px"><br></span></div><div><br></div><div><span=
 style=3D"font-size:14px">Please let me know if these plans go along with y=
our view of the project and if you intend on pulling in my changes.</span><=
/div><span style=3D"font-size:14px"><br clear=3D"all">Thanks!</span></div>
                </div>
                <div><div><br></div><span style=3D"color:rgb(153,153,153)">=
--</span><br style=3D"color:rgb(153,153,153)"><span style=3D"color:rgb(153,=
153,153)">Irakli Gozalishvili</span><br style=3D"color:rgb(153,153,153)"><s=
pan style=3D"color:rgb(153,153,153)">Web: <a style=3D"color:rgb(153,153,153=
)" href=3D"http://www.jeditoolkit.com/" target=3D"_blank">http://www.jedito=
olkit.com/</a></span><font color=3D"#999999"><br></font><div><br></div></di=
v>
</blockquote></div>
------=_Part_20_26845605.1343790086293--

------=_Part_19_32226389.1343790086292--