freenode/#sicl - IRC Chatlog
Search
4:10:09
beach
heisig: What does this mean: There is no applicable method for the generic function #<... TRUCLER-RESTRICT-FOR-MACROLET-EXPANDER (1)> when called with arguments (<client> <global environment>)? Should I define a method on that function for my global environment?
4:26:17
beach
It seems if I do (defmethod trucler:restrict-for-macrolet-expander ((client client) (environment environment)) environment) [in SICL-BOOT] then the message disappears and things seem to work.
5:58:46
Colleen
Weather in Bordeaux: Possible Light Rain at 20°C (feels like 21°C), 88% humidity, 2km/h wind, 1014hPa pressure.
6:47:47
heisig
beach: I have never touched the generic function TRUCLER-RESTRICT-FOR-MARCOLET-EXPANDER.
6:52:10
heisig
Placing an identity function there is probably good for now. But the method will have to do some more work to be fully correct.
6:52:50
heisig
I think this is about stripping out things like surrounding flet bindings that shouldn't be visible inside of macros bound via macrolet.
6:57:28
heisig
The pros are that it simplifies the implementation. The sign can be handled by specialized methods for the four cases of each binary function.
6:57:59
heisig
And it requires zero extra space per bignum. There is just a different value in the class slot of the header.
6:59:52
heisig
I just wanted to point out that we have the infrastructure to encode the sign directly in the class.
7:02:54
beach
I think Bike invented this restriction, but called it COMPILE-TIME. I must have found the name insufficiently informative.
13:17:28
beach
I am trying to get DEFMETHOD to work without a DEFGENERIC preceding it. Currently, I get an error from INITIALIZE-INSTANCE that the METHOD-COMBINATION keyword argument was not supplied, which is right, it wasn't.
13:17:34
beach
Reading the MOP page about initialization of generic-function metaobjects suggests that this argument must be supplied so the error is correct. Then, the entry for ENSURE-GENERIC-FUNCTION-USING-CLASS explicitly says that it passes this keyword argument on without supplying any default.
13:17:36
beach
But that can't be, because the generic dispatch on this function determines whether the generic function exists or not. If it does not exist, the method specialized to NULL is invoked. And then it would have to come up with some default value, no?
13:26:50
beach
I guess there is another possibility, namely that ENSURE-GENERIC-FUNCTION checks whether the generic function exists, but that would be silly since that is what the generic dispatch of ENSURE-GENERIC-FUNCTION-USING-CLASS does.
13:29:22
splittist
beach: where does the MOP entry say EGFUC passes :method-combination through without supplying a default?
13:31:22
Colleen
Ensure-generic-function-using-class http://metamodular.com/CLOS-MOP/ensure-generic-function-using-class.html
13:36:01
jcowan
In older systems with high-end pointer tags, it was not uncommon for fixnums to have all-zeros for positive fixnums and all-ones for negative fixnums
13:36:31
beach
OK, if I trace ENSURE-GENERIC-FUNCTION-USING-CLASS on SBCL and then type a DEFMETHOD form without a preceding DEFGENERIC form, no keyword arguments are given.
13:37:45
beach
So if the :METHOD-COMBINATION keyword argument is not supplied to ENSURE-GENERIC-FUNCTION-USING-CLASS, the method specialized to NULL must supply it. But it could be supplied, so that has to be taken into account.