freenode/#clasp - IRC Chatlog
Search
17:27:44
Shinmera
Hrm, Clasp fails to invoke a method specialised on VECTOR with a vector, but I can't seem to reproduce with the straightforward case
17:36:11
Bike
(subtypep 'core:mdarray-t 'vector) => T T, (subtypep (find-class 'core:mdarray-t) (find-class 'vector)) => NIL T
17:37:37
Bike
the fact that the class-of an adjustable vector is mdarray is probably going to be an issue
17:56:31
kpoeck_
I tested yesterday staple-server by documenting staple server in clasp and it worked fine, but not using slime.
18:04:50
kpoeck_
Shinmera: on the wiki page for loading staple-server in clasp, there a workaround for a vector problem, is yours perhaps the same? In dom.lisp?
18:05:12
Bike
here we go. (package-nicknames (find-package "AST-TOOLING")) => (NIL). that seems wrong
18:05:17
Shinmera
anyway, here's how to use Staple to generate a symbol index: https://plaster.tymoon.eu/view/1180#1180
18:06:30
Shinmera
It also somehow calls serialize-object with NIL sometimes, hence the second method definition. I'll look into why that happens now
18:08:40
Shinmera
kpoeck_: Ah, the second method is because your workaround is wrong. The loop should use `below`, not `to` in the iteration clause.
18:10:56
Shinmera
C-c C-c in the REPL during a long running thing seems to just print "About to with-lock in wake-thread" and then do nothing?
18:39:00
Shinmera
which does slime-read-package-name, which then calls (swank:list-all-package-names t)
18:39:47
Bike
the underlying problem is that we have a package with NIL as a nickname for some ridiculous reason
18:41:31
kpoeck__
Bike: the subtype things for array is that defined in https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/predlib.lsp#L1129 and following?
18:42:28
Bike
defpackage allows string designators, so i suppose that's just setting "NIL" as a nickname
18:43:23
Bike
kpoeck__: the problem has to do with the underlying class structure, not how it uses in typep. they're kind of separate things, which is of course bad
21:00:45
phoe
and whenever someone asks me what it means I direct them to https://youtu.be/8X69_42Mj-g?t=16m58s
21:33:45
Shinmera
drmeister: did you see my comments about clasp problems and how to get staple to document stuff?
21:44:14
Shinmera
The gist is there's a bug in your type hierarchy for arrays that's blocking Plump. Otherwise, this snippet here shows how to generate static documentation for a package with staple: https://plaster.tymoon.eu/view/1180
21:57:56
drmeister
I'll have to check with Bike about what it means to get to a solution in the fastest way.
22:02:31
drmeister
(make-array 0 :adjustable t) in clasp creates an instance of MDArray_O - this is adjustable - but it is a vector.
22:03:06
drmeister
Perhaps we have to go into TYPEP and explicitly check if MDArray_O instances have one dimension to test if they are vectors.
22:06:14
Shinmera
Right, so, you need either a distinct class for vectors, or make typep more expensive
22:07:46
Shinmera
though actually, is (class-of (make-array 0 :adjustable T)) => vector, like it should be?
22:08:26
drmeister
Nope . (class-of (make-array 0 :adjustable t)) -> #<The BUILT-IN-CLASS CORE:MDARRAY-T>
22:09:40
Shinmera
could hack it again I suppose, but leaking the information in multiple places seems very gross.
22:52:21
drmeister
Bike: Do you have any ideas as to what to do with this (typep (make-array 0 :adjustable t) (find-class 'vector)) => NIL issue?
22:53:24
Bike
we might need to add non-simple-array-but-still-a-vecxtor classes for all element types
22:53:57
drmeister
Also - does implementing static vectors mean we implement a simple vectors that point at arbitrary memory? Or do I want to allocate our current simple vectors in a non-moving pool?
22:55:14
drmeister
Re "we might need to add non-simple-array-but-still-a-vector classes for all element types" - do you mean C++ classes or Common Lisp classes?
22:57:00
drmeister
Currently MDArray_O doesn't have a slot for its class - where does it get it from? The stamp?
23:16:31
Shinmera
drmeister: if you allocate a static vector, you allocate that specific vector in an unmoving pool.
23:17:57
Shinmera
though many implementations also offer a way to retrieve a pointer to array contents of simple-array vectors, within a dynamic extent that pins that vector for the duration.
4:05:41
Bike
drmeister: do you have any idea how the AST-TOOLING package has a nickname of nil? the symbools_scraped_inc.h looked okay.