Паскалевский тест компилируется
May. 10th, 2019 12:40 amСегодня мы со
spamsink совершили рывок и совместными усилиями довели паскалевский тест до состояния компилируемости без ошибок. Список обнаруженных проблем:
1. Не поддерживается тип "set of char", и даже "set of 'a'..'z'".
2. Не работает тип "set of 1..100". Максимальный размер для множества целых чисел - "set of 0..47".
3. Не поддерживается массив файлов, то есть тип 'array of text'.
4. Примитивы succ() и pred() не работают с целыми аргументами.
5. Экспонента плавающих чисел ограничена диапазоном -18..18.
6. Процедура dispose() не принимает выражение в качестве аргумента, только переменную.
7. Примитивы pack() и unpack() не работают с массивами с отличающимися типами индексов, например "array [integer] of ..." и "array [char] of ...".
8. Тест целиком не помещается в таблицы компилятора, пришлось разбить его на три части.
1. Не поддерживается тип "set of char", и даже "set of 'a'..'z'".
2. Не работает тип "set of 1..100". Максимальный размер для множества целых чисел - "set of 0..47".
3. Не поддерживается массив файлов, то есть тип 'array of text'.
4. Примитивы succ() и pred() не работают с целыми аргументами.
5. Экспонента плавающих чисел ограничена диапазоном -18..18.
6. Процедура dispose() не принимает выражение в качестве аргумента, только переменную.
7. Примитивы pack() и unpack() не работают с массивами с отличающимися типами индексов, например "array [integer] of ..." и "array [char] of ...".
8. Тест целиком не помещается в таблицы компилятора, пришлось разбить его на три части.
no subject
Date: 2019-05-11 12:03 am (UTC)500 литералов - это не общее количество, а размер группы, в которой совпадающие объединяются. Как только набирается 500, они выталкиваются в файл и начинается формирование новой группы; из-за этого между группами могут быть повторения. Когда я увеличил размер группы (MAXLIT), то рекомпиляция компилятора перестала совпадать, так что пока для удобства оставил как есть.