<I forgot to include the list...>

Hi there Ramon,

sorry for long reply but it's a reply to 2 mails in one :-)

Ramon Bueno wrote:
 > Hello Phillip,

... with one "l" please...  :-)   (Don't worry, just nitty gritty)

 > a) Down below are the additional COM/ActiveX & java tests you requested
 > and their results.

Actually all test results look good.... read on.

 > b) Regarding the script I left running last night: This morning I saw
 > these final messages in the Octave window. (plus, when I "quit" Octave I
 > saw a flood of messages fly by, very fast, could not read them). In
 > addition, the output Excel file that last night was being filled with
 > separate worksheets by the Matlab code (I recall seeing 5 sheets with
 > data in them)....well today the file is still there, but it is 0 KB in
 > size and is basically empty. It seems as if perhaps the closing code
 > wiped it out?

No, I strongly suspect something in your ML scripts, see below.

But your previous batch of error messages shows that you'd better 
increase the Java virtual memory settings, see below too.

<snip>
 > octave.exe:4> exl = actxserver ('Excel.Application')
 > error: `actxserver' undefined near line 4 column 7

This means the windows package hasn't been loaded or installed.

 > octave.exe:4> *pkg load java*

No errors, so this is good.

BTW why are there a leading and trailing asterisk?

 > octave.exe:5> *pkg load windows*

No errors, this is good.

 > octave.exe:6> *exl = actxserver ('Excel.Application')*
 > exl =
 > <COM object _Application (0x0x89887c)>

This is good.

 > octave.exe:7> *delete ('exl')*
 > warning: delete: no such file: exl

exl = a "variable" (COM object), not a file name, so shouldn't be 
enclosed in quotes.
I forgot to mention that before delete () one should enter "exl.Quit()" 
(w/o quotes), sorry for that.

 > octave.exe:8> *xls1 = xlsopen ('TEST_MATLAB_input.xls', 0, 'com')*
 > Excel/COM interface requested... Excel (COM) OK.
 > xls1 =
<snip>

This is good. So COM/ActiveX & invoking Excel works.

<snip>
 > octave.exe:11> *tmp = java_new ('java.lang.String', 'abc')*
 > tmp = abc

Good, your java works.

 > octave.exe:12>* javaclasspath*
 > warning: split is obsolete and will be removed from a future version of
 > Octave;
 > please use strsplit instead

Known "buglet" of the java package, doesn't harm.

 > C:\Octave\3.2.4_gcc-4.4.0\bin\dom4j-1.6.1.jar
<...etc...>
<snip>

Perfect.

 > octave.exe:13> *xls2 = xlsopen ('TEST_MATLAB_input.xls', 0, 'poi')*
 > Java/Apache POI interface requested... Java/Apache (POI) OK. (& OOXML OK)
 > xls2 =
<...etc...>
<snip>

Perfect. The java POI interface for Excel works OK.

 > octave.exe:15*> xls3 = xlsopen ('TEST_MATLAB_input.xls', 0, 'jxl')*
 > Java/JExcelAPI interface requested... Java/JExcelAPI (JXL) OK.
 > xls3 =
<...etc...>
 > octave.exe:16> *xlsclose (xls3)*
 >
 > ans = [](0x0)

Perfect. JExcelAPI, the other java-based Excel interface, also works.


My conclusion is that there's nothing wrong with your setup, except that 
the windows & java package should be loaded automatically (see below for 
hints).
This means the problem probably is in your Matlab scripts. I'm afraid 
you will have to clean up & debug your ML-scripts first.

As a first shot I had a look at the list of error messages you sent me 
earlier on:

START============================================================
 > warning: single quote delimited string near line 396 of file 
C:\Octave\3.2.4_gcc
 > -4.4.0\share\octave\packages\io-1.0.11\oct2xls.m

I think this implies that in your Matlab scripts there's an error with 
properly enclosing names in quotes. Single or double quote shouldn't 
matter; Matlab only knows about single quotes, Octave does both, but " 
and ' cannot be mixed around one and the same string.

 >
 > warning: potential Matlab compatibility problem: " used as string
 > delimiter near
 > line 399 offile C:\Octave\3.2.4_gcc-4.4.0\share\octave\packages
 > \io-1.0.11\oct2x
 > ls.m

...Very intruiging....
Some script is monitoring the octave scripts for ML compatibility. That 
is Not Good, not even necessary, and probably even harmful.
I'd check all the ML scripts and shut off this ML compatibility checking 
interference.

(Or is it the oct2mat package that was loaded accidentally - you did 
write that you explicitly didn't install it?)

 >
 > warning: implicit conversion from string to real N-d array

...I suppose a consequence of the same issue.

 >
 > ncols =  1

...Yep, a stray harmless echo that has been fixed (in svn) several 
months ago.
But by coincidence it IS informative in your situation - *do* you or 
your scripts use/specify spreadsheet ranges of only 1 column wide? 
(would be a nice check)

 >
 > warning: concatenation of different character string types may have
unintended c
 > onsequences

...Consequence of same issue as above I think.

============================================================END
Well, I'll have to draw the line here. Debugging scripts originating 
from ML is not quite my responsibility as IO package maintainer  :-) :-)
Nevertheless your reports are very useful to me.
Please remove the ML compatibility checks first and try again.

OK, from your earlier mail:

 >     <snip>                             I then tried "pkg load all"
 > in a new session and Octave similarly stops working but no messages
 > appear.

IIRC the ga, octcdf & ?communications? packages interfere with the 
Windows package or had other fatal issues. See the README of the 
octave-3.2.4 MingW binary package you downloaded & installed.

Please restart octave and using "pkg list", make sure that these 
packages + oct2mat package are NOT loaded (have no asterisk mark). Use 
"pkg unload <pkgname>" one by one if needed.

Then, to make sure that java pkg is loaded automatically:
pkg rebuild -auto java  (will settle it once and for all)

When that's done, make a plain text file called "java.opts" (w/o quotes) 
and put it in <octave>\share\octave\packages\java-<version>, containing 
just these 2 lines:

-Xms16m
-Xmx512m

and restart octave. This will increase java's working memory 
availability from 16 to 508 MiB. If you have fairly big spreadsheets 
this is a fairly vital setting.
Don't worry, this amount of memory is only "pre-reserved", not 
immediately grabbed, and only piecewise borrowed from and returned to 
the windows (and other OS's) memory managers by java.

To make sure that windows is loaded automatically, enter the pkg load 
command in octaverc as I mentioned in an earlier mail.
Do not do it like the java package; my suggestion to put it in octaverc 
is actually a workaround for a bug affecting the octave-3.2.4 windows 
binary.

 >
 > - Java jre6 is in both \Program Files and\Program Files (x86). I'm
 > not sure how jre6 relates to the 1.6 version you mention.

jre6 = Java 1.6.x.x.
It's all OK.

Hopefully you'll manage to fix your ML scripts. There's something alien 
in there that is quite unfriendly to non-ML scripts. I'm curious as to 
what it actually is.

If you don't mind, can you please strip the various xlsread / xlswrite 
calls from your scripts and mail them to me, so I can check if those 
calls match octave's calls (which /should/ be ML-compatible)?

Best wishes & thanks,

Philip

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Octave-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to