libera/#commonlisp - IRC Chatlog
Search
6:58:37
ns12
Hello! For CMUCL, what is the difference between https://cmucl.org and https://www.cons.org/cmucl/ ? Which is the official website?
7:34:49
lisp123
Although the official repo is here https://gitlab.common-lisp.net/cmucl/cmucl/wikis/home
7:37:02
hayley
cons.org redirects to https://wiki.zs64.net/Main_Page for me, and according to https://wiki.zs64.net/Was_ist_ZS64.net a guy called Martin seems to host Lisp pages.
7:54:31
remexre
is package-inferred-system supposed to hook up something that makes (uiop:define-package (:import-from :foo/bar)) automatically try to asdf:load-system, or do I need to manually run the load-system in SLIME every time I add a new file to the import graph?
7:58:36
lisp123
hayley: There's a few. It's still actively maintained by the few that use it (which pale in comparison to SBCL user base)
8:06:05
ns12
Apparently CMUCL is not in the Ubuntu repositories because CMUCL does not support 64-bit. Ubuntu no longer supports 32-bit.
8:38:42
jackdaniel
it is a maintained common lisp implementation, so no - it is not obsolete. that said sbcl (that is based on cmucl) has much larger mindshare among common lisp developers
8:41:09
jackdaniel
(that lead to it being ported to more architectures and more performance improvements)
8:41:57
jackdaniel
also since it is more popular software is more often tested on it than on other implementations
8:43:53
ns12
CMUCL appears to have some extra features such as a GUI debugger/profiler, and Hemlock (Emacs implementation). Are these useful?
8:44:25
phoe
the slime debugger is a GUI debugger enough for me, or does CMUCL have something better?
8:45:54
jackdaniel
phoe: I don't understand implication - since slime debugger is good enough for you, then you wonder whether cmucl has something better?
8:46:23
ns12
CMUCL also includes an X11 interface (CLX), but that has already been ported to SBCL https://github.com/sharplispers/clx
8:47:17
jackdaniel
ns12: cmucl bundles quite a few things, some of them are available as portable libraries - as you have noted clx is one of them
8:47:24
ns12
phoe: https://cmucl.org says: "a graphical source-level debugger using a Motif interface, and a code profiler".
8:48:03
phoe
hmmm, http://www.chiark.greenend.org.uk/doc/cmucl-docs/debugger.html says "Note: there are two debugger interfaces in CMUCL: the TTY debugger (described below) and the Motif debugger. Since the difference is only in the user interface, (...)"
8:56:39
phoe
or you can multiarch to add the i386 architecture, it works for me for running cmucl on amd64
9:31:43
ecraven
has anyone here worked with modbus tcp with CL before? any libraries to read from a modbus tcp server?
10:29:37
beach
SBCL inherited the breakpoint facility of CMUCL, but in SBCL it is used only for tracing (not the encapsulation tracing). As I recall, SBCL does not even document the breakpoint interface, so it is hard to write a real debugger for SBCL. The SBCL stepper uses a different mechanism.
10:40:44
yitzi
I can attest to the difficulty of using SBCL's breakpoints to build a debugger. Finding the correct source line information isn't easy and sometimes the breakpoints don't appear to be triggered.
12:14:00
ns12
phoe: Why wouldn't it help? Conium is described as "a portability library for debugger- and compiler-related tasks".
12:15:32
yitzi
I contemplated using in common-lisp-jupyter but ended writing my own stuff b.c. it is broken on several implementations or hasn't been updated. Plus the semantics of compiling notebook cells is a bit different.
12:43:43
Xach
Hmm, is there a hacker's delight-ish formula for getting the index of the last set bit in an integer?
12:46:43
phoe
last set bit, you mean like, 16 = #b10000 so the 4th bit, but 17 = #b10001 so the 0th bit?
12:51:56
phoe
I have variables x1, x2, ..., xn, and I want to return true only if none of them are EQUAL to one another. is there a hacker's delight-ish formula for doing that in Lisp?
12:56:44
yitzi
phoe: So basically the same semantics as /=? I recall that it is done with a nested loop.
13:03:33
phoe
_death: I wish I was able to write (none #'equal x1 x2 x3 x4 x5 x6) but NONE is not a standard function
13:06:33
_death
if it's so few variables, and you don't know much about their values, a simple macro that expands to (and (not (equal x1 x2)) (not (equal x1 x3)) ... (not (equal x5 x6))) seems ok?
13:11:21
jackdaniel
(this kind of none is different than some and every - latter accept any number of sequences)
13:15:46
jackdaniel
I guess that a fancy-ish way of doing this is mapping combinations (i.e using alexandria function)
13:16:07
jackdaniel
and since it may be put behind a functional interface it doesn't matter much, does it?
13:20:17
Bike
(defun none (seq) (let* ((len (length seq)) (table (make-hash-table :test #'equal :size len))) (map nil (lambda (o) (setf (gethash o table) t)) seq) (= (hash-table-count table) len))). it's not short AND it's not elegant
13:20:17
Colleen
Bike: drmeister said 28 minutes, 19 seconds ago: No - I haven't seen those bugs - I'll take a look today.
13:29:38
yitzi
You could use mapcar with sxhash and /= as shortcut before the loop. Not sure if that would be faster though.