freenode/#sicl - IRC Chatlog
Search
8:54:03
beach
I decided to bite the bullet and try to extract the Cleavir environment query functions and classes to a separate repository.
8:54:04
beach
I am gradually moving things from Cleavir into this repository, modifying comments and factoring code as I go along: https://github.com/robert-strandh/Trucler
8:55:13
beach
Any help will be appreciated. Help with the migration, help with the code factoring, help with ideas about customization, help with the creation of implementation-specific methods and subclasses.
8:59:18
beach
Also, the current implementation in Cleavir is quite slow. It traverses the chain of environment extensions several times to build the INFO objects to return, and it does this on every query.
9:00:19
beach
It would be interesting to implement some kind of caching scheme so that several identical queries would be faster.
9:02:27
beach
Each one add one piece of information. Dynamic extent, a type, inline information, etc.
9:03:13
beach
So when the query happens, all this information must be combined. The AND between the types must be computed, the innermost version of inline information must be used, etc, etc.
9:04:28
beach
But each extension (or rather "augmentation") function supplies only one piece of information.
11:33:43
heisig
Good news - I just finished my sealable metaobjects prototype. And I can use it to implement the SICL sequence functions.
11:34:21
heisig
That means that the discriminating function can be avoided whenever the compiler can infer that the sequence in question is of a built-in type.
11:36:05
heisig
The previous version takes 48ns for FINDing something in a specialized vector with a single element. The 'inlined' version takes only 41ns.
11:39:14
beach
I have said this before, but I don't think performance is extremely important for short sequences.
11:40:40
heisig
I know. The more important use case of sealable metaobjects is to allow a generic cl:elt.
11:41:03
heisig
But for that to work, I also have to inline the effective method, not just the discriminating function.
11:42:49
heisig
scymtym: You are more familiar with SBCL internals. Do you spot any problems with the following code: https://github.com/marcoheisig/sealable-metaobjects/blob/master/code/implementation-specific/sbcl.lisp ?