freenode/lisp - IRC Chatlog
Search
15:20:59
oleo
everything (.asd files) which you link from the commonlisp/source to the common-lisp/systems directory is meant to activate that
15:21:02
jackdaniel
oleo: if you have directory structure foo/foo.asd foo/tests/foo-tests.asd and you don't search recursively, you don't have tests
15:21:56
oleo
you can cd to common-lisp/systems and do a find ../source -name "*.asd" -exec ln -s {} \;
15:22:39
jackdaniel
well, I can do a lot of things, but searching recursively is the most intuitive to me as well
15:23:39
Shinmera
Seems pretty reasonable to me that it would search recursively in a directory called "systems".
15:23:46
jackdaniel
asdf had problems with backward compatibility numerous times. one side of the coin is that it breaks stuff, the other one it isn't tied to design which maintainers consider broken
15:25:12
jackdaniel
oleo: if you link each asd system individually in common-lisp (without putting directories), it won't go recursively
15:26:56
oleo
anyway, you could divert asdf to detect if it is on such a system without symlinks....
15:27:53
Shinmera
anyway, if the default behaviour of ~/common-lisp bothers you so much you can just make your own and define its behaviour explicitly in ASDF's source registry language or whatever.
15:32:30
Fare
I used to try not to follow them in older versions, because that was the most predictable and also the way to avoid endless recursion.
15:33:09
Fare
rpg recently added a layer to avoid endless recursion, and enabled following them on implementations such as SBCL where we were previously not following them.
15:34:35
Fare
~/common-lisp/ WILL be recursively searched, but you can use to source-registry-cache to stop the search
20:05:40
butterthebuddha
Shinmera: yeah that's kind of my Q haha - why do I ever want to do '(+ 1 2)
20:06:03
butterthebuddha
dlowe: Yep, I'm aware of using '(...) for literal lists. I was wondering if quoting a form is ever useful though
20:06:05
Shinmera
butterthebuddha: I don't know. You might want to save forms for evaluation at a later point.
20:06:37
Shinmera
There are legitimate reasons to want to quote code and evaluate it at another time.
20:07:25
Shinmera
For example in a test framework you might want a macro that saves the original form-- both to display it when a failure occurs or when the test is run, and to possibly sidestep compilation errors until test evaluation.
20:08:51
Shinmera
You might also be implementing some special purpose language that happens to use s expressions as its code format, in which case '(+ 1 2) would be a natural way of writing a program in that language.
20:15:29
butterthebuddha
I'm actually kind of excited to get to macros; they sound like they're super powerful
20:18:40
pjb
(defmacro if* (test then &optional else) `(if-fun ,test (lambda () ,then) (lambda () ,else)))
20:19:31
pjb
(defun if-fun (test then else) (funcall (aref (vector else then) (get (not test) 'bit))))\
20:19:35
aeth
`(+ 1 2 ,foo) is used more in practice than '(+ 1 2) afaik... especially in CL macros.
20:26:34
pjb
If you implemented it in lambda-calculus, you could attach a selector function (car or cdr) to each lisp value. You'd just call: (funcall (selector test) (cons then else)). The macro is only useful to avoid evaluating the other branch.
21:16:18
phoe
it can't become any more dead than what it's been proclaimed for the past twenty years I think
21:16:51
jasom
I have now created 2685 nix expressions from the quicklisp repository; there's another ~1300 or so systems that ql2nix could not process. I plan to publish it later tonight.
22:41:34
axion
Whats a good way to get a CL array from a binary file on disk, bypassing all the streaming? only interested in the full array for a small file.
22:42:29
Bike
well, there will still be a stream, but you can just use with-open-file and read-sequence and it's only a few lines.
22:45:05
antoszka
Rosetta Code has a rather canonical take on this: https://rosettacode.org/wiki/Read_entire_file#Common_Lisp
22:48:16
Bike
yeah, that just means you don't need to worry about de/encoding. a blessing if there ever was one.
23:07:07
BitPuffin
does common lisp have a function like ormap in racket? By default in the standard (it can obviously be easily defined)
0:24:41
jasom
Xach: any chance of switching the quicklisp database from md5 to something newer? It doesn't appear to be used anywhere, and it would save me some small amount of work in ql2nix, since md5 is no longer allowed for verification of downloads in nix.
0:26:40
jasom
Xach: here's my current workaround; an awk script that calculates sha256 sums for each package: http://paste.lisp.org/+7L8Q
0:28:10
jasom
Xach: I then overwrite releases.txt and rebuild the cdb... nothing broke, and it met me use those sums in my script
0:47:54
slyrus
Fare: yeah, I know people _used_ to use it. But it seems like some things are broken now and I'm wondering if it's just me.
0:48:36
slyrus
I put closure-common up the sharplisper's github page. maybe we need to do the same for cxml and cxml-rng.
0:49:56
Fare
the following projects were unresponsive and had no github repo: bknr-web cl-blapack cxml-rng jwacs madeira-port org-sampler s-dot
0:52:21
Fare
if sharplispers take over some or all of these projects, I'll gladly send a PR. Or I can put the diffs in a repo of its own.
0:56:29
Fare
I decided to jump ship from CL. Too many things I missed from a modern Lisp. And those things I miss from CL (mainly, CLOS), I can reimplement on top of Gerbil when the time comes.
1:00:39
axion
Fare: Does that mean Racket was not as good as your recent post suggested? I've never heard of Gerbil.
1:07:24
Fare
2- it does implement a variant of the Racket module system, the most valuable part of Racket.
1:07:44
Fare
3- though it has fewer libraries, they are more consistent, being implemented by one man
1:08:06
Fare
4- it sits on top of Gambit, which is efficient and very suited to backend work, like I do
1:08:22
axion
Yeah. I actually spent a week learning Racket after reading your post, and I found it a little too complex for my liking.
1:09:42
Fare
5- Gambit has a very portable VM, the GVM, that provides interruptability and observability at the GVM level, abstracting away what's below. Which means that to achieve observability for the entire system (which would yield Erlang-style killability, among other things), I "only" have to work on top of the GVM, not down to assembly level. That's a big win for my future plans.
1:10:31
Fare
whoman: can they kill their actors? I seriously doubt they can, or with big unenforceable restrictions
1:19:35
axion
3.1.5 is pretty much unusable for large directory trees, taking longer than I could care to wait, compared to about a second for CL-FAD
1:41:11
White_Flame
Xach: had talked about moving an executable image to another box, and continuing to run quicklisp there. Now, consider if there is no QL installation on that box, what will need to be done?
1:42:15
White_Flame
our model is to drop a binary onto a machine and go, but now with certain things needing more stuff out of quicklisp, there is no preexisting lisp or ql environment there at all for it to go from
1:43:38
White_Flame
yes, but then it's going to want to load new systems after launching the binary on a different box
1:44:21
White_Flame
I'm already using an executable. QL needs to load systems after that executable is deployed
1:52:56
aeth
pillton: I'm a big language proponent. So the language vs. library distinction will be different for me than for some.
2:06:20
aeth
whoman: You can deduce things from axioms, and you can establish things statistically. Good luck doing either in software engineering, though, if that's what you mean.
3:13:07
vtomole
wow top post: https://news.ycombinator.com/ maybe people are interested in lisp more than i thought ;)