view etc/JOKES @ 28062:26edef632c89

This is a big redesign of failure-stack and register handling, prompted by bugs revealed when trying to add shy-groups. Overall, what happened is that loops are now structured a little differently, groups can be shy and the code is a little simpler. (enum re_opcode_t): Remove jump_past_alt, maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add on_failure_jump_(exclusive, loop and smart). Also fix the comment for (start|stop)_memory since they now only take one argument (the second has becomes unnecessary). (print_partial_compiled_pattern): Adjust for changes in re_opcode_t. (print_compiled_pattern): Use %ld to printf long ints and flush to make debugging a little easier. (union fail_stack_elt): Make the integer unsigned. (struct fail_stack_type): Add a `frame' element. (INIT_FAIL_STACK): Init `frame' as well. (POP_PATTERN_OP): New macro for re_compile_fastmap. (DEBUG_PUSH, DEBUG_POP): Remove. (NUM_REG_ITEMS): Remove. (NUM_NONREG_ITEMS): Adjust. (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE, TOP_FAILURE_HANDLE): New macros for the cycle detection. (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT). (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New macros. (PUSH_FAILURE_POINT): Don't push registers any more. The pattern address pushed is not the destination of the jump but the source of it instead. (NUM_FAILURE_ITEMS): Remove. (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop registers before the actual failure point). Don't hardcode any meaning for str==NULL anymore. (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE) (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED): Remove. (REG_UNSET_VALUE): Use NULL (why not?). (compile_range): Remove declaration since it doesn't exist. (struct compile_stack_elt_t): Remove inner_group_offset. (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove. (regex_grow_registers): Remove dead code. (FIXUP_ALT_JUMP): New macro. (regex_compile): Add shy-groups Change loops to use on_failure_jump_smart&jump instead of on_failure_jump&maybe_pop_jump. Change + loops to eliminate the initial (dummy_failure_)jump. Remove c1_base (looks like unused variable to me). Use `jump' instead of `jump_past_alt' and don't bother with push_dummy_failure in alternatives since it is now unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef emacs' for (re)allocating the stack. (re_compile_fastmap): Remove dead variables i and num_regs. Exit from loop when bufp->can_be_null rather than jumping to `done'. Avoid jumping backwards so as to ensure termination. Use PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of backreferences. Remove dead code in handling of `anychar'. (skip_noops, mutually_exclusive_p): New functions taken from the handling of `maybe_pop_jump' in re_match_2_internal. Slightly improve mutually_exclusive_p to handle ".+\n". ((lowest|highest)_active_reg, NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove. (re_match_2_internal): Use %p instead of 0x%x when printf'ing ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead variables. Push register (in `start_memory') on the stack rather than storing it in old_reg(start|end). Remove the cycle detection from `stop_memory', replaced by the use of on_failure_jump_loop for greedy loops. Add code for the new on_failure_jump_<foo>. Remove ad-hoc code in `on_failure_jump' to push more registers in the case of a loop. Take out code from `maybe_pop_jump' into separate functions and adapt it to the semantics of `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump and push_dummy_failure. Remove dummy_failure handling and handling of `failures to jump to on_failure_jump' (this last one was already dead code, it seems). ((group|alt|common_op)_match_null_string_p): Remove.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 08 Mar 2000 23:25:41 +0000
parents e96ffe544684
children e6a15b4101f4
line wrap: on
line source

From:  Don Chiasson <G.CHIASSON@DREA-XX.ARPA>
Subject: Some gnu jokes
To: jokes@DREA-XX.ARPA, gergely@DREA-XX.ARPA, broome@DREA-XX.ARPA
cc: G.CHIASSON@DREA-XX.ARPA
Message-ID: <12329394624.13.G.CHIASSON@DREA-XX.ARPA>

     Richard M. Stallman (RMS, widely known for creating EMACS) is writing
a UNIX clone called GNU (which means Gnu's Not Unix--a recursive acronym).
This seems to open the way to a whole gnu class of jokes.  For example:

Q:  What do you call a person who hacks while wearing no clothes?
A:  A gnudist.

Q:  What do you call an eligible young hacker?
A:  Gnubile.

Q:  What is a hacker's favorite candy?
A:  Gnugat.   (Though it contains little gnutrition.)

Q:  What do you call a computer filled with air?
A:  Gnumatic.

Q:  What do you call a novice hacker who keeps pestering you 
    with foolish questions?
A:  A gnuisance.

Q:  What do you call a subtle, clever hack in the favorite language?
A:  A gnuanCe.

Q:  What do you use a supercomputer for?
A:  Gnumerical analysis.

Q:  What do you call a hacker who collects coins?
A:  A gnumismatist.

     Well, there are more, just too gnumerous to tell all at once.  I think
I'd better go before someone starts firing gnuclear weapons at me.
		Don

From: patl@athena.mit.edu (Patrick J. LoPresti)
Message-ID: <1991Jul11.031731.9260@athena.mit.edu>
Sender: news@athena.mit.edu (News system)
Subject: The True Path (long)
Date: 11 Jul 91 03:17:31 GMT
Path: ai-lab!mintaka!olivea!samsung!zaphod.mps.ohio-state.edu!think.com!snorkelwacker.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!patl
Newsgroups: alt.religion.emacs,alt.slack
Organization: Massachusetts Institute of Technology
Lines: 95
Xref: ai-lab alt.religion.emacs:244 alt.slack:1935

When I log into my Xenix system with my 110 baud teletype, both vi
*and* Emacs are just too damn slow.  They print useless messages like,
'C-h for help' and '"foo" File is read only'.  So I use the editor
that doesn't waste my VALUABLE time.

Ed, man!  !man ed

ED(1)               UNIX Programmer's Manual                ED(1)

NAME
     ed - text editor

SYNOPSIS
     ed [ - ] [ -x ] [ name ]
DESCRIPTION
     Ed is the standard text editor.
---

Computer Scientists love ed, not just because it comes first
alphabetically, but because it's the standard.  Everyone else loves ed
because it's ED!

"Ed is the standard text editor."

And ed doesn't waste space on my Timex Sinclair.  Just look:

-rwxr-xr-x  1 root          24 Oct 29  1929 /bin/ed
-rwxr-xr-t  4 root     1310720 Jan  1  1970 /usr/ucb/vi
-rwxr-xr-x  1 root  5.89824e37 Oct 22  1990 /usr/bin/emacs

Of course, on the system *I* administrate, vi is symlinked to ed.
Emacs has been replaced by a shell script which 1) Generates a syslog
message at level LOG_EMERG; 2) reduces the user's disk quota by 100K;
and 3) RUNS ED!!!!!!

"Ed is the standard text editor."

Let's look at a typical novice's session with the mighty ed:

golem> ed

?
help
?
?
?
quit
?
exit
?
bye
?
hello? 
?
eat flaming death
?
^C
?
^C
?
^D
?

---
Note the consistent user interface and error reportage.  Ed is
generous enough to flag errors, yet prudent enough not to overwhelm
the novice with verbosity.

"Ed is the standard text editor."

Ed, the greatest WYGIWYG editor of all.

ED IS THE TRUE PATH TO NIRVANA!  ED HAS BEEN THE CHOICE OF EDUCATED
AND IGNORANT ALIKE FOR CENTURIES!  ED WILL NOT CORRUPT YOUR PRECIOUS
BODILY FLUIDS!!  ED IS THE STANDARD TEXT EDITOR!  ED MAKES THE SUN
SHINE AND THE BIRDS SING AND THE GRASS GREEN!!

When I use an editor, I don't want eight extra KILOBYTES of worthless
help screens and cursor positioning code!  I just want an EDitor!!
Not a "viitor".  Not a "emacsitor".  Those aren't even WORDS!!!! ED!
ED! ED IS THE STANDARD!!!

TEXT EDITOR.

When IBM, in its ever-present omnipotence, needed to base their
"edlin" on a UNIX standard, did they mimic vi?  No.  Emacs?  Surely
you jest.  They chose the most karmic editor of all.  The standard.

Ed is for those who can *remember* what they are working on.  If you
are an idiot, you should use Emacs.  If you are an Emacs, you should
not be vi.  If you use ED, you are on THE PATH TO REDEMPTION.  THE
SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE
FAITHLESS.  DO NOT GIVE IN!!!  THE MIGHTY ED HAS SPOKEN!!!

?

From: The Unknown User <anonymous@nowhere.uucp>
Subject: EMACS -- What does it mean?
To: mit-prep!info-gnu-emacs@TOPAZ.RUTGERS.EDU

EMACS belongs in <sys/errno.h>: Editor too big!


Escape-Meta-Alt-Control-Shift


From: harvard!topaz!BLUE!BRAIL@mit-eddie
Date: 9 Sep 85 17:25:27 EDT
Subject: EMACS -- What does it mean?
To: mit-prep!info-gnu-emacs@TOPAZ.RUTGERS.EDU

	EMACS may stand for "Editing MACroS," but some friends of mine
suggested some more creative definitions. Here they are. Anyone have
any additions?

--------
Eight
Megabytes
And
Constantly
Swapping

Even a
Master of
Arts
Comes 
Simpler

Emacs
Manuals
Are 
Cryptic and
Surreal

Energetic
Merchants
Always
Cultivate
Sales

Each
Manual's
Audience is
Completely
Stupified

Emacs
Means
A
Crappy
Screen

Eventually
Munches
All
Computer
Storage

Even 
My 
Aunt
Crashes the
System

Eradication of 
Memory
Accomplished with
Complete
Simplicity

Elsewhere
Maybe
Alternative
Civilizations
Survive

Egregious
Managers
Actively
Court
Stallman

Esoteric
Malleability
Always
Considered
Silly

Emacs
Manuals
Always
Cause
Senility

Easily
Maintained with the
Assistance of
Chemical
Solutions

EMACS
MACRO
ACTED
CREDO
SODOM

Edwardian
Manifestation of
All
Colonial
Sins

Generally
Not
Used

Except by
Middle
Aged
Computer
Scientists

Extended
Macros
Are
Considered
Superfluous

Every
Mode
Accelerates
Creation of
Software

Elsewhere
Maybe
All
Commands are
Simple

Emacs
May
Allow
Customised
Screwups

Excellent
Manuals
Are
Clearly
Suppressed

Emetic
Macros
Assault
Core and
Segmentation

Embarrassed
Manual-Writer
Accused of
Communist
Subversion

Extensibility and 
Modifiability
Aggravate
Confirmed
Simpletons

Emacs
May
Annihilate
Command
Structures

Easily
Mangles,
Aborts,
Crashes and
Stupifies

Extraneous
Macros
And
Commands
Stink

Exceptionally
Mediocre
Algorithm for
Computer
Scientists

EMACS
Makes no
Allowances
Considering its
Stiff price

Equine
Mammals
Are
Considerably
Smaller

Embarrassingly
Mundane
Advertising
Cuts
Sales

Every
Moron
Assumes
CCA is
Superior

Exceptionally
Mediocre
Autocratic
Control
System

EMACS
May
Alienate
Clients and
Supporters

Excavating
Mayan
Architecture
Comes
Simpler

Erasing 
Minds
Allows 
Complete
Submission

Every
Male
Adolescent
Craves
Sex

Elephantine
Memory
Absolutely
Considered
Sine que non

Emacs 
Makers
Are
Crazy
Sickos

Eenie-Meenie-Miney-Mo-
Macros
Are
Completely
Slow

Experience the
Mildest
Ad
Campaign ever
Seen

Emacs
Makefiles
Annihilate
C-
Shells

Eradication of
Memory
Accomplished with
Complete
Simplicity

Emetic
Macros
Assault
Core and
Segmentation

Epileptic
MLisp
Aggravates
Compiler
Seizures

Eleven thousand
Monkeys
Asynchronously
Crank out these
Slogans
-------


From: ihnss!warren@mit-eddie (Warren Montgomery)
Newsgroups: net.emacs
Subject: Re: EMACS -- What does it mean?
Date: Tue, 10-Sep-85 09:14:24 EDT
Organization: AT&T Bell Labs, Naperville, IL
Apparently-To: emacs-netnews-distribution@mit-prep

Someone at a luncheon suggested it meant:

Evenings,
Mornings,
And a 
Couple of
Saturdays

(In reference to the odd hours that went into the creation of my
implementation).

-- 

	Warren Montgomery
	ihnss!warren
	IH ((312)-979) x2494

Date: Wed, 18 Sep 85 10:11:04 edt
From: inmet!tower@inmet.inmet (Leonard H. Tower Jr.) <inmet!tower@cca-unix>
Subject: Re: EMACS -- What does it mean?
To: tower@MIT-PREP.ARPA

Received: by inmet.uucp (4.12/inmet) id AA02199; Wed, 18 Sep 85 09:10:17 edt
Date: Wed, 18 Sep 85 09:10:17 edt
Message-Id: <8509181310.AA02199@inmet.uucp>
Uucp-Paths: {bellcore,ima,ihnp4}!inmet!tower
Arpa-Path: ima!inmet!tower@CCA-UNIX.ARPA
Organization: 	Intermetrics, Inc., Cambridge, MA, USA
Home: 	36 Porter Street, Somerville, MA  02143, USA   +1 (617) 623-7739
/* Written  6:48 pm  Sep 14, 1985 by gml@ssc-vax in inmet:net.emacs */
/* ---------- "Re: EMACS -- What does it mean?" ---------- */
Pleeeeeeeze!!!  Nice try on the meaning of EMACS.  I believe the
correct acronym is:

Emacs 
Makes
All 
Computing 
Simple

Thank you, and Good Night
/* End of text from inmet:net.emacs */

From: ho95e!wcs@mit-eddie (Bill.Stewart.4K435.x0705)
Newsgroups: net.emacs
Subject: Re: EMACS -- What does it mean?
Date: Thu, 26-Sep-85 21:43:54 EDT
Organization: AT&T Bell Labs, Holmdel NJ
Apparently-To: emacs-netnews-distribution@mit-prep

> > very interesting, but what does GNU stand for ?
> GNU = Gnu's Not UNIX. There is also MINCE, for Mince Is Not a Complete Emacs.
> More recursive acronyms, anyone?
Many people have also seen FINE Is Not Emacs, but the one that has
character is THief Isn't Even Fine.
-- 
## Bill Stewart, AT&T Bell Labs, Holmdel NJ 1-201-949-0705 ihnp4!ho95c!wcs

Path: mit-eddie!think!harvard!bbnccv!bbncca!linus!decvax!mcnc!ncsu!uvacs!edison!ta2
From: edison!ta2@mit-eddie (tom allebrandi)
Newsgroups: net.emacs
Subject: Re: Re: EMACS -- What does it mean?
Date: Sun, 29-Sep-85 18:11:55 EDT
Organization: General Electric's Mountain Resort
Apparently-To: emacs-netnews-distribution@mit-prep

> GNU = Gnu's Not UNIX. There is also MINCE, for Mince Is Not a Complete Emacs.
> 
> More recursive acronyms, anyone?
> 

For the DEC-system-10/20: FINE - Fine Is Not Emacs.....

-- 
...............
tom allebrandi 2, general electric aco, charlottesville, va
{decvax,duke}!mcnc!ncsu!uvacs!edison!ta2
box 8106, charlottesville, va, 22906
(804) 978-5566
...............

Date: Wed, 16 Oct 85 01:38:12 edt
From: inmet!tower (Leonard H. Tower Jr.) <inmet!tower@cca-unix>
Subject: more names
To: tower@MIT-PREP.ARPA

Received: by inmet.uucp (4.12/inmet) id AA12997; Tue, 15 Oct 85 22:31:39 edt
Date: Tue, 15 Oct 85 22:31:39 edt
Message-Id: <8510160231.AA12997@inmet.uucp>
Uucp-Paths: {bellcore,ima,ihnp4}!inmet!tower
Arpa-Path: ima!inmet!tower@CCA-UNIX.ARPA
Organization: 	Intermetrics, Inc., Cambridge, MA, USA
Home: 	36 Porter Street, Somerville, MA  02143, USA   +1 (617) 623-7739
/* Written 12:20 pm  Oct 14, 1985 by rs@mirror.UUCP in inmet:net.emacs */


SINE:	Sine Is Not Emacs
	(MIT Architecture Machine Group)

EINE:	Eine is Not Emacs
	(MIT Lisp Machine)

ZWEI:	Zwei Was Eine Initially
	("rev2" of EINE)

--
Rich $alz	{mit-eddie, ihnp4!inmet, wjh12, cca, datacube} !mirror!rs
Mirror Systems	2067 Massachusetts Ave.
617-661-0777	Cambridge, MA, 02140
/* End of text from inmet:net.emacs */

Path: mit-eddie!genrad!panda!talcott!harvard!seismo!gatech!ulysses!pajb
From: ulysses!pajb@mit-eddie (Paul Bennett)
Newsgroups: net.emacs
Subject: Here we go again ...
Date: Sat, 19-Oct-85 17:26:49 EDT
Organization: AT&T Bell Laboratories, Murray Hill
Apparently-To: emacs-netnews-distribution@mit-prep


> EINE:	Eine is Not Emacs
> 	(MIT Lisp Machine)
>
> ZWEI:	Zwei Was Eine Initially
>	("rev2" of EINE)

DREI:	DREI - Really Emacs Inside
	(Exists only in my head)

From: friedman@gnu.ai.mit.edu (Noah Friedman)
Sender: friedman@gnu.ai.mit.edu
To: jimb@gnu.ai.mit.edu, rms@gnu.ai.mit.edu
Subject: etc/emacs.names
Date: Fri, 9 Oct 92 00:54:57 edt

The following should be added:


Emacs
Makes
A
Computer
Slow

From: S_TITZ@iravcl.ira.uka.de (Olaf Titz)
Newsgroups: alt.religion.emacs
Subject: Re: what emacs stands for
Date: 12 Oct 92 19:29:32 GMT

Emacs Masquerades As Comfortable Shell
Ever Made A Control-key Setup?
Emacs: My Alternative Computer Story
Emacs Made Almost Completely Screwed
       (by extensive use of M-x global-unset-key)
Emacs Macht Alle Computer Schoen 
       (deutsch)  (=Emacs makes all computers beautiful)
Each Mail A Continued Surprise
Every Mode Acknowledges Customized Strokes 
       (keystrokes, of course :-)
Eating Memory And Cycle-Sucking
Everyday Material Almost Compiled Successfully

now enough bashing for today :-)


From: elvis@gnu.ai.mit.edu
To: emacs-19-bugs@gnu.ai.mit.edu
Subject: missing from etc/emacs.names
Date: Thu, 20 May 93 02:21:27 edt


Elvis
Masterminds
All
Computer
Software

Just so you boys know the score.

Thank you very Much,
The King