Code Monkey home page Code Monkey logo

Comments (7)

stuaxo avatar stuaxo commented on May 24, 2024

(I'm not quite sure if this is a dupe of #6)

from reloadr.

stuaxo avatar stuaxo commented on May 24, 2024

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.

hoh avatar hoh commented on May 24, 2024

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.

stuaxo avatar stuaxo commented on May 24, 2024

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.

stuaxo avatar stuaxo commented on May 24, 2024

Since code reloading may trigger weird side effects, the user can turn toggle turn it on or off ("live coding")
image

from reloadr.

hoh avatar hoh commented on May 24, 2024

Interesting approach with the tenuous mode in shoebot's code.

Do I understand that shoebot will reload every function within the target ?

from reloadr.

stuaxo avatar stuaxo commented on May 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.