Comments (7)
(I'm not quite sure if this is a dupe of #6)
from reloadr.
Here is out very crude approach to code loading
https://github.com/shoebot/shoebot/blob/master/shoebot/grammar/livecode.py#L44
I'm hoping to replace it with something modern.
from reloadr.
Generating graphics is one of my motivations for creating reloadr.
Would you have a small video demonstrating how you use the shoebot editor so I can see how your code reloading works for a user ?
from reloadr.
Here you go:
https://www.youtube.com/watch?v=foxzx0JFU5g
The editor used here is gedit with a plugin.
Shoebot gets new code every time the user presses a key.
Currently this is via stdout to shoebot as a subprocess - I can show you the code, but the code in shoebot classic is pretty old and crusty now, hence me building something new :)
from reloadr.
Since code reloading may trigger weird side effects, the user can turn toggle turn it on or off ("live coding")
from reloadr.
Interesting approach with the tenuous
mode in shoebot's code.
Do I understand that shoebot will reload every function within the target ?
from reloadr.
Do I understand that shoebot will reload every function within the target ?
Yes, with a bunch of caveats, because it's very dumb:
- It only updates the
__code__
object in functions in the main file/code.
This is usually OK as a lot of bots are in a single files, but updating other modules that were updated as well would be better.
Variables come along for free, but doing these explicitly would probably be better. - It doesn't know about renamed functions, so state is lost there.
- It doesn't play well with threads
I made a basic audio API with a background thread and that isn't happy.
There are some things unavoidable in this approach ..
- Output to files / sockets in
tenuous
state is going to happen anyway if it happens before the error that causes things to be reverted. - You need a drawing model that allows this (i.e. drawing to a buffer or a dummy output when tenuous).
from reloadr.
Related Issues (11)
- Reloading from Jupyter Notebooks is not supported HOT 2
- Errors with simple script HOT 3
- Python3 syntax not supported due to baron not handling it HOT 3
- error with reloading a subclass HOT 1
- reload function which is inside another function HOT 2
- Consider using wrapt to wrap reloader classes
- Parent classes cannot be reloaded HOT 4
- Auto reloads are incompatible with gevent HOT 1
- How can I auto reload all the involved modules when the source is changed? HOT 1
- Python 3.9 incompatibility "class must be set to a class, not 'ClassReloadr' object" HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reloadr.