freenode/#clasp - IRC Chatlog
Search
8:29:13
beach
LET* seems to work. It is converted to nested LETs (associating the declarations with the corresponding LET), which are then converted to lambda forms.
13:24:24
Bike
the fixnum multiplication sequence on sbcl seems to go: 1) untag one operand. 2) imul 3) if imul doesn't report overflow, return loword. 4) shift n bits from the right of hi into lo and shift hi, where n is the number of tag bits. 5) sign extend lo; if it doesn't change, allocate a one word bignum and return it 6) allocate a two word bignum and return it
13:25:10
Bike
having a mult instruction that returns two fixnums doesn't exactly work because of the signs, i think. to get actual fixnums, the instruction has to do more work that it then undoes
13:28:59
Bike
uh, with fixnum arguments. for everything else it goes to a 'static fun' which i guess is a routine elsewhere
15:20:06
drmeister
Yes - I've cleaned it up in mine - do what you need and I'll fix any merge conflicts
15:21:21
drmeister
Kevslinger: I'm in my office and I have the dongle - could you come grab it? Or I'll bring it by when I swing by the lab next.
15:26:01
drmeister
Argh - no - it's probably broken. Can you put together an issue for that and have her switch to a simple-vector? Fixnums should be fine for this.
15:28:57
Bike
the arrays are created in several different places, and in C++, so i think it can just stay like it is. she says she can keep working while imagining that the numbers aren't weird
15:33:33
Bike
it takes the lambda list in an enter-instruction and returns a thing used to compile the argument parsing code.
15:33:51
Bike
"parser" is kind of strong; it assumes the cleavir lambda list is in the correct format, so it's stateless
15:34:52
Bike
yeah i don't want to write an actual full-on CL lambda list parser when we've already got several.
15:42:38
beach
Speaking of which, as I recall, I put a parser rule in the CST lambda-list parsing framework for the Clasp &va_rest extension, but I probably did it wrong (wrong package, wrong name). Just to let you know that it is easy to extend the parser with such rules.
15:44:15
epipping
hi. I just came across these few odd lines of code in clasp by accident and somehow thought the best way to bring attention to them was look up when they were put in place and leave a comment on that commit.
15:45:04
epipping
but now I'm not so sure who even gets notified of such a comment. so I'm also posting a link to it here: https://github.com/drmeister/clasp/commit/4f8ce306d819ec1fe3a5c85df04ea3482489db59#commitcomment-24435070
15:48:18
epipping
(I'll probably drift off and lose my connection again in a few seconds but that's all I wanted to say anyway)
16:01:12
shiho
I didn't get dihedral phase information from energyDihedral.cc but I think we need it. Amber file format has "%FLAG DIHEDRAL_PHASE".
16:01:23
stassats
Build failed -> missing file: '/home/stas/c/clasp/build/boehm/src/core/corePackage.sif'
16:02:01
stassats
../../include/clasp/llvmo/llvmoExpose.h:65:10: fatal error: 'llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h' file not found
16:18:32
stassats
Checking for library ['clangASTMatchers', 'clangDynamicASTMatchers', 'clangIndex', 'clangTooling', 'clangFormat', 'clangToolingCore', 'clangBasic', 'clangCodeGen', 'clangDriver', 'clangFrontend', 'clangFrontendTool', 'clangCodeGen', 'clangRewriteFrontend', 'clangARCMigrate', 'clangStaticAnalyzerFrontend', 'clangFrontend', 'clangDriver', 'clangParse', 'clangSerialization', 'clangSema', 'clangEdit', 'clangStaticAnalyzerCheckers',
16:18:32
stassats
'clangStaticAnalyzerCore', 'clangAnalysis', 'clangAST', 'clangRewrite', 'clangLex', 'clangBasic'] : no
16:27:54
stassats
iclasp-boehm: /build/llvm-toolchain-5.0-5.0/lib/IR/Type.cpp:619: static llvm::PointerType* llvm::PointerType::get(llvm::Type*, unsigned int): Assertion `isValidElementType(EltTy) && "Invalid type for pointer element!"' failed.
16:47:38
beach
Bike: I think I know how to do partial inlining using local graph rewriting. Check out http://metamodular.com/fig{1,2,3,4}.pdf showing how to inline CAR.
16:48:26
beach
I haven't figured out all the rules yet, of course, nor in what situations it is correct to apply them.
16:52:03
beach
Adding or moving an existing one as in the last example, since the old one will no longer be used.
17:32:28
beach
Yes, the example is very simple. No capture, no loops, no assignments to existing variables.
18:43:53
drmeister
Bike. Is it still necessary to code walk to determine call-next-method and next-method-p in cleavir?
18:45:16
Bike
also, i can't reproduce the array thing. i thought it was just that negative numbers didn't work right in signed-byte arrays
18:45:18
drmeister
Clasp does this when compiling methods. Beach always said it would be unnecessary at some point in cleavirs development.
18:48:58
Bike
right. i don't think that's done yet. i could probably whip up a "delete instructions whose outputs aren't used" phase though. might be a little weird with side effects
19:07:00
Bike
the translators both use clasp_make_integer, so it seems like it should fail, unelss there's an overload i guess