[comp.emacs] Jove 4.12 vs Jove 4.09

jduro@bds-ny.UUCP (Jacques Durosier) (03/20/89)

		[Please do not follow up to comp.archives, as this
		discussion no longer belongs here. tww]

In article <37151@bbn.COM> Mike Thome <uunet!ames!mailrus!vax.bbn.com!mthome> writes:
>In article <451@mjbtn.MFEE.TN.US> root@mjbtn.MFEE.TN.US (Mark J. Bailey) writes:
>>I saw on the net recently that Jove was available now at version 4.11.
>
>Um - actually the current version is 4.12 and is available via anonymous
>ftp at cs.rochester.edu in pub/jove-4.12.tar.Z or somesuch.

Forgive my ignorance... Would a Jove guru be kind enough to post a list
of enhancements, bug fix(es), new feature(s) present in version 4.12,
which were not part of version 4.09.

(Probably, the above may be part of the version 4.12 release notes.)

We have been using Jove 4.09 and have been quite pleased with it, although
we could not benefit from the interactive shell features (Sys V system).

Thanks in advance. -- Jacques
--
Jacques A. Durosier   bds-ny!jduro
BDS 718 604 1900      uunet!bds-ny!jduro (WEEKLY)
Brooklyn NY           {philabs,rutgers,cmcl2}!{phri,hombre}!marob!bds-ny!jduro
			   (that is an ell^)

jpayne%flam@Sun.COM (Jonathan Payne) (03/23/89)

In article <171@bds-ny.UUCP> uflorida!gatech!uunet.uu.net!bds-ny!jduro (Jacques Durosier) writes:
>
>		[Please do not follow up to comp.archives, as this
>		discussion no longer belongs here. tww]
>
>In article <37151@bbn.COM> Mike Thome <uunet!ames!mailrus!vax.bbn.com!mthome> writes:
>>In article <451@mjbtn.MFEE.TN.US> root@mjbtn.MFEE.TN.US (Mark J. Bailey) writes:
>>>I saw on the net recently that Jove was available now at version 4.11.
>>
>>Um - actually the current version is 4.12 and is available via anonymous
>>ftp at cs.rochester.edu in pub/jove-4.12.tar.Z or somesuch.
>
>Forgive my ignorance... Would a Jove guru be kind enough to post a list
>of enhancements, bug fix(es), new feature(s) present in version 4.12,
>which were not part of version 4.09.
>
>(Probably, the above may be part of the version 4.12 release notes.)
>
>We have been using Jove 4.09 and have been quite pleased with it, although
>we could not benefit from the interactive shell features (Sys V system).
>
>Thanks in advance. -- Jacques
>--
>Jacques A. Durosier   bds-ny!jduro
>BDS 718 604 1900      uunet!bds-ny!jduro (WEEKLY)
>Brooklyn NY           {philabs,rutgers,cmcl2}!{phri,hombre}!marob!bds-ny!jduro
>			   (that is an ell^)


Hi.  I think you mean jove version 4.9 instead of jove 4.09.  Anyway,
here's a list of features since 4.9, as described by rlog:

revision 4.12        
date: 89/02/13 09:46:15;  author: jpayne;  state: Exp;  lines added/del: 3/1
Ansi C-ified.  Also minor addition to scroll-region-{left,right}
now uses numeric argument if one is supplied to figure out how
far to indent.
----------------------------
revision 4.11        
date: 89/01/18 15:11:10;  author: jpayne;  state: Exp;  lines added/del: 1/1
new c-mode, shift-region-{left,right}, dbx-mode, 
deleted find-files-read-only variable, uses getpwent
to look up home directories.
----------------------------
revision 4.10        
date: 88/10/21 14:22:54;  author: jpayne;  state: Exp;  lines added/del: 1/1
real keymaps now
new mail checking algorithm
better handling of modeline with SG's
changed meaning of %e in modeline
deleted ansi-codes
read-only mode
new pipeprocs mechanism
added C-X 4 C-T

****************************************

OK, in english now.

Version 4.10.

	Has real keymaps.  That is, you can create keymaps and give them
	names, and then bind those keymaps to keys.  The interface still
	rots because, well, for instance, you can't just hand some
	command a string of characters and have it build a sequence of
	keymaps for you.  In other words, you have to build all your maps
	by hand.  Also, there are no sparse maps, so, with some of the
	weirder key sequences you will get a HUGE number of maps.  In
	order to motivate myself to get my butt in gear and make smarter
	keymaps, I deleted the ansi-codes kludge.  But it didn't work.

	Smarter mail checking algorithm now.  It hardly ever lies.  And
	when it does, it only lies for a minute or two.

	Handles standout mode with terminals like telerays better.  It
	seems not to be completely right, for some reason, but at least
	it has a clue now.

	%e in the modeline used to mean, Fill the rest of the line with
	spaces.  This was to have the modeline fill up the entire
	screen.  Now %e means Equally divide any remaining white space at
	the end of the line between all the occurrences of %e in the
	modeline.  In other words, put %e at the beginning and %e at the
	end, and you have a centered modeline.

	Added read-only mode.  When a file is read-only, jove puts the
	buffer in read-only mode.  That means you can't make any
	modifications to the buffer.  I like it a lot, especially in an
	SCCS/RCS environment.  You can turn read-only on or off with a
	command.

	New interative processes no longer rely on the Berkeley signal
	mechanism.  In other words, they should run fine on system V
	machines.  The way it works now (for nonPTY systems) is that it
	reads ALL input over a single multiplexed pipe.  This includes
	keyboard input.  When JOVE starts up it fires up a kbd process
	which sends the keyboard input to JOVE.  This isn't as bad as it
	might seem, because JOVE's also smart enough to stop that
	keyboard process and do the reads directly itself, when there are
	no subprocesses running.  It seems to run plenty fast enough, but
	I only tested it in a Sun environment, so I am not sure.  In
	particular, I don't know whether pipes are still handled as UNIX
	files in Bell unix or what ...

	Added C-X 4 C-T to find-tag-at-point-in-other-window.  The whole
	C-X 4 business is complete garbage, but it gets the job done.

