freenode/#clasp - IRC Chatlog
Search
8:38:35
nmz787
so I'm not sure whether to use the clasp latest, or the clas 0.5 instructions here https://github.com/clasp-developers/clasp/wiki/Build-Instructions
12:13:46
Kevslinger
::notify nmz787 the condition.h error is caused when you're in cando's master branch. Make sure you use both clasp's and cando's dev branch for building.
13:49:50
Shinmera
scymtym: Could you add an explicit check for the package in eclector-reader:interpret-symbol that signals an eclector-specific condition as well as a restart to spoof the symbol? I'd like to be able to chuck code snippets that refer to unknown packages.
13:50:22
Shinmera
Right now it relies on an implementation-defined condition for the package error, which makes it hard to write this portably, and there's no restart to insert another symbol or value in its place on error.
14:26:06
scymtym
Shinmera: my current plan is adding a "client" parameter to INTERPRET-{TOKEN,SYMBOL} so that the client gets full control if desired. i think that also work for your case. what do you think?
14:28:05
scymtym
beach: should i postpone such changes until you finish the second climacs experiment?
14:35:18
Shinmera
the machinery in interpret-symbol is rather complex. I'd rather not copy-paste all of that just to handle the rather common case of an invalid symbol needing to be replaced with a stand-in
14:35:56
Shinmera
continue meaning insert a fresh, package-less symbol of the same name, and use-value meaning use whatever symbol is provided.
14:41:12
scymtym
i agree about not duplicating the code. i'm going to split INTERPRET-SYMBOL into INTERPRET-SYMBOL-TOKEN and INTERPRET-SYMBOL such that the latter gets a symbol name, a package name and the number of package markers
14:41:16
scymtym
the default method on INTERPRET-SYMBOL can then maybe also establish those restarts
14:55:21
karlosz
amusingly, that way the runtime function implemented with m-v-l only uses the one call form m-v-c anyway
14:57:50
beach
karlosz: I meant to tell you, you might have to be careful with loop detection, given the presence of nested functions and threads and such. The control flow can become quite complicated.
15:08:03
karlosz
nested functions become loops if they get inlined, otherwise they arent treated as loops
15:08:50
beach
karlosz: No, I can't, sorry. I haven't thought about it enough. But I worry that if a loop contains a closure creation and that closure escapes, there might be trouble.
15:10:43
beach
It was invariance that I was thinking of, but I can very well imagine problems in other domains as well.
15:11:23
karlosz
i understand your concern though, there are multiple other pitfalls to watch out for like (lambda (n) (dotimes (i n) (/ n 0)))
15:13:53
karlosz
and related things. the big two optimizations utilizing loop invariance are loop induction variables and loop invariant hoisting
15:19:34
scymtym
beach: Shinmera: i'm thinking something like https://github.com/robert-strandh/Eclector/compare/wip-interpret-symbol-token?expand=1 (modulo updating the documentation). any thoughts?
15:21:29
Shinmera
Well, again, in my opinion you should manually FIND-PACKAGE and signal an eclector-specific condition if it's not found yourself, rather than relying on FIND-SYMBOL
15:22:31
Shinmera
Otherwise I'm afraid I'm not familiar enough with the system to be able to tell what this change would allow and how.
15:24:30
scymtym
Shinmera: oh, i didn't quite catch what you meant the first. while reading the code, i even thought relying on FIND-SYMBOL in case the package does not exist is kind of ill-advised
15:27:12
scymtym
with the new protocol you would add a method on ECLECTOR:INTERPRET-SYMBOL and get a "package name" (a string, :current or :keyword), a symbol name and an internp flag. it would be up to your method to decide how to handle missing packages, internal symbols, etc.
15:30:15
scymtym
yes, i think it fits together nicely. i don't mind providing multiple options for customization
17:00:25
nmz787
Kevslinger: thanks, trying again now... does the command the the ./waf program/script change if I want to use more cores (forkable boehm)?
17:00:25
Colleen
nmz787: Kevslinger said 4 hours, 46 minutes ago: the condition.h error is caused when you're in cando's master branch. Make sure you use both clasp's and cando's dev branch for building.
17:05:04
nmz787
the wiki says "./waf build_cboehm" while running "./waf clean" says "./waf build_cboehm_d"
17:10:52
nmz787
drmeister: just watched a Google talk on CLASP and CANDO last night... the idea of setting the functional groups in space/constellation and then coming up with "some backbone" was pretty what I was thinking over the past year... except I was coming from working with SAT solvers for physical design problems (had been working on PCB schematic/netlist auto-generation)
17:11:40
nmz787
drmeister: but the math for setting up each molecular interaction/constraints (i.e the Hooke's law spring stuff) is something I'm not so familiar with
17:13:12
nmz787
drmeister: how much worse performance do you think using amino acids for your library would cause?
17:15:20
nmz787
no we haven't, but I'm glad to have come across you, thanks to kanzure for cross-posting a molecular metaprogramming video
17:15:22
drmeister
I'm not sure how to answer your question. Worse performance can only be measured relative to something.
17:16:07
nmz787
i.e. if you tried designing the pore with aminos instead of spiroligomers (I think that's what you call them)
17:17:20
drmeister
Oh - amino acids have many more rotatable bonds and the number of conformations (shapes) they can adopt goes up as a power of the number of rotatable bonds. So peptides (chains of amino acids) become intractable if they have more than 5 or 6 amino acids.
17:17:35
nmz787
monte carlo still gives you a good chance, but it does seem to lack some intuition which could assist with speedup
17:19:07
nmz787
which is something I was hoping the SAT solvers could help with (the intuition/search)
17:29:33
nmz787
yeah, I work on DNA synthesis... if/when we can do that super-cheap... protein design is the next thing on the horizon
17:52:39
drmeister
We are having trouble with linking, cracauer is having trouble with building on free-bsd. I want to see if any of these problems go away in llvm6
18:01:14
karlosz
response from someone on the clisp mailing list to loop invariant hoisting who basically says compiler optimizations should not be applied if they affect the amount of time it takes to run an operation. since the user might want to measure how long it takes + to run in a loop. ?????
18:01:41
nmz787
drmeister: are you taking students for PhD mentorship? Could the focus be computational chemistry?
18:03:53
karlosz
given a machine with infinite memory, programs are the same if they have the ssame outputs given the same inputs, and the same side effects that could affect future computatios
18:15:54
Bike
well behavior equivalence is uncomputable. and kind of irrelevant. they want timing guarantees that compilers don't give.
18:19:49
karlosz
well it is releveant, right? to evaluate whetehr your optpimization doesnt turn a correct program into an incorrect program
18:20:16
karlosz
the halting problem is uncomputable, but even so, you dont want to change (loop) into a nil
18:20:57
Bike
mm, that's a bit ambiguous. if i remember correctly, in C++ semantics you technically could, though people wouldn't like you.
18:21:38
Bike
it's more obvious a thing than "is this otherwise side effect less function ACTUALLY called a billion times" like your mailing list friend cares about
18:24:23
karlosz
plus even the compiler already in CLISP elimiates the aref call in (dotimes (i n) (aref a 3))