From mb at bese.it Thu Sep 1 06:26:05 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 01 Sep 2005 08:26:05 +0200 Subject: [Bese-devel] small patch suggestion In-Reply-To: <87psrurw4l.fsf@flarge.here> (Friedrich Dominicus's message of "Wed, 31 Aug 2005 16:58:34 +0200") References: <87psrurw4l.fsf@flarge.here> Message-ID: Friedrich Dominicus writes: > After Drew has put me in the ground (to some extend he's right) here's > a small addition to form.lisp. I'm not sure if it's good idea, or if > it would be better to derive another component, but I feel if things > are available in standard HTML they should be easy accessible to > Common Lisp also i agree. > I guess it's clear what the patch is supposed to do. It should limit > the entry field length, I replaces the nil :initform to size because I > do not think that size could be anything else but a number. I tried > this patch here and it "seems" to be ok. So feel free to ignore or > apply this patch Marco. The numbers are arbitrary, I do not know if > there is a useful default for it. applied. thanks. maybe the default should just be nil (so the attribute won't get shown) and we let the browesr chose? > BTW. I'm quite happy that UCW exists, but I feld and sometimes feel > lost in it's usage. for what it's worth, me too :) -- -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 frido at q-software-solutions.de Thu Sep 1 08:09:12 2005 From: frido at q-software-solutions.de (Friedrich Dominicus) Date: Thu, 01 Sep 2005 10:09:12 +0200 Subject: [Bese-devel] another extension Message-ID: <87ll2hyztj.fsf@flarge.here> Well kind of and not addition without another question. here's an addition to form.lisp (defclass attributed-text-field (text-field) ((css-class :accessor css-class :initarg :css-class :initform "ucw-text-field") (editable :accessor editable :initarg :editable :initform t)) (:metaclass standard-component-class)) (defmethod render-on ((res response) (field attributed-text-field)) (if (editable field) (
100
References: <20050830055905.GA15494@fractaldragon.net> Message-ID: <8f835a8e05090204333f327cab@mail.gmail.com> 2005/8/30, Tim Lavoie : > Hi all, > > I've got a window component defined, where there are pieces which I > would like to use to control other components, or the top-level > window. [note: having written this, i realize most of this issue have already been answered and it may just seem obvious : please consider this more like a "is this the right way to do it ?" question :) ] Hi, I think i will soon share Tim Lavoie's need here and i thought i would just take this opportunity to ask for your opinion :) Just let me explain first what i want to achieve to make sure we're speaking of the same kind of problem. My main window component is a tabbed pane. Among the panes it holds, the first one of interest is just rendering a list of "actions" (my terminology here, not ucw's), some of which being "project actions" with an associated project. "project actions" each are rendered as two links. Roughly, it looks like this : (loop for project in (all-projects) for action (project.next-action project) (<:li ( Hi All, I'm fairly new to both Lisp and Smalltalk (less than 6 months experience in each). The reason for my interest in these is because I feel, from what I have been reading, that both Seaside and UCW offer more practical solutions to the real-life problems I need to solve for developing web-based custom apps. I have to say I have spent more time learning about Smalltalk/Seaside than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW seem to provide a better roadmap and more stable platform. Then, after googling a bit more, I came across certain articles that point out some differences between Lisp and Scheme. Particularly on the topic of continuations and the fact that these are native to Scheme vs to both Smalltalk and Lisp. Then I wondered, if what I'm looking for is better support for continuation-based development, should I be looking into Scheme? Before I spent much time looking into Scheme, I decided to quickly glance at Scheme's support for some of the minimum requirements I have for web app development. For example, I need to access MySQL and/ or Postgres databases as well as the easy manipulation (mainly generation) of PDF and CSV files. Also, I would like to start using object databases more than relational databases. I didn't find much support for these in Scheme. However, I did come across some projects for both Lisp and Smalltalk to support my needs, which brought me back to wanting to learn more about UCW and Seaside. At this point, I'm wondering if there is anyone in this list that can shed some light into clearing up where I should be going. I've always been fascinated with Lisp, but never spent enough time to learn it. Now that I have some time, I'd like to know where I should be investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know if I should really rule out Scheme and may be someone could also comment on it. Any information you can provide will really help, even if you can just point me to where I can read more and learn more to make a more informed decision. Thank you in advance, Waldo From sketerpot at gmail.com Sat Sep 3 15:21:02 2005 From: sketerpot at gmail.com (Peter Scott) Date: Sat, 3 Sep 2005 10:21:02 -0500 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> Message-ID: <7e267a9205090308213b3060bf@mail.gmail.com> On 9/3/05, Waldo Rubinstein wrote: > I'm fairly new to both Lisp and Smalltalk (less than 6 months > experience in each). The reason for my interest in these is because I > feel, from what I have been reading, that both Seaside and UCW offer > more practical solutions to the real-life problems I need to solve > for developing web-based custom apps. For some types of web apps, continuation-based is definitely the way to go. > I have to say I have spent more time learning about Smalltalk/Seaside > than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW > seem to provide a better roadmap and more stable platform. UCW is still very unstable, with major parts being ripped out and replaced as we speak. Common Lisp is very stable, with a wide selection of good compilers, both commercial and open-source. UCW is a pleasure to work with, for what it's worth---but I haven't checked out Seaside. > Then, after googling a bit more, I came across certain articles that > point out some differences between Lisp and Scheme. Particularly on > the topic of continuations and the fact that these are native to > Scheme vs to both Smalltalk and Lisp. Then I wondered, if what I'm > looking for is better support for continuation-based development, > should I be looking into Scheme? Scheme does have nice native support for continuations, while Common Lisp has some features that make CPS transformations inherently difficult. UCW's old CPS transformer worked pretty well, but it had a number of nasty and insurmountable problems. Marco is working on (or has added, I'm not sure which) an interpreter for a CL-like language which has proper serializable continuations and has removed CL's features that conflict with continuations, like UNWIND-PROTECT. This promises a significant improvement in things Just Working properly, at the cost of one or two orders of magnitude slowdown in the interpreted code. The interpreted code isn't a bottleneck, so don't worry about it. > Before I spent much time looking into Scheme, I decided to quickly > glance at Scheme's support for some of the minimum requirements I > have for web app development. For example, I need to access MySQL and/ > or Postgres databases as well as the easy manipulation (mainly > generation) of PDF and CSV files. Also, I would like to start using > object databases more than relational databases. I didn't find much > support for these in Scheme. However, I did come across some projects > for both Lisp and Smalltalk to support my needs, which brought me > back to wanting to learn more about UCW and Seaside. I can't speak for scheme, but CL has: CLSQL: a good interface to a number of SQL databases. I'm particularly fond of the reader syntax that prevents SQL-injection problems, among other inconveniences. There's also an object-relational mapping, but I haven't used it so I can't opine on it. fare-csv: you can import and export CSV in a straightforward way. I found some of the code in this one to be a little amusing, but it certainly works well enough. CL-PDF and cl-typesetting: make PDF files easily, and do so with nice typesetting. > At this point, I'm wondering if there is anyone in this list that can > shed some light into clearing up where I should be going. I've always > been fascinated with Lisp, but never spent enough time to learn it. > Now that I have some time, I'd like to know where I should be > investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know > if I should really rule out Scheme and may be someone could also > comment on it. Unless you find some big difference in libraries or tools (I'm a big fan of CL's SLIME IDE), the perennial arguments about CL vs. Scheme are relevant. You might also try reading some of the articles linked to in . They aren't directly related to your question, but they may be useful. -Peter From mb at bese.it Sat Sep 3 16:03:09 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 03 Sep 2005 18:03:09 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <7e267a9205090308213b3060bf@mail.gmail.com> (Peter Scott's message of "Sat, 3 Sep 2005 10:21:02 -0500") References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <7e267a9205090308213b3060bf@mail.gmail.com> Message-ID: Peter Scott writes: >> I have to say I have spent more time learning about Smalltalk/Seaside >> than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW >> seem to provide a better roadmap and more stable platform. [replying to waldo] where did you get the impression that ucw is a more stable platform than seaside? (this is just idle curiosity on my part). if nothing else seaside has a much larger and more active user community (its also been around a lot longer). > UCW is still very unstable, with major parts being ripped out and > replaced as we speak. Common Lisp is very stable, with a wide > selection of good compilers, both commercial and open-source. UCW is a > pleasure to work with, for what it's worth---but I haven't checked out > Seaside. just to clarify: i agree the ucw's api is unstable, and i do rip out and rewrite major parts whenever i feel the need, but it does work and is being used in production environments. > Marco is working on (or has added, I'm not sure which) an interpreter > for a CL-like language which has proper serializable continuations and > has removed CL's features that conflict with continuations, like > UNWIND-PROTECT. This promises a significant improvement in things Just > Working properly, at the cost of one or two orders of magnitude > slowdown in the interpreted code. The interpreted code isn't a > bottleneck, so don't worry about it. the interpreter is in and does everything the old cps transformer did and then some. support for serializable continuations is in the works. > I can't speak for scheme, but CL has: > > CLSQL: a good interface to a number of SQL databases. I'm particularly > fond of the reader syntax that prevents SQL-injection problems, among > other inconveniences. There's also an object-relational mapping, but I > haven't used it so I can't opine on it. > > fare-csv: you can import and export CSV in a straightforward way. I > found some of the code in this one to be a little amusing, but it > certainly works well enough. for what it's worth arnesi also contains a trivial csv reader/writer. > CL-PDF and cl-typesetting: make PDF files easily, and do so with nice > typesetting. i'd be very surpsied if plt or bigloo scheme did not offer equivalent libraries. >> At this point, I'm wondering if there is anyone in this list that can >> shed some light into clearing up where I should be going. I've always >> been fascinated with Lisp, but never spent enough time to learn it. >> Now that I have some time, I'd like to know where I should be >> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know >> if I should really rule out Scheme and may be someone could also >> comment on it. there's a huge difference between scheme, smalltalk and common lisp. if you have the time i'd suggest becoming proficent in all three, i don't feel like suggesting one over the other. personally i'm a big fan of smalltalk, but (obviously) i'm a far bigger fan of common lisp. -- -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 a_bakic at yahoo.com Sat Sep 3 18:28:15 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Sat, 3 Sep 2005 11:28:15 -0700 (PDT) Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: Message-ID: <20050903182815.29721.qmail@web40628.mail.yahoo.com> > > Working properly, at the cost of one or two orders of magnitude > > slowdown in the interpreted code. The interpreted code isn't a > > bottleneck, so don't worry about it. I suppose not everything is interpreted. Is it just code wrapped by with-call/cc, defaction and defmethod/cc, or is there more? Any suggestions on how to structure code to know easily which chunks of code are interpreted and which ones are compiled? Thanks, Alex ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs From a_bakic at yahoo.com Sat Sep 3 19:14:07 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Sat, 3 Sep 2005 12:14:07 -0700 (PDT) Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <20050903182815.29721.qmail@web40628.mail.yahoo.com> Message-ID: <20050903191407.35635.qmail@web40628.mail.yahoo.com> > Is it just code wrapped by... I meant to say, I suppose the CPS transformer knows what code should be transformed and what code is 'simple' so as to be called directly (and compiled), so it closes over code wrapped by arnesi macros. I know you've been using sucla to rewrite some of CL so that, I suppose, it can be used with continuations (and interpreted). Is there more to this than my by-the-book understanding? (I hope to find time to read the arnesi code eventually...) Thanks, Alex ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs From pjscott at iastate.edu Sat Sep 3 20:04:04 2005 From: pjscott at iastate.edu (Peter Scott) Date: Sat, 3 Sep 2005 15:04:04 -0500 Subject: [Bese-devel] darcs patch: Made file-system-generator a subclass of tal-generator. Message-ID: <200509032004.j83K447C019474@co1331-8.ece.iastate.edu> Sat Sep 3 14:15:26 CDT 2005 Peter Scott * Made file-system-generator a subclass of tal-generator. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 1587 bytes Desc: A darcs patch for your repository! URL: From sketerpot at gmail.com Sat Sep 3 20:37:11 2005 From: sketerpot at gmail.com (Peter Scott) Date: Sat, 3 Sep 2005 15:37:11 -0500 Subject: [Bese-devel] darcs patch: Made file-system-generator a subclass of tal-generator. In-Reply-To: <200509032004.j83K447C019474@co1331-8.ece.iastate.edu> References: <200509032004.j83K447C019474@co1331-8.ece.iastate.edu> Message-ID: <7e267a92050903133751926847@mail.gmail.com> On 9/3/05, Peter Scott wrote: > Sat Sep 3 14:15:26 CDT 2005 Peter Scott > * Made file-system-generator a subclass of tal-generator. Just a note to elaborate: I think that file-system-generator was supposed to be a subclass of tal-generator, but you forgot and it was never an issue. If I have this wrong, and you just have an abstract base class there for some reason I have been unable to divine, forget this patch. -Peter From bobstopper at bobturf.org Sun Sep 4 02:08:54 2005 From: bobstopper at bobturf.org (Robert Marlow) Date: Sun, 04 Sep 2005 10:08:54 +0800 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> Message-ID: <87psrpd1op.wl%bobstopper@bobturf.org> Just adding to what's already been said to expand on Scheme's native support for continuations. Scheme's interesting not just for its native support for continuations but also for its tail-call optimisation. This can mean considerable time and space savings during heavy continuation use compared to a language lacking tail-call optimisation since it recognises that many of the extra function calls of continuation passing style need never return. Quite a number of common lisp implementations do support tail-call optimisation (usually after you've made some declaims) so it may not even be an issue with UCW with these implementations, assuming UCW's rewrite rules take advantage of tail-calls. Furthermore, for most web applications the time and space loss is small enough to be negligible compared to getting all the other benefits of common lisp. It may be more of a problem for web applications needing many, many calls and answers but such web applications would be rather uncommon on the web (pardon the pun). I'm just talking from my general understanding of continuations though, so Marco or someone can probably correct me on some points. At Sat, 3 Sep 2005 04:21:47 -0400, Waldo Rubinstein wrote: > > Hi All, > > I'm fairly new to both Lisp and Smalltalk (less than 6 months > experience in each). The reason for my interest in these is because I > feel, from what I have been reading, that both Seaside and UCW offer > more practical solutions to the real-life problems I need to solve > for developing web-based custom apps. > > I have to say I have spent more time learning about Smalltalk/Seaside > than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW > seem to provide a better roadmap and more stable platform. > > Then, after googling a bit more, I came across certain articles that > point out some differences between Lisp and Scheme. Particularly on > the topic of continuations and the fact that these are native to > Scheme vs to both Smalltalk and Lisp. Then I wondered, if what I'm > looking for is better support for continuation-based development, > should I be looking into Scheme? > > Before I spent much time looking into Scheme, I decided to quickly > glance at Scheme's support for some of the minimum requirements I > have for web app development. For example, I need to access MySQL and/ > or Postgres databases as well as the easy manipulation (mainly > generation) of PDF and CSV files. Also, I would like to start using > object databases more than relational databases. I didn't find much > support for these in Scheme. However, I did come across some projects > for both Lisp and Smalltalk to support my needs, which brought me > back to wanting to learn more about UCW and Seaside. > > At this point, I'm wondering if there is anyone in this list that can > shed some light into clearing up where I should be going. I've always > been fascinated with Lisp, but never spent enough time to learn it. > Now that I have some time, I'd like to know where I should be > investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know > if I should really rule out Scheme and may be someone could also > comment on it. > > Any information you can provide will really help, even if you can > just point me to where I can read more and learn more to make a more > informed decision. > > Thank you in advance, > Waldo > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > From waldo at trianet.net Sun Sep 4 04:02:16 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sun, 4 Sep 2005 00:02:16 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <7e267a9205090308213b3060bf@mail.gmail.com> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <7e267a9205090308213b3060bf@mail.gmail.com> Message-ID: <0FE61F3B-F9A1-46F7-9AAB-14D46B846BF2@trianet.net> On Sep 3, 2005, at 11:21 AM, Peter Scott wrote: > On 9/3/05, Waldo Rubinstein wrote: > >> I'm fairly new to both Lisp and Smalltalk (less than 6 months >> experience in each). The reason for my interest in these is because I >> feel, from what I have been reading, that both Seaside and UCW offer >> more practical solutions to the real-life problems I need to solve >> for developing web-based custom apps. >> > > For some types of web apps, continuation-based is definitely the > way to go. I'm also fairly new to the theory behind continuations and I definitely agree. > > >> I have to say I have spent more time learning about Smalltalk/Seaside >> than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW >> seem to provide a better roadmap and more stable platform. >> > > UCW is still very unstable, with major parts being ripped out and > replaced as we speak. Common Lisp is very stable, with a wide > selection of good compilers, both commercial and open-source. UCW is a > pleasure to work with, for what it's worth---but I haven't checked out > Seaside. You may have phrased it better than me. CL is indeed very stable. Because I so new to UCW, I haven't had the chance to realize how "unstable" UCW may be. I didn't get the impression it's unstable. It may be that it's going through aggressive changes, but I wouldn't necessarily say it's unstable. I would say that Seaside is also evolving rapidly. However, I believe the combination of List/UCW offers a more solid roadmap. It could be more because of Lisp's "ability" to allowing developers develop better software. >> Before I spent much time looking into Scheme, I decided to quickly >> glance at Scheme's support for some of the minimum requirements I >> have for web app development. For example, I need to access MySQL >> and/ >> or Postgres databases as well as the easy manipulation (mainly >> generation) of PDF and CSV files. Also, I would like to start using >> object databases more than relational databases. I didn't find much >> support for these in Scheme. However, I did come across some projects >> for both Lisp and Smalltalk to support my needs, which brought me >> back to wanting to learn more about UCW and Seaside. >> > > I can't speak for scheme, but CL has: > > CLSQL: a good interface to a number of SQL databases. I'm particularly > fond of the reader syntax that prevents SQL-injection problems, among > other inconveniences. There's also an object-relational mapping, but I > haven't used it so I can't opine on it. > > fare-csv: you can import and export CSV in a straightforward way. I > found some of the code in this one to be a little amusing, but it > certainly works well enough. Wasn't aware of this one, although at first glance it looks like it's more designed for reading than for writing. > > CL-PDF and cl-typesetting: make PDF files easily, and do so with nice > typesetting. > > >> At this point, I'm wondering if there is anyone in this list that can >> shed some light into clearing up where I should be going. I've always >> been fascinated with Lisp, but never spent enough time to learn it. >> Now that I have some time, I'd like to know where I should be >> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know >> if I should really rule out Scheme and may be someone could also >> comment on it. >> > > Unless you find some big difference in libraries or tools (I'm a big > fan of CL's SLIME IDE), the perennial arguments about CL vs. Scheme > are relevant. > > You might also try reading some of the articles linked to in > . They aren't directly related > to your question, but they may be useful. > > -Peter > Thanks for the pointers. I spent some time reading the articles in that URL and many of its links. I still found no absolute answer. However, it has enlightened me in a way to strengthen my ideas that Lisp may be better suited for me than Scheme. Thanks, Waldo From waldo at trianet.net Sun Sep 4 04:18:50 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sun, 4 Sep 2005 00:18:50 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <7e267a9205090308213b3060bf@mail.gmail.com> Message-ID: <2917E516-9A20-4EE0-8BF2-A1A5F2B3385A@trianet.net> On Sep 3, 2005, at 12:03 PM, Marco Baringer wrote: > Peter Scott writes: > > >>> I have to say I have spent more time learning about Smalltalk/ >>> Seaside >>> than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW >>> seem to provide a better roadmap and more stable platform. >>> > > [replying to waldo] where did you get the impression that ucw is a > more stable platform than seaside? (this is just idle curiosity on my > part). > > if nothing else seaside has a much larger and more active user > community (its also been around a lot longer). I tend to agree with you on this one. I do see more "traffic" on the Seaside list and obviously the higher version numbers. But I was referring to the overall combination of Smalltalk/Seaside and Lisp/ UCW. I enjoyed learning about Smalltalk and definitely learned many new things about programming in general. There are some general philosophies in the Smalltalk world that I'm not so satisfied with. I don't want to turn this into a Lisp vs Smalltalk discussion. I think both languages have a huge amount of merits. It's just that after learning a bit more about Lisp, I think the development lifecycle of production applications is better handled in Lisp. BTW, I loved Paul Graham's article "Lisp in Web-Based Applications". It definitely sold me more to the idea. > > >> UCW is still very unstable, with major parts being ripped out and >> replaced as we speak. Common Lisp is very stable, with a wide >> selection of good compilers, both commercial and open-source. UCW >> is a >> pleasure to work with, for what it's worth---but I haven't checked >> out >> Seaside. >> > > just to clarify: i agree the ucw's api is unstable, and i do rip out > and rewrite major parts whenever i feel the need, but it does work and > is being used in production environments. That's the feeling I got. Like I said before, I didn't get the impression it was stable. BTW, both videos (the UCW Hello World tutorial and the one about SLIME) are great. They simply just motivated me that much more into looking deeper at Lisp, UCW, SLIME, and others. > > >> Marco is working on (or has added, I'm not sure which) an interpreter >> for a CL-like language which has proper serializable continuations >> and >> has removed CL's features that conflict with continuations, like >> UNWIND-PROTECT. This promises a significant improvement in things >> Just >> Working properly, at the cost of one or two orders of magnitude >> slowdown in the interpreted code. The interpreted code isn't a >> bottleneck, so don't worry about it. >> > > the interpreter is in and does everything the old cps transformer did > and then some. support for serializable continuations is in the works. BTW, I couldn't find on the web site release notes or version changes. Is there such a thing posted? > > >> I can't speak for scheme, but CL has: >> >> CLSQL: a good interface to a number of SQL databases. I'm >> particularly >> fond of the reader syntax that prevents SQL-injection problems, among >> other inconveniences. There's also an object-relational mapping, >> but I >> haven't used it so I can't opine on it. >> >> fare-csv: you can import and export CSV in a straightforward way. I >> found some of the code in this one to be a little amusing, but it >> certainly works well enough. >> > > for what it's worth arnesi also contains a trivial csv reader/writer. > > >> CL-PDF and cl-typesetting: make PDF files easily, and do so with nice >> typesetting. >> > > i'd be very surpsied if plt or bigloo scheme did not offer equivalent > libraries. I spent a bit of time in their sites and couldn't find all of my needs. Maybe I didn't spend enough time. Maybe they just don't have that support. > > >>> At this point, I'm wondering if there is anyone in this list that >>> can >>> shed some light into clearing up where I should be going. I've >>> always >>> been fascinated with Lisp, but never spent enough time to learn it. >>> Now that I have some time, I'd like to know where I should be >>> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't >>> know >>> if I should really rule out Scheme and may be someone could also >>> comment on it. >>> > > there's a huge difference between scheme, smalltalk and common > lisp. if you have the time i'd suggest becoming proficent in all > three, i don't feel like suggesting one over the other. > > personally i'm a big fan of smalltalk, but (obviously) i'm a far > bigger fan of common lisp. Well, I do have some time, but not that much time :) I would love to become proficient in all of them, but because I know that's not possible in the immediate future, I want to make the best of my immediate time. I also like Smalltalk alot. I've mostly used Squeak but feel it's a little slow and still get the feeling that it's evolving too much. I would have anticipated (and to some degree this goes to Lisp as well) that after 30 years or so, there would be more mature and stable platforms. > > -- > -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 > Thanks, Waldo From mb at bese.it Sun Sep 4 09:49:55 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 04 Sep 2005 11:49:55 +0200 Subject: [Bese-devel] darcs patch: Made file-system-generator a subclass of tal-generator. In-Reply-To: <200509032004.j83K447C019474@co1331-8.ece.iastate.edu> (Peter Scott's message of "Sat, 3 Sep 2005 15:04:04 -0500") References: <200509032004.j83K447C019474@co1331-8.ece.iastate.edu> Message-ID: Peter Scott writes: > Sat Sep 3 14:15:26 CDT 2005 Peter Scott > * Made file-system-generator a subclass of tal-generator. applied. 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 mb at bese.it Sun Sep 4 09:53:26 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 04 Sep 2005 11:53:26 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) References: <20050903182815.29721.qmail@web40628.mail.yahoo.com> Message-ID: Aleksandar Bakic writes: >> > Working properly, at the cost of one or two orders of magnitude >> > slowdown in the interpreted code. The interpreted code isn't a >> > bottleneck, so don't worry about it. > > I suppose not everything is interpreted. Is it just code wrapped by > with-call/cc, defaction and defmethod/cc, or is there more? Any suggestions on > how to structure code to know easily which chunks of code are interpreted and > which ones are compiled? anything within the body of a with-call/cc is interpreted, this includes any macro which wraps with-call/cc, such as: defun/cc defmethod/cc defaction defentry-point here's a half backed benchmark (note that this stresses the speed of function calls, which in the interpreter are known to be slow): ARNESI> (defun fib (x) (if (< x 2) 1 (+ (fib (- x 1)) (fib (- x 2))))) FIB ARNESI> (time (fib 30)) (FIB 30) took 386 milliseconds (0.386 seconds) to run. Of that, 280 milliseconds (0.280 seconds) were spent in user mode 0 milliseconds (0.000 seconds) were spent in system mode 106 milliseconds (0.106 seconds) were spent executing other OS processes. 1346269 ARNESI> (defun/cc fib/cc (x) (if (< x 2) 1 (+ (fib/cc (- x 1)) (fib/cc (- x 2))))) FIB/CC ARNESI> (time (with-call/cc (fib/cc 30))) (WITH-CALL/CC (FIB/CC 30)) took 510,689 milliseconds (510.689 seconds) to run. Of that, 214,840 milliseconds (214.840 seconds) were spent in user mode 37,720 milliseconds (37.720 seconds) were spent in system mode 258,129 milliseconds (258.129 seconds) were spent executing other OS processes. 90,336 milliseconds (90.336 seconds) was spent in GC. 2,940,249,976 bytes of memory allocated. 1346269 ARNESI> so it took 510 seconds vs 0.386 (~ 1300 times slower). the real cause though is the difference in memory use: 2,940,249,976 bytes (2.73 GB) vs. 0. that said, fib doesn't need call/cc, let's compare our fib with this: ARNESI> (time (with-call/cc (fib 30))) (WITH-CALL/CC (FIB 30)) took 345 milliseconds (0.345 seconds) to run. Of that, 260 milliseconds (0.260 seconds) were spent in user mode 0 milliseconds (0.000 seconds) were spent in system mode 85 milliseconds (0.085 seconds) were spent executing other OS processes. 216 bytes of memory allocated. 1346269 ARNESI> so if you have a piece of code you know to be slow just move it out into a seperate function and call that (technically the intepreter could do this enough, but it's just not worth the effort). -- -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 Sep 4 09:58:44 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 04 Sep 2005 11:58:44 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <20050903191407.35635.qmail@web40628.mail.yahoo.com> (Aleksandar Bakic's message of "Sat, 3 Sep 2005 12:14:07 -0700 (PDT)") References: <20050903191407.35635.qmail@web40628.mail.yahoo.com> Message-ID: Aleksandar Bakic writes: >> Is it just code wrapped by... > > I meant to say, I suppose the CPS transformer knows what code should be > transformed and what code is 'simple' so as to be called directly (and > compiled), so it closes over code wrapped by arnesi macros. I know you've been > using sucla to rewrite some of CL so that, I suppose, it can be used with > continuations (and interpreted). Is there more to this than my by-the-book > understanding? (I hope to find time to read the arnesi code eventually...) the transformer used to do that, it would check if a particular form needed cps transforming and if not just leave it alone. however the interpreter doesn't do that atm (and this would create a few problems with lexicals which i don't want to get into). the reason for using sacla is thta i need (fsvo need) to be able to do this: (mapcar (lambda (object) (call 'check-if-object-required)) objects) and the only way to make this work is to have the interpreter know how mapcar is implemented. once you add mapcar then why not remove-if? onec you add remove-if why not find? ... -- -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 pjscott at iastate.edu Sun Sep 4 19:46:05 2005 From: pjscott at iastate.edu (Peter Scott) Date: Sun, 4 Sep 2005 14:46:05 -0500 Subject: [Bese-devel] darcs patch: Removed "ignore" declaration for two variables which a... Message-ID: <200509041946.j84Jk5jW001063@co1331-8.ece.iastate.edu> Sun Sep 4 14:41:51 CDT 2005 Peter Scott * Removed "ignore" declaration for two variables which are used. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 15532 bytes Desc: A darcs patch for your repository! URL: From mb at bese.it Sun Sep 4 20:46:45 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 04 Sep 2005 22:46:45 +0200 Subject: [Bese-devel] darcs patch: Removed "ignore" declaration for two variables which a... In-Reply-To: <200509041946.j84Jk5jW001063@co1331-8.ece.iastate.edu> (Peter Scott's message of "Sun, 4 Sep 2005 14:46:05 -0500") References: <200509041946.j84Jk5jW001063@co1331-8.ece.iastate.edu> Message-ID: Peter Scott writes: > Sun Sep 4 14:41:51 CDT 2005 Peter Scott > * Removed "ignore" declaration for two variables which are used. applied. 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 frido at q-software-solutions.de Mon Sep 5 07:28:44 2005 From: frido at q-software-solutions.de (Friedrich Dominicus) Date: Mon, 05 Sep 2005 09:28:44 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> (Waldo Rubinstein's message of "Sat, 3 Sep 2005 04:21:47 -0400") References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> Message-ID: <87u0h0t1lf.fsf@flarge.here> Waldo Rubinstein writes: > Before I spent much time looking into Scheme, I decided to quickly > glance at Scheme's support for some of the minimum requirements I > have for web app development. For example, I need to access MySQL and/ > or Postgres databases as well as the easy manipulation (mainly > generation) of PDF and CSV files. Also, I would like to start using > object databases more than relational databases. I didn't find much > support for these in Scheme. However, I did come across some projects > for both Lisp and Smalltalk to support my needs, which brought me > back to wanting to learn more about UCW and Seaside. Well I just can tell you my experience, other will disagree. However here we go. I think Smalltalk/Seaside is easier to understand and apply, have you checked the Squeak Seaside examples? I found them amazing expecially the browser, however I did use CL and UCW for other reasons. I do not more about handling Common Lisp programs and how to run them "without" gui, then I know about Smalltalks. I assume there is a way to run Squeak in a sort of console, but I do not know. The other reason for me to use CL is cl-sql. It gives me persitence nearly for free. That is "a good thing" (TM;-). I just read about ORDB wrappers but did not have used them. Me seems that "generating" code instead of writing code is better supported in Common Lisp, that's another reasoin I choose to go the CL, but I found ruby on rails quite amazing and I found that there is much more in place for "application development", I were in contact with Drew on Lisp-on-lines, but he told me I'm nuts to expect his software to work out-of-the-box. Ruby is a Smalltalk with a "different syntax, but if you know Smalltalk you can learn ruby in no time really. There exists book "Agile web development with rails" or the like which explains rails very well. If I'd start from scratch I probably would choose rails. However there do exist something like a web-development system from the developers of PLT Scheme. I _guess_ that's one base example of applying continuations in web programming. http://download.plt-scheme.org/doc/299.200/html/web-server/ The PLT people do have a lot of documentation and their Scheme is "nearly" a Common Lisp. > > At this point, I'm wondering if there is anyone in this list that can > shed some light into clearing up where I should be going. I've always > been fascinated with Lisp, but never spent enough time to learn it. > Now that I have some time, I'd like to know where I should be > investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know > if I should really rule out Scheme and may be someone could also > comment on it. Well IMHO it's worth using Common Lisp, however you better have some "hacker-mentality". A lot of Lisp Software is available but documentation is often sparse. Counterexamples are stuff from Franz, Edi Weitz and a few others. UCW was and is a lot of trial-and-error-and-asking here for me. There still are a lot of things mysterious for me. Adding or removing slots e.g, changing defactions are hard to understand for me, how to intervene TAL with Lisp is at least a very dark greyhole for me. It seems however that others do not have that trouble, so it may be *me* but UCW.... Regards Friedrich From waldo at trianet.net Mon Sep 5 18:11:30 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Mon, 5 Sep 2005 14:11:30 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <87u0h0t1lf.fsf@flarge.here> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> Message-ID: <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> On Sep 5, 2005, at 3:28 AM, Friedrich Dominicus wrote: > Waldo Rubinstein writes: > > > > > > >> Before I spent much time looking into Scheme, I decided to quickly >> glance at Scheme's support for some of the minimum requirements I >> have for web app development. For example, I need to access MySQL >> and/ >> or Postgres databases as well as the easy manipulation (mainly >> generation) of PDF and CSV files. Also, I would like to start using >> object databases more than relational databases. I didn't find much >> support for these in Scheme. However, I did come across some projects >> for both Lisp and Smalltalk to support my needs, which brought me >> back to wanting to learn more about UCW and Seaside. >> >> >> >> >> > Well I just can tell you my experience, other will disagree. However > here we go. I think Smalltalk/Seaside is easier to understand and > apply, have you checked the Squeak Seaside examples? I found them > amazing expecially the browser, however I did use CL and UCW for other > reasons. I do not more about handling Common Lisp programs and how to > run them "without" gui, then I know about Smalltalks. I assume there > is a way to run Squeak in a sort of console, but I do not know. > > The other reason for me to use CL is cl-sql. It gives me persitence > nearly for free. That is "a good thing" (TM;-). I just read about ORDB > wrappers but did not have used them. Me seems that "generating" code > instead of writing code is better supported in Common Lisp, that's > another reasoin I choose to go the CL, but I found ruby on rails quite > amazing and I found that there is much more in place for "application > development", I were in contact with Drew on Lisp-on-lines, but he > told me I'm nuts to expect his software to work out-of-the-box. > > Ruby is a Smalltalk with a "different syntax, but if you know > Smalltalk you can learn ruby in no time really. There exists book > "Agile web development with rails" or the like which explains rails > very well. If I'd start from scratch I probably would choose > rails. > > However there do exist something like a web-development system from > the developers of PLT Scheme. I _guess_ that's one base example of > applying continuations in web programming. > > http://download.plt-scheme.org/doc/299.200/html/web-server/ > > The PLT people do have a lot of documentation and their Scheme is > "nearly" a Common Lisp. > > > > > I actually started with rails. I developed a few production sites with it. However, during the time I was working with rails, it wasn't as mature as it is now. I can definitely say that their active community is one of the best communities I've ever worked with. They are all very willing to help. Anyway, while reading more about Rub, I learned about its heritage in, among others, Smalltalk. So, I decided to learn Smalltalk mainly because of Seaside. I think Seaside is very nice. Although I felt rails had more features available to programmers as a framework, I think the benefits of continuations provided by Seaside outperformed rails (at least for my needs). I also read about Borges (the Ruby version of Seaside) but never bothered to play with it. I spent a few months stress testing Squeak/Seaside with a few database options. I was basically developing in that environment some of the applications I had developed in the past in either Ruby or Java. Well, although the performance was somewhat better than what I was getting with rails, I didn't feel that the development cycle in that environment was as productive as I would have expected from what I read/heard. So, then I started reading up more about continuations and came across several articles that talked about it and made specific references to both Scheme and Lisp. For some reason, I tend to like Lisp better than Scheme. I haven't study much of Scheme, but there is something that aesthetically just doesn't attract me, even though Scheme seems to have evolved out of Lisp (or something like that). I understand that continuations and tail-call optimization are native to Scheme. However, I like the UCW-way rather than what I have read on Scheme for web development. Granted, UCW is still in its childhood, as some refer, but that doesn't scare me much. When I started with rails, you could say it might have been at the same stage as UCW, but with alot of suggestions from a very active community and a dedicated team of developers, rails evolved very rapidly. Since my original posting, I have been studying more Lisp and reading more white papers and case studies. The more I read, the more I feel Lisp offers a better environment for effective and scaleable development. Even reading some articles from way back when, where Lispers described more or less the development life-cycle in Lisp, it roughly detailed what Xtreme Programming is now, but more than a decade before the term was coined. Like you, I don't necessarily get pulled into something because of a nice GUI IDE. To some degree, I prefer console and Vi/Emacs as well as being in control of the system processes that run my applications. Everything I develop is web based and it runs on remote servers, and there is nothing better than console for remote management. I agree that Seaside's exception handling mechanism via the web browser is magnificent in that it almost brings the Smalltalk environment to the browser for debugging purposes, but, after reading Paul Grahams article about Viaweb, you can do basically the same thing via the console connecting to the Lisp environment remotely. At the same time, I don't develop applications that are accessed by millions of users. My business is more oriented towards business applications that are used within an enterprise of under 500 users. I go out of my way to make sure that I use open-source technologies. I don't believe much in paying license fees. I prefer to spend my moneys or any other resource I have available at supporting open- source efforts. The moment they go fee-based, I simply loose respect because of previous history I've had with license based applications/ tools. So, my typical applications run on Linux with Apache, either MySQL or Postgres, and some "application framework", such as rails, or Squeak/ Seaside. Like I said before, because of the nature of my applications, I have to be able to easily export to CSV and be able to generate PDF documents on the fly, easily. During my testing of Squeak/Seaside, I tested several OODBs and quickly learned about its benefits, particularly for some of the applications I develop. I only came across a couple of efforts in Lisp for OODBs. One was Elephant and the other was PLOB. I haven't had a chance to use either one, but while reading about PLOB, I discovered that it requires a server application managed by U. of St. Andrews, but no one seems to be able to get that going (at least from what I read), and that piece may require license fees. Elephant seems promising, but then again, I haven't stressed tested it (I haven't stress tested anything in Lisp yet for that matter). As for PLT Scheme (the link you referred me to), it feels alot like Struts or something like that but in Scheme rather than Java. I don't know. > > > > > > > > >> >> At this point, I'm wondering if there is anyone in this list that can >> shed some light into clearing up where I should be going. I've always >> been fascinated with Lisp, but never spent enough time to learn it. >> Now that I have some time, I'd like to know where I should be >> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know >> if I should really rule out Scheme and may be someone could also >> comment on it. >> >> >> >> >> > > Well IMHO it's worth using Common Lisp, however you better have some > "hacker-mentality". A lot of Lisp Software is available but > documentation is often sparse. Counterexamples are stuff from Franz, > Edi Weitz and a few others. UCW was and is a lot of > trial-and-error-and-asking here for me. There still are a lot of > things mysterious for me. Adding or removing slots e.g, changing > defactions are hard to understand for me, how to intervene TAL with > Lisp is at least a very dark greyhole for me. > > It seems however that others do not have that trouble, so it may be > *me* but UCW.... > > Regards > Friedrich > > > > > Well, I can't relate well to the mysteries you seem to have with UCW. I do agree about the "mentality" you need to have and I think that's one of the things that encourage me more. I am productive most when I constantly feel challenged. Overall, as far as UCW is concerned, I don't really know how involved the community is. Also, I don't know how committed the developers are to continually advance UCW. However, if only a fraction of what I saw in the rails community was active in this one, UCW could be at a completely different level within a month. Note to UCW team: I don't mean any disrespect nor do I intend on saying UCW is too infantile at this moment. I honestly haven't played enough with it and I'm only paraphrasing what others have mentioned. As a matter of fact, if there is anything I can contribute, I would gladly do so. It's just that at this moment, my Lisp skills are not at the level I would expect in order to contribute to such a project. However, I can provide plenty of ideas to contribute, as long as there is someone out there willing to listen and formally work on a development roadmap. Sorry for the long post and look forward to reading more comments from this community. Thanks, Waldo From jan at rychter.com Mon Sep 5 19:54:34 2005 From: jan at rychter.com (Jan Rychter) Date: Mon, 05 Sep 2005 21:54:34 +0200 Subject: [Bese-devel] UCW guidance In-Reply-To: (Marco Baringer's message of "Tue, 30 Aug 2005 17:35:07 +0200") References: Message-ID: >>>>> "Marco" == Marco Baringer : Marco> Jan Rychter writes: [...] Marco> i hope this helps. the more info (doubts, questions, other Marco> possiblities) the better i can help and the more ideas we can Marco> bounce around. It definitely helps! I am actually amazed by how much one can learn from discussions on this list. The signal to noise ratio is definitely high. More comments coming from me once I actually finish a reasonably sized application. I've encountered the next snag: how do I error-check a form and feed it back to the user if it contains errors? An example to that effect would be very, very helpful -- I couldn't find one in the examples. many thanks, --J. From pjb at informatimago.com Mon Sep 5 20:49:16 2005 From: pjb at informatimago.com (Pascal Bourguignon) Date: Mon, 5 Sep 2005 22:49:16 +0200 Subject: [Bese-devel] UCW guidance In-Reply-To: References: Message-ID: <17180.44876.153200.918888@thalassa.informatimago.com> Jan Rychter writes: > >>>>> "Marco" == Marco Baringer : > Marco> Jan Rychter writes: > [...] > Marco> i hope this helps. the more info (doubts, questions, other > Marco> possiblities) the better i can help and the more ideas we can > Marco> bounce around. > > It definitely helps! I am actually amazed by how much one can learn from > discussions on this list. The signal to noise ratio is definitely > high. More comments coming from me once I actually finish a reasonably > sized application. > > I've encountered the next snag: how do I error-check a form and feed it > back to the user if it contains errors? > > An example to that effect would be very, very helpful -- I couldn't find > one in the examples. It depends on what you mean by "feed it back to the user". I often use this macro: (defmacro handling-errors (&body body) `(HANDLER-CASE (progn , at body) (simple-condition (ERR) (format *error-output* "~&~A: ~%" (class-name (class-of err))) (apply (function format) *error-output* (simple-condition-format-control err) (simple-condition-format-arguments err)) (format *error-output* "~&")) (condition (ERR) (format *error-output* "~&~A: ~% ~S~%" (class-name (class-of err)) err)))) (handling-errors (some-form)) Of course, you'd have to modify it to report the error via UCW. -- __Pascal Bourguignon__ http://www.informatimago.com/ Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects. The first system to really do this in an important way is Lisp. -- Alan Kay From waldo at trianet.net Tue Sep 6 03:27:42 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Mon, 5 Sep 2005 23:27:42 -0400 Subject: [Bese-devel] UCW Installation Message-ID: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Just as an FYI, I tried to install a fresh copy of UCW on a Mac OS machine with SBCL and came across a couple of problems: 1) The copy of UCW I downloaded via darcs (stable version) does not work with stable version of arnesi (darcs). It worked with arnesi_dev 2) After it finally compiled everything, the console shows: WARNING: Can't start slime server due to lack of threads. 2005-09-05T23:21.50 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up standard server #. I don't necessarily know what the WARNING means, however, looking at the next line, seems to indicate the server is running. Unfortunately, when I go to http://localhost:8080/ucw/examples/ index.ucw, I get the following error: 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Error # while serving action. 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Aborting action. Control stack guard page temporarily disabled: proceed with caution debugger invoked on a SB-KERNEL::CONTROL-STACK-EXHAUSTED: Control stack exhausted (no more space for function call frames). This is probably due to heavily nested or infinitely recursive function calls, or a tail call that SBCL cannot or has not optimized away. 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 rendering the component #. 1: Retry calling RENDER-ON. 2: [SERVER-ERROR] Send the client an internal server error page. 3: [CONTINUE ] Ignore and continue with next --eval option. 4: [ABORT ] Skip rest of --eval options. 5: Skip to toplevel READ/EVAL/PRINT loop. 6: [QUIT ] Quit SBCL (calling #'QUIT, killing the process). (SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR) 0] Any help would be appreciated in order to make this run on this Mac. The Mac is running Mac OS X Tiger (10.4) with SBCL 0.9.4 Thanks, Waldo From drewc at tech.coop Tue Sep 6 19:12:59 2005 From: drewc at tech.coop (Drew Crampsie) Date: Tue, 06 Sep 2005 12:12:59 -0700 Subject: [Fwd: Re: [Bese-devel] UCW vs Seaside (and Scheme)] Message-ID: <431DEA3B.4050405@tech.coop> I always forget to CC the list ... here is my response to Waldo for posterity :) drewc On Sep 6, 2005, at 8:53 AM, Drew Crampsie wrote: > Waldo Rubinstein wrote: > > >> During my testing of Squeak/Seaside, I tested several OODBs and >> quickly learned about its benefits, particularly for some of the >> applications I develop. I only came across a couple of efforts in >> Lisp for OODBs. One was Elephant and the other was PLOB. I >> haven't had a chance to use either one, but while reading about >> PLOB, I discovered that it requires a server application managed >> by U. of St. Andrews, but no one seems to be able to get that >> going (at least from what I read), and that piece may require >> license fees. Elephant seems promising, but then again, I haven't >> stressed tested it (I haven't stress tested anything in Lisp yet >> for that matter). >> > > There is a license problem with elephant as well, as it uses the > Berkeley DB. Not a problem if all your code is Open Source, or if > its in-house only, or you pay for a license. > > I personally use clsql's O-R mapping, but there are a few other > options available. > > http://common-lisp.net/project/cl-prevalence/ > > "CL-PREVALENCE is an implementation of Object Prevalence for Common > Lisp. It was written by and is being maintained by Sven Van > Caekenberghe. CL-PREVALENCE is using S-XML for the XML > serialization protocol (there is also a more Lisp-like s-expression- > based serialization protocol)." > > http://common-lisp.net/project/cl-store/ > > " CL-STORE is a package written by Sean Ross for serializing and > deserializing CL objects from streams > It has been tested and works on - > > * SBCL (0.8.10.12) on Linux x86 > * CMUCL (CVS Head 2003-09-14) on Linux x86 > * CLISP (2.33) on Linux x86 and Windows > * Lispworks Personal Edition 4.3 on Linux x86 and Windows > * Allegro CL Trial Edition 6.2 [Linux (x86)] > * OpenMCL is supported but is largely untested. > * ECL (Embeddable Common-Lisp) 0.9d > > CL-STORE is licensed under the MIT Licence. " > > FWIW, the latter seems to be more active/supported, though i have > not used either for anything serious. > > >> Overall, as far as UCW is concerned, I don't really know how >> involved the community is. Also, I don't know how committed the >> developers are to continually advance UCW. >> > > Very. Marco is constantly evolving UCW and arnesi, and this list > sees many patches sent from users/developers. I personally make my > living with UCW, so i can guarantee that it will have at least one > user for a long time :) > > >> However, if only a fraction of what I saw in the rails community >> was active in this one, UCW could be at a completely different >> level within a month. >> > > I'm not sure comparing Rails with UCW is fair. From the UCW docs : > > "UCW deals with managing user interaction via HTTP and nothing > more, no database layer, no user authentication or security nor any > content management systems. This is an intentional design choice: > there is no way UCW could provide a single implementation of these > features which would well in every setup, so instead of trying to > be everything for everyone UCW will limit itself to help developers > deal with interacting via HTTP." > > and from the Rails page : > > "Rails is a full-stack, open-source web framework in Ruby for > writing real-world applications with joy and less code than most > frameworks spend doing XML sit-ups" > > The two projects have a very different focus, and very different > implementation strategies. UCW is a framework that you could > implement somthing like Rails in, like my own Lisp-on-Lines for > example (watch this list for upcoming 0.1 release), which provides > the "missing" ucw features (an introspective o-r mapping and a > presentation system for CLOS objects). > > >> Note to UCW team: I don't mean any disrespect nor do I intend on >> saying UCW is too infantile at this moment. I honestly haven't >> played enough with it and I'm only paraphrasing what others have >> mentioned. >> > > One of the problems is that UCW is not really for newbies, yet it > attracts a lot of people both new to CL and to CPS frameworks. > FWIW, i learned CL and UCW at the same time, but it was a bit of a > struggle. > > Once one is well versed in CL, and has played with continuations > enough to have a solid grasp on the concept, things get easier. > UCW's component model is very powerful, and i couldn't imagine > doing web-apps any other way, but it is _very_ different from most > other web frameworks. > > The other thing is that CPS based web stuff is new as well, and > we're still discovering things. There is room for improvement in > UCW, but finding out where that room is, is challenging :) > > >> As a matter of fact, if there is anything I can contribute, I >> would gladly do so. It's just that at this moment, my Lisp skills >> are not at the level I would expect in order to contribute to >> such a project. >> > > Both UCW and (especially) Lisp on Lines are a little short in the > documentation dept. The UCW source code is _very_ well documented, > but for some reason some people don't like to read docstrings :) > > I think a high-level overview of how components work would probably > help the n00b crowd a lot. Something like what is a component, and > what the slots PLACE, CONTINUATION, and CALLING-COMPONENT do, and > how it all interacts with call-component etc would be great, and us > 'insiders' are a little too close to the code to be able to explain > it to beginners. > > >> However, I can provide plenty of ideas to contribute, as long as >> there is someone out there willing to listen and formally work on >> a development roadmap. >> > > I'm always interested in good ideas, and i'm a pretty good listener :) > > drewc > From svg at surnet.ru Tue Sep 6 07:51:51 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Tue, 06 Sep 2005 13:51:51 +0600 (YEKST) Subject: [Bese-devel] UCW guidance In-Reply-To: References: Message-ID: <20050906.135151.71089764.svg@surnet.ru> Good day, jan> I've encountered the next snag: how do I error-check a form and feed it jan> back to the user if it contains errors? jan> jan> An example to that effect would be very, very helpful -- I couldn't find jan> one in the examples. I'd posted code for `status-bar-mixin' to mailing list which I use for such purposes: http://common-lisp.net/pipermail/bese-devel/2005-June/000396.html I use it in form as: (defun collect-error (condition) (flet ((error-collector (error-tag error) (show-message (format nil "~a" error) :severity error-tag))) (let ((restart (find-restart 'collect-error))) (when restart (invoke-restart restart #'error-collector condition))))) (defmacro with-collect-error (body-form on-error-form &key (error-tag :error)) (let ((error-collector (gensym)) (condition (gensym))) `(restart-case ,body-form (collect-error (,error-collector ,condition) (funcall ,error-collector ,error-tag ,condition) ,on-error-form)))) .... (handler-bind ((error #'collect-error)) (dolist (field (form-fields form)) (with-collect-error (validate-form-field field) nil))) Best Regards, Vladimir Sekissov From mb at bese.it Tue Sep 6 08:02:37 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 06 Sep 2005 10:02:37 +0200 Subject: [Bese-devel] UCW Installation In-Reply-To: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> (Waldo Rubinstein's message of "Mon, 5 Sep 2005 23:27:42 -0400") References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: Waldo Rubinstein writes: > Just as an FYI, I tried to install a fresh copy of UCW on a Mac OS > machine with SBCL and came across a couple of problems: > > 1) The copy of UCW I downloaded via darcs (stable version) does not > work with stable version of arnesi (darcs). It worked with > arnesi_dev hm. that's not very nice is it :( try using ucw_dev and arnesi_dev, except for those times when i'm being really stupid (doing things on the dev branch i should do on other temporary branches) _dev is your best bet (unless you have running code and you don't want to get api changes). > 2) After it finally compiled everything, the console shows: > > WARNING: Can't start slime server due to lack of threads. > 2005-09-05T23:21.50 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up > standard server #. > > I don't necessarily know what the WARNING means, however, looking at > the next line, seems to indicate the server is running. this is just a fyi telling the user that they can't slime-connect. you can safely ignore it (or use a lisp which has threads). the 'work around' to this, if you want to use slime's debugger for ucw errors, is to load up bin/start.lisp but comment out the (ucw:startup-server ucw:*default-server*) form and execute (swank:create-server :dont-close t :external-format (external-format-for :slime)). then connect to slime (M-x slime-connect) and from the repl in emacs run (ucw:startup-server ucw:*default-server*). you won't have an active repl you can execute forms in but at least when there's a ucw error you can use slime's debugger/inspector and the mighty slime-eval-in-frame. > Unfortunately, when I go to http://localhost:8080/ucw/examples/ > index.ucw, I get the following error: > > 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Error # ERROR {10F3F6B9}> while serving action. > 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Aborting action. > Control stack guard page temporarily disabled: proceed with caution > > debugger invoked on a SB-KERNEL::CONTROL-STACK-EXHAUSTED: Control > stack exhausted (no more space for function call frames). This is > probably due to heavily nested or infinitely recursive function > calls, or a tail call that SBCL cannot or has not optimized away. oh my. this is bad :( would you mind sending a complete backtrace? > The Mac is running Mac OS X Tiger (10.4) with SBCL 0.9.4 i tried with 10.3.9 and sbcl 0.9.3.2, ucw_dev and arnesi_dev and the examples ran fine. -- -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 Tue Sep 6 08:22:54 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 06 Sep 2005 10:22:54 +0200 Subject: [Bese-devel] UCW Releases [Was: UCW vs Seaside (and Scheme)] References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <7e267a9205090308213b3060bf@mail.gmail.com> <2917E516-9A20-4EE0-8BF2-A1A5F2B3385A@trianet.net> Message-ID: Waldo Rubinstein writes: > BTW, I couldn't find on the web site release notes or version > changes. Is there such a thing posted? no. i used to sit down once every two months and create a 'release'. this was nice since people could see that the project was moving forward and provided an easy way to check in occasionaly and see what'd changed. releases give people the impression that ucw has reached a point of 'stability' and had been tested and that version is known to work. lies. damn lies. the ucw releases took a lot of time to create. thy were rarely tested, ucw runs on a lot of different lisps, on a lot of different os and with 4 different backends, tasting all those combinations is was a big job. they stopped people from grabbing the development versions (which contained fixs for a lot of bugs in the releases and were otherwise the same). then, when i forget to make a release, they made the project seem less active than it actually was. so, after seeing how well slime got along without making any releases, i decided to stop making them. i kept the _stable/_dev distinction for some odd reasen, though the more i think about the less i think that's a good distinction to make. ucw should have a 'main' branch and, when radical changes need to be made, these should be done on a seperate, appropiatly named, branch. 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 Tue Sep 6 08:45:38 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 06 Sep 2005 10:45:38 +0200 Subject: [Bese-devel] UCW guidance In-Reply-To: <20050906.135151.71089764.svg@surnet.ru> (Vladimir Sekissov's message of "Tue, 06 Sep 2005 13:51:51 +0600 (YEKST)") References: <20050906.135151.71089764.svg@surnet.ru> Message-ID: Vladimir Sekissov writes: > I'd posted code for `status-bar-mixin' to mailing list which I > use for such purposes: i'd completly forgotten about that, sorry. i made a few minor changes (i had a similar component but i needed te be able to set the css class for error/warn messages explicitly) and added it to ucw (untested). -- -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 Tue Sep 6 09:22:35 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 06 Sep 2005 11:22:35 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> (Waldo Rubinstein's message of "Mon, 5 Sep 2005 14:11:30 -0400") References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> Message-ID: Waldo Rubinstein writes: > I understand that continuations and tail-call optimization are native > to Scheme. However, I like the UCW-way rather than what I have read > on Scheme for web development. Granted, UCW is still in its > childhood, as some refer, but that doesn't scare me much. When I > started with rails, you could say it might have been at the same > stage as UCW, but with alot of suggestions from a very active > community and a dedicated team of developers, rails evolved very > rapidly. just for the record: tco and continuations are two completely orthogonal techniques. tco is basically an optimization technique (if you had an infinite stack you'd never _need_ tco) while continuations actually allow you exrpess things which previously were unexrpessable (or very very difficult to express). ucw is a niche library running in a niche language, i strongly doubt we'll ever have a community as big as rails'. so it goes. > Since my original posting, I have been studying more Lisp and reading > more white papers and case studies. The more I read, the more I feel > Lisp offers a better environment for effective and scaleable > development. Even reading some articles from way back when, where > Lispers described more or less the development life-cycle in Lisp, it > roughly detailed what Xtreme Programming is now, but more than a > decade before the term was coined. > > Like you, I don't necessarily get pulled into something because of a > nice GUI IDE. To some degree, I prefer console and Vi/Emacs as well > as being in control of the system processes that run my applications. > Everything I develop is web based and it runs on remote servers, and > there is nothing better than console for remote management. I agree > that Seaside's exception handling mechanism via the web browser is > magnificent in that it almost brings the Smalltalk environment to the > browser for debugging purposes, but, after reading Paul Grahams > article about Viaweb, you can do basically the same thing via the > console connecting to the Lisp environment remotely. i would absolutely love to be able to pop up a page with the backtrace and the restarts, though it ain't gonna happen. smalltalk has native continuations, common lisp doesn't and restarts are the first casualty. > At the same time, I don't develop applications that are accessed by > millions of users. My business is more oriented towards business > applications that are used within an enterprise of under 500 users. I > go out of my way to make sure that I use open-source technologies. I > don't believe much in paying license fees. I prefer to spend my > moneys or any other resource I have available at supporting open- > source efforts. The moment they go fee-based, I simply loose respect > because of previous history I've had with license based applications/ > tools. well said. > So, my typical applications run on Linux with Apache, either MySQL or > Postgres, and some "application framework", such as rails, or Squeak/ > Seaside. Like I said before, because of the nature of my > applications, I have to be able to easily export to CSV and be able > to generate PDF documents on the fly, easily. > > During my testing of Squeak/Seaside, I tested several OODBs and > quickly learned about its benefits, particularly for some of the > applications I develop. I only came across a couple of efforts in > Lisp for OODBs. One was Elephant and the other was PLOB. I haven't > had a chance to use either one, but while reading about PLOB, I > discovered that it requires a server application managed by U. of St. > Andrews, but no one seems to be able to get that going (at least from > what I read), and that piece may require license fees. Elephant seems > promising, but then again, I haven't stressed tested it (I haven't > stress tested anything in Lisp yet for that matter). i'm successfully using elephant on a production server. i contacted sleepycat (they're pretty nice people and it doesn't hurt to ask): if you run your app on a server then you don't pay license fees, only if you start distributing berkeley db embedded inside a desktop app do you need to pay the fees (and that becomes prohibitly expensive for me). > As for PLT Scheme (the link you referred me to), it feels alot like > Struts or something like that but in Scheme rather than Java. I don't > know. well, plt does have the send/suspend, which means it certainly isn't just struts. (send/suspend is basically a lower level version of ucw's call macro). personally i like plt, it's just that the scheme community is too fragmented and too pure for my tastes. > Well, I can't relate well to the mysteries you seem to have with UCW. > I do agree about the "mentality" you need to have and I think that's > one of the things that encourage me more. I am productive most when I > constantly feel challenged. ucw has a couple of things working against it: 1) i don't have the time to write the documentation required to make it easy to get started with ucw. 2) continuation based apps are young, so we don't yet know what the best way to structure them is. 3) component based web apps are young, so we don't yet know what the best way to create the ui is. > Overall, as far as UCW is concerned, I don't really know how involved > the community is. Also, I don't know how committed the developers are > to continually advance UCW. ucw is one of the main tools my company uses to develop web based apps, as long as we can keep finding clients ucw will continue to be developed and maintained. > However, if only a fraction of what I saw > in the rails community was active in this one, UCW could be at a > completely different level within a month. Note to UCW team: I don't > mean any disrespect nor do I intend on saying UCW is too infantile at > this moment. I honestly haven't played enough with it and I'm only > paraphrasing what others have mentioned. As a matter of fact, if > there is anything I can contribute, I would gladly do so. It's just > that at this moment, my Lisp skills are not at the level I would > expect in order to contribute to such a project. However, I can > provide plenty of ideas to contribute, as long as there is someone > out there willing to listen and formally work on a development > roadmap. the best way to help ucw is to use it and see what works and what doesn't. if you feel something could be done better than just do it that way and see what happens. the entire ucw code base (including the examples, yaclml, arnesi and iterate) is just over 21,000 lines (including comments and whitespace). that's really not a lot of code, if you feel that something should be rewritten than just rewrite it, odds are it'll take you, at most, a few days. if you then find that what you've written works better than what we previously had then send it here and we'll look at it (and more likely than not merge it in). -- -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 asbjxrn at bjxrnstad.net Tue Sep 6 14:59:18 2005 From: asbjxrn at bjxrnstad.net (=?ISO-8859-1?Q?Asbj=F8rn_Bj=F8rnstad?=) Date: Tue, 6 Sep 2005 22:59:18 +0800 Subject: [Bese-devel] UCW Installation In-Reply-To: References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: On 06 Sep 2005, at 4:02 PM, Marco Baringer wrote: > Waldo Rubinstein writes: > >> 2) After it finally compiled everything, the console shows: >> >> WARNING: Can't start slime server due to lack of threads. >> 2005-09-05T23:21.50 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up >> standard server #. >> >> I don't necessarily know what the WARNING means, however, looking at >> the next line, seems to indicate the server is running. >> > > this is just a fyi telling the user that they can't slime-connect. you > can safely ignore it (or use a lisp which has threads). Doesn't it also mean that you will only be able to handle one request at a time? (Which may or may not be a problem, but good to be aware of. (Don't run off and do something that takes a long time.)) -- -asbjxrn From mb at bese.it Tue Sep 6 15:22:40 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 06 Sep 2005 17:22:40 +0200 Subject: [Bese-devel] UCW Installation References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: Asbj?rn Bj?rnstad writes: > Doesn't it also mean that you will only be able to handle one > request at a time? (Which may or may not be a problem, but good > to be aware of. (Don't run off and do something that takes a > long time.)) oh, yeah. that's probably more important than being able to slime-connect or not. -- -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 a_bakic at yahoo.com Wed Sep 7 21:56:11 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Wed, 7 Sep 2005 14:56:11 -0700 (PDT) Subject: [Bese-devel] multiple forms and s/f/a inputs Message-ID: <20050907215612.98347.qmail@web40602.mail.yahoo.com> Hi, The nested edit form in the presentations example (where one should enter last name) does not work for me (I hope I did not break something) because when I click on its "Ok" both its hidden inputs named "s", "f" and "a" and its enclosing form's hidden inputs with the same names are sent to the server. I am not very familiar with forms semantics, so: 1. What specification document should one read as a definite standard (if there is such a thing) for forms semantics? (I found http://whatwg.org/specs/web-forms/current-work/#form0) 2. Do the UCW backends all handle multiple/nested forms correctly (i.e., comply with the document in 1)? Thanks, Alex ______________________________________________________ Click here to donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/ From craigmcd at gmail.com Wed Sep 7 19:17:17 2005 From: craigmcd at gmail.com (Craig McDaniel) Date: Wed, 07 Sep 2005 15:17:17 -0400 Subject: [Bese-devel] ./bin/ucwctl suggestions Message-ID: <8764tcofgi.fsf@neko.dyndns.org> Suggested changes to ./bin/ucwctl (Darcs patch included) 1. CMUCL uses "-eval" instead of "--eval" for command line argument. Change the ucwctl script to use more flexible $EVAL variable. 2. When calling "ucwctl stop", attachtty only accepts one argument, the remote socket. It doesn't know what to do with the "eval" commands passed in. Replaced with echo and pipe commads to provide graceful shutdown. Keep the "kill -s QUIT" command available as "stop2" in case the graceful method doesn't work. -------------- next part -------------- A non-text attachment was scrubbed... Name: CHANGESET Type: application/octet-stream Size: 16816 bytes Desc: not available URL: -------------- next part -------------- -- Craig McDaniel From mb at bese.it Thu Sep 8 17:56:31 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 08 Sep 2005 19:56:31 +0200 Subject: [Bese-devel] ./bin/ucwctl suggestions In-Reply-To: <8764tcofgi.fsf@neko.dyndns.org> (Craig McDaniel's message of "Wed, 07 Sep 2005 15:17:17 -0400") References: <8764tcofgi.fsf@neko.dyndns.org> Message-ID: Craig McDaniel writes: > Suggested changes to ./bin/ucwctl (Darcs patch included) > > > 1. CMUCL uses "-eval" instead of "--eval" for command line > argument. Change the ucwctl script to use more flexible $EVAL > variable. would it be worth the offort to use fare's lisp.sh (or whatever it's called) script generator? that apperas to support quite a large number of differente lisps. > 2. When calling "ucwctl stop", attachtty only accepts one argument, the > remote socket. It doesn't know what to do with the "eval" commands > passed in. Replaced with echo and pipe commads to provide graceful > shutdown. Keep the "kill -s QUIT" command available as "stop2" in > case the graceful method doesn't work. i've a modified version of attachtty which accepts both the eval and a timeout argument. what's the canonical location for detachtty? who develops it? is there some 'official' web page i can look to and see what options people can be expected to have? -- -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 Sep 8 18:00:42 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 08 Sep 2005 20:00:42 +0200 Subject: [Bese-devel] ./bin/ucwctl suggestions In-Reply-To: (Marco Baringer's message of "Thu, 08 Sep 2005 19:56:31 +0200") References: <8764tcofgi.fsf@neko.dyndns.org> Message-ID: "Marco Baringer" writes: > i've a modified version of attachtty which accepts both the eval and a > timeout argument. what's the canonical location for detachtty? who > develops it? is there some 'official' web page i can look to and see > what options people can be expected to have? (with-distant-unreliable-memories attachtty drops into an infinite loop when using the echo foo | attachtty trick because it doesn't (or didn't atleast) deal well with the eof from echo. i'm pretty sure this is why both myself and kevin rosenberg have (independently) added the eval option. it's been a while and i'd be happy to be wrong.) -- -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 a_bakic at yahoo.com Thu Sep 8 18:23:38 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 8 Sep 2005 11:23:38 -0700 (PDT) Subject: [Bese-devel] multiple forms and s/f/a inputs In-Reply-To: <20050907215612.98347.qmail@web40602.mail.yahoo.com> Message-ID: <20050908182338.48265.qmail@web40614.mail.yahoo.com> > The nested edit form in the presentations example (where one should enter > last name) does not work for me (I hope I did not break something) because when I > click on its "Ok" both its hidden inputs named "s", "f" and "a" and its > enclosing form's hidden inputs with the same names are sent to the server. I found on the web that forms cannot be nested (semantically, even though syntactically they can). I am not yet positive about whether multiple forms are always all submitted together, or only one can be submitted (but this is easy to check by looking at name-value pairs that come in a request from a browser). > 1. What specification document should one read as a definite standard (if > there > is such a thing) for forms semantics? (I found > http://whatwg.org/specs/web-forms/current-work/#form0) I found many useful resources on the web, and there does not seem to be a good, definitive spec (news?!). Alex ______________________________________________________ Click here to donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/ From craigmcd at gmail.com Thu Sep 8 18:36:06 2005 From: craigmcd at gmail.com (Craig McDaniel) Date: Thu, 08 Sep 2005 14:36:06 -0400 Subject: [Bese-devel] ./bin/ucwctl suggestions In-Reply-To: (Marco Baringer's message of "Thu, 08 Sep 2005 19:56:31 +0200") References: <8764tcofgi.fsf@neko.dyndns.org> Message-ID: <87slwfl84p.fsf@neko.dyndns.org> On Thu Sep 08 2005 at 13:56, "Marco Baringer" wrote: > Craig McDaniel writes: > >> Suggested changes to ./bin/ucwctl (Darcs patch included) >> >> >> 1. CMUCL uses "-eval" instead of "--eval" for command line >> argument. Change the ucwctl script to use more flexible $EVAL >> variable. > > would it be worth the offort to use fare's lisp.sh (or whatever it's > called) script generator? that apperas to support quite a large number > of differente lisps. I'm pretty new at lisp and am not familiar fare's lisp.sh shell script. I'll find it and have a look at it. > >> 2. When calling "ucwctl stop", attachtty only accepts one argument, the >> remote socket. It doesn't know what to do with the "eval" commands >> passed in. Replaced with echo and pipe commads to provide graceful >> shutdown. Keep the "kill -s QUIT" command available as "stop2" in >> case the graceful method doesn't work. > > i've a modified version of attachtty which accepts both the eval and a > timeout argument. what's the canonical location for detachtty? who > develops it? is there some 'official' web page i can look to and see > what options people can be expected to have? I got my detachtty from ftp://ftp.linux.org.uk/pub/lisp/detachtty/detachtty_9.tar.gz, which I found from the http://www.cliki.net/detachtty page. I don't know if either is the official home of detachtty. Referring to your other post, this version 9 does seems to work fine piping commands into its stdin. Thanks for your reply, I'm learning a lot from your videos about slime and ucw. -- Craig McDaniel From a_bakic at yahoo.com Thu Sep 8 19:51:42 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 8 Sep 2005 12:51:42 -0700 (PDT) Subject: [Bese-devel] multiple forms and s/f/a inputs In-Reply-To: <20050908182338.48265.qmail@web40614.mail.yahoo.com> Message-ID: <20050908195142.15431.qmail@web40612.mail.yahoo.com> > I found on the web that forms cannot be nested (semantically, even though > syntactically they can). Now I found in the mentioned document that this is true for HTML only, and not for XHTML. Alex ______________________________________________________ Click here to donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/ From nathan at acceleration.net Fri Sep 9 00:06:56 2005 From: nathan at acceleration.net (Nathan Bird) Date: Thu, 8 Sep 2005 20:06:56 -0400 Subject: [Bese-devel] ./bin/ucwctl suggestions In-Reply-To: Message-ID: <20050909002012.5058A880E6@common-lisp.net> I hadn't really used ucwctl much, when I tried it today with sbcl every time I tried to slime-connect (over ssh tunnel) lisp would exit right after/as it connected. Anybody else seen this behavior But having looked at ucwctl to see what was going on there it seems that the code there is a bit more succinct than start.lisp so I changed start.lisp to use this style (create-server). I believe this is what Robert Marlow introduced at the beginning of August that was never moved into start.lisp. Another reason was because I have been trying several of the different backends today and it was bugging me that they were on different ports. I believe all of the necessary setup is being done here. So far though I have only written (half of) one UCW app, then also trying to make sure that admin and examples are still working. There might be stuff about working with several at once that I have not yet grokked. I removed the warning comment while making the araneida backend against using the default-url accessor, as it seemed to be incorrect. *ucw-tal-root* was listed in the export of packages.lisp twice. Nathan Bird -----Original Message----- From: bese-devel-bounces at common-lisp.net [mailto:bese-devel-bounces at common-lisp.net] On Behalf Of Marco Baringer Sent: Thursday, September 08, 2005 1:57 PM To: Craig McDaniel Cc: bese-devel at common-lisp.net Subject: Re: [Bese-devel] ./bin/ucwctl suggestions Craig McDaniel writes: > Suggested changes to ./bin/ucwctl (Darcs patch included) > > > 1. CMUCL uses "-eval" instead of "--eval" for command line > argument. Change the ucwctl script to use more flexible $EVAL > variable. would it be worth the offort to use fare's lisp.sh (or whatever it's called) script generator? that apperas to support quite a large number of differente lisps. > 2. When calling "ucwctl stop", attachtty only accepts one argument, the > remote socket. It doesn't know what to do with the "eval" commands > passed in. Replaced with echo and pipe commads to provide graceful > shutdown. Keep the "kill -s QUIT" command available as "stop2" in > case the graceful method doesn't work. i've a modified version of attachtty which accepts both the eval and a timeout argument. what's the canonical location for detachtty? who develops it? is there some 'official' web page i can look to and see what options people can be expected to have? -- -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 -------------- next part -------------- A non-text attachment was scrubbed... Name: start.lisp.darcs Type: application/octet-stream Size: 21373 bytes Desc: not available URL: From rusabd at gmail.com Fri Sep 9 05:41:09 2005 From: rusabd at gmail.com (Ruslan Abdulkhalikov) Date: Fri, 9 Sep 2005 11:41:09 +0600 Subject: [Bese-devel] ./bin/ucwctl suggestions In-Reply-To: <20050909002012.5058A880E6@common-lisp.net> References: <20050909002012.5058A880E6@common-lisp.net> Message-ID: <2f11360405090822415a93a6db@mail.gmail.com> On 9/9/05, Nathan Bird wrote: > > I hadn't really used ucwctl much, when I tried it today with sbcl every > time > I tried to slime-connect (over ssh tunnel) lisp would exit right after/as > it > connected. Anybody else seen this behavior Hello Nathan, do you use sbcl on linux? Looks like it is common problem for some kernels - wrapping sbcl in shell script helps - I use this one for instance (lisp.sh): rus at hermes:~$ cat /home/rus/bin/lisp.sh #!/bin/sh sbcl $1 $2 $3 $4 $5 $6 $7 $8 $9 --no-linedit Regards, Ruslan -------------- next part -------------- An HTML attachment was scrubbed... URL: From mb at bese.it Fri Sep 9 06:28:02 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 09 Sep 2005 08:28:02 +0200 Subject: [Bese-devel] multiple forms and s/f/a inputs In-Reply-To: <20050908182338.48265.qmail@web40614.mail.yahoo.com> (Aleksandar Bakic's message of "Thu, 8 Sep 2005 11:23:38 -0700 (PDT)") References: <20050908182338.48265.qmail@web40614.mail.yahoo.com> Message-ID: Aleksandar Bakic writes: >> The nested edit form in the presentations example (where one should enter >> last name) does not work for me (I hope I did not break something) because > when I >> click on its "Ok" both its hidden inputs named "s", "f" and "a" and its >> enclosing form's hidden inputs with the same names are sent to the server. > > I found on the web that forms cannot be nested (semantically, even though > syntactically they can). I am not yet positive about whether multiple forms are > always all submitted together, or only one can be submitted (but this is easy > to check by looking at name-value pairs that come in a request from a browser). sorry, i don't have a lot of time atm to get into this. however my undertanding is this: nested forms are treated differently by different browsers and give unexpected and weird results. therefore you should always avoid nesting forms. i have gone so far as to add this method to some of my apps: (defcomponent my-window (simple-window-component) ()) (defmethod render-on :wrapping ((res response) (w my-window)) ( References: <20050909002012.5058A880E6@common-lisp.net> <2f11360405090822415a93a6db@mail.gmail.com> Message-ID: <17185.26112.471.634900@thalassa.informatimago.com> Ruslan Abdulkhalikov writes: > do you use sbcl on linux? Looks like it is common problem for some kernels - > wrapping sbcl in shell script helps - I use this one for instance (lisp.sh): > rus at hermes:~$ cat /home/rus/bin/lisp.sh > #!/bin/sh > > sbcl $1 $2 $3 $4 $5 $6 $7 $8 $9 --no-linedit This is not COMMAND.COM ! This is /bin/sh ! #!/bin/sh exec sbcl --no-linedit "$@" -- __Pascal Bourguignon__ http://www.informatimago.com/ Nobody can fix the economy. Nobody can be trusted with their finger on the button. Nobody's perfect. VOTE FOR NOBODY. From mb at bese.it Sat Sep 10 11:25:02 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 10 Sep 2005 13:25:02 +0200 Subject: [Bese-devel] *debug-on-error* Message-ID: hi, I've removed the global variable *debug-on-error* and replaced it with a method specialized on application objects. If you had any code which used *debug-on-error* you'll need to replace it with this: (debug-on-error (context.application *context*)) I've added a :debug-on-error initarg to the standard-application class and the example-app has, by default, :debug-on-error t while the admin app has :debug-on-error nil. -- -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 waldo at trianet.net Sat Sep 10 14:34:28 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 10:34:28 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <87psrpd1op.wl%bobstopper@bobturf.org> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87psrpd1op.wl%bobstopper@bobturf.org> Message-ID: <33C2E331-BC8D-42E5-ABE6-23CF4C54BEAD@trianet.net> Hey guys, First of all, thanks for everyone's comments. Sorry it's taken me so long to reply, but I'm just catching up. Robert, I understood all you said, but had one lingering item that kind of intrigued me from a Lisper's perspective (and I assume from your answer that you are a Lisper or may be others in the list can contribute): > rewrite rules take advantage of tail-calls. Furthermore, for > most web applications the time and space loss is small enough to be > negligible compared to getting all the other benefits of common > lisp. It may be more of a problem for web applications needing many, In your email you made reference to the trade off compared to "getting all the other benefits of common lisp". I assume you're referring to benefits as compared to Scheme. If you don't mind, can you elaborate briefly on this? For my edification purposes (and may be others in the list), could you give me a few bullet items of these benefits (e.g. CL vs Scheme)? Thanks, Waldo On Sep 3, 2005, at 10:08 PM, Robert Marlow wrote: > Just adding to what's already been said to expand on Scheme's native > support for continuations. > > Scheme's interesting not just for its native support for continuations > but also for its tail-call optimisation. This can mean considerable > time and space savings during heavy continuation use compared to a > language lacking tail-call optimisation since it recognises that many > of the extra function calls of continuation passing style need never > return. > > Quite a number of common lisp implementations do support tail-call > optimisation (usually after you've made some declaims) so it may not > even be an issue with UCW with these implementations, assuming UCW's > rewrite rules take advantage of tail-calls. Furthermore, for > most web applications the time and space loss is small enough to be > negligible compared to getting all the other benefits of common > lisp. It may be more of a problem for web applications needing many, > many calls and answers but such web applications would be rather > uncommon on the web (pardon the pun). > > I'm just talking from my general understanding of continuations > though, so Marco or someone can probably correct me on some > points. > > > At Sat, 3 Sep 2005 04:21:47 -0400, > Waldo Rubinstein wrote: > >> >> Hi All, >> >> I'm fairly new to both Lisp and Smalltalk (less than 6 months >> experience in each). The reason for my interest in these is because I >> feel, from what I have been reading, that both Seaside and UCW offer >> more practical solutions to the real-life problems I need to solve >> for developing web-based custom apps. >> >> I have to say I have spent more time learning about Smalltalk/Seaside >> than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW >> seem to provide a better roadmap and more stable platform. >> >> Then, after googling a bit more, I came across certain articles that >> point out some differences between Lisp and Scheme. Particularly on >> the topic of continuations and the fact that these are native to >> Scheme vs to both Smalltalk and Lisp. Then I wondered, if what I'm >> looking for is better support for continuation-based development, >> should I be looking into Scheme? >> >> Before I spent much time looking into Scheme, I decided to quickly >> glance at Scheme's support for some of the minimum requirements I >> have for web app development. For example, I need to access MySQL >> and/ >> or Postgres databases as well as the easy manipulation (mainly >> generation) of PDF and CSV files. Also, I would like to start using >> object databases more than relational databases. I didn't find much >> support for these in Scheme. However, I did come across some projects >> for both Lisp and Smalltalk to support my needs, which brought me >> back to wanting to learn more about UCW and Seaside. >> >> At this point, I'm wondering if there is anyone in this list that can >> shed some light into clearing up where I should be going. I've always >> been fascinated with Lisp, but never spent enough time to learn it. >> Now that I have some time, I'd like to know where I should be >> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know >> if I should really rule out Scheme and may be someone could also >> comment on it. >> >> Any information you can provide will really help, even if you can >> just point me to where I can read more and learn more to make a more >> informed decision. >> >> Thank you in advance, >> Waldo >> _______________________________________________ >> bese-devel mailing list >> bese-devel at common-lisp.net >> http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel >> > From waldo at trianet.net Sat Sep 10 14:39:38 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 10:39:38 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: References: <20050903182815.29721.qmail@web40628.mail.yahoo.com> Message-ID: If you all don't mind a novice question where can I learn more about the meaning of xxxx/cc? Is this some CL stuff? Or is this some UCW feature? There is definitely a huge performance impact, and I'd like to learn more about this. Thanks, Waldo On Sep 4, 2005, at 5:53 AM, Marco Baringer wrote: > Aleksandar Bakic writes: > > >>>> Working properly, at the cost of one or two orders of magnitude >>>> slowdown in the interpreted code. The interpreted code isn't a >>>> bottleneck, so don't worry about it. >>>> >> >> I suppose not everything is interpreted. Is it just code wrapped by >> with-call/cc, defaction and defmethod/cc, or is there more? Any >> suggestions on >> how to structure code to know easily which chunks of code are >> interpreted and >> which ones are compiled? >> > > anything within the body of a with-call/cc is interpreted, this > includes any macro which wraps with-call/cc, such as: > > defun/cc > defmethod/cc > defaction > defentry-point > > here's a half backed benchmark (note that this stresses the speed of > function calls, which in the interpreter are known to be slow): > > ARNESI> (defun fib (x) > (if (< x 2) > 1 > (+ (fib (- x 1)) > (fib (- x 2))))) > FIB > ARNESI> (time (fib 30)) > (FIB 30) took 386 milliseconds (0.386 seconds) to run. > Of that, 280 milliseconds (0.280 seconds) were spent in user mode > 0 milliseconds (0.000 seconds) were spent in system mode > 106 milliseconds (0.106 seconds) were spent executing > other OS processes. > > 1346269 > ARNESI> (defun/cc fib/cc (x) > (if (< x 2) > 1 > (+ (fib/cc (- x 1)) > (fib/cc (- x 2))))) > FIB/CC > ARNESI> (time (with-call/cc (fib/cc 30))) > (WITH-CALL/CC (FIB/CC 30)) took 510,689 milliseconds (510.689 > seconds) to run. > Of that, 214,840 milliseconds (214.840 seconds) were spent in user > mode > 37,720 milliseconds (37.720 seconds) were spent in system > mode > 258,129 milliseconds (258.129 seconds) were spent > executing other OS processes. > 90,336 milliseconds (90.336 seconds) was spent in GC. > 2,940,249,976 bytes of memory allocated. > > 1346269 > ARNESI> > > so it took 510 seconds vs 0.386 (~ 1300 times slower). the real cause > though is the difference in memory use: 2,940,249,976 bytes (2.73 GB) > vs. 0. that said, fib doesn't need call/cc, let's compare our fib with > this: > > ARNESI> (time (with-call/cc (fib 30))) > (WITH-CALL/CC (FIB 30)) took 345 milliseconds (0.345 seconds) to run. > Of that, 260 milliseconds (0.260 seconds) were spent in user mode > 0 milliseconds (0.000 seconds) were spent in system mode > 85 milliseconds (0.085 seconds) were spent executing other > OS processes. > 216 bytes of memory allocated. > > 1346269 > ARNESI> > > so if you have a piece of code you know to be slow just move it out > into a seperate function and call that (technically the intepreter > could do this enough, but it's just not worth the effort). > > -- > -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 bobstopper at bobturf.org Sat Sep 10 15:03:58 2005 From: bobstopper at bobturf.org (Robert Marlow) Date: Sat, 10 Sep 2005 23:03:58 +0800 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <33C2E331-BC8D-42E5-ABE6-23CF4C54BEAD@trianet.net> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87psrpd1op.wl%bobstopper@bobturf.org> <33C2E331-BC8D-42E5-ABE6-23CF4C54BEAD@trianet.net> Message-ID: <8764t99d7l.wl%bobstopper@bobturf.org> At Sat, 10 Sep 2005 10:34:28 -0400, > In your email you made reference to the trade off compared to > "getting all the other benefits of common lisp". I assume you're > referring to benefits as compared to Scheme. If you don't mind, can > you elaborate briefly on this? For my edification purposes (and may > be others in the list), could you give me a few bullet items of these > benefits (e.g. CL vs Scheme)? The benefits of CL compared to scheme, IMO, can be summarised in its wealth of libraries. In the core language there's a powerful object system (CLOS), a powerful condition system, useful debugging tools and it's general utilities. Implementations also often incrementally compile to machine code making them fast. Finally, there's a lot of software out there for CL that's useful such as CLSQL which is very useful for web apps and of course SLIME which is a great IDE. You could pull off the same stuff in a scheme implementation, I just don't happen to know of an implementation out there offering quite as much or if they do, they're usually not quite as formalised. If there were, I'd give serious consideration to using it. Scheme OTOH offers first class continuations (which are simulated in UCW), TCO, an arguably cleaner syntax and has a limited standard which means implementations aren't forced to support horrid things like packages in CL. Then again, I haven't used many scheme implementations... From waldo at trianet.net Sat Sep 10 15:13:22 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 11:13:22 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <431D9141.1000704@tech.coop> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> <431D9141.1000704@tech.coop> Message-ID: <4B15200B-D605-4A2D-AA04-15A78E0B7248@trianet.net> On Sep 6, 2005, at 8:53 AM, Drew Crampsie wrote: > Waldo Rubinstein wrote: > > >> During my testing of Squeak/Seaside, I tested several OODBs and >> quickly learned about its benefits, particularly for some of the >> applications I develop. I only came across a couple of efforts in >> Lisp for OODBs. One was Elephant and the other was PLOB. I >> haven't had a chance to use either one, but while reading about >> PLOB, I discovered that it requires a server application managed >> by U. of St. Andrews, but no one seems to be able to get that >> going (at least from what I read), and that piece may require >> license fees. Elephant seems promising, but then again, I haven't >> stressed tested it (I haven't stress tested anything in Lisp yet >> for that matter). >> > > There is a license problem with elephant as well, as it uses the > Berkeley DB. Not a problem if all your code is Open Source, or if > its in-house only, or you pay for a license. Not a problem > > I personally use clsql's O-R mapping, but there are a few other > options available. From what I read, clsql seems interesting. However, I'd like to see some more abstraction in the O-R mapping. I feel you have to do too much work to keep the O and the R synchronized. > > http://common-lisp.net/project/cl-prevalence/ > > "CL-PREVALENCE is an implementation of Object Prevalence for Common > Lisp. It was written by and is being maintained by Sven Van > Caekenberghe. CL-PREVALENCE is using S-XML for the XML > serialization protocol (there is also a more Lisp-like s-expression- > based serialization protocol)." > > http://common-lisp.net/project/cl-store/ > > " CL-STORE is a package written by Sean Ross for serializing and > deserializing CL objects from streams > It has been tested and works on - > > * SBCL (0.8.10.12) on Linux x86 > * CMUCL (CVS Head 2003-09-14) on Linux x86 > * CLISP (2.33) on Linux x86 and Windows > * Lispworks Personal Edition 4.3 on Linux x86 and Windows > * Allegro CL Trial Edition 6.2 [Linux (x86)] > * OpenMCL is supported but is largely untested. > * ECL (Embeddable Common-Lisp) 0.9d > > CL-STORE is licensed under the MIT Licence. " > > FWIW, the latter seems to be more active/supported, though i have > not used either for anything serious. They both seem interesting. Does anyone know of production use? Scalability? Performance? > > >> Overall, as far as UCW is concerned, I don't really know how >> involved the community is. Also, I don't know how committed the >> developers are to continually advance UCW. >> > > Very. Marco is constantly evolving UCW and arnesi, and this list > sees many patches sent from users/developers. I personally make my > living with UCW, so i can guarantee that it will have at least one > user for a long time :) For my own learning purposes, could you describe your use of UCW for production-based applications? Is there any public web site I can see your work, or for that matter, where I can see public usage of UCW? > > >> However, if only a fraction of what I saw in the rails community >> was active in this one, UCW could be at a completely different >> level within a month. >> > > I'm not sure comparing Rails with UCW is fair. From the UCW docs : > > "UCW deals with managing user interaction via HTTP and nothing > more, no database layer, no user authentication or security nor any > content management systems. This is an intentional design choice: > there is no way UCW could provide a single implementation of these > features which would well in every setup, so instead of trying to > be everything for everyone UCW will limit itself to help developers > deal with interacting via HTTP." > > and from the Rails page : > > "Rails is a full-stack, open-source web framework in Ruby for > writing real-world applications with joy and less code than most > frameworks spend doing XML sit-ups" > > The two projects have a very different focus, and very different > implementation strategies. UCW is a framework that you could > implement somthing like Rails in, like my own Lisp-on-Lines for > example (watch this list for upcoming 0.1 release), which provides > the "missing" ucw features (an introspective o-r mapping and a > presentation system for CLOS objects). Well, other than Lisp-on-Lines (which I haven't been able to find anywhere other than the wiki since http://versions.tech.coop/lisp-on- lines/ seems to be down), are there any other type of component-based web frameworks based on UCW? I think that if UCW's objective is mainly to become the best framework for abstracting the interaction of user <--> HTTP <--> UCW-based app, there should be someone out there focusing on the Lisp-on-Lines-type framework. > > >> Note to UCW team: I don't mean any disrespect nor do I intend on >> saying UCW is too infantile at this moment. I honestly haven't >> played enough with it and I'm only paraphrasing what others have >> mentioned. >> > > One of the problems is that UCW is not really for newbies, yet it > attracts a lot of people both new to CL and to CPS frameworks. > FWIW, i learned CL and UCW at the same time, but it was a bit of a > struggle. I can relate > > Once one is well versed in CL, and has played with continuations > enough to have a solid grasp on the concept, things get easier. > UCW's component model is very powerful, and i couldn't imagine > doing web-apps any other way, but it is _very_ different from most > other web frameworks. Can't wait to get there > > The other thing is that CPS based web stuff is new as well, and > we're still discovering things. There is room for improvement in > UCW, but finding out where that room is, is challenging :) > > >> As a matter of fact, if there is anything I can contribute, I >> would gladly do so. It's just that at this moment, my Lisp skills >> are not at the level I would expect in order to contribute to >> such a project. >> > > Both UCW and (especially) Lisp on Lines are a little short in the > documentation dept. The UCW source code is _very_ well documented, > but for some reason some people don't like to read docstrings :) > > I think a high-level overview of how components work would probably > help the n00b crowd a lot. Something like what is a component, and > what the slots PLACE, CONTINUATION, and CALLING-COMPONENT do, and > how it all interacts with call-component etc would be great, and us > 'insiders' are a little too close to the code to be able to explain > it to beginners. I can try hacking up some beginners docs based on my learning experience > > >> However, I can provide plenty of ideas to contribute, as long as >> there is someone out there willing to listen and formally work on >> a development roadmap. >> > > I'm always interested in good ideas, and i'm a pretty good listener :) > > drewc > Thanks, Waldo From waldo at trianet.net Sat Sep 10 15:15:36 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 11:15:36 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <431D9141.1000704@tech.coop> References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> <431D9141.1000704@tech.coop> Message-ID: <2AABB80D-60D9-412F-821D-8E0879FE1C06@trianet.net> BTW, I found these components very useful when I was learning Squeak/ Seaside: http://shorecomponents.seaside.st/ Maybe there is something like this in Lisp/UCW or maybe you can get great ideas for your Lisp-on-Lines Thanks, Waldo From waldo at trianet.net Sat Sep 10 15:23:16 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 11:23:16 -0400 Subject: [Bese-devel] UCW Installation In-Reply-To: References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: On Sep 6, 2005, at 4:02 AM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> Just as an FYI, I tried to install a fresh copy of UCW on a Mac OS >> machine with SBCL and came across a couple of problems: >> >> 1) The copy of UCW I downloaded via darcs (stable version) does not >> work with stable version of arnesi (darcs). It worked with >> arnesi_dev >> > > hm. that's not very nice is it :( > > try using ucw_dev and arnesi_dev, except for those times when i'm > being really stupid (doing things on the dev branch i should do on > other temporary branches) _dev is your best bet (unless you have > running code and you don't want to get api changes). Thanks. That worked. Both using the _dev versions. > > >> 2) After it finally compiled everything, the console shows: >> >> WARNING: Can't start slime server due to lack of threads. >> 2005-09-05T23:21.50 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up >> standard server #. >> >> I don't necessarily know what the WARNING means, however, looking at >> the next line, seems to indicate the server is running. >> > > this is just a fyi telling the user that they can't slime-connect. you > can safely ignore it (or use a lisp which has threads). > > the 'work around' to this, if you want to use slime's debugger for ucw > errors, is to load up bin/start.lisp but comment out the > (ucw:startup-server ucw:*default-server*) form and execute > (swank:create-server :dont-close t :external-format > (external-format-for :slime)). then connect to slime (M-x > slime-connect) and from the repl in emacs run (ucw:startup-server > ucw:*default-server*). you won't have an active repl you can execute > forms in but at least when there's a ucw error you can use slime's > debugger/inspector and the mighty slime-eval-in-frame. This brings up a couple of additional questions: 1) Are these errors specific to SBCL? 2) One thing that attracted me from what I read was the ability to debug and fix a running application (similar to what can be done with Squeak/Seaside). Will this impose any limitations to that end? 3) What will happen when UCW is handling many requests and some may take longer to execute (kind of blocking the VM)? Can some requests block other users from using the system? Say trigger an event from the browser where UCW needs to parse a very large text file and write the results to some persistent storage. Could this cause a problem? I found it did create a problem in Squeak/Seaside > > >> Unfortunately, when I go to http://localhost:8080/ucw/examples/ >> index.ucw, I get the following error: >> >> 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Error #> ERROR {10F3F6B9}> while serving action. >> 2005-09-05T23:22.07 +ERROR+ IT.BESE.UCW::UCW-LOGGER: Aborting action. >> Control stack guard page temporarily disabled: proceed with caution >> >> debugger invoked on a SB-KERNEL::CONTROL-STACK-EXHAUSTED: Control >> stack exhausted (no more space for function call frames). This is >> probably due to heavily nested or infinitely recursive function >> calls, or a tail call that SBCL cannot or has not optimized away. >> > > oh my. this is bad :( would you mind sending a complete backtrace? I don't know if it had anything to do with the fact that I was not using the latest versions of each. Once I tested ucw_dev and arnesi_dev, everything worked. I will try to load again ucw and arnesi_dev and see if I can replicate it. How can I get a complete backtrace? > > >> The Mac is running Mac OS X Tiger (10.4) with SBCL 0.9.4 >> > > i tried with 10.3.9 and sbcl 0.9.3.2, ucw_dev and arnesi_dev and the > examples ran fine. > > -- > -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 > Thanks, Waldo From waldo at trianet.net Sat Sep 10 15:29:47 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 11:29:47 -0400 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> Message-ID: <2E7BA1A1-F689-4E9A-BE7E-C69C5657C8E5@trianet.net> On Sep 6, 2005, at 5:22 AM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> I understand that continuations and tail-call optimization are native >> to Scheme. However, I like the UCW-way rather than what I have read >> on Scheme for web development. Granted, UCW is still in its >> childhood, as some refer, but that doesn't scare me much. When I >> started with rails, you could say it might have been at the same >> stage as UCW, but with alot of suggestions from a very active >> community and a dedicated team of developers, rails evolved very >> rapidly. >> > > just for the record: tco and continuations are two completely > orthogonal techniques. tco is basically an optimization technique (if > you had an infinite stack you'd never _need_ tco) while continuations > actually allow you exrpess things which previously were unexrpessable > (or very very difficult to express). > > ucw is a niche library running in a niche language, i strongly doubt > we'll ever have a community as big as rails'. so it goes. Although I appreciate your humble opinion, I think that with proper collaborative efforts, it can be as good/big as rails or better/bigger. >> During my testing of Squeak/Seaside, I tested several OODBs and >> quickly learned about its benefits, particularly for some of the >> applications I develop. I only came across a couple of efforts in >> Lisp for OODBs. One was Elephant and the other was PLOB. I haven't >> had a chance to use either one, but while reading about PLOB, I >> discovered that it requires a server application managed by U. of St. >> Andrews, but no one seems to be able to get that going (at least from >> what I read), and that piece may require license fees. Elephant seems >> promising, but then again, I haven't stressed tested it (I haven't >> stress tested anything in Lisp yet for that matter). >> > > i'm successfully using elephant on a production server. i contacted > sleepycat (they're pretty nice people and it doesn't hurt to ask): if > you run your app on a server then you don't pay license fees, only if > you start distributing berkeley db embedded inside a desktop app do > you need to pay the fees (and that becomes prohibitly expensive for > me). Then that wouldn't be a problem for me. >> Overall, as far as UCW is concerned, I don't really know how involved >> the community is. Also, I don't know how committed the developers are >> to continually advance UCW. >> > > ucw is one of the main tools my company uses to develop web based > apps, as long as we can keep finding clients ucw will continue to be > developed and maintained. Other than developing UCW, how does your company use UCW? Any sample public apps you can refer me to? Thanks, Waldo From waldo at trianet.net Sat Sep 10 15:30:27 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 11:30:27 -0400 Subject: [Bese-devel] UCW Installation In-Reply-To: References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: <6FB9EC43-8F36-4E6F-BE0A-2E0CDD67578C@trianet.net> On Sep 6, 2005, at 10:59 AM, Asbj?rn Bj?rnstad wrote: > > On 06 Sep 2005, at 4:02 PM, Marco Baringer wrote: > > >> Waldo Rubinstein writes: >> >> >>> 2) After it finally compiled everything, the console shows: >>> >>> WARNING: Can't start slime server due to lack of threads. >>> 2005-09-05T23:21.50 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up >>> standard server #. >>> >>> I don't necessarily know what the WARNING means, however, looking at >>> the next line, seems to indicate the server is running. >>> >>> >> >> this is just a fyi telling the user that they can't slime-connect. >> you >> can safely ignore it (or use a lisp which has threads). >> > > Doesn't it also mean that you will only be able to handle one > request at a time? (Which may or may not be a problem, but good > to be aware of. (Don't run off and do something that takes a > long time.)) > > -- > -asbjxrn > > This would be crazy? Is this normal behavior? - Waldo From frido at q-software-solutions.de Sat Sep 10 15:56:39 2005 From: frido at q-software-solutions.de (Friedrich Dominicus) Date: Sat, 10 Sep 2005 17:56:39 +0200 Subject: [Bese-devel] I'm in trouble again Message-ID: <87irx8udag.fsf@flarge.here> with a similar but now stripped down problem which I simply did not understand. Here's the code: The problem is "artificial" here but if it comes to integrating other things it probably will be needed (but in the case I did screw it up fully) - base idea - I have a backend object to store things - I have the view classes to display things - I have a controller in between which steers the whole stuff My idea was: - initialize the view is initialized from the store - after that the view steers the backend. (I know it could (but should?) be done in the defactions AFAIU, are the defaction the "controllers" in UCW. But let us assume I like to wrap up that stuff i in it's own "controller" class. The code below works till it comes to the save-and-show-data action. When it tries to render the next view I get the following error: The slot IT.BESE.UCW::PLACE is unbound in the object #. [Condition of type UNBOUND-SLOT] Restarts: 0: [SHOW-BACKTRACE] Send the client a backtrace page. 1: [RETRY] Clearout the response and retry calling the action. 2: [SERVER-ERROR] Send the client an internal server error page. 3: [GENERATE-BACKTRACE-FOR-EMACS] Generate a bug report in Emacs. 4: [ABORT-RESPONSE] Abort this response and answer another request 5: [TERMINATE-THREAD] Terminate this thread (#) The things I found with place in it are the following: COMPONENT.PLACE (fbound) MAKE-PLACE (fbound) IT.BESE.UCW::PLACE.FORM (fbound) IT.BESE.UCW::INITIALIZE-PLACE-SLOT (fbound) IT.BESE.UCW::CLONE-PLACE-VALUE (fbound) IT.BESE.UCW::COMPONENT-CLASS.PLACE-SLOT (fbound) IT.BESE.UCW::PLACE (fbound) IT.BESE.UCW::PLACE.COPYER (fbound) IT.BESE.UCW::PLACE-SLOT IT.BESE.UCW::PLACE.SETTER (fbound) IT.BESE.UCW::PLACE.GETTER (fbound) IT.BESE.UCW::REPLACE-AT-INDEX (fbound) IT.BESE.UCW::*SERVER-DUMP-PLACEHOLDER* (bound all this have to do with backtacking? Why do I need it here? However there are other slots unfilled: 0. CONTINUATION: "unbound" 1. CALLING-COMPONENT: "unbound" 2. PLACE: "unbound" Marc has written something about that in another mail: > Friedrich Dominicus writes: > > > Well ucw is way too much a mystery too me, as you've seen but giving > > up is not what I like to do. So I have a general question > > Do I understand it correctly that creating of a component can not be > > done with make-instance? > > it can be done (call macro expands into a make-instance form). however > the call-component method does some neccassary bookkeeping work (like > setting up the continuation, the place, the parent, etc.) which you'll > need to repeat if you just use make-instance. of course, this > bookkeeping stuff requires that there be a valid *context* object in > the dynamic environment. > > basically it can be done, but it's a goodly amoun of work. why are you > trying to do it? > so it should not be done that way I guess. Probably simple controller should not have a standard-component-class as metaclass. (see (1)), but if I drop it then I got this messages (as obscur to me) When attempting to test to see whether slot is bound (SLOT-BOUNDP), the slot IT.BESE.UCW::TRANSACTION-STACK is missing from the object #. [Condition of type SIMPLE-ERROR] Restarts: 0: [SERVER-ERROR] Send the client an internal server error page. 1: [GENERATE-BACKTRACE-FOR-EMACS] Generate a bug report in Emacs. 2: [ABORT-RESPONSE] Abort this response and answer another request 3: [TERMINATE-THREAD] Terminate this thread (#) I assume it's a fundamental miunderstanding on how UCW works from my side. Can anyone clarify it for me, please? Regards Friedrich (eval-when (:compile-toplevel :execute) (defparameter *simple-app* (make-instance 'cookie-session-application :url-prefix "/ucw/simple/" :tal-generator (make-instance 'yaclml:file-system-generator :cachep t :root-directories (list *ucw-tal-root*)) :www-roots (list *ucw-tal-root*))) ) so it seems I have to fill the slots manually, but I do not know how and if it's good idea (I feel it isn't) (defclass simple-controller () ((view-obj :accessor view-obj :initarg :view-obj) (db-obj :accessor db-obj :initarg :db-obj)) (:metaclass standard-component-class)) ;; needed ? (1) (defentry-point "index.ucw" (:application *simple-app*) () (call 'simple-view)) ;; (register-application *default-server* *simple-app*) (defmethod update-from-view ((controller simple-controller)) (setf (val (db-obj controller)) (read-client-value (val (view-obj controller))))) (defclass be-class () ((val :accessor val :initarg :val))) (defcomponent simple-text (simple-window-component) ((view-text :initarg :view-text :reader view-text) (db-text :initarg :db-text :reader db-text))) (defmethod render-on ((res response) (text simple-text)) (inspect text) (<:p "view data" (<:as-is (view-text text))) (<:p "database data" (<:as-is (db-text text)))) (defaction save-and-show-data ((controller simple-controller)) (inspect controller) (update-from-view controller) (call 'simple-text :view-text (format nil "view val = ~a~%" (read-client-value (val (view-obj controller)))) :db-text (format nil "db val = ~a~%" (val (db-obj controller))))) (defcomponent simple-view (simple-window-component standard-component) ((val :component (text-field :size 20 :maxlength 20) :accessor val :initarg :val))) (defmethod initialize-vfd ((view simple-view) (controller simple-controller)) (setf (ucw::client-value (val view)) (val (db-obj controller))) (setf (view-obj controller) view) (values)) (defmethod render-on ((res response) (view simple-view)) (let ((controller (make-instance 'simple-controller))) ;; initialize the backend data (setf (db-obj controller) (make-instance 'be-class :val "some value frido")) ;; use that data to initialize the store (initialize-vfd view controller) ( (Waldo Rubinstein's message of "Sat, 10 Sep 2005 11:23:16 -0400") References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: Waldo Rubinstein writes: > 1) Are these errors specific to SBCL? they are specific to any single thread lisp. recompile your sbcl and add threads. > 2) One thing that attracted me from what I read was the ability to > debug and fix a running application (similar to what can be done > with Squeak/Seaside). Will this impose any limitations to that > end? yes. within a single thread lisp you've only two ways two fix the code of the app: 1) from the repl in the admin app. 2) via sldb-eval-in-frame after an error has occured. neither of these are particularly convenient. you can get by with tese in production servers (where update are relativly rare) but i would strongly urge you to use not use a single threaded lisp for development. (i have an app which is developed on openmcl and then deployed on clisp+windows) > 3) What will happen when UCW is handling many requests and some may > take longer to execute (kind of blocking the VM)? Can some requests > block other users from using the system? Say trigger an event from > the browser where UCW needs to parse a very large text file and > write the results to some persistent storage. Could this cause a > problem? I found it did create a problem in Squeak/Seaside that is exactly what happens in a singel thread lisp. i strongly suggest you get a multi-threaded lisp, the free options are: linux: sbcl, cmucl darwin: openmcl on windows you'll need to buy allegro or lispworks (or port cmucl or sbcl to windows or add multi-threading to clisp). -- -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 Sep 10 17:29:05 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 10 Sep 2005 19:29:05 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) In-Reply-To: <2E7BA1A1-F689-4E9A-BE7E-C69C5657C8E5@trianet.net> (Waldo Rubinstein's message of "Sat, 10 Sep 2005 11:29:47 -0400") References: <44873E11-C741-452B-AD11-2EFAA5AE7570@trianet.net> <87u0h0t1lf.fsf@flarge.here> <747A9D9B-7FEB-4C31-96AC-D1875A8AAEAC@trianet.net> <2E7BA1A1-F689-4E9A-BE7E-C69C5657C8E5@trianet.net> Message-ID: Waldo Rubinstein writes: > Other than developing UCW, how does your company use UCW? Any sample > public apps you can refer me to? developing UCW is not where we make our money :) we make business apps which are never used outside of a private intranet (and if they are the only publicly available page is the login page). the only public ucw backed site is www.idiproject.com, but even this is trivial unless you login and use some of the query/analysis tools. so basically i've nothing to show you except ucw's own examples. -- -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 waldo at trianet.net Sun Sep 11 01:46:23 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 21:46:23 -0400 Subject: [Bese-devel] UCW Installation In-Reply-To: References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: I guess all these issues would be resolved with a thread-enabled Lisp version. I installed SBCL on Tiger from Darwinports, so I didn't really compile it. The Darwin 'port' took care of that for me and I guess it didn't enable threads. Reading about so many different versions of Lisp concerns me with regards to application compatibility. That's the reason I'm using SBCL because it runs on Mac as well as Linux. From a high level perspective, it may be a naive decision because the same "brand" of Lisp may run on multiple platforms with different compatibility levels. Because I'm new to Lisp, I wasn't sure if I developed an application on my Mac, will I be able to run in on my Linux production environment? I suppose that as long as my app conform to CL Standards, I should be OK. However, reading on CLISP's web site, it says it "implements most of the ANSI standard". Then, what open- source Lisp versions are out there are conform to ANSI standards so that applications "should" run unmodified across them? May be you guys that have more experience can briefly suggest which Lisps are more standards and that I can develop on Mac and deploy on Linux. Thanks again, Waldo On Sep 10, 2005, at 1:24 PM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> 1) Are these errors specific to SBCL? >> > > they are specific to any single thread lisp. recompile your sbcl and > add threads. > > >> 2) One thing that attracted me from what I read was the ability to >> debug and fix a running application (similar to what can be done >> with Squeak/Seaside). Will this impose any limitations to that >> end? >> > > yes. within a single thread lisp you've only two ways two fix the code > of the app: > > 1) from the repl in the admin app. > > 2) via sldb-eval-in-frame after an error has occured. > > neither of these are particularly convenient. you can get by with tese > in production servers (where update are relativly rare) but i would > strongly urge you to use not use a single threaded lisp for > development. (i have an app which is developed on openmcl and then > deployed on clisp+windows) > > >> 3) What will happen when UCW is handling many requests and some may >> take longer to execute (kind of blocking the VM)? Can some >> requests >> block other users from using the system? Say trigger an event from >> the browser where UCW needs to parse a very large text file and >> write the results to some persistent storage. Could this cause a >> problem? I found it did create a problem in Squeak/Seaside >> > > that is exactly what happens in a singel thread lisp. i strongly > suggest you get a multi-threaded lisp, the free options are: > > linux: sbcl, cmucl > darwin: openmcl > > on windows you'll need to buy allegro or lispworks (or port cmucl or > sbcl to windows or add multi-threading to clisp). > > -- > -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 waldo at trianet.net Sun Sep 11 03:14:19 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sat, 10 Sep 2005 23:14:19 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger Message-ID: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> Hi all, To this date, I have not been able to fully run all the sample applications successfully. Before, I had a problem with running ucw with arnesi_dev so I ended up running ucw_dev with arnesi_dev. Now, because of a "thread" limitation I have with SBCL on Tiger, I'm running OpenMCL. However, I can replicate the same problem with SBCL. Basically, I can only run some of the demo apps. I can run the Counter and Component Transaction apps with no problems. When I run the Form demo, I keep getting "IT.BESE.UCW::+UNINITIALIZED +" links next to the Integer/Decimal and Date prompts. Then no matter what I enter in those fields, I keep getting exceptions and taken to a backtrace screen. Once I do that, no other app in the demo works. Any idea? Is it because I'm using the _dev versions? Thanks, Waldo From der_julian at web.de Sun Sep 11 03:53:45 2005 From: der_julian at web.de (Julian Stecklina) Date: Sun, 11 Sep 2005 05:53:45 +0200 Subject: [Bese-devel] UCW Installation In-Reply-To: References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> Message-ID: <20050911055345.38d51021@localhost> On Sat, 10 Sep 2005 21:46:23 -0400 Waldo Rubinstein wrote: > I installed SBCL on Tiger from Darwinports, so I didn't really > compile it. The Darwin 'port' took care of that for me and I guess > it didn't enable threads. SBCL supports multithreading, but AFAIK only on Linux. We *BSD and Darwin/MacOSX guys are out of luck for the moment. I have bought an Allegro CL (which supports multi-threading) students license for FreeBSD ($99) and it really "pays". ;) > Reading about so many different versions of Lisp concerns me with > regards to application compatibility. That's the reason I'm using > SBCL because it runs on Mac as well as Linux. If you stick to one portability layer like, say, acl-compat, you should be on the safe side. > Because I'm new to Lisp, I wasn't sure if I developed an application > on my Mac, will I be able to run in on my Linux production > environment? I suppose that as long as my app conform to CL > Standards, I should be OK. However, reading on CLISP's web site, it > says it "implements most of the ANSI standard". Then, what open- > source Lisp versions are out there are conform to ANSI standards so > that applications "should" run unmodified across them? All major CL implementations are quite ANSI conform. This includes CMUCL, SBCL, ACL and CLISP. Even GCL and ECL which historically implemented CLtL2 (which predates ANSI CL) are now very close to ANSI CL. As a newbie it is very unlikely that you hit corners where these implementations disagree. At least if you stay away from anything that is "undefined" in the spec. > May be you guys that have more experience can briefly suggest which > Lisps are more standards and that I can develop on Mac and deploy on > Linux. I guess it makes sense to use OpenMCL on Mac and then switch to SBCL on Linux. If you use threads (or other things outside the spec) directly, consider the portability layer mentioned above. Regards, -- Julian Stecklina Lisp nearing the age of 50 is the most modern language out there. GC, dynamic, reflective, the best OO model extant including GFs, procedural macros, and the only thing old-fashioned about it is that it is compiled and fast. -- Kenny Tilton, comp.lang.python From waldo at trianet.net Sun Sep 11 04:29:00 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Sun, 11 Sep 2005 00:29:00 -0400 Subject: [Bese-devel] UCW Installation In-Reply-To: <20050911055345.38d51021@localhost> References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> <20050911055345.38d51021@localhost> Message-ID: <1D4550DC-0C46-4DA8-B950-4BE69FC3D0BB@trianet.net> Julian, Thanks for the advise. Very well received. - Waldo On Sep 10, 2005, at 11:53 PM, Julian Stecklina wrote: > On Sat, 10 Sep 2005 21:46:23 -0400 > Waldo Rubinstein wrote: > > >> I installed SBCL on Tiger from Darwinports, so I didn't really >> compile it. The Darwin 'port' took care of that for me and I guess >> it didn't enable threads. >> > > SBCL supports multithreading, but AFAIK only on Linux. We *BSD and > Darwin/MacOSX guys are out of luck for the moment. I have bought an > Allegro CL (which supports multi-threading) students license for > FreeBSD ($99) and it really "pays". ;) > > >> Reading about so many different versions of Lisp concerns me with >> regards to application compatibility. That's the reason I'm using >> SBCL because it runs on Mac as well as Linux. >> > > If you stick to one portability layer like, say, acl-compat, you > should > be on the safe side. > > >> Because I'm new to Lisp, I wasn't sure if I developed an application >> on my Mac, will I be able to run in on my Linux production >> environment? I suppose that as long as my app conform to CL >> Standards, I should be OK. However, reading on CLISP's web site, it >> says it "implements most of the ANSI standard". Then, what open- >> source Lisp versions are out there are conform to ANSI standards so >> that applications "should" run unmodified across them? >> > > All major CL implementations are quite ANSI conform. This includes > CMUCL, SBCL, ACL and CLISP. Even GCL and ECL which historically > implemented CLtL2 (which predates ANSI CL) are now very close to ANSI > CL. As a newbie it is very unlikely that you hit corners where these > implementations disagree. At least if you stay away from > anything that is "undefined" in the spec. > > >> May be you guys that have more experience can briefly suggest which >> Lisps are more standards and that I can develop on Mac and deploy on >> Linux. >> > > I guess it makes sense to use OpenMCL on Mac and then switch to > SBCL on > Linux. If you use threads (or other things outside the spec) directly, > consider the portability layer mentioned above. > > Regards, > -- > Julian Stecklina > > Lisp nearing the age of 50 is the most modern language out > there. GC, dynamic, reflective, the best OO model extant including > GFs, procedural macros, and the only thing old-fashioned about it > is that it is compiled and fast. -- Kenny Tilton, comp.lang.python > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > From bobstopper at bobturf.org Sun Sep 11 06:51:56 2005 From: bobstopper at bobturf.org (Robert Marlow) Date: Sun, 11 Sep 2005 14:51:56 +0800 Subject: [Bese-devel] UCW Installation In-Reply-To: <20050911055345.38d51021@localhost> References: <82DA1431-CD9E-4328-88CA-1CB0652FF7FD@trianet.net> <20050911055345.38d51021@localhost> Message-ID: <874q8s9jw3.wl%bobstopper@bobturf.org> At Sun, 11 Sep 2005 05:53:45 +0200, > SBCL supports multithreading, but AFAIK only on Linux. We *BSD and > Darwin/MacOSX guys are out of luck for the moment. I have bought an > Allegro CL (which supports multi-threading) students license for > FreeBSD ($99) and it really "pays". ;) Last I checked (a few months ago) SBCL only supports Linux 2.6.x running on IA-32. So Linux on powerpc and other architectures won't work either. From frido at q-software-solutions.de Mon Sep 12 07:45:45 2005 From: frido at q-software-solutions.de (Friedrich Dominicus) Date: Mon, 12 Sep 2005 09:45:45 +0200 Subject: [Bese-devel] I'm in trouble again In-Reply-To: <87irx8udag.fsf@flarge.here> (Friedrich Dominicus's message of "Sat, 10 Sep 2005 17:56:39 +0200") References: <87irx8udag.fsf@flarge.here> Message-ID: <87y862zq3a.fsf@flarge.here> I worked further on it and got to this point (defaction do-it-3 ((controller sc)) (update-from-view controller) (inspect *context*) (call 'simple-text :controller controller)) (defaction do-it-2 ((view simple-view) (controller sc)) (update-from-view controller) (inspect *context*) (call 'simple-text :controller controller)) and this (defmethod render-on ((res response) (view simple-view)) ;; this is not perfect but for the example it should be enough ;; (inspect view) (let ((controller (make-instance 'sc))) (setf (db-obj controller) (make-instance 'be-class :val "some value frido")) (initialize-vfd view controller) ( (Waldo Rubinstein's message of "Sat, 10 Sep 2005 23:14:19 -0400") References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> Message-ID: <87psreh0j9.fsf@neko.dyndns.org> On Sat Sep 10 2005 at 23:14, Waldo Rubinstein wrote: > When I run the Form demo, I keep getting "IT.BESE.UCW::+UNINITIALIZED > +" links next to the Integer/Decimal and Date prompts. Then no matter > what I enter in those fields, I keep getting exceptions and taken to > a backtrace screen. > I have exactly the same results running CMUCL on Linux. The other demos work great, but once I try the form demo page, I'm stuck. I can't figure out how to recover except by restarting. -- Craig McDaniel From waldo at trianet.net Mon Sep 12 13:55:23 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Mon, 12 Sep 2005 09:55:23 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <87psreh0j9.fsf@neko.dyndns.org> References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <87psreh0j9.fsf@neko.dyndns.org> Message-ID: For a moment, I thought I was the only one having problems :) Hopefully someone will comment on this. Thanks, Waldo On Sep 12, 2005, at 9:35 AM, Craig McDaniel wrote: > On Sat Sep 10 2005 at 23:14, Waldo Rubinstein > wrote: > > >> When I run the Form demo, I keep getting "IT.BESE.UCW::+UNINITIALIZED >> +" links next to the Integer/Decimal and Date prompts. Then no matter >> what I enter in those fields, I keep getting exceptions and taken to >> a backtrace screen. >> >> > > I have exactly the same results running CMUCL on Linux. The other > demos > work great, but once I try the form demo page, I'm stuck. I can't > figure > out how to recover except by restarting. > > -- > Craig McDaniel > From a_bakic at yahoo.com Mon Sep 12 14:51:52 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Mon, 12 Sep 2005 07:51:52 -0700 (PDT) Subject: [Bese-devel] two parse-integer fixes Message-ID: <20050912145152.64709.qmail@web40614.mail.yahoo.com> diff -rN old-ucw_dev/src/components/presentations.lisp new-ucw_dev/src/components/presentations.lisp 565c565 < (setf (presentation-slot-value slot instance) (parse-integer value))))))--- > (setf (presentation-slot-value slot instance) i))))) 620,623c620,622 < (setf (,accessor-name slot instance) < (if (string= "" value) < nil < (parse-integer value)))) --- > (let ((i (parse-integer value :junk-allowed t))) > (when i > (setf (,accessor-name slot instance) i)))) __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From mb at bese.it Tue Sep 13 07:18:31 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 13 Sep 2005 09:18:31 +0200 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> Message-ID: Waldo Rubinstein writes: > When I run the Form demo, I keep getting "IT.BESE.UCW::+UNINITIALIZED > +" links next to the Integer/Decimal and Date prompts. Then no matter > what I enter in those fields, I keep getting exceptions and taken to > a backtrace screen. > > Any idea? Is it because I'm using the _dev versions? there was a bug in the handling of integer-fields, it should be fixed now. can you try again? -- -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 Tue Sep 13 07:22:21 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 13 Sep 2005 09:22:21 +0200 Subject: [Bese-devel] UCW vs Seaside (and Scheme) References: <20050903182815.29721.qmail@web40628.mail.yahoo.com> Message-ID: Waldo Rubinstein writes: > If you all don't mind a novice question where can I learn more about > the meaning of xxxx/cc? Is this some CL stuff? Or is this some UCW > feature? There is definitely a huge performance impact, and I'd like > to learn more about this. all the /cc stuff is related to the interpreter. by wrapping code in with-call/cc you're trading execution time and memory space for the ability to have continuations, sometimes it's worth the tradeoff, sometimes it isn't. i once (quite a while ago) profiled a one of my ucw apps, about 0.5% of the execution time was being spent executing defaction forms. if you want faster ucw apps then implement two things: 1) optimized stream writing (on openmcl 40% of the time is spent in %write-to-buffer (or whatever it's called)) and 2) component caching (another 30% is spent rendering components). -- -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 waldo at trianet.net Tue Sep 13 08:23:11 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Tue, 13 Sep 2005 04:23:11 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> Message-ID: <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> I still encountered problems. On SBCL, I get this when launching start.lisp ; compiling (DEFMACRO DEFPRESENTATION ...) ; /Users/waldo/lisp/ucw_dev/src/components/presentations.fasl written ; compilation finished in 0:00:16 WARNING: COMPILE-FILE warned while performing # on #. debugger invoked on a SIMPLE-ERROR: Error during processing of --eval option "(|LOAD| \"bin/start.lisp \")": erred while invoking # on # 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: [CONTINUE] Ignore and continue with next --eval option. 3: [ABORT ] Skip rest of --eval options. 4: Skip to toplevel READ/EVAL/PRINT loop. 5: [QUIT ] Quit SBCL (calling #'QUIT, killing the process). ((LAMBDA (SB-IMPL::E)) #) 0] On OpenMCL, I get this: ; Warning: These Swank interfaces are unimplemented: ; (ACTIVATE-STEPPING ADD-FD-HANDLER ADD-SIGIO-HANDLER CALLS- WHO MACROEXPAND-ALL REMOVE-FD-HANDLERS REMOVE-SIGIO-HANDLERS SLDB- BREAK-AT-START SLDB-BREAK-ON-RETURN TOGGLE-TRACE) ; While executing: SWANK-BACKEND::WARN-UNIMPLEMENTED-INTERFACES ;Compiler warnings for "/Users/waldo/lisp/ucw_dev/src/components/ presentations.lisp" : ; Undeclared free variable SET-ACTION-PARAMETER (2 references), in (RENDER-LIST-ROW (LIST-PRESENTATION T T)). ; Undeclared free variable SET-ACTION-PARAMETER (3 references), in (RENDER-ON (RESPONSE PRESENTATION-SEARCH)). ; Undeclared free variable SET-ACTION-PARAMETER (2 references), in (RENDER-CRITERIA (RESPONSE PRESENTATION-SEARCH)). ; Undeclared free variable SET-ACTION-PARAMETER, in (RENDER-ON (RESPONSE NEGATED-CRITERIA)). > Error in process listener(1): Odd number of args to SETF : ((TIMESTAMP-SLOT-SECOND SLOT INSTANCE)). > While executing: SETF > Type :POP to abort. Type :? for other options. I just downloaded the latest _dev of both ucw and arnesi. Any ideas? Thanks, Waldo On Sep 13, 2005, at 3:18 AM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> When I run the Form demo, I keep getting "IT.BESE.UCW::+UNINITIALIZED >> +" links next to the Integer/Decimal and Date prompts. Then no matter >> what I enter in those fields, I keep getting exceptions and taken to >> a backtrace screen. >> >> Any idea? Is it because I'm using the _dev versions? >> > > there was a bug in the handling of integer-fields, it should be fixed > now. can you try again? > > -- > -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 frido at q-software-solutions.de Tue Sep 13 11:38:45 2005 From: frido at q-software-solutions.de (Friedrich Dominicus) Date: Tue, 13 Sep 2005 13:38:45 +0200 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> (Waldo Rubinstein's message of "Tue, 13 Sep 2005 04:23:11 -0400") References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> Message-ID: <878xy1ryd6.fsf@flarge.here> Waldo Rubinstein writes: > I still encountered problems. > > On SBCL, I get this when launching start.lisp > > ; compiling (DEFMACRO DEFPRESENTATION ...) > > ; /Users/waldo/lisp/ucw_dev/src/components/presentations.fasl written > ; compilation finished in 0:00:16 > WARNING: > COMPILE-FILE warned while performing # on > #. > > debugger invoked on a SIMPLE-ERROR: > Error during processing of --eval option "(|LOAD| \"bin/start.lisp > \")": > > erred while invoking # on > # > > Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. > have you tried to simple compile that file from the REPL? Regards Friedrich From waldo at trianet.net Tue Sep 13 14:54:05 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Tue, 13 Sep 2005 10:54:05 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <878xy1ryd6.fsf@flarge.here> References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> Message-ID: <8475A438-BFC1-43BD-AD9B-DE83196779C9@trianet.net> I get the same thing. - Waldo On Sep 13, 2005, at 7:38 AM, Friedrich Dominicus wrote: > Waldo Rubinstein writes: > > > >> I still encountered problems. >> >> On SBCL, I get this when launching start.lisp >> >> ; compiling (DEFMACRO DEFPRESENTATION ...) >> >> ; /Users/waldo/lisp/ucw_dev/src/components/presentations.fasl written >> ; compilation finished in 0:00:16 >> WARNING: >> COMPILE-FILE warned while performing #> {10003E19}> on >> #. >> >> debugger invoked on a SIMPLE-ERROR: >> Error during processing of --eval option "(|LOAD| \"bin/start.lisp >> \")": >> >> erred while invoking # on >> # >> >> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. >> >> >> > have you tried to simple compile that file from the REPL? > > Regards > Friedrich > > From a_bakic at yahoo.com Tue Sep 13 23:50:51 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Tue, 13 Sep 2005 16:50:51 -0700 (PDT) Subject: [Bese-devel] typo Message-ID: <20050913235051.89034.qmail@web40623.mail.yahoo.com> Hi, There is a typo in one of the most recent patches: diff -rN old-ucw_dev/src/components/presentations.lisp new-ucw_dev/src/components/presentations.lisp 622c622 < (setf (,accessor-name slot instance))))) --- > (setf (,accessor-name slot instance) i)))) Alex __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From waldo at trianet.net Wed Sep 14 00:12:07 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Tue, 13 Sep 2005 20:12:07 -0400 Subject: [Bese-devel] typo In-Reply-To: <20050913235051.89034.qmail@web40623.mail.yahoo.com> References: <20050913235051.89034.qmail@web40623.mail.yahoo.com> Message-ID: <9EF6649E-B265-477C-AB3D-0248D97D8952@trianet.net> I don't know if that's a typo. I'm VERY new to Lisp, but I think it's trying to assign the value of i: ... (let ((i (parse-integer value :junk-allowed t))) (when i (setf (,accessor-name slot instance) i)))) ... - Waldo On Sep 13, 2005, at 7:50 PM, Aleksandar Bakic wrote: > Hi, > > There is a typo in one of the most recent patches: > > diff -rN old-ucw_dev/src/components/presentations.lisp > new-ucw_dev/src/components/presentations.lisp > 622c622 > < (setf (,accessor-name slot instance))))) > --- > >> (setf (,accessor-name slot instance) i)))) >> > > Alex > > > > __________________________________ > Yahoo! Mail - PC Magazine Editors' Choice 2005 > http://mail.yahoo.com > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > From a_bakic at yahoo.com Wed Sep 14 00:17:44 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Tue, 13 Sep 2005 17:17:44 -0700 (PDT) Subject: [Bese-devel] typo In-Reply-To: <9EF6649E-B265-477C-AB3D-0248D97D8952@trianet.net> Message-ID: <20050914001744.32914.qmail@web40627.mail.yahoo.com> Yes, the patch I was referring to did not have the 'i' (and setf had an odd number of arguments). Alex --- Waldo Rubinstein wrote: > I don't know if that's a typo. I'm VERY new to Lisp, but I think it's > trying to assign the value of i: > > ... > (let ((i (parse-integer value :junk-allowed t))) > (when i > (setf (,accessor-name slot instance) i)))) > ... > > - Waldo > > On Sep 13, 2005, at 7:50 PM, Aleksandar Bakic wrote: > > > Hi, > > > > There is a typo in one of the most recent patches: > > > > diff -rN old-ucw_dev/src/components/presentations.lisp > > new-ucw_dev/src/components/presentations.lisp > > 622c622 > > < (setf (,accessor-name slot instance))))) > > --- > > > >> (setf (,accessor-name slot instance) i)))) > >> > > > > Alex > > > > > > > > __________________________________ > > Yahoo! Mail - PC Magazine Editors' Choice 2005 > > http://mail.yahoo.com > > _______________________________________________ > > bese-devel mailing list > > bese-devel at common-lisp.net > > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > > > > __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From waldo at trianet.net Wed Sep 14 00:19:28 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Tue, 13 Sep 2005 20:19:28 -0400 Subject: [Bese-devel] typo In-Reply-To: <20050914001744.32914.qmail@web40627.mail.yahoo.com> References: <20050914001744.32914.qmail@web40627.mail.yahoo.com> Message-ID: <25C8E46A-DE11-429D-8F89-6DC51F32DADE@trianet.net> I see. Sorry for the noise then. - Waldo On Sep 13, 2005, at 8:17 PM, Aleksandar Bakic wrote: > Yes, the patch I was referring to did not have the 'i' (and setf > had an odd > number of arguments). > > Alex > > --- Waldo Rubinstein wrote: > > >> I don't know if that's a typo. I'm VERY new to Lisp, but I think it's >> trying to assign the value of i: >> >> ... >> (let ((i (parse-integer value :junk-allowed t))) >> (when i >> (setf (,accessor-name slot instance) i)))) >> ... >> >> - Waldo >> >> On Sep 13, 2005, at 7:50 PM, Aleksandar Bakic wrote: >> >> >>> Hi, >>> >>> There is a typo in one of the most recent patches: >>> >>> diff -rN old-ucw_dev/src/components/presentations.lisp >>> new-ucw_dev/src/components/presentations.lisp >>> 622c622 >>> < (setf (,accessor-name slot instance))))) >>> --- >>> >>> >>>> (setf (,accessor-name slot instance) i)))) >>>> >>>> >>> >>> Alex >>> >>> >>> >>> __________________________________ >>> Yahoo! Mail - PC Magazine Editors' Choice 2005 >>> http://mail.yahoo.com >>> _______________________________________________ >>> bese-devel mailing list >>> bese-devel at common-lisp.net >>> http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel >>> >>> >> >> >> > > > > > __________________________________ > Yahoo! Mail - PC Magazine Editors' Choice 2005 > http://mail.yahoo.com > From waldo at trianet.net Wed Sep 14 00:20:39 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Tue, 13 Sep 2005 20:20:39 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <878xy1ryd6.fsf@flarge.here> References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> Message-ID: <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> I don't know if there are changed being made to the darcs ucw_dev repository, but I just downloaded the latest and greatest and now am getting a different error: ; loading system definition from ; /Users/waldo/.asdf-install-dir/systems/asdf-install.asd into ; # ; registering # as ASDF-INSTALL ; loading system definition from ; /Users/waldo/.asdf-install-dir/systems/parenscript.asd into ; # ; registering # as PARENSCRIPT ; loading system definition from ; /Users/waldo/.asdf-install-dir/systems/rfc2388.asd into # ; registering # as RFC2388 ; loading system definition from ; /Users/waldo/.asdf-install-dir/systems/swank.asd into # ; registering # as SWANK ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ swank-backend.dfsl"... ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ nregex.dfsl"... ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ metering.dfsl"... ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ swank-openmcl.dfsl"... ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ swank-gray.dfsl"... ;Loading #P"/Users/waldo/.slime/fasl/openmcl-0.14-darwin-powerpc/ swank.dfsl"... ; Warning: These Swank interfaces are unimplemented: ; (ACTIVATE-STEPPING ADD-FD-HANDLER ADD-SIGIO-HANDLER CALLS- WHO MACROEXPAND-ALL REMOVE-FD-HANDLERS REMOVE-SIGIO-HANDLERS SLDB- BREAK-AT-START SLDB-BREAK-ON-RETURN TOGGLE-TRACE) ; While executing: SWANK-BACKEND::WARN-UNIMPLEMENTED-INTERFACES ;Compiler warnings for "/Users/waldo/lisp/ucw_dev/src/components/ presentations.lisp" : ; Undeclared free variable SET-ACTION-PARAMETER (2 references), in (RENDER-LIST-ROW (LIST-PRESENTATION T T)). ; Undeclared free variable SET-ACTION-PARAMETER (3 references), in (RENDER-ON (RESPONSE PRESENTATION-SEARCH)). ; Undeclared free variable SET-ACTION-PARAMETER (2 references), in (RENDER-CRITERIA (RESPONSE PRESENTATION-SEARCH)). ; Undeclared free variable SET-ACTION-PARAMETER, in (RENDER-ON (RESPONSE NEGATED-CRITERIA)). > Error in process listener(1): Odd number of args to SETF : ((TIMESTAMP-SLOT-SECOND SLOT INSTANCE)). > While executing: SETF > Type :POP to abort. Type :? for other options. Any ideas on this one? Thanks, - Waldo On Sep 13, 2005, at 7:38 AM, Friedrich Dominicus wrote: > Waldo Rubinstein writes: > > >> I still encountered problems. >> >> On SBCL, I get this when launching start.lisp >> >> ; compiling (DEFMACRO DEFPRESENTATION ...) >> >> ; /Users/waldo/lisp/ucw_dev/src/components/presentations.fasl written >> ; compilation finished in 0:00:16 >> WARNING: >> COMPILE-FILE warned while performing #> {10003E19}> on >> #. >> >> debugger invoked on a SIMPLE-ERROR: >> Error during processing of --eval option "(|LOAD| \"bin/start.lisp >> \")": >> >> erred while invoking # on >> # >> >> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. >> >> > have you tried to simple compile that file from the REPL? > > Regards > Friedrich > From svg at surnet.ru Wed Sep 14 07:06:44 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Wed, 14 Sep 2005 13:06:44 +0600 (YEKST) Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> References: <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> Message-ID: <20050914.130644.251684439.svg@surnet.ru> Good day, waldo> I don't know if there are changed being made to the darcs ucw_dev waldo> repository, but I just downloaded the latest and greatest and now am waldo> getting a different error: ... waldo> ; Undeclared free variable SET-ACTION-PARAMETER (2 references), in waldo> (RENDER-LIST-ROW (LIST-PRESENTATION T T)). waldo> ; Undeclared free variable SET-ACTION-PARAMETER (3 references), in waldo> (RENDER-ON (RESPONSE PRESENTATION-SEARCH)). Yes, it is a bug in latest yaclml/ucw-tags.lisp. This code now works only if (Waldo Rubinstein's message of "Tue, 13 Sep 2005 20:20:39 -0400") References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> Message-ID: Waldo Rubinstein writes: > Any ideas on this one? maybe, just maybe, i made a stupid mistake :) updating ucw_dev should fix it. (and recompiling src/component/presentations.lisp (which is going to be removed soon anyway)) -- -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 Wed Sep 14 16:54:11 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 14 Sep 2005 18:54:11 +0200 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <20050914.130644.251684439.svg@surnet.ru> (Vladimir Sekissov's message of "Wed, 14 Sep 2005 13:06:44 +0600 (YEKST)") References: <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> <20050914.130644.251684439.svg@surnet.ru> Message-ID: Vladimir Sekissov writes: > Yes, it is a bug in latest yaclml/ucw-tags.lisp. This code now works only > if > I've tried to fix this but without success. can anybody suggest a way, reliably and portably, to change the value of a hidden text input parameter from javascript? (in the face of multiple independent forms on the same page generated by different components) -- -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 Wed Sep 14 16:55:16 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 14 Sep 2005 18:55:16 +0200 Subject: [Bese-devel] typo In-Reply-To: <20050913235051.89034.qmail@web40623.mail.yahoo.com> (Aleksandar Bakic's message of "Tue, 13 Sep 2005 16:50:51 -0700 (PDT)") References: <20050913235051.89034.qmail@web40623.mail.yahoo.com> Message-ID: Aleksandar Bakic writes: > Hi, > > There is a typo in one of the most recent patches: > > diff -rN old-ucw_dev/src/components/presentations.lisp > new-ucw_dev/src/components/presentations.lisp > 622c622 > < (setf (,accessor-name slot instance))))) > --- >> (setf (,accessor-name slot instance) i)))) thanks. sorry this took so long to fix, i've been very busy lately. -- -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 Wed Sep 14 16:58:39 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 14 Sep 2005 18:58:39 +0200 Subject: [Bese-devel] I'm in trouble again In-Reply-To: <87y862zq3a.fsf@flarge.here> (Friedrich Dominicus's message of "Mon, 12 Sep 2005 09:45:45 +0200") References: <87irx8udag.fsf@flarge.here> <87y862zq3a.fsf@flarge.here> Message-ID: Friedrich Dominicus writes: > giving do-it-2 as action works (although view is not used) > giving do-it-3 as action breaks. > > Could someone please explain that to me? actions always assume the first argument is the 'target' component for CALL forms. so when you do this: (defaction foo ((c component)) (call 'some-other-component)) we transfer control from C to an instance of SOME-OTHER-COMPONENT. so if you change things in such a way that the first parameter to an action is not a component the CALL macro breaks. If you really want to set things up this way (call an action which doesn't work off a component) you must use call-component (which is the function the CALL macro wraps): (defaction foo ((obj something-which-is-not-a-component)) (call-component (find-the-component) (make-instance 'some-other-component))) 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 waldo at trianet.net Wed Sep 14 18:41:28 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Wed, 14 Sep 2005 14:41:28 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> Message-ID: <9839D99E-D1D2-4696-89CD-D2063EA7612C@trianet.net> Well, Your latest patch fixed the problem launching UCW. However, I'm still have problems running the demo after I try the form demo. Once I go to the form demo, all other demos get broken. Waldo On Sep 14, 2005, at 12:52 PM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> Any ideas on this one? >> > > maybe, just maybe, i made a stupid mistake :) > > updating ucw_dev should fix it. (and recompiling > src/component/presentations.lisp (which is going to be removed soon > anyway)) > > -- > -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 waldo at trianet.net Wed Sep 14 18:54:21 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Wed, 14 Sep 2005 14:54:21 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: References: <69C2119A-342E-40D0-AAC2-01623C5C1785@trianet.net> <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> Message-ID: BTW, when running UCW under SBCL with no thread support, UCW stops working as soon as the exception is raised and needs to be manually restarted. Under OpenMCL, which natively supports threads in Mac OS, continues to operate with no problem (meaning that after I get the exception, I can start a new session without having to restart UCW). - Waldo On Sep 14, 2005, at 12:52 PM, Marco Baringer wrote: > Waldo Rubinstein writes: > > >> Any ideas on this one? >> > > maybe, just maybe, i made a stupid mistake :) > > updating ucw_dev should fix it. (and recompiling > src/component/presentations.lisp (which is going to be removed soon > anyway)) > > -- > -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 a_bakic at yahoo.com Wed Sep 14 18:52:29 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Wed, 14 Sep 2005 11:52:29 -0700 (PDT) Subject: [Bese-devel] defcomponent vs. defclass w/ metaclass Message-ID: <20050914185230.41574.qmail@web40606.mail.yahoo.com> Hi, Is there a reason for using defclass with :metaclass standard-component-class at many places, instead of just defcomponent? What do you gain? Thanks, Alex __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From svg at surnet.ru Wed Sep 14 21:02:00 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Thu, 15 Sep 2005 03:02:00 +0600 (YEKST) Subject: [Bese-devel] [PATCH] Fix `set-action-parameter' in ucw_dev/src/yaclml/ucw-tags.lisp In-Reply-To: References: <87irx8udag.fsf@flarge.here> <87y862zq3a.fsf@flarge.here> Message-ID: <20050915.030200.58452376.svg@surnet.ru> Good day, The patch in the attachment fixes 'set-action-parameter' bug in src/yaclml/ucw-tags.lisp. Code were tested with Mozilla FireFox 1.* but must work with other browsers too. It doesn't work in nested forms at least on Mozilla&Co because nested forms break Mozilla DOM model. Best Regards, Vladimir Sekissov -------------- next part -------------- New patches: [Fix set-action-parameter JS function svg at surnet.ru**20050914204726] { hunk ./src/yaclml/ucw-tags.lisp 9 +(defparameter +set-action-parameter-suffix+ + '-set-action-parameter) + +(defparameter +js-set-action-parameter-suffix+ + (js::symbol-to-js +set-action-parameter-suffix+)) + +(defun %set-action-parameter-name (form-id) + (intern (format nil "~a~a" form-id +set-action-parameter-suffix+))) + +(js::defjsmacro set-action-parameter (action) + `(let ((sap (+ this.form.id ,+js-set-action-parameter-suffix+))) + (setf sap (aref self sap)) + (sap ,action))) + hunk ./src/yaclml/ucw-tags.lisp 55 - (,set-action-parameter + (set-action-parameter hunk ./src/yaclml/ucw-tags.lisp 68 - (let ((form-id (js::symbol-to-js (js:gen-js-name :prefix "ucw-form"))) + (let ((form-id (js:gen-js-name :prefix "ucw-form")) hunk ./src/yaclml/ucw-tags.lisp 73 - (set-action-parameter (js:gen-js-name :prefix "ucw-form-set-action-parameter-"))) + (set-action-parameter (%set-action-parameter-name ,form-id))) hunk ./src/yaclml/ucw-tags.lisp 75 - :id ,form-id + :id ,(js::symbol-to-js form-id) hunk ./src/yaclml/ucw-tags.lisp 124 - (,set-action-parameter ,(register-action + (set-action-parameter ,(register-action hunk ./src/yaclml/ucw-tags.lisp 188 - (,set-action-parameter ,(make-new-action (context.current-frame *context*) + (set-action-parameter ,(make-new-action (context.current-frame *context*) } Context: [Fix thinko in the timestamp-slot presentation Marco Baringer **20050914150239] [parse-integer fixes (Patch by: Aleksandar Bakic ) Marco Baringer **20050913072452] [Make the method (debug-on-error null) use an internal variable *debug-on-error* to hold the default value. Marco Baringer **20050912073413 This new *debug-on-error* is differente from the old *debug-on-error* in that it sholud not be accessed directly and is not part of ucw's public api. ] [MAke printing of admin-repl's return values robust in the face of print errors Marco Baringer **20050910141831] [Each **20050910141720] [Added print-object method for standard-application Marco Baringer **20050910141610] [Export DEBUG-ON-ERORR and not *DEBUG-ON-ERROR* Marco Baringer **20050910112959] [Minor docstring fix Marco Baringer **20050910112948] [Removed the global variable *debug-on-error* Marco Baringer **20050910112229] [Make debug-on-error be a method and not a global variable. Marco Baringer **20050910111732 This change allows to control the value of *debug-on-error* based on the current app and not force one value on all the apps in the server. ] [Add in ensure-system-for-ucw whcih had been removed in a previous patch but is still neccessary Marco Baringer **20050910104436] [Change the default port back to 8080 Marco Baringer **20050910104407] [Load the applications with map Nathan Bird **20050908234136] [Attempt to guess the location of detachtty and attachtty (Patch by: Jamie Border ) Marco Baringer **20050909224843] [Default host should be 127.0.0.1. Marco Baringer **20050909080513] [Indentation and whitespace fixs to previous patches (no tabs in lisp code) Marco Baringer **20050909080102] [Merge the use-XYZ-backend functions from bin/utils.lisp into src/control.lisp Marco Baringer **20050909075356] [remove duplicate symbol export *ucw-tal-root* Nathan Bird **20050908231752] ['Simplify' start.lisp mostly by taking advantage of create-server Nathan Bird **20050908221901] [Remove lispworks note about ASDF. We must eb able to assume that basic setup of ASDF is done before loading UCW. Marco Baringer **20050909072739] [Revert to using the --eval argument to attachtty Marco Baringer **20050908175755] [Fix conflicts in previous patch Marco Baringer **20050908175308] [Small changes to make-image.lisp and control.lisp for Lispworks asbjxrn at bjxrnstad.net**20050908165654] [bin/ucwctl fixes Craig McDaniel **20050907190904] [THREADED-LISP-P for lispworks (Patch by: Asbj??rn Bj??rnstad ) Marco Baringer **20050908162753] [Added the hello and bye-bye functions Marco Baringer **20050907212148 these are actually really bady names, but i can't of anything better (and for some reason start/stop just doesn't appeal to me now). ] [Keep list of applications in a server sorted by the length of the url-prefix. This allows applications to 'shadow' other applications' url space. Marco Baringer **20050907004819] [Export the symbols for status-bar Jan Rychter **20050906140902] [Added status-bar component (Patch by: Vladimir Sekissov ) Marco Baringer **20050906091035] [Removed "ignore" declaration for two variables which are used. Peter Scott **20050904194151] [Remove notes regarding tla from the README Marco Baringer **20050901062836] [Added maxlength slot to text-field (Patch by: Friedrich Dominicus ) Marco Baringer **20050901062356] [added a bunch of docstrings Marco Baringer **20050831114350] [We need to use defmethod/cc, not just defmethod, in the presentations Marco Baringer **20050831110507] [Change the **20050831103142] [Change the example app to use initargs and not shared-initialize Marco Baringer **20050831103127] [Fixed typo in CSS mime-type code for httpd backend. drewc at tech.coop**20050827231400] [Fix a lisp-mode typo. Jan Rychter **20050829094417] [Rework sum example to use loop and backtracking Marco Baringer **20050828082311] [Argument for ucw.backend.dribble was missing binarin at gmail.com**20050827135018] [Add precise control of external format used for url unescaping, slime and http intercommunication binarin at gmail.com**20050827134632] [Fix typo ) Marco Baringer **20050827193931] [cmucl fixs. (Patch by: Mac Chan ) Marco Baringer **20050827112915] [Rewrite the sum examples to act as we expect it to in the presence of back tracking Marco Baringer **20050824170029] [Use parenscript instead of (concatenate 'string ... Marco Baringer **20050824125546] [Adde convenience functions to change ucw's logging levels Marco Baringer **20050824125459] [Refactoring in httpd backend Marco Baringer **20050824125423] [Added a logging statement in httpd backend Marco Baringer **20050824125337] [minor updates to TODO Marco Baringer **20050824125306] [Removed have-threads-p from bin/start.lisp. Use the threaded-lisp-p function from control.lisp instead. Marco Baringer **20050824125007] [Fix shutdown-backend method for araneida. (Patch by: Friedrich Dominicus ) (only two months late...) Marco Baringer **20050819082155] [Use prin1 (instead of the default princ) for printing the admin-repl's values. (Reported by: Pascal Bourguignon ) Marco Baringer **20050818145347] [The macro SHOW was being defined in standard-action.lisp, it' already defined with the template component. removed it. Marco Baringer **20050817100830] [Use swank-backend:close-socket to close the httpd backend's socket, not cl:close. Marco Baringer **20050814163132] [Use parenscript. New tag **20050814141501] [Added dependency on parenscript Marco Baringer **20050814135145] [Fix typos in README Marco Baringer **20050814135114] [Make the transaction-example component a task-component Marco Baringer **20050814111842] [standard-session-frame depends on macros defined in request-loop-error Marco Baringer **20050814111809] [Wrap calls to transaction continuations in with-call/cc, used kall and not funcall to continue a continuation. Marco Baringer **20050814111715] [The class is not called arnesi::cps-closure anymore, it's closure/cc Marco Baringer **20050812174701] [Added the Status header to the mod_lisp backend Marco Baringer **20050812122805] [Use arnesi:+cr-lf+ to get a CR-LF string Marco Baringer **20050812122742] [Change the logging statements so they're clearer and so that +info+ gives decent information Marco Baringer **20050812122701] [indentation fixup Marco Baringer **20050812114933] [form-component's submit action needs to use defaction, not just defmethod Marco Baringer **20050812114907] [Deal with method qualifiers in defaction forms Marco Baringer **20050812114752] [When serving files we try to infer the file type from the file's extension Marco Baringer **20050812114718] [Added a few debugging statements to the httpd backend Marco Baringer **20050812114647] [The Status header isn't really a header and the httpd backend needs to deal with it differently Marco Baringer **20050812113758] [Implement publish-directory for the httpd backend. Changed how handlers work in this backend. Marco Baringer **20050812090052] [The www-root for the damin app is "/ucw/admin/", not "/ucw/examples/" :( Marco Baringer **20050812071421] [Fix hint text for when yaclml is missing a required feature Marco Baringer **20050810053746] [Fix bug in DEFCOMPONENT's handling of :metaclass option (Reported by: Friedrich Dominicus ) Marco Baringer **20050809130342] [fix bug in ensure-system-has-feature Marco Baringer **20050809122624] [Added hint parameter to ensure-system-has-feature Marco Baringer **20050809112951] [Fix bug in log messages in araneida backend (Reported by: Friedrich Dominicus ) Marco Baringer **20050809064728] [When a component-slot is passed the :component keyword we need to setup the slot for backtracking Marco Baringer **20050809055756] [Minor refactoring in initialize-backtracking Marco Baringer **20050809054005] [Minor formatting touchup in generate-backtrace-for-emacs Marco Baringer **20050807140906] [Setup *current-condition* and *current-backtrace* in the server's handler-bind (the one which takes care of internal ucw errors) Marco Baringer **20050807135042] [Added the generate-backtrace-for-emacs restart Marco Baringer **20050807134832 This new restart requires some really hacky stuff that we'll probably need to redo later on (we pass the condition and the backtrace from the handler to the restart via two special variables). ] [Rework error handling methods Marco Baringer **20050807122844 We've changed the API of handle-request-error and handle-action-error from (condition request response) to (conndition backtrace). we now collect the backtrace as soon as the error handler kicks, this removes some useless frames whcih were previously being inserted. we've also introduced the with-action-error-handler macro and a defgeneric form for handle-action-error. the methods on handle-request-error have been rewritten to use the new with-error-page macro. ] [Use DEFCOMPONENT's new options in the examples Marco Baringer **20050807122639] [Extend and refactor the DEFCOMPONENT macro. (see new docstring for details) Marco Baringer **20050807121844] [Added a few logging statements Marco Baringer **20050807091151] [Don't use ITERATE around **20050807075849] [Don't copy backtrack values in save-backtrack (this isn't neccessary for proper backtracking) Marco Baringer **20050806093402] [Fix backtracking on non immediate objects Marco Baringer **20050806090550 This changes the times when values are copied in the backtracking stuff. Previously we'd copy when saving the bt list and when cloning it, we now copy when saving, when restoring, but not when cloning. The previous implementation caused already stored backtracked values to be modified, when they'd later be restorted they'd have values which didn't reflect what the user (and the developer) expects (this is bad). ] [Added, and initialized, the generating-frame slot to standard-session-frame. Marco Baringer **20050806090059] [removed standard-application's service :after method Marco Baringer **20050806085933 The method was just calling save-backtracked, standard-session-frame already does that and is the 'proper' place for thaht stuff. ] [Fix various typos/thinkos on control.lisp Marco Baringer **20050806082907] [Make the inspector output more readable (Patch by: William Halliburton ) Marco Baringer **20050806054207] [Fix slot options for deleteablep in list-presentation (Reported by: Pascal Bourguignon ) Marco Baringer **20050805073024] [Properly deal with the backtracking of unbound slots Marco Baringer **20050803095347] [Remove the update.sh script Marco Baringer **20050802161726] [Change API of MAKE-BACKEND Marco Baringer **20050802111231] [Another type in the defgeneric form for make-backend Marco Baringer **20050802110327] [Fix typo and change error message in the default method for MAKE-BACKEND Marco Baringer **20050802110151] [Need to wrap the form passed on <:select :on-change in a with-call/cc Marco Baringer **20050729105241] [Since call-inspector is a /cc method we need to call it within a with-call/cc form Marco Baringer **20050726095455] [Since the getter/setter of a PLACE object can be cps-closure objects we need to treat them explicitly Marco Baringer **20050726095425] [Even window components must use KALL and not FUNCALL for their continutation :) Marco Baringer **20050726095333] [Removed call to arnesi:assert-cc Marco Baringer **20050725121348] [Wrap call to the cc method START in a with-call/cc Marco Baringer **20050723133329] [Continuations are now called using ARNESI:KALL, not FUNCALL Marco Baringer **20050723133311] [Actions need to be wrapped in with-call/cc Marco Baringer **20050723113039] [Rename GET-BACKEND to MAKE-BACKEND Marco Baringer **20050801143643] [Edit CREATE-SERVER so that it properly updates *debug-on-error* and *inspect-components* Marco Baringer **20050801143254] [Remove spurious double lines between method definitions Marco Baringer **20050801142440] [Minor doc string fixups to GET-BACKEND Marco Baringer **20050801142247] [Added copyright notice to src/control.lisp Marco Baringer **20050801134638] [Lisp startable UCW Robert Marlow **20050801050720 This should allow UCW to be easily startable from within lisp rather than from loading lisp start.lisp. The function for doing this is named create-server. ucwctl has been changed to make use of the new functionality but should work as it did before. defentry-point can now be used before its application has been attached to a server - when the application is attached to a server its entry points will then automatically be added. This makes it possible to load up system definitions containing defentry-points without having a running server beforehand. Thus lisp images can then be dumped containing full applications rather than just UCW. A get-backend method has been defined which creates a backend according to its arguments. It is also able to automatically choose a sensible default from currently loaded backends. It can also accept an existing, running server as a backend in which case it simply wraps it with a sensible UCW backend and returns it. This allows UCW applications to be attached to already running HTTP servers rather than requiring fresh servers be started by UCW. So far it's only been implemented for Araneida. I've only really tested the araneida and (briefly) HTTPD backends but the method of starting the backends should be similar to how start.lisp worked so I'm hoping I haven't broken anything. ] [bash -> sh Julian Stecklina **20050731145119] [Use defcomponent instead of defclass for simple-template-component Marco Baringer **20050726095406] [When creating the string for request paramteers use the same element-type as the raw-uri array Marco Baringer **20050730114429] [Instead of looking for a property named VERSIONS we now call it :FEATURES. Updated the error message accordingly Marco Baringer **20050729103158] [Renamed 'version' to 'feature' in asdf property check. added check for cps-interpreter Marco Baringer **20050728120322] [Changes to the stylesheet Marco Baringer **20050728120129] [Added the "top-level" retry render-on restart Marco Baringer **20050726122803] [When printing the 'retry rendering' restart added the component object which caused the error Marco Baringer **20050726122740] [template-component-environment methods must always return a fresh list Marco Baringer **20050725121551] [Make the wiki example use the show-window macro Marco Baringer **20050725121447] [Added SHOW and SHOW-WINDOW macros Marco Baringer **20050725121421] [Post method for login component matley at innerloop.it**20050724142609] [Added initarg to client-value (form-component) matley at innerloop.it**20050723142419] [Little typo bugfix matley at innerloop.it**20050722200835] [Change the CALL macro to check for window-component'ness when used in entry-points Marco Baringer **20050723102841] [Fix the upload example Marco Baringer **20050721155417] [Only create a mime-part object for those mime-parts which have headers other than just "name" Marco Baringer **20050721155338] [Only use copy-seq on the request parameters if thay are strings (as opposed to mime-part objects) Marco Baringer **20050721154259] [Export the mime-part accessors Marco Baringer **20050721154124] [Update component slots and backtrack slots when reinitializing component classes Marco Baringer **20050718172834] [Allow defcomponent slot forms to be symbols (some effect as with defclass) Marco Baringer **20050718171831] [More accurate information regarding versions and how to get the software. Jos?? Pablo Ezequiel Fern??ndez **20050718033950] [More changes regarding dependencies. Jos?? Pablo Ezequiel Fern??ndez **20050717214720] [Some clear statements about the dependencies (more is still neede). Jos?? Pablo Ezequiel Fern??ndez **20050717213407] [Make ucw's installation directory an explicit configuration variable in make-image.lisp Marco Baringer **20050717191936] [Remove useless debugging code from ucw-tags.lisp Marco Baringer **20050717191301] [Fix handling of HTTR response status codes in aserve backend (Patch by: Antonio Menezes Leitao ) Marco Baringer **20050717190254] [Fix handling of HTTP request/respons headers in aserve backend. (Patch by: Antonio Menezes Leitao ) Marco Baringer **20050717185826] [Initial Import from arch Marco Baringer **20050706133829 This patch is exactly equal to ucw-2004 at common-lisp.net/ucw--dev--0.3--patch-426 it simply represents the move over to darcs. ] [Added boring file Marco Baringer **20050706132641] Patch bundle hash: 85c4614b8891911890c494a27dbbd74bc1ed9d5f From mb at bese.it Wed Sep 14 23:13:26 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 15 Sep 2005 01:13:26 +0200 Subject: [Bese-devel] is ucw worth it? Message-ID: i got klined from freenode.org but i read that question ('is ucw worth it?') off meme and i figured this is as good a place as any to answer: depends. ucw is worth the effort iff your application's ui fits into this model: - everything on the screen represents an object - all the user does is interact with objects on the screen - objects on the screen ask other objects to do some of the work for them. when they do this the other objects take over the screen until their work is done. don't let the mvc bastards fool you, not all apps fit into this model. what do you lose by following this model: - your application is no longer 'page based' (a single page my be composed of multiple interacting objects). you start working against all the page based tools out there (and all the experience we, the general web community, have built up regarding web apps). - the idea of a 'url' representing a single piece of data (REST) makes no sense. caches and proxies become and impedement and not a usefull tool. what do you gain by following this model: - you can very easily reuse bits of the ui in different contexts for different purposes. - you can do this to make sure that users are logged in before acessing a private part of the app (no matter how they get there): (defmethod start :before ((whatever private-task-mixin) &rest args) (declare (ignore args)) (unless (get-session-value 'user) (call 'login))) [Larry D'Anna: you rock] p.s. - the fact that i can bend any app into this model only proves that i've put too much time into ucw. :) p.p.s. - i want to be the first person to tell new ucw users to look before they jump; ucw is a different mindset, it may very well not be worth the effort to learn 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 a_bakic at yahoo.com Thu Sep 15 07:27:54 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 15 Sep 2005 00:27:54 -0700 (PDT) Subject: [Bese-devel] [PATCH] Fix `set-action-parameter' in ucw_dev/src/yaclml/ucw-tags.lisp In-Reply-To: <20050915.030200.58452376.svg@surnet.ru> Message-ID: <20050915072754.19756.qmail@web40613.mail.yahoo.com> > It doesn't work in nested forms at least on Mozilla&Co because nested > forms break Mozilla DOM model. Could you please provide a reference or explain briefly what exactly breaks? I am using Firefox (1.01 and 1.5beta), and nested forms (at least those in the examples) are rendered correctly and even submit buttons correctly work when duplicate s/f/a input elements and neighboring script elements are removed. (Without duplicate s/f/a input elements and duplicate SetActionParameter function definitions in neighboring script elements, it is not necessary to generate unique names for the functions.) Alex ______________________________________________________ Yahoo! for Good Donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/ From svg at surnet.ru Thu Sep 15 08:27:21 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Thu, 15 Sep 2005 14:27:21 +0600 (YEKST) Subject: [Bese-devel] [PATCH] Fix `set-action-parameter' in ucw_dev/src/yaclml/ucw-tags.lisp In-Reply-To: <20050915072754.19756.qmail@web40613.mail.yahoo.com> References: <20050915.030200.58452376.svg@surnet.ru> <20050915072754.19756.qmail@web40613.mail.yahoo.com> Message-ID: <20050915.142721.42780282.svg@surnet.ru> Good day, a_bakic> > It doesn't work in nested forms at least on Mozilla&Co because nested a_bakic> > forms break Mozilla DOM model. a_bakic> a_bakic> Could you please provide a reference or explain briefly what exactly breaks? I a_bakic> am using Firefox (1.01 and 1.5beta), and nested forms (at least those in the a_bakic> examples) are rendered correctly and even submit buttons correctly work when a_bakic> duplicate s/f/a input elements and neighboring script elements are removed. a_bakic> (Without duplicate s/f/a input elements and duplicate SetActionParameter a_bakic> function definitions in neighboring script elements, it is not necessary to a_bakic> generate unique names for the functions.) I've upgraded FireFox under my Gentoo to 1.06 version and now it works with nested forms, sorry for malinformation. Probably the problem was only in my "hand-made" FireFox and Mozilla versions. JS couldn't find function by name in nested form. I've also fixed my own typo so if you want to use this patch use the one in attachment. Best Regards, Vladimir Sekissov -------------- next part -------------- New patches: [Fix set-action-parameter JS function svg at surnet.ru**20050914204726] { hunk ./src/yaclml/ucw-tags.lisp 9 +(defparameter +set-action-parameter-suffix+ + '-set-action-parameter) + +(defparameter +js-set-action-parameter-suffix+ + (js::symbol-to-js +set-action-parameter-suffix+)) + +(defun %set-action-parameter-name (form-id) + (intern (format nil "~a~a" form-id +set-action-parameter-suffix+))) + +(js::defjsmacro set-action-parameter (action) + `(let ((sap (+ this.form.id ,+js-set-action-parameter-suffix+))) + (setf sap (aref self sap)) + (sap ,action))) + hunk ./src/yaclml/ucw-tags.lisp 55 - (,set-action-parameter + (set-action-parameter hunk ./src/yaclml/ucw-tags.lisp 68 - (let ((form-id (js::symbol-to-js (js:gen-js-name :prefix "ucw-form"))) + (let ((form-id (js:gen-js-name :prefix "ucw-form")) hunk ./src/yaclml/ucw-tags.lisp 73 - (set-action-parameter (js:gen-js-name :prefix "ucw-form-set-action-parameter-"))) + (set-action-parameter (%set-action-parameter-name ,form-id))) hunk ./src/yaclml/ucw-tags.lisp 75 - :id ,form-id + :id ,(js::symbol-to-js form-id) hunk ./src/yaclml/ucw-tags.lisp 124 - (,set-action-parameter ,(register-action + (set-action-parameter ,(register-action hunk ./src/yaclml/ucw-tags.lisp 188 - (,set-action-parameter ,(make-new-action (context.current-frame *context*) + (set-action-parameter ,(make-new-action (context.current-frame *context*) } [Typo fix svg at surnet.ru**20050915081215] { hunk ./src/yaclml/ucw-tags.lisp 68 - (let ((form-id (js:gen-js-name :prefix "ucw-form")) + (let ((form-id (symbol-name (js:gen-js-name :prefix "ucw-form"))) } Context: [Fix thinko in the timestamp-slot presentation Marco Baringer **20050914150239] [parse-integer fixes (Patch by: Aleksandar Bakic ) Marco Baringer **20050913072452] [Make the method (debug-on-error null) use an internal variable *debug-on-error* to hold the default value. Marco Baringer **20050912073413 This new *debug-on-error* is differente from the old *debug-on-error* in that it sholud not be accessed directly and is not part of ucw's public api. ] [MAke printing of admin-repl's return values robust in the face of print errors Marco Baringer **20050910141831] [Each **20050910141720] [Added print-object method for standard-application Marco Baringer **20050910141610] [Export DEBUG-ON-ERORR and not *DEBUG-ON-ERROR* Marco Baringer **20050910112959] [Minor docstring fix Marco Baringer **20050910112948] [Removed the global variable *debug-on-error* Marco Baringer **20050910112229] [Make debug-on-error be a method and not a global variable. Marco Baringer **20050910111732 This change allows to control the value of *debug-on-error* based on the current app and not force one value on all the apps in the server. ] [Add in ensure-system-for-ucw whcih had been removed in a previous patch but is still neccessary Marco Baringer **20050910104436] [Change the default port back to 8080 Marco Baringer **20050910104407] [Load the applications with map Nathan Bird **20050908234136] [Attempt to guess the location of detachtty and attachtty (Patch by: Jamie Border ) Marco Baringer **20050909224843] [Default host should be 127.0.0.1. Marco Baringer **20050909080513] [Indentation and whitespace fixs to previous patches (no tabs in lisp code) Marco Baringer **20050909080102] [Merge the use-XYZ-backend functions from bin/utils.lisp into src/control.lisp Marco Baringer **20050909075356] [remove duplicate symbol export *ucw-tal-root* Nathan Bird **20050908231752] ['Simplify' start.lisp mostly by taking advantage of create-server Nathan Bird **20050908221901] [Remove lispworks note about ASDF. We must eb able to assume that basic setup of ASDF is done before loading UCW. Marco Baringer **20050909072739] [Revert to using the --eval argument to attachtty Marco Baringer **20050908175755] [Fix conflicts in previous patch Marco Baringer **20050908175308] [Small changes to make-image.lisp and control.lisp for Lispworks asbjxrn at bjxrnstad.net**20050908165654] [bin/ucwctl fixes Craig McDaniel **20050907190904] [THREADED-LISP-P for lispworks (Patch by: Asbj??rn Bj??rnstad ) Marco Baringer **20050908162753] [Added the hello and bye-bye functions Marco Baringer **20050907212148 these are actually really bady names, but i can't of anything better (and for some reason start/stop just doesn't appeal to me now). ] [Keep list of applications in a server sorted by the length of the url-prefix. This allows applications to 'shadow' other applications' url space. Marco Baringer **20050907004819] [Export the symbols for status-bar Jan Rychter **20050906140902] [Added status-bar component (Patch by: Vladimir Sekissov ) Marco Baringer **20050906091035] [Removed "ignore" declaration for two variables which are used. Peter Scott **20050904194151] [Remove notes regarding tla from the README Marco Baringer **20050901062836] [Added maxlength slot to text-field (Patch by: Friedrich Dominicus ) Marco Baringer **20050901062356] [added a bunch of docstrings Marco Baringer **20050831114350] [We need to use defmethod/cc, not just defmethod, in the presentations Marco Baringer **20050831110507] [Change the **20050831103142] [Change the example app to use initargs and not shared-initialize Marco Baringer **20050831103127] [Fixed typo in CSS mime-type code for httpd backend. drewc at tech.coop**20050827231400] [Fix a lisp-mode typo. Jan Rychter **20050829094417] [Rework sum example to use loop and backtracking Marco Baringer **20050828082311] [Argument for ucw.backend.dribble was missing binarin at gmail.com**20050827135018] [Add precise control of external format used for url unescaping, slime and http intercommunication binarin at gmail.com**20050827134632] [Fix typo ) Marco Baringer **20050827193931] [cmucl fixs. (Patch by: Mac Chan ) Marco Baringer **20050827112915] [Rewrite the sum examples to act as we expect it to in the presence of back tracking Marco Baringer **20050824170029] [Use parenscript instead of (concatenate 'string ... Marco Baringer **20050824125546] [Adde convenience functions to change ucw's logging levels Marco Baringer **20050824125459] [Refactoring in httpd backend Marco Baringer **20050824125423] [Added a logging statement in httpd backend Marco Baringer **20050824125337] [minor updates to TODO Marco Baringer **20050824125306] [Removed have-threads-p from bin/start.lisp. Use the threaded-lisp-p function from control.lisp instead. Marco Baringer **20050824125007] [Fix shutdown-backend method for araneida. (Patch by: Friedrich Dominicus ) (only two months late...) Marco Baringer **20050819082155] [Use prin1 (instead of the default princ) for printing the admin-repl's values. (Reported by: Pascal Bourguignon ) Marco Baringer **20050818145347] [The macro SHOW was being defined in standard-action.lisp, it' already defined with the template component. removed it. Marco Baringer **20050817100830] [Use swank-backend:close-socket to close the httpd backend's socket, not cl:close. Marco Baringer **20050814163132] [Use parenscript. New tag **20050814141501] [Added dependency on parenscript Marco Baringer **20050814135145] [Fix typos in README Marco Baringer **20050814135114] [Make the transaction-example component a task-component Marco Baringer **20050814111842] [standard-session-frame depends on macros defined in request-loop-error Marco Baringer **20050814111809] [Wrap calls to transaction continuations in with-call/cc, used kall and not funcall to continue a continuation. Marco Baringer **20050814111715] [The class is not called arnesi::cps-closure anymore, it's closure/cc Marco Baringer **20050812174701] [Added the Status header to the mod_lisp backend Marco Baringer **20050812122805] [Use arnesi:+cr-lf+ to get a CR-LF string Marco Baringer **20050812122742] [Change the logging statements so they're clearer and so that +info+ gives decent information Marco Baringer **20050812122701] [indentation fixup Marco Baringer **20050812114933] [form-component's submit action needs to use defaction, not just defmethod Marco Baringer **20050812114907] [Deal with method qualifiers in defaction forms Marco Baringer **20050812114752] [When serving files we try to infer the file type from the file's extension Marco Baringer **20050812114718] [Added a few debugging statements to the httpd backend Marco Baringer **20050812114647] [The Status header isn't really a header and the httpd backend needs to deal with it differently Marco Baringer **20050812113758] [Implement publish-directory for the httpd backend. Changed how handlers work in this backend. Marco Baringer **20050812090052] [The www-root for the damin app is "/ucw/admin/", not "/ucw/examples/" :( Marco Baringer **20050812071421] [Fix hint text for when yaclml is missing a required feature Marco Baringer **20050810053746] [Fix bug in DEFCOMPONENT's handling of :metaclass option (Reported by: Friedrich Dominicus ) Marco Baringer **20050809130342] [fix bug in ensure-system-has-feature Marco Baringer **20050809122624] [Added hint parameter to ensure-system-has-feature Marco Baringer **20050809112951] [Fix bug in log messages in araneida backend (Reported by: Friedrich Dominicus ) Marco Baringer **20050809064728] [When a component-slot is passed the :component keyword we need to setup the slot for backtracking Marco Baringer **20050809055756] [Minor refactoring in initialize-backtracking Marco Baringer **20050809054005] [Minor formatting touchup in generate-backtrace-for-emacs Marco Baringer **20050807140906] [Setup *current-condition* and *current-backtrace* in the server's handler-bind (the one which takes care of internal ucw errors) Marco Baringer **20050807135042] [Added the generate-backtrace-for-emacs restart Marco Baringer **20050807134832 This new restart requires some really hacky stuff that we'll probably need to redo later on (we pass the condition and the backtrace from the handler to the restart via two special variables). ] [Rework error handling methods Marco Baringer **20050807122844 We've changed the API of handle-request-error and handle-action-error from (condition request response) to (conndition backtrace). we now collect the backtrace as soon as the error handler kicks, this removes some useless frames whcih were previously being inserted. we've also introduced the with-action-error-handler macro and a defgeneric form for handle-action-error. the methods on handle-request-error have been rewritten to use the new with-error-page macro. ] [Use DEFCOMPONENT's new options in the examples Marco Baringer **20050807122639] [Extend and refactor the DEFCOMPONENT macro. (see new docstring for details) Marco Baringer **20050807121844] [Added a few logging statements Marco Baringer **20050807091151] [Don't use ITERATE around **20050807075849] [Don't copy backtrack values in save-backtrack (this isn't neccessary for proper backtracking) Marco Baringer **20050806093402] [Fix backtracking on non immediate objects Marco Baringer **20050806090550 This changes the times when values are copied in the backtracking stuff. Previously we'd copy when saving the bt list and when cloning it, we now copy when saving, when restoring, but not when cloning. The previous implementation caused already stored backtracked values to be modified, when they'd later be restorted they'd have values which didn't reflect what the user (and the developer) expects (this is bad). ] [Added, and initialized, the generating-frame slot to standard-session-frame. Marco Baringer **20050806090059] [removed standard-application's service :after method Marco Baringer **20050806085933 The method was just calling save-backtracked, standard-session-frame already does that and is the 'proper' place for thaht stuff. ] [Fix various typos/thinkos on control.lisp Marco Baringer **20050806082907] [Make the inspector output more readable (Patch by: William Halliburton ) Marco Baringer **20050806054207] [Fix slot options for deleteablep in list-presentation (Reported by: Pascal Bourguignon ) Marco Baringer **20050805073024] [Properly deal with the backtracking of unbound slots Marco Baringer **20050803095347] [Remove the update.sh script Marco Baringer **20050802161726] [Change API of MAKE-BACKEND Marco Baringer **20050802111231] [Another type in the defgeneric form for make-backend Marco Baringer **20050802110327] [Fix typo and change error message in the default method for MAKE-BACKEND Marco Baringer **20050802110151] [Need to wrap the form passed on <:select :on-change in a with-call/cc Marco Baringer **20050729105241] [Since call-inspector is a /cc method we need to call it within a with-call/cc form Marco Baringer **20050726095455] [Since the getter/setter of a PLACE object can be cps-closure objects we need to treat them explicitly Marco Baringer **20050726095425] [Even window components must use KALL and not FUNCALL for their continutation :) Marco Baringer **20050726095333] [Removed call to arnesi:assert-cc Marco Baringer **20050725121348] [Wrap call to the cc method START in a with-call/cc Marco Baringer **20050723133329] [Continuations are now called using ARNESI:KALL, not FUNCALL Marco Baringer **20050723133311] [Actions need to be wrapped in with-call/cc Marco Baringer **20050723113039] [Rename GET-BACKEND to MAKE-BACKEND Marco Baringer **20050801143643] [Edit CREATE-SERVER so that it properly updates *debug-on-error* and *inspect-components* Marco Baringer **20050801143254] [Remove spurious double lines between method definitions Marco Baringer **20050801142440] [Minor doc string fixups to GET-BACKEND Marco Baringer **20050801142247] [Added copyright notice to src/control.lisp Marco Baringer **20050801134638] [Lisp startable UCW Robert Marlow **20050801050720 This should allow UCW to be easily startable from within lisp rather than from loading lisp start.lisp. The function for doing this is named create-server. ucwctl has been changed to make use of the new functionality but should work as it did before. defentry-point can now be used before its application has been attached to a server - when the application is attached to a server its entry points will then automatically be added. This makes it possible to load up system definitions containing defentry-points without having a running server beforehand. Thus lisp images can then be dumped containing full applications rather than just UCW. A get-backend method has been defined which creates a backend according to its arguments. It is also able to automatically choose a sensible default from currently loaded backends. It can also accept an existing, running server as a backend in which case it simply wraps it with a sensible UCW backend and returns it. This allows UCW applications to be attached to already running HTTP servers rather than requiring fresh servers be started by UCW. So far it's only been implemented for Araneida. I've only really tested the araneida and (briefly) HTTPD backends but the method of starting the backends should be similar to how start.lisp worked so I'm hoping I haven't broken anything. ] [bash -> sh Julian Stecklina **20050731145119] [Use defcomponent instead of defclass for simple-template-component Marco Baringer **20050726095406] [When creating the string for request paramteers use the same element-type as the raw-uri array Marco Baringer **20050730114429] [Instead of looking for a property named VERSIONS we now call it :FEATURES. Updated the error message accordingly Marco Baringer **20050729103158] [Renamed 'version' to 'feature' in asdf property check. added check for cps-interpreter Marco Baringer **20050728120322] [Changes to the stylesheet Marco Baringer **20050728120129] [Added the "top-level" retry render-on restart Marco Baringer **20050726122803] [When printing the 'retry rendering' restart added the component object which caused the error Marco Baringer **20050726122740] [template-component-environment methods must always return a fresh list Marco Baringer **20050725121551] [Make the wiki example use the show-window macro Marco Baringer **20050725121447] [Added SHOW and SHOW-WINDOW macros Marco Baringer **20050725121421] [Post method for login component matley at innerloop.it**20050724142609] [Added initarg to client-value (form-component) matley at innerloop.it**20050723142419] [Little typo bugfix matley at innerloop.it**20050722200835] [Change the CALL macro to check for window-component'ness when used in entry-points Marco Baringer **20050723102841] [Fix the upload example Marco Baringer **20050721155417] [Only create a mime-part object for those mime-parts which have headers other than just "name" Marco Baringer **20050721155338] [Only use copy-seq on the request parameters if thay are strings (as opposed to mime-part objects) Marco Baringer **20050721154259] [Export the mime-part accessors Marco Baringer **20050721154124] [Update component slots and backtrack slots when reinitializing component classes Marco Baringer **20050718172834] [Allow defcomponent slot forms to be symbols (some effect as with defclass) Marco Baringer **20050718171831] [More accurate information regarding versions and how to get the software. Jos?? Pablo Ezequiel Fern??ndez **20050718033950] [More changes regarding dependencies. Jos?? Pablo Ezequiel Fern??ndez **20050717214720] [Some clear statements about the dependencies (more is still neede). Jos?? Pablo Ezequiel Fern??ndez **20050717213407] [Make ucw's installation directory an explicit configuration variable in make-image.lisp Marco Baringer **20050717191936] [Remove useless debugging code from ucw-tags.lisp Marco Baringer **20050717191301] [Fix handling of HTTR response status codes in aserve backend (Patch by: Antonio Menezes Leitao ) Marco Baringer **20050717190254] [Fix handling of HTTP request/respons headers in aserve backend. (Patch by: Antonio Menezes Leitao ) Marco Baringer **20050717185826] [Initial Import from arch Marco Baringer **20050706133829 This patch is exactly equal to ucw-2004 at common-lisp.net/ucw--dev--0.3--patch-426 it simply represents the move over to darcs. ] [Added boring file Marco Baringer **20050706132641] Patch bundle hash: 873c587153dff15306992e27fac24a10be871070 From waldo at trianet.net Thu Sep 15 14:19:39 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Thu, 15 Sep 2005 10:19:39 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: References: <9AF55780-39F6-41A6-89DE-6EAA5F17930E@trianet.net> <878xy1ryd6.fsf@flarge.here> <3579DAC2-7733-453C-AE32-6E397CBCDA5C@trianet.net> <20050914.130644.251684439.svg@surnet.ru> Message-ID: I don't mean to be a pest. I know everyone is working hard. Because I'm still in the learning process, I feel very frustrated that since I started reviewing UCW, I have not been able to run through all the demos. I'm trying to use them as teaching examples but I don't know what's broken. I don't know if it's a demo issue or an UCW implementation issue. Any info you guys can shed will be greatly appreciated. As I mentioned yesterday, with the latest _dev version, I can now start UCW. However, I'm still having the same problems when running the demos. Thanks, Waldo On Sep 14, 2005, at 12:54 PM, Marco Baringer wrote: > Vladimir Sekissov writes: > > >> Yes, it is a bug in latest yaclml/ucw-tags.lisp. This code now >> works only >> if > > >> I've tried to fix this but without success. >> > > can anybody suggest a way, reliably and portably, to change the value > of a hidden text input parameter from javascript? (in the face of > multiple independent forms on the same page generated by different > components) > > -- > -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 a_bakic at yahoo.com Thu Sep 15 17:15:56 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 15 Sep 2005 10:15:56 -0700 (PDT) Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: Message-ID: <20050915171556.62033.qmail@web40603.mail.yahoo.com> Hi, I am not fully following this thread, but if the problem is in what Marco wrote below, I can only tell that the Presentations example with nested forms works for me in Firefox 1.5beta when only one set of script + three hidden inputs is present in the HTML output. How to get rid of excessive sets of elements is another issue... If I find out that this does not work in another browser/OS combination, my approach will be to change the HTML output so as to make it work for that browser/OS combination, instead of trying to find The Right Way. An alternative is to learn more about Javascript. I might be wrong, but I also find the available (X)HTML specs quite imprecise to reply upon. Comments are welcome. Just my two cents, Alex > I don't mean to be a pest. I know everyone is working hard. Because > > can anybody suggest a way, reliably and portably, to change the value > > of a hidden text input parameter from javascript? (in the face of > > multiple independent forms on the same page generated by different > > components) __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From waldo at trianet.net Thu Sep 15 18:40:09 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Thu, 15 Sep 2005 14:40:09 -0400 Subject: [Bese-devel] Running Demos of UCW on Mac OS Tiger In-Reply-To: <20050915171556.62033.qmail@web40603.mail.yahoo.com> References: <20050915171556.62033.qmail@web40603.mail.yahoo.com> Message-ID: I don't necessarily know if the problem is related to that problem. I just tried the demo on Firefox 1.5 beta 1 for Mac OS and below is the console output of me loading the index.ucw and then clicking on the "Form demo" link: 2005-09-15T14:32.48 +INFO+ IT.BESE.UCW::UCW-LOGGER: Starting up standard server #. Welcome to OpenMCL Version (Beta: Darwin) 0.14.3! ? 2005-09-15T14:32.54 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Handling request for "/ucw/examples/index.ucw" 2005-09-15T14:32.54 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Shutdown down # (Status: "200"). 2005-09-15T14:32.54 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Handling request for "/ucw/examples/stylesheet.css" 2005-09-15T14:32.54 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Shutdown down # (Status: "200 OK"). 2005-09-15T14:32.59 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Handling request for "/ucw/examples/index.ucw" 2005-09-15T14:32.59 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW-LOGGER: Serving action UCW::SWITCH-COMPONENT in session "qmvRwdrgZVaLdhmoKleWewqBzchRGpDOQfCCsDYo". 2005-09-15T14:33.00 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: Error # while serving action. 2005-09-15T14:33.00 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: Aborting action. 2005-09-15T14:33.00 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Shutdown down # (Status: "200"). 2005-09-15T14:33.00 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Handling request for "/ucw/examples/stylesheet.css" 2005-09-15T14:33.00 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Shutdown down # (Status: "200 OK"). 2005-09-15T14:33.00 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Handling request for "/ucw/js/UCWInputCompleter.js" 2005-09-15T14:33.00 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW.BACKEND: Shutdown down # (Status: "404 Not Found"). At this point, I get the prompts for "integer", "decimal", "date", and "string". However, next to the integer, decimal, and date prompts, I get a link to an "exception" labeled: IT.BESE.UCW::UNINITIALIZED+, which when clicked takes me to a longer detail of the error with options to click thru different backtraces (pardon my idioms). After inspecting the source code of the page rendered of the "Form demo", it seems as if the page is not fully rendered: >IT.BESE.UCW::+UNINITIALIZED+
A string (with completion):

The default options are: (alice almond april bob bill cynthia)Use the up and down arrows to chose a completion, enter to select it.