No, I think it is simply the versioning from synedit itself. Lazarus uses synedit as the main editor so editor improvements over time cause synedit mutations.
"TRangeState" to "Pointer"I dont know what source causes that, but search through SynEdits own sources.
Are the failing sources in vclua, or in SynEdit?
-----------
Some of those errors remind me of things that are 64 or 32 bit only errors.Quote"TRangeState" to "Pointer"I dont know what source causes that, but search through SynEdits own sources.
You may need to typecast via PtrInt or PtrUInt
Pointer(PtrInt(rangestate))
It would be good to get them on the bugtracker.
I just did a build of Lazarus 1.6.4 (entire IDE, incl SynEdit) on 64 bit with fpc 3.0.2.
And the build succeeded.
So I need the exact settings (compile options), to compile SynEdit package, that will trigger this error.
1.6.5 at the moment is near identical to 1.6.4.
I guess 3.0.3 and 3.0.2 have little diff either.
Otherwise it would be desirable to know if it happens with 3.0.2 too (since it could be an fpc issue)
If I cannot reproduce on 1.6.4 / 3.0.2 then I will need to know, if you can.
--------------------
Those errors happen from time to time, because when committing new code it is usually tested with one set of compiler options and for one of 32/64 bit only.
syneditmarks.pp(1048,35) Error: Illegal type conversion: "TSynEditMarkChangeReasons" to "LongInt"
I am compiling the vclua project which uses some of the TSynEdit/Highlighter files, using Lazarus 1.6.5 and FPC 3.0.3.
These are the error messages from versions 0.5
vclua 0.5 - 32bit:failure, 64bit:failure
error message
syneditmarks.pp(1048,35) Error: Illegal type conversion: "TSynEditMarkChangeReasons" to "LongInt"
offending code
procedure TSynEditMarkChangedHandlerList.Add(AHandler: TSynEditMarkChangeEvent; Changes: TSynEditMarkChangeReasons); begin AddBitFilter(TMethod(AHandler), LongInt(Changes)); end;
what about:Quote
syneditmarks.pp(1048,35) Error: Illegal type conversion: "TSynEditMarkChangeReasons" to "LongInt"
That is part of Lazarus.
But as I said, it did compile for me (on both 32 and 64 bit). That is unless the unit is not compiled when building the IDE.
Are you compiling with the current table builds i.e 1.6.2/300/302 or 1.6.4/300/302?
Did you compile it with another projects or the vclua project itself? Perhaps it could be down to some projects settings in vclua which is a dll/so.
Are you compiling with the current table builds i.e 1.6.2/300/302 or 1.6.4/300/302?
Did you compile it with another projects or the vclua project itself? Perhaps it could be down to some projects settings in vclua which is a dll/so.
I did a full IDE build. Afaik that builds the entire package.
Build with tagged versions 3.0.2, and 1.6.4 (Actually, build with the official 1.6.4 win 64 bit release binaries / the fpc included is build from svn, not taken from the fpc release bin, but that is the case for all past lazarus releases.)
I just compiled a new empty project, to which I added the unit. no problems (on 64 bit). And the unit definitely got compiled, if I put an error in there, then it fails, if I remove it again, then it compiles.
I only tested windows. and intel. Not sure about other targets.
It looks as if for some reason your fpc does not think of LongInt as 32 bit signed integer.
Or some setting affects, the sizeof(set)
Until I get to look at the project, check your fpc config for
http://www.freepascal.org/docs-html/3.0.0/user/userap1.html
-CPPACKSET=<y> <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 and 8
-CPPACKENUM=<y> <y> enum packing: 0, 1, 2 and 4 or DEFAULT or NORMAL
Also check in the project options "Additions and Overrides", the "Configure Build Lazarus" Dialog (option menu), and of course the SynEdit Package options (or ensure the latter are not changed from svn).
Not tested, but I guess SynEdit will fail with those.
I did just build the 6.1 on win 64bit (1.6.4 / 3.0.2) (I did not apply the patch, but that should not have an effect on SynEdit)
There is a warning about the search path. Apparently the project add the path of SynEdit. It should use the package instead.
But that does not seem to be the issue.
(Well actually it could be, it can lead to stale ppu files, make sure you check in your apps output folder for any synedit related ppu, and delete them)
I had to comment the 2 lines in HL-Lua. (it seems the ptruint trick will work here)
I did not get any error in syneditmarks.
-------------
try in an empty project (without the lua code) to use the syneditmarks, and writeln the sizeof TSynEditMarkChangeReasons
It should be 4.
label1.Caption := IntToStr(sizeof(TSynEditMarkChangeReasons));
b]error message[/b]
syneditmarks.pp(1048,35) Error: Illegal type conversion: "TSynEditMarkChangeReasons" to "LongInt"
offending code
procedure TSynEditMarkChangedHandlerList.Add(AHandler: TSynEditMarkChangeEvent; Changes: TSynEditMarkChangeReasons); begin AddBitFilter(TMethod(AHandler), LongInt(Changes)); end;