-
Notifications
You must be signed in to change notification settings - Fork 22
Swift T REPL
Basheer Subei edited this page Jul 29, 2015
·
77 revisions
See this issue for current progress on the REPL feature.
The goal is to incorporate interactive features into the Swift/T language and environment, so users could interactively run Swift code and monitor its progress, making it easier to learn Swift and prototype Swift code.
- Monitoring commands
- overview status including active servers and workers.
- status of running tasks (like
ps) - view all data members and inspect them while tasks are running in the background.
- To run and evaluate multiple Swift/T code snippets.
- STC
-cflag to omit generating boilerplate. - Have the
-cSTC flag generate unique names (functions and globals) for tic code, maybe using prefixes. When runningevaling-O0tic code with multiple workers, the other worker ranks crash and say invalid command name for theSOFT,HARDproc names. I'm assuming that's because they were redefined usinguplevel #0. - REPL should load user-input tic file (only proc definitions and global var assignments), then spawn tasks (max priority) for all other workers to do the same. Then (barrier or not), it should execute any calls in main of the tic.
-
lscommand to view state of all global vars. Use the global_map (Tcl dict) that gets created whenever create_globals is called (Tim's new commits). Also needs below task. - only create TDs once (on worker 0), then create globals_map on all workers (put tasks), and set the variable references on all workers (put tasks).
- double check the multicreate permanent thing.
- make STC use multicreate_repl instead of declare_globals when
-cis passed. -
the local references to the global TDs are being lost at some point along the way -
stdout doesn't work when multiple turbine workers are used (even on worker 0). - double-check the put task priority thing (make sure the "put to all workers" gives max priority)
- more formal definition of use cases. Look at things like IPython and how user interacts.