bugGNU Octave - Bugs: bug #53123, build errors...

 
 

bug #53123: build errors "'terminal_reader' in namespace 'octave' does not name a type"

Submitter:  Philip Nienhuis <philipnienhuis>
Submitted:  Sun 11 Feb 2018 09:15:07 PM UTC
   
 
Category:  Configuration and Build System Severity:  4 - Important
Priority:  5 - Normal Item Group:  Regression
Status:  Fixed Assigned to:  None
Originator Name:  Philip Nienhuis Open/Closed:  * Closed
Release:  * dev Operating System:  * Other
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 12 Feb 2018 05:30:33 PM UTC, comment #6: 
Mike Miller <mtmiller>
Group Member
Mon 12 Feb 2018 05:29:42 PM UTC, comment #5: 

Thanks for checking.  Just for the record, how are you searching?

John W. Eaton <jwe>
Group administrator
Mon 12 Feb 2018 05:14:57 PM UTC, comment #4: 

And this looks fixed to me now.

I just searched pretty widely and no one outside of octave itself is using any of the reader classes, so I agree it is safe to make them disappear rather than deprecating them.

Mike Miller <mtmiller>
Group Member
Mon 12 Feb 2018 05:10:14 PM UTC, comment #3: 

All of the instances of this error in the wild I found are from "#include <octave/parse.h>" for the eval functions, no one is including input.h directly. The path is parse.h -> lex.h -> input.h.

Mike Miller <mtmiller>
Group Member
Mon 12 Feb 2018 03:22:42 PM UTC, comment #2: 

I'd prefer to keep those classes hidden, so unless there is some objection, I propose we just remove the typedefs:

http://hg.savannah.gnu.org/hgweb/octave/rev/d85470c4f09c

This also removes the typedef for the octave_input_reader -> octave::input_reader class.  If necessary, we can restore that one.  But I suspect no one is actually using any of these classes directly anyway.  If they are, then they are going pretty deep into Octave internals.

John W. Eaton <jwe>
Group administrator
Mon 12 Feb 2018 07:16:07 AM UTC, comment #1: 

Ran into the same error, confirmed. Not dependent on cross-building or mxe-octave.

The header file lost some classes that are now deemed internal, but still has deprecation aliases declared for these types.


$ echo '#include <parse.h>' > foo.cc
$ mkoctfile foo.cc
In file included from /opt/gnu/octave/include/octave-4.3.0+/octave/lex.h:35:0,
                 from /opt/gnu/octave/include/octave-4.3.0+/octave/parse.h:36,
                 from foo.cc:1:
/opt/gnu/octave/include/octave-4.3.0+/octave/input.h:219:17: error: ‘terminal_reader’ in namespace ‘octave’ does not name a type
 typedef octave::terminal_reader octave_terminal_reader;
                 ^~~~~~~~~~~~~~~
/opt/gnu/octave/include/octave-4.3.0+/octave/input.h:222:17: error: ‘file_reader’ in namespace ‘octave’ does not name a type
 typedef octave::file_reader octave_file_reader;
                 ^~~~~~~~~~~
/opt/gnu/octave/include/octave-4.3.0+/octave/input.h:225:17: error: ‘eval_string_reader’ in namespace ‘octave’ does not name a type
 typedef octave::eval_string_reader octave_eval_string_reader;
                 ^~~~~~~~~~~~~~~~~~


Mike Miller <mtmiller>
Group Member
Sun 11 Feb 2018 09:15:07 PM UTC, original submission:  

After cset:

f079a0856321  move internal input reader classes out of header file

several OF-packages can be cross-built anymore, yielding compile errors along the lines of:

:
In file included from /home/philip/devel/octdev/mxe/mxe_w64_ogl32_20171021/usr/x86_64-w64-mingw32/include/octave-4.3.0+/octave/../octave/lex.h:35:0,
                 from /home/philip/devel/octdev/mxe/mxe_w64_ogl32_20171021/usr/x86_64-w64-mingw32/include/octave-4.3.0+/octave/../octave/parse.h:36,
                 from __bfgsmin.cc:24:
/home/philip/devel/octdev/mxe/mxe_w64_ogl32_20171021/usr/x86_64-w64-mingw32/include/octave-4.3.0+/octave/../octave/input.h:219:17: error: 'terminal_reader' in namespace 'octave' does not name a type
 typedef octave::terminal_reader octave_terminal_reader;
                 ^~~~~~~~~~~~~~~
/home/philip/devel/octdev/mxe/mxe_w64_ogl32_20171021/usr/x86_64-w64-mingw32/include/octave-4.3.0+/octave/../octave/input.h:222:17: error: 'file_reader' in namespace 'octave' does not name a type
 typedef octave::file_reader octave_file_reader;
                 ^~~~~~~~~~~
/home/philip/devel/octdev/mxe/mxe_w64_ogl32_20171021/usr/x86_64-w64-mingw32/include/octave-4.3.0+/octave/../octave/input.h:225:17: error: 'eval_string_reader' in namespace 'octave' does not name a type
 typedef octave::eval_string_reader octave_eval_string_reader;
                 ^~~~~~~~~~~~~~~~~~


Philip Nienhuis <philipnienhuis>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by philipnienhuis (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-02-12 jwe StatusConfirmed Fixed
        Open/ClosedOpen Closed
    2018-02-12 mtmiller Severity3 - Normal 4 - Important
        StatusNone Confirmed
        SummaryMXE / (octave-forge) build errors &quot;'terminal_reader' in namespace 'octave' does not name a type&quot; build errors "'terminal_reader' in namespace 'octave' does not name a type"

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code