indygreg added a comment.

  In https://phab.mercurial-scm.org/D1581#31029, @cramertj wrote:
  
  > There are a lot of uses of `unwrap`, `expect`, and `panic` that can (and 
probably should) be replaced with proper error handling using `Result` (and the 
`failure` crate).
  
  
  I definitely agree. I still consider this just beyond proof-of-concept code. 
We'll definitely want to shore things up before we ship. Perfect is very much 
the enemy of good at this stage.
  
  > There are also a couple of crates that provide safe bindings to Python 
interpreters-- I'm not sure what your external dependency situation is, but you 
might consider using something like https://crates.io/crates/pyo3 rather than 
writing your own `unsafe` calls to the python interpreter.
  
  pyo3 requires non-stable Rust features last I checked. That makes it a 
non-starter for us at this time (since downstream packagers will insist on only 
using stable Rust).
  
  If other external dependencies provide the interfaces we need, I'm open to 
taking those dependencies. But this crate is focused on embedding a Python 
interpreter. Most (all?) of the Rust+Python crates I found seemed to target the 
"implementing Python extensions with Rust" use case, not embedding Python. As 
such, their embedding API support is very lacking. I even had to fork 
rust-cpython because it didn't implement the proper APIs and is forcing its 
extension-centric religion on consumers. I've upstreamed most of my 
modifications though. So hopefully the fork doesn't live much longer...

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D1581

To: indygreg, #hg-reviewers, yuja
Cc: cramertj, yuja, quark, durin42, dlax, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to