freenode/#lisp - IRC Chatlog
Search
22:48:45
pyzozord
Hello I wish I knew lisp. It sounds so awesome. Why do you think lisp has not taken off as the main web langauge instead of javascript?
22:49:30
White_Flame
lisp was heavily invested into in a previous AI wave. But then when overblown AI claims didn't materialize, people stigmatized the langauge instead
22:50:27
White_Flame
now that that "AI Winter" has passed by a generation or two, there's fresher interest
22:50:50
Xach
pyzozord: that is not an uninteresting question, but the topic of this channel is common lisp, and if you would like to talk about common lisp in some way, that's better.
22:50:55
White_Flame
also, javascript was initially designed to be a Lisp derivative, but politics demanded it be java-like for fad hotness
22:52:13
White_Flame
##lisp is a general lisp-family channel, and #clschool is for people who are learning common lisp
22:55:56
albatroz
clothespin thanks for checking in macos. I've checked on ubuntu and it works as expected.
22:56:43
no-defun-allowed
pyzozord: You tell me. Why didn't some other language take off as the "main web language"? Probably similar reasons.
22:56:58
albatroz
Additionally, windows does support fstat (https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fstat-fstat32-fstat64-fstati64-fstat32i64-fstat64i32?view=vs-2019)
22:57:51
albatroz
I think this is a windows only problem. I'll try and check #sbcl as @phoe suggested. thanks!
22:58:36
p_l
(also, consider anything from sb-posix to be no-go on windows, as it should be - we need a proper sb-winnt, I guess)
23:01:24
albatroz
I read today that MSVCCRT comes bundled in every recent windows, why not make use of it?
23:04:54
clothespin
theres a pretty good manual somewhere on how to build sbcl on windows, a bit dated, but good
23:09:31
albatroz
So, what I take from this, until now, is that SBCL does support stat and fstat in windows through the use of GNU CRT and not MSVCCRT?
23:14:35
clothespin
it takes longer to set up the msys64 with gcc and binutils than probably to make the actual fix in sbcl
23:15:13
clothespin
https://solarianprogrammer.com/2019/08/20/building-sbcl-steel-bank-common-lisp-windows/
5:35:16
housel
Today I discovered that one of the gabriel benchmarks in cl-bench has been wrong since forever https://gitlab.common-lisp.net/ansi-test/cl-bench/merge_requests/1/diffs?commit_id=5f4da018672624b28d761c1b35015a98b19653ad
6:48:51
buffergn0me
madrik: because you have to name the variable something, and the name is more likely than not going to be misleading
6:49:21
buffergn0me
madrik: also, it is not clear if the variable is used more than once, or is assigned to, until you read and understand the whole piece of code
6:58:00
phoe
I know one person who does everything to minimize the number of variables altogether and would therefore write all of this without a single variable binding, but I consider this approach to be highly unreadable when opposed to actual usage of LET
6:59:26
phoe
(defun foo (...) (go-further (combine (compute-1 foo bar) (compute-2 baz quux)))) gives you an additional debugging disadvantage - there are no variable bindings to inspect
7:11:41
buffergn0me
phoe: That is true. I sometimes introduce intermediate variables for debugging when using other programming languages. But with SLIME it is easy to evaluate forms, and get at the argument list of called functions. I can't think of a time I had to add a variable to ease debugging in CL
7:14:09
phoe
neither can I, but I think a part of that is because I already use variables generously
7:15:48
Shinmera
"don't name things because the name is misleading" is the strangest thing I've read in a while. The name adds context to give meaning to how you're using it.
7:15:50
asarch
One stupid question: I load the library: (ql:quickload :caveman2), I create the project skeleton: (caveman2:make-project #P"/home/asarch/school" :author "me"), load my project: (load #P"school/app.lisp"), make some work, quit and exit Slime. How can I reload the project again? (load #P"school/app.lisp") -> System "school" not found
7:26:56
beach
I agree with Shinmera. I often introduce variables using LET* just to add names that explain what the values are.
7:28:32
buffergn0me
madrik: FP people call it point-free or tacit style. Also stack- (FORTH) and array- (APL) oriented programming is similar
7:29:39
beach
madrik: I usually go with LET* so as to save horizontal space. But it depends. If I have several variables that do not depend on one another, and then a few that depend on most of those, nested LETs are preferable.
7:30:45
madrik
For instance, I was reading the code to a log analyzer I wrote. I have a LET with two bindings, one for an ip and one for a domain.
7:31:16
beach
In that case, a nested LET might be preferable since the first two do not depend on each other.
7:32:30
Nilby
If you want your code to read like Forth and APL by all means avoid naming things. For that matter use only &rest arguments.
7:33:17
beach
madrik: With LET, it is perfectly clear that the computation of component-2 does not involve component-1.
7:41:37
madrik
Indeed. Unlike, say, the situation with SETQ and SETF, this seems like a style issue mostly.
9:06:22
madrik
I trawled the Lisp newsgroup archives for a bit on this point (SETQ v SETF). There was a trend of thought that advocated using SETQ for the express purpose of assigning to variables, and SETF for other cases.
9:09:04
Shinmera
I mean there's the argument that it's more explicit about its purpose, but that's already encoded in the fact that a variable is going to be a lone symbol, so
9:09:30
heisig
And there is this funny case where SETQ can expands into SETF when symbol macros are involved :)
9:26:02
madrik
So, it doesn't make sense to think of SETQ being 'lower-level' or 'more primitive' than SETF?
9:28:29
Nilby
(when (> (get-universal-time) 3786854400) (alias-shiftf 'sets 'set 'setf) (without-package-locks (unreify-special-form 'setq)))
9:30:54
no-defun-allowed
Rather, it's already past that universal time that designates the start of 2020, give or take.
9:35:14
Nilby
I'm saying, now that it's 2020 I wish we could just say, as long as we're not running some old ass code, SET should be SETF, SETS or better SET-SYMBOL should be SET, and SETQ should be gone.
9:49:49
madrik
Nilby: Maybe SET, once its meaning is again open for change, can be used to create sets, like LIST right now creates lists.