freenode/#clasp - IRC Chatlog
Search
11:13:56
attila_lendvai
drmeister: if you want control over the waf output then you need to stop using print in wscript. mimic the log.info() or .debug() calls that you find there.
12:06:18
kpoeck
Regarding ansi-tests, I forked the hopefully newest repository from jackdaniel on gitlab and pushed the modifications to run clasp in a branch
12:07:34
kpoeck
Instructions on how to run in https://gitlab.common-lisp.net/kpoeck/ansi-test/wikis/How-to-run-the-tests-for-clasp
12:09:34
kpoeck
Since clasp is relatively slow, I added features to just load parts of the tests, e.g. just sequences, but pushing :ansi-load-sequences to *features*
12:10:35
kpoeck
I did not touch any test from upstream, but deactivated the tests that make clasp exit and defined expected failures
12:13:30
kpoeck
Will try to add a functionality to execute the tests with fork, as clasp does in compiling (but need to figure out, how to communicate the subresults)
12:14:48
kpoeck
On my machine (some fixes not yet merged or not even comitted) I get 750 out of 21724 total tests failed:
12:17:02
kpoeck
obviously will try to clean up and make a pr to jackdaniel repository (after testing my changes with other lisps)
13:26:58
attila_lendvai
I think it makes more sense to name a config var the same as the function it controls. i.e. not CLASP_SRC_DONTTOUCH but UPDATE_DEPENDENCIES, defaulting to True
13:28:03
attila_lendvai
dev doesn't build for me, it fails at linking with "can't create dynamic relocation R_X86_64_PC32 against symbol: gctools::globalBytesAllocated in readonly segment". I assume it's not due to my innocent wscript changes.
13:41:17
attila_lendvai
drmeister: not that I know of. I pushed two innocent-looking changes to wscript, though
13:45:25
drmeister
Ok, tell me how that turns out. I don't want to pull anything that might break my build here.
13:47:00
attila_lendvai
drmeister: I used to have issues when linking with lto=obj. as I understand the new setup defaults to that now.
13:57:00
attila_lendvai
drmeister: might be due to the specific version of LLVM that I have here (FTR, it's 5.0.1)
13:58:49
drmeister
I need to make breakfast for a bunch of people in the next couple of hours - I'll be able to look at it after that if it's still a problem.
13:59:21
attila_lendvai
if it's due to my wscript changes then I'll have to give back my coder's licence... :) (or alternatively ban python and waf from my mind... :)
13:59:40
attila_lendvai
drmeister: ok. I'll report the results. if it breaks I'll drop a mail with the output.
14:33:19
beach
drmeister: What are the capabilities of DWARF? Like, what kind of debugger commands would it be capable of supporting? I am just designing SICL support for step-in, step-out, step-over, variable liveness information (type D-U and U-D chains, etc), so I am curious what DWARF is able to encode.
14:36:29
drmeister
I've been wondering for a long time why Clasp's error messages in slime are somewhat uninformative - I noticed something last night in the jupyter notebook output when an error is generated...
14:37:16
drmeister
There is a really helpful part of the error message with a white background and then it switches to the pink background and that shows the tail end of the message that is not as informative.
14:37:38
Bike
beach: it's enough for stepping, certainly. i don't know about liveness off the top of my head, but it's definitely pretty comprehensive. also intended to be cross language, though given the landscape that's fallen off a bit
14:38:26
drmeister
beach: DWARF is really good at generating line tables and I think it will support all of the stepping that you wrote about.
14:39:07
beach
Bike: Definitely stepping. But the languages I have used with DWARF are line oriented, so the stepping is by line. Is it possible in DWARF to encode other kinds of stepping?
14:39:24
drmeister
DWARF also is good at representing variables - but the LLVM optimizers mangle those terribly.
14:43:33
Bike
i'm pretty sure lldb can point out particular expressions, and that the source information isn't strictly line only, so form stepping is probably doable
14:50:04
drmeister
We are going to figure out if we can incorporate a useful DWARF interpreter within Clasp
14:53:07
drmeister
I could put a handler higher for higher up the condition hierarchy - but I stuck with this.
14:53:25
Bike
simple-condition isn't... i mean... it's just a class for conditions that are printed in a certain way
14:54:06
Bike
and are you sure you want to return like this? i thought cl-jupyter had a higher level handler
14:57:35
Bike
and if there's a condition that's not a serious-condition or warning it's not a showstopper
14:57:55
Bike
you don't "need" to handle everything, you just want to handle things you want to tell the user about
14:58:23
Bike
for a warning you probably just want to print it, and then print the actual output. for an eror you want to print it and get a backtrace too
14:59:27
Bike
this is what you had last night, but you said it was doing something weird because of the error stream being rebound or something
16:41:15
attila_lendvai
drmeister: this is either a heisenbug, or it's due to deleting comments... IOW, I'll need others to reproduce it, ir more time to keep rebuilding until I can understand what causes it, or settle down that there's a random component to it
18:17:09
Bike
basically *print-escape* needs to be nil. ~a is human readable "aesthetic" output, so that's the way to go
18:27:49
drmeister
Thanks - I must have slept through the class on creating conditions. They are basically classes - why doesn't it use make-instance?
18:32:47
drmeister
For structs the standard says: The consequences of redefining a defstruct structure are undefined.
18:33:35
Shinmera
Isn't there a thing on define-condition that says "refer to defclass" for everything else?
18:33:51
drmeister
Once we get to cclasp, everything (struct, conditions, classes, instances) are all implemented with Instance_O
18:34:44
Bike
they're all instances but structs are different in that the accessors are normal functions and so on.
18:35:10
Bike
and hypothetically we could have something like Instance that doesn't have an indirect rack, since we don't need to allow reinitializing instances
19:16:50
drmeister
Using quicklisp to load a local project generates a lot of handler calls - is that expected?
20:27:48
drmeister
What are good ways to limit the size of the backtrace. Should I look for frames with specific function names?
20:28:04
drmeister
I do this currently to determine where to start - I look for universal-error-handler
20:29:04
Bike
not displaying frames related to call-with-variable-bound, multiple-value-prog1-function, etc. would be most effective
20:47:53
balrog
drmeister, Bike: the merge-dev-cst branch is pulling SICL from upstream, not Bike's fork
20:50:31
Bike
the point of this merge was that it looks like it's going to take even longer to get cst working, so in the meantime we should at least unsplit the code
20:52:27
drmeister
Yes - but I believe in you - I think you can get cst working sooner rather than later.
20:54:15
Bike
what i thought we were doing is we'd do this merge, i'd spend a day or two getting it working with generate-ast again, and then it would be dev.
20:55:07
drmeister
Ok, what about plan (B) you spend some days getting inlining working and then we merge merge-dev-cst into dev?
20:55:29
Bike
i spent the last several weeks trying to get inlining working. it's not working. that's why i suggested this in the first place.
20:56:27
drmeister
We have come a long way over the last days - haven't we? Fixed lots of bugs in the inlining.
20:57:17
Bike
i don't know how many there will be, and in the meantime we're in this situation of having all our code continuing to diverge.
20:57:39
drmeister
And if we make merge-dev-cst --> dev then you still need to branch off of dev to work on inlining - right?
20:58:58
Bike
i think it should just be using generate-ast calls instead of cst-to-ast calls in translate.lisp in a few places.
20:59:29
Bike
i don't know. i don't want to do more big dumb merges and i honestly don't know how much longer it will take to get inlining working effectively.
21:08:58
Bike
unrelated topic. we know clasp spends alot of time garbage collecting, right? like in the flame graphs it takes a fair amount of time. but we don't have much information about what allocations are being done, i don't think?
21:14:59
drmeister
I added code to keep track of how many of what kind of objects you are allocation. It's like TIME - but it dumps what kind and how many objects were allocated. This would be useful now wouldn't it?
21:15:05
balrog
for the time being I'm going to see about simplifying the build instructions on Linux platforms
21:15:34
Bike
of course, since closure cells are just conses it wouldn't be helpful without a bit more info.
21:15:56
Bike
my home system is arch, and ubuntu is what we use for the docker image and also it's popular
21:16:45
drmeister
Bike: What do you mean by "since closure cells are just conses it wouldn't be helpful without a bit more info."