freenode/#lisp - IRC Chatlog
Search
4:31:18
vsync
huh... why is it allowed to have a zero-dimensional array? or more properly, why does a zero-dimensional array have an element?
4:32:37
aeth
vsync: (make-array '() :element-type 'double-float :initial-element 4d0) ; now you have a box
4:33:15
no-defun-allowed
The size of an array is the product of its dimensions, i.e (apply #'* (array-dimensions <the array>)).
4:33:16
aeth
vsync: a 0D array of a double-float or (unsigned-byte 64) or (signed-byte 64) in 64-bit implementations that support such optimizations is essentially micromanaging your own box instead of automatically heap-allocating that number
4:34:59
aeth
vsync: technically speaking if you're writing hyper-optimized numerical code it's more efficient to pass in a 0D double float array containing an element and then optionally perhaps setting that with the new result rather than actually passing in a heap-boxed double float. Do you need to do this? Probably not. Does a library you use that wants to compete with C/C++/Fortran need to do this? Maybe.
4:35:15
pjb
(mapcar 'array-element-type (list (make-array '() :element-type 'double-float :initial-element 4d0) (make-array '() :element-type 'number :initial-element 4d0))) #| --> (double-float t) |#
4:35:55
aeth
The difference between a length-1 array and a length-() array is (aref foo 0) vs. (aref foo)
5:48:38
vsync
haha, turned out I could just do what I wanted with (map-into (make-array N) #'WHATEVER)
9:36:35
smokeink
http://pastecode.ru/d2d04e/ failed AVER: (SB-C::LEAF-HAS-SOURCE-NAME-P SB-C::LEAF) This is probably a bug in SBCL (1.5.9) itself.
9:42:24
flip214
UIOP has WITH-TEMPORARY-FILE -- is there some library that has WITH-TEMPORARY-DIRECTORY?
9:53:28
flip214
I found QL-IMPL-UTIL:DELETE-DIRECTORY-TREE. Is there some other function in a library that's very likely to be used already?
9:59:58
phoe
flip214: the best I've found is (uiop:temporary-directory) that returns the base temporary directory to you
10:00:20
phoe
you can likely make directories in there yourself and implement your own with-temporary-directory macro on top of that
11:08:37
Xach
Arrgh. My Quicklisp build computer is now crashing every few days. Time to troubleshoot instead of just restarting it.
11:24:57
Xach
phoe: the machine stops responding to network traffic and cannot be shut down with the hardware acpi shutdown. it has to be force-shutdown and restarted.
11:25:13
Xach
i haven't attached a screen and keyboard to see if there's any useful console info yet.
11:27:40
phoe
Xach: that sounds like the thing that's required. This smells of kernel panic or another hardware-induced hang.
11:36:50
Xach
I feel like I need to set things up on The Cloud instead of buying hardware to tinker with any more
11:38:34
Xach
flip214: possibly, though i have a keyboard and screen and do not have a serial console.
11:41:53
phoe
Xach: the recent discussions have made me think of setting up some sort of semi-public CI for Common Lisp projects, so one can get their code to build and run its tests on the major operating systems and a series of available implementations.
11:42:51
phoe
It would require a considerable amount of hacking, though, plus hardware expenses and licenses for the proprietary operating systems.
11:43:32
phoe
And either buying some Apple hardware or deciding to hackintosh in spite of Apple's licenses.
11:44:13
phoe
Summing all of that up, I think it would be a substantial investment to set up and then to get someone to maintain the hell out of this while accepting more and more projects to be built there.
11:44:42
phoe
Maybe the clnet foundation would be willing to help with that. I don't know, I haven't asked anyone or even shared that full thought with anyone before.
11:46:01
galdor
technically you already have multiple CI systems, e.g. Github Actions or CircleCI, depending on what you need
11:46:35
galdor
it's really easy to write CircleCI orbs to support multiple CL implementations in an easy way
11:47:06
phoe
correct, one other way would be to depend on another existing CI service for each project
11:48:02
galdor
commercial CL vendor could decide to support opensource by providing some kind of special CircleCI account for example, or a collaboration with Drew DeVault for sourcehut
11:48:21
phoe
I've already seen Travis configs that allow one to run tests against multiple CL implementations, too
11:49:20
galdor
personnally I do not care too much about CI, I can already do that easily, I'm more concerned by the absence of a rebar3-like tool to manage dependency source/versioning on a per-project basis
11:50:18
galdor
I'd love to include some non-critical CL tools at work, but the whole "go install quicklisp and run commands in a CL repl" is never going to fly
12:12:51
phoe
Xach: rebar3 is a module manager for erlang and other BEAM-based languages like elixir and LFE
12:14:58
flip214
Xach: "easier" as in "only one cable required", but if there's none available, the point is moot
13:58:15
p_l
Sourceforge in its heyday had a fleet of machines to make testing across different arches easier
14:02:23
easye
Neil Lindquist has made a good start to abstracting a generic need to test Lisp on a CI <https://github.com/neil-lindquist/ci-utils/>. I haven't evaluated this yet, but it looks promising.
14:03:43
easye
The CLF has long had the intention to "refactor" a given developer's common needs into something reusable and available under gitlab.common-lisp.net
14:04:38
easye
From ambiently following phoe's forays on the CI available from gitlab.common-lisp.net in the past week or so, I gather there is a fair amount of work to do.
14:05:34
phoe
easye: we'd basically need Windows/Linux/macOS VMs. Given that CI can run foreign code, we'd need some way do dispose of these VMs and create them on the fly - preferably via snapshotted VM states or something similar.