Mercurial > hg > xemacs-beta
view etc/SERVICE @ 665:fdefd0186b75
[xemacs-hg @ 2001-09-20 06:28:42 by ben]
The great integral types renaming.
The purpose of this is to rationalize the names used for various
integral types, so that they match their intended uses and follow
consist conventions, and eliminate types that were not semantically
different from each other.
The conventions are:
-- All integral types that measure quantities of anything are
signed. Some people disagree vociferously with this, but their
arguments are mostly theoretical, and are vastly outweighed by
the practical headaches of mixing signed and unsigned values,
and more importantly by the far increased likelihood of
inadvertent bugs: Because of the broken "viral" nature of
unsigned quantities in C (operations involving mixed
signed/unsigned are done unsigned, when exactly the opposite is
nearly always wanted), even a single error in declaring a
quantity unsigned that should be signed, or even the even more
subtle error of comparing signed and unsigned values and
forgetting the necessary cast, can be catastrophic, as
comparisons will yield wrong results. -Wsign-compare is turned
on specifically to catch this, but this tends to result in a
great number of warnings when mixing signed and unsigned, and
the casts are annoying. More has been written on this
elsewhere.
-- All such quantity types just mentioned boil down to EMACS_INT,
which is 32 bits on 32-bit machines and 64 bits on 64-bit
machines. This is guaranteed to be the same size as Lisp
objects of type `int', and (as far as I can tell) of size_t
(unsigned!) and ssize_t. The only type below that is not an
EMACS_INT is Hashcode, which is an unsigned value of the same
size as EMACS_INT.
-- Type names should be relatively short (no more than 10
characters or so), with the first letter capitalized and no
underscores if they can at all be avoided.
-- "count" == a zero-based measurement of some quantity. Includes
sizes, offsets, and indexes.
-- "bpos" == a one-based measurement of a position in a buffer.
"Charbpos" and "Bytebpos" count text in the buffer, rather than
bytes in memory; thus Bytebpos does not directly correspond to
the memory representation. Use "Membpos" for this.
-- "Char" refers to internal-format characters, not to the C type
"char", which is really a byte.
-- For the actual name changes, see the script below.
I ran the following script to do the conversion. (NOTE: This script
is idempotent. You can safely run it multiple times and it will
not screw up previous results -- in fact, it will do nothing if
nothing has changed. Thus, it can be run repeatedly as necessary
to handle patches coming in from old workspaces, or old branches.)
There are two tags, just before and just after the change:
`pre-integral-type-rename' and `post-integral-type-rename'. When
merging code from the main trunk into a branch, the best thing to
do is first merge up to `pre-integral-type-rename', then apply the
script and associated changes, then merge from
`post-integral-type-change' to the present. (Alternatively, just do
the merging in one operation; but you may then have a lot of
conflicts needing to be resolved by hand.)
Script `fixtypes.sh' follows:
----------------------------------- cut ------------------------------------
files="*.[ch] s/*.h m/*.h config.h.in ../configure.in Makefile.in.in ../lib-src/*.[ch] ../lwlib/*.[ch]"
gr Memory_Count Bytecount $files
gr Lstream_Data_Count Bytecount $files
gr Element_Count Elemcount $files
gr Hash_Code Hashcode $files
gr extcount bytecount $files
gr bufpos charbpos $files
gr bytind bytebpos $files
gr memind membpos $files
gr bufbyte intbyte $files
gr Extcount Bytecount $files
gr Bufpos Charbpos $files
gr Bytind Bytebpos $files
gr Memind Membpos $files
gr Bufbyte Intbyte $files
gr EXTCOUNT BYTECOUNT $files
gr BUFPOS CHARBPOS $files
gr BYTIND BYTEBPOS $files
gr MEMIND MEMBPOS $files
gr BUFBYTE INTBYTE $files
gr MEMORY_COUNT BYTECOUNT $files
gr LSTREAM_DATA_COUNT BYTECOUNT $files
gr ELEMENT_COUNT ELEMCOUNT $files
gr HASH_CODE HASHCODE $files
----------------------------------- cut ------------------------------------
`fixtypes.sh' is a Bourne-shell script; it uses 'gr':
----------------------------------- cut ------------------------------------
#!/bin/sh
# Usage is like this:
# gr FROM TO FILES ...
# globally replace FROM with TO in FILES. FROM and TO are regular expressions.
# backup files are stored in the `backup' directory.
from="$1"
to="$2"
shift 2
echo ${1+"$@"} | xargs global-replace "s/$from/$to/g"
----------------------------------- cut ------------------------------------
`gr' in turn uses a Perl script to do its real work,
`global-replace', which follows:
----------------------------------- cut ------------------------------------
: #-*- Perl -*-
### global-modify --- modify the contents of a file by a Perl expression
## Copyright (C) 1999 Martin Buchholz.
## Copyright (C) 2001 Ben Wing.
## Authors: Martin Buchholz <martin@xemacs.org>, Ben Wing <ben@xemacs.org>
## Maintainer: Ben Wing <ben@xemacs.org>
## Current Version: 1.0, May 5, 2001
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with XEmacs; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
eval 'exec perl -w -S $0 ${1+"$@"}'
if 0;
use strict;
use FileHandle;
use Carp;
use Getopt::Long;
use File::Basename;
(my $myName = $0) =~ s@.*/@@; my $usage="
Usage: $myName [--help] [--backup-dir=DIR] [--line-mode] [--hunk-mode]
PERLEXPR FILE ...
Globally modify a file, either line by line or in one big hunk.
Typical usage is like this:
[with GNU print, GNU xargs: guaranteed to handle spaces, quotes, etc.
in file names]
find . -name '*.[ch]' -print0 | xargs -0 $0 's/\bCONST\b/const/g'\n
[with non-GNU print, xargs]
find . -name '*.[ch]' -print | xargs $0 's/\bCONST\b/const/g'\n
The file is read in, either line by line (with --line-mode specified)
or in one big hunk (with --hunk-mode specified; it's the default), and
the Perl expression is then evalled with \$_ set to the line or hunk of
text, including the terminating newline if there is one. It should
destructively modify the value there, storing the changed result in \$_.
Files in which any modifications are made are backed up to the directory
specified using --backup-dir, or to `backup' by default. To disable this,
use --backup-dir= with no argument.
Hunk mode is the default because it is MUCH MUCH faster than line-by-line.
Use line-by-line only when it matters, e.g. you want to do a replacement
only once per line (the default without the `g' argument). Conversely,
when using hunk mode, *ALWAYS* use `g'; otherwise, you will only make one
replacement in the entire file!
";
my %options = ();
$Getopt::Long::ignorecase = 0;
&GetOptions (
\%options,
'help', 'backup-dir=s', 'line-mode', 'hunk-mode',
);
die $usage if $options{"help"} or @ARGV <= 1;
my $code = shift;
die $usage if grep (-d || ! -w, @ARGV);
sub SafeOpen {
open ((my $fh = new FileHandle), $_[0]);
confess "Can't open $_[0]: $!" if ! defined $fh;
return $fh;
}
sub SafeClose {
close $_[0] or confess "Can't close $_[0]: $!";
}
sub FileContents {
my $fh = SafeOpen ("< $_[0]");
my $olddollarslash = $/;
local $/ = undef;
my $contents = <$fh>;
$/ = $olddollarslash;
return $contents;
}
sub WriteStringToFile {
my $fh = SafeOpen ("> $_[0]");
binmode $fh;
print $fh $_[1] or confess "$_[0]: $!\n";
SafeClose $fh;
}
foreach my $file (@ARGV) {
my $changed_p = 0;
my $new_contents = "";
if ($options{"line-mode"}) {
my $fh = SafeOpen $file;
while (<$fh>) {
my $save_line = $_;
eval $code;
$changed_p = 1 if $save_line ne $_;
$new_contents .= $_;
}
} else {
my $orig_contents = $_ = FileContents $file;
eval $code;
if ($_ ne $orig_contents) {
$changed_p = 1;
$new_contents = $_;
}
}
if ($changed_p) {
my $backdir = $options{"backup-dir"};
$backdir = "backup" if !defined ($backdir);
if ($backdir) {
my ($name, $path, $suffix) = fileparse ($file, "");
my $backfulldir = $path . $backdir;
my $backfile = "$backfulldir/$name";
mkdir $backfulldir, 0755 unless -d $backfulldir;
print "modifying $file (original saved in $backfile)\n";
rename $file, $backfile;
}
WriteStringToFile ($file, $new_contents);
}
}
----------------------------------- cut ------------------------------------
In addition to those programs, I needed to fix up a few other
things, particularly relating to the duplicate definitions of
types, now that some types merged with others. Specifically:
1. in lisp.h, removed duplicate declarations of Bytecount. The
changed code should now look like this: (In each code snippet
below, the first and last lines are the same as the original, as
are all lines outside of those lines. That allows you to locate
the section to be replaced, and replace the stuff in that
section, verifying that there isn't anything new added that
would need to be kept.)
--------------------------------- snip -------------------------------------
/* Counts of bytes or chars */
typedef EMACS_INT Bytecount;
typedef EMACS_INT Charcount;
/* Counts of elements */
typedef EMACS_INT Elemcount;
/* Hash codes */
typedef unsigned long Hashcode;
/* ------------------------ dynamic arrays ------------------- */
--------------------------------- snip -------------------------------------
2. in lstream.h, removed duplicate declaration of Bytecount.
Rewrote the comment about this type. The changed code should
now look like this:
--------------------------------- snip -------------------------------------
#endif
/* The have been some arguments over the what the type should be that
specifies a count of bytes in a data block to be written out or read in,
using Lstream_read(), Lstream_write(), and related functions.
Originally it was long, which worked fine; Martin "corrected" these to
size_t and ssize_t on the grounds that this is theoretically cleaner and
is in keeping with the C standards. Unfortunately, this practice is
horribly error-prone due to design flaws in the way that mixed
signed/unsigned arithmetic happens. In fact, by doing this change,
Martin introduced a subtle but fatal error that caused the operation of
sending large mail messages to the SMTP server under Windows to fail.
By putting all values back to be signed, avoiding any signed/unsigned
mixing, the bug immediately went away. The type then in use was
Lstream_Data_Count, so that it be reverted cleanly if a vote came to
that. Now it is Bytecount.
Some earlier comments about why the type must be signed: This MUST BE
SIGNED, since it also is used in functions that return the number of
bytes actually read to or written from in an operation, and these
functions can return -1 to signal error.
Note that the standard Unix read() and write() functions define the
count going in as a size_t, which is UNSIGNED, and the count going
out as an ssize_t, which is SIGNED. This is a horrible design
flaw. Not only is it highly likely to lead to logic errors when a
-1 gets interpreted as a large positive number, but operations are
bound to fail in all sorts of horrible ways when a number in the
upper-half of the size_t range is passed in -- this number is
unrepresentable as an ssize_t, so code that checks to see how many
bytes are actually written (which is mandatory if you are dealing
with certain types of devices) will get completely screwed up.
--ben
*/
typedef enum lstream_buffering
--------------------------------- snip -------------------------------------
3. in dumper.c, there are four places, all inside of switch()
statements, where XD_BYTECOUNT appears twice as a case tag. In
each case, the two case blocks contain identical code, and you
should *REMOVE THE SECOND* and leave the first.
author | ben |
---|---|
date | Thu, 20 Sep 2001 06:31:11 +0000 |
parents | 3ecd8885ac67 |
children | 720d25fcfca6 |
line wrap: on
line source
-*- text -*- GNU Service Directory --------------------- This is a list of people who have asked to be listed as offering support services for GNU software, including GNU Emacs, for a fee or in some cases at no charge. The information comes from the people who asked to be listed; we do not include any information we know to be false, but we cannot check out any of the information; we are transmitting it to you as it was given to us and do not promise it is correct. Also, this is not an endorsement of the people listed here. We have no opinions and usually no information about the abilities of any specific person. We provide this list to enable you to contact service providers and decide for yourself whether to hire one. Before FSF will list your name in the GNU Service Directory, we ask that you agree informally to the following terms: 1. You will not restrict (except by copyleft) the use or distribution of any software, documentation, or other information you supply anyone in the course of modifying, extending, or supporting GNU software. This includes any information specifically designed to ameliorate the use of GNU software. 2. You will not take advantage of contact made through the Service Directory to advertise an unrelated business (e.g., sales of non-GNU-related proprietary information). You may spontaneously mention your availability for general consulting, but you should not promote a specific unrelated business unless the client asks. Please include some indication of your rates, because otherwise users have nothing to go by. Please put each e-mail address inside "<>". Please put nothing else inside "<>". Thanks! For a current copy of this directory, or to have yourself listed, ask: gnu@prep.ai.mit.edu ** Please keep the entries in this file alphabetical ** BeOpen <info@beopen.com> 4880 Stevens Creek Blvd., Suite 205 San Jose, CA 95129-1034 +1 408 243 3300 http://www.beopen.com BeOpen provides corporate-quality support, development and user documentation for GNU Emacs, XEmacs and InfoDock. (InfoDock is a turnkey information management and software development toolset built atop emacs, written by one of our associates.) Emacs distributions for a variety of platforms are also available, as is support for other emacs variants, such as those often found on PCs. Our unique focus on emacs-related work allows us to attract expert talent in this area to keep you on the leading edge of productivity, especially if you do software development work. We do the porting, patching, coding, integrating, debugging, documenting and testing so that your people spend much more productive time on their mainline tasks. Standard support packages include help on all aspects of the packages supported, including all tools shipped as a standard part of the original package distribution. In general, we want to give you an unbelievably strong level of support, so where we can, we will also answer questions concerning any add-on Lisp code that is used at your site. Setup and customization help, bug fixes, and announcements of new releases are, of course, included. Support rates start at $1,000 USD, for single user support for one year. Discounts are available for group contracts. We also offer Golden Support contracts for those who need the absolute best in mission-critical support; contact us for details. Hourly development rates and fixed bid work are available. Updated 20-March-1997. Joseph Arceneaux <jla@ai.mit.edu> PO Box 460633 http://www.samsara.com/~jla San Francisco, CA 94146-0633 +1 415 648 9988 +1 415 285 9088 Recently led the project making Wells Fargo Bank the first to provide secure customer account access over the Internet. Former FSF staffmember. Performed X11 implementation of Emacs version 19, designed and implemented WYSIWYG Emacs. Installed and administered FSF network. Maintainer of GNU indent. Over 15 years experience with Unix and other systems, from writing ROM monitors to UI design and system administration. I provide installation, porting, debugging and customization or development of GNU and other Unix software. I also design and implement free software projects and consult on software engineering and systems design. Handholding and teaching services are also available as well as things like LAN and compute--infrastructure design. Time and material rates around $150 USD per hour, depending upon the particular job. I am also very interested in fixed-bid jobs. For selected non-profit organizations with worthy goals, I work for free. Updated: 17Oct95 Gerd Aschemann <aschemann@Informatik.TH-Darmstadt.de> Osannstr. 49 D-64285 Darmstadt Tel.: +49 6151 16 2259 http://www.informatik.th-darmstadt.de/~ascheman/ - System Administrator (UNIX) at CS Department, TU Darmstadt, Germany - 15 years expirience with CS, Systemadministration on different platforms - 8 years with UNIX/Networking/FreeWare/GNU/X11 - 6 years organizer of Operating Systems and Distributed Systems courses - Lectures on System and Network Administration - Platforms: Solaris, SunOS, Ultrix, OSF1, HP-UX, Linux, FreeBSD, AIX - Experience with parallel environments (Connection Machine, Meiko, Parsytec) - Consultant for other UNIX users at TU Darmstadt Rates are at 100,-- DM (~60 US$) per hour minimum, depending on the job. I am willing to travel for sufficiently large jobs. Updated: 17Oct95 Giuseppe Attardi <attardi@di.unipi.it> Dipartimento di Informatica Corso Italia 40 I-56125 Pisa, Italy +39 50 887-244 GNU: help on obtaininig GNU, for italian sites. Updated: 5Apr94 James Craig Burley 97 Arrowhead Circle Ashland, MA 01721-1987 508 881-6087, -4745 (Please call only between 0900-1700 Eastern time, and only if you are prepared to hire me -- ask me to help you for free only via email, to which I might or might not respond.) Email: <burley@gnu.ai.mit.edu> --preferred-- <burley@cygnus.com> <burley@world.std.com> Expertise: Compiler Internals (author of GNU Fortran, for example) Operating Systems Internals Tools/Utilities Development and Maintenance Microcode Development and Maintenance (primarily VLIW machines) System Design (computers, operating systems, toolsets, &c) Debugging (often asked to help debug Other People's Code) Documentation (authored many books and ran a few doc projects) Extensive experience with a variety of operating systems, hardware, languages, and so on Rate: $70/hour -- willing to consider flat-fee arrangements Updated: 14Aug95 Michael I. Bushnell <mib@gnu.ai.mit.edu> 545 Technology Square, NE43-426 Cambridge, MA 02139 (617) 253-8568 All GNU software: Installation, customization, answering simple or complex questions, bug fixing, extension. Experience: I have done Unix and GNU programming for several years, I am the primary author of the Hurd (which provides most kernel related facilities for the GNU OS). I am easily available in the Cambridge/Boston area; work via email. I am willing to travel for sufficiently large jobs. Rates: $100/hr, negotiable, less for non-profit organizaions. Updated: 5Apr94 C2V Renaud Dumeur <renaud@ccv.fr> 82 bd Haussmann Michel Delval <mfd@ccv.fr> 75009 Paris Jean-Alain Le Borgne <jalb@ccv.fr> France Tel (1) 40.08.07.07 Fax (1) 43.87.35.99 We offer source or source+binary distribution, installation, training, maintenance, technical support, consulting, specific development and followup on the GNU software development environment: Emacs, gcc/g++, binutils, gas, gdb. Experience: adapted gcc, gas and binutils to work as cross-development tools for the Thomson st18950 DSP chip: GCC parser and typing system have been augmented to allow the manipulation of variables located in separated memory spaces. Porting on new platforms, and professionally developing software with the GNU tools in the Unix/X11 environment since they were first available. Rates: from 2000 FF/day to 150 000 FF/year, 40% discount for educational institutions, add taxes and expenses. Ask for list. Entered: 5May94 Contributed Software Graefestr. 76 10967 Berlin, Germany phone: (+49 30) 694 69 07 FAX: (+49 30) 694 68 09 modems: (+49 30) 694 60 55 (5xZyXEL ) modems: (+49 30) 693 40 51 (8xUSR DS) email: <info@contrib.de> internet: uropax.contrib.de [192.109.39.2], login as 'guest'. We distribute, install, port, teach and support free software in general, i.e. X11, GNU, khoros etc. Rates are ECU 80,-- plus tax per hour. We offer maintenance and support contracts for full customer satisfaction. Highlights are transparent development environments for multi-platform sites and configuration management. Traveling is no problem. Free Archive login for downloading on above modem numbers. Updated: 5Apr94 Stuart Cracraft <cracraft@ai.mit.edu> 25682 Cresta Loma Laguna Niguel, Ca. 92677 GNUline: 714-347-8106 Rate: $75/hour Consultation topics: Entire GNU suite - porting, compilation, installation, user-training, administrator-training Method: telephone line support, call-in via modem to your site, or direct visit. Experience: supporting GNU since the mid-1980's, coordinator of GNU Chess (original author), GNU Shogi, GNU Go. Ported GNU Emacs to Solaris (System V Release 4). Expertise in C, Emacs Lisp, and Perl. Customized programming also available. Entered: 5Apr94 Cygnus Support <info@cygnus.com> 1937 Landings Drive ...uunet!cygint!info Mountain View, CA 94043 USA +1 415 903 1400 voice +1 415 903 0122 fax Cygnus Support 48 Grove Street Somerville, MA 02144 +1 617 629 3000 voice +1 617 629 3010 fax Cygnus Support continues to provide supported, maintained versions of the GNU toolset including GCC, G++, the GNU debugger with graphical user interface, GNU linker, GNU macro-assembler and Emacs 19. In keeping with the rapidly advancing needs of software developers, Cygnus maintains a 90 day release cycle of the GNU toolset. Each release is regression tested and includes substantial improvements and additions to the existing matrix of over 65 supported platform configurations. Updated: 2Feb95 Edgar Der-Danieliantz <EDD@AIC.NET> <edd@ns.aic.net> <edd@arminco.com> P.O. Box 10 Yerevan 375009 AM ARMENIA Support for GCC (C & Objective C), X Window System, World Wide Web, x86-based embedded systems, logic programming, etc. Via Internet (mail, talk, irc, etc.) Experience: OS's: 4.3 & 4.4 BSD, SVR3.2 & 4.2, FreeBSD, Linux, NetBSD, SCO, Solaris, SunOS, Ultrix, NEXTSTEP, UnixWare. Languages: C, C++, Objective C, Pascal, Tcl/Tk, Perl, Bourne Shell, PostScript, HTML, Prolog. Platforms: Intel, SPARC, Mac, VAX, NeXT. Rates: Depending on type of work, appx $20/hour. Contact for more information. Negotiable for individuals and non-profit organizations. FREE for individuals who can't pay. Your 'Thanks!' just enough! :-) Payment by international wire transfer. Entered: 6Mar96 Free Software Association of Germany Michaela Merz Heimatring 19 6000 Frankfurt/Main 70 phone: (+49 69) 6312083) ert : (+49-172-6987246) email: (info@elara.fsag.de) Supporting all kinds of freeware (i.e. GNU), freeware development, consulting, training, installation. Special LINUX support group. RATES: Companies and for profit organizations : 100 US$ / hour Private and not-for-profit organizations : 40 US$ / hour ert (24h Emergency response team) : 300 US$ / hour Entered: 14Apr94 Noah Friedman <friedman@prep.ai.mit.edu> Building 600, Suite 214 2002-A Guadalupe St. #214 One Kendall Square Austin, TX 78705 Cambridge, MA 02139 (Local, faster to reach me) (Permanent) Author of several Emacs Lisp packages and parts of Emacs 19, as well as numerous utilities written in shell script and perl. Co-maintained GNU Texinfo and Autoconf for a couple of years. System administrator for a network of heterogenous machines. FSF employee Feb 1991--Sep 1994. I can perform installation, porting, and enhancement of all GNU software and any other free software; system administration for unix-type systems and ethernet networks; and I am willing to teach shell programming and Emacs Lisp. Fees negotiable, averaging $60-$75/hour. I can work in the Austin, TX area or anywhere accessible on the Internet. For larger jobs I may be willing to travel. Updated: 16Aug95 Ronald F. Guilmette <rfg@monkeys.com> Infinite Monkeys & Co. 1751 East Roseville Pkwy. #1828 Roseville, CA 95661 Tel: +1 916 786 7945 FAX: +1 916 786 5311 Services: Development & porting of GNU software development tools. GNU Contributions: Invented, designed, and implemented the protoize and unprotoize tools supplied with GCC2. Designed and developed all code to support the generation of Dwarf symbolic debugging information for System V Release 4 in GCC2. Performed original port of GNU compilers to SVr4 system. Finished port of GNU compilers to Intel i860 RISC processor. Experience: 13+ years UNIX systems experience, all working on compilers and related tools. 7+ years working professionally on GCC, G++, and GDB under contract to various firms including the Microelectronics and Computer Technology Corporation (MCC), Data General (DG), Network Computing Devices (NCD), and Intel Corp. Other qualifications: Developer of the RoadTest (tm) C and C++ commercial compiler test suites. Former vice-chairman of UNIX International Programming Languages Special Interest Group (UI/PLSIG). Bachelor's and a Master's degrees, both in Computer Science. Rates: Variable depending upon contract duration. Call for quote. Updated: 23Sep95 Hundred Acre Consulting <info@pooh.com> 1155 W Fourth St Ste 225 PO Box 6209 Reno NV 89513-6209 (702)-348-7299 Hundred Acre is a consulting group providing support and development services to organizations of all sizes. We support GNU C++ and C in particular, but also provide support for all other GNU software and certain non-GNU public domain software as well. We work on a "service contract" basis for support -- for a yearly fee, we provide multiple levels of email and toll free telephone support, and free updates and bug fixes. The highersupport levels have on-site support. Development is charged on either an hourly or fixed bid basis. Consulting rates: $70 to $90 per hour, or fixed bid. Support contracts: Several levels, from $495 to $90000 per year. Updated: 27Dec94 Interactive Information Limited Interactive Information Limited is an Edinburgh-based company that specialises in WWW services and support for using the Internet for marketing. Our staff have many years experience in using, and developing lisp packages within, Emacs, and in using other GNU/Unix tools, particularly under public domain UNIXes. We can provide services throughout the UK, at any level from general consultancy through fetching, installing and customising software to bespoke programming. Fees would be in the range #300 - #600 per day, depending primarily on the size of the job. You can contact us by email: <enquire@interactive.co.uk> by phone: 0370 30 40 52 (UK) (+44) 370 30 40 52 (International) by post: 3, Lauriston Gardens, Edinburgh EH3 9HH Scotland Entered: 13Nov95 Scott D. Kalter <sdk@mithril.com) 2032 Corral Canyon Malibu, CA 90265-9503 Home: (310) 456-0254 Emacs: Eoops, Elisp, and C level customization/extension training for general use and customization user support, installation, and troubleshooting. Rates: $50/hr May answer brief and interesting questions for free. Prefer e-mail communication to telephone. Qualifications: BS Math/CS 1985: Carnegie Mellon University MS CS 1988: UCLA Very familiar with all levels of elisp programming. Taught Emacs use and customization in universities and industry. Extensive troubleshooting and user support experience. Co-developed an object-oriented extension to Elisp that can be used for projects. Extensive Elisp level modification for rapid prototyping of designs used in groupware research. This includes the development of an infrastructure to support multiple, communicating Emacs processes. Updated: 6Apr94 KAMAN SCIENCES CORPORATION 258 GENESEE STREET UTICA NY 13502 (315) 734-3600 CONTACTS: Alan Piszcz (peesh) <apiszcz@utica1.kaman.com> : Dennis Fitzgerald <dennis@utica.kaman.com> Kaman Sciences has performed a GNU port for a custom RISC processor. We have experience in the definition and description of the machine register transfer language to the GNU tool-set. This includes rewriting and modification of the necessary description and source files of gcc, gas, and gld and other binutils. Kaman also has services for installation and setup of GNU tools, (GAWK, GCC, EMACS, etc.) on Sun workstations. Work is on a "service contract" basis and development is charged either hourly or as a fixed price contract. Consulting rates: $70 to $200 per hour. Entered: 13Jan95 Scott J. Kramer <sjk@aura.nbn.com> P.O. Box 620207 Woodside, CA 94062 +1 415-941-0755 GNU Software: Tutoring, installations/upgrades, Emacs Lisp customizations, general troubleshooting/support. Prefer that work I do becomes part integrated into official Free Software Foundation distributions. Systems Administration: Sun (SunOS & Solaris) and SGI (IRIX) UNIX hardware/software platforms. Rate: Task- and time-dependent; non-monetary offers accepted. Updated: 12Apr94 Fen Labalme <fen@comedia.com) Broadcatch Technologies 40 Carl St. #4 WE ARE EVERYWHERE San Francisco CA 94117 JUST SAY "KNOW" (415) 731-1174 ARE YOU KIND? Rates: $80 hour (negotiable); quick email or phone questions free. Lower rates -- free of barter -- for schools and non-profits. Consulting, installation, customization and training for GNU Emacs, and selected other GNU & network software (but not G++). I have been hacking Emacs since '76 when it was TECO and ^R macros (don't ask). Updated: 6Apr94 Greg Lehey LEMIS Schellnhausen 2 36325 Feldatal Germany Phone: +49-6637-919123 Fax: +49-6637-919122 Mail <grog@lemis.de> Services: Supply, porting, installation, consultation on all GNU products. Experience: 20 years OS and compiler experience, portations of most GNU products. Author of ported software CD-ROM for Unix 4.2. Rates: Choice of DM 150 per hour or hotline rates 3 DM per minute + 10 DM per phone call. Quick questions may be free. Limited free support available for purchasers of LEMIS CD-ROMs. Updated: 21Feb95 Marty Leisner <leisner@sdsp.mc.xerox.com> 332 Shaftsbury Road Rochester, New York 14610 Home:(716) 654-7931 Experience: 12 years C/Unix, 7 years DOS. Extensive experience with GNU binary tools, cross-compilers, embedded/hosted systems, realtime. Degree : BS CS, Cornell University Rates: $75/hr marty <leisner@sdsp.mc.xerox.com> <leisner@eso.mc.xerox.com> Updated: 15Apr94 Richard Levitte (in TeX: Richard Levitte Södra Långgatan 39, II S\"odra L{\aa}nggatan 39, II S-171 49 Solna S-171 49 Solna Sweden Sweden) Tel.nr.: +46 (8) 18 30 99 (there is an answering machine) e-mail: <levitte@e.kth.se> (preferred) <levitte@vms.stacken.kth.se> What I do: Primarly I work on GNU software for VMS, both VAX and AXP. I also work on GNU stuff for Unix on occasion. I'm familiar with SunOS (version 4.x.x), BSD (version 4.2 and up), Ultrix (version 4.2 and up). I've been porting GNU Emacs to VMS since spring 1991. This includes versions 18.57 to 18.59 and version 19.22. I maintain GNU vmslib. Programs supported: GNU vmslib: extending, installation, upgrading aid, simple and complex questions, you name it. GNU Emacs: porting, extending, installation, upgrading aid, customization, simple or complex questions, training, you name it. GNU autoconf: porting, extending, installation, upgrading aid. GNU zip, diffutils, m4, patch, texinfo: porting, installation, upgrading aid. GNU C/C++: installation, upgrading aid. I might start to hack at it some day. The list of programs I currently support represents both my interests and current priorities. Your interest and funding can influence my priorities. Experience: Fluent in C, C++, Emacs Lisp, Pascal as well as assembler on VAX, Motorola 680x0, Intel 8086 and 80x86. Modified key elements in Emacs (e.g., memory and process management) to work transparently on VMS. I have very good knowledge in the VMS operating system, as well as MS-DOS and IBM PC compatibles. I have worked for four and a half years as a VMS system manager. I've also provided consulting services on IBM PC compatibles, as well as held classes for IBM PC users. A reference list is available on request. Your Rate: $50-$80/hour (400-700 SEK in sweden), plus expenses. My rates are negotiable, depending on how interesting the project is to me. Entered: 18Aug94 Roland McGrath <roland@frob.com> 545 Tech Sq, Rm 426 Cambridge, MA 02139 Work: (617) 253-8568 Co-author of GNU Make (with Richard Stallman); maintainer of GNU Make. Author and maintainer of the GNU C Library and co-author of the GNU Hurd. Author of several GNU Emacs Lisp packages and parts of GNU Emacs 19. FSF employee summer 1989, fall 1990 to the present. Installation, maintenance, porting, enhancement of all GNU software. I can install GNU software and maintain its installation on call via the Internet. Fees negotiable; $75-$100/hour, higher for very short term projects. I can work anywhere in the Boston or SF Bay Area, or anywhere on the Internet. I am working full-time for the FSF on the GNU Hurd, so I am likely to take on only jobs that either can be done entirely via the Internet and are short-term, or that are very interesting. Updated: 21Jan95 Erik Naggum <erik@naggum.no> P.O. Box 1570 Vika http://www.naggum.no 0118 OSLO phone: +47 2295 0313 NORWAY NIC handle: EN9 Have extensive experience with Unix and C (since 1983), Internet protocols (1987), International Standards for character sets (1988), SGML (1990), ANSI Common Lisp (1994); Emacs user and programmer from 1984 to 1987 (TOPS-20) and 1991 to present (Unix). Have worked on GNU Emacs development since early 1994, both in Emacs Lisp and C. Have been tracking development code for Emacs since mid-1995, and know new versions intimately. Services offered: installation, support, customization, and development of new packages, plus courses and seminars from basic usage through Emacs Lisp programming to writing extensions in C. General aid with all GNU software. Rates depend on duration of work: From $6/minute for <= 1 hour, to $500/day for >= 1 month. Service agreements are encouraged. Cover Scandinavia for on-site work. Remote debugging and help by mail available for smaller fees, without limits to distance. Please call only about actual work, I prefer mail for all other questions. I accept VISA and Mastercard, preferred for remote jobs and small amounts. Wolfgang S. Rupprecht <wolfgang@wsrcc.com> 47 Esparito Ave. Fremont, CA 94539-3827 (510) 659-9757 Anything, (lisp, C, customization, porting, installing) I have written thousands of lines of GNU Emacs C and Lisp code. Original author of the floating point additions in Emacs 19. Rates: $95/hr. Updated: 14Apr94 Signum Support AB <info@signum.se> Box 2044 _ ...!seunet!signum!info S-580 02 Linkoping, Sweden +46 13 21 46 00 voice +46 13 21 47 00 fax Signum Support AB is a company dedicated to supporting, developing and distributing free software for, including but not limited to, UNIX systems. The people behind Signum Support AB have many years of general UNIX experience, both as system administrators and as programmers, and also extensive experience in maintaining the GNU programs, both administrating it and finding and fixing bugs. Services offered: - Installation and customizing GNU and other free software. We will make free software as easy to install and use as shrink wrapped programs. - Warranty protection. - Customization and porting. - Subscriptions to new versions which we will send monthly or with any other interval. - Finding, Recommending and Investigation of free software in any area of the customers choise. - Regular consulting. Rates: For software items, request our price list. For consulting, 400-800 SEK/hour. Updated: 14Apr94 Small Business Systems, Inc. <postmaster@anomaly.sbs.com> Box 17220, Route 104 Esmond, RI 02917 401.273.4669 Rate: Varies depending on complexity of task. Hourly and fixed-rate contracts are available. Programs Supported: All Updated: 14Apr94 Julian H. Stacey. <stacey@freefall.cdrom.com> Vector Systems Ltd, Holz Strasse 27d, D 80469 Munich (Muenchen), GERMANY. Tel. +49 89 268616 (089 268616 in Germany) 09:00-21:00 Timezone=GMT+01:00 Sources: All FSF/GNU, FreeBSD-current, X-Windows, XFree86, NetBSD, Mach, etc. (Plus various other things, such as, but not limited to: blas blt cflow CAD cnews crypt dvi2lj eispack elm encryption expect ezd f2c flexfax gic gopher info-zip ingres inn jpeg kermit ksh less lha linpack md5 mh mprof mtools mush nntp octave pbmplus popper sather sc schemetoc slurp sml spreadsheet sup tcl tcl-dp tcsh tcx term tex tiff tk top trn unarj ups urt wine xlock xv xview xxgdb zmodem zip zircon zoo zsh.) Media: QIC 1/4" Cartridge 525M, 150M, & 60M, TEAC CAS-60 60M Cassette, CD-ROM, Floppies 1.4M & 1.2 & 720K & 360K. DAT arrangeable. Postal Service C.O.D.(=`Nachnahme') or pre payment available. Commercial Consultancy: Custom Designs, Provision & support of FreeBSD or Unix, C, FSF tools, X Windows, own tools, systems engineering, hardware interfacing, multi lingual European, Cyrillic & Chinese tools & systems, Unix, MSDOS, real time etc, communications & scientific & industrial. DEUTSCH + FRANCAIS: Man kann mir in Deutsch schreiben, (oder mich anrufen). Je comprend Francais, mais je n'ecris pas des responses en Francais. (Contact me in English, German, or French). FREE for Symmetric Computer Systems Model 375 owners: Free Binaries & sources on SCS/375's TEAC 50/60M Cassette, for: GCC-1.40, UUCP-1.4, Ghostscript 2.3, Tar-1.08, Gzip-1.2.2 etc. (Native SCS compiler can't compile GCC on this NSC32016 based BSD4.2) On Request: Resume, Company Profile, Index of public & proprietary tools, Rate: ~120 DM/hour. ~100DM/Cartridge. (1.5DM = $1 USA = 0.6 UK Pounds @4/'94) Short enquiries free. (Kurze Anfragen Ohne Gebuhr). Updated: 14Jun94 Richard M. Stallman <rms@prep.ai.mit.edu> UUCP: {mit-eddie,ucbvax,uunet,harvard,uw-beaver}!ai.mit.edu!rms 545 Tech Sq, Rm 430 Cambridge, MA 02139 Emacs: anything whatever Is anyone interested in courses in using or extending GNU Emacs? Original inventor of Emacs and main author of GNU Emacs and GCC. Rates: $6/min or $250/hr. Updated: 14Apr94 JoS-Ware Comp Tech Johan Svensson <support@spird.jos.ec.lu.se> Box 739 220 07 LUND SWEDEN Tel +46-46-104505 (Dept. of Economics, University of LUND) Fax +46-46-188445 (JoS-Ware Comp Tech) What: We offer consulting services regarding installation, customization, troubleshooting, porting and integration of all free software, including GNU software. Spec.: Network integration, integration of public domain software into commercial systems, WorldWideWeb, C, X-Windows, Linux, networked information systems How: Remote login over internet, email, modem, phone, personal visits (in southern Sweden mainly) Rates: 550SEK (+ tax) per hour within Sweden 370SEK (+ tax) per hour within Sweden for educational org. US $90 per hour outside Sweden US $70 per hour outside Sweden for educational org. Note: fees may vary and special arrangements may be considered Entered: 7Apr94 Kayvan Sylvan <kayvan@satyr.Sylvan.COM> Sylvan Associates 879 Lewiston Drive San Jose, CA 95136 Phone: 408-978-1407 I will help you port, install and customize GNU Emacs, GCC, G++, bison, and other GNU tools on almost any architechture and operating system. Questions answered. GNU C and lisp hacking available. I will also do ongoing support and periodic upgrades if you get on my GNU software subscription list. Rates: $60-$100/hour, depending on type of work. Substantial discounts for long-term contracts and also for educational or non-profit institutions. Experience: Many different Unix systems (2.9BSD to 4.4BSD, SVR3 and SVR4, Linux, Xenix). Systems programming and system administration on all brands of Unix. Kernel hacking experience. Lots of porting experience. I can port anything to anything (within reason). Updated: 14Apr94 Leonard H. Tower Jr. <tower@prep.ai.mit.edu> 36 Porter Street Somerville, MA 02143, USA +1 (617) 623-7739 Will work on most GNU software. Installation, handholding, trouble shooting, extensions, teaching. Rates: 100.00/hour + travel expenses. Negotiable for non-profits. Experience: Have hacked on over a dozen architectures in many languages. Have system mothered several varieties of Unixes. Assisted rms with the front end of gcc and it's back-end support. Resume available on request. Entered: 14Apr94 UrbanSoft AO <info@usoft.spb.su> 68 Malooktinskii Prospect St. Petersburg, Russia 195272 Custom GhostScript and TeX programming by e-mail. Database documents, directories, standard forms. UrbanSoft uses a portion of its revenues to contribute diskette distributions of GNU software to Russian universities (most of which lack FTP access). Rates: 30,000 rubles (currently USD 16.80) per hour. Fixed rate contracts also possible. Payable by bank transfer. Updated: 20Apr94 noris network Matthias Urlichs Schleiermacherstrasse 12 90491 Nuernberg Germany Phone: +49 911 9959621 Fax: +49 911 5980150 <info@noris.de> http://info.noris.de/ (German) Expertise: OS internals, esp. Linux and BSD, esp. device drivers Network protocol / program design and coding Utilities coding and maintainance Program debugging, testing User interface design and testing Several programming and tool languages Services: Installation, debugging, enhancement, distribution, for all kinds of free software. System administration for most Unix-like systems. Email, Fax, phone, and in-person consulting (and/or "question answering"). Remote support and system monitoring (over the Internet), Update service (new tools tested and installed automagically) Internet access Rates: DM 110 (~$70) per hour Support contracts start at DM 170/month + DM 30/supported system. Willing to travel for sufficiently large jobs. Rates don't include taxes. Entered: 16Aug94 Joe Wells <jbw@cs.bu.edu> Postal Address: care of: Boston University Computer Science Department 111 Cummington Street, Room 138 Boston, Massachusetts 02215 Work Telephone: (617) 353-3381 (sorry, but no answering machine or voice mail) Home Telephone: (617) 739-7456 (until August 1995) Finger "jbw@cs.bu.edu" for up-to-date contact information. Experience: I have B.A. and M.A. degrees in Computer Science and have completed all but the dissertation for a Ph.D. in C.S. My research for my Ph.D. is in the areas of logic, type systems, and programming language theory. My primary programming languages are Emacs Lisp, Perl, and Bourne shell, but of course I can program in any language. I have written numerous Emacs Lisp packages. I started the USENET "List of Frequently Asked Questions about GNU Emacs with Answers" and maintained it for more than two years. Most of my work has been related to the telephone system (modems, voice mail, etc.), but I am not limited to that. Send e-mail for my complete resume or curriculum vita. Programs supported: GNU Emacs and Taylor UUCP: Installation, training, customization, bug fixing, troubleshooting, extension, development, porting, or answering any kind of question. Any other GNU program: The same things, but I don't necessarily have huge amounts of experience with the particular program. Working conditions: I am usually available for part-time work (less than 20 hours per week including any travel time). I can sometimes make time for full-time work for a month or two; please inquire. I can either work in or near Boston or via the Internet or via telephone; travel outside the Boston metropolitan area can be negotiated. My schedule is very flexible. Any programs I write will normally have the copying conditions of the GNU General Public License; this is negotiable. Rates: $65/hour as an independent contractor. travel and telephone expenses. higher rates if extensive travel is required. Updated: 27Sep94. Herb Wood phone: 1-415-789-7173 email: <ru@ccnext.ucsf.edu> I'm a better "planner" than I am a hacker. A really good hacker will be able to keep many pieces of information in their short-term memory and to memorize new pieces of information at a fast rate. This is not my strong point. Rather, I excel in domains that require knowledge of the slightly more theoretical parts of computer science --for example, logic, formal methods of program development, and functional programming. I can write, and I have "tutoring" (teaching one-on-one) experience, an, unlike some programmers, I enjoy doing these things. I have spend a lot of time looking at the Emacs Lisp sources and customizing Emacs and VM. I think I can customize Emacs and its packages quickly and effectively. Entered: 30Jul95 Yggdrasil Computing, Inc./ Freesoft, Inc. <info@yggdrasil.com> 4880 Stevens Creek Blvd. Ste. 205 San Jose, CA 95129 (408) 261-6630 (800) 261 6630 Updated: 14Apr94 For a current copy of this directory, or to have yourself listed, ask: gnu@prep.ai.mit.edu ** Please keep the entries in this file alphabetical **