pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
pie_ has quit []
pie_ has joined #openscad
pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
<pa>
hi, i'm getting a warning that a library cannot be opened but no further detail. The file is there, and i solved all the warnings, but this one still pops up..
<InPhase>
pa: Given that this usually works, the source of the problem is hiding in some bit of information you didn't provide.
<pa>
InPhase, the thing is that the file actually is opened and works
<pa>
like i removed the include, and the difference is evident
<pa>
so although i get that warning, it seems the file is picked up somehow
<InPhase>
Do you get the warning with a test scad file that does nothing other than include the library file?
<pa>
i get the warning, but calling one module from that import works!
pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
mmu_man has quit [Ping timeout: 256 seconds]
Non-ICE has quit [Quit: Screw you guys, im going home!]
Non-ICE has joined #openscad
mmu_man has joined #openscad
aiyion3 has quit [Remote host closed the connection]
teepee has quit [Remote host closed the connection]
TheAssassin has quit [Remote host closed the connection]
aiyion3 has joined #openscad
TheAssassin has joined #openscad
teepee has joined #openscad
mmu_man has quit [Ping timeout: 252 seconds]
mmu_man has joined #openscad
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
greenbigfrog has quit [Ping timeout: 240 seconds]
greenbigfrog has joined #openscad
mmu_man has quit [Ping timeout: 272 seconds]
mmu_man has joined #openscad
mmu_man has quit [Ping timeout: 260 seconds]
<JordanBrown>
Can we see the exact text of both the "parent" and "child" files, preferably reduced to an absolute minimum?
<JordanBrown>
The absolute minimum seems like it should be about two lines for the parent (include, call) and three or so lines of module definition in the child.
<pa>
ah yes i can try.. stripping down the included file might be a challenge tho
<pa>
let me see
<JordanBrown>
Make a copy, and take a chainsaw to it.
<pa>
the includer is 2 lines: include .... then module();
<JordanBrown>
Good. So rip out everything in the child other than that module, and then change that module to just call echo().
<pa>
that will probably work :-)
greenbigfrog has quit [Ping timeout: 268 seconds]
mmu_man has quit [Ping timeout: 268 seconds]
greenbigfrog has joined #openscad
<pa>
ok this is weird
<pa>
so i cloned the included file, and including the cloned file works, without changes ...
* pa
no understand
<JordanBrown>
OK, so having made a copy of the file, you can apply the chainsaw to the original.
<JordanBrown>
But also: is there anything ... interesting ... about the file names?
<pa>
i just checked, file names seem ok.. head_buttcap.scad and head_buttcap_tst.scad . including the first produces WARNING: Can't open library 'head_buttcap.scad'.
drkow has quit [Ping timeout: 260 seconds]
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
<InPhase>
Well, the filenames are indeed interesting... But not in the way that specifically informs about the error. :)
<InPhase>
Are they both being used from within the same directory?
<InPhase>
Also, is this happening with the release or with a nightly snapshot / current master branch build?
<JordanBrown>
Platform?
<InPhase>
We appear to have two error messages, oddly but helpfully here, "Can't open library" and "Can't open library file". The one without "file" that you report arises from lexer.l and happens if "find_valid_path" returns an empty path during a "use" lookup in the parser. However I think this might not be where the used file is actually loaded, due to that lingering weirdness in how used files are processed.
<InPhase>
pa: Is it correct that you are using "use" instead of "include" here?
<InPhase>
pa: Do you perhaps use or include head_buttcap.scad inside of head_buttcap.scad or one of its embedded files? I notice in check_valid someone has commented out the followin warning: // LOG(message_group::Warning,,"circular include file %1$s",fullname);
<InPhase>
So instead of providing that warning, it falls back to "Can't open library"
<InPhase>
It is unclear to me why this is commented out.
<InPhase>
kintel gets git blamed for commenting it out on 2023-03-22.
<InPhase>
Stated commit was, "Added simplified LOG() overloads for a common logging cases"
<InPhase>
Oh. But that was just kintel fixing up syntax in a comment. It was commented out before...
<InPhase>
Oh, there we go. I had to ignore 3 layers of revisions to find it. 2013-05-27 is when kintel removed it, with rationale, "reduce warning output from periodically called functions"
<InPhase>
So I guess since 2013 we've had no informative warning about circular includes, since the top level does not check for this case?
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
linext has joined #openscad
<teepee>
why is there not progress? well, because we discuss things over and over again that have a long list of arguments against so it's just wasting every spare minute :(
teepee_ has joined #openscad
cbmuser has quit [Ping timeout: 260 seconds]
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
linext has quit [Read error: Connection reset by peer]
<InPhase>
teepee: Hmm? Which comment/topic made you sad?
<teepee>
not a single one, mostly the usual candidates though
* InPhase
nods.
<InPhase>
Valuable life philosophy "perfect is the enemy of good" implies people will not always get everything they want, even if they want it strongly. And also, that's okay, because pursuit of the achievable good beats the unachievable perfect.
<InPhase>
Everyone should get that, even if not everyone does. But it's just sort of baked into life. I've watched a lot of examples of leadership strategies out in the working world, and an important observation is that it is very often the case that in cases of conflicting constraints, if none strongly overwhelms the other, any decision typically beats no decision.
<InPhase>
i.e. one cannot always rely on debate and discussion to create a perfect consensus solution. It is at times impossible, so one then chooses and moves on to the next thing, and people just have to accept that because forward is more important.
<pa>
sorry had to go, i will check for circular inclusion again, but i briefly checked already and it seems it doesnt happen
<pa>
it sounds like the type of issue that might cause this