octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave-3.3.55 and Octave-3.3.90 on OSX


From: Ben Abbott
Subject: Re: Octave-3.3.55 and Octave-3.3.90 on OSX
Date: Mon, 31 Jan 2011 08:10:57 -0500

On Jan 31, 2011, at 2:02 AM, Richard Campbell wrote:

> On Jan 30, 2011, at 3:14 PM, Richard Campbell wrote:
> 
>> On Jan 30, 2011, at 3:11 PM, Ben Abbott wrote:
>> 
>>> On Jan 30, 2011, at 3:01 PM, Richard Campbell wrote:
>>> 
>>>> On Jan 30, 2011, at 2:48 PM, Ben Abbott wrote:
>>>> 
>>>>> On Jan 30, 2011, at 1:10 PM, Richard Campbell wrote:
>>>>> 
>>>>>> On Jan 30, 2011, at 1:04 PM, John W. Eaton wrote:
>>>>>> 
>>>>>>> On 30-Jan-2011, Richard Campbell wrote:
>>>>>>> 
>>>>>>> | It's just a line plot. I pasted it in an earlier message in this 
>>>>>>> thread. I get
>>>>>>> | the same error when trying to print if I had typed surf(peaks) as 
>>>>>>> well. It
>>>>>>> | plots fine on the screen, I just can't print it to a file.
>>>>>>> | 
>>>>>>> | octave:1> plot(randn(10,1))
>>>>>>> | octave:2> print('-dpng','test.png')
>>>>>>> | warning: print.m: fig2dev binary is not available
>>>>>>> | error: invalid assignment to cs-list outside multiple assignment
>>>>>>> | error: matrix cannot be indexed with {
>>>>>>> | error: evaluating argument list element number 3
>>>>>>> | error: called from:
>>>>>>> | error:   /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>>> at line
>>>>>>> | 390, column 11
>>>>>>> | octave:2> print('-depsc','test.eps')
>>>>>>> | error: invalid assignment to cs-list outside multiple assignment
>>>>>>> | error: matrix cannot be indexed with {
>>>>>>> | error: evaluating argument list element number 3
>>>>>>> | error: called from:
>>>>>>> | error:   /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>>> at line
>>>>>>> | 390, column 11
>>>>>>> | octave:2> print('-dtiff','test.tiff')
>>>>>>> | error: invalid assignment to cs-list outside multiple assignment
>>>>>>> | error: matrix cannot be indexed with {
>>>>>>> | error: evaluating argument list element number 3
>>>>>>> | error: called from:
>>>>>>> | error:   /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>>> at line
>>>>>>> | 390, column 11
>>>>>>> | 
>>>>>>> 
>>>>>>> In 3.3.90, line 390 of print.m is
>>>>>>> 
>>>>>>> ## restore modified properties
>>>>>>> if (isstruct (props))
>>>>>>> for n = 1:numel(props)
>>>>>>>  if (ishandle (props(n).h))
>>>>>>>    set (props(n).h, props(n).name, props(n).value{1});  <<< line 390
>>>>>>>  endif
>>>>>>> endfor
>>>>>>> endif
>>>>>>> 
>>>>>>> Try this in Octave:
>>>>>>> 
>>>>>>> dbstop print 390
>>>>>>> peaks
>>>>>>> print ('-depsc', 'test.eps')
>>>>>>> 
>>>>>>> then when you get the "debug>" prompt, try looking at the following
>>>>>>> items:
>>>>>>> 
>>>>>>> numel (props)
>>>>>>> props
>>>>>>> props(1)
>>>>>>> props(2)
>>>>>>> 
>>>>>>> Here is what I see:
>>>>>>> 
>>>>>>> debug> numel (props)
>>>>>>> ans =  2
>>>>>>> debug> props
>>>>>>> props =
>>>>>>> 
>>>>>>> 1x2 struct array containing the fields:
>>>>>>> 
>>>>>>> h
>>>>>>> name
>>>>>>> value
>>>>>>> 
>>>>>>> debug> props(1)
>>>>>>> ans =
>>>>>>> 
>>>>>>> scalar structure containing the fields:
>>>>>>> 
>>>>>>> h =  1
>>>>>>> name = position
>>>>>>> value = 
>>>>>>> {
>>>>>>>  [1,1] =
>>>>>>> 
>>>>>>>     300   200   560   420
>>>>>>> 
>>>>>>> }
>>>>>>> 
>>>>>>> debug> props(2)
>>>>>>> ans =
>>>>>>> 
>>>>>>> scalar structure containing the fields:
>>>>>>> 
>>>>>>> h =  1
>>>>>>> name = color
>>>>>>> value = 
>>>>>>> {
>>>>>>>  [1,1] =
>>>>>>> 
>>>>>>>     1   1   1
>>>>>>> 
>>>>>>> }
>>>>>>> 
>>>>>>> I guess you don't have the same props(?).value.  If not, then why is
>>>>>>> it not set correctly?  You can do
>>>>>>> 
>>>>>>> dbstop print
>>>>>>> peaks
>>>>>>> print ('-depsc', 'test.eps')
>>>>>>> 
>>>>>>> and then step through print.m with dbstep to see where  props(?).value
>>>>>>> is set.  Note that after you type a command at the debug prompt,
>>>>>>> pressing the Enter by itself will repeat the previous command, so
>>>>>>> stepping is easy.
>>>>>>> 
>>>>>>> jwe
>>>>>> 
>>>>>> 
>>>>>> octave:1> dbstop print 390
>>>>>> ans =  390
>>>>>> octave:2> peaks
>>>>>> octave:3> print('-depsc', 'test.eps');
>>>>>> warning: print.m: fig2dev binary is not available
>>>>>> error: invalid assignment to cs-list outside multiple assignment
>>>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>> at line 390
>>>>>> 390:           set (props(n).h, props(n).name, props(n).value{1});
>>>>>> debug> numel(props)
>>>>>> ans =  2
>>>>>> debug> props
>>>>>> props =
>>>>>> 
>>>>>> 1x2 struct array containing the fields:
>>>>>> 
>>>>>> h
>>>>>> name
>>>>>> value
>>>>>> 
>>>>>> debug> props(1)
>>>>>> ans =
>>>>>> 
>>>>>> scalar structure containing the fields:
>>>>>> 
>>>>>> h =  1
>>>>>> name = position
>>>>>> value = 
>>>>>> {
>>>>>> [1,1] =
>>>>>> 
>>>>>>    300   200   560   420
>>>>>> 
>>>>>> }
>>>>>> 
>>>>>> debug> props(2)
>>>>>> ans =
>>>>>> 
>>>>>> scalar structure containing the fields:
>>>>>> 
>>>>>> h =  1
>>>>>> name = [](0x0)
>>>>>> value = [](0x0)
>>>>>> 
>>>>>> 
>>>>>> and then while dbstepping through print.m:
>>>>>> 
>>>>>> debug> dbstep
>>>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>> at line 297
>>>>>> 297:     props(2).h = opts.figure;
>>>>>> debug> dbstep
>>>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>> at line 298
>>>>>> 298:     props(2).name = "color";
>>>>>> debug> dbstep
>>>>>> error: invalid assignment to cs-list outside multiple assignment
>>>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m 
>>>>>> at line 387
>>>>>> 387:     if (isstruct (props))
>>>>> 
>>>>> props(2) is the problem.  Lines 297-300 set the name and value.
>>>>> 
>>>>> 297     props(2).h = opts.figure;
>>>>> 298     props(2).name = "color";
>>>>> 299     props(2).value{1} = get (props(2).h, props(2).name);
>>>>> 300     set (props(2).h, props(2).name, "none");
>>>>> 
>>>>> I don't see how these fields end up empty. 
>>>>> 
>>>>> Please add another breakpoint at line 300, and check that the fields of 
>>>>> props(2). Also check the fields of "opt". You can see the result I get 
>>>>> below.
>>>>> 
>>>>> dbstop print 300
>>>>> ans =  300
>>>>> peaks
>>>>> print ('-depsc', 'test.eps');
>>>>> stopped in /Users/bpabbott/Development/Octave_Toolbox/print/print.m at 
>>>>> line 300
>>>>> 300: set (props(2).h, props(2).name, "none"); 
>>>>> debug> props(2)
>>>>> ans =
>>>>> 
>>>>> scalar structure containing the fields:
>>>>> 
>>>>> h =  1
>>>>> name = color
>>>>> value = 
>>>>> {
>>>>>  [1,1] =
>>>>> 
>>>>>     1   1   1
>>>>> 
>>>>> }
>>>>> 
>>>>> debug> opts
>>>>> opts =
>>>>> 
>>>>> scalar structure containing the fields:
>>>>> 
>>>>> append_to_file = 0
>>>>> canvas_size =
>>>>> 
>>>>>   576   432
>>>>> 
>>>>> debug = 0
>>>>> debug_file = octave-print-commands.log
>>>>> devopt = epsc
>>>>> epstool_binary = /sw/bin/epstool
>>>>> figure =  1
>>>>> fig2dev_binary = /sw/bin/fig2dev
>>>>> fontsize = 
>>>>> font = 
>>>>> force_solid = 0
>>>>> formatted_for_printing = 0
>>>>> ghostscript =
>>>>> 
>>>>>  scalar structure containing the fields:
>>>>> 
>>>>>    binary = /sw/bin/gs
>>>>>    debug = 0
>>>>>    device = 
>>>>>    epscrop =  1
>>>>>    level = [](0x0)
>>>>>    output = 
>>>>>    papersize = 
>>>>>    pageoffset =
>>>>> 
>>>>>       0   0
>>>>> 
>>>>>    resolution =  150
>>>>>    antialiasing = 0
>>>>> 
>>>>> loose = 0
>>>>> lpr_binary = /usr/bin/lpr
>>>>> name = test.eps
>>>>> orientation = portrait
>>>>> pstoedit_binary = /sw/bin/pstoedit
>>>>> preview = 
>>>>> printer = 
>>>>> send_to_printer = 0
>>>>> special_flag = textnormal
>>>>> tight_flag = 0
>>>>> use_color =  1
>>>>> lpr_options = -l
>>>>> unlink = {}(0x0)
>>>>> pstoedit_cmd = @pstoedit
>>>>> fig2dev_cmd = @fig2dev
>>>>> latex_standalone = @latex_standalone
>>>>> lpr_cmd = @lpr
>>>>> epstool_cmd = @epstool
>>>>> 
>>>>> Ben
>>>> 
>>>> dbstop print 300 has no effect, which tells me that the line is never 
>>>> being executed.
>>>> 
>>>> dbstop print 297 stops as expected, though. If I step forward from there:
>>>> 
>>>> octave:1> peaks
>>>> octave:2> dbstop print 297
>>>> ans =  297
>>>> octave:3> print('-depsc','test.eps')
>>>> warning: print.m: fig2dev binary is not available
>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at 
>>>> line 297
>>>> 297:     props(2).h = opts.figure;
>>>> debug> dbstep
>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at 
>>>> line 298
>>>> 298:     props(2).name = "color";
>>>> debug> dbstep
>>>> error: invalid assignment to cs-list outside multiple assignment
>>>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at 
>>>> line 387
>>>> 387:     if (isstruct (props))
>>> 
>>> 
>>> Hopefully, John has some insight here (I don't). It looks to me like lines 
>>> 298-377 never run, or the debugger is lost.
>>> 
>>> Can you confirm that test.eps wasn't created?
>>> 
>>> Ben
>> 
>> Correct, it was not created.
>> 
>> Campbell
> 
> Here's an interesting twist: I don't get the error when I build Octave as 
> 64-bit using Jarno's blaswrap.c wrapper. I still get a different error 
> though. I do have Ghostscript installed.
> 
> octave:2> print('-depsc','test.eps')
> warning: print.m: fig2dev binary is not available
> error: gnuplot_drawnow: the gnuplot terminal, "postscript", is not available
> error: called from:
> error:   
> /Users/campbell/Downloads/octave-3.3.90/scripts/plot/gnuplot_drawnow.m at 
> line 54, column 9
> error:   
> /Users/campbell/Downloads/octave-3.3.90/scripts/plot/__gnuplot_print__.m at 
> line 186, column 5
> error:   
> /Users/campbell/Downloads/octave-3.3.90/scripts/plot/__gnuplot_print__.m at 
> line 170, column 5
> error:   
> /Users/campbell/Downloads/octave-3.3.90/scripts/plot/__gnuplot_print__.m at 
> line 68, column 7
> error:   /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at line 
> 380, column 12
> 
> Campbell

I'd thought the postscript terminal was standard with gnuplot. To see the list 
of terminals your gnuplot supports, type ...

octave:1> peaks
octave:2>  __gnuplot_get_var__ (gcf, "GPVAL_TERMINALS")
ans = aqua canvas cgm corel dpu414 dumb dxf eepic emf emtex epslatex 
epson_180dpi epson_60dpi epson_lx800 fig gif gnugraph gpic hp2623A hp2648 
hp500c hpdj hpgl hpljii hppj imagen jpeg latex lua mf mif mp nec_cp6 okidata 
pbm pcl5 pdf pdfcairo png pngcairo postscript pslatex pstex pstricks qms regis 
rgip starc svg tandy_60dpi tek40xx tek410x texdraw tgif tikz tkcanvas tpic 
uniplex unknown vttek wxt x11 xlib xterm

Ben



reply via email to

[Prev in Thread] Current Thread [Next in Thread]