<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel">
    <title>gmane.lisp.cl-emb.devel</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/34"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/33"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/32"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/31"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/30"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/29"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/28"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/27"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/26"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/25"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/24"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/23"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/22"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/21"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/20"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/19"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/18"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/17"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/16"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/15"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/34">
    <title>Re: cl-emb speedup</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/34</link>
    <description>Hi Tomasz!

On 2008-06-10 00:00:16, Tomasz Skutnik wrote:

Awesome! Thanks for that!



Just now.

Sorry, my "patch pipeline" was a bit clogged. I hope I haven't
forgotten anyone.



Regards,
Stefan

PS: A new CL-WIKI will be released tomorrow, in case someone is
    waiting.
</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2008-06-10T19:58:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/33">
    <title>New release CL-EMB 0.4.4</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/33</link>
    <description>New release CL-EMB 0.4.4

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:

- Multibyte external file format patch (Tomasz Skutnik)

- Speedup by memoization in expand-template-tags (Tomasz Skutnik) 



</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2008-06-10T19:52:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/32">
    <title>cl-emb speedup</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/32</link>
    <description>Hi.

I've started some serious development using cl-emb, and found that
it's template parsing/compilation was unbearably slow. Even simple few
character template parsing and compilation results in massive CPU and
memory burn. So I've profiled it a bit using SBCL statistical profiler
and found that it was all due to very suboptimal use of
ppcre:regex-replace-all. Long story short (well, not so long)
regex-replace-all was alway passed strings, which resulted in very
costly ppcre scanner building every time any template was parsed.
Simple memoization in expand-template-tags did the trick - scanner
object is built only on first use.

Below you will find patch that modifies cl-emb accordingly. Code
heavily borrows from Edi Weitz's Hunchentoot's scanner-for-get-param
and Tim Bradshaw's memoize library. Thanks guys. Additionally patch
exports new external function clear-expand-template-tag-hash, that
clears internal cache. It's provided because template tags expansion
depends on *emb-start-marker* and *emb-end-mark</description>
    <dc:creator>Tomasz Skutnik</dc:creator>
    <dc:date>2008-06-09T22:00:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/31">
    <title>Multibyte external file format patch forcl-emb::contents-of-file function</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/31</link>
    <description/>
    <dc:creator>Tomasz Skutnik</dc:creator>
    <dc:date>2008-04-12T20:46:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/30">
    <title>Access lexical scope.</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/30</link>
    <description/>
    <dc:creator>Vagif Verdi</dc:creator>
    <dc:date>2007-09-01T04:43:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/29">
    <title>What I can send to :env</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/29</link>
    <description/>
    <dc:creator>Chris Parker</dc:creator>
    <dc:date>2007-06-12T23:40:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/28">
    <title>Re: Integrating with Apache and Hunchentoot</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/28</link>
    <description>Hi!

On 2007-04-14 15:35:44, Andrei Stebakov wrote:

CL-EMB "just" transforms text.

        template + some data = new text

It can be used stand-alone, without any relation to the web. In
order to get CL-EMB's output to the browser, you need to call it
from within your favorite web framework/tool and feed the results
the way (stream, string) it's needed.

CL-EMB isn't PHP. You could compare it to one aspect of PHP:
templating and embedding code into text files.


CLHP &lt;http://common-lisp.net/project/clhp/&gt; wants to be more like
PHP. But the project seems to be a bit more quiet than CL-EMB.



If you like Hunchentoot you could modify the test code and
replace CL-WHO with CL-EMB, just to get a feel how to work this
way.

There's some code in CL-WIKI that uses CL-EMB, too. But I don't
know if it's working with Hunchentoot.



Regards,
Stefan


</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2007-04-16T09:29:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/27">
    <title>Integrating with Apache and Hunchentoot</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/27</link>
    <description/>
    <dc:creator>Andrei Stebakov</dc:creator>
    <dc:date>2007-04-14T19:35:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/26">
    <title>RE: Can't call register-emb</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/26</link>
    <description>Stefan,

You are right, the CL-PPCRE included in Lispbox is an older version (much
older, it would seem, given the changelog you quoted). I downloaded and
installed the latest version (1.2.14) and the error no longer occurs.

Thank you!

Daniel


