-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement per-session environments #14
Comments
These three issues, #8 #9 and #14, are really three sides of the same problem so I will write once and copy and then we will see where the discussion goes.
An easier way might then be to use the existing shell but to reset where the shell's, and the processes it starts, http://www.geekherocomic.com/2008/11/12/real-programmers-dont-write-documentation/ This can also make the shell manager easier. The real question is then how we want to interface the "shell".
|
Hrm. This is an interesting approach. It would actually be quite nice to have the LFE shell become more of a usable tool for the management of LFE code (in both foreseen and unforeseen uses ...) |
With change ec27902 I've prepared things for saving env/state data. Since the data will be keyed off of user+client host/ip, I think ETS should be fine, yes? In which case, we wouldn't need mnesia, and I can explore saving and reading the env data to ETS for each call so that |
Might be cool (or unnecessary) to keep track of the users last few calls in ETS too, to enable the + features in the REPL. Maybe that would just work out of the box... Could keep track client-side too/instead and enable an ⬆️ or M-p sort of feature. |
A good example of the client-side behaviour is the RethinkDB web interface. |
I brazenly copied (with credit) the JavaScript from Try Clojure ( However, in my few experiments so far, I'm guessing that we'll get I'm actually kind of excited about seeing this in action :-) Thanks for pushing us to do this, Eric! On Thu, Aug 20, 2015 at 11:56 AM, Eric Bailey [email protected]
|
Sweet! |
Whenever a new client IP address issues an eval request, a new session would be created and managed (see #8). Each session would get its own environment, allowing try.lfe.io users and *.lfe.io applications to define variables, functions, etc., and call those in their session.
Possible implementation: we could store a user's LFE environment in mnesia, key'ed off the md5 of host. Then store function and variable definitions, and perform lookups on a per-session basis.
This would mean that 100s or 1000s of users wouldn't have as big an impact on the system; we'd just need to set up mnesia.
Tasks (these are old and need to be revisited, per the description edits/updates):
+++
and***
workThe text was updated successfully, but these errors were encountered: