Fused TypeData::Enum and TypeData::Aggregate, an enumeration is a kind of aggregate after all. There will always be some unused fields in Aggregate_t (but less in TypeData overall) but the code is almost always simpler. (details)
update and add ISO C citations and update clang citation (details)
Small improvement in the Pass template implementation. Thierry and I discussed this years ago but at the time we were not using a high enough C++ standard. (details)
more work on Figure 2.1 and surrounding text (details)
finish current proofreading of background chapter (details)
comment out asserts that fail when malloc(0) returns non-null (details)
formatting, change free null statistic to also count malloc(0), remove spurious union/struct in header, remove spurious CALIGN after attribute fix, update the PROLOG macro (details)
Clean-up in the Pass template around call_accept. Removed overloads that no longer contain unique behaviour. Redundent early exits have been removed. Updated the names and removed redundent checks following up the result* type update. New constructors for the delta helper type show how the data is actually used. The differs functions are unused (that value is stored in the result* types). (details)
Further Pass template clean-up, reimplementing the translation unit getter with the standard tools. The only time we needed a mutable TranslationUnit/TranslationGlobal it was implemented manually anyways. (details)
Reimplement the resolution of Enum instance type (details)
formatting, add missing CFA reallocarray routine (details)
Fixing some whitespace around a recent merge. That lead to some general clean-up, including removing tailing whitespace and removing some unneeded dependences. (details)
Fix succ(Enum) error and resolution ambiguity of enum with inheritance (details)
Change for C++20 compatability. We may not be upgrading soon but this is the only error that arised in my tests. (details)
Moved ast::BasicType::Kind to ast::BasicKind in its own hearder. This is more consistent with other utility enums (although we still use this as a enum class) and reduces what some files need to include. Also did a upgrade in a comment with MAX_INTEGER_TYPE, it is now part of the enum. (details)
Remove unnecessary implicit enum type conversion (details)
missing keyword coroutine to lstlang CFA (details)
change see macro to support capital See, update cquote macro with better above/below spacing, add package tabularx to allow @ in tabular definition when \lstMakeShortInline@ (details)
One missing BasicType::Kind -> BasicKind updates. (details)
formatting, add CFA versions of resize, realloc, and reallocarray (details)
Removed porting.md, although some of its information is still relavant, but that should be clear from the rest of the project at this point. (details)
Style update. Focused on indentation and trailing whitespace. (details)
The polyCost function was just a bit more complicated than it needed to be. (details)
Removed some overloads from the Pass template. I believe these were needed for g++ 5 and 6, which we supported at the time but we have since dropped support for them. (details)
move __attribute__((unused)) so it applies to variable (details)
Updated files in ResolvExpr to the new indentation style. It seems the remaining places have reason to break from the style. (details)
add combinations of pointer/reference for memset and memcpy (details)
update postfix function, storage management, and memory set/copy (details)
fix parsing bug in field declaring list with empty declarator (details)
Added a Python script for reviewing the timing of the test suite. (details)
Fix in code generation. forall clauses are now printed before return types on functions. This goes not change any generated C code but will matter for some debugging. (details)
move all lstnewenvironment macros to central location in uw-ethesis.tex (details)
more proofreading on introduction chapter (discussion of ADT) (details)
add parsing support for enum type in 'with' statement (details)
more proofreading on enumeration chapters (details)
1. Change return value of typed Enum in null context: they now return the position. Therefore, printf with enumeration value will no longer be supported. 2. sout now will return the enumeration value. So sout | enumValue will print what we expect. 3. Provide enum.hfa, which contains traits that related to enum. 4. Implement functions declare in enum.hfa for enum types, so enum type fulfill the traits. Known defeat: error if we use the enum traits on enum types. They work but c compiler gives an warning (details)
Updated hoistStruct so the nested mangled names are human readable. This does require more code to update instances, but I think it is reasonable in complexity and runtime. (details)
remove glossary macros, switch back to newterm marco from Newterm, update Planet example (details)
Commit
67467a31bf2574b870213fc394db73de3327ce27
by ajbeach
Fused TypeData::Enum and TypeData::Aggregate, an enumeration is a kind of aggregate after all. There will always be some unused fields in Aggregate_t (but less in TypeData overall) but the code is almost always simpler.
Commit
485cf598c26440b86d6b3defd0ade9dd41be93f3
by ajbeach
Small improvement in the Pass template implementation. Thierry and I discussed this years ago but at the time we were not using a high enough C++ standard.
Commit
feb999f1fbddbd9d84e6082c9f58dbf8d9c2eac4
by Peter Buhr
formatting, change free null statistic to also count malloc(0), remove spurious union/struct in header, remove spurious CALIGN after attribute fix, update the PROLOG macro
Commit
90320ac74138120be93a3a04ce96e84c8fff1256
by ajbeach
Clean-up in the Pass template around call_accept. Removed overloads that no longer contain unique behaviour. Redundent early exits have been removed. Updated the names and removed redundent checks following up the result* type update. New constructors for the delta helper type show how the data is actually used. The differs functions are unused (that value is stored in the result* types).
Commit
7a36848b8664869ba998e55885babcfcfda02354
by ajbeach
Further Pass template clean-up, reimplementing the translation unit getter with the standard tools. The only time we needed a mutable TranslationUnit/TranslationGlobal it was implemented manually anyways.
Commit
7aa209e7409d14817d320fcccfbd6cda3e67303d
by ajbeach
Fixing some whitespace around a recent merge. That lead to some general clean-up, including removing tailing whitespace and removing some unneeded dependences.
Commit
7a780ad23506507b6a1feccc46d18e12da183ceb
by ajbeach
Moved ast::BasicType::Kind to ast::BasicKind in its own hearder. This is more consistent with other utility enums (although we still use this as a enum class) and reduces what some files need to include. Also did a upgrade in a comment with MAX_INTEGER_TYPE, it is now part of the enum.
Commit
e69357205f99d43b90e557ae30d13dcaa85c82f2
by Peter Buhr
change see macro to support capital See, update cquote macro with better above/below spacing, add package tabularx to allow @ in tabular definition when \lstMakeShortInline@
Commit
d7c0ad5557ed955f86fe933f5a7b218a8fa114e4
by ajbeach
Removed some overloads from the Pass template. I believe these were needed for g++ 5 and 6, which we supported at the time but we have since dropped support for them.
Commit
a1fbad03570c1d89928bcf9962192664b479ae9b
by ajbeach
Fix in code generation. forall clauses are now printed before return types on functions. This goes not change any generated C code but will matter for some debugging.
Commit
eb7586e994c3710bc421ab2b1c131baf040bf98d
by j82liang
1. Change return value of typed Enum in null context: they now return the position. Therefore, printf with enumeration value will no longer be supported. 2. sout now will return the enumeration value. So sout | enumValue will print what we expect. 3. Provide enum.hfa, which contains traits that related to enum. 4. Implement functions declare in enum.hfa for enum types, so enum type fulfill the traits. Known defeat: error if we use the enum traits on enum types. They work but c compiler gives an warning
Commit
0153dbd08bd0a1c16472138e7f4bae3b41d06f6e
by ajbeach
Updated hoistStruct so the nested mangled names are human readable. This does require more code to update instances, but I think it is reasonable in complexity and runtime.