Wed 25 Nov 2015 12:16:10 PM UTC, comment #8:
The problem with glob breaks installing forge packages for me.
only returns "__bilateral__.oct" on my system. This causes a problem in scripts/miscellaneous/copyfile.m:83
where not all .oct files are copied to the destination directory. I wonder why no one else sses this problem when trying to install forge packages with oct files.
|
Sat 17 Oct 2015 04:00:37 PM UTC, comment #2:
Sorry about that breakage.
There are a few other sticky issues that have turned up with the exception handling changes and I'm not sure yet how to handle all of them. I'll try to put together a summary soon so we can decide how to handle them (or, worst case, just revert the exception handling change, but I really really really don't want to do that).
|
Sat 17 Oct 2015 04:03:07 AM UTC, comment #1:
Confirmed. In version 4.0.0 the patterns work as expected, but not with a recent development tip.
The problem seems to be that the all_strings() function has changed. If you look at the glob function in dirfns.cc one of the first actions is
Using the glob pattern
I find that the resulting entries in the string_vector (using gdb) are
As you can see, it is as if the code called char (glob_ptn) and formed a char matrix. The first pattern is shorter than the second so it is extended with a space character. Of course, that is not right.
I think this is connected with jwe's change to exception processing. Using gdb I find the following backtrace
The thing to note is that pad is true. This is because the call in Fglob, as stated earlier, now contains an error message to be printed if the conversion fails.
There is no prototype in ov.h of an all_strings() function which takes a string argument in and outputs a string_vector. The closest matching function is one that takes in a boolean value pad. So the compiler seems to take the error message which is set as boolean true.
If I restore line 565 to
then the glob patterns work.
I'm adding jwe to the CC list for this report.
|
Thu 15 Oct 2015 08:27:38 PM UTC, original submission:
Steps to reproduce:
on Linux in the Octave build tree invoking "./run-octave &" is easiest:
It shows that subdir "doc" is only found if all file patterns comprise just one leading letter followed by a wildcard.
If any of the patterns consists of two or more leading letters followed by a wildcard glob() fails to find "doc".
I haven't been able to assess further systematics here.
I'm sure this was working fine some weeks ago (I mean: pkg rebuild -auto <list_of_packages>" worked fine, implying glob() must have worked fine in turn then), hence a regression.
FYI my systems:
Windows 7 prof 64-bit
Mageia-5 Linux 64 bit (build system also for mxe-octave)
[philip@deskprn dev]$ hg -v summary
parent: 20629:ab705b42cfd8 tip
build: Fix compilation error when building with --without-qrupdate
Background:
I hit this while trying to run "pkg rebuild -auto <list_of_package_names>" in a freshly insatlled MXE cross-build on Windows; I found that consistently only one of the packages in the list was actually set to autoload.
Debugging pkg.m it turns out that in rebuild.m, on L.38, the following call fails:
because glob() fails.
|