New committer: Diomidis D. Spinellis, Greece, dds@.

Diomidis Spinellis dds at aueb.gr
Sat Jun 21 02:13:11 PDT 2003


I guess it's time to introduce myself.  I've been using BSD Unix systems
since 1986 starting with 4.3 BSD on a pair of VAX 780 machines.  In
1992, as a bored PhD student, I reimplemented sed(1) and contributed it
the unencumbered BSD version that was then being put together; it is now
part of the *BSD family.  I crossed again paths with BSD software when
the prize of the 2000 Usenix technical conference ``win a pet Shark
contest'', Digital's Network Appliance Reference Design-DNARD, came with
a NetBSD boot image.  I used that code for drawing about 500 examples
for my book "Code Reading: The Open Source Perspective" (Addison-Wesley
2003), detailing how to read software code others have written
<http://www.spinellis.gr/codereading>.  Since 2001 I 've been using
FreeBSD to control my home's security, communications, and entertainment
systems as described in a SANE conference paper
<http://www.spinellis.gr/pubs/conf/2002-SANE-iFurnace/html/ifurnace.html>
and a recent article in "Personal and Ubiquitous Computing"
<http://www.spinellis.gr/pubs/jrnl/2003-PUC-ifurnace/html/furnace.html>
(as an academic I have to live by the "publish or perish" motto).

Why am I a becoming a committer?  My feeling is that FreeBSD, although
less visible than other systems, exemplifies the state of the art in
software engineering, both as a product and as a process.  Its scale (6
MLOC), quality, level of integration, legacy, and development practices
could well be unmatched both in the proprietary and open-source
software.  I therefore want to be close to this effort and will be proud
to further contribute to it.

My (longish term) plans as a FreeBSD committer:
doc
Continue work on the consistency of the man pages:
- Correct .Xr references (docs/51480)
- Experiment with expanding the idea to check:
  - command-line arguments (section 1 and 8)
  - system call errors (section 2) (see e.g. docs/43891)
- Integrate the manual checking script
<http://www.spinellis.gr/sw/unix/chkman/> in the tools collection

src
Userland commands
- Modify ash (src/bin/sh) to support network pipes
- Add SIGINFO support to commands that could benefit (e.g. sed, make
(silent make option))
- Ensure commands detect and report write(2) errors on standard output
- Correct command bugs (see e.g. bin/48424)

Library
- Optimize libc/regex to build the finite automaton with native code
instead of intepreting it (I am currently experimenting with a similar
approach based on the JVM).
- Locate candidate code for moving into a library
- Investigate how kevent(2) can be used to aggressively cache file
contents in library lookup operations (get*).  (Do an strace(1) on
apache's logresolve(8) to see what I mean).

kernel
- Integrate and enhance my PCL-724 driver (i386/46238)
http://www.dmst.aueb.gr/dds/sw/ifurnace/#pbio
- Fix the occasional bug (e.g. kern/46116)

src
The CScout system I have implemented <http://www.spinellis.gr/cscout>
can parse arbitrary collections of C programs and allow its user to
browse and safely rename identifiers, even in the presence of the most
complex C preprocessor
constructs.  As a test case, I have already successfully processed bwk's
awk source code and the complete apache distribution.  I have calculated
that the current implementation of CScout could process the complete
FreeBSD distribution on a 1GHz processor in 12 hours using 5GB of
physical and 12GB of virtual memory. It would therefore be interesting
to initiate an effort to:

- locate unused identifiers and dead code
- improve identifier naming consistency

across the complete FreeBSD source tree.  As an example, a quick run on
just the source code of bin/cp reveals that the macro definition
RETAINBITS in src/bin/cp/utils.c is not being used.  

Given the memory requirements of this task, it would also be an
interesting test case for the 64-bit FreeBSD version.  This will be a
massive effort, so volunteers with time and access to appropriate
hardware are more than welcome.

Looking forward to work with you,

Diomidis
-- 
Diomidis Spinellis                      Assistant Professor
Department of Management Science and Technology      (DMST)
Athens University of Economics and Business          (AUEB)
Patision 76, GR-104 34 Athens, GREECE        +30 2108203682
http://www.dmst.aueb.gr/dds/             mailto:dds at aueb.gr



More information about the cvs-src mailing list