freenode/#lisp - IRC Chatlog
Search
16:31:55
oni-on-ion
for haskell standard, let's say Haskell '98 or Prime, most use GHC as the crazy-advanced hyper-optimizing supercompiler. this is a bit of a lock-in to implementation, aside from some outliers whom still are based on GHC
16:32:25
oni-on-ion
now for CL, what is the usefulness of adhering to standard, if most cases are using SBCL ?
16:33:37
beach
If you are using only SBCL and you don't care about other implementations, and you believe SBCL will be around for some time, then you do what you wnat.
16:35:01
oni-on-ion
pjb, because i am thinking, emacs lisp is surely the most "portable" kind of lisp. i dont think anyone is choosing CL specifically to be portable. long-lasting (stability) strength of CL is not considered however
16:35:13
pjb
oni-on-ion: If you write conforming CL code, you get de-jure portability: you can run on all conforming CL implementations!
16:35:23
_death
oni-on-ion: most, but not all.. and even if SBCL was the only implementation around, the standard keeps interfaces stable
16:50:45
Shinmera
oni-on-ion: I spend most of my time writing libraries. I want those to be useful for as many people as possible, so in order to account for as many use-cases as possible, I care about them being portable.
16:51:20
Shinmera
beach: SBCL runs on android, just not in a convenient way to be useful for writing Android apps.
16:55:57
oni-on-ion
Shinmera, ah yeah =) my short-sighted worry is nothing changes under me, so i can work on code base until i die. like say haskell or ocaml or web code wont work after a few months
16:56:14
beach
#lisp seems to be the channel of extremes. One minute we have an opinion insisting on an update to the standard for package-local nicknames. The next minute we have an opinion questioning the usefulness of the standard.
16:57:13
oni-on-ion
to be clear, to me the CL standard is the most useful of all standards, in programming
16:58:02
oni-on-ion
but i was curious how much the portability factor across implementations is relied upon -- Shinmera makes a good point. i wasn't thinking about apis/libraries, just as personal/proprietary code base substrate
17:04:51
MichaelRaskin
With personal code, you sometimes can use the differences in what different implementations complain about to clean up some of the corner cases
17:06:06
oni-on-ion
true; ive seen some doing this. but i've also seen some giving up on other impl's and sticking with one after giving up supporting the rest (im looking at you aeth =)
17:54:08
vivit
When I attempt to quickload CLSQL-SQLITE3, I get the following error: 'Component CLSQL-UFFI-SYSTEM::UFFI does not match version 2.0, required by #<SYSTEM "clsql-uffi">'
17:55:04
vivit
The only information I can find online about this specific error seems to be one where the user apparently was having problems because he was using CLisp despite CLSQL not fully supporting CLisp, but I'm using SBCL
18:17:39
kmeow
(ql:quickload "sqlite") completes without error, though idk if those are at all related
18:36:15
reepca
The :from-end keyword arguments in the sequence functions... I thought I had a good intuitive understanding of what they did ("start searching from the end"), but now I'm reading the hyperspec entry of POSITION and apparently my understanding was backwards?
18:36:44
reepca
"The position returned is the index within sequence of the leftmost (if from-end is true) or of the rightmost (if from-end is false) element that satisfies the test"
18:38:09
reepca
but the first example contradicts that, because the element at index 4 is not the leftmost element that satisfies the test...
18:45:43
edgar-rft
reepca: it's a known error, see https://www.cliki.net/ANSI%20Clarifications%20and%20Errata
18:47:44
kmeow
I'm trying to compile a script in SBCL, and I get +100 errors but it still spits out a fasl at the end
18:51:46
kmeow
thought I had an actual question, but looking over the errors again I'm so baffled I'm not even sure where to begin
18:55:52
kmeow
yeah, I'm browsing ANSI Common Lisp looking for a description of the compilation process
19:07:08
reepca
sometimes I think sbcl is too clever for its own good. It can figure out that the last iteration of a loop will always cause a type error and therefore delete the code after the loop as unreachable, but can't tell me why it deleted it and save me the time of analyzing it myself
19:08:37
reepca
put the declaration at the top of the function in question, it still just says "deleting unreachable code" and nothing else
19:12:21
jackdaniel
it is easier to do something than explain clearly why it has been done (in compilers), so I suppose nobody bothered to implement explanation function
19:13:10
reepca
it would actually be pretty interesting to try to implement a compiler that focuses on being able to answer "why" questions.
19:36:23
aeth
reepca: Well, wouldn't the "why" just generally be proving, while showing sufficient steps, that some optimized form is equivalent to the original? So it sounds possible.
19:36:59
aeth
For the unreachable code example, it would show you why the eliminated branch(es) can't be reached.
20:00:08
jackdaniel
n.b same goes for the systems which make automated decisions (be it machine learning or expert systems) -- a very appealing features is to make these things to answer why they made some choice (i.e provide a rationale which makes sense to human being)
20:37:04
jackdaniel
I've applied a loose meaning of "hard"; it is different hard for comiplers and different hard for ML. The former is that making good meaningful compiler messages with source location (and visualisation) requires a lot of thought, providing rationale for decisions is a few steps harder
21:48:22
didi
So I'm lazy. Is it bad to create input streams with `make-string-input-stream' and never close them?
22:16:54
phoe
galdor: https://github.com/phoe-trash/ccl/commit/3bae98ecb08b565f06524fb5afa8e7bb7955c93c
22:17:14
phoe
no idea if/how this will get pulled upstream. Feel free to cherrypick that commit onto Clozure/ccl and rebuild.
22:17:56
phoe
Or use my fork that I aggressively clean and fix nowadays. It's a staging area before committing this all upstream, but I have Travis hooked up to ensure that I don't fuck something up bad while working on it.
22:22:53
phoe
Bike: CCL is used to keeping literally everything and the kitchen sink in #<Package CCL> and then not exporting it and using :: and ::% to reach it.
22:23:53
phoe
And one of the things that definitely need to be changed once someone throws enough attention at it.