Gnus development mailing list
 help / color / mirror / Atom feed
From: "William M. Perry" <wmperry@aventail.com>
Cc: ding@ifi.uio.no
Subject: Re: idea.. check and grab new versions..?
Date: Wed, 22 Jan 1997 08:00:36 -0800	[thread overview]
Message-ID: <199701221600.IAA17126@newman> (raw)
In-Reply-To: <ML-2.3.853871702.3978.stew@fermi>

Shannon F. Stewman writes:

>> But that's the easy part...the slightly harder part is getting it
>> extracted and built (e.g. using scripts as posted by Jan Vroonhof).
>> And, from what I know, there even harder part is getting it done online
>> so that you can hit an "update gnus" button in a message online
>> (e.g. Lars' announcements) that will fire it all of, then "exit" your
>> current gnus version and fire up the new gnus version while you wait
>> (with bonus points for getting you back in where you left off - reading
>> the announcement message :-)).
>
>While I'm aware that this might hit a raw nerve on some people, and might
>be considered an extreme folly, why not build some kind of scripting
>language into Gnus that would allow something to this effect? Such a
>language (called ness) has been used at CMU for some time, and without any
>serious (that I know of) harm coming to the script runners.
>
>While elisp does seem a good choice, I doubt it would pass the safety
>inspection of the skeptics. Perhaps a small scheme interpreter or
>otherwise, or am I just looking at some pie in the sky dream?

  This should really be in the raw lisp interpreter.  It should be able to
have a 'safe' mode, similar to the Safe module in Perl, or the restricted
VM in java, etc.

  You take too much of a performance penalty when trying to implement
something like this in lisp.  Ask me, I tried. :)

  I've done something similar for the DSSSL parser I have for Emacs-W3.
Basically, parsing is a snap, but then when you get down to the nitty
gritty of evaluation, things bog down.  I keep the variables and function
defs in a big hashtable thats passed around in the interpreter.  Code
basically looks like:

(defun dsssl-eval (form)
  ;; We expect to have a 'defines' and 'units' hashtable floating around
  ;; from higher up the call stack.
  (declare (special defines units))
  (cond
   ((consp form)			; A function call
    (let ((func (car form))
	  (args (cdr form)))
      (case func
	(cons
	 (dsssl-check-args args 2)
	 (cons (dsssl-eval (pop args)) (dsssl-eval (pop args))))
	(cdr
.
.
.

  Which goes on for about 300 lines.  And its not even half finished, for a
limited implementation of a scheme-like language.  Function calls and let
bindings are a bitch.  But I think I'll be able to do lexical scoping and
closures.  Ohhhhhh yeah.

-Bill P.


  parent reply	other threads:[~1997-01-22 16:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-21 11:16 Andy Eskilsson
1997-01-21 11:56 ` Lars Balker Rasmussen
1997-01-21 15:21   ` Mark Boyns
1997-01-21 16:02     ` Jan Vroonhof
1997-01-21 18:12       ` Manoj Srivastava
1997-01-22  9:43       ` wget, was [Re: idea.. check and grab new versions..?] Jan Vroonhof
1997-01-21 17:50     ` idea.. check and grab new versions..? Scott Blachowicz
1997-01-21 18:35       ` Shannon F. Stewman
1997-01-22  0:39         ` Justin Sheehy
1997-01-21 21:06           ` Shannon F. Stewman
1997-01-22 16:00         ` William M. Perry [this message]
1997-01-21 20:34       ` Andrew J Cosgriff
1997-01-21 22:57       ` Lars Magne Ingebrigtsen
1997-01-22  3:46       ` Danny Siu
1997-01-21 15:57   ` visigoth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199701221600.IAA17126@newman \
    --to=wmperry@aventail.com \
    --cc=ding@ifi.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).