This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
thi <ttn@mingle.glug.org> writes: > why invent a blecherous new config language when you can just come up w/ > a blecherous new API? then people can write code to edit their entries, > and you just need to review the code (for security or whatever) before > evaling. > > as a user, i would like to send you stuff like: > > (define-project thud "ttn" "***PASSWD***") > (with-project thud > (for-each (lambda (ent) > (set-project-property! (car ent) (cdr ent))) > '((%version . "0.1") > (%location . "http://somewhere/someplace") > (%status . "still-on-the-tree")))) > > to start, and then updates along the lines of: > > (with-project thud > (set-project-property! '%version > (version-increment (get-project-property %version))) > (set-project-property! '%news > (string-append > "1999/03/10 06:01:01 now runs on ethanol\n" > (get-project-property %news)))) > > this is more schemely as well. basically, i think the suggested > properties are fine, as is the general notion of regularity in format. > however, restricting editing expressiveness to the putative subset is > irksome. Umm... does anyone really want to have to debug their project entries? It basically isn't a language at all, but just a very simple way of submitting info for a database... a project is nothing more than a record with a bunch of keys. I'll be the first to shout the joys of the lisp-like language, but I don't think I'd want to write everything in scheme. (let (sentence (list->string '(It #\space would #\space become #\space annoying #\space very #\space quickly #\.))) (display sentence)) Even worse, though, anyone could submit this project: (define-project die "Cracker D00D") (with-project die (letrec ((killer (lambda () (make-thread (lambda () (make-list 1000) (killer)))))) (killer))) Boom (at least in theory, I'm not feeling like actually testing this ;) -- Greg