freenode/lisp - IRC Chatlog
Search
3:48:05
borei
quick question - is there any recommendation in regards to the library to work with date/time ?
3:53:28
edgar-rft
borei: depends on you requirements, for simple things Common Lisp has built-in stuff, but if you need astronomical precision over hundreds of years things start to become hairy, see http://naggum.no/lugm-time.html
3:55:58
edgar-rft
borei: an overview what's available can be found here -> https://www.cliki.net/time
4:00:22
edgar-rft
borei: Common Lisp has GET-INTERNAL-REAL-TIME giving times in INTERNAL-TIME-UNITS-PER-SECOND resolution, maybe that's sufficient for your needs?
7:50:45
flip214
what's the name if I create a dialect of Lisp to specifically solve some business problem in terse form?
9:22:38
flip214
I've got a function calling CL-PPCRE:SCAN with the RE coming from an argument; the function is declared INLINE, but I still have CL-PPCRE:CREATE-SCANNER calls in a profile dump.
9:23:14
flip214
I'd have expected that when the function gets inlined the (constant) string argument could be compiled by CL-PPCRE during compilation, not during runtime?!
10:10:23
flip214
sprof still gives me 10.7% of time in SB-DI::FILL-IN-CODE-LOCATION ... isn't that called only when compiling?
11:41:46
dlowe
flip214: usually declaring a function as inline and setting optimize speed to 3 is sufficient
11:42:15
dlowe
you may have to reduce the debug optimization because inlining will interfere with backtraces
11:59:14
dlowe
Macros are more error prone, kind of the wrong level of abstraction, and can introduce loading order problems if you call any user-defined functions.
11:59:42
dlowe
On the other hand, using them for inlining has a nice certainty that dicking around with compiler settings doesn't
12:29:20
Shinmera
There are situations where it's useful for the compiler to be able to ignore them.
12:33:13
no-defun-allowed
The only change to semantics that inlining provides is that redefining that function doesn't have to work "properly", so a conforming implementation could ignore inline declarations and everything would work fine (albeit slightly slower).