Skip to content

Commit 6798b05

Browse files
authored
Merge branch 'main' into fetch-restore-modules
2 parents 04985db + 347f740 commit 6798b05

File tree

5 files changed

+38
-3
lines changed

5 files changed

+38
-3
lines changed

Doc/library/mmap.rst

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,19 @@ MAP_* Constants
370370
MAP_ANONYMOUS
371371
MAP_POPULATE
372372
MAP_STACK
373+
MAP_ALIGNED_SUPER
374+
MAP_CONCEAL
373375

374-
These are the various flags that can be passed to :meth:`mmap.mmap`. Note that some options might not be present on some systems.
376+
These are the various flags that can be passed to :meth:`mmap.mmap`. :data:`MAP_ALIGNED_SUPER`
377+
is only available at FreeBSD and :data:`MAP_CONCEAL` is only available at OpenBSD. Note
378+
that some options might not be present on some systems.
375379

376380
.. versionchanged:: 3.10
377-
Added MAP_POPULATE constant.
381+
Added :data:`MAP_POPULATE` constant.
378382

379383
.. versionadded:: 3.11
380-
Added MAP_STACK constant.
384+
Added :data:`MAP_STACK` constant.
385+
386+
.. versionadded:: 3.12
387+
Added :data:`MAP_ALIGNED_SUPER` constant.
388+
Added :data:`MAP_CONCEAL` constant.

Lib/test/test_keyword.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,36 @@ def test_changing_the_kwlist_does_not_affect_iskeyword(self):
2020
keyword.kwlist = ['its', 'all', 'eggs', 'beans', 'and', 'a', 'slice']
2121
self.assertFalse(keyword.iskeyword('eggs'))
2222

23+
def test_changing_the_softkwlist_does_not_affect_issoftkeyword(self):
24+
oldlist = keyword.softkwlist
25+
self.addCleanup(setattr, keyword, "softkwlist", oldlist)
26+
keyword.softkwlist = ["foo", "bar", "spam", "egs", "case"]
27+
self.assertFalse(keyword.issoftkeyword("spam"))
28+
2329
def test_all_keywords_fail_to_be_used_as_names(self):
2430
for key in keyword.kwlist:
2531
with self.assertRaises(SyntaxError):
2632
exec(f"{key} = 42")
2733

34+
def test_all_soft_keywords_can_be_used_as_names(self):
35+
for key in keyword.softkwlist:
36+
exec(f"{key} = 42")
37+
2838
def test_async_and_await_are_keywords(self):
2939
self.assertIn("async", keyword.kwlist)
3040
self.assertIn("await", keyword.kwlist)
3141

42+
def test_match_and_case_are_soft_keywords(self):
43+
self.assertIn("match", keyword.softkwlist)
44+
self.assertIn("case", keyword.softkwlist)
45+
self.assertIn("_", keyword.softkwlist)
46+
3247
def test_keywords_are_sorted(self):
3348
self.assertListEqual(sorted(keyword.kwlist), keyword.kwlist)
3449

50+
def test_softkeywords_are_sorted(self):
51+
self.assertListEqual(sorted(keyword.softkwlist), keyword.softkwlist)
52+
3553

3654
if __name__ == "__main__":
3755
unittest.main()

Misc/ACKS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -930,6 +930,7 @@ Derek D. Kim
930930
Gihwan Kim
931931
Jan Kim
932932
Taek Joo Kim
933+
Yeojin Kim
933934
Sam Kimbrel
934935
Tomohiko Kinebuchi
935936
James King
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Add :data:`mmap.MAP_ALIGNED_SUPER` FreeBSD and :data:`mmap.MAP_CONCEAL`
2+
OpenBSD constants to :mod:`mmap`. Patch by Yeojin Kim.

Modules/mmapmodule.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,6 +1603,12 @@ mmap_exec(PyObject *module)
16031603
// Mostly a no-op on Linux and NetBSD, but useful on OpenBSD
16041604
// for stack usage (even on x86 arch)
16051605
ADD_INT_MACRO(module, MAP_STACK);
1606+
#endif
1607+
#ifdef MAP_ALIGNED_SUPER
1608+
ADD_INT_MACRO(module, MAP_ALIGNED_SUPER);
1609+
#endif
1610+
#ifdef MAP_CONCEAL
1611+
ADD_INT_MACRO(module, MAP_CONCEAL);
16061612
#endif
16071613
if (PyModule_AddIntConstant(module, "PAGESIZE", (long)my_getpagesize()) < 0 ) {
16081614
return -1;

0 commit comments

Comments
 (0)