Things that need to be done for 0.3

38 views
Skip to first unread message

Timothy Baldridge

unread,
Apr 12, 2012, 10:24:50 AM4/12/12
to clojure...@googlegroups.com
I'm slowly working through treadle, and from there I'm going to start
in on re-writing the compiler. However, there are two areas that I
could use some major help on, STM, pprint, and core.clj.

STM - We need to port Ref.java, Atom.java (mostly done), and
Agent.java, and LockingTransaction.java. This will take someone
digging into how these are done. It's not completely hard to
understand STM in Clojure, it just takes a bit of thinking on how
things are done.

After these are ported, we need to do a complete audit of the code and
look for synchronized functions. In Java, the keyword "synchronized"
means that the given class will be locked while the decorated method
is being executed. That is, only one thread can access the given
method at a time. Some classes like MultiFn and LazySeq completely
ignore this...and even with the GIL these will bite us big time if we
try to use threads with them. So basically we need to do a search for
"synchronized" and fixup the clojure-py code.

core.clj - I'd like to finish off porting this in 0.3. Can someone go
through the rest of this and port what can be ported, ignore STM and
transients (transients are still 'alpha' in clojure-jvm...so I'm sure
if I want to port them at all), but everything else should at least be
given a shot at porting

pprint - Pretty Printing needs to be ported. It's pretty simple
code...it'd be nice to see this get in.

After treadle is done, we will have a little work getting it
implemented into clojure-py and then we can test Python 3 support a
bit more. After all that, we should be good to go for version 0.3.

Over all, my goal for 0.3 is to be able to say "you should be able to
port anything from clojure-jvm with very minimal effort. There may be
bugs, but it's all feature-complete."

Timothy

Adam Feuer

unread,
Apr 13, 2012, 11:48:22 PM4/13/12
to clojure...@googlegroups.com
On Thu, Apr 12, 2012 at 7:24 AM, Timothy Baldridge <tbald...@gmail.com> wrote:
> core.clj - I'd like to finish off porting this in 0.3. Can someone go
> through the rest of this and port what can be ported, ignore STM and
> transients (transients are still 'alpha' in clojure-jvm...so I'm sure
> if I want to port them at all), but everything else should at least be
> given a shot at porting

I'm willing to help with this. There's a lot of stuff in untranslated,
though, so I am not sure if I can do it all myself!

> pprint - Pretty Printing needs to be ported. It's pretty simple
> code...it'd be nice to see this get in.

I am also willing to help with this. I will check it out.

cheers
adam
--
Adam Feuer <ad...@pobox.com>

Reply all
Reply to author
Forward
0 new messages