****************************************

Version 4.11.

	Added a new C mode.  This C mode is smarter about indentation.
	I don't want to go into the details of things that now work the
	way you would expect them to.  But the additions are what happens
	when the unmatched paren/brace is a paren.  Before it just
	ignored unmatched parens.  Now it indents according to the value
	of a variable: c-argument-indentation.  The default value is -1,
	which means Align the arguments.  For instance:
		if ((a == b) && (c == d) &&
		    (e == f)) {
			do some stuff;
		}
	The (e == f) was automatically tabbed to where it is in this
	picture.  If the value is not -1 it says add that much to the
	indent of the line with the matching paren.  So if you always
	indent continuing lines with 4 spaces, you would set it to 4.  I
	realize that you can't set it to -1 in order for it to de-indent
	by 1, but, well them's the breaks.  If JOVE had an extensions
	language this wouldn't be a problem.  More on that later.

	C-indention-increment specifies how much to indent for each level
	in C mode.  This has been around for a while, but now it works.
	This changes how tab behaves in some instances.  For instance, if
	you are at the beginning of a line and hit tab, it will indent
	one leve further than the current indent of the line, and leave
	you at the indent of the line.  It's almost always what you want
	(or at least what I want).

	Shift-region-{left,right}.  This is a good way to shift regions
	of text or code in or out one level of c-indentation-increment.
	It uses the value of c-indentation-increment even when you aren't
	in C mode.  What a crock, but oh, well.  You can specify a
	numeric argument and it will indent the region by that amount.

	Added dbx-mode.  Things were already set up for it in a serious
	way, so I added dbx mode.  There is a variable called
	dbx-format-string and JOVE uses that string to parse the output
	from dbx.  It pops up a window with the right file and line
	number, for stepping through code, or issuing the "where"
	command.  I was trying to think of a way to make it so that when
	you say "where" it actually creates a bunch of "errors" for the
	{current,previous,next}-error commands, so that you can actually
	move up and down the calling stack, but there were some timing
	problems that I couldn't think of a way around.

	Uses getpwent for looking up user names, so no more yuckiness in
	a Sun YP environment.

****************************************

Version 4.12.

	Ansi C-ified the JOVE code.  Not completed yet, but almost
	there.  I haven't done any of the work in this department since I
	don't have an ansi C compiler.  That's about it for 4.12.


A major problem is that JOVE no longer works on the IBM PC ... this is
not a permanent condition.  Hopefully it will get solved soon, but until
then you're out of luck.  Sorry 'bout that.

Now as far as extensibility is concerned, no, I am not thinking of adding
a LISP interpreter to JOVE.  Why write GNUemacs when there's already a
perfectly good one out there?  The problem is, it's just ridiculous to be
adding little stupid features to JOVE, that maybe some people like, and
some don't.  I usually add the ones I like regardless of how other people
feel (within reason).  So, well, I have decided that I am going to write
a PostScript interpreter and then rewrite JOVE from scratch around that
interpreter, and use PostScript as it's extensions language.  You might
laugh, and I hope you feel better after, but, well I LOVE programming in
postscript.  Also, PostScript is trivial to implement, in fact I am
nearly done.  But it's the perfect language for an editor.  The
philosophy of JOVE will still be the same.  Most of everything will be
implemented in C the way it is now, but at least now there will be ways
to do more than just keyboard macros.  And I won't have to keep adding
features to the C code anymore, features which screw up other people.
JOVE will also be no bigger than the current size.  I plan a complete
rewrite, so it should be better organized.  And it will use a simpler
buffer storage algorithm, which should simplify a lot of commands a great
deal.  Also, it not run on pdp11's anymore.

Anyway, that's my plan.  I have had a blast with the postscript
interpreter so far (oh, this will be postscript without the graphics
primitives, of course) so I am hoping that some of the momentum will help
me get started on the new version of JOVE.  I don't care if anybody uses
this new version.  I can't see why you would, but, well, just so you
know, it's what I am doing in my spare time.

Sorry this is so long, but at least this probably answers a lot of
peoples' questions.