ozanmakes / bonsai_revery Goto Github PK
View Code? Open in Web Editor NEWA library for incremental desktop applications
Home Page: https://osener.github.io/bonsai_revery/bonsai_revery/index.html
License: MIT License
A library for incremental desktop applications
Home Page: https://osener.github.io/bonsai_revery/bonsai_revery/index.html
License: MIT License
I'm able to build and run todo_mvc, however I'm running into a few issues so far (on Manjaro).
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.
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.