sapling/lib
Kostia Balytskyi fa882cf7da hg: make encoding create use ANSI code page, not OEM
Summary:
We almost never need an `OEM` code page: Windows API calls use ANSI-encoded
strings if they are `A` calls and Wide strings if they are `W` calls.

Reviewed By: quark-zju

Differential Revision: D9441425

fbshipit-source-id: 979697c349389ea4f7569be9949be3b636f6063c
2018-08-22 09:06:21 -07:00
..
argparse codemod: reformat rest of the code 2018-07-05 17:52:43 -07:00
cdatapack hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
clib Started Eden for Windows and integrated hg store with it. 2018-08-21 17:51:26 -07:00
commitcloudsubscriber scm daemon: fix spelling 2018-08-07 06:39:45 -07:00
configparser configparser: move some features to hg module 2018-08-17 12:21:31 -07:00
encoding hg: make encoding create use ANSI code page, not OEM 2018-08-22 09:06:21 -07:00
hg_watchman_client watchman rust client for hg: allow fallible deserialization for paths and add tests 2018-05-29 13:09:18 -07:00
indexedlog indexedlog: detect index corruption 2018-07-09 14:37:27 -07:00
linelog hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
lz4-pyframe Back out "Reuse pylz4 encoding between hg and Mononoke into a separate library" 2018-08-08 12:20:54 -07:00
minibench minibench: simple test filtering support 2018-04-17 18:54:39 -07:00
mpatch mpatch: add rust bindings 2018-05-14 16:06:32 -07:00
mpatch-sys mpatch: add rust bindings 2018-05-14 16:06:32 -07:00
pathmatcher ignore: support global gitignore configs 2018-08-02 20:22:47 -07:00
radixbuf rust/tp2: update rust-crates-io 2018-06-01 09:32:56 -07:00
revisionstore revisionstore: add unit tests for ancestor logic 2018-08-17 12:49:57 -07:00
third-party xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
treestate treestate: fix documentation about FilteredKeyCache 2018-07-31 16:35:50 -07:00
vlqencoding vlqencoding: replace criterion with minibench 2018-04-17 18:54:39 -07:00
watchman_client watchman rust client for hg: allow fallible deserialization for paths and add tests 2018-05-29 13:09:18 -07:00
zstdelta vendoredcrates: upgrade zstd-sys to the latest 2018-06-28 15:08:01 -07:00
Cargo.toml hg: rename pathencoding into encoding 2018-08-22 09:06:20 -07:00
README.md READMEs: tweaks based on feedback 2018-01-12 12:35:52 -08:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).