freenode/#lisp - IRC Chatlog
Search
21:30:38
Shinmera
I was working on a mailing list service in summer but never got around to finishing it.
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.