From etyurin at comcast.net Wed Feb 2 21:30:22 2005 From: etyurin at comcast.net (etyurin at comcast.net) Date: Wed, 02 Feb 2005 21:30:22 +0000 Subject: [Bese-devel] How to play safe? Message-ID: <020220052130.10852.4201466E0007AE7600002A64220588448402079D9A979B0A@comcast.net> Hi! Just started playing with UCW - and it's fun. Thanks Marco! Here's the problem though. When I run Slime/Swank combo and make a mistake in my lisp code, I don't get to debugger even if I re-attach to the lisp socket (using standard attachtty/detachtty setup). All I can do at this point is (ucw:restart-server *default-server*) What am I missing in my setup? Also, if I am running several applications at once, mistake in one takes them all out. How can I make UCW continue serving other application while waiting for my response on the broken application's debugger? Thanks, --ET. From mb at bese.it Thu Feb 3 00:42:27 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 03 Feb 2005 01:42:27 +0100 Subject: [Bese-devel] Araneida: doesn't register CSS In-Reply-To: <87mzupa161.fsf@vera.springies.com> (Alan Shutko's message of "Mon, 31 Jan 2005 12:44:38 -0600") References: <87zmytyvlr.fsf@vera.springies.com> <87mzupa161.fsf@vera.springies.com> Message-ID: Alan Shutko writes: > "Marco Baringer" writes: > >> you may need to play with the loacl path and the published path to >> make sure that http://host/ucw/examples/stylesheet.css maps to >> ucw/examples/tal/stylesheet.css > > Thanks, that's working for me. I'd like to give a shot at making > defapplication do this, with a :www-roots option similar to > :tal-roots, except that it would just publish the directories rather > than making a generator. Is that the right place to put it? yes, that looks like the best place. i think at this point we really should implement publish-directory for aserve (can we do something similar for mod_lisp or is it impossible to change apache's conf at runitme?) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Feb 3 00:54:34 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 03 Feb 2005 01:54:34 +0100 Subject: [Bese-devel] How to play safe? In-Reply-To: <020220052130.10852.4201466E0007AE7600002A64220588448402079D9A979B0A@comcast.net> (etyurin@comcast.net's message of "Wed, 02 Feb 2005 21:30:22 +0000") References: <020220052130.10852.4201466E0007AE7600002A64220588448402079D9A979B0A@comcast.net> Message-ID: etyurin at comcast.net writes: > When I run Slime/Swank combo and make a mistake in my lisp code, I > don't get to debugger even if I re-attach to the lisp socket (using > standard attachtty/detachtty setup). using slime's slime-list-threads (i think that's what its called) you can attach to a running lisp and get a debugger in any thread. once you have the debugger you should have the usual server-error and retry-action restarts available. > All I can do at this point is (ucw:restart-server *default-server*) > > What am I missing in my setup? i generally develop through emacs, so errors always immediatly pop up, are you running ucw standalone and only attaching slime when an error occurs? > Also, if I am running several applications at once, mistake in one > takes them all out. How can I make UCW continue serving other > application while waiting for my response on the broken > application's debugger? the mod_lisp backend is, atm, single threaded. this means that if you can only take one request/response at a time, no matter how many (or how few) applictions you have running. on the aserve and araneida backends (if the lisp supports threads) you shouldn't have this problem. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Feb 3 14:59:54 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 03 Feb 2005 15:59:54 +0100 Subject: [Bese-devel] [ANN] UnCommon Web 0.3.5 Message-ID: UnCommon Web version 0.3.5 Released 2005-02-03 * Home page http://common-lisp.net/project/ucw/ * Download ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.5.tar.gz * Changes (since 0.3.4) ** Components - Values passed to :component slot argument are now evaluated when the value is a list. This eliminates the need for many of the trivial initialize-instance :after methods. - A young but stable and fully functioning HTML FORM component collection has been added. - The defcomponent macro has been reintroduced (though it is obviously much simpler than it once was). - New component dependency protocol. - The *action-url-generator* special variable has been replaced by the compute-url, update-url and component dependency protocol. - New REDIRECT component for sending HTTP redirect headers. ** Component Rendering - Component rendering error handling has been improved. ** TAL/YACLML - Fixed handling of References: Message-ID: <20050203194923.GA32604@fractaldragon.net> Hello, I've just downloaded the newest UCW release, and am trying to use it with SBCL 0.8.19 on Linux. I've used UCW 0.3.4 a little with mod_lisp, but would like to try out portable aserve instead. I've run into a couple of snags. By the way, this is on Debian unstable, with version 1.2.35 installed. I first get the first (package lock) message, which I can apparently continue or accept. If I go on, it is followed up again with another, shown at the bottom. Any ideas? Thanks, Tim STYLE-WARNING: redefining STRING-TO-OCTETS in DEFUN debugger invoked on a SYMBOL-PACKAGE-LOCKED-ERROR in thread 32608: Lock on package SB-EXT violated when setting fdefinition of STRING-TO-OCTETS. See also: The SBCL Manual, Node "Package Locks" You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [CONTINUE ] Ignore the package lock. 1: [IGNORE-ALL ] Ignore all package locks in the context of this operation. 2: [UNLOCK-PACKAGE] Unlock the package. 3: [RETRY ] Retry performing # on #. 4: [ACCEPT ] Continue, treating # on # as having been successful. 5: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 6: [TOPLEVEL ] Restart at toplevel READ/EVAL/PRINT loop. (PACKAGE-LOCK-VIOLATION 7 #)[:EXTERNAL] debugger invoked on a COMMON-LISP:UNDEFINED-FUNCTION in thread 32608: The function :FIND-PACKAGE is undefined. You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [RETRY ] Retry performing # on #. 1: [ACCEPT ] Continue, treating # on # as having been successful. 2: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 3: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop. ("bogus stack frame") From ats at acm.org Thu Feb 3 21:15:00 2005 From: ats at acm.org (Alan Shutko) Date: Thu, 03 Feb 2005 15:15:00 -0600 Subject: [Bese-devel] UCW 0.3.5 with aserve and SBCL? In-Reply-To: <20050203194923.GA32604@fractaldragon.net> (Tim Lavoie's message of "Thu, 3 Feb 2005 13:49:23 -0600") References: <20050203194923.GA32604@fractaldragon.net> Message-ID: <87lla5s5uz.fsf@vera.springies.com> Tim Lavoie writes: > debugger invoked on a COMMON-LISP:UNDEFINED-FUNCTION in thread 32608: > The function :FIND-PACKAGE is undefined. This is caused by lines like this in aserve.lisp: #+#.(if (find-package "PURI") `(and) `(or)) I think this isn't strictly ANSI. http://www.lispworks.com/documentation/HyperSpec/Body/02_dhq.htm says that the test is read in the keyword package. Changing these lines to #+#.(cl:if (cl:find-package "PURI") `(and) `(or)) corrects it for SBCL. Does that look correct to others? -- Alan Shutko - I am the rocks. It is easier to resist at the beginning than at the end. From drewc at tech.coop Fri Feb 4 00:45:53 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 03 Feb 2005 16:45:53 -0800 Subject: [Bese-devel] [ANN] UnCommon Web 0.3.5 In-Reply-To: References: Message-ID: <4202C5C1.7030405@tech.coop> > Using the mod_lisp backend UCW is known to work on OpenMCL (darwin), > CMUCL (darwin and x86), SBCL (darwin and x86), CLISP (darwin). Using > the aserve backend UCW is known to work on OpenMCL (darwin), SBCL > (x86) and Allegro (windows). Using the araneida backend UCW is know to > work on OpenMCL (darwin) and CLISP (windows). Since the araneida backend was introduced, i've been using it full time on SBCL (x86), it works better than aserve, which i've had a few problems with! MORE PORTABILITY! drewc > > happy hacking! From tim at fractaldragon.net Fri Feb 4 01:12:00 2005 From: tim at fractaldragon.net (Tim Lavoie) Date: Thu, 3 Feb 2005 19:12:00 -0600 Subject: [Bese-devel] UCW 0.3.5 with aserve and SBCL? In-Reply-To: <87lla5s5uz.fsf@vera.springies.com> References: <20050203194923.GA32604@fractaldragon.net> <87lla5s5uz.fsf@vera.springies.com> Message-ID: <20050204011200.GA1346@fractaldragon.net> On Thu, Feb 03, 2005 at 03:15:00PM -0600, Alan Shutko wrote: > Tim Lavoie writes: > > > debugger invoked on a COMMON-LISP:UNDEFINED-FUNCTION in thread 32608: > > The function :FIND-PACKAGE is undefined. > > This is caused by lines like this in aserve.lisp: > > #+#.(if (find-package "PURI") `(and) `(or)) > > I think this isn't strictly ANSI. > > http://www.lispworks.com/documentation/HyperSpec/Body/02_dhq.htm > > says that the test is read in the keyword package. Changing these > lines to > > #+#.(cl:if (cl:find-package "PURI") `(and) `(or)) > > corrects it for SBCL. Does that look correct to others? That does the trick here. I still get the burps for package locks, but I can continue past those without problems. Thanks, Tim From drewc at tech.coop Fri Feb 4 09:10:39 2005 From: drewc at tech.coop (Drew Crampsie) Date: Fri, 04 Feb 2005 01:10:39 -0800 Subject: [Bese-devel] "Memoized" One time actions. In-Reply-To: <4202C5C1.7030405@tech.coop> References: <4202C5C1.7030405@tech.coop> Message-ID: <42033C0F.2090601@tech.coop> In the midst of the great "fight for continuations" that is being waged by the faithful on c.l.l, an infidel of unpure heart said : > Also, if I add an entry to the clipboard, then open a new window, the > same entry gets added again, once for each time that same URL gets > hit. It seems that these operations or "actions" are not > idempotent. Is that intentional? And damnit, he was right. I don't know if UCW solves this problem, but it wasn't hard to implement, so i fought back: ----- (defclass memoize-component () ((memos :initarg :memos :accessor memos :initform (make-hash-table :test #'equalp))) (:metaclass standard-component-class)) (defaction run-memo ((m memoize-component) fun &rest args) (let* ((memo-id (concatenate 'string (ucw::find-session-id *context*) (ucw::find-frame-id *context*) (ucw::find-action-id *context*))) (memo (gethash memo-id (memos m)))) (or memo (setf (gethash memo-id (memos m)) (apply fun args))))) (defmacro defaction-memoize (name args &body body) (let ((fun (concatenate 'string (string name) "-" (string (gensym))))) `(progn (defaction ,(intern fun) ,args , at body) (defaction ,name ,args (run-memo ,(caar args) #',(intern fun) ,(caar args) ,@(cdr args)))))) with that done i just add the mixin to my SEARCH-BOX class, and use DEFACTION-MEMOIZE rather than DEFACTION for any destructive actions that manpulate global state: (defaction-memoize add-to-clipboard ((search-box search-box-with-clipboard) item) (setf (clipboard search-box) (cons item (clipboard search-box)))) Which expands like to : RR-GEO> (macroexpand-1 '(defaction-memoize add-to-clipboard ((search-box search-box-with-clipboard) item) (call 'info-message :message (ucw::find-action-id *context*)) (setf (clipboard search-box) (cons item (clipboard search-box))) )) (PROGN (DEFACTION ADD-TO-CLIPBOARD-G9697 ((SEARCH-BOX SEARCH-BOX-WITH-CLIPBOARD) ITEM) (CALL 'INFO-MESSAGE :MESSAGE (IT.BESE.UCW::FIND-ACTION-ID *CONTEXT*)) (SETF (CLIPBOARD SEARCH-BOX) (CONS ITEM (CLIPBOARD SEARCH-BOX)))) (DEFACTION ADD-TO-CLIPBOARD ((SEARCH-BOX SEARCH-BOX-WITH-CLIPBOARD) ITEM) (RUN-MEMO SEARCH-BOX #'ADD-TO-CLIPBOARD-G9697 SEARCH-BOX ITEM))) T I had to create a named function because of the CPS transformer (my first vesion used a lambda, but didn't work with actions), but it's essentially Paul Grahams memoize macro, only keyed on a continuation id rather than the arguments. This way the action will can be called multiple times, just not from the exact same page. ----- if it's desirable to have this as part of UCW proper, we could probably do it as a method combination keyword like : (defaction foo :memoize ((self class)) '()) And there has to be a better solution than that named function :) Also, dolph on IRC noticed a bug in my installation, the arenida backend is returning NIL as the http status code. I hard coded it to 200 here, and that works fine, but is probably not desired. I don't know enough about the backend to continue. drewc From drewc at tech.coop Fri Feb 4 11:57:31 2005 From: drewc at tech.coop (Drew Crampsie) Date: Fri, 04 Feb 2005 03:57:31 -0800 Subject: [Bese-devel] "Memoized" One time actions. In-Reply-To: <42033C0F.2090601@tech.coop> References: <4202C5C1.7030405@tech.coop> <42033C0F.2090601@tech.coop> Message-ID: <4203632B.8010400@tech.coop> Attached (and inlined) is a patch that adds this behavior to UCW proper "Memoized" has been renamed "isolated", and the magic words look like: (defaction foo :isolate ((c component) ...) ...) Patch output is in 'tla changes --diffs >isolate.diff' format, which i hope is what arch users do (i use darcs and i have a darcs achive that tracks UCW if anybody is interested). drew * looking for ucw-2004 at common-lisp.net/ucw--dev--0.3--patch-210 to compare with * comparing to ucw-2004 at common-lisp.net/ucw--dev--0.3--patch-210 M src/rerl/standard-action.lisp M src/rerl/standard-component/standard-component.lisp * modified files --- orig/src/rerl/standard-action.lisp +++ mod/src/rerl/standard-action.lisp @@ -98,7 +98,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Defining actions and entry points -(defmacro defaction (name ((self self-class) &rest other-args) &body body) +(defmacro %defaction (name ((self self-class) &rest other-args) &body body) "Defines an action method named NAME." `(defmethod/cc ,name ((,self ,self-class) , at other-args) ;; extract declares and docstirngs from BODY and put them here @@ -117,6 +117,21 @@ (block ,name , at body)))) +(defmacro defaction (name &rest rest) + (if (equal (car rest) :isolate) + (destructuring-bind (args &body body) (cdr rest) + (let ((fun (concatenate 'string + (string name) + "-" + (string (gensym))))) + `(progn + (%defaction ,(intern fun) ,args + , at body) + (%defaction ,name ,args + (run-isolated ,(caar args) #',(intern fun) ,(caar args) ,@(cdr args)))))) + + `(%defaction ,name , at rest))) + (defun gen-entry-point-lambda (url request-lambda-list body) `(lambda () (ucw.component.action.dribble --- orig/src/rerl/standard-component/standard-component.lisp +++ mod/src/rerl/standard-component/standard-component.lisp @@ -23,6 +23,11 @@ (transaction-stack :initarg :transaction-stack :accessor component.transaction-stack :initform nil) + (isolate-hash :initarg :isolate-hash + :accessor component.isolate-hash + :initform (make-hash-table :test #'equalp) + :documentation +"A hash table containing the values of actions declared with the :isolate property") (parent :initarg :parent :accessor parent :initform nil)) (:documentation "Super class of all standard components.")) @@ -134,6 +139,18 @@ (defmethod update-url ((comp standard-component) url) url) +(defmethod run-isolated ((comp standard-component) fun &rest args) + "isolate an action so that repeated calls (ie by reloading the page) use a cached value" + (let* ((memo-id + (concatenate 'string + (ucw::find-session-id *context*) + (ucw::find-frame-id *context*) + (ucw::find-action-id *context*))) + (memo (gethash memo-id (component.isolate-hash comp)))) + (or memo + (setf (gethash memo-id (component.isolate-hash comp)) (apply fun args))))) + + (defmacro defcomponent (name supers slots &rest options) "Convience macro for defining a component class. -------------- next part -------------- A non-text attachment was scrubbed... Name: isolate.diff Type: text/x-patch Size: 2746 bytes Desc: not available URL: From ats at acm.org Fri Feb 4 02:15:30 2005 From: ats at acm.org (Alan Shutko) Date: Thu, 03 Feb 2005 20:15:30 -0600 Subject: [Bese-devel] [ANN] UnCommon Web 0.3.5 In-Reply-To: <4202C5C1.7030405@tech.coop> (Drew Crampsie's message of "Thu, 03 Feb 2005 16:45:53 -0800") References: <4202C5C1.7030405@tech.coop> Message-ID: <87acqlxe7x.fsf@vera.springies.com> Drew Crampsie writes: > Since the araneida backend was introduced, i've been using it full time > on SBCL (x86), it works better than aserve, which i've had a few > problems with! Ditto. -- Alan Shutko - I am the rocks. Don't expect life to be fair. From ats at acm.org Fri Feb 4 02:15:09 2005 From: ats at acm.org (Alan Shutko) Date: Thu, 03 Feb 2005 20:15:09 -0600 Subject: [Bese-devel] UCW 0.3.5 with aserve and SBCL? In-Reply-To: <20050204011200.GA1346@fractaldragon.net> (Tim Lavoie's message of "Thu, 3 Feb 2005 19:12:00 -0600") References: <20050203194923.GA32604@fractaldragon.net> <87lla5s5uz.fsf@vera.springies.com> <20050204011200.GA1346@fractaldragon.net> Message-ID: <87ekfxxe8i.fsf@vera.springies.com> Tim Lavoie writes: > That does the trick here. I still get the burps for package locks, but > I can continue past those without problems. For my init.lisp, I wrap certain things in (sb-ext:without-package-locks ....) so it can start up unattended. -- Alan Shutko - I am the rocks. If war is menstrual envy then tampons are penis envy. From ats at acm.org Fri Feb 4 02:34:55 2005 From: ats at acm.org (Alan Shutko) Date: Thu, 03 Feb 2005 20:34:55 -0600 Subject: MERGE-REQUEST Re: [Bese-devel] UCW 0.3.5 with aserve and SBCL? In-Reply-To: <87lla5s5uz.fsf@vera.springies.com> (Alan Shutko's message of "Thu, 03 Feb 2005 15:15:00 -0600") References: <20050203194923.GA32604@fractaldragon.net> <87lla5s5uz.fsf@vera.springies.com> Message-ID: <873bwdxdbk.fsf_-_@vera.springies.com> I've put an arch archive with this change at http://www.springies.com/~ats/2005-oss Marco, could you take a look at my change and merge it if it looks ok? Alan Shutko writes: > Tim Lavoie writes: > >> debugger invoked on a COMMON-LISP:UNDEFINED-FUNCTION in thread 32608: >> The function :FIND-PACKAGE is undefined. > > This is caused by lines like this in aserve.lisp: > > #+#.(if (find-package "PURI") `(and) `(or)) > > I think this isn't strictly ANSI. > > http://www.lispworks.com/documentation/HyperSpec/Body/02_dhq.htm > > says that the test is read in the keyword package. Changing these > lines to > > #+#.(cl:if (cl:find-package "PURI") `(and) `(or)) > > corrects it for SBCL. Does that look correct to others? -- Alan Shutko - I am the rocks. Sounds good to me.... yeee hah! Your corral or mine.... From mb at bese.it Fri Feb 4 15:12:47 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 04 Feb 2005 16:12:47 +0100 Subject: MERGE-REQUEST Re: [Bese-devel] UCW 0.3.5 with aserve and SBCL? In-Reply-To: <873bwdxdbk.fsf_-_@vera.springies.com> (Alan Shutko's message of "Thu, 03 Feb 2005 20:34:55 -0600") References: <20050203194923.GA32604@fractaldragon.net> <87lla5s5uz.fsf@vera.springies.com> <873bwdxdbk.fsf_-_@vera.springies.com> Message-ID: Alan Shutko writes: > I've put an arch archive with this change at > http://www.springies.com/~ats/2005-oss merged. thanks. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From etyurin at comcast.net Fri Feb 4 18:10:42 2005 From: etyurin at comcast.net (etyurin at comcast.net) Date: Fri, 04 Feb 2005 18:10:42 +0000 Subject: [Bese-devel] Question on project structure Message-ID: <020420051810.17925.4203BAA1000BC61D00004605220074818402079D9A979B0A@comcast.net> Hi! Still trying to understand the "proper ways" of doing things with UCW... Suppose I want to modify the visual appearance of, say, tabbed-pane - like bold instead of fixed-width font for the active tab. Is there a way to "feed" an alternative .tal file instead of duplicating the whole code of tabbed-pane (yes, whooping two files .lisp and .tal)? Conversely, there's login.lisp component that specifies login.tal - however there's no login.tal file anywhere in the tree... This doesn't prevent login from functioning though... --ET. From ats at acm.org Fri Feb 4 20:37:09 2005 From: ats at acm.org (Alan Shutko) Date: Fri, 04 Feb 2005 14:37:09 -0600 Subject: [Bese-devel] Araneida: doesn't register CSS In-Reply-To: (Marco Baringer's message of "Thu, 03 Feb 2005 01:42:27 +0100") References: <87zmytyvlr.fsf@vera.springies.com> <87mzupa161.fsf@vera.springies.com> Message-ID: <87sm4ccb9m.fsf@vera.springies.com> "Marco Baringer" writes: > yes, that looks like the best place. I've pushed another patch to my archive (http://www.springies.com/~ats/2005-oss) adding :www-root. I think it's pretty clean, but I'd appreciate input. > i think at this point we really should implement publish-directory > for aserve (can we do something similar for mod_lisp or is it > impossible to change apache's conf at runitme?) I'll take a look at aserve unless someone else does first. As for mod_lisp, I'm pretty sure that Apache 1.3's config can't be changed at runtime, and while I don't know whether Apache 2's config can be changed, it would probably require hacking mod_lisp to support changing it. -- Alan Shutko - I am the rocks. Cheating on His Wife: Izzy Backyet* From mb at bese.it Fri Feb 4 23:12:56 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 05 Feb 2005 00:12:56 +0100 Subject: [Bese-devel] Question on project structure In-Reply-To: <020420051810.17925.4203BAA1000BC61D00004605220074818402079D9A979B0A@comcast.net> (etyurin@comcast.net's message of "Fri, 04 Feb 2005 18:10:42 +0000") References: <020420051810.17925.4203BAA1000BC61D00004605220074818402079D9A979B0A@comcast.net> Message-ID: etyurin at comcast.net writes: > Hi! > > Still trying to understand the "proper ways" of doing things with UCW... me too. :) > Suppose I want to modify the visual appearance of, say, tabbed-pane > - like bold instead of fixed-width font for the active tab. > > Is there a way to "feed" an alternative .tal file instead of > duplicating the whole code of tabbed-pane (yes, whooping two files > .lisp and .tal)? (defcomponent my-tabbed-pane (tabbed-pane) () (:default-initargs :template-name "my-tal-file.tal")) > Conversely, there's login.lisp component that specifies login.tal - > however there's no login.tal file anywhere in the tree... This > doesn't prevent login from functioning though... true enough. login defines its own render-on method, so the template-component's render-on doesn't get called. i'll kill the :default-initargs asap. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From drewc at tech.coop Sat Feb 5 02:32:30 2005 From: drewc at tech.coop (Drew Crampsie) Date: Fri, 04 Feb 2005 18:32:30 -0800 Subject: [bugfix] Re: [Bese-devel] "Memoized" One time actions. In-Reply-To: <4203632B.8010400@tech.coop> References: <4202C5C1.7030405@tech.coop> <42033C0F.2090601@tech.coop> <4203632B.8010400@tech.coop> Message-ID: <4204303E.8090308@tech.coop> the isolate patch contains a bug. if an action returns NIL it will be treated as non-isolated.. bad bad drewc. Here is a fixed patch against 210. For those following along at home, the new code is : (defmethod run-isolated ((comp standard-component) fun &rest args) "isolate an action so that repeated calls (ie by reloading the page) use a cached value" (let ((memo-id (concatenate 'string (ucw::find-session-id *context*) (ucw::find-frame-id *context*) (ucw::find-action-id *context*)))) (multiple-value-bind (memo memo-present-p) (gethash memo-id (component.isolate-hash comp)) (format t "looking for memo :~A : found ~A" memo-id memo) (if memo-present-p memo (setf (gethash memo-id (component.isolate-hash comp)) (apply fun args)))))) note the use of memo-present-p and let that be a lesson to you :). bad bad coder. drewc -------------- next part -------------- A non-text attachment was scrubbed... Name: isolate-fixed.diff Type: text/x-patch Size: 2879 bytes Desc: not available URL: From etyurin at comcast.net Sat Feb 5 02:48:50 2005 From: etyurin at comcast.net (Eugene Tyurin) Date: Fri, 4 Feb 2005 21:48:50 -0500 Subject: [Bese-devel] Bug in arnesi parse-float Message-ID: There's a bug in parse-float when parsing negative numbers. Here's my fix: --- /Users/gene/tmp/numbers-ent.lisp 2005-02-04 21:42:49.000000000 -0500 +++ libs/arnesi/src/numbers.lisp 2005-02-02 23:05:15.000000000 -0500 @@ -20,10 +20,8 @@ mantissa (parse-integer string :start (1+ it) :end end :radix radix)) (if (zerop mantissa) (float whole-part) - (let ((mantissa-float (/ mantissa (expt radix (1+ (floor (log mantissa radix))))))) - (if (char= #\- (elt string 0)) - (- whole-part mantissa-float) - (+ whole-part mantissa-float)) ))) + (+ whole-part + (/ mantissa (expt radix (1+ (floor (log mantissa radix)))))))) (parse-integer string :start start :end end :radix radix)))) (define-modify-macro mulf (delta) * "SETF NUM to the result of (* NUM B).") Can't use simple (> 0 whole-part) test, because that would not work for negatives between 0 and -1. --ET. From etyurin at comcast.net Sat Feb 5 18:06:26 2005 From: etyurin at comcast.net (Eugene Tyurin) Date: Sat, 5 Feb 2005 13:06:26 -0500 Subject: [Bese-devel] fixed bug in validate-number-field Message-ID: Hi! This prevents someone from sabotaging the application by inputting a non-numeric string into number-field. Also, I left (if (eql +unitialized+ lisp-value t) as is and added extra numberp test. But should'nt validator return nil if the lisp-value is still unitialized? --ET. --- src/components/form.lisp 2005-02-02 23:04:11.000000000 -0500 +++ ../../tmp/form-ent.lisp 2005-02-05 13:01:55.000000000 -0500 @@ -112,17 +112,20 @@ number (if (eql +uninitialized+ lisp-value) t + (if (numberp lisp-value) (cond ((and min-value max-value) (< min-value lisp-value max-value)) (min-value (< min-value lisp-value)) (max-value (< lisp-value max-value)) - (t lisp-value))))) + (t lisp-value)) + nil)))) (defmethod read-client-value :around ((number number-field)) (unless (or (null (client-value number)) (string= "" (client-value number))) - (call-next-method))) + (ignore-errors ; returns NIL in case of SIMPLE-PARSE-ERROR + (call-next-method)))) (defmethod render-on ((res response) (n number-field)) ( I've just committed publish-directory for aserve to my archive. I also implemented - I am the rocks. From mb at bese.it Sun Feb 6 09:55:51 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 06 Feb 2005 10:55:51 +0100 Subject: [Bese-devel] publish-directory for aserve In-Reply-To: <87fz0abt3l.fsf@vera.springies.com> (Alan Shutko's message of "Sat, 05 Feb 2005 15:21:50 -0600") References: <87fz0abt3l.fsf@vera.springies.com> Message-ID: Alan Shutko writes: > I've just committed publish-directory for aserve to my archive. cool! > I also implemented buttons to input type=submits. i edited the patch slighty (just fixed the doc string and error message) and applied it. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Feb 6 10:05:01 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 06 Feb 2005 11:05:01 +0100 Subject: [Bese-devel] fixed bug in validate-number-field In-Reply-To: (Eugene Tyurin's message of "Sat, 5 Feb 2005 13:06:26 -0500") References: Message-ID: Eugene Tyurin writes: > Hi! > > This prevents someone from sabotaging the application by inputting a > non-numeric string into number-field. applied, thanks. > Also, I left (if (eql +unitialized+ lisp-value t) as is and added > extra numberp test. But should'nt validator return nil if the > lisp-value is still unitialized? yes. [the entire +unitialized+ thing should probably be removed though.] -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Feb 6 10:13:46 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 06 Feb 2005 11:13:46 +0100 Subject: [Bese-devel] ucw available through darcs Message-ID: in the hopes of making ucw as easy as possible to work with (and to send me your changes), i've created a darcs repo for ucw: http://common-lisp.net/project/ucw/_darcs/ucw the repo was created by automatically reading the entire ucw history (the repo contains almost 700 patches). here's a quick intro to using the new repo: $ darcs get http://common-lisp.net/project/ucw/_darcs/ucw $ darcs record $ darcs send not withstanding this excursion into darcs land i want every to know that the official source for ucw is the arch repository. i will keep the darcs repo synchronized (though it may lag a bit) and i'll accept darcs patches, but we're not switching over to darcs. p.s. - this is my first attempt at setting up darcs, comments welcome. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From etyurin at comcast.net Sun Feb 6 19:39:10 2005 From: etyurin at comcast.net (Eugene Tyurin) Date: Sun, 6 Feb 2005 14:39:10 -0500 Subject: [Bese-devel] Re: Bug in arnesi parse-float In-Reply-To: References: Message-ID: <07d3d03de795852f36572ba47c9549c9@comcast.net> Just spent quite some time tracking a weird bug in my project, turns out the offender is parse-float again... :-( It parses "11.096" into "11.96" - it really does when you look carefully. :-) Which makes me think - why does arnesi need parse-float - why not use read-from-string? --ET. From mb at bese.it Sun Feb 6 20:40:08 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 06 Feb 2005 21:40:08 +0100 Subject: [Bese-devel] Re: Bug in arnesi parse-float References: <07d3d03de795852f36572ba47c9549c9@comcast.net> Message-ID: Eugene Tyurin writes: > Which makes me think - why does arnesi need parse-float - why not use > read-from-string? parse-float wa supposed to be faster, too bad it's so hard to make it correct. ok, would it be easier if i simply removed parse-float or if parse-float was a simple wrapper around read-from-string (anybody other than me use the :radix keyword)? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From etyurin at comcast.net Sun Feb 6 21:14:34 2005 From: etyurin at comcast.net (Eugene Tyurin) Date: Sun, 6 Feb 2005 16:14:34 -0500 Subject: [Bese-devel] Re: Bug in arnesi parse-float In-Reply-To: References: <07d3d03de795852f36572ba47c9549c9@comcast.net> Message-ID: <5676f0e1b00e93ed7377548fa0777567@comcast.net> That's what I've done already. :-) Actually, parsing and controlling user input is a bitch every time. That's why the standard discusses *read-default-float-format* and whole slew of other goodies. For example, depending on your locale (US vs. Europe) string "1,200" could have two totally different meanings. ;-( Peace, --ET. On Feb 6, 2005, at 3:40 PM, Marco Baringer wrote: > Eugene Tyurin writes: > >> Which makes me think - why does arnesi need parse-float - why not use >> read-from-string? > > parse-float wa supposed to be faster, too bad it's so hard to make it > correct. ok, would it be easier if i simply removed parse-float or if > parse-float was a simple wrapper around read-from-string (anybody > other than me use the :radix keyword)? > > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > From rm at fabula.de Mon Feb 7 09:15:24 2005 From: rm at fabula.de (rm at fabula.de) Date: Mon, 7 Feb 2005 10:15:24 +0100 Subject: [Bese-devel] Araneida: doesn't register CSS In-Reply-To: <87sm4ccb9m.fsf@vera.springies.com> References: <87zmytyvlr.fsf@vera.springies.com> <87mzupa161.fsf@vera.springies.com> <87sm4ccb9m.fsf@vera.springies.com> Message-ID: <20050207091524.GA19202@seid-online.de> On Fri, Feb 04, 2005 at 02:37:09PM -0600, Alan Shutko wrote: > "Marco Baringer" writes: > > > yes, that looks like the best place. > > I've pushed another patch to my archive > (http://www.springies.com/~ats/2005-oss) adding :www-root. I think > it's pretty clean, but I'd appreciate input. > > > i think at this point we really should implement publish-directory > > for aserve (can we do something similar for mod_lisp or is it > > impossible to change apache's conf at runitme?) > > I'll take a look at aserve unless someone else does first. As for > mod_lisp, I'm pretty sure that Apache 1.3's config can't be changed at > runtime, and while I don't know whether Apache 2's config can be > changed, it would probably require hacking mod_lisp to support > changing it. Hmm, depends on how you define "runtime". You certainly can change the configuration files and send the master process (the one that drops his PID into the PID-file) a SIGHUP. None of the currently running requests will be affected (but that wouldn't be nice anyway) but except this every- thing should work ok ... hth Ralf Mattes > -- > Alan Shutko - I am the rocks. > Cheating on His Wife: Izzy Backyet* > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Mon Feb 7 13:51:09 2005 From: mb at bese.it (Marco Baringer) Date: Mon, 07 Feb 2005 14:51:09 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 Message-ID: i've put up a new release of ucw: ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.6pre0.tar.gv i've tested this (clean install of ucw and related libs) on openmcl (darwin+araneida and darwin+mod_lisp), cmucl (linux-x86 + araneida) and sbcl (linux-x86 + araneida). seeing as how my last release went i'd appreciate it if someone would download it and make sure that at least the examples compile, load and run correctly. if i don't hear anything back this will become 0.3.6 which will be released tomorow. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From rm at mh-freiburg.de Mon Feb 7 13:56:22 2005 From: rm at mh-freiburg.de (Le grand pinguin) Date: Mon, 7 Feb 2005 14:56:22 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 In-Reply-To: References: Message-ID: <20050207135622.GA25428@forte.mh-freiburg.de> On Mon, Feb 07, 2005 at 02:51:09PM +0100, Marco Baringer wrote: > > i've put up a new release of ucw: > > ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.6pre0.tar.gv make that ucw_0.3.6pre0.tar.gz and it'll work :-) HTH RalfD > i've tested this (clean install of ucw and related libs) on openmcl > (darwin+araneida and darwin+mod_lisp), cmucl (linux-x86 + araneida) > and sbcl (linux-x86 + araneida). seeing as how my last release went > i'd appreciate it if someone would download it and make sure that at > least the examples compile, load and run correctly. > > if i don't hear anything back this will become 0.3.6 which will be > released tomorow. > > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From rm at mh-freiburg.de Mon Feb 7 14:18:39 2005 From: rm at mh-freiburg.de (Le grand pinguin) Date: Mon, 7 Feb 2005 15:18:39 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 In-Reply-To: References: Message-ID: <20050207141839.GB25428@forte.mh-freiburg.de> On Mon, Feb 07, 2005 at 02:51:09PM +0100, Marco Baringer wrote: > > i've put up a new release of ucw: > > ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.6pre0.tar.gv > > i've tested this (clean install of ucw and related libs) on openmcl > (darwin+araneida and darwin+mod_lisp), cmucl (linux-x86 + araneida) > and sbcl (linux-x86 + araneida). seeing as how my last release went > i'd appreciate it if someone would download it and make sure that at > least the examples compile, load and run correctly. > > if i don't hear anything back this will become 0.3.6 which will be > released tomorow. Hmm, i did download the tarball and started up my OpenMCL/PPC (Debian/Linux with omcl version 0.14.2-p2 (basically a debianized version of Brian's repository). Everything seems to work fine (using mod_lisp) except the 'signal an error' - that drops me into omcl's kernel debugger. Or is this intended? ;-) cheers RalfD > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Mon Feb 7 15:52:30 2005 From: mb at bese.it (Marco Baringer) Date: Mon, 07 Feb 2005 16:52:30 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 References: <20050207141839.GB25428@forte.mh-freiburg.de> Message-ID: rm at mh-freiburg.de (Le grand pinguin) writes: >> if i don't hear anything back this will become 0.3.6 which will be >> released tomorow. > > Hmm, i did download the tarball and started up my OpenMCL/PPC (Debian/Linux > with omcl version 0.14.2-p2 (basically a debianized version of Brian's > repository). Everything seems to work fine (using mod_lisp) except the > 'signal an error' - that drops me into omcl's kernel debugger. Or is this > intended? ;-) oh my. what pain. what suffering. the error is, afaict, caused by attempting to print the elements on the stack which are no longer there but aren't quite bogus objects yet (this is what i've been able to glean from the kernel backtrace, slime's backtrace and the curretly working version of the error backtrace). anyway: ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.6pre1.tar.gz > cheers RalfD that was fun... -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From rm at fabula.de Mon Feb 7 15:54:25 2005 From: rm at fabula.de (rm at fabula.de) Date: Mon, 7 Feb 2005 16:54:25 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 In-Reply-To: References: <20050207141839.GB25428@forte.mh-freiburg.de> Message-ID: <20050207155425.GC19862@seid-online.de> On Mon, Feb 07, 2005 at 04:52:30PM +0100, Marco Baringer wrote: > rm at mh-freiburg.de (Le grand pinguin) writes: > > >> if i don't hear anything back this will become 0.3.6 which will be > >> released tomorow. > > > > Hmm, i did download the tarball and started up my OpenMCL/PPC (Debian/Linux > > with omcl version 0.14.2-p2 (basically a debianized version of Brian's > > repository). Everything seems to work fine (using mod_lisp) except the > > 'signal an error' - that drops me into omcl's kernel debugger. Or is this > > intended? ;-) > > oh my. what pain. what suffering. > > the error is, afaict, caused by attempting to print the elements on > the stack which are no longer there but aren't quite bogus objects yet > (this is what i've been able to glean from the kernel backtrace, > slime's backtrace and the curretly working version of the error > backtrace). > > anyway: > > ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.6pre1.tar.gz > > > cheers RalfD > > that was fun... Thank's a lot, i'll gice it another try ... RalfD > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From rm at fabula.de Mon Feb 7 16:10:02 2005 From: rm at fabula.de (rm at fabula.de) Date: Mon, 7 Feb 2005 17:10:02 +0100 Subject: [Bese-devel] ucw 0.3.6pre0 In-Reply-To: References: <20050207141839.GB25428@forte.mh-freiburg.de> Message-ID: <20050207161002.GD19862@seid-online.de> Ok, the new version seems to work fine on OpenMCL/Linux/PPC Thanks RalfD From rm at mh-freiburg.de Mon Feb 7 16:25:22 2005 From: rm at mh-freiburg.de (Le grand pinguin) Date: Mon, 7 Feb 2005 17:25:22 +0100 Subject: ucw 0.3.6pre1 [was][Bese-devel] ucw 0.3.6pre0 In-Reply-To: <20050207161002.GD19862@seid-online.de> References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> Message-ID: <20050207162522.GC25428@forte.mh-freiburg.de> On Mon, Feb 07, 2005 at 05:10:02PM +0100, rm at fabula.de wrote: > > Ok, the new version seems to work fine on OpenMCL/Linux/PPC > > Thanks RalfD One mnor thing: the stylesheet doesn't get delivered. When i request it from the browser i get the gollowing: Error: Error # Sorry, don't know what to with /ucw/examples/stylesheet.css Here's the repl-log: [UCW.RERL.SERVER 3316785027] Handling a request for # (#, #). [UCW.RERL.SERVER 3316785027] Serving context #. [UCW.RERL.APPLICATION 3316785027] Servicing # for #. [UCW.BACKEND 3316785027] Parsing cookie "ucw-session-id=ZZTwWUyNJJCVeTQfnZjKrkNfqLdfTttWUKycpLex". [UCW.BACKEND 3316785027] Parsed "ucw-session-id=ZZTwWUyNJJCVeTQfnZjKrkNfqLdfTttWUKycpLex" into "ZZTwWUyNJJCVeTQfnZjKrkNfqLdfTttWUKycpLex". [UCW.RERL.APPLICATION 3316785027] Searching for entry point for url "/ucw/examples/stylesheet.css" in #. [UCW.RERL.SERVER 3316785027] Done handling, shutdown request and response. HTH RalfD From mb at bese.it Mon Feb 7 16:32:00 2005 From: mb at bese.it (Marco Baringer) Date: Mon, 07 Feb 2005 17:32:00 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <20050207162522.GC25428@forte.mh-freiburg.de> (Le grand pinguin's message of "Mon, 7 Feb 2005 17:25:22 +0100") References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> Message-ID: rm at mh-freiburg.de (Le grand pinguin) writes: > On Mon, Feb 07, 2005 at 05:10:02PM +0100, rm at fabula.de wrote: >> >> Ok, the new version seems to work fine on OpenMCL/Linux/PPC >> >> Thanks RalfD > > One mnor thing: the stylesheet doesn't get delivered. When i request it > from the browser i get the gollowing: > > Error: Error # > > Sorry, don't know what to with /ucw/examples/stylesheet.css > > Here's the repl-log: > > [UCW.RERL.SERVER 3316785027] Handling a request for # (#, #). the problem is that you're using the mod_lisp backend. unlike araneida and aserve we don't automatically teach mod_lisp how to serve static files like stylesheets. you'll need to edit httpd.conf and tell apache to send action requests to ucw and serve other ones from htdocs (and you'll then need to setup links or copy files so that htdocs/ucw/examples corresponds to ucw/examples/tal/). i've got a symlink from htdocs/ucw/examples to ucw/examples/tal and this in my httpd.conf: SetHandler lisp-handler p.s. - this really should go into a FAQ or something. -- -Marco Baringer Baringer Electronics and Software Engineering www.bese.it From ats at acm.org Mon Feb 7 16:33:43 2005 From: ats at acm.org (Alan Shutko) Date: Mon, 07 Feb 2005 10:33:43 -0600 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <20050207162522.GC25428@forte.mh-freiburg.de> (Le grand pinguin's message of "Mon, 7 Feb 2005 17:25:22 +0100") References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> Message-ID: <874qgoba8o.fsf@vera.springies.com> rm at mh-freiburg.de (Le grand pinguin) writes: > One mnor thing: the stylesheet doesn't get delivered. When i request it > from the browser i get the gollowing: > > Error: Error # > > Sorry, don't know what to with /ucw/examples/stylesheet.css I bet this is because we don't have publish-directory for mod_lisp implemented yet. (It's just an empty stub right now.) What version of mod_lisp are you using? I'll try to download it and implement it. -- Alan Shutko - I am the rocks. APATHY RULES! ( but who cares? ) From s_bschmi at ira.uka.de Mon Feb 7 19:36:51 2005 From: s_bschmi at ira.uka.de (Benedikt Schmidt) Date: Mon, 07 Feb 2005 20:36:51 +0100 Subject: [Bese-devel] ucw available through darcs In-Reply-To: References: Message-ID: <1107805011.22150.59.camel@debian> Am Sonntag, den 06.02.2005, 11:13 +0100 schrieb Marco Baringer: > not withstanding this excursion into darcs land i want every to know > that the official source for ucw is the arch repository. i will keep > the darcs repo synchronized (though it may lag a bit) and i'll accept > darcs patches, but we're not switching over to darcs. Attached is a first try to implement a Task [1] component in UCW and some typo fixes. > p.s. - this is my first attempt at setting up darcs, comments welcome. If you add "_darcs/pref/email" with the email address where patches should be sent, darcs send should work without entering an email address. Benedikt [1] http://www.motionobj.com/seasidefaq/DifferenceBetweenComponentAndTask -------------- next part -------------- New patches: [typos in docs and docstrings Benedikt Schmidt **20050207173213] < > { hunk ./docs/ucw.tex 78 \item A \ucw{} server providing the infrastructure \item A set of \it{component}s which implement the applications graphical user interface. -\item A set of \it{action}s which specify what operations the sure can +\item A set of \it{action}s which specify what operations the user can perform and what these operation do to the application's user interface. \item The core application itself (aka everything else). hunk ./docs/ucw.tex 244 when the form is submitted the place is setf'd and passed the string value as it is read from the http request. -NB: same issue with closed over variables appiles here. +NB: same issue with closed over variables applies here. \subsubsection{")) (:documentation "Class of errors signaled when a particular part of the action chain (session, frame, param-action or action) -is specifed in the request but the corresponding server side +is specified in the request but the corresponding server side object can't be found.")) (defmethod shared-initialize :after ((err inexistent-request-part) slot-names &rest other-args) hunk ./src/rerl/protocol.lisp 44 signalled during the service'ing of the request. Servers are responsible for managing multiple applications within -the same UCW intsance and dealing with, possibly, multiple +the same UCW instance and dealing with, possibly, multiple backends.")) (defgeneric server.applications (server) hunk ./src/rerl/protocol.lisp 88 * Creating request contexts. -* Managing entry-points and associating them to requset objects. +* Managing entry-points and associating them to request objects. * Creating http query paths which subsequently (when requested) call action lambdas.")) hunk ./src/rerl/protocol.lisp 189 (defgeneric call-callbacks (context) (:documentation "Call all the request callbacks in CONTEXT's request. -Methods defined an this generic function must be built up from +Methods defined on this generic function must be built up from calls to map-parameters (part of the backend protocol) and call-callback.")) hunk ./src/rerl/protocol.lisp 224 (:documentation "The core request handling generic function. The service protocol consists of 4 passes: application -> session --> session-frame -> action. At each phase the appropiate object +-> session-frame -> action. At each phase the appropriate object is passed to service with the current request object (which is also bound to *context*). The appropiate object must perform hunk ./src/rerl/protocol.lisp 227 -whatever it needs and then explictly call service again passing +whatever it needs and then explicitly call service again passing it the next object in the chain.")) (defvar *context* :unbound hunk ./src/rerl/protocol.lisp 260 (defgeneric session.value (key session &optional default) (:documentation "Fetch the value with key KEY in the session SESSION. -DEFAULT is retruned should KEY not be found in SESSION's +DEFAULT is returned should KEY not be found in SESSION's session-table. Keys are compared using EQL.")) hunk ./src/rerl/protocol.lisp 276 (defun get-session-value (key &optional (default nil) (session (context.session *context*))) - "Convience wrapper around session.value. + "Convenience wrapper around session.value. SESSION defaults to the current session." (session.value key session default)) hunk ./src/rerl/protocol.lisp 320 The new frame object must build its history (component, backtracks, etc.) assuming that FRAME is the previous (in -cronological order) frame.")) +chronological order) frame.")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Entry Point hunk ./src/rerl/protocol.lisp 325 -;; remeber that actions are just regular methods and so don't +;; remember that actions are just regular methods and so don't ;; explicitly appear in this protocol. (defclass entry-point () hunk ./src/rerl/protocol.lisp 342 (:documentation "Returns the query path associated with ENTRY-POINT. The returned query-path will need to be combined with the -application's url-prefix to porduce a complete query-path.")) +application's url-prefix to produce a complete query-path.")) (defgeneric entry-point.action (entry-point) (:documentation "Returns the function which should handle hunk ./src/rerl/protocol.lisp 360 - window components which serve to provide a consistent wrapper around a large collection of different content -- standard components (refered to simlply as components) +- standard components (referred to simply as components) represent smaller, well contained and specific pieces of hunk ./src/rerl/protocol.lisp 362 - functionaltiy and can't, generally, be used in isolation. + functionality and can't, generally, be used in isolation. Control passes to/from standard components via the call/answer macros and the underlying call-component and answer-component hunk ./src/rerl/standard-action.lisp 49 If the request contains a param (no distinction between GET and POST params is made) named STRING (which defaults to the symbol -name of SYMBOL) and bind the variable SYMBOL to the associated +name of SYMBOL) the variable SYMBOL is bound to the associated value. If no parameter with that name was passed SYMBOL will be bound to DEFAULT-VALUE and the variable named SUPPLIED-SYMBOL-NAME will be bound to NIL. hunk ./src/rerl/standard-action.lisp 54 -Parameter names are matched case insensitvly. +Parameter names are matched case insensitively. " (gen-request-param-binder request-lambda-list request body)) hunk ./src/rerl/standard-action.lisp 152 (&key application (class ''standard-entry-point)) request-lambda-list &body body) - "Define an entry point bound te the url URL. + "Define an entry point bound to the url URL. URL should be a string which, when appended to APPLICATION's url-prefix, specifies the complete url for this entry point. hunk ./src/rerl/standard-application.lisp 23 "Define a new application. NAME must be a symbol and is defined as a global special bound to -the cretaed application. +the created application. OPTIONS is a list of (name &rest args), the following options are recognized: hunk ./src/rerl/standard-application.lisp 130 entry-point)) (defmethod find-entry-point ((app standard-application) (context request-context)) - "Retruns the entry-point object associated with CONTEXT, + "Returns the entry-point object associated with CONTEXT, returns NIL if no entry point object could be found." (ucw.rerl.application.dribble "Searching for entry point for url ~S in ~S." (query-path (context.request context)) app) hunk ./src/rerl/standard-component/control-flow.lisp 13 (defmethod/cc call-component ((from standard-component) (to standard-component)) "Transfer control from FROM to the component TO. -This method grabs the current continuation (as so doesn't return +This method grabs the current continuation (and so doesn't return normally) passes it to TO and puts TO in FROM's place (by modifying FROM's component.place). hunk ./src/rerl/standard-component/control-flow.lisp 41 (if (eql trans :open) ;; ok, the transaction is open, perform a "normal" answer (answer) - ;; bad, the transaction has been closed, IT should be bound te + ;; bad, the transaction has been closed, IT should be bound to ;; the continuation which will just simulate the last step of ;; the transaction. (funcall trans t)) hunk ./src/rerl/standard-component/standard-component-class.lisp 173 this slot is actually a nested component of type TYPE. When instances of the class are created this slot will be set to an instance of type TYPE and it's place will be set to this - slot. If a list is passed to :component thne the first + slot. If a list is passed to :component then the first element (which isn't evaluated) will be passed as the first argument to make-instance. The INITARGS will be eval'd and apply'd to make-instance. The result of this call to hunk ./src/rerl/standard-component/standard-component.lisp 45 "Setup any nested components (create them and their places) in COMP. For every component slot in COMP: if the slot is unbound or NIL -then set it create a component of the specified type and set it's +then set it create a component of the specified type and set its type. thet check whether the slot is bound and not null and if so set its place slot. the second check is done seperatly from the hunk ./src/rerl/standard-component/standard-component.lisp 48 -first so that component passed via initargs will have their place +first so that components passed via initargs will have their place set." (iterate (for (slot-name . type) in (component-class.component-slots (class-of comp))) hunk ./src/rerl/standard-component/standard-component.lisp 158 (defmacro defcomponent (name supers slots &rest options) - "Convience macro for defining a component class. + "Convenience macro for defining a component class. This macro expands into a defclass form, NAME, SUPERS and SLOTS are passed directly to the defclass form. If a :metaclass option hunk ./src/rerl/standard-component/standard-component.lisp 168 (:ENTRY-POINT url &key application body) - Define an entry-point on the url URL which simply calls an instance of this - component. Any request parameters passed to the entry-ponit are + component. Any request parameters passed to the entry-point are used to initialize the slots in the component. This option may appear multiple times." (let ((effective-options '()) hunk ./src/rerl/standard-component/transactions.lisp 14 (let/cc k (with-slots (transaction-stack) comp - ;; in order to understand this form you need to remeber that + ;; in order to understand this form you need to remember that ;; (component.transaction-stack ex) is backtracked, but it's car ;; cell isn't. so if we ever "go back" we'll end up with the old ;; component.transaction-stack, but it's car will be k, not hunk ./src/rerl/standard-request-context.lisp 15 (defmethod call-callbacks ((context standard-request-context)) "Execute all the callback lambda in CONTEXT's request. -Simply goes through the request's params and, for every parama +Simply goes through the request's params and, for every param which isn't +action-parameter-name+, +frame-parameter-name+ or +session-parameter-name+, looks up and call the associated lambda in the current frame." hunk ./src/rerl/standard-server.lisp 10 (format stream "~S ~S" (type-of (server.backend server)) (length (server.applications server))))) (defmethod startup-server ((server standard-server)) - (ucw.rerl.server.info "Staring up standard server ~S." server) + (ucw.rerl.server.info "Starting up standard server ~S." server) (setf *random-state* (make-random-state t)) (initialize-backend (server.backend server) :server server) (startup-backend (server.backend server)) hunk ./src/rerl/standard-session-frame.lisp 19 (defmethod make-new-callback ((f standard-session-frame) lambda) "Returns the name a query param which, when passed in a action - generated by F will call LAMBAD passing it the value of the + generated by F will call LAMBDA passing it the value of the param." (insert-with-new-key (frame.callbacks f) +action-id-length+ hunk ./src/rerl/standard-session.lisp 32 (gethash frame-id (session.frames s))) (defmethod make-new-frame ((session standard-session)) - "Inserts a new frame in the sesson stack of SESSION. Returns + "Inserts a new frame in the session stack of SESSION. Returns the new frame. This new frame will have the same component and backtracks as the current frame in SESSION. Sets SESSION's current-frame to the newly created frame." } [add task component with start method that is automatically called Benedikt Schmidt **20050207185755] < > { hunk ./examples/examples.lisp 46 (find-component container 'form-example) (make-instance 'example-form) (find-component container 'welcome) (make-instance 'example-welcome) (find-component container 'sum) (make-instance 'sum) - (container.current-component-name container) 'welcome) - ;; start the add-two-numbers component - (sum (find-component container 'sum)))) + (container.current-component-name container) 'welcome))) (defmethod render-on ((res response) (app example)) (<:div :id "option-menu" hunk ./examples/sum.lisp 21 (when (parse-integer (x reader) :junk-allowed t) (answer (parse-integer (x reader) :junk-allowed t)))) -(defcomponent sum (widget-component) +(defcomponent sum (task-component) ()) hunk ./examples/sum.lisp 24 -(defaction sum ((s sum)) +(defaction start ((s sum)) (loop for how-many = (call 'read-a-number :label "How many numbers should we read?") do (loop addfile ./src/components/task.lisp hunk ./src/components/task.lisp 1 +;;;; -*- lisp -*- + +(in-package :it.bese.ucw) + +(defclass task-component (standard-component) + () + (:metaclass standard-component-class) + (:documentation "Call an action without user interaction. + +This component, corresponds to a component with a single \"start\" +action that gets clicked automatically without any user interaction. +By using a task component, you can specify control flow using standard +components without needing a component with a link that starts up the +interaction.")) + +(defgeneric start (task) + (:documentation "action which gets called automatically when task-component +is active. Use defaction to define your own \"start\" action")) + +(defmethod render-on ((res response) (task task-component)) + (start task) + (let ((active-component (place (component.place task)))) + (when (eq task active-component) + (error "No active component after calling task's start method")) + (render-on res active-component))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Copyright (c) 2003-2005 Edward Marco Baringer +;;; All rights reserved. +;;; +;;; Redistribution and use in source and binary forms, with or without +;;; modification, are permitted provided that the following conditions are +;;; met: +;;; +;;; - Redistributions of source code must retain the above copyright +;;; notice, this list of conditions and the following disclaimer. +;;; +;;; - Redistributions in binary form must reproduce the above copyright +;;; notice, this list of conditions and the following disclaimer in the +;;; documentation and/or other materials provided with the distribution. +;;; +;;; - Neither the name of Edward Marco Baringer, nor BESE, nor the names +;;; of its contributors may be used to endorse or promote products +;;; derived from this software without specific prior written permission. +;;; +;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +;;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +;;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +;;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. hunk ./src/packages.lisp 149 ;; the tabbed-pane component #:tabbed-pane + ;; the task component + #:task-component + #:start + ;; transactions #:open-transaction #:close-transaction hunk ./ucw.asd 94 (:file "form" :depends-on ("widget")) (:file "login") (:file "message") + (:file "task") (:file "option-dialog" :depends-on ("template")) (:file "range-view" :depends-on ("template")) (:file "tabbed-pane" :depends-on ("container" "template")) } Context: [Call collect-backtrace in the right place so OpenMCL doesn't bomb. Marco Baringer **20050207154041] [Initilazie error-component's backtrace slot form the condition slot Marco Baringer **20050207105532] [Add initform for error-messages'smessage slot Marco Baringer **20050207103741] [Use error-component objects even for internal UCW errors (when possible). Marco Baringer **20050207101233] [minor indentation/tabstop fixups Marco Baringer **20050207095350] [Avoid breaking package locks in sum example Marco Baringer **20050207094714] [simplyify the javascript code in the error component Marco Baringer **20050207091120] [added empty implementation of publish-directory for mod_lisp Marco Baringer **20050206171826] [Show complete frame descripiton alnog with the backtrace frame's other details. Marco Baringer **20050206160939] [Use javascript to provide a more sldb like backtrace through the error-component. Marco Baringer **20050206153339] [Added inline-javascript slot to simple-window-component. Marco Baringer **20050206152853] [Fix typo in **20050206140401] [The new www-roots slot needs an initform. Marco Baringer **20050206140115] [Refactoring in **20050206095512] [Merge with Alan Alan Shutko's branch. Marco Baringer **20050206095047] [Merge Alan Shutko 's **20050206093954] [added in dac files which tla2darcs missed Marco Baringer **20050206094019] [Don't consider +uninitialized+ number-field form elements to be valid. Marco Baringer **20050206093300] [Fix bugs in number-field form component. (Patch by: Eugene Tyurin ) Marco Baringer **20050206092838] [Implement :isolate'd aciton (Patch by: Drew Crampsie ) Marco Baringer **20050205193851] [Merged in Alan Shutko's :www-root patch. Marco Baringer **20050204232825] [Merge in Alan Shutko's #. package fix. Marco Baringer **20050204151219] [Deal with ucw:select and regular select tags differently. Marco Baringer **20050203191456] [Undo botched patch-208 Marco Baringer **20050203191109] [src/yaclml/tal.lisp Marco Baringer **20050203190603] [Move component inspector likns as far right as possible Marco Baringer **20050203190211] [Intelligently chose the type of araneida listener to use. (Reported by: Cl?udio Gil ) Marco Baringer **20050203162525] [Use the temporary iterate branch Marco Baringer **20050203140356] [Don't expire sessions on every request. (Reported by: Antonio Menezes Leitao ) Marco Baringer **20050203104401] [Added sum numbers example Marco Baringer **20050129164617] [reorder the actions in the login component so the cps transformers deals with them Marco Baringer **20050126211329] [patch-200 Marco Baringer **20050126114453 ] [update copyright notices Marco Baringer **20050125145051] [Added REDIRECT component Marco Baringer **20050125143806] [The aserve backend's query-path method must be defined specially for Allegro. Marco Baringer **20050125135940] [type in mod-lisp's add-header Marco Baringer **20050124225100] [Restructure standard-component-class.lisp so that it works as expected on allegro. Marco Baringer **20050124172144] [Fix typo in render-range-view-item method Marco Baringer **20050124165537] [Allow the same header to appear multiple times in the mod_lisp backend. Marco Baringer **20050124165145] [Make compute-url more robust n the face of internal ucw errors. Marco Baringer **20050120112214] [fix handling of **20050120094122] [implement a simple publish-directory function for araneida Marco Baringer **20050119113841] [Added support for araneida (http://www.cliki.net/araneida) Marco Baringer **20050118180636] [Changed order of arguments in generic (setf get-header) to match use. Marco Baringer **20050118152014] [Allow servers and application to bind specific urls in the backend. Marco Baringer **20050118140323] [bind *print-pretty* to NIL when printing template environments Marco Baringer **20050118121051] [the :standard-component module depends on "standard-vars" (caught by CLISP) Marco Baringer **20050118120457] [Initial CLISP support. Marco Baringer **20050117072100] [fix admin-apps' render-on method. Marco Baringer **20050115153526] [Applied Chris Capel's example app patch. Marco Baringer **20041228110951] [export compute-url and update-url Marco Baringer **20041222121739] [Implement hierarchical action url computing. Marco Baringer **20041222112030] [Added simple component dependency. Marco Baringer **20041221150355] [minor edits to component class' docstring Marco Baringer **20041221140513] [Removed the *action-url-generator* special. (Suggested by: Chris Capel ) Marco Baringer **20041221115552] [Improvements to component documentation. Marco Baringer **20041221105533] [Created the defcomponent convienence macro. Marco Baringer **20041221103119] [More improvements to interactive action error handling. Marco Baringer **20041216000653] [Make the tabbed-pane component use class (and not style) Marco Baringer **20041216000008] [Removed src/components/date-picker.lisp from ucw.asd Marco Baringer **20041214183252] [patch-170 Marco Baringer **20041214182433 ] [Use text and password inputs in the defalut login component render-on method Marco Baringer **20041214182237] [:component slot options are now eval'd Marco Baringer **20041214181802] [Update examples for new CALL macro. Marco Baringer **20041214181449] [commenst in init.lisp Marco Baringer **20041209183259] [Update the docstrings on the login component. Marco Baringer **20041209155334] [minor doc work Marco Baringer **20041202211700] [make update.sh use iterate's new archive Marco Baringer **20041202195053] [Added the current-window-items method Marco Baringer **20041201214626] [Remove old (no longer present) symbols for the ucw package Marco Baringer **20041201214018] [doc work. Marco Baringer **20041201193458] [minor whitespace fixups (previous patch was botched) Marco Baringer **20041129114919] [Added libs/config file. Marco Baringer **20041126184832] [remove obsolete method definiton. (Reported by: Chris Capel ) Marco Baringer **20041126161234] [Minor fixes to previous patch. Marco Baringer **20041124212615] [Fix off-by-one errors in ucw and imprevo the api. Marco Baringer **20041124200655] [More convience functions in the range-view function. Marco Baringer **20041122220245] [ucwctl should ensure VARROOT and LOGROOT exist (via mkdir -p) Marco Baringer **20041122220033] [Kill the detachtty process from 'ucwctl stop' Marco Baringer **20041121121904] [New ucw startup/shutdown scripts. Marco Baringer **20041121115728] [Refactorings and api updates in mod-lisp-backend.lisp Marco Baringer **20041121114539] [Deal with window-component answering when the calling-component exists. Marco Baringer **20041118090115] [Better error handling Marco Baringer **20041117172915] [Moved window, template and widget components into seperate files under src/components/ Marco Baringer **20041117155104] [Restyling inspector links Marco Baringer **20041116190527] [Refactoring in tabbed-pane component Marco Baringer **20041116190402] [Minor refactoring in admin app. Marco Baringer **20041116190237] [Fixes to the container component. Marco Baringer **20041116184357] [Fix backtracking bug in container component. (Reported by: Chris Capel) Marco Baringer **20041115123611] [Added TODO item Marco Baringer **20041115111046] [Change in (answer-component window-component t) Marco Baringer **20041113151947] [Changed parameters for OK action. Marco Baringer **20041113150136] [Don't use the no-longer-existent macro progr Marco Baringer **20041113141032] [Use hash-tables for storing session frames. Marco Baringer **20041113140604] [minor doc string fix Marco Baringer **20041113135922] [patch-129 Marco Baringer **20041113112814 ] [Minor updates to the system definition. Marco Baringer **20041113104746] [Changes to the window-component class hierarchy. Marco Baringer **20041111191214] [Moved the backtracking and place code into a single file. Marco Baringer **20041111153507] [Update the COPYING file Marco Baringer **20041111124526] [Finally fix CALL/ANSWER machinery in the face of entry-point calls and window-components. Marco Baringer **20041111001803] [undo previous patch Marco Baringer **20041110212329] [reinsert missing with-call/cc Marco Baringer **20041110212133] [More improvements to error handling Marco Baringer **20041110201156] [Implement answer-component for window components Marco Baringer **20041110174730] [Allow use of CALL in entry points (refactoring of CALL/ANSWER logic) Marco Baringer **20041110174155] [move the \\newcommands into ucw.tex so latex2html sees them Marco Baringer **20041110154846] [minor changes to latex2html parameters Marco Baringer **20041110133848] [RERL error handling improvements Marco Baringer **20041110124608] [avoid address footer in html docs Marco Baringer **20041110112047] [Remove limit on number of words in nav links in html docs Marco Baringer **20041110105551] [add stylesheet for html docs Marco Baringer **20041110104453] [Add support for latex2html to docs Marco Baringer **20041110103537] [Added update script Marco Baringer **20041109222749] [Move handler-bind and *debugger-hook* logic Marco Baringer **20041109113702] [Add the simple-container class Marco Baringer **20041109113215] [Added note about containre component in TODO Marco Baringer **20041108153125] [Fix wrong environment variable name in admin repl tal template Marco Baringer **20041108152813] [Remove the goto and replace macros (and underlying methods). Marco Baringer **20041108152309] [Added the context.window-component generic function Marco Baringer **20041108152011] [Use string= to compare label tags Marco Baringer **20041108151716] [Varisou fixes/changes to the container API Marco Baringer **20041108151422] [Refactor the login API adding the login-successful action Marco Baringer **20041108151027] [Rename the frame's root component to window component Marco Baringer **20041108140924] [Fix calls to **20041108140553] [created the simple-temalpte-component class and added the SHOW macro Marco Baringer **20041108134753] [minor indentation fixes (avoid going past column 90) Marco Baringer **20041108132705] [Add url rewriting for **20041108132055] [update TODO file Marco Baringer **20041108124255] [Documentation and doc string updates Marco Baringer **20041108113412] [use wraping-stanadard method combination for render-on Marco Baringer **20041106153929] [Implement range-viem.current-items Marco Baringer **20041104213850] [document the new component hierarchy Marco Baringer **20041104123641] [Changes (improvements) to window-component and widget-component api Marco Baringer **20041104121315] [missed file from last commit Marco Baringer **20041104120902] [Fix mod-lisp backend's reinitializing of response objects Marco Baringer **20041104120508] [Created the window-component and widget-component classes Marco Baringer **20041103184820] [Added render-on method for container component Marco Baringer **20041103183737] [Changes to container component api and implementation Marco Baringer **20041103164255] [Rename the documentation directory to the usual docs Marco Baringer **20041102185400] [Merge INSTALL and README Marco Baringer **20041102185233] [Fix dependencies in system definition Marco Baringer **20041102160840] [split standard-component into multiple files in the standard-component directory Marco Baringer **20041102155659] [Put defgeneric render-on in the protocol file Marco Baringer **20041102154609] [Remeber to backtrack the component slot in container's contents Marco Baringer **20041102153041] [Don't use a template for the login component. Marco Baringer **20041102145134] [Added response argument to render-range-view-item Marco Baringer **20041102143126] [use write-to-string :circle t :pretty nil in inspect-anchor Marco Baringer **20041029101053] [add inspector links in backtrace Marco Baringer **20041029100758] [Fix action name in anchor tag Marco Baringer **20041029083906] [fix parameter type in conetx.current-frame method Marco Baringer **20041029083052] [Update date in copyright notices Marco Baringer **20041028195638] [Minor fixes to inspector component Marco Baringer **20041028115129] [Argument order mixup in session.value Marco Baringer **20041025190547] [Fix the admin app (too many changes to list) Marco Baringer **20041024145515] [Use slime's inspector for the ucw-inspector Marco Baringer **20041024145415] [Update login.tal (login component api changed awhile ago) Marco Baringer **20041024145226] [Use customiziable divs and not h1 in the option-dialog tal Marco Baringer **20041024144859] [Based tabbed-pane component off the container component. (API breakage) Marco Baringer **20041024144557] [Minor changes to the container's API (added map-contents method) Marco Baringer **20041024144101] [Improve container API Marco Baringer **20041024133812] [backtrackt the current-component-name slot Marco Baringer **20041024113927] [Rework the examples Marco Baringer **20041024113547] [Implement initial versoin of the container component (not yet tested) Marco Baringer **20041024103408] [Remove **20041023202227] [Use the ucw.backend.mod-lisp logger (not the inexistent mod-lisp logger) Marco Baringer **20041023193844] [Set defalut logging level of mod-lisp logger to +info+ Marco Baringer **20041023193648] [Use hash-tables for standard-application's entry-point table Marco Baringer **20041023193002] [fix bug in initialization of inexistent-request-part conditions Marco Baringer **20041023181637] [Fix discrepancy in defgeneric (setf session.value) Marco Baringer **20041023164913] [Cleanup the session.value interface Marco Baringer **20041023150107] [Change the API of **20041023131102] [Register standard-component's dependency on standard-action Marco Baringer **20041023101856] [Create the OK default action. Move OK and REFRESH-COMPONENT to standard-component.lisp Marco Baringer **20041023101649] [Remove SLOTS-TO-TAL-ENVIRONMENT function Marco Baringer **20041023100927] [Added the refresh-component action Marco Baringer **20041017134659] [Fix bug in **20041017131758] [range-view needs to be a template-component Marco Baringer **20041017131413] [remove note about cookie session-id from TODO Marco Baringer **20041016154952] [Added the cookie based session-id application Marco Baringer **20041016154255] [Elminate the first-session-frame class and other refactoring. Marco Baringer **20041016153246] [fix bug in option-dialog's template-component-environment method Marco Baringer **20041016152543] [startup swank server in run-examples-mod-lisp Marco Baringer **20041016143022] [Use with-standard-io-syntax in dump-application Marco Baringer **20041016133139] [thinko in (action-request-p standard-request-context) Marco Baringer **20041016132538] [remove unused constant +ucw-session-name+ Marco Baringer **20041016132400] [Add (find-session-id context) to the rerl protocol. Marco Baringer **20041016131614] [Refactor request parameter variables (xxx-parameter-name) into standard-vars.lisp Marco Baringer **20041016125803] [typo in template-component-environemnt admin-repl Marco Baringer **20041016125439] [added a few doc strings Marco Baringer **20041016105511] [docstring in standard-request-context Marco Baringer **20041016103342] [update TODO file Marco Baringer **20041014192755] [Fix handling of ucw:on-change attribute when used via tal Marco Baringer **20041014190346] [rename variables in **20041014190056] [Use APPEND method combination in TEMPLATE-COMPONENT-ENVIRONMENT Marco Baringer **20041014151301] [Export the symbol TEMPLATE-COMPONENT-ENVIRONMENT Marco Baringer **20041014144028] [Document the return value of TEMPLATE-COMPONENT-ENVIRONMENT Marco Baringer **20041014124117] [Refactor to run on single threaded lisps Marco Baringer **20041014122742] [Work around weirdness in CMUCL and SBCL's MOP Marco Baringer **20041014122617] [Fix modlisp's STARTUP-BACKEND to run on singel thread cmucl Marco Baringer **20041014121415] [Rewrite to work correctly on single thread lisps Marco Baringer **20041014121014] [Remove occurences of DEFCOMPONENT macro Marco Baringer **20041014120817] [Export missing symbols Marco Baringer **20041013160320] [minor doc string work Marco Baringer **20041013154024] [Remove the DEFCOMPONENT macro Marco Baringer **20041013153902] [Merge with ucw--component-mop--0.3 tree Marco Baringer **20041013141939] [Fix defcomponent default entry point generator Marco Baringer **20040930170659] [Indentation fix Marco Baringer **20040930170521] [Move todo info to TODO (update TODO info along the way) Marco Baringer **20040930140858] [add standard-class to a component's super classes when none are specified Marco Baringer **20040929130552] [Added initial support for file uploading (mod_lisp only atm) Marco Baringer **20040924010928] [Update the README file Marco Baringer **20040923160748] [Minor doc string work Marco Baringer **20040923160215] [docstring updates Marco Baringer **20040919142254] [Write DEFCOMPONENT's docstring. Marco Baringer **20040919130204] [typo in docstring Marco Baringer **20040919124538] [more docstring work Marco Baringer **20040917162427] [upgrade mod_lisp.c in repo to 2.38 Marco Baringer **20040917154938] [added some more missing files Marco Baringer **20050205193502] [remove api docs Marco Baringer **20040917153627] [doc strings, lots of them. Marco Baringer **20040917153045] [Fix bug in mod_lisp url parser (Patch by: "Luigi Panzeri" ) Marco Baringer **20040828120520] [Export the symbol COMPONENT Marco Baringer **20040816122328] [Export TABBED-PANE and related symbols (Reported by Luigi Panzeri ) Marco Baringer **20040816111816] [Fix bug in assert test in ) Marco Baringer **20040816110611] [Update TODO Marco Baringer **20040816110145] [Added submit button in viewer component Marco Baringer **20040813141805] [Add some error handling in the mod-lisp backend Marco Baringer **20040813141056] [Added mod_lisp source files into UCW repository Marco Baringer **20040813003933] [More documentation work Marco Baringer **20040812181819] [More decumentation work Marco Baringer **20040812151827] [Sholud be :TAL-GENERATOR, not :YACLML-GENERATOR Marco Baringer **20040812120156] [Documentation work (flush out some stuff, fix navigation structure) Marco Baringer **20040812111205] [Added get-session-value convience accessor Marco Baringer **20040812105058] [Deal with bad node-id in lookup.ucw Marco Baringer **20040724112619] [Make generate-action-url deal with nil args Marco Baringer **20040724112502] [change the *action-url-generator* api Marco Baringer **20040724110720] [Handle default entry-points for expired sessions Marco Baringer **20040723142143] [Attribute aserve-locator.lisp to Anthony Juckel Marco Baringer **20040721072344] [Remove obsolete files from ./docs/ Marco Baringer **20040720141115] [More documentation work Marco Baringer **20040720135255] [Minor css tweaks Marco Baringer **20040720135003] [Support for lisp docs in html doc viewer Marco Baringer **20040720134714] [Added support for listing tag in html rendering of doc set Marco Baringer **20040720083143] [Documentation work (components) Marco Baringer **20040719132526] [Merged Anthony Juckel's aserve publish-pattern patch. Marco Baringer **20040718160434] [Update the ucw-inspector to the new range-view API Marco Baringer **20040717145543] [Don't dispaly the answer link if no ok-text given in info-mesage component Marco Baringer **20040717133756] [Fix "Back to entry" link in admin app Marco Baringer **20040717133210] [Change handling of component's place in GOTO-COMPONET method. Marco Baringer **20040717124514] [Fix minor bugs in admin-app Marco Baringer **20040717123003] [tabbed-pane needs to register the pane's component's places for backtracking. Marco Baringer **20040717122012] [Finally finish admin-repl accesor renaming Marco Baringer **20040717115024] [Typo in admin.lisp Marco Baringer **20040717114327] [Change the entry-points to whatever/index.ucw Marco Baringer **20040717110742] [Remove PCL bug workaround. Marco Baringer **20040717105832] [Change admin-repl accessors so as to not trample on the :commol-lisp package Marco Baringer **20040717105352] [Added eval-whens so that mod-lisp.lisp will compile properly on cmucl Marco Baringer **20040717104615] [Implement the serach feature + minor css tweaks Marco Baringer **20040717094002] [Make the range-view component's API more flexible. Marco Baringer **20040717092524] [Don't trample on the CL package (avoid definig an accesor named stream) Marco Baringer **20040717082709] [Specify the doc-set's root diretory relative to the viewer.lisp file Marco Baringer **20040716171511] [Typo in sbcl feautre check Marco Baringer **20040716171219] [Undo last patch and try another work around for the define-condition issue Marco Baringer **20040716155329] [Supply a default value for *context*. hopefully tihs should work around the cumcl/sbcl pcl bug. Marco Baringer **20040716154435] [Minor documentation work Marco Baringer **20040716153447] [Change the links in the node-viewer Marco Baringer **20040716153151] [Code formatting in documentation viewer Marco Baringer **20040716152841] [Import new documentation set. Marco Baringer **20040716122528] [Refactor the action-href function, we hope to make it more "dwim" soon. Marco Baringer **20040715091908] [Call invoke-debugger if swank:swank-debugger-hook returns and *debug-on-error* is t Marco Baringer **20040709102822] [GOTO-COMPONENT should set the place of the TO component Marco Baringer **20040708163917] [Fix the name of the initarg for the inexistent-callback-id condition Marco Baringer **20040705182149] [Change the request-error handling api. Marco Baringer **20040705175101] [*context* should be unbound in the global environment Marco Baringer **20040705112414] [added the :on-change attribute to the **20040705111803] [TODO update Marco Baringer **20040705111238] [Implement and use the :PLACE-SLOT defcomponent option Marco Baringer **20040629151258] [Satrting a server starts up its backend as well. Marco Baringer **20040628184151] [Implement and use LOAD-APPLICATION and STARTUP-*DEFAULT-SERVER* Marco Baringer **20040628182720] [Update TODO list Marco Baringer **20040628160414] [Added value to :inintform slot Marco Baringer **20040628121332] [Move the "internal server error" restart so that it is available during the entire rerl loop. Marco Baringer **20040624155253] [Augment the server/application protocl with startup, shutdown and restart methods Marco Baringer **20040622104042] [Use swank-backend:close-socket to close the apach stream Marco Baringer **20040622102002] [fix transaction example Marco Baringer **20040622101743] [register-action and register-callback functions Marco Baringer **20040620170107] [Update the admin example to use some new ucw form featuers Marco Baringer **20040615211119] [Fix the transaction example (bug introduced by patch-104) Marco Baringer **20040615165103] [Refactoring: rename current-component to context.current-component and frame's component slot to root-component Marco Baringer **20040615163423] [Call swank:swank-debugger-hook when *debug-on-error* is t Marco Baringer **20040615155949] [Pass packages, not package names, across select/option tags in admin app Marco Baringer **20040614195256] [Change the example app to use a :component slot Marco Baringer **20040614141924] [Added support for :component option in defcomponent slots Marco Baringer **20040614101910] [Added super class for the generic-date-picker component Marco Baringer **20040614101705] [Reintroduce the render-component tag. Marco Baringer **20040614101125] [Fixs to DATE-PICKER component Marco Baringer **20040614095920] [Fix handling of non constant min and max values in **20040614095533] [Added the date-picker.partial-date-p and date-picker.complete-date-p methods Marco Baringer **20040614081356] [Update the TODO file Marco Baringer **20040613230644] [Minor date picker formatting changes Marco Baringer **20040613230403] [Added ignore declaration Marco Baringer **20040613084229] [Initial version of generic date picker component Marco Baringer **20040612153339] [Set the default value of *debug-on-error* to T Marco Baringer **20040612152932] [Allow real lisp values in option tags, allow a body in **20040607181339] [Modifications to RANGE-VIEW componenent's API Marco Baringer **20040607180751] [Convience **20040607161206] [Export the rangeview component Marco Baringer **20040607160843] [Make DEFACTION expand to DEFMETHOD/CC so that actions can call each other. Marco Baringer **20040530142619] [fix TAL handling Marco Baringer **20040519191121] [Use the **20040519152824] [Minor typo fixes to previous patch Marco Baringer **20040519142644] [Implement TAL attributes and TAGS as YACLML macros. Marco Baringer **20040519141936] [Added docstring Marco Baringer **20040518180743] [Implement and use the DEFAPPLICATION marco. Fix bug in error handling. Marco Baringer **20040517183139] [Define the symbols exported by the ucw package, create a ucw-user package ala common-lisp-user Marco Baringer **20040517142216] [Implement working, nestable, component transactions. Marco Baringer **20040515182018] [Typo in error message Marco Baringer **20040514134210] [Fix declare: ignorable, not ignoreable Marco Baringer **20040514123801] [Need to use answer-component and not answer from within render-on method Marco Baringer **20040514122948] [Remove transaction stuff Marco Baringer **20040505105326] [Fix 'render-on :around's return value Marco Baringer **20040504180515] [Added the "shutdown-ucw" admin action. Marco Baringer **20040504180227] [Added note about defaction in TODO. Marco Baringer **20040503195032] [Merge in component-trees branch Marco Baringer **20040503193043] [Rename the backtrack-place class to just place. Marco Baringer **20040429130852] [Fix generation of environment for counter component Marco Baringer **20040429130531] [Use the conter object as the environment Marco Baringer **20040429090852] [Typo fix Marco Baringer **20040426151019] [Documentation tweaks Marco Baringer **20040422140417] [Added notes about getting arnesi, yaclml and cl-icu in INSTALL Marco Baringer **20040422134941] [Added option to start slime from run-examples-X scripts Marco Baringer **20040420130601] [Flesh out INSTALL notes Marco Baringer **20040420130308] [Minor fixes to error handling code Marco Baringer **20040419153555] [Remove note about anaphora Marco Baringer **20040419125942] [Added the ucw components tal path to the admin app Marco Baringer **20040419125607] [Remove reference to acl-compat Marco Baringer **20040419125113] [Remove dependency on anaphora Marco Baringer **20040419122744] [Changed over to anaphora package Marco Baringer **20040419114156] [Added INSTALL file Marco Baringer **20040419105945] [removed systems directory (not going to use symlinks if we use darcs) Marco Baringer **20050205175005] [added standard tal files Marco Baringer **20050205174921] [Update TODO (server and backend are no longer the same thing) Marco Baringer **20040419094130] [Don't specify version numbers in dev config Marco Baringer **20040419093421] [Added cl-icu to dev config Marco Baringer **20040419093112] [Remove calls to acl-compat from mod-lisp backend Marco Baringer **20040419092916] [Added dev config Marco Baringer **20040419091300] [Change the irc channel where the ucw developers hang out Marco Baringer **20040419062841] [Don't use MP on single thread sbcl + mod_lisp Marco Baringer **20040416100551] [Remove DECLAIM from ucw.asd Marco Baringer **20040416100308] [Change the handling of inexistent-application-name and inexistent-entry-point Marco Baringer **20040415165455] [Typo (Patch by Jan Rychter) Marco Baringer **20040415114737] [More idiomatic iterate form (Patch by Andreas Fuchs) Marco Baringer **20040415105639] [Remove the mod_jk backend Marco Baringer **20040415101121] [Added example httpd13.conf for mod-lisp Marco Baringer **20040415100442] [Update admin app for new defcomponent api Marco Baringer **20040415092630] [Changed how components generate the enviroment with the :template option Marco Baringer **20040414174200] [Various fixes to enviroment handling Marco Baringer **20040414130721] [Added logging statements and refactor the logger hierarchy Marco Baringer **20040414104639] [Define a print-object method on only requests, not reuests and responses Marco Baringer **20040414101136] [Remove spurious warnings and fix declare handling in defaction and defentry-point Marco Baringer **20040414094238] [Add note about server/backend merge to TODO Marco Baringer **20040403143859] [Minor fix to unwind-protect and system name change Marco Baringer **20040402175829] [Fix forward-request-packet handling Marco Baringer **20040401141006] [Update the system def Marco Baringer **20040401121008] [Make the jk backend compile Marco Baringer **20040401101812] [added the tal-root directory (addly tla2darcos did not add it) Marco Baringer **20050205150701] [Merge packets, classes and worker.lisp Marco Baringer **20040401094933] [More moving of files for the jk backend Marco Baringer **20040401094134] [Added the classes and packets files for the jk backend Marco Baringer **20040401093324] [Move jk code into a sub directory of src/backend/ Marco Baringer **20040401092101] [More work on the (not yet functional) jk backend Marco Baringer **20040331093028] [Split the jk code into two files. add the ucw.mod-jk2 system Marco Baringer **20040331072448] [Fix error reporting in dump-applications Marco Baringer **20040330223801] [Add missing dependency Marco Baringer **20040330184900] [The standard-rerl no longer puts session info in cookies. Marco Baringer **20040330180511] [Use the ITERATE package Marco Baringer **20040330180115] [Default *debug-on-error to T Marco Baringer **20040330175159] [Initial implementation of jk workers Marco Baringer **20040330163842] [Minor refactoring of the jk backend Marco Baringer **20040330153143] [First, incomplete, version of mod-jk backend Marco Baringer **20040330140049] [Added inital version of server dumping/loading Marco Baringer **20040328195236] [Added the DUMP-APPLICATION function Marco Baringer **20040328165134] [Swank package name change Marco Baringer **20040323181805] [Typo in yaclml page Marco Baringer **20040310094003] [Really fix the cookie parser, don't just pretend too... Marco Baringer **20040309114252] [Fix bug in cookie parsing. Marco Baringer **20040309113151] [Moved all classes into the standard-classes.lisp file. Marco Baringer **20040306082128] [Fix inspectable backtrace page. Marco Baringer **20040305145429] [Allow components to return multilpe binding-sets for their template enviroments Marco Baringer **20040304113944] [Use standard-object binding-sets in tal environments where appropiate Marco Baringer **20040303133650] [Create default TAL template enviroment according to yaclml's new tal-envoriment protocol Marco Baringer **20040303133019] [Update the TODO list Marco Baringer **20040303130314] [Bug fix in get-session-value Marco Baringer **20040301115437] [Fix missing paren Marco Baringer **20040301115258] [Typo in README Marco Baringer **20040301115128] [Addded homepage to the contact info Marco Baringer **20040301113942] [Add the contact info Marco Baringer **20040301113733] [README and examples fixes (do not load the i18n stuff by default) Marco Baringer **20040301111916] [More docu work Marco Baringer **20040301105440] [More docu work Marco Baringer **20040301104503] [More docu work Marco Baringer **20040301094637] [More docu work Marco Baringer **20040301093833] [Created TODO.components Marco Baringer **20040301091214] [Expand the overview to provide an understandable description of all the core concepts Marco Baringer **20040301090754] [Added the session.object-pool slot, accessors and convience accessors Marco Baringer **20040301090414] [Added the session-type slot on standard-applications Marco Baringer **20040301083522] [Start updating the docs to version 0.2 Marco Baringer **20040229193131] [More doc strings Marco Baringer **20040229113637] [Create, and use, the ucw.rerl.render-on logger Marco Baringer **20040229112847] [Added convience scripts Marco Baringer **20040229112517] [Minor change in the comments in src/backend/accept.lisp Marco Baringer **20040229104049] [Remove the entry-point-request-context and action-request-context classe from the protocol definition Marco Baringer **20040229103710] [Add doc strings for the rerl functions, methods and classes. Marco Baringer **20040229103535] [Fix the modlisp example Marco Baringer **20040228135226] [Implement the tabbed-pane component, make the admin app use it. Marco Baringer **20040227170351] [Fix in-package value in login.tal Marco Baringer **20040227162250] [Bug fix in render-component tag Marco Baringer **20040227162138] [Various i18n (cl-icu integration) fixes Marco Baringer **20040227152112] [Refactor the systems so that some i18n support is available without cl-icu Marco Baringer **20040227130812] [Pass a keyword, not a lowercase string, to tal:in-package Marco Baringer **20040227124352] [Pass a string, not a uri, to *uri-to-packages* in i18n templates Marco Baringer **20040227124220] [Adapt to the new (stricter) xmlns use in yaclml Marco Baringer **20040226192442] [Change the accessor names for the error-companent to not interfere with cmucl's package lock on :common-lisp Marco Baringer **20040226184718] [TODO file Marco Baringer **20040226184501] [Move the admin directory back into the src dir Marco Baringer **20040225160319] [TAL functions now require the generator as the second argument Marco Baringer **20040225154123] [MOP package has been renamed Marco Baringer **20040225154012] [Minor graphical changes Marco Baringer **20040225153807] [Makefile should not delete bese.sty anymore Marco Baringer **20040225153320] [Fix outputting of date-formatter attribute Marco Baringer **20040223115828] [Add some "what action/entry point are we responding to" logging Marco Baringer **20040223114010] [Fix dependecy info Marco Baringer **20040223113127] [Update the mod_lisp backend implementation Marco Baringer **20040223104403] [Initialize the backend _before_ starting it Marco Baringer **20040223103906] [Improve *package* handling in the admin repl Marco Baringer **20040222141059] [Changed admin-repl.tal due to how TAL now deals witth attributes. Marco Baringer **20040222140749] [Added print-object method for standard-sessions Marco Baringer **20040222140523] [Update the option-dialog component to the new xml tal and tal enviroment format Marco Baringer **20040222120255] [Reinitialize *random-state* when we startup the server Marco Baringer **20040222120056] [Fix minor thinkos is previous patch Marco Baringer **20040221164659] [Avoid rendering the component when an error has occured during action processing. Marco Baringer **20040221155730] [Add COPYRIGHT info where needed Marco Baringer **20040221155130] [Don't use with-yaclml-stream when we don't need to Marco Baringer **20040221154708] [Bind *yaclml-stearm* when rendering components Marco Baringer **20040221154441] [Implement a delete-session method for standard-applications Marco Baringer **20040221154340] [Created the **20040221154238] [Added **20040221154138] [Add the "inspect template" form Marco Baringer **20040221153103] [Backtrack the range-view component's state slots Marco Baringer **20040221141529] [Minor fixes Marco Baringer **20040220200002] [Minor corrections to previous patch Marco Baringer **20040220190928] [Refactor accessor attribute code (again) and use it in i18n accessors Marco Baringer **20040220173134] [Indentation and clearer restart message Marco Baringer **20040220171725] [Add missing dependency in i18n system def Marco Baringer **20040220171536] [Refactor the generic accessor attribute handler Marco Baringer **20040220171432] [Support i18n:style attribute on i18n date-accessor Marco Baringer **20040219164137] [Remove action transactions from the TODO list Marco Baringer **20040219162040] [Merged with ucw--i18n--0.1 branch Marco Baringer **20040219154145] [Added the funciton to parse accept-language headers Marco Baringer **20040216123139] [Added the ucw.i18n system def Marco Baringer **20040216122937] [Refactoring the session-frame + session interaction. Marco Baringer **20040216105115] [Various fixes to get the transaction example working Marco Baringer **20040215232312] [Various fixes to get the counter example working Marco Baringer **20040215231952] [More api corrections. Marco Baringer **20040215230558] [Update all the method names (finish the refactoring). Implement the convience fucntions. Marco Baringer **20040215182901] [Update the run-examples file Marco Baringer **20040215134854] [Move the admin directory up to the toplevel Marco Baringer **20040215133829] [More package/function/class api has changed changes Marco Baringer **20040215133536] [Define the COMPONENT class and accessors as part of the protocol, generic component is now STANDARD-COMPONENT. Marco Baringer **20040215131742] [Rename the context accessors and make them part of the protocol Marco Baringer **20040215130715] [More refactoring Marco Baringer **20040215125242] [Flesh out the standard-session implementation Marco Baringer **20040214123705] [Flesh out the implementation of standard-application. Marco Baringer **20040214121008] [Add a minor note about what we'd like from a locking mechanism Marco Baringer **20040214115443] [Flesh out the standard-server implementation Marco Baringer **20040214115259] [The great refactoring, part III (see body) [DOES NOT COMPILE] Marco Baringer **20040214113724] [Added the rerl protocol definition file Marco Baringer **20040213195743] [Rename SERVER to BACKEND Marco Baringer **20040213195039] [MOP-COMPAT package is now just MOP Marco Baringer **20040213174520] [Added default value for FRAME argument, not strictly required, but usefull Marco Baringer **20040213160046] [Added note about validating forms it TODO Marco Baringer **20040213155825] [Remove dependency on bese.sty in docs/makefile Marco Baringer **20040213140100] [Added the latex .sty file Marco Baringer **20040212121235] [Very minor fixes (error handling method some white space only reformatting) Marco Baringer **20040211190835] [Minor fixes the admin interface's tal files Marco Baringer **20040211151433] [Added generic "don't know what it is" render-datum method Marco Baringer **20040210170752] [Add src/yaclml/tal.lisp to the system def Marco Baringer **20040210170453] [Use the PURI package, and not the NET.URI package Marco Baringer **20040210170302] [Moved the action into the form tag Marco Baringer **20040210170218] [More error handling work (minor imporvements and bug fixes) Marco Baringer **20040210111248] [Moved *context* into contstants.lisp and renamed constants.lisp to globals.lisp Marco Baringer **20040210102601] [Various minor fixes/improvements (see body) Marco Baringer **20040209225951] [Finish implementing session transactions Marco Baringer **20040207185402] [Bug fix in action-anchor Marco Baringer **20040207185207] [HTML templating system work Marco Baringer **20040207175358] [Various improvements to the error handling code. Marco Baringer **20040207163833] [Fix the examples and put the error signalling example back in Marco Baringer **20040207163727] [patch-89 Marco Baringer **20040206173922 ] [Minor changes to the aserve code Marco Baringer **20040206172947] [Remove the request-context parameter Marco Baringer **20040206172848] [Handle trying to get a NIL session-id from an application Marco Baringer **20040206172717] [Define print-object only of mod-lisp-objects, not all request objects Marco Baringer **20040206172516] [Final fixes, we are now where we were before the rewrite Marco Baringer **20040206143037] [Update session last-access time Marco Baringer **20040206142254] [patch-82 Marco Baringer **20040206124500 ] [patch-81 Marco Baringer **20040206121147 ] [Update the examples Marco Baringer **20040206112819] [Minor fixes, more refactoring of the yaclml + action-url code Marco Baringer **20040206105636] [Use make-new-callback (instead of register-param-action) and *context* (instead of (current-session)) Marco Baringer **20040206100312] [Use make-new-action (instead of register-action) and *context* (instead of (current-session)) Marco Baringer **20040206100105] [it's called rem-session, not reW-session Marco Baringer **20040206095524] [Various changes adapting the *context* passing scheme Marco Baringer **20040206074803] [patch-74 Marco Baringer **20040205163413 ] [More minor "call the right function with the right args daminit!" fixes Marco Baringer **20040205162721] [Update for new application interface Marco Baringer **20040205161253] [Fixup system dependencies Marco Baringer **20040205160932] [More *context* work. Refactor some of the code and intrdouce convience methods Marco Baringer **20040205160307] [Finally decide how we pass the context around (use a special variable) Marco Baringer **20040205153017] [Fix dependency info in system def Marco Baringer **20040205152703] [Added request-loop-error file Marco Baringer **20040205151524] [Minor fixes Marco Baringer **20040205151323] [add context parameter Marco Baringer **20040205150923] [Remove the unused accessors in the conditions Marco Baringer **20040205144519] [Make sure to pass the *context* argument to the right places Marco Baringer **20040205144219] [in-application should not expand into an eval-when Marco Baringer **20040205143759] [small (but fatal) bug fix (error, not cerrro) Marco Baringer **20040204170009] [Fix asdf system def Marco Baringer **20040204165900] [More typos and thinko fixes Marco Baringer **20040204165228] [More file restructuring (currently in an un-compilable state) Marco Baringer **20040204163810] [Merge session-frame and backtrack Marco Baringer **20040204163701] [Fix small typos/thinkos plus random things where the underlygin api/structure has changed Marco Baringer **20040204163454] [Reimplement the with-lock macro Marco Baringer **20040204163222] [defnamed-action -> defentry-point Marco Baringer **20040204163115] [The ucw.server logger shoudl be child of the ucw logger. Marco Baringer **20040204162127] [fix small bug in call-callback Marco Baringer **20040204160905] [Update the admin app for the new api. add copyright info Marco Baringer **20040204160124] [Remvoe the global definition for CALL and ANSWER, since WITH-UCW-CALL defines them. Marco Baringer **20040204155017] [Reimplement the make-request-context function Marco Baringer **20040204152346] [Merge rerl and request-context into request-loop. Refactor the entire request handling code. Marco Baringer **20040204151433] [Rename do-parameters to map-parameters Marco Baringer **20040204142956] [Add the expried-action-handler slot to transaction-end-frame and change the name of component accessor methods (for session-frame) Marco Baringer **20040204141854] [Changes the name of condition Marco Baringer **20040204141220] [Added conveince lookup methods Marco Baringer **20040204123026] [action and entry point refactoring. Marco Baringer **20040204110100] [More the component.lisp file to the components directroy Marco Baringer **20040204105217] [More the src/core directory to src/rerl Marco Baringer **20040204105038] [Removed unused files Marco Baringer **20040204095630] [Major refactoring part I. (NB: this probably doesn't even compile) Marco Baringer **20040203164307] [Added note in TODO Marco Baringer **20040202080105] [Added next thing to do in TODO list Marco Baringer **20040201182146] [Moved the handling code into rerl, use the lookup-x methods where appropiate. Marco Baringer **20040201175737] [moved the error handling code into rerl and have it called based on the condition signalled. Marco Baringer **20040201175225] [Use the error signalling lookup functions isntead of checking the return value everywhere Marco Baringer **20040201173804] [Use 5 special variables as opposed to the rerl special enviroment Marco Baringer **20040201173128] [Begin refactoring: implement get-x and lookup-x methods. Marco Baringer **20040201172138] [Added a more completion set of conditions. Marco Baringer **20040201170653] [Added doc strings to the class definitions Marco Baringer **20040201121742] [Added TODO regarding action transactions Marco Baringer **20040201113454] [Make ANSWER and CALL a local function and macro within the action. Marco Baringer **20040125192808] [Set arnesi::*call/cc-returns* Marco Baringer **20040125192451] [Eliminate unused variable Marco Baringer **20040125190837] [Update the server api Marco Baringer **20040125190632] [swank:create-swank-server api changed Marco Baringer **20040125142658] [Allow ucw:action on button input types Marco Baringer **20040124161156] [yaclml.tal is no longer a seperate system Marco Baringer **20040120141753] [Merged asdf systems into one file to make asdf-install happy Marco Baringer **20040116083346] [Updated to SLIME's new api. Marco Baringer **20040113181303] [Some documentation cleanup. Marco Baringer **20040107115000] [Added better threaded mod-lisp server shutdown code. Marco Baringer **20040105145734] [Implement multi-threading (more or less) in mod-lisp server. Marco Baringer **20040105135814] [Added expired session removal Marco Baringer **20031214131131] [Added the UCW:RENDER-COMPONENT tag Marco Baringer **20031214105105] [Type in README Marco Baringer **20031214104302] [Allow the admin repl to chose the package. Marco Baringer **20031213173635] [Deal with select, checkbox and radio inputs just like textarea Marco Baringer **20031213165539] [Updated TODO Marco Baringer **20031213164744] [Handle sessions across entry points with cookies. Marco Baringer **20031211153519] [Update to slime's new swank:create-swank-server API Marco Baringer **20031211123937] [Implement cookie parsing handling. Marco Baringer **20031210150414] [Add some default HTTP headers to the mod-lisp responses. Marco Baringer **20031210150119] [Refactoring on the error component. Marco Baringer **20031208222116] [Handle badly formed urls Marco Baringer **20031208195541] [Implement rem-named-action Marco Baringer **20031208140230] [Gracefull (more or less) handling of url without an application. Marco Baringer **20031207193706] [Fixes for single thread sbcl and non-openmcl mod-lisp. Marco Baringer **20031206001710] [patch-1 Marco Baringer **20031204132434 ] [More work on the range-view component Marco Baringer **20031202195632] [Minor improvements to range-view component Marco Baringer **20031202193651] [Fix openmcl-swank code Marco Baringer **20031202193354] [Error handling was accidently commented out.. Marco Baringer **20031202193237] [Documentation work Marco Baringer **20031202173200] [update to NOTES and TODO (take SOAP off the list until someone wants it) Marco Baringer **20031202171156] [Adde support for SBCL to error logger. Marco Baringer **20031202112418] [Add a bunch of logging statements. Handle errors while handling action errors. Marco Baringer **20031202110911] [Pass the lexical enviroment to TO-CPS Marco Baringer **20031201161024] [Implement the backtrace inspector for cmucl Marco Baringer **20031205055054] [Forget the <:as-html Marco Baringer **20031205054852] [Small touch-ups in the admin interface. Marco Baringer **20031130153231] [print out some info when you run the tests Marco Baringer **20031130152450] [Forgot to as-html the url in the entry points. Marco Baringer **20031130152106] [Use the login component's message to tell the user what the username and password are Marco Baringer **20031130151941] [Add message slot to login component Marco Baringer **20031130151828] [Improve the backtrace. Marco Baringer **20031130150506] [Add simple error handling. Marco Baringer **20031130135650] [Fix typo in define-condition no-handler-found-for-request. Marco Baringer **20031130135346] [Mention SLIME in the installation requirements. Marco Baringer **20031130135224] [Add a note about the limitations of action body code. Marco Baringer **20031130134723] [Put login.lisp back into asdf system def (took it oun before by mistake) Marco Baringer **20031130124841] [Add simple SLIME integration, add a few more components Marco Baringer **20031130113347] [refactor Marco Baringer **20031130111957] [Type fix. Marco Baringer **20031130111710] [Make portableaserve backend work with OpenMCL Marco Baringer **20031130111329] [Minor changes (no new/improved functionality) Marco Baringer **20031129131225] [Add named actions to application inspector Marco Baringer **20031129131102] [remove action links on server tools we haven't implemented yet. Marco Baringer **20031129130836] [add admi-inspector to asdf system Marco Baringer **20031129130313] [Fix application-inspector, define default method for datum-type-string Marco Baringer **20031128161116] [Fix a few bugs and add the standard-object inspector Marco Baringer **20031128155944] [Add a few inspector classes Marco Baringer **20031128150901] [work on the inspector, and the range-view component. Marco Baringer **20031128135924] [create the usefull slots-to-tal-enviroment function Marco Baringer **20031128120737] [Add the login component's file to the asdf system def Marco Baringer **20031128090241] [Use arnesi's mop-compat package. Marco Baringer **20031128090056] [Use the arnesi "MOP" package Marco Baringer **20031128065311] [keep shortest urls first (in application's named actions) Marco Baringer **20031127232051] [take admin and session inspector off todo list. Marco Baringer **20031127160601] [Don't let people remove/hijack their own session Marco Baringer **20031127160425] [Add simple session hijacking. Marco Baringer **20031127154401] [Add login protection to admin. Marco Baringer **20031127152126] [Add session removal from admin server. Marco Baringer **20031127150507] [Add inspector for application objects. Marco Baringer **20031127145239] [Added a generic class inspector (currently relies on PCL) Marco Baringer **20031127143121] [Add hash-table and complex number inspectors. Marco Baringer **20031127133601] [Created simple inspector Marco Baringer **20031127131458] [Initial version of the admin repl. Marco Baringer **20031127124035] [document options for DEFCOMPONENT Marco Baringer **20031127110737] [Minor change the the DEFCOMPONENT api. Marco Baringer **20031127110609] [Remove useless option from defcomponent form. Marco Baringer **20031127105149] [Refactor DEFCOMPONENT. Add DEFCOMPONENT options. Create default BLOCK in DEFACTION ala DEFUN. Marco Baringer **20031127105044] [small bit of directory re-structuring Marco Baringer **20031127084042] [Added copyright info to the source files Marco Baringer **20031127083232] [Merge INSTALL and README Marco Baringer **20031127082700] [Add a few things to the TODO list Marco Baringer **20031126161503] [Implement RANGE component Marco Baringer **20031126091910] [RENDER-ON is now exported from UCW Marco Baringer **20031126091544] [typo... Marco Baringer **20031126091446] [more doc work. Marco Baringer **20031125155711] [Allow :BACKTRACK (in DEFCOMPONENT) to specify the copyer. Marco Baringer **20031125155037] [query component has been superseeded by option-dialog component Marco Baringer **20031125151459] [Added explanitory comments. Marco Baringer **20031125151013] [refactoring so that when we add error handling to action calling we'll be ready... Marco Baringer **20031125141217] [render-on changed API and I forgot to update the call Marco Baringer **20031125140711] [Refctoring the examples and source code. Bring TAL/application class up to date with latest YACLML code. Marco Baringer **20031125123831] [Add paul graham to the credits Marco Baringer **20031124183246] [Various changes to adapt to how TAL now deals with finding/loading templates Marco Baringer **20031124155235] [minor Makefile update Marco Baringer **20031123224904] [More documentation work Marco Baringer **20031121171534] [Add initial form support. Marco Baringer **20031121124551] [Added credits section to docs. Marco Baringer **20031121115921] [Added the dev/0.0 config Marco Baringer **20031120170737] [more notes to self in TODO and NOTES Marco Baringer **20031120154915] [more documentation work Marco Baringer **20031120154754] [Rename backtrack-form to backtrack-place Marco Baringer **20031120151817] [Added blurb about arch, explaind why the Makefile don't work Marco Baringer **20031120151549] [add in-package statements to the run-examples files Marco Baringer **20031120151333] [remove usless block in ACTION macro Marco Baringer **20031120134623] [Major documentation restructuring Marco Baringer **20031119162645] [Added LICENSE file. Marco Baringer **20031119154452] [added simple "getting started" info. Marco Baringer **20031119154221] [added dist target to makefile Marco Baringer **20031119135759] [distribution/installation infrastructure Marco Baringer **20031119105712] [added license file Marco Baringer **20031118210355] [patch-31 Marco Baringer **20031118152301 ] [more examples, bug fixes, make ANSWER an easier to use function Marco Baringer **20031118150327] [documentation work Marco Baringer **20031118102421] [removed the init and start emthods on application Marco Baringer **20031118094031] [make the coutner example work! Marco Baringer **20031118085020] [patch-26 Marco Baringer **20031117234931 ] [patch-25 Marco Baringer **20031117171140 ] [too many little things to mention Marco Baringer **20031117144222] [fix all the little bugs and typos/thinkos in the action management. counter example works. Marco Baringer **20031117141348] [various typos/thinkos neccessary to get the basic hello-world example running under portableaserve Marco Baringer **20031117125251] [patch-21 Marco Baringer **20031117120512 ] [thinko Marco Baringer **20031117120039] [make the hello-world example even simpler Marco Baringer **20031117115915] [fix the aserve backend (need to introduce a wrapper request class) Marco Baringer **20031117115803] [fix the systemdefinition file Marco Baringer **20031117115643] [patch-16 Marco Baringer **20031117065142 ] [patch-15 Marco Baringer **20031116201910 ] [patch-14 Marco Baringer **20031116195510 ] [patch-13 Marco Baringer **20031116194853 ] [patch-12 Marco Baringer **20031116175558 ] [patch-11 Marco Baringer **20031116131853 ] [rename step to frame Marco Baringer **20031116131020] [renamed the ucw directory to src Marco Baringer **20031116122707] [documentation work Marco Baringer **20031116121800] [implement portableaserve server protocol, change protocol where it was more specific than need be Marco Baringer **20031111165701] [make the rerl more amendable to portableaserve Marco Baringer **20031111162755] [minor bug fixes Marco Baringer **20031111162504] [additions to the server-protocol Marco Baringer **20031111162323] [documentation work Marco Baringer **20031111142738] [add instructions on how to install mod_lisp Marco Baringer **20031111135913] [initial base-0 Marco Baringer **20050205140120] Patch bundle hash: 983fd1d17bc57de138bc9ce35d1514e4b6294e80 From s_bschmi at ira.uka.de Mon Feb 7 22:15:47 2005 From: s_bschmi at ira.uka.de (Benedikt Schmidt) Date: Mon, 07 Feb 2005 23:15:47 +0100 Subject: [Bese-devel] ucw available through darcs Message-ID: <87wttkm2y4.fsf@rzstud4.rz.uni-karlsruhe.de> Am Sonntag, den 06.02.2005, 11:13 +0100 schrieb Marco Baringer: > not withstanding this excursion into darcs land i want every to know > that the official source for ucw is the arch repository. i will keep > the darcs repo synchronized (though it may lag a bit) and i'll accept > darcs patches, but we're not switching over to darcs. Attached is a first try to implement a Task [1] component in UCW and some typo fixes. > p.s. - this is my first attempt at setting up darcs, comments welcome. If you add "_darcs/pref/email" with the email address where patches should be sent, darcs send should work without entering an email address. Benedikt [1] http://www.motionobj.com/seasidefaq/DifferenceBetweenComponentAndTask -------------- next part -------------- A non-text attachment was scrubbed... Name: ucw-patch Type: application/octet-stream Size: 87048 bytes Desc: darcs patch URL: From mb at bese.it Tue Feb 8 08:59:34 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 08 Feb 2005 09:59:34 +0100 Subject: [Bese-devel] ucw available through darcs In-Reply-To: <87wttkm2y4.fsf@rzstud4.rz.uni-karlsruhe.de> (Benedikt Schmidt's message of "Mon, 07 Feb 2005 23:15:47 +0100") References: <87wttkm2y4.fsf@rzstud4.rz.uni-karlsruhe.de> Message-ID: Benedikt Schmidt writes: > Am Sonntag, den 06.02.2005, 11:13 +0100 schrieb Marco Baringer: >> not withstanding this excursion into darcs land i want every to know >> that the official source for ucw is the arch repository. i will keep >> the darcs repo synchronized (though it may lag a bit) and i'll accept >> darcs patches, but we're not switching over to darcs. > > Attached is a first try to implement a Task [1] component in UCW and > some typo fixes. thanks for the doc fixs. i think i'm going to apply your task component patch, but i'm not really convinced its a good thing. reasons: 1) i definetly don't like calling an action from within a render-on method, that just seems wrong. i'd really like START to get caled after the component's place has been set and before render-on, but i don't know when that is. 2) while i like the fact that this component makes everything explicit i kind of like the way things are because there's nothing special about task components. as you can see i've no major problems with the patch but it just smells funny to me. maybe it'll grow on me? >> p.s. - this is my first attempt at setting up darcs, comments welcome. > > If you add "_darcs/pref/email" with the email address where patches > should be sent, darcs send should work without entering an email > address. should this be my personal address or the list's? -- -Marco Baringer Baringer Electronics and Software Engineering www.bese.it From rm at fabula.de Tue Feb 8 09:10:50 2005 From: rm at fabula.de (rm at fabula.de) Date: Tue, 8 Feb 2005 10:10:50 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <874qgoba8o.fsf@vera.springies.com> References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> Message-ID: <20050208091050.GA24470@seid-online.de> On Mon, Feb 07, 2005 at 10:33:43AM -0600, Alan Shutko wrote: > rm at mh-freiburg.de (Le grand pinguin) writes: > > > One mnor thing: the stylesheet doesn't get delivered. When i request it > > from the browser i get the gollowing: > > > > Error: Error # > > > > Sorry, don't know what to with /ucw/examples/stylesheet.css > > I bet this is because we don't have publish-directory for mod_lisp > implemented yet. (It's just an empty stub right now.) > > What version of mod_lisp are you using? I'll try to download it and > implement it. I use the module as distributed with Debian/Ubuntu which seems to be 2.33. Hmm, why should mod_lisp be responsible for this? The module just forwards requests to the Lisp server. Shouldn't publish-directory be implemented on the ucw side (and hence my installation should be up to date)? I'll have a look at it later today, TIA RalfD > -- > Alan Shutko - I am the rocks. > APATHY RULES! ( but who cares? ) > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Tue Feb 8 11:54:56 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 08 Feb 2005 12:54:56 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <20050208091050.GA24470@seid-online.de> (rm@fabula.de's message of "Tue, 8 Feb 2005 10:10:50 +0100") References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> Message-ID: rm at fabula.de writes: > On Mon, Feb 07, 2005 at 10:33:43AM -0600, Alan Shutko wrote: >> I bet this is because we don't have publish-directory for mod_lisp >> implemented yet. (It's just an empty stub right now.) >> >> What version of mod_lisp are you using? I'll try to download it and >> implement it. > > I use the module as distributed with Debian/Ubuntu which seems to be 2.33. > Hmm, why should mod_lisp be responsible for this? The module just forwards > requests to the Lisp server. Shouldn't publish-directory be implemented on > the ucw side (and hence my installation should be up to date)? > > I'll have a look at it later today, the idea is that mod_lisp should only send the ucw server requests for entry-points or actions, and let apache handle the static files itself. not withstanding what we do with publish-directory this is still the stup i suggest. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From jan at rychter.com Tue Feb 8 11:34:18 2005 From: jan at rychter.com (Jan Rychter) Date: Tue, 08 Feb 2005 12:34:18 +0100 Subject: [Bese-devel] Re: Bug in arnesi parse-float In-Reply-To: <5676f0e1b00e93ed7377548fa0777567@comcast.net> (Eugene Tyurin's message of "Sun, 6 Feb 2005 16:14:34 -0500") References: <07d3d03de795852f36572ba47c9549c9@comcast.net> <5676f0e1b00e93ed7377548fa0777567@comcast.net> Message-ID: >>>>> "Eugene" == Eugene Tyurin writes: Eugene> That's what I've done already. :-) Actually, parsing and Eugene> controlling user input is a bitch every time. That's why the Eugene> standard discusses *read-default-float-format* and whole slew Eugene> of other goodies. For example, depending on your locale (US Eugene> vs. Europe) string "1,200" could have two totally different Eugene> meanings. ;-( Does the standard really say anywhere that anything depends on the locale? I'm scared now. Locale is an obsolete concept that has little to do with they way I work. The assumption that the user is in one cultural place and uses settings from that place only is fundamentally flawed. --J. From rm at fabula.de Tue Feb 8 12:43:02 2005 From: rm at fabula.de (rm at fabula.de) Date: Tue, 8 Feb 2005 13:43:02 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> Message-ID: <20050208124302.GB24888@seid-online.de> On Tue, Feb 08, 2005 at 12:54:56PM +0100, Marco Baringer wrote: > rm at fabula.de writes: > > > On Mon, Feb 07, 2005 at 10:33:43AM -0600, Alan Shutko wrote: > >> I bet this is because we don't have publish-directory for mod_lisp > >> implemented yet. (It's just an empty stub right now.) > >> > >> What version of mod_lisp are you using? I'll try to download it and > >> implement it. > > > > I use the module as distributed with Debian/Ubuntu which seems to be 2.33. > > Hmm, why should mod_lisp be responsible for this? The module just forwards > > requests to the Lisp server. Shouldn't publish-directory be implemented on > > the ucw side (and hence my installation should be up to date)? > > > > I'll have a look at it later today, > > the idea is that mod_lisp should only send the ucw server requests for > entry-points or actions, and let apache handle the static files > itself. not withstanding what we do with publish-directory this is > still the stup i suggest. Ah, nice idea - this will leave the dull work of serving images and other static content to apache (which _will_ result in a performance boost on high load sites ...). Well, two points then: - this probably means that part of the "website/app" resides close to the ucw application (whereever TALs et.al. are put) and another part is within the (virtual) servers document root. I kind of like the idea of keeping an application in one place (like tomcats WEBAPP). - Apache's delegation to a handler can be either URL based (with the Location directive) orfile system path based (which doesn't really work for dynamic content as is the case with mod_lisp). How should Apache "know" that the request for /ucw/examples/index.ucw needs to be send to the mod_lisp peer but /ucw/examples/stylesheet.css not? BTW, i can offer some Apache hacking help if needed. I've done quite a lot of Apache module programming. Cheers RalfD > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen From ats at acm.org Tue Feb 8 16:29:20 2005 From: ats at acm.org (Alan Shutko) Date: Tue, 08 Feb 2005 10:29:20 -0600 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <20050208124302.GB24888@seid-online.de> (rm@fabula.de's message of "Tue, 8 Feb 2005 13:43:02 +0100") References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> <20050208124302.GB24888@seid-online.de> Message-ID: <87fz07uian.fsf@vera.springies.com> rm at fabula.de writes: > - this probably means that part of the "website/app" resides close to > the ucw application (whereever TALs et.al. are put) and another part > is within the (virtual) servers document root. I kind of like the idea > of keeping an application in one place (like tomcats WEBAPP). Actually, I was hoping to avoid that problem. If UCW can generate the right httpd.conf entries for an application (as Tomcat can do for mod_jk or whatever the current connector is), it should be able to specify by specific pages what goes where. > - Apache's delegation to a handler can be either URL based (with > the Location directive) orfile system path based (which doesn't > really work for dynamic content as is the case with mod_lisp). How > should Apache "know" that the request for /ucw/examples/index.ucw > needs to be send to the mod_lisp peer but > /ucw/examples/stylesheet.css not? Ideally, I'd have the httpd.conf snippet specify what pages are static and what pages go to a handler. Probably by full URLs. -- Alan Shutko - I am the rocks. The dough NEVER stops here. From rm at fabula.de Tue Feb 8 16:40:37 2005 From: rm at fabula.de (rm at fabula.de) Date: Tue, 8 Feb 2005 17:40:37 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <87fz07uian.fsf@vera.springies.com> References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> <20050208124302.GB24888@seid-online.de> <87fz07uian.fsf@vera.springies.com> Message-ID: <20050208164037.GD24888@seid-online.de> On Tue, Feb 08, 2005 at 10:29:20AM -0600, Alan Shutko wrote: > rm at fabula.de writes: > > > - this probably means that part of the "website/app" resides close to > > the ucw application (whereever TALs et.al. are put) and another part > > is within the (virtual) servers document root. I kind of like the idea > > of keeping an application in one place (like tomcats WEBAPP). > > Actually, I was hoping to avoid that problem. If UCW can generate the > right httpd.conf entries for an application (as Tomcat can do for > mod_jk or whatever the current connector is), it should be able to > specify by specific pages what goes where. > > > - Apache's delegation to a handler can be either URL based (with > > the Location directive) orfile system path based (which doesn't > > really work for dynamic content as is the case with mod_lisp). How > > should Apache "know" that the request for /ucw/examples/index.ucw > > needs to be send to the mod_lisp peer but > > /ucw/examples/stylesheet.css not? > > Ideally, I'd have the httpd.conf snippet specify what pages are static > and what pages go to a handler. Probably by full URLs. Hmm, but that's pretty tricky on a per-file basis. One _could_ emit configuration statements to be used by mod_rewrite but that's a clumsy kludgi IMHO (nd not really an option for "real" websites with lots of graphics and static content). Anyway, since we were talking about publish-directory: why not put the stylesheet(s) into a subdirectory (say css/stylesheet.css) - that would make dispatch on the Apache- side much simpler ... cheers RalfD > -- > Alan Shutko - I am the rocks. > The dough NEVER stops here. > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Tue Feb 8 16:53:25 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 08 Feb 2005 17:53:25 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: <20050208164037.GD24888@seid-online.de> (rm@fabula.de's message of "Tue, 8 Feb 2005 17:40:37 +0100") References: <20050207141839.GB25428@forte.mh-freiburg.de> <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> <20050208124302.GB24888@seid-online.de> <87fz07uian.fsf@vera.springies.com> <20050208164037.GD24888@seid-online.de> Message-ID: rm at fabula.de writes: > On Tue, Feb 08, 2005 at 10:29:20AM -0600, Alan Shutko wrote: >> Ideally, I'd have the httpd.conf snippet specify what pages are static >> and what pages go to a handler. Probably by full URLs. > > Hmm, but that's pretty tricky on a per-file basis. One _could_ emit configuration > statements to be used by mod_rewrite but that's a clumsy kludgi IMHO (nd not > really an option for "real" websites with lots of graphics and static content). we could also do it the other way around. ucw would emit (every time an entry-point needs te registered/unregistered) a new httpd.conf snippet containing: SetHandler lisp a large app would have many such lines (i've got an app with just under 100), but it's still less than the number of static files (thoudands for the aforementioned app) and it'd be pretty easy to do (from the ucw side at least). > Anyway, since we were talking about publish-directory: why not put the stylesheet(s) > into a subdirectory (say css/stylesheet.css) - that would make dispatch on the Apache- > side much simpler ... i was going to suggest that people prefix actions with /ucw/ [or cgi-bin] and let apache select based on that, but isn't that the same as uisng the .ucw suffix? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From rm at fabula.de Tue Feb 8 16:59:30 2005 From: rm at fabula.de (rm at fabula.de) Date: Tue, 8 Feb 2005 17:59:30 +0100 Subject: [Bese-devel] Re: ucw 0.3.6pre1 In-Reply-To: References: <20050207161002.GD19862@seid-online.de> <20050207162522.GC25428@forte.mh-freiburg.de> <874qgoba8o.fsf@vera.springies.com> <20050208091050.GA24470@seid-online.de> <20050208124302.GB24888@seid-online.de> <87fz07uian.fsf@vera.springies.com> <20050208164037.GD24888@seid-online.de> Message-ID: <20050208165930.GE24888@seid-online.de> On Tue, Feb 08, 2005 at 05:53:25PM +0100, Marco Baringer wrote: > > we could also do it the other way around. ucw would emit (every time > an entry-point needs te registered/unregistered) a new httpd.conf > snippet containing: > > > SetHandler lisp > > > a large app would have many such lines (i've got an app with just > under 100), but it's still less than the number of static files > (thoudands for the aforementioned app) and it'd be pretty easy to do > (from the ucw side at least). Well, still likely less entries then writing out all static content. > > Anyway, since we were talking about publish-directory: why not put the stylesheet(s) > > into a subdirectory (say css/stylesheet.css) - that would make dispatch on the Apache- > > side much simpler ... > > i was going to suggest that people prefix actions with /ucw/ [or > cgi-bin] and let apache select based on that, but isn't that the same > as uisng the .ucw suffix? Hmm, the current example uses a stylesheet with a relative URL (hardcoded, which makes me wonder why there's a stylesheet slot in the window component at all ...?). It would probably be nicer to have the stylesheet not in the same URL tree as the dynamic content (so, if ucw is mapped as /ucw/... non-dynamic stuff should go into /css/... or /images/...). That's the way i do my non-ucw web stuff with araneida. cheers RalfD > > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen From mb at bese.it Thu Feb 10 09:34:08 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Feb 2005 10:34:08 +0100 Subject: [Bese-devel] the ucw/systems directory Message-ID: i'm contemplating removing the ucw/systems directory and adding a series of (load ".asd") to ucw's init.lisp. i have to perform these loads anyway when runnig on windows and i'm getting annoyed at having to to maintain the list of systems in two seperate places. would removing the systems directory (and all its symlinks) really mess up someone's work flow? [directly loading init.lisp will still work though]. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From rm at fabula.de Thu Feb 10 11:46:45 2005 From: rm at fabula.de (rm at fabula.de) Date: Thu, 10 Feb 2005 12:46:45 +0100 Subject: [Bese-devel] the ucw/systems directory In-Reply-To: References: Message-ID: <20050210114645.GB4167@seid-online.de> On Thu, Feb 10, 2005 at 10:34:08AM +0100, Marco Baringer wrote: > > i'm contemplating removing the ucw/systems directory and adding a > series of (load ".asd") to ucw's init.lisp. i have to > perform these loads anyway when runnig on windows and i'm getting > annoyed at having to to maintain the list of systems in two seperate > places. > > would removing the systems directory (and all its symlinks) really > mess up someone's work flow? [directly loading init.lisp will still > work though]. Hi MArco, i'm currently using just parts of ucw (YACLML esp.) and just push ucw/systems on asdf:*central-registry* so the current setup is rather convenient. Why not do a (mapcar (lambda (system) (load system)) (directory "systems/*.asd")) in windows? Cheers Ralf Mattes > > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Thu Feb 10 21:04:19 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Feb 2005 22:04:19 +0100 Subject: [Bese-devel] tasks, components and actions Message-ID: i was thinking about the task component and, honestly, i'm less and less sure they're a good idea. we've already got tasks, it's just that we call them actions. why don't we just make actions call'able? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Feb 10 21:20:34 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Feb 2005 22:20:34 +0100 Subject: [Bese-devel] render-on Message-ID: i've been meaning to remove render-on and replace it with this: (defgeneric render (component)) the idea being that no one actually ever specializes (nor is going to specialize) on the response object. fair enough, _i_ don't have any code which specializes on the response object, do you? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From pdf23ds at gmail.com Tue Feb 15 01:13:35 2005 From: pdf23ds at gmail.com (Chris Capel) Date: Mon, 14 Feb 2005 19:13:35 -0600 Subject: [Bese-devel] trouble building latest ucw Message-ID: <737b61f3050214171326ba9ada@mail.gmail.com> I'm getting an error with UCW 0.3 patch-242, SBCL 0.8.18, building a completely fresh "get" of UCW. It happens when defining the class "container" in components/container.lisp. The error is "T is not a list", referring to the value given to the backtrack option on the slot. Here's the backtrace: 0: ("#'(LAMBDA (SLOT-VALUE) (FIRST SLOT-VALUE))" T) 1: ((SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION (STANDARD-COMPONENT-CLASS T T)) # #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (3)) # CURRENT-COMPONENT-NAME (#)) 2: ((SB-MOP:COMPUTE-SLOTS (SB-PCL::STD-CLASS)) # # #) 3: ((SB-MOP:COMPUTE-SLOTS :AROUND (STANDARD-CLASS)) # #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) #) 4: (SB-PCL::UPDATE-CLASS # NIL) I have no clue what the issue is. Chris Capel -- "What is it like to be a bat? What is it like to bat a bee? What is it like to be a bee being batted? What is it like to be a batted bee?" -- The Mind's I (Hofstadter, Dennet) From mb at bese.it Tue Feb 15 12:06:54 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 15 Feb 2005 13:06:54 +0100 Subject: [Bese-devel] trouble building latest ucw In-Reply-To: <737b61f3050214171326ba9ada@mail.gmail.com> (Chris Capel's message of "Mon, 14 Feb 2005 19:13:35 -0600") References: <737b61f3050214171326ba9ada@mail.gmail.com> Message-ID: Chris Capel writes: > I'm getting an error with UCW 0.3 patch-242, SBCL 0.8.18, building a > completely fresh "get" of UCW. It happens when defining the class > "container" in components/container.lisp. The error is "T is not a > list", referring to the value given to the backtrack option on the > slot. Here's the backtrace: > > 0: ("#'(LAMBDA (SLOT-VALUE) (FIRST SLOT-VALUE))" T) > 1: ((SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION > (STANDARD-COMPONENT-CLASS T T)) # > #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # (SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION #) {1E13BC5}> :PV-CELL NIL > :NEXT-METHOD-CALL NIL :ARG-INFO (3)) # CONTAINER> CURRENT-COMPONENT-NAME (# CURRENT-COMPONENT-NAME>)) > 2: ((SB-MOP:COMPUTE-SLOTS (SB-PCL::STD-CLASS)) # argument> # # CONTAINER>) > 3: ((SB-MOP:COMPUTE-SLOTS :AROUND (STANDARD-CLASS)) # argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # (SB-MOP:COMPUTE-SLOTS #) {1E1EA25}> :PV-CELL NIL :NEXT-METHOD-CALL > #S(SB-PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL > NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) > #) > 4: (SB-PCL::UPDATE-CLASS # NIL) > > I have no clue what the issue is. i think i might, though i've only seen this on cmucl so far. here's the problem (as it appears on cmucl): we use the function mopp:direct-slot-definition-value since different implementations pass slot-definiton the initargs in different ways. the problem is that, in arnesi (up until patch-47), we redefine this function after we've compiled it. since the function, in its original definiiton, returns a constant cmucl remebers this and, even when the function is redefined, doesn't notice that the function can return things other than :this-will-be-redefiened-below. :( this issue comes up in compute-effective-slot-definition (which is where your seeing the issue) for the container class and infact the symptom was an error about T not being a list or not being a function. so, to make a long story short: 1) did your fresh checkout include an update of arnesi? in particular, do you have arnesi--dev--1.2--patch-47 ? 2) could you perform this little experiment: http://paste.lisp.org/display/5615 and tell me if you get Ok. or Bad. (if you get Bad. you'll need to upgrade sbcl). Now that i think a bit more about it there's another thing we could be runnig into: maybe mopp:direct-slot-definition-value is getting defined as (lambda (slot-value) (first slot-value)) when it should in fact be defined as (lambda (slot-value) slot-value). sholud the above experiment pass successfully then i'd like you to try one more thing: open up mopp, go to line 359 (or there abouts) and find this block of code: (if (consp (%slot (find-if (lambda (s) (eql 'a-slot (mopp:slot-definition-name s))) (mopp:class-direct-slots (find-class '%class))))) (lambda (slot-value) (first slot-value)) (lambda (slot-value) slot-value)) change it to this: (lambda (slot-value) slot-value) try rebuilding ucw. if this second test works then i'll have to grab a copy of 0.8.18 and see what's going on. hth. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Fri Feb 18 17:04:55 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 18 Feb 2005 18:04:55 +0100 Subject: [Bese-devel] droped patches Message-ID: things have been pretty busy here and i think that some people have sent patches which i've forgetten to commit or at least comment on. if you've sent me a patch (either to the list or personally) and i haven't commited it please remind me to do so. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From berry.groenendijk at gmail.com Sun Feb 20 16:26:15 2005 From: berry.groenendijk at gmail.com (berry groenendijk) Date: Sun, 20 Feb 2005 17:26:15 +0100 Subject: [Bese-devel] Problem installing ucw Message-ID: <680bcd95050220082658d0415d@mail.gmail.com> I am a newbie at Lisp. I am very interested in developing webapplications in Lisp. So, I am searching for a good, modern webframework with which I am able to quickly build websites. So, I stumbled upon Uncommon Web. Unfortunately I have some trouble getting things up and running. I am running Linux and Apache 2.0. I installed mod_lisp succesfully. Now I need to get ucw up and running. I put together this simple startup script: ;;;Startucw.lisp (defvar *lisp-dirs* "/home/berry/MyProgs/lisp/" "Root location of CL library installs") (load (concatenate 'string *lisp-dirs* "asdf/asdf.lisp")) (setf asdf:*central-registry* '(*default-pathname-defaults* (concatenate 'string *lisp-dirs* "ucw_0.3.6/"))) (load (concatenate 'string *lisp-dirs* "ucw_0.3.6/init.lisp")) When I run this script I get the following error: [1]> (load "startucw.lisp") ;; Loading file startucw.lisp ... ;; Loading file /home/berry/MyProgs/lisp/asdf/asdf.lisp ... ;; Loaded file /home/berry/MyProgs/lisp/asdf/asdf.lisp ;; Loading file /home/berry/MyProgs/lisp/ucw_0.3.6/init.lisp ... ; loading system definition from /home/berry/MyProgs/lisp/ucw_0.3.6/ucw.asd into # ;; Loading file /home/berry/MyProgs/lisp/ucw_0.3.6/ucw.asd ... ; registering # as UCW ; registering # as UCW.ADMIN ; registering # as UCW.ASERVE ; registering # as UCW.MOD-LISP ; registering # as UCW.ARANEIDA ; registering # as UCW.CL-ICU ; registering # as UCW.EXAMPLES ; registering # as UCW.EXAMPLES.I18N ;; Loaded file /home/berry/MyProgs/lisp/ucw_0.3.6/ucw.asd *** - Condition of type ASDF:MISSING-DEPENDENCY. Break 1 [2]> Break 1 [2]> :i component :RFC2388 not found, required by #1=#: standard object type: ASDF:MISSING-DEPENDENCY 0 [REQUIRED-BY]: #1=# 1 [REQUIRES]: :RFC2388 2 [VERSION]: NIL 3 [PARENT]: NIL I am running CLisp. Problem seems to be that the startup file can not find the compont RFC2388. Despite the fact that it is present in the ucw directories. Can anyone please help with this? Thanks. -- Berry Groenendijk http://www.bersie.de From matley at muppetslab.org Sun Feb 20 18:58:14 2005 From: matley at muppetslab.org (Luigi Panzeri) Date: Sun, 20 Feb 2005 19:58:14 +0100 Subject: [Bese-devel] Problem installing ucw In-Reply-To: <87mztzm574.fsf@matley.muppetslab.org> (Luigi Panzeri's message of "Sun, 20 Feb 2005 19:55:43 +0100") References: <680bcd95050220082658d0415d@mail.gmail.com> <87mztzm574.fsf@matley.muppetslab.org> Message-ID: <87d5uvm52x.fsf@matley.muppetslab.org> berry groenendijk writes: > *** - Condition of type ASDF:MISSING-DEPENDENCY. > Break 1 [2]> > Break 1 [2]> :i > component :RFC2388 not found, required by #1=# #x20325C6E>: standard object > type: ASDF:MISSING-DEPENDENCY > 0 [REQUIRED-BY]: #1=# > 1 [REQUIRES]: :RFC2388 > 2 [VERSION]: NIL > 3 [PARENT]: NIL > > I am running CLisp. Problem seems to be that the startup file can not > find the compont RFC2388. Despite the fact that it is present in the > ucw directories. Can anyone please help with this? > Yes, your asdf system needs to find the rfc2388.asd that is located in the systems directory of ucw tree. You have to add a: (pushnew "/path/to/ucw/systems/" asdf:*central-registry* :test #'equal) to your startup script. I suggest you to create a default registry dir (e.g. ~/registry) if a standard one is not provided (on my Debian i have ~/.clc/systems/ and /usr/share/common-lisp/systems/), and link your asd file in it. -- Luigi Panzeri Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film Evaluate Lisp: http://lisp.tech.coop/Evaluate%20Lisp From ocorrain at yahoo.com Wed Feb 23 01:43:00 2005 From: ocorrain at yahoo.com (=?iso-8859-1?Q?Tiarn=E1n_=D3_Corr=E1in?=) Date: Wed, 23 Feb 2005 01:43:00 +0000 Subject: [Bese-devel] Websites using UCW Message-ID: Hello -- can anyone point me in the direction of "live" websites using UCW? -- Tiarn?n From mb at bese.it Wed Feb 23 08:40:46 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 23 Feb 2005 09:40:46 +0100 Subject: [Bese-devel] Websites using UCW In-Reply-To: ( =?iso-8859-1?q?Tiarn=E1n_=D3=2E_Corr=E1in's_message_of?= "Wed, 23 Feb 2005 01:43:00 +0000") References: Message-ID: ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > Hello -- > > can anyone point me in the direction of "live" websites using UCW? personally i've only done intranet apps, not "websites." the one exception is www.idiproject.com, but that's fairly trivial until you login and start using some of the more advanced search features. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From rm at fabula.de Wed Feb 23 09:19:21 2005 From: rm at fabula.de (rm at fabula.de) Date: Wed, 23 Feb 2005 10:19:21 +0100 Subject: [Bese-devel] Websites using UCW In-Reply-To: References: Message-ID: <20050223091921.GA23697@seid-online.de> On Wed, Feb 23, 2005 at 09:40:46AM +0100, Marco Baringer wrote: > ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > > > Hello -- > > > > can anyone point me in the direction of "live" websites using UCW? > > personally i've only done intranet apps, not "websites." the one > exception is www.idiproject.com, but that's fairly trivial until you > login and start using some of the more advanced search features. I'd also guess that most sites using UCW are intranet sites closed to public access. If partial use of UCW is enough for being listed, the following site uses UCW's yaclml template engine (which seems to be blazingly fast :) to render database/kb content . Given the current _precieved_ speed of a full-blown UCW application i'd worry about putting it on our live servers (but that _highly_ depends on your expected load). hth Ralf Mattes > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From mb at bese.it Wed Feb 23 10:41:17 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 23 Feb 2005 11:41:17 +0100 Subject: [Bese-devel] Websites using UCW In-Reply-To: <20050223091921.GA23697@seid-online.de> (rm@fabula.de's message of "Wed, 23 Feb 2005 10:19:21 +0100") References: <20050223091921.GA23697@seid-online.de> Message-ID: rm at fabula.de writes: > I'd also guess that most sites using UCW are intranet sites closed to > public access. If partial use of UCW is enough for being listed, the > following site uses UCW's yaclml template engine (which seems to be > blazingly fast :) to render database/kb content . > Given the current _precieved_ speed of a full-blown UCW application i'd > worry about putting it on our live servers (but that _highly_ depends on > your expected load). > > hth Ralf Mattes i profiled a ucw app a while ago, here's what i learned (not that i did anything about it): 1) parsing and compiling tal files is slow and eats _lots_ of memory. simply using caching generators reduced response time by 15%. 2) tal files are compiled into function containing many write-string forms, 30% of the time was being spent in write-string (on openmcl). to make matters worse ucw uses a string-otutput-stream during the request/response loop which is, once the request handling is over, written out to the stream. writing directly to the stream would probably make things faster and consume less memory (again, i didn't actually try anything). 3) i'd like to do some profiling on sbcl or cmucl which have more helpfull profilers than openmcl+shark. 4) 100 elements. i'd probably due well to change the default to a hash table. 4) looking up sessions, calling actions, saving backtracks, etc. (all the stuff i'd have though would have been slow) consumed 0% of the resources (lost in the noise). here's a data point: idiproject.com runs on an AMD Athlon 2.2 GHz, has 1 GB of ram and a seagate IDE disk (i think, i don't actually know what all the components are). using ab and of a LAN it handled about 15 hits a second (testing the 'arbitral cases' search form). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From ocorrain at yahoo.com Wed Feb 23 12:01:45 2005 From: ocorrain at yahoo.com (=?iso-8859-1?Q?Tiarn=E1n_=D3_Corr=E1in?=) Date: Wed, 23 Feb 2005 12:01:45 +0000 Subject: [Bese-devel] Websites using UCW In-Reply-To: <20050223091921.GA23697@seid-online.de> (rm@fabula.de's message of "Wed, 23 Feb 2005 10:19:21 +0100") References: <20050223091921.GA23697@seid-online.de> Message-ID: Thank you both. I'm using UCW to develop a public-facing educational site at the moment. I'll post a URL when I'm finished. -- Tiarn?n From ocorrain at yahoo.com Wed Feb 23 12:24:32 2005 From: ocorrain at yahoo.com (=?iso-8859-1?Q?Tiarn=E1n_=D3_Corr=E1in?=) Date: Wed, 23 Feb 2005 12:24:32 +0000 Subject: [Bese-devel] Content-Type for uploaded files? Message-ID: Hi-- how can I get the content-type of uploaded files? I have taken code from the example application, viz.: (defclass file-upload-example (widget-component template-component) ((file :accessor file-upload-example.file :initform "")) (:metaclass standard-component-class) (:default-initargs :template-name "upload.tal") (:documentation "Form for uploading a file.")) (defaction upload ((form file-upload-example)) (call 'file-upload-viewer :file-data (file-upload-example.file form))) (defclass file-upload-viewer (widget-component) ((file-data :initarg :file-data)) (:metaclass standard-component-class) (:documentation "View a file uplodaed by the file-upload-example component.")) -- Tiarn?n From ocorrain at yahoo.com Wed Feb 23 17:35:25 2005 From: ocorrain at yahoo.com (=?iso-8859-1?Q?Tiarn=E1n_=D3_Corr=E1in?=) Date: Wed, 23 Feb 2005 17:35:25 +0000 Subject: [Bese-devel] Processing form input Message-ID: Hi-- I'm playing around with UCW, with a view to using it for a website. I seem to have run into a brick wall, though, and perusing the copious documentation doesn't seem to help :-) I've defined a form, and a render-on for it thus: (defclass text-form (form-component) ((author-lastname :accessor author-lastname :component (text-field :size 50)) (author-firstname :accessor author-firstname :component (text-field :size 50)) (title :accessor title :component (text-area-field :rows 5 :cols 65)) (publication-date :accessor pub-date :component (integer-field)) (introduction :accessor intro :component (text-area-field :rows 20 :cols 65))) (:metaclass standard-component-class)) (defmethod render-on ((res response) (form text-form)) ( ( =?iso-8859-1?q?Tiarn=E1n_=D3=2E_Corr=E1in's_message_of?= "Wed, 23 Feb 2005 17:35:25 +0000") References: Message-ID: ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > Now I want to call a method to process what's entered, and dispatch > accordingly. I have tried defining a "submit" action: > > (defaction submit ((f text-form)) > (<:h1 "Yo")) > > And I expect to get a page with a large "Yo!" when I hit the submit > button, but I just get the form again (still filled out). I've tried > defining "submit" as a plain method, and an ":after" method, but still > no dice. > > What am I missing? actions are, basically, the "controller" part of the app (if we want to use MVC terminiology). They descibe how the various components are tied together. actions do _not_ do the actual rendering, that's left upto the components. here's what you're missing: (defaction submit ((f text-form)) (if (validate-form-elements f) (call 'show-form-output f) (call 'form-error))) the action can decide to pass control over to another component, in which case the current component (text-form in this example) will disappear and be replaced by the called component. your submit action doesn't call anyone, it simply returns the string "

