From: Robert Strandh
Subject: Questions concerning the CLIM specification
Date: 
Message-ID: <6w8zy2b434.fsf@serveur1-1.labri.u-bordeaux.fr>
Hello,

I am looking for a place where I can ask questions about the CLIM
specification.  There are several passages that I do not understand
and that seem ambiguous to me. 

Would c.l.l be a good place?  Is there an official maintainer of the
specification?  In that case, who?  In the worst case, does anyone
know where I can reach the authors?

Thanks,
-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------

From: William Deakin
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <3905BA29.4433E931@pindar.com>
Robert Strandh wrote:

> I am looking for a place where I can ask questions about the CLIM
> specification.  There are several passages that I do not understand
> and that seem ambiguous to me.

These may seem like a stupid question (and so probably is then ;) Why are
you interested in CLIM? Is it because you want to write some kind of user
interface and the manual is giving you a problem? Or are you interested
in the CLIM specification in a kind of `hey that looks cool, why don't I
try and write one of these myself' way?

Being more specific about what you are after would help people to focus
on appropriate answers,

Best Regards,

:) will
From: Robert Strandh
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <6w1z3ueyfq.fsf@serveur3-1.labri.u-bordeaux.fr>
William Deakin <·····@pindar.com> writes:

> These may seem like a stupid question (and so probably is then ;) Why are
> you interested in CLIM? Is it because you want to write some kind of user
> interface and the manual is giving you a problem? Or are you interested
> in the CLIM specification in a kind of `hey that looks cool, why don't I
> try and write one of these myself' way?

Not stupid at all.  I should have been omre specific.  I am interested
in participating in a free CLIM implementation.  More specifically, I
am paying someone to write part of it.  We plan to start with Gilbert
Baumann's code for regions and transformations and we hope to get
something that includes sheets and the input and output protocols before
we run out of money. 

I have not used CLIM myself, but I have read the specification and
part of the user manual, and it seems like a nice piece of work, and a
good example of what you can do with CLOS.  

I use Common Lisp in my teaching and for my own (less and less
frequent) programming.  Selling a language like Common Lisp to the
students is hard (not used in industry, slow, you name it).  Whenever
possible, I try to remove a potential obstacle for my students to
accept CL, rather than arguing that it isn't one.  One such obstacle
is a library for graphic user interfaces.  

What I would like to test is whether the money equivalent to the price
of a site license for a commercial CL implementation with CLIM would
be enough to get a large part of a free implementation running.

Since I am most likely going to have to interpret the specifiction, I
need to know whether there is anyone I can ask for help with this
that interpretation. 

> Being more specific about what you are after would help people to focus
> on appropriate answers,

You are right, of course.  So here is the first exercise:

My html version of the specification says:

---------------------------------------------------------------------
=> process-next-event port &key wait-function timeout [Generic Function]

This function provides a standard interface for one pass through a
port's event processing loop.  wait-function is either nil or a
function of no arguments that acts as a predicate; it has dynamic
extent. The predicate should wait until one of three conditions
occurs:

If an event if received and processed, the predicate should return
true.

If a timeout occurs, the predicate should return false.

If the wait function returns true, the predicate should return the two
values false and :timeout.

A port implementation must provide a method for this function that
reads the next window server-specific device event, blocking if
necessary, and then invokes the event distributor.
---------------------------------------------------------------------

I am confused about what "the predicate" means here.  It seems to be
the wait-function.  But how can the wait function determine whether an
event is processed?  

Then it says "if the wait function returns true, the predicate should
return the two values false and :timeout", but that suggests that the
wait function is NOT the predicate.  

Any ideas?

-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------
From: Andrew K. Wolven
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <39060EEB.9F8A04E6@redfernlane.org>
Robert Strandh wrote:

> I use Common Lisp in my teaching and for my own (less and less
> frequent) programming.  Selling a language like Common Lisp to the
> students is hard (not used in industry, slow, you name it).  Whenever
> possible, I try to remove a potential obstacle for my students to
> accept CL, rather than arguing that it isn't one.  One such obstacle
> is a library for graphic user interfaces.

