freenode/#clasp - IRC Chatlog
Search
5:55:25
beach
Bike: You can almost always avoid the test for an &optional argument if you write one or two functions without &optional, and have the compiler macro expand to a call to one of them.
5:56:18
beach
Then, even if inlining works only for functions without &optional, you can benefit from inlining anyway.
13:50:58
Bike
the function in question is part of someone else's library, is the thing... i mean we could define one anyway
13:59:18
beach
I suggested it because you hinted that inlining created a big LLVM code. If it works fine, then forget what I said. I must have misunderstood something.
13:59:47
Bike
Oh, if you mean when I was talking about dot files yesterday that was just because it's a big lisp function
14:00:34
beach
I see. I seem to remember that it had to do with inlining functions with &optional parameters. I must be misremembering.
14:07:56
Bike
sure, but i thought the whole philosophy was we'd inline things and then cut out irrelevant parts, rather than e.g. acting like sbcl where it replaces known function calls with computed specialized bodies
14:24:23
pfdietz
User NOTINLINE declarations must be respected, although what that means for builtin functions is not clear, as no conforming program can redefine or trace them.
14:27:54
pfdietz
If one cannot do the things that would show the function is not inlined, does the declaration have any meaning?
14:32:30
pfdietz
breach: it could, but it's not required to. I come at this from the point of view of a tester: what test could be written that shows (say) APPEND had not been inlined?
14:32:31
drmeister
::notify kpoeck cclasp-boehm is working again. It was an out of order c++ static constructors problem.
14:34:00
beach
pfdietz: I understand, but where in the Common Lisp HyperSpec does it say that NOTINLINE may not be respected for built-in functions?
14:34:21
Bike
huh, declaring not/inline is not part of the standard package restrictions. news to me.
14:35:44
pfdietz
It doesn't say that notinline may not be respected, it just says that the things you might use to truly test if it had been inlined can't be done.
14:36:25
pfdietz
Something that doesn't show up in external behavior doesn't exist, from my point of view.
14:53:12
Shinmera
Assuming a deterministic compiler, you could compile twice and compare size of the disassemble output :^)