Opened 14 years ago

Closed 10 years ago

#1301 closed task (wontfix)

Redesign: Add extra phase on top of SCode

Reported by: Martin Sjölund Owned by: Martin Sjölund
Priority: low Milestone: Compiler Redesign
Component: Preprocessor Version:
Keywords: Cc: Martin Sjölund

Description

Add another phase to the compiler to speed up instantiation. Today, we perform the same extends many times and it involves a lot of lookup.

This phase should transform Absyn to SCode, where SCode no longer contains {{import}}, {{extends}}, {{encapsulated}} and makes crefs to {{constant}} elements fully qualified. Then remove InstExtends.

The interactive API should use this form when appropriate (for example: querying parameters of a class will not resolve inherited parameters).

Additional requirement: Make this a module with little to no external dependencies (apart from parser, ClassLoader and Absyn, basically), so that we can create an ompp (OpenModelica PreProcessor) tool that unparses this SCode to valid Modelica code (that any Modelica tool can parse). This tool could be used to verify that the preprocessing doesn't break for example Modelica.Media (by verifying in Dymola), or used by another tool to see if they can make Modelica.Media work without doing all this preprocessing.

Change History (1)

comment:1 by Martin Sjölund, 10 years ago

Cc: sjoelund.se, → sjoelund.se
Resolution: wontfix
Status: newclosed

We have some other stuff in the works at the moment

Note: See TracTickets for help on using tickets.