Сохранение образа программы в guile - PullRequest
5 голосов
/ 01 декабря 2010

Я слышал, что большинство lisps поддерживает сохранение образа запущенной программы в файл.Guile поддерживает это?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Я думаю, что взаимодействие с другими языками довольно неотъемлемо от того, что такое Guile, и поэтому в образе интерпретатора много состояний, которые непрозрачны для самого Guile.Я лучше знаю Guile, работая с ним как с интерпретатором схем, встроенным в gEDA, так что вы можете себе представить, что нужно сохранить не только все CONS, но и все окна X, которые может открыть gschem?Это просто невозможно сделать надежно изнутри Guile.(И я не уверен, что было бы неплохо реализовать функцию сохранения изображения в файл даже в «ограниченных» случаях.)

Тем не менее, в конечном итоге вы можете сохранить состояние программы, но посколькуграницы программы настолько пористы, что с файловыми дескрипторами и картами памяти, просачивающимися из каждой поры, вы вскоре понимаете, что вам нужно сохранить все состояние компьютера.Это сделано, однако, в виде «спящего» режима энергосбережения!Я также понимаю, что это не то, что вы хотите здесь.

0 голосов
/ 01 декабря 2010

SBCL , реализация Common Lisp, может сделать это. (См. Также краткое руководство по SBCL ). Если вы заинтересованы в изучении других динамических языков, которые могут сохранять и восстанавливать состояние системы (включая продолжения, дескрипторы открытых файлов и т. Д.), Взгляните на Squeak .

...