freenode/#clasp - IRC Chatlog
Search
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))
19:35:53
drmeister
::notify balrog DIBuilder::createCompileUnit added a function argument and went from 12 arguments to 13
19:41:57
drmeister
I have to go to a party for a few hours - I can sneak away to answer a few questions and I can explain more later.
20:42:00
karlosz
i dont even know what to do with it, since it seems like this whole ltv/const issue will be completely revamped
20:46:29
Colleen
balrog: drmeister said 1 hour, 10 minutes ago: DIBuilder::createCompileUnit added a function argument and went from 12 arguments to 13
22:11:34
nmz787
is there a CANDO example/tutorial/howto? I see some stuff in the tests folder... but reading into them it seems I need to change some paths at the least, and install something called 'sander'
22:45:01
drmeister
balrog: The backtrace didn't point at it either - neither do the changes I made with function-descriptions. I just went into the debuginfo.lsp and started counting the number of arguments of llvm-sys functions
22:48:48
drmeister
http://llvm.org/doxygen/classllvm_1_1Target.html#a3a99d5ba8f023d04d34f652af7494b35
22:51:20
drmeister
Great - there are very few breadcrumbs to figure out what I'm up to - I'll try and fill in more details tonight.
22:52:15
drmeister
But I think we have everything to define an "oligomer", which defines an enormous space of molecules, have it pick one, generate an atom-tree and then move back and forth between internal and external coordinates.
22:59:33
drmeister
but "register read" dumps the registers and some of them look like tagged pointers
23:01:10
drmeister
dbg_printTPtr Raw pointer value: 0x1128b1309 / dbg_printTPtr object class --> SINGLE-DISPATCH-CXX-EFFECTIVE-METHOD-FUNCTION / #<FUNCTION LLVM-SYS:CREATE-TARGET-MACHINE>
23:07:53
drmeister
Using 'git-timemachine' in emacs I found the change where they added an additional argument bool JIT = false
23:08:22
drmeister
It was the same commit where Rafael Espindola removed the Default and JITDefault code models.
23:08:36
dvssa
drmeister: When working with the builder notebook through the new docker image, when I try run (ql:quickload :design) I get Reader error: Package error on package "QL" (condition of type PACKAGE-ERROR). When I (list-all-packages) I see I have #<QUICKLISP-CLIENT>.
23:09:50
drmeister
dvssa: Ah - you are using the default cando image and for some reason quicklisp doesn't fully deploy on that.
23:10:59
drmeister
Or - check first if there are any packages named "DESIGN.xxx" loaded - they may be already loaded
23:16:49
dvssa
Loading it works, kind of. It allows me to (ql:quickload :design) but it cant find design https://pastebin.com/Ls4csC5Y
2:34:22
drmeister
What value do I use on line 6 to indicate that nothing is being passed via an llvm::Optional type?
2:38:12
drmeister
balrog: I had to add an extra argument and then I ran into a nasty issue with passing llvm::Optional<T> objects as arguments.
2:39:06
drmeister
That requires additional translation machinery that I haven't had occasion to explain to you.
2:41:01
drmeister
Here is a case where a function takes an Optional< CodeModel::Model > CM = None argument.
2:41:31
drmeister
So I need to write a template <typename T> from_object<llvm::Optional<T>> ... translator
2:41:55
drmeister
http://llvm.org/doxygen/classllvm_1_1Target.html#a3a99d5ba8f023d04d34f652af7494b35
2:46:09
balrog
they're using it to strongly type an optional argument apparently, modeled after ocaml 'opt'?
2:47:13
balrog
I'm just thinking to myself whether that's something that's a Common Lisp language feature... I wouldn't know :/
2:51:19
Bike
lisp doesn't have an easy option type. usually 'nil' is used as None, or if that's ambiguous a second value can indicate noneness.