libera/#clasp - IRC Chatlog
Search
17:15:02
yitzi
Bike: I think the logical pathname are getting mangled in `llvm-sys:create-file` and the usage of `llvm::DIFile`. The logic there seems to assume physical paths with `/` separators.
17:22:05
yitzi
https://github.com/clasp-developers/clasp/blob/aba76e80d3074243241031829ac0dd5486ffd50d/src/lisp/kernel/cmp/debuginfo.lisp#L110-L123
17:23:09
yitzi
I am making an attempt at it. Basically, not using the directory field at all and just shoving the whole namestring into the Filename
17:24:36
yitzi
Found that while using STEP the returned pathnames for the frame stack was things like `/src/lisp/kernel/....` vs `sys:src;lisp;kernel;...`
17:26:11
Bike
maybe we could check if the pathname is logical (i think (typep pathname 'logical-pathname)?) and choose a separator appropriately, if sticking everything in the file field doesn't work
17:27:03
yitzi
Yes, that would make sense. The only obstacle might be if a physical pathname has a host or a device component?
17:28:33
Bike
maybe we can just change that. it looks like on sbcl directory-namestring on a logical pathname keeps the ; separators.
17:29:14
yitzi
I am changing the corresponding `getPath` function so that it checks for an empty directory string. `(directory.empty()) ? filename : (directory + "/" + filename);`
17:30:15
yitzi
Hopefully that will work if some other code creates `llvm::DIFile` and actually uses the directory slot.
17:31:45
yitzi
That would make it difficult. We wouldn't know what logical host the DIFile is pointing to.
18:10:15
yitzi
Hi kpoeck. If you are building from recent main you'll need to delete build, dependencies and src/lisp/kernel/contrib/ before you rerun koga. Just FYI.
18:15:25
kpoeck
other question. the asdf guys seem to use a quite dated clasp for their ci. Do we have an docker image that is regulary updated that we could provide them?
18:18:38
yitzi
It builds once a week. Really, it just installs the nightly builds and quicklisp. https://github.com/clasp-developers/clasp/blob/main/docker/clasp/Dockerfile
18:23:36
yitzi
Let me know if they need other stuff installed or any requests at all. I can change it anytime.
18:29:53
kpoeck
In asdf there is sometimes - e.g. with ecl - like (if (version<= "2.21" tag) ... Do we have a version number that can be used for that? My (lisp-implementation-version) returns now "cclasp-boehmprecise-1.0.0-307-g3cb638c40-cst", perhaps not so extremly helpfull
18:33:31
kpoeck
and -i can still meta-dot to something defined in lisp, but not to lisp-implementation-version .
18:34:16
kpoeck
The entry in TAGS is LCC_RETURN wrapped_cl__lisp_implementation_version_ 14382,915337, is that kosher? Didn't Bike reported something similar?
18:57:18
kpoeck
the version_number comes from (version configuration) i assume, but where is that calculated?
18:59:45
yitzi
Its coming from here: https://github.com/clasp-developers/clasp/blob/aba76e80d3074243241031829ac0dd5486ffd50d/src/koga/units.lisp#L271-L277
19:05:57
yitzi
Sounds correct. I think the uiop version number comparison will work with "1.0.0-304"
19:09:32
yitzi
Bike: the leading slash is being added by LLVM. I have been able to get around it by setting the directory to "_" when I want to ignore it, then looking for pathnames that start with "_/". A bit of a kludge.
19:11:25
yitzi
There may be a better solution. I've found a few more issues to fix though. Once I am done maybe you can look at it as see if you see a better way.
19:12:17
Bike
i will take a look, but unfortunately our use of debug information has never been something i understand deeply
19:21:03
kpoeck
so should we define something in clasp that returns 3 digit tag + numberofcommits separated by dot?
19:23:40
yitzi
I don't know if I agree with uiop's version rules. That is not how the version tags work in packaging systems. Would `(substitute #\. #\- (software-version))` work?
19:32:59
kpoeck
(let ((version-raw (substitute #\. #\- (software-version))))(UIOP/VERSION:parse-version (subseq version-raw 0 (1- (position #\g version-raw))))) -'> (1 0 0 312)
19:40:13
yitzi
kpoeck: I think this allows for "1.1.0" which would be the value right after a release. https://plaster.tymoon.eu/view/3257
19:43:48
yitzi
I would anticipate v1.1.0 shortly before llvm14. Very soon. We will need a fixed version to get into the debian/homebrew repos
19:44:44
yitzi
If the commit is directly on a tag then the version number will just be that tag, nothing else.
19:49:39
yitzi
I guess when we are happy that the llvm 14 stuff works? I agree v1.1.0 = llvm14 makes more sense, but I have submitted the debian packages for inclusion in Debian/Ubuntu yet. I don't know if want llvm14 out of Debian testing first.
19:59:08
yitzi
Well, we have a lot of changes on main, and the debian packages don't work with v1.0.0 because koga is in v1.1.0, so a patch release isn't gonna help.
20:03:33
yitzi
Yes, that is a solution. Like I said, I am kind of indecisive. Does Debian usually do about a yearly release>
20:05:54
yitzi
Well, that makes it silly to wait for them. So I think your first suggestion was correct. v1.1.0 = llvm14 when llvm14 is available on homebrew and Arch (they are the holdouts)
20:07:38
yitzi
My completely uniformed crystal ball says that llvm14 on arch/homebrew is about a month away. ;-)
21:55:58
drmeister
`rm -rf build/boehmprecise/fasl/clasp-cclasp-boehmprecise-1.0.0-307-g3cb638c40-g9c97d8da-cst-macosx-x64/*`
22:14:20
drmeister
I changed the function CHEM::BONDED-ATOMS-AS-LIST in the C++ code to CHEM:ATOM/BONDED-ATOMS-AS-LIST. Then I changed all the Common Lisp source code to refer to CHEM:ATOM/BONDED-ATOMS-AS-LIST.
22:14:43
drmeister
Now I'm trying to figure out what I need to do to rebuild the code so that I don't get the error: