[Shootout-list] Updated regexmatch for SBCL/CMUCL

Markus Ziegler markus64@gmx.ch
Wed, 10 Nov 2004 18:18:29 +0100 (MET)


This is a MIME encapsulated multipart message -
please use a MIME-compliant e-mail program to open it.

Dies ist eine mehrteilige Nachricht im MIME-Format -
bitte verwenden Sie zum Lesen ein MIME-konformes Mailprogramm.

--========GMXBoundary13211100107109
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi, while browsing the site I noticed that both Common Lisp 
implementations and newLISP have 'Lisp' listed as language next to the 
implementation name. I think that's wrong since the implementations 
clearly implement different languages.

Would anybody mind changing the language names? (assuming nobody objects)

I also updated the CL implementation of regexmatch to use the newer 
version of the Meta library from Jochen Schmidt, I include a (slightly 
modified) version of the library and an updated implementation of 
regexmatch.sbcl/cmucl (it should work on both, I only tested it on SBCL 
though) as attachments. The execution time should be the same, but I think 
that the newer version of the library makes for quite a bit more readable 
code by avoiding the heavy use of reader macros that the original version 
relied on.

Regards, Markus

-- 
NEU +++ DSL Komplett von GMX +++ http://www.gmx.net/de/go/dsl
GMX DSL-Netzanschluss + Tarif zum supergünstigen Komplett-Preis!
--========GMXBoundary13211100107109
Content-Type: application/octet-stream; name="regexmatch.lisp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="regexmatch.lisp"

