GassaFM / interpr

Toy language to learn parallel computing
MIT License
5 stars 4 forks source link

Ошибка в pr, собранном с dmd v2.107.1 #44

Open i-v5 opened 4 months ago

i-v5 commented 4 months ago

При запуске следующего кода на pr, собранном с dmd v2.107.1

function main (id, pr, n, a):
    for i := 0 until 200:
        send (0, 0)

на произвольном корректном вводе, например,

1
1

возникает ошибка

core.exception.OutOfMemoryError@src/core/lifetime.d(126): Memory allocation failed
----------------

При запуске этого же кода c тем же вводом на pr, собранном c dmd v2.106.1, программа завершается без ошибок.

GassaFM commented 4 months ago

Видимо, это баг компилятора D (регрессия), начиная с версии 2.107.0. Отправил репорт туда: https://issues.dlang.org/show_bug.cgi?id=24440

GassaFM commented 4 months ago

Возможное решение, чтобы interpr работал -- использовать 2.106.1 или другой компилятор (GDC, LDC).

GassaFM commented 4 months ago

Предлагаю попробовать с https://github.com/GassaFM/interpr/commit/b959bb78709345d001a87756532ba8de1c061944.

GassaFM commented 4 months ago

Релиз с быстрым фиксом: https://github.com/GassaFM/interpr/releases/tag/0.7