Added some notes about how to enable heap statistics. Reformated some of the related macro code to make it a bit more compact and hopefully clearer. (details)
remove calls to label() from planet program (details)
Fix the bug that C style enum cannot to use as an lvalue (details)
Allow explict conversion from cfa enum to int (while disallow implicit) (details)
Current enum has bug when use as a reference as in ?++. Change TranslateEnumRange to use succ and pred instead. Will look back into the reference problem (details)
change basic_ostream to ostream, first attempt of enumeration input (details)
remove unnecessary assignment when looping with a structure type (details)
fix enumeration input to use reference type (details)
inline enum relational and increment operators, comment out loop causing compiler segment fault (details)
update 'Too many recursive assertions' error message with possible cause (details)
Added some code near the end of main to improve some internal statistics (about a tenth of all allocations seem to be missing a deallocation). Also some clean-up of passes in main. (details)
One extra whitespace line removed. I do not believe that represented an important ordering point. (details)
Change (enum) range loop so that it works on any type that define succ() and upperBound() (details)
Visit the else_ children of loops. I don't know how things worked this long, but hopefully it will not matter going forward. (details)
Remove quasi_void for enums. The idea of quasi_void from Mike was to get around some resolution problem that enum pick function defines for Bounded over CfaEnum/TypedEnum. But it is not clear that how often this can happen, and cfa might change the cast function scheme in the future. (change cost comparison scheme) Deprecate quasi_void for now so that enum traits looks cleaner without the dummy type for opaque enums (details)
Not sure why we copy in the return values all the time, but we do. This prevents an unused error from appearing when the library is being compiled (shows up about 4 times right now). Switching some passes around might have also solved the problem, but I think we should be generating normalized code instead of mixing in the normalization and code generation. (details)
1. Add bound check to Serial function: now compiler generates the unchecked functions in ImplementEnumFunc, and enum.hfa implements the bound check on top. Todo: Wrapped the checked version into a trait; 2. countof is now works on any type that implement Countof(). Because Countof() is implemented in enum.hfa for all CfaEnum, we can call countof on { T | CfaEnum(T) } (details)
Remove automatic conversion from Enum type name to its len; change With() semantic for enum to avoid type ambiguity (not fully implemented) (details)
change assert to abort, second attempt to read enumerators (details)
change order of ungetc parameters to harmonize with C ungetc (details)
add enumeration planet program to test suite (details)
move planet test under directory enum_tests (details)
Commit
73d0e3f4e0ab67804cda0bdfa2660e3905620544
by j82liang
Current enum has bug when use as a reference as in ?++. Change TranslateEnumRange to use succ and pred instead. Will look back into the reference problem
Commit
7fe4adbb9b6817b4a0fb1a558d04538aec2b7754
by ajbeach
Added some code near the end of main to improve some internal statistics (about a tenth of all allocations seem to be missing a deallocation). Also some clean-up of passes in main.
Commit
236f13390c74aff36386095c9fc9fff394243822
by j82liang
Remove quasi_void for enums. The idea of quasi_void from Mike was to get around some resolution problem that enum pick function defines for Bounded over CfaEnum/TypedEnum. But it is not clear that how often this can happen, and cfa might change the cast function scheme in the future. (change cost comparison scheme) Deprecate quasi_void for now so that enum traits looks cleaner without the dummy type for opaque enums
Commit
3e135c895c889427f3db85749ee5eab83dd48070
by ajbeach
Not sure why we copy in the return values all the time, but we do. This prevents an unused error from appearing when the library is being compiled (shows up about 4 times right now). Switching some passes around might have also solved the problem, but I think we should be generating normalized code instead of mixing in the normalization and code generation.
Commit
0c327cee778443a440104253db33557cee4d2a92
by j82liang
1. Add bound check to Serial function: now compiler generates the unchecked functions in ImplementEnumFunc, and enum.hfa implements the bound check on top. Todo: Wrapped the checked version into a trait; 2. countof is now works on any type that implement Countof(). Because Countof() is implemented in enum.hfa for all CfaEnum, we can call countof on { T | CfaEnum(T) }