freenode/lisp - IRC Chatlog
Search
21:51:39
axion
He's asking why he doesn't see the result of an http request when he only loaded a file
21:53:34
whoman
after you (ql:quickload :drakma) , at the repl, type the other thing. the repl is slime i guess
21:54:03
axion
carmack: An http client library lets you connect to web sites. If you want to see the result of connecting to an http server, you have to, connect to an http server.
21:56:29
whoman
you are running faster than your legs will carry you, thats all. just slow down and takes things step by step, there is no rush
21:56:56
carmack
I thought there would be so many problems with such simple things. Now I begin to understand why common lisp is not such a popular
21:59:03
axion
Please follow the installation instructions. During quickinstall, you are given the chance to add it to your implementation's init file.
22:05:13
whoman
M-x slime -> (load "quicklisp.lisp") -> follow instruction both times, there is two commands it will ask you -> (ql:quickload :drakma) -> ..
22:36:50
dim
for allowing a better way to specify the target table in the user's DSL, because there's documentation and regression test support and then the “lisp API”
22:40:08
pjb
dim: I perfer to rebind: (defun bar (foo) (let ((foo (normalize foo))) …)) instead of (defun bar (foo) (setf foo (normalize foo)) …)
22:42:01
pillton
There is also this from the SBCL manual: "Python is very aggressive and clever about inferring the types of values bound with let, let*, inline function call, and so forth. However, it's much more passive and dumb about inferring the types of values assigned with setq, setf, and friends."
22:47:06
pjb
You can also break the indentation if your objective is to have short bearable commits.
22:51:08
dim
when 99% of the function's body has changed because of indentation, I find it hard to read the diff/project's history
23:18:58
zulu_inuoe
Is there any reason why a (successful) gethash followed by a remhash, with the exact same arguments, would fail?
23:22:53
White_Flame
if you built or linked to source, you could always step through & inspect what's going on, if you think it's a bug in the hashtable itself
23:22:56
dim
26 files changed, 570 insertions(+), 343 deletions(-) --- came to be quite a refacoring
23:23:29
zulu_inuoe
I just wanted to make sure that I wasn't overlooking some weird behavior in remhash/gethash when it came to say, an equalp test
23:39:42
zulu_inuoe
White_Flame: So, I'm noticing one of those great errors where a printf (format) is changing the outcome of my hash success. One of the components of my key is a pathname. I noticed if I do a format ~A on said pathname then my gethash/remhash will fail.
23:40:18
zulu_inuoe
AFAYK, is there a side effect of pretty-printing a pathname such that it won't be equalp ?
23:41:17
White_Flame
I don't know. Maybe it fills in stuff on the structure? print out both before & after that print
23:45:24
zulu_inuoe
It must be. Even inspecting it will change it so the gethash fails I'm not sure how to even see 'how' it's changing. I'm going to look through CLHS to see if this is expected
23:50:54
pillton
I'm not sure I understand what you are saying. It seems to work fine: http://paste.lisp.org/display/354259
23:51:39
White_Flame
zulu_inuoe: can you reproduce the issue if your hashtable only has that single entry?
0:03:50
zulu_inuoe
I'm sorry. I'm trying to come up with a test case that works. Because my gut feeling is that it has to do with how the pathname gets constructed
0:21:12
jasom
zulu_inuoe: I added an assertion and put it in a loop, it ran 10000 times in a row with no issues.
0:27:14
zulu_inuoe
They all fail on the first go-around. My guess is whatever the format is doing, it's messing with the cached pathname or something
0:39:38
jasom
OT: is there a gender-neutral formal address? I'm familiar with he/she/they and Mr/Ms/Mx, what about sir/madam/???
0:40:39
zulu_inuoe
I hope there is. I like to get fancy when I address people some times but I don't want to sacrifice gender neutrality to do it
0:43:14
zulu_inuoe
Anyway, using pathnames was temporary until I migrated to URI's, so I suppose now's a good a time as ever to work on that since this bug is breaking me
0:50:24
zulu_inuoe
Yes. Yes it is. But it looks like it's recent since jasom was not able to replicate on 1.3.17
0:52:12
zulu_inuoe
how much do you want to bet it's https://github.com/sbcl/sbcl/commit/58602640ed7040d9f75c7fe28f058a0b2755c6c0
2:44:15
antonv
R0B_ROD: I wouldn't mix installing StumpVM and learning programming techniques from SICP
2:50:41
fiddlerwoaroof
Zhivago: the biggest issue in SICP is that DEFINE has no real equivalent in Common Lisp
2:51:01
Zhivago
Well, it has a couple of equivalents depending on context, but I can see how that would be confusing.
2:52:06
fiddlerwoaroof
Fare: if you're know lisp, it's easy enough but for a beginner, translating define to the appropriate form is a bit confusing
2:53:34
fiddlerwoaroof
Also, I had a hard time reading the code samples in SICP because I would mentally intepret them in "Lisp-N>1 mode" when they're written for a Lisp-1
2:54:50
antonv
Fare: BTW, I posted only one test and said "will do others in coming days" but when read you reply that "we can release the current ASDF" I relaxed and didn't do more tests
2:57:10
Fare
ASDF is portable enough that there is no reason it would break on one implementation and not the other, unless bad magic in #+ccl or such.
3:04:27
fiddlerwoaroof
R0B_ROD: to install stumpwm:: wget http://beta.quicklisp.org/quicklisp.lisp && sbcl --load quicklisp.lisp --eval '(quicklisp-quickstart:install)' --eval '(ql:quickload :stumpwm)' --eval '(save-lisp-and-die "stumpwm" :executable t :toplevel #'"'"'stumpwm:stumpwm)'
3:11:31
fiddlerwoaroof
Yeah, the first argument to save-lisp-and-die is the place where the stumpwm executable will be created
4:12:12
jasom
BW^-: not really on-topic here, but a generalized form of tortoise-hare algorithm would work with that
4:14:49
jasom
actually if you need to find all, then a standard DFS traversal will do it for you; just note whenever you reach a node you've already visited, you have found an edge for a loop.
4:40:13
BW^-
jason: what was your point with refering me to the dynamic programming page? dynamic programming as in lisp style typing i guess... a dynamic graph algorithm means however that it's for a dynamic graph
4:47:17
slyrus
no point. just commenting on the origin the relatively content-free name. still, a great algorithmic advance!
5:19:01
jasom
my ql2nix script decided that babel depended on a system named ":trivial-features" which we don't know how to build and so all systems that directly or indirectly depend on babel were not built; cffi depends on babel...
5:20:37
jasom
But instead of switching away from regexes, I'm just goign to make the regex more complicated: "Component ([^: ]*::?([^ ]*)|\"([^\"]+)\"|([^ ]+)) not found"
5:23:36
jasom
now I just need to wait for something to depend on |foo| and I can make it even *more* complicated
5:46:59
jasom
and dynamic programming has nothing to do with lisp style typing. Dynamic programming is a style of algorithm that basically boils down to recursion + memoization.
5:47:21
BW^-
jasom: a dynamic graph is a graph that changes edge content over time i.e. edges may be deleted or inserted
5:49:09
jasom
BW^-: this sounds like an incrementalcycle-detector for a reference-counted system. You can probably find algorithms to do this in the garbage collection literature
5:49:53
jasom
BW^-: and you *can't* do it for arbitrary concurrent mutation of the graph unless you have some sort of agrement between the mutator and the cycle-detector.
5:54:23
jasom
BW^-: consider A->B->C and the Mutator changes the graph to C->B->A. You could easily have a false-positive if your cycle-detector was considering B at the time. *however* if you don't allow graph nodes to stay alive while disconnected, then there is no way to perform that transformation without generating a cycle, and you don't have a false-positive, because there was a cycle there at some point in time.
5:57:40
jasom
alternatively if you can exclude the mutator from running when you have found a potential cycle, you can check if the potential cycle is truly a cycle. But if you can prevent the mutator from running, you could just run your entire graph traversal as well, and then the "dynamic" requirement is non-sensical.
6:01:13
BW^-
jasom: what cycle detection algorithms are you aware of being used in reference-counted systems?
6:01:16
jasom
BW^-: so what are the requirements; could the cycle detector exclude the mutator and run a full-pass? Because then it doesn't matter that the graph is dynamic, because it will be static for the full run of your algorithm
6:10:14
jasom
That partitions verticies into components; Any component with multiple verticies is a cycle, and any component with just one vertex is not part of a cycle.
7:07:37
flip214
can I tell QL to compile some systems (with all their dependencies), but not load them?
7:07:58
flip214
guess I can't, because compiling them might require some dependencies to be available...
7:09:07
jasom
flip214: on sbcl, if you don't have any threads running, you can fork a process, load them all and then exit.
7:14:45
jasom
even if it doesn't do what you want, it would be a good place to start to do what you're doing
7:24:26
flip214
hmmm, cliki.net says that my account doesn't exist.... was there a cleanup some time ago?
8:02:29
Shinmera
The primary problem with c-l.net is that like 99% of the pages hosted on it point to links that are long gone.
8:03:36
antoszka
There should be an automatic cleanup procedure. A bot that checks the links and removes them or marks them *dead*.
8:04:48
Shinmera
Either way the problem is that maintainers don't really care to begin with, or there is no real maintainer, so the links stay dead.
8:04:56
flip214
that might be the best solution, because the automatic fixing can be made more intelligent over time
8:07:13
flip214
then I could try to rig something up. (and I had to resist HARD to write "... to make cliki great again" ;)
8:08:39
Shinmera
Sure, but ease of collaboration and integration can go a long way to gaining traction. Cliki feels sluggish and dead.
8:08:48
flip214
any alexandria maintainers here by chance? I asked for permissions to gitlab about a month ago, so I can fix up some of the doc strings... and no answer yet.
8:09:29
flip214
the github interface to edit _any_ file (which just clones the repo and does a PR in the background!) is very slick.
8:11:26
Shinmera
There is definitely value in the idea of a central hub of information and advice for CL.
8:15:40
Shinmera
Anyway, the software and the "cliki idea" are only marginally tied together, so I agree with jackdaniel to a point.
8:19:38
flip214
but if people would hear that the CL wiki would run on PHP, wouldn't that be awful?? ;)