freenode/#clasp - IRC Chatlog
Search
15:27:45
scymtym
kpoeck: i would like to understand that as well. as i wrote above, (eclector.reader:read-from-string "#'(lambda () `(,@bar))") doesn't signal an error for me
15:28:48
kpoeck
So perhaps in (eclector.reader:read-from-string "#'(lambda () `(,@bar))") works, since there is no context disallowing backquote?
15:30:42
scymtym
maybe one of the toplevel READ functions should reset the backquote context but doesn't
15:35:29
kpoeck
drmeister: If I put a (core:btcl) inside build-failure in clasp-builder.lsp, will that work?
15:39:10
drmeister
Or you can go here and add more: https://github.com/clasp-developers/clasp/blob/dev/src/core/debugger.cc#L2198
15:39:49
drmeister
The idea behind core:safe-backtrace is that it needs to stay absolutely bullet-proof and not invoke any Lisp code.
15:56:24
kpoeck
safe-backtrace is in https://gist.github.com/kpoeck/66c96c1a03bb3a643521f7e14e408226
15:59:11
drmeister
37: (_SHARPSIGN-SINGLE-QUOTE^ECLECTOR.READER^FN^^ #<IOSTREAM-STREAM 0x1266d51d9> #\'[39] COMMON-LISP::NIL )
16:04:41
scymtym
the error message is from COMMA and there doesn't seem to be a BACKQUOTE invocation between SHARPSIGN-SINGLE-QUOTE and COMMA, so that is strange but explains the error
16:07:15
kpoeck
But why would (eclector.reader:read-from-string "#'(lambda () `(,@bar))") than work?
16:09:56
scymtym
kpoeck: it works because the nesting is #' » ` » , i.e. #' disallows comma, but ` allows comma again. however, the backtrace looks as if the nesting was #' » , which doesn't make sense given the source code you linked
16:14:29
scymtym
how about that: https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/evalmacros.lsp#L31
16:17:38
scymtym
that explains all observations, but we are back to square one: is `(… #',…) allowed?
16:44:19
kpoeck
What I for sure like is (core:safe-backtrace) inside of build-failure, since that gives a backtrace before aborting
16:44:49
kpoeck
I also believe build-failure should also only be used while compiling, not loading, so will send both changes as a pr
16:55:02
drmeister
I'm thinking of writing a CANDO-USER:LAZY-INITIALIZE-LPARALLELS and call that every time I'm about to do anything with lparallel.
16:56:47
drmeister
I need something that will allow multiple quicklisp systems to depend on lparallels where there is a coordinated mechanisms to initialize lparallels
17:08:07
kpoeck
Regarding this problematic pattern, it is also in https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/foundation.lsp#L329
17:08:43
kpoeck
Foundation.lsp and evalmacros.lsp are compiled with forked processes, so it is a bit random with error comes first
17:13:05
kpoeck
Failing that, I just replaced the cruicial #' with (function ) and that seems to work as well (and no need for list operations)
17:14:34
kpoeck
Yes, and what use is to impose a criteria on `#', when there is existing code that uses that pattern
17:16:14
kpoeck
I don't have the energy to make pull request for the quicklisp universe to change `#', to `(function ,)
17:18:08
kpoeck
By error I started 2 different clasp compiles with 8 forks each one, lets take that as a stress test for my computer
18:59:44
Bike
that makes no sense though, why does my bordeaux threads asd not match the one that's been on github since last year
21:10:10
drmeister
Seriously - there are few things in life that give me as much joy as programming.
21:10:49
drmeister
That's an octree visualized on top of the molecule that I constructed on top of it.
21:11:37
drmeister
The octree's are working pretty much. But they are missing some close contacts that I can see when I compare every atom to every other atom (slow). I'm debugging why.
21:15:30
drmeister
Purple balls are collisions that the octree code is identifying. Yellow balls are close contacts from comparing every atom to every other atom. If they agreed then all yellow balls would be hidden within purple ones.
21:22:26
drmeister
To rapidly identify where atoms overlap with each other without having to carry out N(N-1)/2 distance calculations.
21:24:10
drmeister
But it's not working perfectly. I should get the same results with octrees vs the slow N(N-1)/2 comparisons.
21:25:09
drmeister
The molecule coming up from the bottom has atoms that get really close to the atoms in the octree. The green ball is the atom coming from the bottom that has a collision with an atom in the octree.
21:26:44
drmeister
With interactive Common Lisp running in jupyterlab and nglview I can debug this shit because I can visualize everything.
21:30:37
drmeister
To quote the fictional character Mark Whatney - "[I'm] sciencing the shit out of this"
21:40:12
Shinmera
octrees are O(logn) in the best case, but it can degenerate to O(n) if it's bounded and degenerate.
21:43:39
Shinmera
Oh wait, I mistook what you wrote, obviously querying everyone is going to be O(nlogn) vs O(n^2)
21:51:21
selwyn
drmeister: i must have asked before but i've forgotten the answer: do you ever use quantum or semiclassical methods in cando?
23:20:18
kpoeck_
Latest code with updates for clasp there in https://github.com/sionescu/bordeaux-threads