From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: a passionate guy who want to join in as a developer Date: Fri, 10 Aug 2012 07:53:39 -0400 Message-ID: <5024F643.8040706@netris.org> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1344599650 3350 80.91.229.3 (10 Aug 2012 11:54:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 10 Aug 2012 11:54:10 +0000 (UTC) Cc: guile-devel@gnu.org To: rushan chen Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Aug 10 13:54:09 2012 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Sznn6-0000kD-OV for guile-devel@m.gmane.org; Fri, 10 Aug 2012 13:54:08 +0200 Original-Received: from localhost ([::1]:48928 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sznn6-0003be-0a for guile-devel@m.gmane.org; Fri, 10 Aug 2012 07:54:08 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52013) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sznn0-0003ag-N2 for guile-devel@gnu.org; Fri, 10 Aug 2012 07:54:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sznmy-0002kV-1J for guile-devel@gnu.org; Fri, 10 Aug 2012 07:54:02 -0400 Original-Received: from world.peace.net ([96.39.62.75]:44764) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sznmx-0002jF-T4 for guile-devel@gnu.org; Fri, 10 Aug 2012 07:53:59 -0400 Original-Received: from 209-6-92-20.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.92.20] helo=[10.0.1.9]) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1Sznmf-0002Bk-Gz; Fri, 10 Aug 2012 07:53:41 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.5) Gecko/20120624 Icedove/10.0.5 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 96.39.62.75 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14788 Archived-At: Hi Rushan, On 08/06/2012 10:50 AM, rushan chen wrote: > I'm just a guy who is passionate about programming especially > programming in C, and want to enjoy it with people like-minded. Guile is > an interesting project to me, and I really really hope I can make some > contribution to it as a developer. Sounds great, we can certainly use more help :) > Hope someone could point me some direction, thanks in advance. It's hard to make specific suggestions without knowing more about your skills and interests. Most Guile developers started out by using Guile for their own work, and ended up fixing bugs that they found, and added features that they needed. I think this is the best path, because it makes it far more likely that you will understand the needs of users who need a particular feature. There's been a recent trend in Guile to write more code in Scheme and less in C. Most of the new C code is fairly deep in the guts of Guile, and I'm reluctant to point you in that direction until you've gained some experience working on Guile. If you prefer to write C code, then one category of useful jobs is to write bindings for C libraries so that they can be easily accessed from Scheme. Of course they should be C libraries that Guile programmers would like to use, and that would not be better to implement directly in Scheme. Another thing we need that makes sense to write in C is a larger library of efficient data structures. For example, we could really use an efficient balanced tree implementation. However, if you want to work on a new data structure, please first post a proposed API to this list so that we provide feedback before you get started on the implementation, to avoid wasted work. Here's one specific data structure idea: we have a "vlist" data structure, currently written in Scheme, but in my opinion it would be useful to rewrite it in C for better efficiency. It is already used quite heavily in our compiler, so you could make our compiler run much faster this way. Also, users might be more inclined to use vlists if they were more efficient. And of course, I should invite you to take a look at our bug tracker http://debbugs.gnu.org/guile and see if there are any that you can fix. While this work is not as fun as adding new features, it is deeply appreciated and a great way to learn about Guile internals. Well, those are a few ideas anyway, but I still think the best path is for you to scratch your own itches. Use Guile for your own work, report bugs that you find (and fix them if you can), and more generally try to find ways to improve Guile that would have made your work easier and more fun. Thanks so much for your interest, and happy hacking! Mark