couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Dionne <>
Subject Re: Development environment
Date Fri, 29 Apr 2011 11:34:32 GMT
Hi Andrey,

  I use Distel[1] (Distributed emacs lisp for Erlang), a set of emacs extensions that create
a full development environment for Erlang. It connects to a running node so one gets full
access to the syntax_tools and source code of Erlang, all at run time. As this brief white
paper points out it goes further than typical elisp hacks as it imports the Erlang distributed
model into emacs. I keep hoping to find some time to push it a little further and provide
better support for working with BigCouch, our clustered CouchDB at Cloudant.

  I keep up my own fork of it as there aren't too many of us out there and I needed to fix
a few things. I also include in that project some tweaks to the Erlang mode that ships with
Erlang to accommodate the CouchDB format conventions. It provides a full symbolic debugging
environment. Though it's useful and I think I've found a few CouchDB bugs with it, given the
nature of OTP programming it's a little harder when you have breakpoints that hit 50 processes.
It was great for stepping thru the btree code.

  The most useful features are the navigation (M-. M-,) and who_calls (C-c C-d w) The lack
of use of who_calls I believe is the major reason we often discover dead code that's been
there forever. As an aside the use of type specs and dialyzer go a long way towards finding
errors at compile time.




On Apr 28, 2011, at 9:03 AM, Andrey Somov wrote:

> Hi all,
> in order to understand how CouchDB works I want be able to run the
> application under debugger. Unfortunately it does not look like an easy
> task.
> The information provided on the wiiki (
> may be
> enough for a
> professional Erlang developer but it is not enough for anyone who learns
> Erlang together with CouchDB.
> I could not find any resource which gives step-by-step instructions on how
> to organise an effective development environment for CouchDB.
> Can someone point me to such a guide/tutorial/manual/screencast ?
> Thanks,
> Andrey

View raw message