freenode/#clasp - IRC Chatlog
Search
17:45:26
karlosz
but without the fastcc convention it seems like the extra mandatory call for each function is slowing things down a bit
18:02:17
Bike
i tried making catch elimination be triggered automatically, but there are difficulties
18:02:48
Bike
i think the exposed bir transformations may be a little too fine grained... you can sort of get things into an invalid state
18:03:34
Bike
but the only major transformation we're doing is interpolation so it's hard to judge what's needed
18:11:27
karlosz
yeah im working on that with the local call stuff subsuming things like interpolation
18:13:05
karlosz
the thing is that for example, interpolation can get triggered by removing a reference to an enclose, for example, and then we want that to potentially trigger an interpolate
18:13:43
karlosz
i mean, even the same client might want to turn things on and off according to speed or debug or whatever
18:14:06
karlosz
so that's kind of where the concept of a pass registry/manager comes in even if they aren't passes per se
18:14:23
karlosz
but yeah we don't have that many transformations for that to be something to think about yet, as you said
18:14:45
karlosz
Bike: calling verify at the end of the bir->bmir also exposes some problems during self build
18:17:27
karlosz
verify should also check if every instruction that is a terminator is actually a terminator
18:18:01
karlosz
like i got a typeq ending a block and that took way too long to find and debug because only the translator would complain and i couldnt figure out that reduce-typeqs wasn't getting everything
18:20:21
Bike
right now THE and type declarations are just discarded, since we're not doing type inference anyway
18:21:01
Bike
it's a little messy, e.g. delete-temporary-variables can screw it up by deleting the information
18:22:30
Bike
https://github.com/s-expressionists/Cleavir/blob/bir/AST-to-BIR/compile-general-purpose-asts.lisp#L417-L457 the-ast does set the ctype. maybe i don't understand what you mean
18:24:50
Bike
typeq isn't a declaration. it's not optional. we use it to implement functions like consp.
18:25:23
karlosz
the reason theres no translator for it in clasp is that it gets transformed into something else before that
18:35:22
karlosz
what would be the best way to expose something like NewCall->setCallingConv(CallingConv::Fast) to clasp?
18:35:53
karlosz
not really sure how things fit together between the stuff in cmp:: and the actual llvm stuff, especially wrt enums
18:53:01
karlosz
cause having eclector not be slow will be pretty huge since its what 70x slower as drmeister said than the clasp reader
18:55:16
karlosz
yeah it worked fine before its just there were some regressions that caused it to stop loading for me in the past day
18:56:11
karlosz
im trying to avoid pushing the local call stuff until im sure it goes on top of a stable ground
19:21:42
kpoeck
and from the opendylan release notes https://opendylan.org/news/2020/10/10/new-release.html
19:21:44
kpoeck
The LLVM back-end is now the default back-end. Its performance is 30% to 40% better than the C or HARP back-ends.
19:33:46
drmeister
kpoeck: No - I don't think we will migrate to llvm 11 - I have a version of clasp that is compatible with llvm tip-of-trunk as of about a week ago and it would be a downgrade to migrate to llvm 11 and UPgrading from our current llvm 9 support would be painful as well.
19:34:57
drmeister
The our current llvm9 clasp uses ORCV1 and our new llvm-tip-of-trunk supporting clasp goes all in with ORCV2.
19:36:08
drmeister
And right now the sticking point is llvm-tip-of-trunk doesn't support JITLink on Linux because it's in my lap to fix the linker!
19:37:04
drmeister
They have been releasing pretty steadily haven't they? I dunno when the upgrade will be - see my previous comment about fixing the linker.
19:57:24
Bike
karlosz: i've kind of lost track of how to read the disassemblies. ((151) #<CATCH> ((IBLOCK 152)) ...) means it's the block called 151, but what is the iblock 152?
20:01:40
karlosz
im not too clear on the disassembler, i just manually parsed the stuff in the disassemblies and hacked together a pretty printer and forgot the original structure
21:19:10
Bike
i'm going to seriously consider your suggestion about nonlocal next relationships, cos it would have fixed this before it broke
21:47:11
Bike
no crash but a ton of failures. coooool stuff. probably mostly type declaration type things, i should shore that up i suppose
21:57:08
docl
drmeister: I'm interested in using cando and jupyter so I can do molecular modeling (although I don't know much about that yet, I'd like to learn). I set up a ubuntu instance on ramnode, and have been trying different approaches. I'd like to try and get the whole stack working from source if possible.
21:59:34
drmeister
docl: Here's what I do: 0. install dependencies (follow our wiki page and there are a few more for cando) and quicklisp 1. clone clasp 2. clone cando into extensions/cando. 3. ./waf distclean configure build_cboehm 4. ./build/boehm/icando-boehm
22:06:04
Bike
drmeister: do you know what i'm missing that baacktraces with the bir compiler are generally just a C++ function name with no arguments?
22:41:30
karlosz
speaking of identifying unwind directly to jump, we can have pcv close over the dynamic environment object directly and making the translator handle it how it wants
22:41:49
karlosz
that way theres no continuation variable that needs to get created with a weird non-lisp object rtype
22:43:47
karlosz
and it should be easy to make pcv do so. by the time pcv runs at the very end, it just looks at the entrance blocks and sees what it needs to close over so functions know where to unwind
22:44:41
karlosz
not sure which appropriate makes maintaining the invariants as simple as possible, but thats an approach for getting rid of the cont variable
0:26:21
docl
ok, this seems to build: https://gist.github.com/lsparrish/15d4e457ad2bcb7a0ae4d306fcbf79fa
2:34:24
yonkunas
docl: you can use our Docker image to run a few very good demos and start leaning what CANDO has to offer in the MM and MD space. I can help you get it going and answer questions. What type of molecular modeling are you doing/interested in?