Re: clisp - general interest in code cleanup
Daniel Jour <[email protected]>
| Newsgroups | gmane.lisp.clisp.devel |
|---|---|
| Message-ID | <CACZHyTO+jMS56UJBXeX10_79xebdZ1zdYX3X65cS5Z7avYutyw@mail.gmail.com> |
Hi Sam, 2016-03-21 23:46 GMT+01:00 Sam Steingold <[email protected]>: > > Hi Daniel, > > > * Daniel Jour <[email protected]> [2016-03-21 15:07:02 +0000]: > > > > the CLISP project seems to be "not that active", judging from the mailing > > list / bug tracker / repository activities. The latest release is 6 years > > old. > > Alas, this is, indeed, the case. > > > Looking at the code base, I think this low activity stems at least in part > > from the IMO relatively bad condition it is in. Most of it seems to be > > quite old, there are (now talking of the C parts) parts that invoke > > undefined behavior (general pointer comparisons, integer overflows, out of > > bounds indexing) and some other odd things (the whole additional > > preprocessing, pre C99 code, indexing from 1 instead of 0, apparently no > > internal interfaces / abstraction, probably more). > > > > I'd like to change that. In order to do so I'd like to "modernize" the code > > base, starting with the C code. That means among other things converting to > > standard compliant code (C99 probably), splitting code into smaller units, > > establishing internal interfaces. > > > > Before putting (a lot) more work into this I'd like to know whether > > a) there's is a general interest to make such - probably huge - changes to > > the code base, and whether > > Yes, there is at least some interest in modernizing CLISP code base. > Note, however, that this is a fairly large task, and you are not the > first one to volunteer to do this (previous attempts failed because > people bit more than they could chew). > This is why I am wary of this being the first CLISP project you attempt. That's great. I agree, modernizing the complete code base is a task that's too huge to attempt as a first CLISP project. What I hoped for was that it's ok if, picking a random example, readtable related code got extracted from src/io.d, i.e. it's ok when runtime code is refactored to some degree. > > b) this could be seen as a project (with further details I'd work out > > then) suitable for GSoC. > > Let us start small - or, at least, smaller. > > Specifically, make a release. Sounds good. > This will require you to learn the current CLISP infrastructure which > will be absolutely critical when you move on to the next step of > cleaning up the code. > This will also allow us, the CLISP maintainers, to pass on our expertise > to you and to monitor and mentor your progress. > It is also a finite task with a clear and visible deliverable. I think I have already a rough understanding of the infrastructure, in the sense of "where is what" and how it fits together. (Apart from a lot of code I read the complete implementation notes and was searching through the clisp-devel list for info). Though there's still a lot I don't understand :) > Currently, CLISP hg tip is in a bad state: an import of gnulib packages > resulted in a code base which probably works only on Linux. > > Specifically, what you would need to do is > > 1. update all gnulib imports To what extend is CLISP using gnulib atm? I've found the gnulib-imported target in Makefile.devel (as well as related stuff), but am unsure how far the actual src/* files make use of it. As far as I can tell only src/lispbibl.d, src/_clisp.c and src/glmalloc.c seem to use it (only taking the runtime into approach, not any modules). I didn't know about the patches section of sf.net until Ken Brown brought it up (https://sf.net/p/clisp/mailman/message/34957653/). > 2. fix gnulib/Windows interaction (gnulib assumes FD to be an int, > Windows uses Handles) Can you provide a bit more background on that? Is this related to http://lists.gnu.org/archive/html/bug-gnulib/2016-03/msg00033.html and thus a general gnulib issue? Or does this only affect CLISP? > 3. make sure that CLISP builds and passes self-tests on as many > platforms as possible, but at least > A. Linux (fedora, ubuntu &c) > B. Windows (whatever the most common version is now, with and without > cygwin) > C. Mac OS X > D. *BSD (FreeBSD, OpenBSD, NetBSD) I should be able to get access to all of these: I'm working on a Linux machine, NixOS distribution (if it compiles here it'll probably compile one every Linux, given correct dependencies) and have access to Debian machines at my university. I have NetBSD and FreeBSD qemu images available, and can probably get access to both Windows VMs as well as "real machines" through my university. I can probably also get access to Mac computers (there's a lab / pool at the university). How "extensive" are these self-tests? > 4. Make an official source and binary release. > > I think the above is a good GSoC project. I guess I should get a proposal ready ASAP then. > Bruno, WDYT? > > > I'm asking these - probably too detailed - questions on this list here > > instead of on one of the CLISP mailing lists because they seem, as already > > pointed out, to be dead. I was unsure about whether to CC one of the > > maintainers, because it's discouraged in some communities, and so I didn't. > > I didn't CC one of the maintainers because such CCing is discouraged in > > some communities. What's the "correct" way to get in contact here? And: Are > > there any possible mentors for the CLISP project? > > Yes, I am prepared to mentor you. > I hope that if you will show some progress, Bruno will chip in too. Thank you a lot. I'll give my best to get a suitable proposal ready until the deadline. Daniel > > Finally, a very brief info about me: My name is Daniel Jour nee Oertwig, > > I'm currently pursuing my computer science master's degree at University > > Wuerzburg, Germany. > > I'm a self taught programmer, started learning about 14 years ago and have > > been doing all kinds of different things, like some hobby OS kernels, > > programming language ideas, an orbit trajectory calculation tool (I did my > > bachelor's degree in aerospace computer science :) ), C++ code > > transformation tools and a lot more. Thus I've been exposed to a lot of > > technologies, but I'm most proficient with C, C++ and (Common) Lisp and > > operating system concepts. > > I've been working as a teaching assistant for my university's operating > > systems course, teaching mostly stuff related to multithreading (examples > > in Java) and GNU/Linux usage. I'm an active user on stackoverflow. > > I'm 24 years old, married, two kids (and I should note that my family takes > > precedence over anything else, thus I'm probably an a bit "riskier" > > potential GSoC student) > > > > Best regards, > > Daniel Jour > > -- > Sam Steingold (http://sds.podval.org/) on Ubuntu 15.10 (wily) X 11.0.11702000 > http://www.childpsy.net/ http://think-israel.org http://iris.org.il > http://palestinefacts.org http://americancensorship.org http://dhimmi.org > My plan for 'after work' is to retire. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 _______________________________________________ clisp-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/clisp-devel