Roadmap to Contribute

36 views
Skip to first unread message

Marcio Mazza

unread,
Sep 10, 2009, 8:51:14 PM9/10/09
to Cusp Development
Could any of you describe what would be a reasonable roadmap for a
programmer to enable himself to make some development on the project?

- What abilities should he have? What is he supposed to know?
- Where is he supposed to find the development and released versions
and eventual branches?
- How can he set up the environment to run and debug a certain
version?
- Whatever more is needed... ?

I've been trying to put CUSP to work (only work), almost without
success. All I could do was to install the old version downloaded from
bitfauna (which was trivial). I could not even use the update site
from Sergey Kolos. The mismatch between Kolos' tutorial and the
bitfauna old downloadable version (my only one) is quite frustrating.

I wonder if, at its current state, the only ones to be able to really
enjoy the product are its developers. So the question.


Gorsal

unread,
Sep 11, 2009, 8:16:32 PM9/11/09
to Cusp Development
By the way, the new home is at 'http://code.google.com/p/cusp/ '

Ah... Currently I am the only one working on cusp that i know of.
Since i don't have access to the google group svn stuff, i simply
copied cusp 1.0.14 into the group folder
as a zip jasko.tim.lisp_1.0.414.-P1zip. I suppose I should have
submitted 'patches', which is the appropriate way, but since i changed
code here and there as i say need, i just put up the compiled plugin
and the code.

Currently, I am working on porting cusp to Clojure, with the eventual
goal of replicating alot of the portability of emacs lisp (clojure is
a lisp, after all, which runs on the java virtual machine!!!). I am
doing this because, well, lisp is just plain better at expressing
itself.

So
(1) What should you know?
- you should begin to learn clojure using either the clojure-dev
plugin for eclipse or the netbeans enclojure plugin. Netbeans is
farther along, but clojure-dev is in eclipse and since you'll be using
eclipse libraries...
You should also, of course, be familiar with java!

(2) What is the current status???
Currently, I am trying to port it to clojure. Google it, its pretty
cool! In terms of porting to clojure, i have succeeded at the
following:
(1) Getting a clojure repl to run while the plugin is running, thus i
can change code on the fly
(2) I have ported the simple ParenMatcher class to clojure. This is my
'test' class with which i will test out all the aspects of Emacs Lisp
customizability when i develop them.
-I have created a simple (bind-env {:doc doc} ;;code) so that any
'editor functions' that are called within this special var binding can
be called without doc, or whatever else you pass. So i can simply go
(next-char) instead of (next-char doc).


Currently, I am working on:
(1) Getting simple action handlers to work. If the user clicks a
certain key combination in a certain context, like the LispEditor, it
should be simple to define a response
(2) Swank communication needs to be ported baddddly. I've tried ecl on
cusp and it is flaky at best (it only works on the cusp 1.0.14, by the
way). Fortunately, i believe someone has already written such swank
code in clojure.

(3) Where to get current version?
If you're interested, just respond and I'll post the code in the group
files. However, it would be better if we could have svn. However, I
sort of didn't follow protocol and didn't submit patches but rather
downloaded my changes to the group files. So, I guess jasko couldn't
'control' the code quality so it wasn't added to svn. Woops, but i
don't think reading the large patch files would be fun.



(4)How to set up current version and debug?
Stay tuned, by at the very latest this Sunday I will post
instructions. If you want to
try out the latest cusp, 1.0.14, download the jasko-1.0.14p1.zip file
from the google group files. Then, simply follow the instructions i
posted in the Cusp 1.0.14 discussion.

Timothy Jasko

unread,
Sep 11, 2009, 9:21:39 PM9/11/09
to cusp-dev...@googlegroups.com
The truth is that I have been rather negligent as a maintainer. I've
been very busy with other work, which unfortunately has not been lisp
related. If you want to try something much more recent, give one of
these a shot:

http://www.bitfauna.com/projects/cusp/temp/cusp_win32.zip
http://www.bitfauna.com/projects/cusp/temp/cusp_osx.zip
http://www.bitfauna.com/projects/cusp/temp/cusp_linux.tar.gz

I've been meaning to release them for a while now, but I've held off
because I can't get the Eclipse install on one of my vista laptops to
even find the plugin, and I hate to release something that has a known
problem even I can't work around. At this point, though, it may just
be time. What's out there is fairly bitrotted.


A developer looking to help out would do best to start at
http://code.google.com/p/cusp/wiki/DevStart
Java is the basic skill. You'll need to learn your way around
Eclipse's architecture a bit, but that's not very bad most of the
time. It is best if you like to play with Lisp, for obvious reasons,
but development Cusp itself uses very little Lisp (we let the Slime
folks handle that).

To get a change into the repository, bundle your changes up into a
patch and submit it to the newsgroup. Somebody with commit access will
look it over and add it in if it looks good. Do that a few times and
if it looks like you're on a roll, I'll probably give you commit
access.

Marcio Mazza

unread,
Sep 11, 2009, 9:35:15 PM9/11/09
to cusp-dev...@googlegroups.com
Thank you, Gorsal,

