##// END OF EJS Templates
util: make `mmapread()` work on Windows again...
util: make `mmapread()` work on Windows again 522b4d729e89 started referencing `mmap.MAP_PRIVATE`, but that's not available on Windows, so `hg version` worked, but `make local` did not. That commit also started calling the constructor with the fine-grained `flags` and `prot` args, but those aren't available on Windows either[1] (though the backing C code doesn't seem conditionalized to disallow usage of them). I assume the change away from from the `access` arg was to provide the same options, plus `MAP_POPULATE`. Looking at the source code[2], they're not quite the same- `ACCESS_READ` is equivalent to `flags = MAP_SHARED` and `prot = PROT_READ`. `MAP_PRIVATE` is only used with `ACCESS_COPY`, which allows read and write. Therefore, we can't quite get the same baseline flags on Windows, but this was the status quo ante and `MAP_POPULATE` is a Linux thing, so presumably it works. I realize that typically the OS differences are abstracted into the platform modules, but I'm leaving it here so that it is obvious what the differences are between the platforms. [1] https://docs.python.org/3/library/mmap.html#mmap.mmap [2] https://github.com/python/cpython/blob/5e0abb47886bc665eefdcc19fde985f803e49d4c/Modules/mmapmodule.c#L1539

File last commit:

r34715:f4aeb952 default
r52823:bc9ed92d default
Show More
map-cmdline.compact
31 lines | 1018 B | text/plain | TextLexer
[templates]
ldate = '{label("log.date",
"{date|isodate}")}'
ldesc = '{label('ui.note log.description',
'{desc|strip}')}'
ldescfirst = '{label('ui.note log.description',
'{desc|firstline|strip}')}'
changeset = '{lrev}{tags}{bookmarks}{parents} {lnode} {ldate} {luser}\n {ldescfirst}\n\n'
changeset_quiet = '{lrev}:{lnode}\n'
changeset_verbose = '{lrev}{tags}{parents} {lnode} {ldate} {lauthor}\n {ldesc}\n\n'
lrev = '{label("log.changeset changeset.{phase}",
"{rev}")}'
lnode = '{label("log.node",
"{node|short}")}'
lauthor = '{label("log.user",
"{author}")}'
luser = '{label("log.user",
"{author|user}")}'
start_tags = '['
tag = '{label("log.tag",
"{tag},")}'
last_tag = '{tag}]'
start_parents = ':'
parent = '{lrev},'
last_parent = '{lrev}'
start_bookmarks = '['
bookmark = '{label("log.bookmark",
"{bookmark},")}'
last_bookmark = '{bookmark}]'