Your students don't want lisp because they don't see direct wealth.
You have to guide them past arrogance on c.l.l. and elsewhere and show them as
simply as possible lisp is technically superior.  Since a great demonstator of
a symbolics machine is in short supply, perhaps you could show them with some
exercises for 'Essentials of Programming Languages' by Friedman, Wand, and
Haynes who make it look decievingly easy.  Of course I haven't seen your
techniques, so please hold that for what its worth: text on c.l.l..

>
>
> What I would like to test is whether the money equivalent to the price
> of a site license for a commercial CL implementation with CLIM would
> be enough to get a large part of a free implementation running.
>
> Since I am most likely going to have to interpret the specifiction, I
> need to know whether there is anyone I can ask for help with this
> that interpretation.
>
> > Being more specific about what you are after would help people to focus
> > on appropriate answers,
>
> You are right, of course.  So here is the first exercise:
>
> My html version of the specification says:
>
> ---------------------------------------------------------------------
> => process-next-event port &key wait-function timeout [Generic Function]
>
> This function provides a standard interface for one pass through a
> port's event processing loop.  wait-function is either nil or a
> function of no arguments that acts as a predicate; it has dynamic
> extent. The predicate should wait until one of three conditions
> occurs:
>
> If an event if received and processed, the predicate should return
> true.
>
> If a timeout occurs, the predicate should return false.
>
> If the wait function returns true, the predicate should return the two
> values false and :timeout.
>
> A port implementation must provide a method for this function that
> reads the next window server-specific device event, blocking if
> necessary, and then invokes the event distributor.
> ---------------------------------------------------------------------

Under GWL, If I set the object to timeout then it would basically fulfill your
specification.
Except that there is no explicit event loop.  (we just haven't needed one,
under web)
(things just depend on other things, because in order to keep track of this
loop you need to either:
A. Key in on client ip and other identifying features in http requests.
B.  Give them a cookie (gag).
C.  Stuff an id in the href for your anchors and submit buttons.

(we are using item 'C' at this time for dependancy-tracked object lookup (no
explicit loop))
GWL is Dave Cooper's incarnation and is available at gwl.sourceforge.net.
Of course it is at a lower layer than anything generic like clim, it deals
directly with html [htmlgen] and the http transaction.  Dave is in the process
of working out a generic system, but it is only sort of like clim, definitly
doesn't observe any clim's spec.

Would you consider eludicating what you mean by your HTML specification? [for
clim]
Do you really thing that CLIM proper is the bestest?

>
>
> I am confused about what "the predicate" means here.  It seems to be
> the wait-function.  But how can the wait function determine whether an
> event is processed?
>

An event proceeds by getting an http request.
This is from a submit button in a form or a hyperlink.
The url (in the request) corresponds to your object which [in gwl] utilizes
dynamic extent.
(you can also have javascript or java signal an event to the server)

>
> Then it says "if the wait function returns true, the predicate should
> return the two values false and :timeout", but that suggests that the
> wait function is NOT the predicate.
>
> Any ideas?
>
> --
> Robert Strandh
>
> ---------------------------------------------------------------------
> Greenspun's Tenth Rule of Programming: any sufficiently complicated C
> or Fortran program contains an ad hoc informally-specified bug-ridden
> slow implementation of half of Common Lisp.
> ---------------------------------------------------------------------
From: Robert Strandh
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <6wbt2xqros.fsf@serveur1-1.labri.u-bordeaux.fr>
"Andrew K. Wolven" <·······@redfernlane.org> writes:

> [advice on how to get my students to accept CL]

I think I am managing OK with what I am doing.  Part of that is
removing unnecessary obstacles that otherwise would have to be
explained, argued, etc. 

> Would you consider eludicating what you mean by your HTML specification? [for
> clim]

It is the CLIM specification converted to HTML by Mike McDonald.  

> Do you really thing that CLIM proper is the bestest?

I don't know yet.

> [explanations relative to GWL]

I am afraid I don't see how to map your explanation to CLIM.

-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------
From: Mike McDonald
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <j93O4.164$NX3.2915@typhoon.aracnet.com>
In article <··············@serveur3-1.labri.u-bordeaux.fr>,
	Robert Strandh <·······@labri.u-bordeaux.fr> writes:

> My html version of the specification says:
> 
> ---------------------------------------------------------------------
> => process-next-event port &key wait-function timeout [Generic Function]
> 
> This function provides a standard interface for one pass through a
> port's event processing loop.  wait-function is either nil or a
> function of no arguments that acts as a predicate; it has dynamic
> extent. The predicate should wait until one of three conditions
> occurs:
> 
> If an event if received and processed, the predicate should return
> true.
> 
> If a timeout occurs, the predicate should return false.
> 
> If the wait function returns true, the predicate should return the two
> values false and :timeout.
> 
> A port implementation must provide a method for this function that
> reads the next window server-specific device event, blocking if
> necessary, and then invokes the event distributor.
> ---------------------------------------------------------------------
> 
> I am confused about what "the predicate" means here.  It seems to be
> the wait-function.  But how can the wait function determine whether an
> event is processed?  
> 
> Then it says "if the wait function returns true, the predicate should
> return the two values false and :timeout", but that suggests that the
> wait function is NOT the predicate.  
> 
> Any ideas?

  I took it to mean:

(defmethod process-next-event ((port port) &key wait-function timeout)
  (let ((event (get-next-event port :wait-function wait-function :timeout timeout)))
    (cond
     ((null event) nil)
     ((eq event :timeout) (values nil :timeout))
     (t
      (distribute-event port event)
      t))))


  Mike McDonald
  ·······@mikemac.com
From: Tim Bradshaw
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <ey3n1mi6rxj.fsf@cley.com>
* Robert Strandh wrote:

> Would c.l.l be a good place?  Is there an official maintainer of the
> specification?  In that case, who?  In the worst case, does anyone
> know where I can reach the authors?

I think c.l.l is as good a place as any.  I do not think there is an
official maintainer in any reasonable sense.

--tim
From: Lieven Marchand
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <8e4u90$rpr$1@newnews1.news.nl.uu.net>
Tim Bradshaw <···@cley.com> writes:

> * Robert Strandh wrote:
> 
> > Would c.l.l be a good place?  Is there an official maintainer of the
> > specification?  In that case, who?  In the worst case, does anyone
> > know where I can reach the authors?
> 
> I think c.l.l is as good a place as any.  I do not think there is an
> official maintainer in any reasonable sense.
> 

Some of the designers of CLIM, notably Scott McKay, went on to work on
Dylan and designed DUIM. The manual can be found at www.fun-o.com.

-- 
Lieven Marchand <···@bewoner.dma.be>
If there are aliens, they play Go. -- Lasker
From: Chris Double
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <wkd7ndj4g0.fsf@double.co.nz>
Lieven Marchand <···@bewoner.dma.be> writes:

> Some of the designers of CLIM, notably Scott McKay, went on to work
> on Dylan and designed DUIM. The manual can be found at
> www.fun-o.com.

The source code for much of DUIM is also available with Functional
Developer - which can be downloaded at the above website.

Chris.
From: John Watton
Subject: Re: Questions concerning the CLIM specification
Date: 
Message-ID: <8e6rtg$4u$1@nnrp1.deja.com>
In article <··············@serveur1-1.labri.u-bordeaux.fr>,
  Robert Strandh <·······@labri.u-bordeaux.fr> wrote:
> Hello,
>
> I am looking for a place where I can ask questions about the CLIM
> specification.  There are several passages that I do not understand
> and that seem ambiguous to me.
>
> Would c.l.l be a good place?  Is there an official maintainer of the
> specification?  In that case, who?  In the worst case, does anyone
> know where I can reach the authors?

There is a clim specific newsgroup - cu.cs.clim and a mailing list
····@bbn.com. The newsgroup and mailing list are mirrored. It is not a
very active list.

--
John Watton
Alcoa Inc.


Sent via Deja.com http://www.deja.com/
Before you buy.