libera/#sicl - IRC Chatlog
Search
8:04:34
heisig
Hmm, someone has replaced my perfectly portable references to CLOSER-MOP with references to SICL-CLOS. Now I can't load the code into SBCL.
8:05:14
heisig
I will introduce two ASDF systems - one for loading the portable versions of sicl-sequence and one for loading the SICL-specific version.
8:05:20
beach
I told you I had to do some surgery to make progress. Feel free to back out those changes.
8:06:09
beach
I am now convinced that I can work out the details of loading the sequence functions, but I won't do that for some time, so just go ahead.
8:11:10
heisig
Do we already have a naming convention for such SICL-specific ASDF systems and files?
8:13:02
beach
And I don't think a #+sicl reader conditional should be used, because other implementation might want to use it as an intrinsic version.
8:15:24
heisig
I see. So the portable system should be named 'sicl-sequence-extrinsic', and the other one just 'sicl-sequence', right?
8:19:29
heisig
Yes, the other way round sounds much better. Otherwise, people would have to type 'sicl-sequence-extrinsic' instead of 'sicl-sequence' to get our code from Quicklisp.
8:20:20
heisig
Should I also remove the reference to fast-generic-functions for the intrinsic version?
8:21:27
beach
Good question. What I did instead was to create a system called FAST-GENERIC-FUNCTIONS that does nothing but provide the right names.
8:23:50
beach
I think you would have to create special versions for a lot of code if you removed references to FAST-GENERIC-FUNCTIONS.
8:24:28
beach
But you could perhaps keep in mind the difficulty of creating such a "fake" system when you update your code.
8:28:03
heisig
The fake system looks good. That's exactly what I would have done. Call-site optimization should do the rest.
8:29:45
heisig
That is, under the assumption that things like specialized versions of ELT are inlined into the snippet.
9:20:32
heisig
There is another bug I just discovered. Someone has replaced my call to CL:ELT by AREF.
9:22:37
heisig
But fixing that isn't too hard, assuming the compiler can optimize-away ARRAY-HAS-FILL-POINTER-P when possible.
10:11:08
heisig
I wouldn't want you to attempt bootstrapping with broken sequence functions. That could be a nightmare.
10:20:01
heisig
Now all that remains is bug in DELETE-DUPLICATES when applied to non-simple strings.
11:13:14
heisig
I just pushed some changes that should speed up the loading of sicl-sequence by roughly a factor of 2-4.
15:42:18
mfiano
https://github.com/robert-strandh/Stealth-mixin/blob/master/stealth-mixin.lisp#L10-L11
15:56:42
mfiano
This tiny library is such a great idea. It's certainly very different, and maybe better, than the way I've been using the MOP to create mixins.
15:57:54
beach
I see. Well, there is a place for "ordinary" mixins, if both the mixins and the main classes that use them as superclasses are in the same module.
15:58:57
beach
And, if there is no performance problem, client code can use hash tables to store the same information that a stealth mixin does. Albeit with a more awkward way of using it.
15:59:51
mfiano
I particularly like how you can solve the model notification problem with an :after method, preventing the model from having even a loose dependency on the view, which could be important if eg; the source code is not even available.
16:02:00
mfiano
Yes and I think that is wonderful. For a long time, I was wondering if something like this was possible, because I dislike mutually dependent packages.
16:03:26
beach
Right, the description of the traditional way of implementing the observer pattern looks good in theory, but it requires the model to be written with observers in mind. And sometimes, you just use an existing model that was not written that way.
16:06:42
mfiano
I will have to think about what that means if the model uses simple method combination
16:09:08
mfiano
Yeah this is seeming good on paper the more I think about it. I look forward to integrating it into my codes
16:23:00
mfiano
I'm also excited because my constant complaining finally paid off and an SBCL dev issued a patch to the style-warning with duplicate symbol-name slots.
16:23:24
mfiano
mixins are no longer an annoyance for me to use, though I'm not sure when that patch will make it into a release.