Code Monkey home page Code Monkey logo

bonsai_revery's People

Contributors

geoffder avatar glennsl avatar ozanmakes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

glennsl geoffder

bonsai_revery's Issues

Problems with todo_mvc out of the box.

I'm able to build and run todo_mvc, however I'm running into a few issues so far (on Manjaro).

  • Backspace / Delete are not working in the text input
  • Return is not adding the new item
  • My compositor (picom) seems to be disabled while the program is running.

I am able to clear ticked entries fine, and the ignored keypresses are shifting it into active state according to the debug logging. Running the revery-quick-start app (only other Revery example I have built so far) does not have the same impact on my compositor.

Any ideas on what might be going wrong? Very keen to give this library a spin by the way, seems like a great way to take advantage of Revery in what feels like a more OCaml way without having to get into Reason.

What's with all the resolutions?

Hi I just noticed that the package.json has a ton of resolutions.
Resolutions tell the constraint solver "I know better than you!" which is sometimes true, but adding resolutions also has some downsides. I think of them as like a stop gap when one of your dependencies doesn't model their dependencies correctly and you need to force the solver to solve it a certain way while you wait for them to fix it.
Also, resolutions during development can mask your own project's incorrectly configured constraints because resolutions tell the constraint solver to ignore your own dependencies specified versions. So then when someone tries out your library, the constraints you specified in "dependencies" won't work.

I know everyone has their own workflow, and whatever works for you is best - just thought I'd bring up the point in case you hadn't considered it.

Lwt event loop and Bonsai_revery.

As near as I can tell, beginning the Revery event loop like so:

let _stopEventLoop = Revery_Lwt.startEventLoop () in

does not actually accomplish anything in the context of the running Bonsai app. Any Lwt promises created within an app, like in apply_action of a component, are never ran. However, if a call toLwt_engine.iter is made in the bonsai_revery action loop (in start.ml) like so:

      Lwt.async (fun () ->
          Lwt_stream.iter
            (fun action ->
              Incr.Clock.advance_clock Incr.clock ~to_:(Time_ns.now ());
              Timber.Log.perf "pre-action stabilize" Incr.stabilize;

              Lwt.wakeup_paused ();
              Lwt_engine.iter false;

              apply_action action)
            r))

Lwt promises seem to be ran as expected. This works with (and without) the Revery_Lwt.startEventLoop call commented out. I'm not wise enough about Lwt yet to know if this is a terrible idea, or if the rest of the trappings (of trying to wakeup seemingly empty sequences of promises etc) included Revery_Lwt are actually required for reasons I don't yet understand.

Do you have any idea? If it's on the right track, I could make the couple line PR and add in whatever else is required to make sure it behaves properly.

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.