Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fatal Build Errors (scintilla 4.1.4) #8

Closed
LordNyriox opened this issue May 13, 2019 · 2 comments
Closed

Fatal Build Errors (scintilla 4.1.4) #8

LordNyriox opened this issue May 13, 2019 · 2 comments
Assignees
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@LordNyriox
Copy link
Owner

LordNyriox commented May 13, 2019

As of May 4, 2019 (notepad-plus-plus/notepad-plus-plus@37c4b89), building TLDatLexer against the current notepad-plus-plus master branch no longer works. This is presumably related to one or more changes brought by updating Scintilla to the 4.1.x branch, the most significant of which being that Scintilla 4.x uses features from C++17.

However, changing the AppVeyor build settings to MSVS 2017 does not fix the problem.

This issue will likely be a blocker for installing the plugin on any future notepad-plus-plus versions.

Correction: The existing plugin (built against Scintilla v3.5.6) still seems to work OK when run with the official release build of notepad-plus-plus v7.7.0. Identifying and fixing incompatibilities between TLDatLexer and Scintilla 4.1.4 is still top priority.

All Errors (x64)

C:\projects\tldatlexer\tldatlexer\stdafx.cpp(20):	warning	C4710: 'std::exception_ptr std::exception_ptr::_Current_exception(void) throw()': function not inlined
C:\projects\tldatlexer\tldatlexer\stdafx.cpp(20):	warning	C4710: 'std::exception_ptr std::current_exception(void) noexcept': function not inlined
C:\projects\tldatlexer\tldatlexer\lexer.h(53):		warning	C4820: 'TlDatLexer': '7' bytes padding added after data member 'TlDatLexer::doneOnce_'
C:\projects\tldatlexer\tldatlexer\plugin.cpp(42):	warning	C4365: 'argument': conversion from 'int' to 'WPARAM', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\plugin.cpp(42):	warning	C4365: 'initializing': conversion from 'LRESULT' to 'std::size_t', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\plugin.cpp(45):	warning	C4459: declaration of 'name' hides global declaration
C:\projects\tldatlexer\tldatlexer\plugin.cpp(46):	warning	C4365: 'argument': conversion from 'int' to 'WPARAM', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\plugin.cpp(114):	warning	C4244: 'initializing': conversion from 'sptr_t' to 'unsigned int', possible loss of data
C:\projects\tldatlexer\tldatlexer\plugin.cpp(114):	warning	C4365: 'initializing': conversion from 'sptr_t' to 'unsigned int', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\plugin.cpp(132):	warning	C4459: declaration of 'name' hides global declaration
C:\projects\tldatlexer\tldatlexer\plugin.cpp(134):	warning	C4365: 'argument': conversion from 'int' to 'std::size_t', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\plugin.cpp(141):	warning	C4365: 'argument': conversion from 'int' to 'std::size_t', signed/unsigned mismatch
C:\projects\tldatlexer\tldatlexer\lexer.h(53):		warning	C4820: 'TlDatLexer': '7' bytes padding added after data member 'TlDatLexer::doneOnce_'