Yo

", so the component tree remains as it is and you see the text-form component again. to sum it up: every diffirent kind of page in the application will have a component (probably more than one if nested components are used). every time the user clicks, or submits, or changes a select box with an :on-change attribute, an action is called. actions can either call another component, answer to the calling component (both of these result in the current page (from the user's point of view) changing) or do neither of these things. if they chose to not call nor answer the page will remain the same (to be precise: the components in the tree starting at context.window-component will remain the same). hth. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From ats at acm.org Thu Feb 24 03:39:17 2005 From: ats at acm.org (Alan Shutko) Date: Wed, 23 Feb 2005 21:39:17 -0600 Subject: [Bese-devel] Some fixes... Message-ID: <87braask2i.fsf@vera.springies.com> I've checked in some fixes to my archive to correct compilation. A screwup with xtla meant I checked in more than I wanted, but you definitely want: * presentations.lisp: Correct arguments to error * standard-session-frame.lisp: Remove duplicate definition. The change to wall-time.lisp and ucw.asd works around a recent change which copied (define-condition iso-8601-syntax-error ... from clsql. sql-user-error is a clsql condition, so I fixed the package and made ucw depend on it, but that's probably not what you want. -- Alan Shutko - I am the rocks. Tis better to be hunter than hunted. From ats at acm.org Thu Feb 24 05:03:46 2005 From: ats at acm.org (Alan Shutko) Date: Wed, 23 Feb 2005 23:03:46 -0600 Subject: [Bese-devel] yaclml: Should not indent before tag Message-ID: <871xb6sg5p.fsf@vera.springies.com> yaclml should never emit indentation like this < li ... < /li> It's not allowed by the XML spec. Probably is allowed by SGML, but if we use yaclml to output xhtml, Mozilla refuses to render it correctly. --- orig/src/yaclml.lisp +++ mod/src/yaclml.lisp @@ -110,7 +110,6 @@ "Emit the code required to print an open tag whose name is NAME and with the attributes attributes." (emit-princ "<") - (emit-indentation) (emit-princ name) (emit-princ-attributes attributes) (emit-princ ">") @@ -120,7 +119,6 @@ "Emit the code required to print a close tag whose name is NAME." (decf %yaclml-indentation-depth% 2) (emit-princ "<") - (emit-indentation) (emit-princ "/" name ">")) -- Alan Shutko - I am the rocks. "Oooo, I never! Well, I might've. I probably did. Sorry, everyone." From drewc at tech.coop Thu Feb 24 09:01:20 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 24 Feb 2005 01:01:20 -0800 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: <871xb6sg5p.fsf@vera.springies.com> References: <871xb6sg5p.fsf@vera.springies.com> Message-ID: <421D97E0.6010308@tech.coop> The current darcs archive builds and runs using the lib directory from arch with Alan's patch applied. the darcs archive does not contain a systems/ directory at all... i have to add it and the run this script from inside the new dir : #!/bin/sh ln -s ../ucw.asd ./ ln -s ../libs/arnesi/arnesi.asd ./ ln -s ../libs/cl-icu/cl-icu.asd ./ ln -s ../libs/iterate/iterate.asd ./ ln -s ../libs/rfc2388/rfc2388.asd ./ ln -s ../libs/yaclml/yaclml.asd ./ can we get that added to darcs? My CLSQL<->UCW stuff is in the process of migrating to use the new forms classes. once i have that finished i'll package it up and it can be included in UCW propor if you so desire :) drewc Alan Shutko wrote: > yaclml should never emit indentation like this > < > li ... > > < > /li> > > It's not allowed by the XML spec. Probably is allowed by SGML, but if > we use yaclml to output xhtml, Mozilla refuses to render it correctly. > > --- orig/src/yaclml.lisp > +++ mod/src/yaclml.lisp > @@ -110,7 +110,6 @@ > "Emit the code required to print an open tag whose name is NAME and > with the attributes attributes." > (emit-princ "<") > - (emit-indentation) > (emit-princ name) > (emit-princ-attributes attributes) > (emit-princ ">") > @@ -120,7 +119,6 @@ > "Emit the code required to print a close tag whose name is NAME." > (decf %yaclml-indentation-depth% 2) > (emit-princ "<") > - (emit-indentation) > (emit-princ "/" name ">")) > From mb at bese.it Thu Feb 24 09:19:45 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 24 Feb 2005 10:19:45 +0100 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: <871xb6sg5p.fsf@vera.springies.com> (Alan Shutko's message of "Wed, 23 Feb 2005 23:03:46 -0600") References: <871xb6sg5p.fsf@vera.springies.com> Message-ID: Alan Shutko writes: > yaclml should never emit indentation like this > < > li ... > > < > /li> and i thought i was soooo smart :( is
  • <... allowed? or am i forced to distinguish between block and inline elements? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Feb 24 09:30:05 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 24 Feb 2005 10:30:05 +0100 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: <421D97E0.6010308@tech.coop> (Drew Crampsie's message of "Thu, 24 Feb 2005 01:01:20 -0800") References: <871xb6sg5p.fsf@vera.springies.com> <421D97E0.6010308@tech.coop> Message-ID: Drew Crampsie writes: > The current darcs archive builds and runs using the lib directory from > arch with Alan's patch applied. > > the darcs archive does not contain a systems/ directory at all... i > have to add it and the run this script from inside the new dir : > > #!/bin/sh > ln -s ../ucw.asd ./ > ln -s ../libs/arnesi/arnesi.asd ./ > ln -s ../libs/cl-icu/cl-icu.asd ./ > ln -s ../libs/iterate/iterate.asd ./ > ln -s ../libs/rfc2388/rfc2388.asd ./ > ln -s ../libs/yaclml/yaclml.asd ./ > > can we get that added to darcs? i thought darcs didn't handle symlinks, if it does i'll add it, otherwise tell me what's the best solution. > My CLSQL<->UCW stuff is in the process of migrating to use the new > forms classes. once i have that finished i'll package it up and it can > be included in UCW propor if you so desire :) i definetly desire, though i think i'd like to merge it with the new presentation stuff. a clsql<->ucw bridge at this point would be a simple function which creates a presentation objcet from a clsql class, all i really need to do this is to see some code which walks clsql classe and exctracts the type, the cardinality (of joins) and distinguishes between key/base/virtual slots. > drewc From drewc at tech.coop Thu Feb 24 11:33:02 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 24 Feb 2005 03:33:02 -0800 Subject: [Bese-devel] araneida publish-directory fix. In-Reply-To: References: <871xb6sg5p.fsf@vera.springies.com> <421D97E0.6010308@tech.coop> Message-ID: <421DBB6E.10509@tech.coop> patch bundle suitable for use with darcs apply is attached, and i think i managed to send it to this list as well, which i will avoid in the future. drewc output from darcs diff applied to current darcs tree: diff -rN ucw-old/src/backend/araneida.lisp ucw-new/src/backend/araneida.lisp 69,71c69,71 < (araneida:install-handler (araneida:http-listener-handler (listener backend)) < (make-instance 'araneida:static-file-handler < :pathname directory-pathname) --- > (araneida:install-handler (araneida::http-listener-handler (listener backend)) > (make-instance 'araneida::static-file-handler > :pathname (namestring directory-pathname)) -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: araneida-publish-directory-fix URL: From mb at bese.it Thu Feb 24 10:44:16 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 24 Feb 2005 11:44:16 +0100 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: <871xb6sg5p.fsf@vera.springies.com> (Alan Shutko's message of "Wed, 23 Feb 2005 23:03:46 -0600") References: <871xb6sg5p.fsf@vera.springies.com> Message-ID: Alan Shutko writes: > yaclml should never emit indentation like this > < > li ... > > < > /li> > > It's not allowed by the XML spec. Probably is allowed by SGML, but if > we use yaclml to output xhtml, Mozilla refuses to render it correctly. actually this is a mistake on my part, i'd noticed and fixed this but forgot to commit it, then forget i'd made the change locally and deleted it :( -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Feb 24 10:53:07 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 24 Feb 2005 11:53:07 +0100 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: (Marco Baringer's message of "Thu, 24 Feb 2005 11:44:16 +0100") References: <871xb6sg5p.fsf@vera.springies.com> Message-ID: "Marco Baringer" writes: > Alan Shutko writes: > >> yaclml should never emit indentation like this >> < >> li ... >> >> < >> /li> >> >> It's not allowed by the XML spec. Probably is allowed by SGML, but if >> we use yaclml to output xhtml, Mozilla refuses to render it correctly. > > actually this is a mistake on my part, i'd noticed and fixed this but > forgot to commit it, then forget i'd made the change locally and > deleted it :( grab yaclml--dev--0.5--patch-20. it's still pretty ugly, but i don't know how we can do much better without tagging inline/block elements (and even that isn't a 100% solution). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From drewc at tech.coop Thu Feb 24 12:37:31 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 24 Feb 2005 04:37:31 -0800 Subject: [Bese-devel] araneida publish-directory fix. In-Reply-To: <421DBB6E.10509@tech.coop> References: <871xb6sg5p.fsf@vera.springies.com> <421D97E0.6010308@tech.coop> <421DBB6E.10509@tech.coop> Message-ID: <421DCA8B.50403@tech.coop> ok, that 70k patch was bogus, apologies to those on dialup. here is a diff to apply to after the diff below diff -rN ucw-old/src/backend/araneida.lisp ucw-new/src/backend/araneida.lisp 71c71 < :pathname (namestring directory-pathname)) --- > :pathname (namestring (merge-pathnames directory-pathname url-base))) i think that is the proper behavior. it works here anyway (for real this time). i will set up a public darcs repo and never again send a darcs bundle to the list :) drewc Drew Crampsie wrote: > > > patch bundle suitable for use with darcs apply is attached, and i think > i managed to send it to this list as well, which i will avoid in the > future. > > drewc > > output from darcs diff applied to current darcs tree: > > diff -rN ucw-old/src/backend/araneida.lisp > ucw-new/src/backend/araneida.lisp > 69,71c69,71 > < (araneida:install-handler (araneida:http-listener-handler (listener > backend)) > < (make-instance 'araneida:static-file-handler > < :pathname directory-pathname) > --- > > (araneida:install-handler (araneida::http-listener-handler > (listener backend)) > > (make-instance 'araneida::static-file-handler > > :pathname (namestring > directory-pathname)) > > > ------------------------------------------------------------------------ > > > New patches: > From itoshkov at gmail.com Thu Feb 24 09:31:06 2005 From: itoshkov at gmail.com (Ivan Toshkov) Date: Thu, 24 Feb 2005 11:31:06 +0200 Subject: [Bese-devel] yaclml: Should not indent before tag In-Reply-To: References: <871xb6sg5p.fsf@vera.springies.com> Message-ID: <7c23adaa05022401316d95287b@mail.gmail.com> On Thu, 24 Feb 2005 10:19:45 +0100, Marco Baringer wrote: > is
  • ><... > > allowed? or am i forced to distinguish between block and inline > elements? I think it is allowed, because you cat have attributes and they can be on a new line. E.g: -- Ivan From mb at bese.it Fri Feb 25 09:33:00 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 25 Feb 2005 10:33:00 +0100 Subject: [Bese-devel] Content-Type for uploaded files? In-Reply-To: ( =?iso-8859-1?q?Tiarn=E1n_=D3=2E_Corr=E1in's_message_of?= "Wed, 23 Feb 2005 12:24:32 +0000") References: Message-ID: ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > Hi-- > > how can I get the content-type of uploaded files? I have taken code > from the example application, viz.: you can't. we have a _very_ simple setup for nowwhich simply sets the corresponding parameter to the mime content. we'd need to create a simple object (mime-post-part or something) which could cantain the body and all the headers. i'll do it eventually, but you colud try editing ucw/src/backend/mod_lisp.lisp (look for the extract-multipart/form-data function) and see if you can come up with something you like. while we're on the subject, what do araneida and aserve do with mime data? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sat Feb 26 17:43:09 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Feb 2005 18:43:09 +0100 Subject: [Bese-devel] UCW 0.3.7 Message-ID: ucw 0.3.7 can be found: ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.7.tar.gz i'm gonna wait a couple days before announcing, if in the mean time someone wants to download this tarball and make sure it works (i've only done testing with openmcl on macos x (though i tried all three backends)). the big thing about this release is the new presentation stuff, as soon as we get a clsql<->presentation (or just _some_ ucw<->clsql bridge) i'm gonna put up 0.4.0 :) happy hacking, -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sat Feb 26 17:45:02 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Feb 2005 18:45:02 +0100 Subject: [Bese-devel] Content-Type for uploaded files? In-Reply-To: ( =?iso-8859-1?q?Tiarn=E1n_=D3=2E_Corr=E1in's_message_of?= "Wed, 23 Feb 2005 12:24:32 +0000") References: Message-ID: ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > Hi-- > > how can I get the content-type of uploaded files? I have taken code > from the example application, viz.: i'm going to be needing this real soon (before monday morning :)), so tommorow i'll implement it. got any preferences on the API? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From matley at muppetslab.org Sun Feb 27 11:00:45 2005 From: matley at muppetslab.org (Luigi Panzeri) Date: Sun, 27 Feb 2005 12:00:45 +0100 Subject: [Bese-devel] Problem using slime with sbcl and modlisp Message-ID: <87d5uml12a.fsf@matley.muppetslab.org> I have a problem using sbcl 0.8.19 slime(from CVS) and ucw(0.3.7 or dev). Maybe this is a problem related to slime+modlisp(2.41 from debian), not to ucw. But i dont manage to reply this slime problem without ucw. Step to reproduce my problem: start ucw with example app (with init.lisp) signal an error with example app choose Show backtrace try to use M-. somewhere my emacs/slime hangs Other two minor question: 1) with 0.3.7 i note that link for debugging/inspecting component are rendered, how can i hide these? 2) i tried to use araneida (because i have ever got minor but blocking problems with modlisp), but i dont get response with my configuration. But i have the same problem with araneida example. -- Luigi Panzeri Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film Evaluate Lisp: http://lisp.tech.coop/Evaluate%20Lisp From mb at bese.it Sun Feb 27 11:30:23 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Feb 2005 12:30:23 +0100 Subject: [Bese-devel] Problem using slime with sbcl and modlisp In-Reply-To: <87d5uml12a.fsf@matley.muppetslab.org> (Luigi Panzeri's message of "Sun, 27 Feb 2005 12:00:45 +0100") References: <87d5uml12a.fsf@matley.muppetslab.org> Message-ID: Luigi Panzeri writes: > I have a problem using sbcl 0.8.19 slime(from CVS) and ucw(0.3.7 or > dev). Maybe this is a problem related to slime+modlisp(2.41 from > debian), not to ucw. But i dont manage to reply this slime problem > without ucw. > > Step to reproduce my problem: > start ucw with example app (with init.lisp) > signal an error with example app > choose Show backtrace > try to use M-. somewhere > my emacs/slime hangs If you're using a single threaded lisp then the sldb buffer "blocks" the slime/emacs communication channel, it could be that M-. is not properly checking and is waiting for a response which can't come (deadlock). does the repl respond? (can you eval nil or something simple?) what happens if you chose a restart from the sldb menu? > Other two minor question: > 1) with 0.3.7 i note that link for debugging/inspecting component > are rendered, how can i hide these? (setf ucw:*inspect-components* nil) or use the admin app. this used to default to NIL and I changed it just recently, maybe i'll change it back. > 2) i tried to use araneida (because i have ever got minor but > blocking problems with modlisp), but i dont get response with my > configuration. But i have the same problem with araneida example. ? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Feb 27 11:42:08 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Feb 2005 12:42:08 +0100 Subject: [Bese-devel] passing form inputs directly to actions Message-ID: i discovered this 'trick' a while ago and i figured i'd share it: genrally all the inputs of a form are tied to slots in a component like so: (defcomponent my-form () ((input :accessor input))) (defmethod render-on ... ... ( (Marco Baringer's message of "Sun, 27 Feb 2005 12:42:08 +0100") References: Message-ID: "Marco Baringer" writes: > using this trick we get slightly cleaner componnets (no "place holder" > slots) at the expense of backtracking. more often the not this is a > good trade off. should this trick turn out to be actually usefull (instead of just one of my oddball ideas) it'd be nice to wrap it in a macro like so: (defmethod render-on ... (with-form ((username :type "text" ... other <:input args) (password :type "password" ... other <:input args)) (login username password) (<:table (<:tr (<:td "Username:") (<:td username)) (<:tr (<:td "Password:") (<:td password))))) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Feb 27 12:44:21 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Feb 2005 13:44:21 +0100 Subject: [Bese-devel] init.lisp and asdf Message-ID: I added some code to init.lisp which loads the various .asd files (ucw, arnesi, yaclml, iterate and rfc2388) if can't find them. i'm hoping this will alleviate some of the problems people have been having with asdf. even though i've added this i'm _not_ going to suggest (nor document) it as a valid Real World way to setup ucw. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Feb 27 18:43:29 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Feb 2005 19:43:29 +0100 Subject: [Bese-devel] Content-Type for uploaded files? In-Reply-To: (Marco Baringer's message of "Sat, 26 Feb 2005 18:45:02 +0100") References: Message-ID: "Marco Baringer" writes: > ocorrain at yahoo.com (Tiarn?n ? Corr?in) writes: > >> Hi-- >> >> how can I get the content-type of uploaded files? I have taken code >> from the example application, viz.: > > i'm going to be needing this real soon (before monday morning :)), so > tommorow i'll implement it. got any preferences on the API? i take that back, i was able to get by just fine without it. (so now you're free to do it for me :)). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mange at freemail.hu Sun Feb 27 18:31:57 2005 From: mange at freemail.hu (Magnus Henoch) Date: Sun, 27 Feb 2005 19:31:57 +0100 Subject: [Bese-devel] UCW 0.3.7 In-Reply-To: (Marco Baringer's message of "Sat, 26 Feb 2005 18:43:09 +0100") References: Message-ID: <87d5ulua5e.fsf@zemdatav.stor.no-ip.org> "Marco Baringer" writes: > ucw 0.3.7 can be found: > > ftp://ftp.common-lisp.net/pub/project/ucw/ucw_0.3.7.tar.gz > > i'm gonna wait a couple days before announcing, if in the mean time > someone wants to download this tarball and make sure it works (i've > only done testing with openmcl on macos x (though i tried all three > backends)). I tried it with CLISP 2.33.2 on OpenBSD/i386, and got this error: ;; Loading file /tmp/ucw_0.3.7/libs/arnesi/src/mopp.lisp ... WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:FORWARD-REFERENCED-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EQL-SPECIALIZER WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ADD-DIRECT-METHOD WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:READER-METHOD-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:REMOVE-DEPENDENT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-MAKUNBOUND-USING-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-SLOTS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-TYPE WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EXTRACT-LAMBDA-LIST WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-INSTANCE-ACCESS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-METHOD-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-DIRECT-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:REMOVE-DIRECT-METHOD WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-LOCATION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-INITFORM WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EXTRACT-SPECIALIZER-NAMES WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-DISCRIMINATING-FUNCTION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SPECIALIZER WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ADD-DIRECT-SUBCLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:METAOBJECT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-INITFUNCTION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-NAME WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:METHOD-LAMBDA-LIST WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-WRITERS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:DIRECT-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SPECIALIZER-DIRECT-GENERIC-FUNCTIONS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:VALIDATE-SUPERCLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ACCESSOR-METHOD-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:FUNCALLABLE-STANDARD-OBJECT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-DEFAULT-INITARGS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ENSURE-CLASS-USING-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:METHOD-GENERIC-FUNCTION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SET-FUNCALLABLE-INSTANCE-FUNCTION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:MAP-DEPENDENTS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:METHOD-SPECIALIZERS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ENSURE-GENERIC-FUNCTION-USING-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-METHOD-COMBINATION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-VALUE-USING-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-BOUNDP-USING-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-METHODS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-APPLICABLE-METHODS-USING-CLASSES WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EFFECTIVE-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-EFFECTIVE-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:COMPUTE-CLASS-PRECEDENCE-LIST WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-READERS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:REMOVE-DIRECT-SUBCLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-DOCUMENTATION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:ADD-DEPENDENT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-DECLARATIONS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-READER-METHOD WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-INITARGS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:FUNCALLABLE-STANDARD-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:UPDATE-DEPENDENT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SLOT-DEFINITION-ALLOCATION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-LAMBDA-LIST WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:DIRECT-SLOT-DEFINITION-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:FUNCALLABLE-STANDARD-INSTANCE-ACCESS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EQL-SPECIALIZER-OBJECT WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:MAKE-METHOD-LAMBDA WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-WRITER-METHOD WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:WRITER-METHOD-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-EFFECTIVE-SLOT-DEFINITION WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:EFFECTIVE-SLOT-DEFINITION-CLASS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:SPECIALIZER-DIRECT-METHODS WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:GENERIC-FUNCTION-NAME WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:INTERN-EQL-SPECIALIZER WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:STANDARD-ACCESSOR-METHOD WARNING: Unimplemented MOP symbol: IT.BESE.ARNESI.MOPP:METHOD-FUNCTION *** - (DEFCLASS %META-CLASS): superclass # should be of class STANDARD-CLASS The following restarts are available: RETRY :R1 Retry performing # on #. ACCEPT :R2 Continue, treating # on # as having been successful. Break 1 IT.BESE.ARNESI.MOPP%INTERNALS[3]> Is that a bug in UCW or CLISP? Magnus From ats at acm.org Fri Feb 25 22:56:29 2005 From: ats at acm.org (Alan Shutko) Date: Fri, 25 Feb 2005 16:56:29 -0600 Subject: [Bese-devel] Fixed a couple minor presentation typos Message-ID: <87wtswuu3m.fsf@vera.springies.com> I checked in some minor typos in the presentation code to my archive. I haven't finished reading it through yet, but it looks very neat! -- Alan Shutko - I am the rocks. Failures want pleasing methods, successes want pleasing results.