Ozs7IC0qLSBtb2RlOiBsaXNwIC0qLTsKOzs7ICRJZDogcmVnZXhtYXRjaC5jbXVjbCx2IDEuMyAy
MDA0LzA2LzIxIDA3OjI0OjAxIGJmdWxnaGFtIEV4cCAkCjs7OyBodHRwOi8vc2hvb3RvdXQuYWxp
b3RoLmRlYmlhbi5vcmcvCjs7OyBmcm9tIEpvY2hlbiBTY2htaWR0Cjs7OyBNdWx0aS1saXNwIG1v
ZGlmaWNhdGlvbnMgYnkgQnJlbnQgRnVsZ2hhbQo7OzsgRnVydGhlciBtb2RpZmllZCAob3B0aW1p
emVkICYgY2xlYW5lZCB1cCBhIGxpdHRsZSkgYnkgTWFya3VzIFppZWdsZXIKCihwcm9jbGFpbSAn
KG9wdGltaXplIChzcGVlZCAzKSAoc2FmZXR5IDApIChzcGFjZSAwKSAoZGVidWcgMCkgKGNvbXBp
bGF0aW9uLXNwZWVkIDApKSkKIytjbXUgKHNldGYgZXh0OipieXRlcy1jb25zZWQtYmV0d2Vlbi1n
Y3MqIDUwMDAwMDApCihkZWNsYWltIChpbmxpbmUgdHlwZXAgZGlnaXQtY2hhcnAgbm9uLWRpZ2l0
LWNoYXJwKSkKCih1c2UtcGFja2FnZSA6bWV0YSkKKGV2YWwtd2hlbiAoOmNvbXBpbGUtdG9wbGV2
ZWwgOmxvYWQtdG9wbGV2ZWwgOmV4ZWN1dGUpCiAgKGRlZnVuIGRpZ2l0LWNoYXJwIChjaGFyKQog
ICAgKGRlY2xhcmUgKHR5cGUgYmFzZS1jaGFyIGNoYXIpKQogICAgKGNoYXI8PSAjXDAgY2hhciAj
XDkpKQoKICAoZGVmdW4gbm9uLWRpZ2l0LWNoYXJwIChjaGFyKQogICAgKGRlY2xhcmUgKHR5cGUg
YmFzZS1jaGFyIGNoYXIpKQogICAgKG5vdCAob3IgKGNoYXI9IGNoYXIgI1woKSAoY2hhcj0gY2hh
ciAjXCkpIChkaWdpdC1jaGFycCBjaGFyKSkpKQoKICAoZGVmdHlwZSBkaWdpdCAoKSAnKHNhdGlz
ZmllcyBkaWdpdC1jaGFycCkpCiAgKGRlZnR5cGUgbm9uLWRpZ2l0ICgpICcoc2F0aXNmaWVzIG5v
bi1kaWdpdC1jaGFycCkpKSAKCihkZWZ2YXIgYXJlYS1jb2RlICAgICAobWFrZS1hcnJheSAzIDpl
bGVtZW50LXR5cGUgJ2Jhc2UtY2hhcikpCihkZWZ2YXIgZXhjaGFuZ2UgICAgICAobWFrZS1hcnJh
eSAzIDplbGVtZW50LXR5cGUgJ2Jhc2UtY2hhcikpCihkZWZ2YXIgbGFzdC00LWRpZ2l0cyAobWFr
ZS1hcnJheSA0IDplbGVtZW50LXR5cGUgJ2Jhc2UtY2hhcikpCgooZGVmdW4gcGFyc2UtdGVsIChp
bnB1dCkKICAoZGVjbGFyZSAodHlwZSBzaW1wbGUtYmFzZS1zdHJpbmcgYXJlYS1jb2RlIGV4Y2hh
bmdlIGxhc3QtNC1kaWdpdHMpKQogIChtZXRhOndpdGgtc3RyaW5nLW1ldGEgKGJ1ZmZlciBpbnB1
dCkKICAgIChsYWJlbHMgKChza2lwLW5vbi1kaWdpdHMgKCkKCSAgICAgICAobWV0YTptYXRjaCAo
OndoaWxlICg6dHlwZSBub24tZGlnaXQpKSkpCgkgICAgIChkaWdpdC10cmlwbGV0IChyZXN1bHQp
CgkgICAgICAgKGRlY2xhcmUgKHR5cGUgc2ltcGxlLWJhc2Utc3RyaW5nIHJlc3VsdCkpCgkgICAg
ICAgKG1ldGE6bWF0Y2ggKDphbmQgKDp0eXBlIGRpZ2l0IChzY2hhciByZXN1bHQgMCkpIAoJCQkJ
ICg6dHlwZSBkaWdpdCAoc2NoYXIgcmVzdWx0IDEpKSAKCQkJCSAoOnR5cGUgZGlnaXQgKHNjaGFy
IHJlc3VsdCAyKSkpKSkKCSAgICAgKGRpZ2l0LTR0dXBsZSAocmVzdWx0KQoJICAgICAgIChkZWNs
YXJlICh0eXBlIHNpbXBsZS1iYXNlLXN0cmluZyByZXN1bHQpKQoJICAgICAgIChtZXRhOm1hdGNo
ICg6YW5kICg6dHlwZSBkaWdpdCAoc2NoYXIgcmVzdWx0IDApKQoJCQkJICg6dHlwZSBkaWdpdCAo
c2NoYXIgcmVzdWx0IDEpKQoJCQkJICg6dHlwZSBkaWdpdCAoc2NoYXIgcmVzdWx0IDIpKQoJCQkJ
ICg6dHlwZSBkaWdpdCAoc2NoYXIgcmVzdWx0IDMpKSkpKQoJICAgICAodGVsZXBob25lLW5yICgp
IAoJICAgICAgIChtZXRhOm1hdGNoICg6YW5kIChza2lwLW5vbi1kaWdpdHMpCgkJCQkgKDpvciAo
OmFuZCAjXCggKGRpZ2l0LXRyaXBsZXQgYXJlYS1jb2RlKSAjXCkpCgkJCQkgICAgICAoZGlnaXQt
dHJpcGxldCBhcmVhLWNvZGUpKQoJCQkJICNcc3BhY2UgKGRpZ2l0LXRyaXBsZXQgZXhjaGFuZ2Up
ICg6b3IgI1xzcGFjZSAjXC0pCgkJCQkgKGRpZ2l0LTR0dXBsZSBsYXN0LTQtZGlnaXRzKQoJCQkJ
ICg6b3IgKDp0eXBlIG5vbi1kaWdpdCkgKD0gaW5kZXggZW5kKSkpKSkpCiAgICAgICh0ZWxlcGhv
bmUtbnIpKSkpCgooZGVmdW4gbWFpbiAoKQogIChsZXQgKChuIChwYXJzZS1pbnRlZ2VyIChvciAo
Y2FyIChsYXN0ICMrc2JjbCBzYi1leHQ6KnBvc2l4LWFyZ3YqCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIytjbXUgIGV4dGVuc2lvbnM6KmNvbW1hbmQtbGluZS1zdHJp
bmdzKikpICIxIikpKQogICAgICAgIChpbnB1dCAobG9vcCBmb3IgbGluZSA9IChyZWFkLWxpbmUg
KnN0YW5kYXJkLWlucHV0KiBuaWwgJ2VvZikKCQkgIHVudGlsIChlcSBsaW5lICdlb2YpIGNvbGxl
Y3QgbGluZSkpKQogICAgKGxvb3AgZm9yIGkgb2YtdHlwZSBmaXhudW0gZnJvbSAxIGJlbG93IG4g
ZG8KCSAobG9vcCBmb3IgbGluZSBvZi10eXBlIHNpbXBsZS1iYXNlLXN0cmluZyBpbiBpbnB1dAoJ
ICAgIGRvIChwYXJzZS10ZWwgbGluZSkpKQogICAgKGxvb3Agd2l0aCBpIG9mLXR5cGUgZml4bnVt
ID0gMAogICAgICAgZm9yIGxpbmUgb2YtdHlwZSBzdHJpbmcgaW4gaW5wdXQKICAgICAgIGRvICh3
aGVuIChwYXJzZS10ZWwgbGluZSkKCSAgICAoZm9ybWF0IHQgIn5BOiAofkEpIH5BLX5BfiUiIChp
bmNmIGkpIGFyZWEtY29kZSBleGNoYW5nZSBsYXN0LTQtZGlnaXRzKSkpKSkK
--========GMXBoundary13211100107109--