##// 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:

r37419:7d94fe3e default
r52823:bc9ed92d default
Show More
summary.tmpl
62 lines | 2.4 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: Summary</title>
<link rel="alternate" type="application/atom+xml"
href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
<link rel="alternate" type="application/rss+xml"
href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
</head>
<body>
<div class="page_header">
<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
<a href="/">Mercurial</a> {pathdef%breadcrumb} / summary
</div>
<div class="page_nav">
<div>
summary |
<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
</div>
{searchform}
</div>
<div class="title">&nbsp;</div>
<table cellspacing="0">
<tr><td>description</td><td>{desc}</td></tr>
<tr><td>owner</td><td>{owner|obfuscate}</td></tr>
<tr><td>last change</td><td class="date age">{lastchange|rfc822date}</td></tr>
</table>
<div><a class="title" href="{url|urlescape}shortlog{sessionvars%urlparameter}">changes</a></div>
<table cellspacing="0">
{shortlog%shortlogentry}
<tr class="light"><td colspan="4"><a class="list" href="{url|urlescape}shortlog{sessionvars%urlparameter}">...</a></td></tr>
</table>
<div><a class="title" href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></div>
<table cellspacing="0">
{tags%tagentry}
<tr class="light"><td colspan="3"><a class="list" href="{url|urlescape}tags{sessionvars%urlparameter}">...</a></td></tr>
</table>
<div><a class="title" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></div>
<table cellspacing="0">
{bookmarks%bookmarkentry}
<tr class="light"><td colspan="3"><a class="list" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
</table>
<div><a class="title" href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></div>
<table cellspacing="0">
{branches%branchentry}
<tr class="light">
<td colspan="3"><a class="list" href="{url|urlescape}branches{sessionvars%urlparameter}">...</a></td>
</tr>
</table>
{footer}