220
edits
(→Core) |
|||
(41 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== ToDo == | == ToDo == | ||
=== Core === | === Core === | ||
* fix imread bug with opaque images, see https://savannah.gnu.org/bugs/?func=detailitem&item_id=36820 | * <strike>fix imread bug with opaque images, see https://savannah.gnu.org/bugs/?func=detailitem&item_id=36820</strike> Thanks Carne | ||
* remove removed but still referenced function in "seealso" blocks | * <strike>FFTW multithreaded</strike> hg.savannah.gnu.org/hgweb/octave/rev/bde7731b2b83 | ||
* <strike> | * <strike>remove removed but still referenced function in "seealso" blocks</strike> | ||
* Add swisdom (single prec.) to /libinterp/dldfcn/fftw.cc documentation | |||
* linguist-qt4: octave-src/libgui$ "lupdate -recursive -no-obsolete -locations relative src qterminal graphics -ts languages/*ts" | |||
=== GUI === | |||
<strike>When opening and closing the GUI HDF5: infinite loop closing library</strike> [http://hg.savannah.gnu.org/hgweb/octave/rev/9c03b071fd7b] | |||
No icons in qt4 GUI? | |||
gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true | |||
gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true | |||
=== Forge === | === Forge === | ||
==== signal or fltk plotting? ==== | |||
pkg load signal | |||
t=0:1/4e4:12; | |||
y=chirp(t,100,5,18000); | |||
graphics_toolkit fltk | |||
specgram(y) | |||
-> r300: Implementation error: Render targets are too big in r300_set_framebuffer_state, refusing to bind framebuffer state! | |||
==== video ==== | |||
<strike>fix build, see http://octave.1599824.n4.nabble.com/quot-package-video-is-empty-quot-td4656346.html</strike> | |||
==== signal ==== | |||
* findpeaks.m, print error if data is not a column vector (error: vertical dimensions mismatch (1x10000 vs 1x1) | |||
==== image ==== | ==== image ==== | ||
* implement [http://en.wikipedia.org/wiki/SURF SURF], integralImage is cumsum(cumsum(a,1),2) | * implement [http://en.wikipedia.org/wiki/SURF SURF], integralImage is cumsum(cumsum(a,1),2) | ||
* implement impixelinfo http://stackoverflow.com/questions/23706937/displaying-pixel-values-of-an-image-in-octave | |||
* implement getpixelposition, axes2pix, pix2map, map2pix | |||
===== corner/cornermetric, harris ===== | ===== corner/cornermetric, harris ===== | ||
First post on mailing list in 12.01.2013 http://octave.1599824.n4.nabble.com/corner-cornermetric-equivalent-in-octave-td4648802.html | First post on mailing list in 12.01.2013 http://octave.1599824.n4.nabble.com/corner-cornermetric-equivalent-in-octave-td4648802.html | ||
== Snippets == | == Snippets == | ||
Line 34: | Line 56: | ||
mtimes(num2cell(m,[1,2]){:}) | mtimes(num2cell(m,[1,2]){:}) | ||
mtimes(s{:}) | mtimes(s{:}) | ||
=== commands from which I regularly doesn't find the name === | |||
* octave_config_info () | |||
* merge (C's (a)? b: c); syntax | |||
=== libgraphicsmagick++3 quantum-depth === | |||
in debian wheezy | |||
sudo apt-get build-dep libgraphicsmagick++3 | |||
apt-get source libgraphicsmagick++3 | |||
edit debian/rules | |||
--with-quantum-depth=16 \ | |||
works without problems | |||
--with-quantum-depth=32 \ | |||
shows one error: | |||
UYVY format ... | |||
mean-error=0.0209018218321559, maximum-error=0.816509137487552 | |||
not ok 77 | |||
Failed 1/77 subtests | |||
debuild -i -us -uc -b | |||
dpkg -i .... | |||
== Tracking octave bugs with hg bisect== | == Tracking octave bugs with hg bisect== | ||
I had a [http://savannah.gnu.org/bugs/?39652 strange problem] when loading gzip compressed ascii files in octave. It failed dependent on the integer values. After some stripping I made a minimalistic test script (min_testcase_fails.m) which always fails in a current dev (88616c872933): | |||
fn="file2.txt" | fn="file2.txt" | ||
fid = fopen (fn,"w"); | fid = fopen (fn,"w"); | ||
Line 50: | Line 96: | ||
system(cmd); | system(cmd); | ||
c=load("file2.txt.gz") #this fails in newer versions | c=load("file2.txt.gz") #this fails in newer versions | ||
When run: | |||
$ octave -q min_testcase_fails.m | |||
fn = file2.txt | |||
cmd = gzip file2.txt -c > file2.txt.gz | |||
error: value on right hand side of assignment is undefined | |||
error: called from: | |||
error: /home/andy/src/octave-bugs/min_testcase_fails.m at line 17, column 2 | |||
If line 4 with "663, 15, 154, 978161" is changed to ""663, 16, 154, 978161", load works as expected. '''Strange, isn't it?''' | If line 4 with "663, 15, 154, 978161" is changed to ""663, 16, 154, 978161", load works as expected. '''Strange, isn't it?''' | ||
Line 71: | Line 125: | ||
make -j 7 | make -j 7 | ||
After compilation I tried my test min_testcase_fails.m: | After compilation I tried my test min_testcase_fails.m: | ||
<pre>~/src/octave-build$ ./run-octave -q ../min_testcase_fails.m | |||
fn = file2.txt | |||
cmd = gzip file2.txt -c > file2.txt.gz | |||
c = | |||
639 25 160 978160 | |||
687 25 171 978160 | |||
663 31 173 978161 | |||
663 15 154 978161 | |||
655 21 151 978161 | |||
</pre> | |||
So this is apparently a good one. Tell it hg bisect! | |||
cd .. | cd ../octave-src && hg bisect -g | ||
hg bisect -g | |||
After this you try make again, bootstrap && configure if make fails, rerun the testscript, tell hg bisect if it's good or bad and repeat this until the revision which introduced the problem is found. | |||
Or you can use "hg bisect --command", see next point. | |||
=== hg bisect --command === | |||
I used [http://jordi.platinum.linux.pl/tmp/bisect-32818.sh Jordis bisect script for bug 32818] and modified it to my needs: | I used [http://jordi.platinum.linux.pl/tmp/bisect-32818.sh Jordis bisect script for bug 32818] and modified it to my needs: | ||
~/src$ cat bisect-loadsave.sh | |||
#!/bin/bash | |||
SRCDIR=~/src/octave-src | |||
BUILDDIR=~/src/octave-build | |||
cd $SRCDIR | |||
## Try a simple build first | |||
if ! make -j 7 | |||
then | |||
cd $SRCDIR | |||
./bootstrap || exit 127 | |||
#rm -rf $BUILDDIR | |||
#mkdir $BUILDDIR | |||
cd $BUILDDIR | |||
$SRCDIR/configure || exit 127 | |||
make -j 7|| exit 127 | |||
fi | |||
$BUILDDIR/run-octave -q ~/src/min_testcase_fails.m || exit 1 | |||
exit 0 | |||
After making it executable, let hg bisect use it | |||
~/src/octave-src$ hg bisect -c ../bisect-loadsave.sh | |||
Now sit back and relax, this could last some hours... Finally: | |||
<pre>Änderungssatz 16554:03a28487fa9d: good | |||
Die erste fehlerhafte Revision ist: | |||
Änderung: 16555:04fb96f4bea1 | |||
Nutzer: John W. Eaton <jwe@octave.org> | |||
Datum: Tue Apr 23 12:57:16 2013 -0400 | |||
Zusammenfassung: allow double-click in file browser to load data files</pre> | |||
=== bisect bug 42612 === | |||
For bug #42612 I created a minimal script which fails: clf_fails_42612.m | |||
subplot (2,1,1); | |||
plot (1:5); | |||
legend ('hello', 'location', 'northwestoutside'); | |||
clf | |||
And the script which runs it, bisect_clf.sh: | |||
#!/bin/bash | |||
SRCDIR=~/src/octave-untouched-src | |||
BUILDDIR=~/src/bisect_build | |||
cd $BUILDDIR | |||
## Try a simple build first | |||
if ! make -j 6 | |||
then | |||
# make failed, run bootstrap and configure | |||
cd $SRCDIR | |||
./bootstrap || exit 127 | |||
cd $BUILDDIR | |||
$SRCDIR/configure FFLAGS=-g CFLAGS=-g CXXFLAGS=-g --enable-bounds-check --disable-java --disable-gui --disable-docs|| exit 127 | |||
make -j 7|| exit 127 | |||
fi | |||
cd $SRCDIR | |||
$BUILDDIR/run-octave -q clf_fails_42612.m | |||
ret=$? | |||
echo $(hg id) $ret >> clf_fails_42612.log | |||
exit $ret | |||
=== show bisect history === | |||
hg log -r "bisect(good) or bisect(bad)" --template "{rev}:{node|short} {bisect}\n" | |||
== Links == | |||
* [http://hg.code.sf.net/p/octave/image hgweb on sourceforge] | |||
* [http://mywiki.wooledge.org/BashFAQ/073 bash parameter expansion] |
edits