This was the kind of instruction I asked for, since it gives pointers
on a certain way to follow. That seems to be a very interesting way to
use closure.

As I take a look at your instructions and get myself more acquainted,
let me state a doubt that occurs to me:

Can I interpret that you're doing a branch from the source?

2009/9/11 Gorsal <se...@tewebs.com>:

Marcio Mazza

unread,
Sep 11, 2009, 9:51:04 PM9/11/09
to cusp-dev...@googlegroups.com
Thank you, Jasko,

I will try it out soon.

I see you have updated the page http://code.google.com/p/cusp/wiki/DevStart.
I will check it out also.

2009/9/11 Timothy Jasko <tja...@paragent.com>:

Gorsal

unread,
Sep 11, 2009, 11:00:14 PM9/11/09
to Cusp Development
Yes, I am doing a branch from the source which will eventually
exclusively use clojure. Jasko, do you mind if I start another
group where I can control my own branch, etc. It will of course first
be based on your code but will eventually , hopefully, evolve.

On Sep 11, 8:51 pm, Marcio Mazza <marcioma...@gmail.com> wrote:
> Thank you, Jasko,
>
> I will try it out soon.
>
> I see you have updated the pagehttp://code.google.com/p/cusp/wiki/DevStart.

Gorsal

unread,
Sep 11, 2009, 11:12:25 PM9/11/09
to Cusp Development
Never mind, i guess i could add a separate branch i work on in the svn
since i have access...

Gorsal

unread,
Sep 12, 2009, 12:01:46 AM9/12/09
to Cusp Development
Jasko, I was just wandering, what changes are in those links. Anything
I should synchronize with my patches before I commit?

Marcio Mazza

unread,
Sep 12, 2009, 2:04:40 AM9/12/09
to cusp-dev...@googlegroups.com
Gorsal,

I think it is indeed very useful to have a history of what you're
doing, and not only the whole snapshots. A svn branch would do. That
may provide an easier way to track and understand what you're doing.

(btw... maybe the more open, distributed, way of maintaining histories
of individual work is the reason git is becoming so popular.)


2009/9/12 Gorsal <se...@tewebs.com>:

Timothy Jasko

unread,
Sep 12, 2009, 3:12:28 PM9/12/09
to cusp-dev...@googlegroups.com
Those links are just packaged builds. There shouldn't be anything in
there that's not in svn.

Timothy Jasko

unread,
Sep 12, 2009, 3:21:06 PM9/12/09
to cusp-dev...@googlegroups.com
If you are going in the direction of an exclusively clojure fork, I
would prefer if you started a different project for it. It doesn't
sound like the two will be very compatible in terms of code
portability once it reaches a certain point. Feel free to steal
whatever you want from the current Cusp, though. That's what it's open
source for.

Gorsal

unread,
Sep 12, 2009, 8:57:03 PM9/12/09
to Cusp Development
I would like to go this route. I was just wandering, is there any
particular reason you would not like Cusp to use clojure?
If the clojure code was well written, there would be no need for code
portability between each other. The clojure version would replace the
pure java. I think the abstraction power of lisp more than justifies
this. Also, in terms of speed, clojure could be just as fast with the
appropriate declarations.


On Sep 12, 2:21 pm, Timothy Jasko <tja...@bitfauna.com> wrote:
> If you are going in the direction of an exclusively clojure fork, I
> would prefer if you started a different project for it. It doesn't
> sound like the two will be very compatible in terms of code
> portability once it reaches a certain point. Feel free to steal
> whatever you want from the current Cusp, though. That's what it's open
> source for.
>

Marcio Mazza

unread,
Sep 13, 2009, 11:48:51 PM9/13/09
to Cusp Development
Branching in open source, in all of its forms, is something natural
and totally legitimate.
It can be quite fruitful sometimes.

I feel myself more comfortable, though, with the idea of a focused
effort, if ever possible, particularly in early projects with few
interested people. I consider acceptable to sacrifice some
architectural preferences in order to sum up efforts and consolidate a
community around the project. Even as perfectionist as I tend to be.

To join forces: that's what I usually believe to be more profitable.

Sergey Kolos

unread,
Sep 14, 2009, 12:41:28 PM9/14/09
to Cusp Development
It looks like development of cusp has picked up recently so I feel
that I should share what I was doing recently in stealth mode:

About a year ago when, I was working on preping cusp for 1.0 release,
I've got very frustrated by the fact that some small changes (like
swank update) can lead to problems in many parts of the cusp. So I saw
the need to decouple components and add test suits to test each
component.
This would require too big change to the cusp design and code, so I
started working on the project as a fork, rather than in cusp source
base.

I envisioned the following components:
- editor: to edit code
- implementation: to launch and communicate with a particular lisp
implementation using swank or other methods
- repl

All of these components are expected to be independent and communicate
through specific interfaces (so that clearly specified interface
points
should be tested if updates are performed)

I am still quite far from getting to the point where all components
are coded and work together. But the following is already done:

- incremental parser, so that at each moment the editor has access to
up to date AST
- parser based editor with highlighting, coloring, errors markers,
outline, folding, indenting (no dependence on implementation or swank
in the code, i.e. it is possible just to open a lisp file in eclipse
outside of any project and all these features working and no crashing)
- preference services - borrowed from IMP project and simplified for
easy use in cusp
- did significant progress on repl that is similar to slime's

If anyone is interested in seeing code, I can upload it to the
repository.

Sergey

gutzofter

unread,
Sep 14, 2009, 9:24:47 PM9/14/09
to Cusp Development
Most definetely upload

Harrison Maseko

unread,
Sep 16, 2009, 6:02:07 PM9/16/09
to cusp-dev...@googlegroups.com
Is Cusp 1.0.14 ready for download? I cannot see the download file at the
said link.

Marcio Mazza

unread,
Sep 16, 2009, 6:50:47 PM9/16/09
to cusp-dev...@googlegroups.com
I just downloaded this file again:

http://www.bitfauna.com/projects/cusp/temp/cusp_linux.tar.gz

It works for me.

2009/9/16 Harrison Maseko <lis...@gmail.com>:

Gorsal

unread,
Sep 16, 2009, 7:28:00 PM9/16/09
to Cusp Development
Actually, I *think* that that link is still the old version. The new
cusp version which is Cusp 1.0.414 (I know, i posted the patch thing
number wrong) is still not yet in the svn. Since i can now build and
export the package, due to the very generous help of Lauren Petite, I
am now going to work on getting an update site up on the new branch
project I'm working on. I have absolutely no clue how to do this, but
with luck it will be done soon. I want this because I would very much
like to immediately 'update' the version to get rid of bugs, like the
REPL bug and APROPROS bug, etc , that Marcio Mazza pointed out,
without causing the user much hassle.

The newest Cusp should have some minor swank updates which allows it
to work with sbcl 1.0.29 and the latest slime. Anyways...

Marcio Mazza

unread,
Sep 16, 2009, 8:56:53 PM9/16/09
to cusp-dev...@googlegroups.com
I have downloaded and installed (i.e. dumped in eclipse
installation directories "plugins" and "features") what comes from this link:
http://www.bitfauna.com/projects/cusp/temp/cusp_linux.tar.gz

In Eclipse, visiting the menu
Help>About Eclipse SDK>Installation Details
the version shown for both Cusp feature and Cusp plugin is 1.0.414.


2009/9/16 Gorsal <se...@tewebs.com>:
> version

Timothy Jasko

unread,
Sep 16, 2009, 9:04:21 PM9/16/09
to cusp-dev...@googlegroups.com
It is a pretty up-to-date release. It does not contain whetever's been
done in the past month or so, but that's always the case when you're
not running straight from source.

Marcio Mazza

unread,
Sep 17, 2009, 10:53:47 AM9/17/09
to cusp-dev...@googlegroups.com
Well, the version accomplishes my first wish:
It matches Sergey's tutorial (http://sergeykolos.com/cusp/intro/).

I'm very happy with that!

2009/9/16 Timothy Jasko <tja...@bitfauna.com>:

Harrison Maseko

unread,
Sep 17, 2009, 5:45:15 PM9/17/09
to cusp-dev...@googlegroups.com
OK. That's all right then. Thanks.

Harrison Maseko

unread,
Sep 17, 2009, 5:48:58 PM9/17/09
to cusp-dev...@googlegroups.com
OK. Thanks for the clarification. Looking forward to try out 1.0.414.

Gorsal

unread,
Sep 19, 2009, 11:06:17 PM9/19/09
to Cusp Development
If anyone would like to try out the changes in code which have
happened over the past month, take a look at the
ejasko.tim.lisp_1.0.414.zip.
Whatever I posted in the Cusp 1.0.1414 thread (I think that's what
it's called?) should be in this version. Also it contains some
clojure, you won't notice it though. Also, notice that you can now
use at least sbcl 1.0.29 because slime has been updated. I've tested
this on vista. I'm not too sure how the older sbcl versions will do
so... Make sure you uninstall the older version!
Enjoy!

Gorsal

unread,
Sep 19, 2009, 11:06:26 PM9/19/09
to Cusp Development
If anyone would like to try out the changes in code which have
happened over the past month, take a look at the
ejasko.tim.lisp_1.0.414.zip.
Whatever I posted in the Cusp 1.0.1414 thread (I think that's what
it's called?) should be in this version. Also it contains some
clojure, you won't notice it though. Also, notice that you can now
use at least sbcl 1.0.29 because slime has been updated. I've tested
this on vista. I'm not too sure how the older sbcl versions will do
so... Make sure you uninstall the older version!
Enjoy!

On Sep 17, 4:48 pm, "Harrison Maseko" <lis...@gmail.com> wrote:

Gorsal

unread,
Sep 19, 2009, 11:07:19 PM9/19/09
to Cusp Development
Oh and i don't know how to create an eclipse update site because i
don't know where a free ftp hosing website can be found... Anyone?

Marcio Mazza

unread,
Oct 18, 2009, 11:20:37 PM10/18/09
to cusp-dev...@googlegroups.com, sergey...@gmail.com
That seems to be a very good direction.
May we see your code?

2009/9/14 Sergey Kolos <sergey...@gmail.com>
Reply all
Reply to author
Forward
0 new messages