jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
troojg has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
kevingal has quit [Ping timeout: 248 seconds]
random-nick has quit [Ping timeout: 276 seconds]
istewart has joined #commonlisp
mon_key_phn has joined #commonlisp
lucasta has quit [Quit: Leaving]
brokkoli_origin has quit [Ping timeout: 246 seconds]
brokkoli_origin has joined #commonlisp
X-Scale has joined #commonlisp
Akbar-Birbal has joined #commonlisp
ad-absurdum has joined #commonlisp
X-Scale has quit [Quit: Client closed]
Akbar-Birbal has left #commonlisp [#commonlisp]
decweb has quit [Ping timeout: 252 seconds]
X-Scale has joined #commonlisp
Akbar-Birbal has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 276 seconds]
cdegroot has quit [Ping timeout: 252 seconds]
X-Scale has quit [Quit: Client closed]
wacki has joined #commonlisp
amb007 has joined #commonlisp
bitspook has joined #commonlisp
skeemer has quit [Ping timeout: 248 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
ad-absurdum has quit [Quit: Leaving]
mgl_ has joined #commonlisp
pve has joined #commonlisp
chomwitt has joined #commonlisp
shka has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
oneeyedalien has joined #commonlisp
traidare has joined #commonlisp
alternateved has joined #commonlisp
X-Scale has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
King_julian has joined #commonlisp
bobcave has joined #commonlisp
bobcave has quit [Changing host]
bobcave has joined #commonlisp
King_julian has quit [Ping timeout: 260 seconds]
King_julian has joined #commonlisp
semarie has quit [Ping timeout: 272 seconds]
<younder> I have been thinking of the three modes of compilation. Compiling a function standalone. Compiling a module. Compiling a executable. There should be a fourth. Compiling a library. It each there is a limit to the amount of optimization can be done. The key here is in-lining.
<younder> Futher-more CLOS can not be excluded. Compiler macros are essential here. What can I do if I KNOW this method wont be redefined. I know no-one changes this class. We have seen a factor of 2 in execution speed can be had by considering this.
<jackdaniel> what do you mean by a module compilation? a file?
<jackdaniel> regarding clos considerations, the concept you are mentioned is called "sealing"
<younder> The problem with CL is that includes the compiler at runtime. This prevents a whole host of in-lining from being possible because you can never KNOW weather it will be changes or not.
<jackdaniel> I wouldn't call it a problem
<younder> jackdaniel: yes a file
<jackdaniel> you can control (if the implementation supports it) the scope of compilation with a macro WITH-COMPILATION-UNIT
<jackdaniel> you may wrap it around whole system compilation
<younder> Thanks. that is useful to know
<jackdaniel> it is conforming to expand with-compilation-unit to progn though; I think that SBCL retain compilation information across files though (if done that way)
<jackdaniel> depending on the compiler policies, optimization settings may make inlining more or less likely too (the most surefire method though is a direct declaration)
<jackdaniel> also note that scoping multiple files, if the compiler indeed does the fancy thing, may get intensive either space-wise or speed-wise (i.e slower compilation)
<jackdaniel> even in (say) C you link multiple .o files that are already compiled
<jackdaniel> regarding faster generic functions, check out https://github.com/marcoheisig/fast-generic-functions
<ixelp> GitHub - marcoheisig/fast-generic-functions: Seal your generic functions for an extra boost in performance.
<younder> Yes global optimizations will significantly slow down the compile time. So use it sparingly - like just before a release.
<younder> Again it would be useful to have the feature for a library.
<jackdaniel> arguably, even in released program, you don't want to inline too much and seal too many generic functions, because you know - debugging, hackability and other very important things
<jackdaniel> extending live programs is a merit, not demerit of common lisp
kopiyka has quit [Remote host closed the connection]
<jackdaniel> (although I can think of scenarios where it would make sense)
<younder> Hackabillity vs. speed yes a constant trade-off
<jackdaniel> you can have a performant program that is still hackable, it is a false dichotomy
<younder> But it should be under the programmers control. There are exceptions to exception a really clever compiler end up being really dumb.
<jackdaniel> i.e inlining a sparingly called function will save you nil in practice
kopiyka has joined #commonlisp
<jackdaniel> (and will cost you dearly with memory requirements if done pervasively)
<jackdaniel> that said, as already mentioned, I agree that there are various scenarios
<younder> Agreed in-lining should be at the compilers discretion. The programmers job is to say this is a compilation unit it will not change.
semarie has joined #commonlisp
<jackdaniel> I'd say the other way around; programmer knows best what should and what must not be inlined ,)
<younder> Look a good optimizer focuses on loops and in-lining code in loops. On in-lining stuff that is tightly coupled.
<younder> Micro managing the compiler is so 1970's
<jackdaniel> I don't see how this contradicts what I've said
<younder> Mainly the compiler knows what is to be in-lined or not better than you.
* jackdaniel hastily removes all declare notinline declarations from the codebase
<jackdaniel> in any case, I don't have anything more to add, unless you are for some banter
kyoji has quit [Read error: Connection reset by peer]
<younder> Thanks for your input. Will remember with-compilation-unit.
kyoji has joined #commonlisp
<younder> In truth using SSA (Single Static Assignment) is pretty new in the world of Lisp compilers. It makes reasoning over flow a lot easier.
<younder> Static Single Assignment
traidare has quit [Ping timeout: 252 seconds]
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
jadzi has joined #commonlisp
younder has quit [Remote host closed the connection]
younder has joined #commonlisp
alcor has joined #commonlisp
oneeyedalien has quit [Ping timeout: 252 seconds]
oneeyedalien has joined #commonlisp
oneeyedalien has quit [Ping timeout: 246 seconds]
pranav has quit [Remote host closed the connection]
ingeniot has joined #commonlisp
awlygj has joined #commonlisp
benjaminl has quit [Read error: Connection reset by peer]
benjaminl has joined #commonlisp
gooba has quit [Remote host closed the connection]
elderK has joined #commonlisp
elderK has quit [Client Quit]
msv has quit [Remote host closed the connection]
msv has joined #commonlisp
random-nick has joined #commonlisp
pranav has joined #commonlisp
<younder> https://irclog.tymoon.eu/libera/ shows beach logs in irregularly on this channel any yet I never see it. hmm. I suspect foul play.
<ixelp> TyNET
<younder> forget it
<beach> ?
<younder> Brain fart on my part. I was looking for xach
<beach> Oh, OK.
<younder> beach: Anyhow have you heard fro Gilbert lately?
Noisytoot has quit [Ping timeout: 252 seconds]
<beach> gilberth: was active on #clschool yesterday.
<beach> Er, I mean gilberth was active on #clschool yesterday.
decweb has joined #commonlisp
<younder> Nice to know. jackdaniel said he hadn't heard from him recently.
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
flounders_ has quit [Ping timeout: 248 seconds]
flounders has joined #commonlisp
King_julian has quit [Ping timeout: 252 seconds]
random-nick has quit [Ping timeout: 252 seconds]
donleo has joined #commonlisp
bitspook has quit [Ping timeout: 248 seconds]
yitzi has joined #commonlisp
bitspook has joined #commonlisp
bitspook has quit [Ping timeout: 244 seconds]
edgar-rft_ has joined #commonlisp
edgar-rft has quit [Ping timeout: 260 seconds]
ingeniot has quit [Quit: Client closed]
bitspook has joined #commonlisp
bitspook has quit [Ping timeout: 264 seconds]
random-nick has joined #commonlisp
ingeniot has joined #commonlisp
bitspook has joined #commonlisp
lucasta has joined #commonlisp
chiselfu1e is now known as chiselfuse
King_julian has joined #commonlisp
rogersm has quit [Quit: Leaving...]
edgar-rft_ is now known as edgar-rft
bobcave has quit [Quit: Leaving]
jadzi has quit [Remote host closed the connection]
jadzi has joined #commonlisp
<Shinmera> ELS 2025 in Zürich has been officially announced! Book your dates, May 19th and 20th. https://www.european-lisp-symposium.org/2025/index.html
<ixelp> ELS 2025, Zürich - European Lisp Symposium
<beach> Excellent!
JuanDaugherty has joined #commonlisp
ingeniot has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
King_julian has quit [Ping timeout: 276 seconds]
molson_ has joined #commonlisp
molson has quit [Ping timeout: 252 seconds]
jon_atack has quit [Ping timeout: 252 seconds]
chrcav has quit [Quit: leaving]
X-Scale has joined #commonlisp
chrcav has joined #commonlisp
JuanDaugherty has quit [Quit: JuanDaugherty]
yitzi has quit [Remote host closed the connection]
X-Scale has quit [Ping timeout: 256 seconds]
alcor has quit [Remote host closed the connection]
alcor has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
Noisytoot has joined #commonlisp
mwnaylor` has joined #commonlisp
mwnaylor` has quit [Remote host closed the connection]
mwnaylor` has joined #commonlisp
mwnaylor` has quit [Remote host closed the connection]
mwnaylor` has joined #commonlisp
mwnaylor` has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
mwnaylor` has joined #commonlisp
mwnaylor` has quit [Remote host closed the connection]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
varjag has joined #commonlisp
mwnaylor` has joined #commonlisp
wacki has joined #commonlisp
mwnaylor has quit [Killed (NickServ (GHOST command used by mwnaylor`!~user@2601:5cf:837e:2bb0::847a))]
mwnaylor has joined #commonlisp
yitzi has joined #commonlisp
varjag has quit [Ping timeout: 244 seconds]
lucasta has quit [Ping timeout: 260 seconds]
bilegeek has joined #commonlisp
X-Scale has joined #commonlisp
mwnaylor has quit [Ping timeout: 272 seconds]
mwnaylor` is now known as mwnaylor
mwnaylor is now known as Guest249
zxcvz has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
zxcvz has quit [Client Quit]
synchromesh has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
random-nick has quit [Read error: Connection reset by peer]
Akbar-Birbal has left #commonlisp [Error from remote client]
johnjaye has quit [Ping timeout: 246 seconds]
random-nick has joined #commonlisp
ingeniot has joined #commonlisp
johnjaye has joined #commonlisp
jadzi has quit [Ping timeout: 272 seconds]
johnjaye has quit [Ping timeout: 272 seconds]
johnjaye has joined #commonlisp
bitspook has quit [Ping timeout: 276 seconds]
random-nick has quit [Ping timeout: 252 seconds]
bitspook has joined #commonlisp
awlygj has quit [Quit: leaving]
traidare has joined #commonlisp
bitspook has quit [Ping timeout: 252 seconds]
random-nick has joined #commonlisp
bitspook has joined #commonlisp
bitspook has quit [Ping timeout: 248 seconds]
bitspook has joined #commonlisp
random-nick has quit [Ping timeout: 248 seconds]
Guest249 has left #commonlisp [ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
mwnaylor has joined #commonlisp
random-nick has joined #commonlisp
yitzi has quit [Remote host closed the connection]
cage has quit [Quit: rcirc on GNU Emacs 29.4]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
skeemer has joined #commonlisp
ingeniot has quit [Ping timeout: 256 seconds]
Ruby has quit [Quit: ZNC - https://znc.in]
Ruby has joined #commonlisp
attila_lendvai has joined #commonlisp
mistivia has quit [Ping timeout: 252 seconds]
mistivia has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
bitspook has quit [Read error: Connection reset by peer]
brokkoli_origin has quit [Remote host closed the connection]
X-Scale has joined #commonlisp
amb007 has joined #commonlisp
istewart has joined #commonlisp
alexander1 has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
JuanDaugherty has joined #commonlisp
istewart has quit [Client Quit]
brokkoli_origin has joined #commonlisp
qhong has joined #commonlisp
bjorkintosh has joined #commonlisp
qhong_ has quit [Ping timeout: 260 seconds]
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
neuroevolutus has joined #commonlisp
alexander1 has quit [Quit: alexander1]
amb007 has quit [Ping timeout: 265 seconds]
attila_lendvai has quit [Ping timeout: 248 seconds]
pve has quit [Quit: leaving]
shka has quit [Ping timeout: 248 seconds]
kevingal has joined #commonlisp
antoinebr has joined #commonlisp
<antoinebr> hello
<bike> hey.
<antoinebr> How to avoid all optimisation to happen in sbcl ?
JuanDaugherty has quit [Quit: JuanDaugherty]
<bike> i don't think you can disable truly all optimization, but you can specify (optimize (speed 0) (space 0) ...) i guess
<aeth> I think a lot of implementations may do relative things e.g. debug > speed
<aeth> so you might have to throw in (debug 3) too?
<aeth> and (safety 3)
<aeth> so perhaps something like this? (optimize (compilation-speed 0) (speed 0) (space 0) (safety 3) (debug 3))
<aeth> or maybe debug 2 or 1, with safety 3, if debug gets in the way somehow
<aeth> also, maybe compilation-speed should be set high, since that means doing fewer optimizations at compile time?
mgl_ has quit [Ping timeout: 252 seconds]
<antoinebr> ok
<aeth> those are the 5 knobs; experiment, especially around debug and compilation-speed
<antoinebr> I wanted to see all stack frames, and I seems to works.
alternateved has quit [Remote host closed the connection]
cqst has quit [Quit: cqst]
neuroevolutus has quit [Ping timeout: 256 seconds]
cqst has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
chomwitt has quit [Ping timeout: 246 seconds]
donleo has quit [Ping timeout: 248 seconds]
alcor has quit [Ping timeout: 252 seconds]
johnjaye has quit [Ping timeout: 246 seconds]
traidare has quit [Ping timeout: 252 seconds]
istewart has joined #commonlisp
istewart has quit [Remote host closed the connection]
antoinebr has quit [Remote host closed the connection]