-----Original Message-----
From: cl-emb-devel-bounces-F1HGIaG5STRyXAeb93iumQ&lt; at &gt;public.gmane.org
[mailto:cl-emb-devel-bounces-F1HGIaG5STRyXAeb93iumQ&lt; at &gt;public.gmane.org] On Behalf Of Stefan Scholl
Sent: Thursday, May 25, 2006 12:33 PM
To: cl-emb-devel-F1HGIaG5STRyXAeb93iumQ&lt; at &gt;public.gmane.org
Subject: Re: [cl-emb-devel] Can't call register-emb

On 2006-05-23 00:25:15, Daniel Gackle wrote:
work.
cl-ppcre

Are you sure that you use CL-PPCRE 1.2.13? According to
http://weitz.de/cl-ppcre/CHANGELOG SIMPLE-CALLS was added in
0.7.8


_______________________________________________
cl-emb-devel site list
cl-emb-devel-F1HGIaG5STRyXAeb93iumQ&lt; at &gt;public.gmane.org
http://common-lisp.net/mailman/listinfo/cl-emb-devel

</description>
    <dc:creator>Daniel Gackle</dc:creator>
    <dc:date>2006-05-25T20:07:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/25">
    <title>Re: Can't call register-emb</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/25</link>
    <description>
Are you sure that you use CL-PPCRE 1.2.13? According to
http://weitz.de/cl-ppcre/CHANGELOG SIMPLE-CALLS was added in
0.7.8


</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2006-05-25T18:32:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/24">
    <title>Can't call register-emb</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/24</link>
    <description/>
    <dc:creator>Daniel Gackle</dc:creator>
    <dc:date>2006-05-23T06:25:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/23">
    <title>Support  New Jobs from JobBankUSA       Kwj</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/23</link>
    <description/>
    <dc:creator>Career-Builder</dc:creator>
    <dc:date>2006-02-23T03:01:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/22">
    <title>New release CL-EMB 0.4.3</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/22</link>
    <description>New release CL-EMB 0.4.3

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:

- Faster file reading (fast slurping from
  &lt;http://www.emmett.ca/~sabetts/slurp.html&gt;)

- New template tag &lt; at &gt;insert for inserting (text) files.

  Example:

    CL-USER&gt; (emb:register-emb "test13" "The file:&lt;pre&gt;&lt;% &lt; at &gt;insert textfile %&gt;&lt;/pre&gt;")
    #&lt;CL-EMB::EMB-FUNCTION {5894326D}&gt;
    CL-USER&gt; (emb:execute-emb "test13" :env '(:textfile "/etc/gentoo-release"))
    "The file:&lt;pre&gt;Gentoo Base System version 1.6.14
    &lt;/pre&gt;"

</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2006-02-19T00:09:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/21">
    <title>Re: New release CL-EMB 0.3.0 (API CHANGES!)</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/21</link>
    <description>[...]



This example was broken. I fixed it in
http://common-lisp.net/project/cl-emb/README and the current
release 0.4.3.


CL-USER&gt; (emb:register-emb "test10" "Square root from 1 to &lt;% &lt; at &gt;var numbers %&gt;: &lt;% &lt; at &gt;genloop numbers %&gt;sqrt(&lt;% &lt; at &gt;var number %&gt;) = &lt;% &lt; at &gt;var sqrt %&gt;  &lt;% &lt; at &gt;endgenloop %&gt;")
#&lt;CL-EMB::EMB-FUNCTION {581EC765}&gt;
CL-USER&gt; (defun make-sqrt-1-to-n-gen (key n)
           (declare (ignore key))
           (let ((i 1))
             #'(lambda (cmd)
                 (ecase cmd
                   (:test (&gt; i n))
                   (:get `(:number ,i :sqrt ,(sqrt i)))
                   (:next (prog1 `(:number ,i :sqrt ,(sqrt i))
                            (unless (&gt; i n)
                              (incf i))))))))
MAKE-SQRT-1-TO-N-GEN
CL-USER&gt; (emb:execute-emb "test10" :env '(:numbers 10) :generator-maker 'make-sqrt-1-to-n-gen)
"Square root from 1 to 10: sqrt(1) = 1.0  sqrt(2) = 1.4142135  sqrt(3) = 1.7320508  sqrt(4) = 2.0  sqrt(5) = 2.236068  sqrt(6) = 2.4494898  sqrt(7) = 2.6457512  sqrt(8) = 2.82842</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2006-02-19T00:12:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/20">
    <title>Summary of junk emails blocked</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/20</link>
    <description/>
    <dc:creator>Admin Junk Summary</dc:creator>
    <dc:date>2005-12-21T10:01:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/19">
    <title>New release CL-EMB 0.4.2</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/19</link>
    <description>New release CL-EMB 0.4.2

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:

