freenode/#clasp - IRC Chatlog
Search
15:53:43
drmeister
_sym_STARaccumulatedLlvmFinalizationTimeSTAR could have been _sym_<POOP-EMOJI>accumulatedLlvmFinalizationTime<POOP-EMOJI>
15:56:28
drmeister
I'm running into an issue with handling/printing my first C++ struct specialized array
15:56:55
drmeister
I have these SimpleVectorCoordinate_O arrys that inherit from AbstractSimpleVector_O
15:58:41
drmeister
static value_type from_object(core::T_sp obj) { return translate::from_object<Vector3>(obj)._v; };
15:58:51
drmeister
static core::T_sp to_object(const value_type& v) { return OVector3_O::create(v);};
15:59:31
drmeister
These should allow me to use (elt *v* 0) and (setf (elt *v* 0) '(1.0 2.0 3.0)) - although it won't be terribly efficient.
16:00:04
drmeister
I have no idea right now why it's failing to print. It should convert each packed vector of 3 doubles into an OVector3_sp object.
16:03:07
drmeister
I hope it's something simple and not some deep problem with representing dense C++ arrays in CL.
16:13:46
drmeister
I think the inlined array functions have a problem with these arrays. How are specialized arrays handled?
16:14:39
Bike
https://github.com/drmeister/clasp/blob/dev/src/lisp/kernel/cleavir/inline.lisp#L506-L513 explicit check
16:14:56
Bike
if you're talking about vectors with some other element type, the inlined code is ignorant of themk
16:15:54
drmeister
We'd need some kind of extensible sequence protocol for specialized vectors/arrays.
16:17:06
drmeister
What about printing - will adding a print-object method allow me to print these arrays?
16:18:28
Bike
it's possible to just change the inline definition if there are other array types, but then code previously compiled with the old inline definition won't change
16:18:36
drmeister
In general there are a whole host of things to do - to allow efficient traversal of these arrays.
16:18:40
Bike
and if we don't inline, every aref has to go through an element type indirection, which is dumb.
16:19:23
drmeister
I don't need to manipulate these from CL right now - other than occasionally. They are built by C++ code and they are used by C++ code.
16:21:07
Bike
something like sbcl does where it uses a general routine and only replaces it with an et-specific one when the et is known might be nice
16:27:58
drmeister
These coordinate arrays are dangerous to work with - I suspect inline access to them
16:28:12
beach
Until we know that the current way of doing it is a problem, I am not willing to put work into a special solution.
16:32:48
Bike
have an aref or aset kind of instruction that takes a dynamic element size, which can be computed from a table in the bad case
16:32:57
drmeister
I wonder if with source tracking we might have better profiling capabilities. Can we get backtraces with source info.
16:33:32
beach
And, like I said, we should not act upon intuition only, especially when it is know that the intuition is often very very wrong.
16:36:11
drmeister
It's not clear yet that clasp produces large code - we haven't eliminated debug info.
17:09:01
attila_lendvai
good to know, thanks! my build-refactor branch is also finishing the build soon.
17:37:38
DVSSA
Ok great I'll give it another go. I tried to build earler (~8hours) and its still building.
17:38:32
drmeister
We had a bunch of problems with the build system yesterday and it spilled over into cando builds.
17:45:52
drmeister
Sure - or feel free to do it yourself - if it fails I want to be able to figure out why - I need to get it going for a docker build.
18:16:23
frgo
attila_lendvai: You still around? I saw you mentioning replacing print statements in wscript with log statements. How does such a replacement look like?
18:32:36
attila_lendvai
frgo: it's pushed into the PR: https://github.com/drmeister/clasp/pull/419 or more specifically, this is the final state: https://github.com/drmeister/clasp/pull/419/commits/f1916830ee7c963b4e8198374a6fc35772cb6262
18:33:20
attila_lendvai
everything goes to the file build/variant/build.log and >= info goes to the console
20:11:54
kpoeck
Here is a link to the buses from Malaga: http://www.aena.es/en/malaga-airport/intercity-buses.html
21:39:22
DVSSA
How do I start cando/clasp? I think it built correctly (last line from build.log 'install_cboehm' finished successfully). Typing clasp/cando in terminal does nothing.
21:44:21
drmeister
That provisioning script I gave you is for building cando - there are dockerfiles that you can mine in clasp/tools/dockerfiles that show you how to provision a machine for jupyter notebooks or slime.