freenode/#sbcl - IRC Chatlog
Search
12:57:46
stassats
scymtym: i can identify (if (typep …) (if typep …) (if typep …)) trivially, but then i can't do anything
12:58:27
stassats
so, a let clambda needs to be introduced, wrapping some arbitrary blocks, which blocks? etc.
13:01:48
scymtym
stassats: the problems are on the x86 win32 vm, the x86_64 win32 vm seems fine so far
13:02:17
stassats
there isn't even a good spec to adhere to when writing .asd files, so you're subject to some new retrospective decisions
13:04:17
scymtym
well, the syntax and semantics are discussed in the manual. the "best practices" thing is complementary
13:07:18
scymtym
i agree that modern ASDF makes using dependencies, in particular not enthusiastically maintained ones, a lot more painful
13:35:13
scymtym
(sb-impl::find-external-format '(:utf-8 :newline-coding :windows)) => #<SB-IMPL::EXTERNAL-FORMAT UTF-8 DOS {100849F8D3}>
13:44:20
stassats
for input, either CR or CRLF or LF would denote a newline, for output, the platform default
13:51:33
scymtym
okay let's i have a file containing 00000000: 666f 6f0d 0a62 6172 0d62 617a 0a foo..bar.baz.
13:56:09
scymtym
when i do (map 'list #'char-name (alexandria:read-file-into-string "/tmp/bla.txt" :external-format :utf-8)), would that be the same as '(:utf-8 :eof :auto) which would be '(:utf-8 :eof :crlf), returning (#\f #\o #\o #\Newline #\b …) on win32, '(:utf-8 :eof :lf), returning (#\f #\o #\o #\Return #\Newline #\b …) on linux and similar for macos?
14:03:03
scymtym
so the possible newline codings are :crlf, :lf, :cr, :auto/crlf (default on windows), :auto/lf (default on unix), :auto/cr (default macos)
14:11:16
nyef``
You also get cases on DOS and similar where if you have a sequence of multiple newlines only the first is CRLF and the rest are merely LF. Because CR is *expensive*, moving the print head (or platen!) like that.
14:14:11
stassats
so that people who are inconvenienced by reduced performance can drop (setf sb-ext:*default-external-format* '(utf-8 :lf)
14:16:33
scymtym
or, well, doesn't have to, strictly speaking, but it seems more consistent that way
14:17:55
stassats
but (setf (sb-ext:default-external-format) :utf-8) is nicer than calling find-external-format
14:19:26
scymtym
i could be something like (defun (setf sb-ext:default-external-format) (designator) (setf … (typecase designator (external-format designator) (t (find-external-format designator)))))
14:20:30
stassats
some people are already using SB-IMPL::*DEFAULT-EXTERNAL-FORMAT*, have to not break it
14:28:54
scymtym
i can enable it again later. but having it break in way that needs manual intervention every other day is a little annoying
14:47:22
scymtym
stassats: i'm about done with external formats for today. i will continue when i next have time. or do you want to pick it up?
19:15:24
veckon
What is the current recommended flags to build "the most efficient" SBCL for x86_64 on Linux? Is "--fancy" enough, or will I be missing out on some neat optimizations available on latest Intel CPUs (like Skylake-X)?
20:12:10
dougk
veckon: there are no optimizations like what you're implying. "efficient" might, for some user, be "mean and lean" - the opposite of fancy. Disable threads, disable unicode. And disable safety if you want to go recklessly fast. Basically don't think of build options in terms of efficiency though.
20:20:50
nyef
... Okay, having checked logs, the main build-time feature toggles that affect time-cost of code running on the target system are threads and unicode.
20:21:51
nyef
Everything beyond that is... Oh, wait. The one who originally asked already left. Nevermind.