- Changed internal function to escape for XML (was very slow and is
  now using code from Edi Weitz)

- optimized URL encoding

- locking mechanism for threaded/multiprocessing programs
  (*LOCKING-FUNCTION*).

  *LOCKING-FUNCTION* can be set to a locking function which must
  accept a function as parameter. The locking function gets
  called whenever CL-EMB accesses a global hash table.
  IMPORTANT: The locking function must return the value of
  the function it calls!

  Example:
        (defvar *emb-lock* (kmrcl::make-lock "emb-lock")
          "Lock for CL-EMB.")

        (defun emb-lock-function (func)
          "Lock function for CL-EMB."
  </description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-08-12T22:47:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/18">
    <title>New release CL-EMB 0.4.1</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/18</link>
    <description>New release CL-EMB 0.4.1

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:

- Removed some compiler notes when registering emb functions.

- &lt; at &gt;include now uses supplied path relative to current template.


</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-08-07T17:41:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/17">
    <title>Re: New release CL-EMB 0.4.0 (API CHANGES!)</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/17</link>
    <description>OK, no API changes. Just the wrong mail template. :-}

_______________________________________________
cl-emb-devel site list
cl-emb-devel-F1HGIaG5STRyXAeb93iumQ&lt; at &gt;public.gmane.org
http://common-lisp.net/mailman/listinfo/cl-emb-devel

</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-06-20T14:13:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/16">
    <title>New release CL-EMB 0.4.0 (API CHANGES!)</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/16</link>
    <description>New release CL-EMB 0.4.0

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:
- Extended way to access environment (the supplied plist)
  with template tags.

  E.g.:  &lt;% &lt; at &gt;var foo/bar %&gt; 
         --&gt; Like accessing (GETF (GETF ENV :FOO) :BAR)

  When your're inside a nested loop you can access the
  elements of the toplevel by starting the parameter with
  a slash.

CL-USER&gt; (emb:register-emb "test11" "&lt;% &lt; at &gt;loop bands %&gt;Band: &lt;% &lt; at &gt;var band %&gt; (Genre: &lt;% &lt; at &gt;var /genre %&gt;)&lt;br&gt;&lt;% &lt; at &gt;endloop %&gt;")
#&lt;CL-EMB::EMB-FUNCTION {58ADB12D}&gt;
CL-USER&gt; (emb:execute-emb "test11" :env '(:genre "Rock" :bands ((:band "Queen") (:band "The Rolling Stones") (:band "ZZ Top"))))
"Band: Queen (Genre: Rock)&lt;br&gt;Band: The Rolling Stones (Genre: Rock)&lt;br&gt;Band:</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-06-20T13:54:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/15">
    <title>New release CL-EMB 0.3.2</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/15</link>
    <description>New release CL-EMB 0.3.2

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:
- Bugfix regarding the template tags &lt; at &gt;include and &lt; at &gt;call
  The generated code wasn't correct after the API changes
  in 0.3.0

</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-06-15T08:55:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cl-emb.devel/14">
    <title>New release CL-EMB 0.3.1</title>
    <link>http://permalink.gmane.org/gmane.lisp.cl-emb.devel/14</link>
    <description>New release CL-EMB 0.3.1

CL-EMB is a library to embed Common Lisp and special template
tags into normal text files. Can be used for dynamically
generated HTML pages.


You can download it from
http://common-lisp.net/project/cl-emb/
or install with ASDF-Install.

CL-USER&gt; (asdf:operate 'asdf:load-op :asdf-install)
CL-USER&gt; (asdf-install:install :cl-emb)


Changes:
- Bugfix regarding the template tags &lt; at &gt;include and &lt; at &gt;call
  The generated code wasn't correct after the API changes
  in 0.3.0

</description>
    <dc:creator>Stefan Scholl</dc:creator>
    <dc:date>2005-03-18T16:09:52</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.cl-emb.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.cl-emb.devel</link>
  </textinput>
</rdf:RDF>
