From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/9542 Path: main.gmane.org!not-for-mail From: "William M. Perry" Newsgroups: gmane.emacs.gnus.general Subject: Re: idea.. check and grab new versions..? Date: Wed, 22 Jan 1997 08:00:36 -0800 Message-ID: <199701221600.IAA17126@newman> References: Reply-To: wmperry@aventail.com NNTP-Posting-Host: coloc-standby.netfonds.no X-Trace: main.gmane.org 1035149552 19112 80.91.224.250 (20 Oct 2002 21:32:32 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 20 Oct 2002 21:32:32 +0000 (UTC) Cc: ding@ifi.uio.no Return-Path: Original-Received: from ifi.uio.no (0@ifi.uio.no [129.240.64.2]) by deanna.miranova.com (8.8.4/8.8.4) with SMTP id IAA11534 for ; Wed, 22 Jan 1997 08:31:10 -0800 Original-Received: from newman (root@newman.aventail.com [38.225.141.10]) by ifi.uio.no with ESMTP (8.6.11/ifi2.4) id for ; Wed, 22 Jan 1997 17:06:52 +0100 Original-Received: from kramer.in.aventail.com.aventail.com (wmperry@kramer [192.168.1.12]) by newman (8.6.12/8.6.9) with SMTP id IAA17126; Wed, 22 Jan 1997 08:00:36 -0800 Original-To: "Shannon F. Stewman" In-Reply-To: Errors-to: wmperry@aventail.com X-Face: O~Rn;(l][/-o1sALg4A@xpE:9-"'IR[%;,,!m7> 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.