W SWPL REPL, jaki jest sposób na zachowanie stanu REPL?Swift REPL: jak zapisać/załadować stan REPL? (a.k.a. zawieszenie/wznowienie, migawka, klon)
Na przykład, chcę zrobić kilka prac w REPL, a następnie zapisać go, więc mogę go załadować później.
Koncepcja ta może być nazwany zapisu/odczytu, zawiesić/wznowić, snapshot/klon, serializowania/deserializowania itd
Każde rozwiązanie, które dostaje mnie do tego pomoże, nawet jeśli jest to hack w następujący sposób:
Nagraj wszystkie wiersze historii, a następnie powtórz je w innym REPL.
Serializuj wszystkie obiekty, a następnie deserializuj je w innym REPL.
Wykonaj migawkę RAM lub VM, a następnie sklonuj ją do innej maszyny.
Zapisz główny obraz stanu globalnego, a następnie wykonaj go później.
Moim celem jest zapisanie pracy REPL na jednej maszynie, a następnie załadowanie jej na inną maszynę.
Potrzebuję tylko stanu końcowego; Nie potrzebuję stosów, historii ani uchwytów itp.
Plac zabaw XCode ma podobną funkcję, używając opcji "Zapisz", która udostępnia treść.
Wątpię, czy Swift ma jakiekolwiek poparcie dla tego (i takie ogólnie * wymaga * potrzeby wsparcia). Jeśli REPL został uruchomiony w VM z obsługą snu, ale niestety takie "obrazy" sprawiają, że SmallTalk jest jedyny w swoim rodzaju. Nie jestem również świadomy narzędzi migawek opartych na procesach, ale nie patrzyłem. – user2864740
dlaczego nie korzystać z placu zabaw? – huocp
@huocp Ponieważ SWIF REPL jest świetny - z mojego doświadczenia wynika, że jest szybszy i lżejszy niż plac zabaw. – joelparkerhenderson