index a07b3b5a196e2a6711a7b8162612eec4f91a3170..3656a8651495460e27a9c1633f553fed5bacb96f 100644 (file)
--- a/notes
+++ b/notes
-- Не полная реализация модуля Strings
-- Не полная реализация модуля Files
+- Jasmin создаёт ошибку в float константах, надо как-то порешать.
+- Нужно делать проверку границ при касте индекса массива с типом HUGEINT
+
+- Нужно передавать информацию о файле и строках в кодогенератор.
+- Нет процедур привязанных к типм (10.2)
+- Не полная реализация модуля Files
+ * Нет процедур ReadNum WriteReal WriteLReal WriteNum WriteSet WriteBool
+
+- Разршить отсутсвие RETURN в функциях без BEGIN
+ С вкорячиванием трапа, естественно.
+- Нужно передлать кодогенератор что бы складировать код в структурах а не напрямую срать в файлы
+
+- Не полная реализация модуля Strings
+ * Не реализованы процедуры Insert Append Delete Replace Extract Pos
- Сделать проверку повторов в CASE.
- Сделать нормальную проверку наличия RETURN.
-- Нет процедур привязанных к типм
-
-- Нужно просмотреть Дубовые требования:
- 2.3 Illegal Operations
- 3. Type tests and type guards with NIL pointers.
- 5. Accessing a set element outside the range 0 .. MAX (SET).
- 6. Applying SHORT (...) to an argument with value not in the range of the result type.
- 8. Overflows.
- 2.4 WITH and guarded variables ???
- 2.5 String Comparison ?
- 2.7 String and Character Compatibility
- 3.5 Interfacing to External Libraries
- 3.6 Underscores in Identifiers
- 3.7 In-line Exponentiation
- 5.13 Read only VAR Parameters
- 1.2.7 Module Math and MathL
+
+- Нужны средства создания биндингов. (oakwood 3.5)
+- Любая ошибка фатальна
- Примеры -5 DIV 3 и -5 MOD 3 работают не так как в (8.2.2)
Нужен другой тип округления?
-- Нет счёта строк / столбцов (хрен с ними - у меня есть утилита tail!)
-- Нет модуля SYSTEM (на жабе он особо и не нужен)
-- Нужны средства создания биндингов. На данный момент реализуемо как пустые модули.
-- Любая ошибка фатальна
+- Неплохо бы иметь оператор ** (oakwood 3.7)
+- Неплохо бы иметь параметры только для чтения (oakwood 5.13)
+- Надо что-то делать с ситуацией описанной в (okawood 2.4)
+
+- Запретить проверку типа и приведене типа если указатель имеет значение NIL (oakwood 2.3.3)
+- Запретить доступ к битам SET которые не входят в пределы 0..MAX(SET) (oakwood 2.3.5)
+- Запретить каст через SHORT если значение не в пределах результата (в рантайме чтоли?) (oakwood 2.3.6)
+- Нет проверки переполнений (oakwood 2.3.8)
- Нет проверок переполнения в компилтайме.
Возможно можно заюзать это:
https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html
+- Не полная реализация модуля SYSTEM
+ * Процедуры GETREG PUTREG впринципе вписываются в jvm
+ и могут быть полезны при реализции рефлекции
+ * Остальное не имеет смысла в jvm
- JVM: Не достаточно средств для реализации рефлексии на уровне локальных процедур.
Как минимум нужно каждой функции добавлять фрейм к параметрам (динамическая связь?)