Angelo.Fumagalli@alcatel.it wrote:
we are going to port thousand and thousand of Dec Pascal modules to GPC in order to migrate software from VMS to Linux platform.
We know that here there are the maximum experts to ask for, so we would like to ask you wich is the better model to migrate Dec environment modules maintaining the structure in terms of files and references, without having to completely change the source code, without splitting the procedure declarations and moving them in the library implementation modules.
With EP modules, you can put interface and implementation parts into different files which may be more suitable in your case (while usually, I don't recommend it).
Have you some documentation which describes how to porting from Dec pascal to GPC that you could supply us?
Not AFAIK -- I haven't used this dialect.
A litte DEC Pascal environment example:
- environmet file me.pas
MODULE ME; procedure p1; extern; procedure p2; extern; ....... procedure pn; extern;
END.
- library module m1.pas .. mn.pas NOTE:: typically all library modules which implement global procedures defined in the environment file me.pas are in the following format:
[INHERIT('me')] MODULE m1; [global] procedure p1; begin .... end; END.
- Program module p.pas:
[INHERIT('me')] PROGRAM P; begin p1; p2; ... pn; END.
Modules migration to GPC (is this one the only possible migration?):
- library modules m1.pas .. mn.pas
module m1 interface; export m1 = all; procedure p1; forward; end. module m1 implementation; procedure p1; begin ... end; end.
The `forward;' is superfluous (actually invalid according to EP; currently GPC allows it; I'll have to check if some other dialect requires it, otherwise I think we'll forbid it).
Simplified form of modules (though this might not help you, if you want interface and implementation in separate files):
module m1; export m1 = all; procedure p1; end;
procedure p1; begin
end;
end.
UCSD/BP style unit:
unit m1;
interface
procedure p1;
implementation
procedure p1; begin
end;
end.
Otherwise, it's possible to have the same DEC Pascal file/module structure? I mean only one interface module (me.pas) which is imported/used in all library and Program modules?
You mean a single interface for several modules (like C headers)? This isn't supported by either modules or units.
PS: Please no HTML mails!
Frank