fvf

joined 11 months ago
[–] fvf@alien.top 1 points 11 months ago

Having hacked a bit on Home Assistant, it's impossible to not want a CL variant of the same. Stopping and restarting your "house" umpteen times for every little change is such a ridiculous development cycle.

[–] fvf@alien.top 1 points 11 months ago (1 children)

You can't recompile a function as such, running or not. What you can do, is to re-compile some code into a new function, and assign whatever name the old function had to the new function.

Whenever that function-name is called next, the new function will get called. The old function might still exist, either because it was already running while the new function was compiled, or because it as assigned to more names (or otherwise available) except through that function-name from before.

So, again, while you can't recompile some function named X, you can create (i.e. re-compile) a new function and assign it to X. And any function(s) Y that call X will also get "modified" in the sense that they from now on will call the new X instead of the old X (without Y having to be re-compiled in any way).

[–] fvf@alien.top 1 points 11 months ago

An interned symbol will hang around forever, adding load to GC, memory footprint, symbol clutter, etc. A non-interned symbol has nearly zero of any of these costs.

These are very minor considerations, perhaps only meaningful for release-quality library code.

[–] fvf@alien.top 1 points 11 months ago (5 children)

Better use #:foobar to make it a symbol that isn't interned at all.