Pull to refresh

Comments 6

Признаюсь, я не в теме, но формулировка "… а нечто постоянное: например, другая переменная" вызывает некоторое недоумение из-за противоречия.
Исправил «постоянное» на «долгоживущее»
(имел в виду «persistent», тяжело сформулировать красиво)
Если можно, было бы неплохо где-то выкладывать исходники. Потому что, если хочется посмотреть самому как оно генерирует, воспроизводить C++ программу по тексту очень неудобно.
Выложил на tyomitch.net.ru/jsk.y.opts.html

С std::set так и не удалось помириться: если копирую (непустое) множество копи-конструктором, то впоследствии valgrind обнаруживает, что «Conditional jump or move depends on uninitialised value(s)»
А если заменить инициализацию на a.insert(b.begin(), b.end()); — тогда всё в ажуре.
Не понимаю, почему так, но переделал, чтоб работало.
кстати, вот еще для работы над ошибками

m=96000;
echo(«m=»,m,"\n");

дает

m=30464

В то время, как

n=32000;
f=n+n+n;
f1=n*3;
echo(«f=»,f,"\n");
echo(«f1=»,f1,"\n");

Дает
f=96000
f1=96000

Надо бы как-нибудь единообразно ограничить числа…

Эту фишку я и сам знаю :)
Я ограничил константы в п-коде 2 байтами, чтоб получались компактные и легкочитаемые дампы.
На следующем этапе, где п-код стал бы чисто-внутренним представлением, и на выходе был бы исполняемый код, — я бы убрал ограничение, оставив обычный int.

Есть ещё пара багов, которые нашёл и пока не пофиксил; бажный код мне выкладывать стыдно. Как только всё исправлю, обязательно выложу.
Sign up to leave a comment.

Articles