Язык, который поддерживает сопрограммы сериализации

Это должно работать прекрасно, если вы

  • знаете ip вашего ноутбука
  • ip доступен для других (в вашей команде), то есть вы находитесь в одной сети или ваш компьютер имеет глобально действующий ip
  • нет брандмауэра порт 8000
  • CORS включен что-то вроде
#' @filter cors
cors <- function(req, res) {
   res$setHeader("Access-Control-Allow-Origin", "*")
   plumber::forward()
}

отвечает за производственную среду, но хорошо работает только для демонстрации / тестирования.

7
задан Community 23 May 2017 в 12:07
поделиться

4 ответа

Забавно, что вы спросите об этом сегодня, а потом я прочитал о продолжениях в моно . Похоже, что вы ищете. В частности, есть ссылка на Microthreading в Second Life , включая это описание:

SecondLife требовал, чтобы код был приостановлено в любой момент времени и чтобы все его состояние было сериализуемым в формат, подходящий для хранения в базу данных. Сериализованное состояние может быть восстановлен в другом момент времени или другой компьютер (например, во время движения от узла к узлу).

Если я вас неправильно понял, это может быть хорошим способом изучения.

8
ответ дан 6 December 2019 в 14:09
поделиться

You might want to take a look at Windows Workflow:

http://msdn.microsoft.com/en-us/netframework/aa663328.aspx

It is meant to be used in a manner like this, with the ability to persist a workflow if there is inactivity on it, as well as the ability to restart it.

While technically it isn't language support, it should get the job done.

1
ответ дан 6 December 2019 в 14:09
поделиться

Вы ищете продолжения ?

На любом языке, поддерживающем замыкания, можно писать программы в стиле передачи продолжения и вручную реализовывать call / cc.

call / cc является call-with-current-continue .

1
ответ дан 6 December 2019 в 14:09
поделиться

Я обнаружил, что лучшая поддержка для сериализации сопрограмм оказывается в Lua через библиотеку Pluto .

Я использую Mono 2.6 , но не могу заставить работать сопрограммы. Затем я некоторое время экспериментировал с Python / IronPython, но поддержки сериализации не хватало.

Теперь с Lua мне придется взаимодействовать через P / Invoke из .NET в Lua , что оказывается сложной задачей для работы как с Linux, так и с Windows, но в конечном итоге, если я ищу язык сценариев для поддержки игры, вероятно, лучше всего использовать то, что уже широко используется.

Обновление

В итоге я на время отказался от Lua. Я слишком увяз в вопросах интеграции. Я вернулся к Python.Я использую выражения вывода Python для своих сопрограмм и работаю над проблемой, что pickle не поддерживает генераторы .

В моем случае в состоянии программы не всегда есть активные сопрограммы, что означает, что иногда я могу выбрать состояние. В противном случае я сохраняю последнее состояние рассола и «историю воспроизведения» действий с тех пор. Тогда восстановление состояния - это просто распаковка последнего состояния и повторное воспроизведение любых действий.

5
ответ дан 6 December 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: