Joerg F. Wittenberger | 11 Jun 17:04 2003
X-Face
Picon

Re: Askemos Forum

Raphael Heinrich <rheinric <at> HTWM.De> writes:

> gibt es irgendwo eine Auflistung von den gebräuchlisten
> Scheme-Funktionen im Bezug auf Askemos.

You did not ask for Scheme in general, but for the sake of
completeleness: www.schemers.org

Especially for string handling there should be SRFI-18
http://srfi.schemers.org/srfi-18/srfi-18.html but unfortunately only a
few (string-join, string-split and some) are available by now.

Or are you looking for Perl regular expressions?
http://www.askemos.org/A67bb0753e1676f81983e0ecf3a15b391/PCREexample
(Please check the example, I not yet; and let me know whether it
works.  Thanks)

More SRFI documented at
www.askemos.org/SRFI (topics: time & date!, exceptions, and-let*, receive)

A complete listing is sort of distributed (<version> is the current
version number):

1. Askemos-<version>/mechanism/function/scheme.scm declares
   r5rs-side-effecty-things which are _not_ exported from the set of
   r5rs functions.

2. The file also declares dsssl-forms (www.askemos.org/NameSpaceDSSSL)
   and srfi19-forms are exported.

(Continue reading)

Joerg F. Wittenberger | 12 Jun 14:39 2003
X-Face
Picon

Re: [Chicken-users] News from the Barnyard

Hello all,

Felix Winkelmann <felix <at> proxima-mt.de> writes:

> I'm currently working on a (simple - hm... I'm using the
> word like an apology... ;-) web-server, that uses the
> HTTP extension. The performance is so-so, about twice as
> fast as the SUnet server (considering raw requests-per-second)
> but still no match for the PLT server. Anyway, it works and
> is quite easy to use. I have thought about a simple method
> of embedding scheme in HTML and now something a la PHP came
> out, so you would have, say,
> 
> <html><head><title>Hello</title><head>
> <?scheme
> (printf "<h1>This is ~A, on ~A</h1>"
>    (http:request-url (spiffy:current-request))
>    (get-host-name) )
> ?>
> <body>
> </body>
> </html>
> 
> So everything in "<?scheme ...?>" or "<?...?>" is taken

Felix, you know (while the others here don't) chicken can do this a
lot more already.

I'm proud to announce that it was just decided to release the chicken
port of Askemos under the BSD license.
(Continue reading)

Felix Winkelmann | 12 Jun 14:58 2003
Picon

Re: [Chicken-users] News from the Barnyard

Joerg F. Wittenberger wrote:
> 
> Felix, you know (while the others here don't) chicken can do this a
> lot more already.

Yes, I apologize. Mostly that server I described is more for my personal
use, and I like simple, easy solutions. Specifically I'm completely
fed up with GUI libraries and using dynamically generated HTML instead
(which, to quote Paul Graham, "is not perfect, but it works")
looks appealing.

> 
> Performance: Both the rscheme and the chicken come with some C code
> optimizing the serialization of XML.  Both version show no significant
> difference to apache for unprocessed objects.  The rscheme version
> needs approximately 4 times as long for dynamic results of the same
> size generated by two passes of document transformation in XSLT/DSSSL
> style.
> 
> The chicken version is worse here.  This seems to be a low level issue
> of the calling convention.  I'd love to cooperate with Felix and
> investigate that.

And I'd love to help, really. Unfortunately I only understand a fraction
of what Askemos is supposed to be. I will get the Askemos tarball and
play around with it, when I find the time.
Anyway, I think it's fascinating. I have to learn more about it...

cheers,
felix
(Continue reading)

Joerg F. Wittenberger | 13 Jun 11:39 2003
X-Face
Picon

Re: [Chicken-users] News from the Barnyard

Felix Winkelmann <felix <at> proxima-mt.de> writes:

> Joerg F. Wittenberger wrote:
> > Felix, you know (while the others here don't) chicken can do this a
> > lot more already.
> 
> Yes, I apologize. Mostly that server I described is more for my personal

Err... I do have to apologize, because you don't have a real reason
to.  I better had not written this sentence at all.  Sorry it was just
your posting which triggered me to post immediately and as a reply.

The license consideration was nothing new here, the decision was.
Your posting reminded me to "release early, release often" hence I let
the incomplete code go, which I would normally have kept secret until
it works.  But this could take quite a while and I hope some people
might at least be happy to use the parts.

> use, and I like simple, easy solutions. Specifically I'm completely
> fed up with GUI libraries and using dynamically generated HTML instead
> (which, to quote Paul Graham, "is not perfect, but it works")
> looks appealing.

;-) Same here.  As a personal tool the Askemos server is nothing else,
just a really tiny bit more versatile than a file system (ACID
semantics of transactions) and it ensures some invariants you need for
documents in legal binding context (forge proof).  Otherwise it's just
self editing XML+Scheme.  I use it for everything like personal notes,
letters, invoices, websites etc.

(Continue reading)

Felix Winkelmann | 13 Jun 12:06 2003
Picon

Re: [Chicken-users] News from the Barnyard

Joerg F. Wittenberger wrote:
> 
> Anyway: rscheme uses (to my understanding) a register file (vector of
> values) for parameters.  If I keep calling functions, which all have
> the same signature and only modify a few of the parameters, the
> rscheme compiler seems to feed mostly /* NOOP */ to C (except for the
> modified parameters) - hardly beatable in runtime.  Chicken seems to
> fill yet another stack frame.  Am I right?
> 

Yes, right. Peter Keller had an interesting idea about "re-using" stack
frames (or better: using statically allocated ones), but this seems
to break the garbage collector... We have to look more into that.

> Keep in mind: that's a wild guess.  There is also the fact that the
> Scheme interpreter in rscheme apparently compiles into byte code,
> which the one in Askemos does not.  I have no idea, which one would be
> faster.  (Bytecompile effort doesn't really count, the Askemos caches
> quite a few things, also calls to 'eval'.)
> 

Yes, Chicken uses a "closure tree" for interpretation (as in that
paper by Feeley et. al) which is extremely elegant and quite simple
to implement. But a byte-compiler is still much faster, though.
Unfortunately, it's rather tricky to use normal direct-style
byte-compilation in a CPS environment (like Chicken's compiled
code representation) (I tried).

cheers,
felix
(Continue reading)

Joerg F. Wittenberger | 16 Jun 14:41 2003
X-Face
Picon

Syntax Support was: Re: [ssax-sxml] deleting html tags with pre-post-order

"Neil W. Van Dyke" <neil <at> neilvandyke.org> writes:

> OK, thanks.  I had planned to try out Oleg's pre-post-order, Kirill's
> STX, Jim Bender's WebIt, and Wright&Duba's match.scm.  To that list, I
> have added append-map and Askemos' tree.scm.

match.scm is going to be ported to rscheme and available within
Askemos as soon as I find the time for the port.  It's high on the
list.  (It's there since quite some time already, help wanted.)

How would be your peoples oppinion on SXML and RS-XML?  Currently no
alternate syntax is supported by Askemos; just plain XML as per
reference syntax.  Should support be included?  Which syntax would you
prefer, please indicate a value of importance between 1-10.

a) Refernce syntax

b) RS-XML http://celtic.benderweb.net/downloads/webit/starting.txt

c) SOX http://www.langdale.com.au/SOX/

d) SXML http://schematics.sourceforge.net/scheme-uk/xml.html

e) other (which)...

> By the way, I don't expect to do much HTML generation -- I'm more
> interested in manipulating XML for Semantic Web, and in scraping the

Have a look at Askemos agents!  ;-)

(Continue reading)

Neil W. Van Dyke | 16 Jun 21:24 2003
Picon

Re: Syntax Support was: Re: [ssax-sxml] deleting html tags with pre-post-order

Joerg F. Wittenberger <Joerg.Wittenberger <at> softeyes.net> writes at 14:41 16-Jun-2003 +0200:
> match.scm is going to be ported to rscheme and available within
> Askemos as soon as I find the time for the port.  It's high on the

Have you also tried out the Friedman et al. "match" that Jim Bender
mentioned?  A version of the Wright et al. "match" is bundled with PLT.
From only quick skims of the documentation, I can't tell which is
better-suited to my needs.

> How would be your peoples oppinion on SXML and RS-XML?  Currently no

At first glance, a sexp-based representation like SXML seems terribly
convenient for Lisp, since we can use all the normal Lisp facilities for
dealing with sexps.

The main advantages I see to a non-sexp representation is that it's
potentially faster, and it seems easier to associate homomorphic data
like source position info or application-specific info "out of band"
(with a fancy object model).

Initially, I am using SXML, assuming that it will be fast enough
(especially "normalized SXML") and that annotations including source
position info can be put into " <at>  <at> " forms.  But I won't be surprised if I
discover that all the pattern-matching forms and accessor procedures I
end up using almost completely abstract over the underlying
representation.

> Have a look at Askemos agents!  ;-)

It is on my list. :)
(Continue reading)

Joerg F. Wittenberger | 19 Jun 20:20 2003
X-Face
Picon

Re: [ssax-sxml] Re: deleting html tags with pre-post-order

Hello all,

I think, this makes a good example to compare the use of SXPath
vs. DSSSL primitives for beginners of Askemos programming.  (I keep
the sxml list posted, please remove if you reply with none-sxml
related content.)

> > As an learning exercise, I'm trying to use "pre-post-order" to remove
> > "blink" and "font" tags from HTML.

SXML Tools:

> ; Flatten-out a nodelist, at one level only
> (define (shallow-flatten lst)
>   (cond
>     ((null? lst) lst)
>       ; disregard '()
>       ((null? (car lst)) (shallow-flatten (cdr lst)))
>       ; keep the atomic data
>       ((not (pair? (car lst))) (cons (car lst) (shallow-flatten (cdr lst))))
>       ; keep a true SXML node
>       ((symbol? (caar lst)) (cons (car lst) (shallow-flatten (cdr lst))))
>       ; splice in nodelists
>       (else (append (car lst) (shallow-flatten (cdr lst))))
>     ))

Askemos: DSSSL node-list's are flat by definition, the implementation
flattens lists as it traversals the tree.

SXML Tools:
(Continue reading)


Gmane