C:\projects\tldatlexer\tldatlexer\lexer.h(24):		error	C2143: syntax error: missing ';' before '*'
C:\projects\tldatlexer\tldatlexer\lexer.h(24):		error	C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\projects\tldatlexer\tldatlexer\lexer.h(26):		error	C2516: 'ILexer': is not a legal base class
C:\projects\tldatlexer\tldatlexer\lexer.h(47):		error	C2061: syntax error: identifier 'IDocument'
C:\projects\tldatlexer\tldatlexer\lexer.h(48):		error	C2061: syntax error: identifier 'IDocument'
C:\projects\tldatlexer\tldatlexer\lexer.h(37):		error	C3668: 'TlDatLexer::Version': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(38):		error	C3668: 'TlDatLexer::Release': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(39):		error	C3668: 'TlDatLexer::PropertyNames': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(40):		error	C3668: 'TlDatLexer::PropertyType': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(41):		error	C3668: 'TlDatLexer::DescribeProperty': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(42):		error	C3668: 'TlDatLexer::PropertySet': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(43):		error	C3668: 'TlDatLexer::DescribeWordListSets': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(44):		error	C3668: 'TlDatLexer::WordListSet': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(45):		error	C3668: 'TlDatLexer::PrivateCall': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(47):		error	C3668: 'TlDatLexer::Lex': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(48):		error	C3668: 'TlDatLexer::Fold': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(33):		error	C2440: 'return': cannot convert from 'TlDatLexer *' to 'ILexer *'
C:\projects\tldatlexer\tldatlexer\lexer.h(37):		error	C2065: 'lvOriginal': undeclared identifier
C:\projects\tldatlexer\tldatlexer\plugin.cpp(146):	error	C2143: syntax error: missing ';' before '__cdecl'
C:\projects\tldatlexer\tldatlexer\plugin.cpp(146):	error	C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\projects\tldatlexer\tldatlexer\plugin.cpp(146):	error	C2373: 'LexerFactoryFunction': redefinition; different type modifiers
C:\projects\tldatlexer\tldatlexer\plugin.cpp(147):	error	C2440: 'return': cannot convert from 'ILexer *(__cdecl *)(void)' to 'int'
C:\projects\tldatlexer\tldatlexer\plugin.cpp(148):	error	C2617: 'GetLexerFactory': inconsistent return statement
C:\projects\tldatlexer\tldatlexer\lexer.h(24):		error	C2143: syntax error: missing ';' before '*'
C:\projects\tldatlexer\tldatlexer\lexer.h(24):		error	C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\projects\tldatlexer\tldatlexer\lexer.h(26):		error	C2516: 'ILexer': is not a legal base class
C:\projects\tldatlexer\tldatlexer\lexer.h(47):		error	C2061: syntax error: identifier 'IDocument'
C:\projects\tldatlexer\tldatlexer\lexer.h(48):		error	C2061: syntax error: identifier 'IDocument'
C:\projects\tldatlexer\tldatlexer\lexer.h(37):		error	C3668: 'TlDatLexer::Version': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(38):		error	C3668: 'TlDatLexer::Release': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(39):		error	C3668: 'TlDatLexer::PropertyNames': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(40):		error	C3668: 'TlDatLexer::PropertyType': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(41):		error	C3668: 'TlDatLexer::DescribeProperty': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(42):		error	C3668: 'TlDatLexer::PropertySet': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(43):		error	C3668: 'TlDatLexer::DescribeWordListSets': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(44):		error	C3668: 'TlDatLexer::WordListSet': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(45):		error	C3668: 'TlDatLexer::PrivateCall': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(47):		error	C3668: 'TlDatLexer::Lex': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(48):		error	C3668: 'TlDatLexer::Fold': method with override specifier 'override' did not override any base class methods
C:\projects\tldatlexer\tldatlexer\lexer.h(33):		error	C2440: 'return': cannot convert from 'TlDatLexer *' to 'ILexer *'
C:\projects\tldatlexer\tldatlexer\lexer.h(37):		error	C2065: 'lvOriginal': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(51):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(52):	error	C2065: 'val': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(53):	error	C2065: 'val': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(54):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(54):	error	C2065: 'val': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(59):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(63):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(64):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(67):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(70):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(71):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(74):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(77):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(78):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(81):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(87):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(91):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(95):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(97):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(97):	error	C2228: left of '.SafeGetCharAt' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(100):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(103):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(105):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(109):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(118):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(123):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(132):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(137):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(146):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(151):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(155):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(156):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(157):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(161):	error	C2061: syntax error: identifier 'LexAccessor'
C:\projects\tldatlexer\tldatlexer\lexer.cpp(166):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(169):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(169):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(174):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(176):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(179):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(179):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(180):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(180):	error	C2228: left of '.SetLineState' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(182):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(182):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(183):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(183):	error	C2228: left of '.SetLineState' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(188):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(190):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(192):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(192):	error	C2228: left of '.IndicatorFill' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(196):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(196):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(202):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(204):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(205):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(205):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(208):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(208):	error	C2228: left of '.IndicatorFill' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(211):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(212):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(212):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(216):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(216):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(219):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(219):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(222):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(222):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(224):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(224):	error	C2228: left of '.ColourTo' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(227):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(232):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(236):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(237):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(237):	error	C2228: left of '.IndicatorFill' must have class/struct/union
C:\projects\tldatlexer\tldatlexer\lexer.cpp(244):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(247):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(250):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(253):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(256):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(257):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(261):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(262):	error	C2065: 'doc': undeclared identifier
C:\projects\tldatlexer\tldatlexer\lexer.cpp(266):	error	C2065: 'doc': undeclared identifier

C:\projects\tldatlexer\tldatlexer\lexer.cpp(266): fatal error	C1003: error count exceeds 100; stopping compilation

	285 Warning(s)
	126 Error(s)

@LordNyriox LordNyriox added bug Something isn't working help wanted Extra attention is needed labels May 13, 2019
@LordNyriox LordNyriox self-assigned this May 13, 2019
@LordNyriox LordNyriox pinned this issue May 13, 2019
@LordNyriox
Copy link
Owner Author

@Jarcho: As the original author of TLDatLexer, is there any chance you can help me out with this?

You are far more familiar with NPP and Scintilla code than I am.

@Jarcho
Copy link
Collaborator

Jarcho commented May 14, 2019

So a couple things have changed between v3 and v4 of Scintilla.

  • Some types, such as ILexer and IDocument, have been put in the Scintilla namespace. They were global before.
  • The interface switched from using int as the position type to using the Sci_Position and Sci_UPosition typedefs (ptrdiff_t and size_t respectively).
  • ILexer is now ILexer4. Both it and the IDocument interface look a little different.

Most of the errors are because of the namespacing which is an easy fix. You'll then have to go through and fix all the position types. I'll have more time this weekend to see if there's anything else.

LordNyriox added a commit that referenced this issue May 25, 2019
Repository owner locked and limited conversation to collaborators May 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants