modelica / fmi-standard

Specification of the Functional Mock-up Interface (FMI)

Home Page:https://fmi-standard.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clarification about language and compiler attributes in the buildDescription

chrbertsch opened this issue · comments

(moved from https://github.com/modelica/fmi-design/issues/31; issue originally created by @masoud-najafi)

There are a few points that is not clear such as "language" and "compiler" attributes. All we have in the standard is:
Language: Language of the source files (e.g. C99, C++11)
Compiler: The compiler to compile the sources (e.g. VisualC, gcc, clang++)

These attributes are not "required" and no default or fallback values are defined for them. Also, no predefined values are provided for them. As a result, any exporter can use any string to define the language and compiler values. This is troublesome for the import and compile the source code automatically. Shouldn't we define some standard values for these attributes and leave the gate open for future values? such as "clang", "C89", "C99", "C++", "Fortran", for language and "tcc", "sdk61_x64", "vc16_pro_x64", "vc9_pro_x64", “gcc”, etc. for the compiler.
Where can I find more information about them, any other related ticket/discussion?

This problem was already reported in #1305 and #1676, but IMHO there's still no satisfying solution.

@masoud-najafi , @PTaeuberDS and all:

Are there any concrete proposals what to fix and clarify? Please start a PR!

Discussion:

Patrick: we could create a list of Compiler names on a separate Webpage
Andreas: This is not standardized.
Pierre: We could place stuff in the IG. But which problem do we want to solve?
Andreas: Ideally this is machine readable and you could compile the code automatically.
Pierre: in order that this works, the exporter has to test it. Why then not ship the binaries. All this makes sense, if you do not have the compiler available.
Andreas: you might not know the platform
Pierre: We should stick to language tags, not compiler tags.
Andreas: what we face: you get an FMU, you run compilers blindly, use certain failure pattern to fix issues. If we had a language tag, we could simplify this.
Pierre: often implementation are not portable.
Andreas: Agreement: this is not in general solvable, but we can help third parties in many cases.
Pierre: Let's do this in the IG, and include a hint in the FMI 3.0.1 RC2