You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(This time I want to be more constructive than the last days 8^)
When looking at the dargent layout specifications I noted that they are very specific for the layouted type and repeat much of the information from the type expression. Therefore I thought about integrating the layout specification into the type expressions, resulting in this proposal. For the details see the attached document. proposal-darg-synt.pdf
Advantages of the proposal are:
Simpler surface syntax, no redundancy for specifying the type structure in layout specs (such as for {f1:U32,f2:U32} layout record {f1:4B at 0B, f2:4B at 6B}, it now becomes {f1:U32 sized 4B at 0B, f2:U32 sized 4B at 6B})
No need for layout declarations and layout names.
No need for a predicate / test that a layout matches a type.
Layout polymorphism can be supported with the existing polymorphism mechanism using type variables.
More flexibility by supporting partial layout specifications.
Layout information can automatically be specified for other types than records, as it was planned but not yet implemented for the current approach.
More expressiveness than for the current approach (e.g., layout for unboxed abstract types, layout for type variables, empty layout for the unit type).
The proposal includes support for endianness specification, including mixed endianness.
I realize that the proposal means substantial modifications for Dargent, but I think it could be worth the effort and I offer support for implementing it (e.g., change parser, extend surface syntax, provide examples and test cases, ...).
The text was updated successfully, but these errors were encountered:
(This time I want to be more constructive than the last days 8^)
When looking at the dargent layout specifications I noted that they are very specific for the layouted type and repeat much of the information from the type expression. Therefore I thought about integrating the layout specification into the type expressions, resulting in this proposal. For the details see the attached document.
proposal-darg-synt.pdf
Advantages of the proposal are:
{f1:U32,f2:U32} layout record {f1:4B at 0B, f2:4B at 6B}
, it now becomes{f1:U32 sized 4B at 0B, f2:U32 sized 4B at 6B}
)I realize that the proposal means substantial modifications for Dargent, but I think it could be worth the effort and I offer support for implementing it (e.g., change parser, extend surface syntax, provide examples and test cases, ...).
The text was updated successfully, but these errors were encountered: