libera/#clasp - IRC Chatlog
Search
15:26:27
Bike
welp, i thought i broke everything, but actually koga synced cando to the new fmt version, which is incompatible with my clasp branch
15:34:39
Bike
--skip-sync fixed it, but for a minute i thought i screwed up something in exceptions.h, which gave me pages of errors in the scraper
15:39:19
drmeister
Ah - that got you too. The fmt changes were extensive in clasp, cando and seqan-clasp
15:39:55
drmeister
We still depend on boost libraries in clbind - that is going to be a bigger problem to get rid of it there.
15:40:13
drmeister
There's all this metaprogramming stuff in there that I don't know how to migrate.
15:41:59
drmeister
There's boost:is_base_and_derived... and there's std::is_base_of - are they the same? Related? There's very little documentation on what these template functions do - you have to read the crazy, painful code and understand C++ template programming at a deeper level than I do.
15:42:34
drmeister
That's just one template function - there are dozens of them I would need to translate.
15:43:11
yitzi
I think the basic strategy at this point to have `:skip-sync (:cando :seqan-clasp)` in your config.sexp. When you want to sync them you do `./koga --skip-sync=`
15:45:10
drmeister
And `./koga --skip-sync=` was a way to say that on the command line - that they do the SAME THING.
15:46:06
yitzi
If I am right then ./koga --skip-sync=` will assign an empty list to the skip-sync slot.
15:46:19
drmeister
I see, the command line overrides the config.sexp entry and when you don't provide anything after = you get the sync.
15:49:55
yitzi
Yes, that appears to work. Please not that you have to have the equals sign. Otherwise koga will assume that it is boolean option.
15:54:53
yitzi
Ok, so to summarize: If you are worried about repos updating during development then add `:skip-sync (:cando other-names)` to your config.sexp. You can force all repos to sync with `./koga --no-skip-sync`. The repo names are in repos.sexp.
16:00:49
Bike
the internet going down while i'm in the middle of debugging something over the internet is very frustrating
16:12:41
Bike
usually i don't mind syncing, and given that i pretty much only build cando to make sure i'm not breaking it i'd probably forget to update it otherwise, but this was an incompatible change
16:19:50
yitzi
Makes sense. When I am working on cando I usually push changes before koga runs so no harm syncing. Later I just squash if I have junk commits.
16:55:07
drmeister
https://github.com/borodust/claw-usb - usb library for Common Lisp. I’ll be cloning that.
17:27:37
Bike
so the only point of failure left will be lisp code that calls into c++ without going through a wrapper, if we have any of that
17:28:06
Bike
calling into C is ok since C does not do nonlocal exits (or at least only does so with longjmp, which we cannot account for
17:36:32
Bike
are we still using _evaluateDepth? it's part of the interpreter. it doesn't seem to be thread local, which seems wrong
18:33:35
yitzi
Any thoughts about making something like the `LOG` macro here? https://fmt.dev/latest/api.html#argument-lists
18:34:24
yitzi
Obviously called something else since there is already a LOG macro. Just to replace the `printf(%s:%d ....", __FILE__, __LINE__, xxxx)` stuff.
18:42:46
Bike
that seems like it could mean a lot of different things. can we not just use LOG? I think our existing macro is supposed to do about the same thing anyuway
18:43:42
Bike
drmeister: i think i could probably merge the new unwinder stuff into main now. i guess i could run ansi tests first but it passes ours
18:45:59
yitzi
Our existing LOG macro seems to be disabled if DEBUG_ON is not defined and also seems to check if debugging is enabled for FILE.
19:16:03
Bike
no, i'm just wondering if we couldn't ditch our existing LOG and replace it with one using fmt
19:17:15
Bike
i forgot to mark clos:interpret-dtree-program as cooperative. that probably kills a lot of unwinds, oops
19:22:43
yitzi
Which if I understand correctly, one issue would be that this won't work before the `_lisp` object has been created.
19:30:09
Bike
that said, it looks like the lisp_debugIsOn and lisp_debugLogWrite functions just grab a debug stream from the globals
19:33:41
yitzi
Would be nice to be consistent and be able to just use LOG() everywhere without regard to debugging level or lisp initialization.
19:40:14
Bike
i kind of mangled the telemetry in the new unwinder. i could switch it to record c++ unwinds, maybe?
20:05:59
yitzi
Looks there is still some issues with the upgrade to fmt. Some residual BF macros lying around.
20:30:38
yitzi
Seems like they can all be converted from `RECORD_LOG(BF(bla) % wibble % bar)` to `RECORD_LOG(bla, wibble, bar)`?
20:45:34
drmeister
boost::format was very sloppy about what format specifiers you could use for printing. You could put whatever you wanted %s, %d whatever for whatever argument you passed.
20:46:10
drmeister
fmt::sprintf and fmt::printf are strict - they follow the rules of std::printf - if it had rules.
20:50:56
Bike
aaaaall right the telemetry is working again. think this branch can be merged. probably not right now if there are still fmt problems.
20:51:52
yitzi
I haven't really used the `k` flag, although in this case it makes sense. I think you need a space there.
20:51:55
drmeister
I'm excited about that. Give me a few min to figure out how deep in the dip I am with fmt migration.
20:54:22
drmeister
I have to go get another boost shot (getting ready for traveling this summer) and then I'll be able to dive in. I can have it done tonight - would that work for you?
21:26:54
Bike
would it help if i set things up so that if you tried an out of extent return-from or go, it told you what the expired exit was called
21:36:34
pfd
Has anyone here tried installing CLASP on a Devuan 'Chimera' or rolling 'Ceres' system?
21:40:39
Bike
i don't think so, but i don't think anything in clasp depends on systemd. can you use deb packages? i think we have one of those
21:46:44
pfd
Wow! I didn't notice a deb package!! I only noticed a source archive, and I patiently thought I installed all the depencies by running the config file.
21:47:45
pfd
It could be that the deb installer will need to see a Debian Buster or highter version.
21:48:09
Bike
https://github.com/clasp-developers/clasp/wiki/Building-and-Installing-from-Source does at least have the dependencies you'll need to get from apt for building from source
21:49:39
pfd
:Bike I spent a lot of time running the config and installing all the dependencies, but towards the end it sniffed that my system isn't called 'Debian' ....
22:29:23
yitzi
pfd: There is a deb stuff in the repo, but it hasn't been tested extensively. You have to use debuild to make it.