freenode/#clasp - IRC Chatlog
Search
15:06:00
drmeister
It was a bad idea to develop a custom memory management scheme like that - it really messed up the code.
15:11:03
drmeister
I have separate pools in mps - I just need to develop an API to create custom thread local allocators. Additionally I'm trying to do this as much as possible with C++ compile time programming so that it's fast. I have an idea how to implement it.
17:33:14
kpoeck
But when I try put this in linl_intrinsics.cc, e.g. in line 80 (in intrinsic_error, first clause, instead of SIMPLE_ERROR(BF("There is no function bound to the symbol %s") % sym->fullName());
17:33:38
kpoeck
I get a compiler error ../../src/llvmo/link_intrinsics.cc:81:7: error: reference to 'cl' is ambiguous
17:34:54
kpoeck
../../include/clasp/core/evaluator.h:34:11: note: candidate found by name lookup is 'cl'
17:36:38
kpoeck
in /Users/karstenpoeck/lisp/compiler/externals-clasp2/build/release/include/llvm/Support/CommandLine.h:50:11:
17:48:08
kpoeck
I read this that the compiler can't differentiate between namespace cl and namespace llvm::cl
18:19:17
kpoeck
drmeister: thats what I just found out, with ::cl::_sym_undefinedFunction it compiles
18:24:09
kpoeck
So the final return true; in line 449 is always reached if both hash-tables have the same test and count?
18:36:50
Bike
C++ probably can't return from inside a closure, so instead it will have to set a flag or something, i guess.
19:33:08
drmeister
I've been thinking about it and I realized that what the static analyzer generates is a database of pointer offsets into classes. That could be coalesced with other databases to combine extensions without having to run the static analyzer on every permutation of extensions.
19:34:26
frgo
I'd thought of some "mini static anlyzer run" only for the extensions and adding info to such a databsse
20:17:12
karlosz
the compile-cleavir function doesn't seem to be defined in the sbcl examples file either
20:26:34
Bike
(cleavir-ast-to-hir:compile-toplevel-unhoisted (let ((*macroexpand-hook* #'cleavir-sbcl-environment::cleavir-macroexpand)) (cleavir-cst-to-ast:cst-to-ast (cst:cst-from-expression expression) (sb-kernel:make-null-lexenv) nil)))
20:36:10
Bike
you can do (cleavir-ir-graphviz:draw-flowchart result "some filename") to get a dot file and actually look at it
20:46:59
Bike
it doesn't do anything cleavir identifies as an optimization, no, but there are a few things that could be considered optimizations
20:47:20
Bike
for example, if you do (block nil .. (return ..) some other stuff) the some other stuff will be silently eliminated.
20:49:01
Bike
cst to ast eliminates syntax. ast to hir puts it in a flowgraph and does stuff like that as it does.
20:49:40
Bike
the idea is that ASTs are something not dependent on the global environment, and then HIR is a flowgraph.
1:03:46
drmeister
You are working on inlining, we were getting source tracking working, Shiho worked on the topology file writer and octree's for add-ions. Anything else I'm missing?
1:15:25
Bike
i don't see anything super interesting in the commit history, if you're doing a report or something
2:28:55
Bike
honestly, you don't even need that. you pretty much just need methods on function-info and variable-info
2:37:38
Bike
it's a minimal thing that uses only cl accessors to do what it can from the host environment
2:39:56
karlosz
it tries to evaluate a bunch offorms to try to see whether a variable is special etc