durin42 added a subscriber: indygreg.
durin42 added a comment.

  I'd be curious to see what @indygreg has to say about this, maybe wait on his 
input before doing any work in response to my feedback?
  
  I do wonder if we should have at least three crates:
  
  1. hgcli
  2. libmercurial
  3. hgcext
  
  The first one would be the command-line entry point, the last could use the 
cpython API, and libmercurial would be "pure rust" and open the door to 
eventually having a libhg or something that exports C functions and would be 
suitable for cffi and linking into other binaries?

INLINE COMMENTS

> base85.rs:22
> +
> +pub fn b85encode(py: Python, text: &str, pad: i32) -> PyResult<PyObject> {
> +    let text = text.as_bytes();

I think I'd like to separate things a bit more and have a Python-free module, 
and then a glue module that we can use to call into the pure Rust. Part of the 
reason is that in my perfect world we won't use the cpython crate for speedups 
so they can be used from pypy as well. Separating them at least makes it easier 
to have an extern "C" version of the method that can be used from cffi instead 
of only through the CPython API.

(Not sure what opinions others have. It's likely that I'll attempt this 
approach in the near future as part of a continued attempt to speed up `hg 
diff`.)

REPOSITORY
  rHG Mercurial

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

To: Ivzhh, #hg-reviewers
Cc: indygreg, durin42, kevincox, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[email protected]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to