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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.