94 karma · joined October 28, 2013
I know... nothing... about the NIF interface, but the way that I would want this to work wouldn't involve NIF resumption at all, but rather for NIFs to be able to put responses back on a channel.
Unfortunately neither quick internet searches nor searching the rustler docs revealed anything about a NIF/channel interface. I'm not sure how feasible it is to pass a channel into a nif and allow it to pass that into some thread and return, nor how good of an idea that would be.
@startuml
component ripgrep
component ignore
component globset
component grep
ripgrep --> ignore
ignore --> globset
ripgrep --> globset
ripgrep --> grep
@enduml
You can get the structure right, and easily, but those beautiful icons are not something that I know how to create, and the 90-degree turns are I think actually impossible.The fact that it is so elegantly expressed in plantuml but it's still so ugly (by default) makes me really wish for a theme that's as nice as the hand-created diagram the author wrote.
[1]: http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuU9ApiyjoCz...
[plantuml]: http://plantuml.com/
[manually created]: view-source:http://blog.mbrt.it/2016-12-01-ripgrep-code-review/crates.sv...
This is also why wheels (the new python package format) use a static file instead of setup.py. The Python ecosystem has been trying to get off of "just eval setup.py" for years.
[dependencies]
hyper = { metapackage = { rust-platform = "2.7" } }
I like the general theme of having the platform be just a set of known-compatible versions, but on the other hand this feels like it loses out on many of the ease-of-use advantages of just specifying a platform version and knowing that you have all the crates inside of it.