freenode/#lisp - IRC Chatlog
Search
21:00:25
dim
kinlo: the new file https://github.com/dimitri/pgloader/blob/master/bundle/save.lisp should help you build pgloader from the bundle distribution, you just need to prepare a version.sexp file containing "3.5.2" with the quotes and then either sbcl --no-userinit --load ./save.lisp or ccl -l save.lisp
22:08:22
pjb
I'm trying to use asdf:make-build, but I get errors "An error occurred during initialization: Component "<my-system>" not found.", even if I quickload successfully "<my-system>" before asdf:make-build. What would be the problem?
22:28:29
dim
pjb: could it be that you're using QL facilities to find your projects that are unknown to ASDF itself? ql:*local-project-directories* comes to mind
22:30:32
pjb
I've set asdf:*central-registry* with the paths to the directories where all my asd are.
22:31:54
dim
(asdf:initialize-source-registry) might be necessary after setting the central registry
22:37:37
pjb
Nope, same result with all the directories containing asd in the project and in ~/quicklisp in asdf:*central-registry*, and with (asdf:initialize-source-registry)…
22:41:13
pjb
Ok, it's an asdf problem with this setup. (asdf:oos 'asdf:load-op "<my-system>") fails too. Not specific to asdf:make-build. I'll debug that tomorrow.
0:04:22
White_Flame
thoughts on another stupid hack of mine: To READ multiple terms from a single string, encase the string with paren characters, and READ once into a list.
0:05:04
White_Flame
I think the only difference is that if there's an unclosed paren in the string, the location of the error would be different?
0:05:32
noobly
in the little schemere, there is a function as such: (define even? (lambda (n) (= (* (/ n 2) 2) n))). SO, because (* (/ n 2) 2) alwasy equals n, I've come to the conclusion that this either errata, a quirk of a specific scheme dialect. I'm using guile.. any help here?
0:06:25
White_Flame
this channel is about CL, not scheme. try #scheme. However, / might be an integer division or a divmod or something
0:12:14
noobly
and I'll try finding the specs, not quite sure how though (in emacs using guile, fwiw)
0:14:34
jmercouris
so if I make a program with asdf:make, right, it has an entry point, how can I keep that program running without doing a while true loop?
0:16:25
jmercouris
Bike: so the thing is, all events come from s-xml-rpc, invoked by xml-rpc from the client program
0:18:00
jmercouris
what if I used BT threads to run a loop that is sleeping 99% of the time to avoid the program closing
0:18:04
sjl
Is there some built-in function that takes a list and an element and appends that element to the list? I realize this will be slow.
0:18:30
pillton
jmercouris: You should wait for the thread which controls the event loop to terminate.
0:19:30
jmercouris
pillton: wait for the thread which controls the event loop...? how could I possibly know what thread s-xml-rpc is running on, or are you suggesting I make an event loop thread?
0:25:47
pillton
jmercouris: Have the main thread wait on a mutex which a s-xml-rpc handler sets upon termination.
0:26:45
jmercouris
are mutexs native to common lisp? or will I have to use a library or some bool or something?
0:51:39
no-defun-allowed
if you can chase the last cons in the list you can append to the end very quickly
0:52:03
no-defun-allowed
eg the results of (macroexpand '(loop for n from 1 to 10 collect n)) might involve such cons chasing
0:52:19
sjl
Sure. I could also use the queue implementation I wrote a while ago... I'm looking for a portable built-in or one-liner equivalent
0:55:36
sjl
starting with a vector and v-p-e would work, but v-p-e's args are in the wrong order and CL doesn't have flip
0:56:49
sjl
well, if I had flip and could live with reversed output it could be (flip #'cons) I guess
1:21:36
sjl
exactly. if append doesn't solve the problem, nconc will only not solve the problem faster and more dangerously
3:53:11
beach
What is your intended use for CL-R? It is hard to give advice unless the purpose is clear. Like, why would you want to give up reflection?
3:56:48
beach
jcowan: Another way of asking the same question, I guess: What problem with full Common Lisp is CL-R meant to solve?
3:57:56
pfdietz
Perhaps it's intended for more minimal, static compiled apps? Sort of a scheme-like CL?
3:59:13
beach
I am not saying there is anything wrong with wanting such a thing. I am just curious about the goal.
4:14:25
jcowan
I don't have in mind to actually write such a compiler, just lay down the work for what such a compiler might reasonably accept
4:15:25
jcowan
The hope would be to be able to get good performance from a more naive compiler than SBCL or SICL.
4:17:05
beach
And for the size part, are you thinking of a small number of applications for an operating system like UNIX?
4:17:47
beach
I am asking this, because if you give up either one, there are simpler ways of obtaining what you want.
4:18:03
jcowan
"The Lisp community must listen to the marketplace, which has shouted small, small, small and efficient, efficient, efficient for two decades [as of 1992]" (Henry Baker)
4:18:38
jcowan
His proposals are far more radical than anything I have in mind, and indeed in some ways more radical than Scheme or Racket
4:19:26
beach
jcowan: I am asking because, if think you might have a large number of applications, you can put most of the code in a shared library, so each application would be small.
4:19:32
jcowan
I was actually thinking about embedded processors and other highly constrained environments
4:20:26
jcowan
By 2018 standards, essentially all 1992 computers, to say nothing of 1972, were highly constrained environments.
4:21:25
jcowan
With whole-program compilation, tree shaking is trivial: omit anything not in the call graph
4:26:14
jcowan
Not when someone's library has the complete works of Shakespeare embedded in it. (Sorry, can't find the reference offhand.)
4:28:13
beach
For example, in order for CLOS to be efficient, you need the compiler at run time. So you probably need to give up CLOS as well in order to get both small size and good performance.
4:28:50
beach
And then the language is so far removed form Common Lisp that the CL part of the name is probably no longer justified.
4:29:29
jcowan
Why do you need the compiler at run time if you only have a fixed number of immutable classes, all known at compile time?
4:36:01
aeth
jcowan: For instance, I've come to the exact opposite conclusion about "Using (declare (type ...)) is the least-desirable mechanism to use"
4:36:48
aeth
jcowan: I've actually put a substantial amount of work into making macros that handle both declare and check-type at the same time to silence the critics because declare is simply too useful not to use in implementations that handle it reasonably.
4:37:01
jcowan
Am I right to think that (eval-when (:compile-toplevel) ...) has the effect of making any defuns it wraps available at compile time only? That would be the Right Thing for procedures at (Scheme) phase 1; that is, used only in the implementation of macros.
4:38:01
aeth
Macro-implementation functions tend to be available all of the time, possibly for easier debugging/testing, and they often are in a separate file to avoid a giant 300-line eval-when
4:46:26
pillton
jcowan: I don't understand why you would do it this way. Why don't you implement a CL compiler which isn't restricted to fast LOADing?
4:53:15
jcowan
The idea is that because CL-R is supposed to have full access to CL at compile time, you can write compile-time-only functions (for use in macros) that invoke features not part of CL-R.
4:53:49
jcowan
CL-R functions would be implemented in CL-R (or C or whatever) and then just compiled with the user's program.
4:55:03
pillton
jcowan: They all have the load requirement though. i.e. Function bindings aren't immutable, class bindings aren't immutable, classes aren't immutable and so on.
6:30:57
elderK
I was doing backquote expansion in my dreams last night, coming to terms with ``(,,a) kind of thing.
7:41:52
no-defun-allowed
what packages are there for making ASCII-art cons trees? i remember seeing one in a book
8:15:03
LdBeth
#'no-defun-allowed: and there's one output to CLX also in there, althought only works on CMUCL