<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slset/benchmarks, branch master</title>
<subtitle>Lists of symbols as sets
</subtitle>
<id>https://code.more-magic.net/slset/atom?h=master</id>
<link rel='self' href='https://code.more-magic.net/slset/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/'/>
<updated>2025-08-19T08:17:33Z</updated>
<entry>
<title>Use singular "slset" instead of plural "slsets"</title>
<updated>2025-08-19T08:17:33Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-19T08:17:33Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=1007f7aef69d3fe28942ad74cc002b49bd1eefaa'/>
<id>urn:sha1:1007f7aef69d3fe28942ad74cc002b49bd1eefaa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Minor change in benchmark</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-15T11:34:27Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=a64d4e18ade6e0eca23806524f863852594f229d'/>
<id>urn:sha1:a64d4e18ade6e0eca23806524f863852594f229d</id>
<content type='text'>
Do not count list construction towards benchmark time.

This doesn't appear to make a big difference but it's good to pull
that out of the calculation.
</content>
</entry>
<entry>
<title>Change Scheme benchmark to allow graphing by measuring time and looping</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-15T07:22:08Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=fa8d354bc49b0adc77e6dd6d973c8bd2d33f2769'/>
<id>urn:sha1:fa8d354bc49b0adc77e6dd6d973c8bd2d33f2769</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Actually use both different sets</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-05T09:01:40Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=098c6ba98e7cca7b0810d9283e2afd4a9ac5519b'/>
<id>urn:sha1:098c6ba98e7cca7b0810d9283e2afd4a9ac5519b</id>
<content type='text'>
The original implementation just diffed the same set with itself,
and needed a workaround for srfi-1's shortcut on the identical list.

Since we're comparing to other implementations with differing sets, it
makes sense to do the same here.

We actually started doing this but ended up just redefining the same
list...
</content>
</entry>
<entry>
<title>Add benchmarks for Ruby, Python and Clojure</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-05T08:37:58Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=12a4f8e2415a767c501898d3626663f78fb3c33d'/>
<id>urn:sha1:12a4f8e2415a767c501898d3626663f78fb3c33d</id>
<content type='text'>
Ruby is about the same speed as slets.  Clojure (babashka) and Python
are goddamn fast.  Python is 10 times as fast.  Clojure is twice as
slow as Python but that still outperforms Ruby and slsets.
</content>
</entry>
<entry>
<title>Disable interrupts</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-05T08:27:31Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=565171c7b0a7389e60ec6f8593732988f43b6aef'/>
<id>urn:sha1:565171c7b0a7389e60ec6f8593732988f43b6aef</id>
<content type='text'>
Doesn't do that much, but it's a good idea for slsets as well because
it makes it unlikely that plist changes are ever observed, because
there's no thread switching.
</content>
</entry>
<entry>
<title>Add custom hash table implementation to compare direct hash-table-as-set</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-05T08:07:40Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=53f99c5612daadf18e90475159c7683443033b0d'/>
<id>urn:sha1:53f99c5612daadf18e90475159c7683443033b0d</id>
<content type='text'>
This uses hash-tables directly instead of creating the hash table from
the lset every time.  It's faster than using srfi-69 because it can be
inlined better.
</content>
</entry>
<entry>
<title>Add hacky cache for symbol hash</title>
<updated>2025-08-18T11:39:32Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-08-05T07:41:51Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=7f242c33130d0c6671f307e9a6224fa74765582c'/>
<id>urn:sha1:7f242c33130d0c6671f307e9a6224fa74765582c</id>
<content type='text'>
Makes a bit of an impact - about 20% faster
</content>
</entry>
<entry>
<title>Initial implementation of slsets egg</title>
<updated>2025-08-18T11:39:31Z</updated>
<author>
<name>Peter Bex</name>
<email>peter@more-magic.net</email>
</author>
<published>2025-07-29T12:52:12Z</published>
<link rel='alternate' type='text/html' href='https://code.more-magic.net/slset/commit/?id=2da2aae3a1ff27f62b9d87fddf26bf1caf6ea687'/>
<id>urn:sha1:2da2aae3a1ff27f62b9d87fddf26bf1caf6ea687</id>
<content type='text'>
This implements sets of symbols *as lists*, like in the srfi-1 lset
operations.  It maintains the benefit of using lists for everything,
but not having to pay the quadratic performance penalty that srfi-1
entails.  We achieve this by using plist operations to "mark" items
so we have to visit the list "set" only a fixed number of times.
</content>
</entry>
</feed>
