From 889501071aeae561b026fc298e0442d2ef4e433f Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 9 Oct 2011 21:45:51 -0700 Subject: Ported to Cygwin. TODO: there should be some type safety with the new wli macro so that if it is forgotten, there will be a diagnostic. * configure (lit_align): New configuration variable and configuration test. Generates LIT_ALIGN in config.h. Fixed the integer-holds-pointer test for the different output from the nm program on Cygwin. The arrays become common symbols marked C which do not show an offset attribute, only size: one less column. * filter.c (to_html_table, from_html_table): wrap wide string literals with the wli macro. This must be done from now on for all literals and initializes of arrays that are going to be directly converted to type tagged val-s. * lib.h (wli): New macro. (auto_str, static_str, litptr, lit_noex): Handle wide literals on platforms where they are aligned to only two bytes, such that we don't have two bits in the pointer. We can still add our 11 bit type tag, but then when recovering the pointer to the data, we have may have to fix up the pointer. * parser.l: Another portability issue here. Flex generates a scanner which has #include in the middle, after the source file's own #includes which can introduce macros. On Cygwin, there is some hygiene problem whereby our "noreturn" macro causes the header to generate bad syntax and fail to compile. Stupid Cygwin and even stupider flex! The workaround is to include at the top in the flex source. * stream.c (string_out_put_char): This is one more place where the string literal handling hack spreads. * txr.c (version): Wrap string in wli. --- ChangeLog | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 8ec1a1f9..53cca13c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,42 @@ +2011-10-09 Kaz Kylheku + + Ported to Cygwin. + + TODO: there should be some type safety with the new wli macro + so that if it is forgotten, there will be a diagnostic. + + * configure (lit_align): New configuration variable + and configuration test. Generates LIT_ALIGN in config.h. + Fixed the integer-holds-pointer test for the different output + from the nm program on Cygwin. The arrays become common symbols + marked C which do not show an offset attribute, only size: + one less column. + + * filter.c (to_html_table, from_html_table): wrap wide string + literals with the wli macro. This must be done from now on for + all literals and initializes of arrays that are going to be + directly converted to type tagged val-s. + + * lib.h (wli): New macro. + (auto_str, static_str, litptr, lit_noex): Handle wide literals on + platforms where they are aligned to only two bytes, such that we don't + have two bits in the pointer. We can still add our 11 bit type tag, but + then when recovering the pointer to the data, we have may have + to fix up the pointer. + + * parser.l: Another portability issue here. Flex generates a scanner + which has #include in the middle, after the source file's + own #includes which can introduce macros. On Cygwin, there is some + hygiene problem whereby our "noreturn" macro causes the + header to generate bad syntax and fail to compile. Stupid Cygwin + and even stupider flex! The workaround is to include + at the top in the flex source. + + * stream.c (string_out_put_char): This is one more place where + the string literal handling hack spreads. + + * txr.c (version): Wrap string in wli. + 2011-10-09 Kaz Kylheku * dep.mk: Regenerated. Too easy to neglect this file. -- cgit v1.2.3