freenode/#sicl - IRC Chatlog
Search
16:11:47
Bike
cleavir-ctype is massively broken (or rather, not really used) and i'll have to figure out how to fix it... ech...
16:12:40
Bike
well, basically you can't use any of its operations without a system parameter, and not everything has a system parameter at all times
16:13:40
Bike
which works, but if you do that the system is kind of pointless since you can't customize it
16:17:52
Bike
i think the sensible solution would be to avoid computing type intersections in cleavir-env, and instead store the intersection in the local environment, so cst-to-ast can compute it
16:35:15
Bike
https://github.com/s-expressionists/Cleavir/pull/7/commits/f27c1d5744e3c1704e5c82ee2265eb5693fd7f70 we've been trying hard to avoid this kind of conditional - what trouble does sbcl have with the declaration?
16:41:08
beach
HIR-to-MIR passes, but there are a lot of FIXMEs in there, and I'll work on those incrementally. The good news is that processing time did not increase significantly.
16:46:37
scymtym
Bike: i think the "recursive" nature of the type is the problem. for me, this resulted in some obsolete instance update cycle that eventually landed in ldb
16:47:22
scymtym
may only happen because i use elevated safety so that SBCL inserts type checks for slots
16:49:32
scymtym
everything in the visualizer related to environments is also very wonky and should be redone properly in some way
16:50:37
Bike
if i do rewrite cleavir to use trucler that might go away, in that trucler's sbcl environment interface is probably less rotted than the one in Environment/Examples/ or wherever
16:52:42
scymtym
i use the environment to inject the policy chosen by the user. other than that, i just needed something that allowed compilation to finish
16:53:08
scymtym
but picking up global functions and variables from the host may actually make sense as a default
17:13:24
scymtym
yeah, it will potentially catch fewer cleavir bugs when running in SBCL. but without the exception, it might not run at all
17:14:30
Bike
i think i'll try loading your branch and convincing myself that it's an sbcl problem before merging
17:16:19
scymtym
sure. there is no rush. feel free to not merge now if you want to make certain improvements first
17:32:11
Bike
trucler doesn't seem to have a way to get info about DECLARATION proclamations. that may be a little sticking point
18:10:55
Bike
when i try to load the visualizer i get "Invalid initialization argument: :UPDATE-INSTANCES-ON-REDEFINITION in call for class #<STANDARD-CLASS COMMON-LISP:STANDARD-CLASS>." while loading application.fasl.
18:12:06
Bike
and i think my quicklisp is fully updated. i ran into some problems with that make-ea thing so i wiped the asdf cache entirely to get this far
18:16:17
ebrasca
beach: following your tip of removing pathname-% from (%type :initarg :type :reader pathname-%type) collides wiht funcition type.
18:17:13
scymtym
(it makes the window update when the corresponding code is redefined so users have no use for it)
18:47:33
scymtym
i don't have a proper recipe and i think there might complex preconditions, but when i compile and run everything with (proclaim '(optimize (debug 3) (safety 3) (speed 1) (compilation-speed 0))), just starting the visualizer triggers it
18:48:59
scymtym
i wouldn't be surprised if it also depends on which thread evaluates what and finicky stuff like that
18:52:05
scymtym
i forgot, i have to modify the form to trigger a compilation to make the problem appear
18:54:24
scymtym
Bike: this is the simplest way to reproduce it i could find: https://techfak.de/~jmoringe/sbcl-crash.png
18:55:30
Bike
do you have the proclamations in your sbclrc or something? because that looks like i did and i didn't get a crash
18:56:04
scymtym
as i wrote above, (proclaim '(optimize (debug 3) (safety 3) (speed 1) (compilation-speed 0))), or do you mean something else?
18:57:30
scymtym
in this context, this difference probably is that high safety generates type checks based on slot :TYPE options