parrot/parrot — pull request #704 by gerdr (2012-01-23 14:02:00+00:00)
Title: cleanup and auto::sizes refactor

This branch fixes issues #232, #236, #642 as well as #631 as it removes any occurence of C99 `stdint.h` types.

Its main purpose is a refactor of `auto::sizes` so `INTVAL` defaults to an integer type of at least pointer-size instead of `long`, which was an issue on Win64 where

sizeof (int) == sizeof (long) < sizeof (void *) == sizeof (long long)

A smaller `INTVAL` can be forced via `--intval`, but `Configure.pl` will still warn as it currently does.

The branch also fixes `ptrcast_t`, which was an alias for `size_t` but is now more appropriately a Parrot-specific equivalent of `uintptr_t`. It was used in exactly two places to perform byte-sized arithmetics on pointers, which, however, shouldn't have cast to integer anyway but used `char *` arithmetics instead.

As of now, the configuration value is only used in `auto::memalign` and the corresponding C typedef in `src/gc/system.c` as a replacement for an `#ifdef` use of `uintXX_t`.

Before merge to `master`, `t/steps/auto/sizes-01.t` has to be adjusted - knock yourself out if you're interested.

After merge, the following branches will be obsolete:

* win64-workaround
* memalign-fix

**Needs testing on any platform you can get at.**