Hi, I'm trying to compile the JCL with FreePascal (the common, unix and vcl folders). Excluding the portability errors in the JCL, I found some issues that I think could be best solved by FPC (and benefit the porting of any other Delphi project also). I'm using FPC from SVN (updated daily).
Here is a little list:
- Some assembler does not compile. For example this function, in JclLogic.pas:
procedure SetBitBuffer(var Value; const Bit: Cardinal);
asm
BTS [Value], Bit
end;This unit can be compiled with FPC defining PUREPASCAL but with degraded performance in many functions.
- Interface implementation delegation requires an interface type (but Delphi accepts classes). For example, in JclSchedule.pas:
property DailyFreq: TDailyFreq read FDailyFreq implements
IJclScheduleDayFrequency;where TDailyFreq is a class (derived from TAggregatedObject).
- Classes implementing interfaces must implement all the interface methods (but Delphi compiles the code happily without them). See, for example, the class TSchedule in JclSchedule.pas. Adding virtual abstract declarations for the missing methods to the class solves the problem in FPC in a Delphi compatible way. Perhaps FPC should do it automatically in those cases?
- THashedStringList does not exist. I already posted a bug implementing this class, but it didn't reach SVN yet.
Comments are welcome. Please let me know if you think any of them should be solved on the JCL side.
Thanks,
Mario
