Commit graph

6923 commits

Author SHA1 Message Date
Gareth Rees
dce60f3ee6 Minor design improvements.
Copied from Perforce
 Change: 194075
2018-06-21 21:08:57 +01:00
Gareth Rees
fe9064011c Fix markup errors.
Copied from Perforce
 Change: 194070
2018-06-21 20:48:34 +01:00
Gareth Rees
3e88befc24 In gcc 7.3, -wextra sets -wimplicit-fallthough=3, which is rather strict about the format of the "fall through" comment.
Copied from Perforce
 Change: 194064
2018-06-21 17:38:27 +01:00
Gareth Rees
11e6822edf Bring design.mps.sp.sol.depth.analysis up to date.
Copied from Perforce
 Change: 194012
2018-06-20 12:55:45 +01:00
Gareth Rees
687f5e0294 Fix issues identified in review by apt.
Copied from Perforce
 Change: 193982
2018-06-19 14:51:56 +01:00
Gareth Rees
f4f3b215e0 Forktest passes without the need for polling.
Copied from Perforce
 Change: 193964
2018-06-19 08:59:00 +01:00
Gareth Rees
374ab9c476 No need for empty atfork handlers, can pass null to pthread_atfork.
Copied from Perforce
 Change: 193963
2018-06-19 08:57:26 +01:00
Gareth Rees
2487cf46c1 Add history entry.
Copied from Perforce
 Change: 193943
2018-06-18 20:22:00 +01:00
Gareth Rees
e62c3dc0c5 Simplify the wasmarked protocol.
Copied from Perforce
 Change: 193940
2018-06-18 20:03:13 +01:00
Gareth Rees
3c0d28b98a Correct reason for why function/23.c does not pass.
Copied from Perforce
 Change: 193881
2018-06-18 13:18:28 +01:00
Gareth Rees
e4bf4451b6 Fix copy-paste error.
Copied from Perforce
 Change: 193880
2018-06-18 13:18:02 +01:00
Gareth Rees
3e233329d3 Assertions on the critical path.
Copied from Perforce
 Change: 193879
2018-06-18 13:17:42 +01:00
Gareth Rees
4aa1ca1b2c Fix some rst errors.
Copied from Perforce
 Change: 193862
2018-06-16 19:10:33 +01:00
Gareth Rees
2e18fdbc88 Improve formatting of design docs.
Copied from Perforce
 Change: 193857
2018-06-16 18:48:50 +01:00
Gareth Rees
7a7c5e5a95 Procedure for adding a new smoke test.
Copied from Perforce
 Change: 193850
2018-06-15 16:00:09 +01:00
Gareth Rees
1a2fc92690 Forktest relies on polling, so needs the =p flag.
Copied from Perforce
 Change: 193847
2018-06-15 15:57:23 +01:00
Gareth Rees
00da8664cd Mach_thread_self() can in theory "return mach_port_null if a resource shortage prevented the reception of the send right" so add a check in each case. (there's nothing we can do about it but at least we can notice.)
Copied from Perforce
 Change: 193831
2018-06-15 12:54:28 +01:00
Gareth Rees
fd9f9c41d0 It's safe to register a thread multiple times on macos, so there is no need for the guard.
Copied from Perforce
 Change: 193828
2018-06-15 12:44:51 +01:00
Gareth Rees
d6f4e26dc6 Cross-reference from release notes to supported platforms.
Copied from Perforce
 Change: 193827
2018-06-15 12:42:49 +01:00
Gareth Rees
c4a840d676 Rename "mac os x" and "os x" to "macos", except for a few cases where for historical accuracy we want to continue to refer to the former name.
Copied from Perforce
 Change: 193821
2018-06-15 12:15:36 +01:00
Gareth Rees
a7560913c5 Merge branch/2018-06-13/fork.
Copied from Perforce
 Change: 193816
2018-06-15 11:41:32 +01:00
Gareth Rees
11fff0151d Fix typo.
Copied from Perforce
 Change: 193811
2018-06-15 11:15:42 +01:00
Gareth Rees
0662e96899 Refactor atfork code to improve separation of concerns.
Copied from Perforce
 Change: 193806
2018-06-15 10:58:33 +01:00
Gareth Rees
a3779b8c3b Start the collection and dereference the objects in the parent as well as the child.
Copied from Perforce
 Change: 193800
2018-06-15 10:06:59 +01:00
Gareth Rees
7ed378141c Fix issues identified in review by nb.
Copied from Perforce
 Change: 193793
2018-06-14 19:31:30 +01:00
Gareth Rees
a865019b13 Update design history. restore accidentally removed check.
Copied from Perforce
 Change: 193787
2018-06-14 17:55:03 +01:00
Gareth Rees
391c0bf671 Fix rst error; only need to flag forking thraed on macos.
Copied from Perforce
 Change: 193784
2018-06-14 17:50:29 +01:00
Gareth Rees
e98b2a05c8 Improve comments.
Copied from Perforce
 Change: 193783
2018-06-14 17:44:41 +01:00
Gareth Rees
fc5c7a9f86 Add a section on fork safety to the manual.
Copied from Perforce
 Change: 193776
2018-06-14 17:18:08 +01:00
Gareth Rees
78e6d003bb Fix ansi build.
Copied from Perforce
 Change: 193769
2018-06-14 16:58:24 +01:00
Gareth Rees
38a08a6a62 Avoid compilation errors from latest msvc.
Copied from Perforce
 Change: 193768
2018-06-14 16:54:33 +01:00
Gareth Rees
598b64afb4 Support for fork on linux and freebsd.
Copied from Perforce
 Change: 193765
2018-06-14 16:47:23 +01:00
Gareth Rees
61e24c399a Take locks before fork(), release them in the parent and reinitialize them in the child.
Add forktest target to the Xcode project.
Write design for fork safety and cross-reference from the code.
Update release notes.

Copied from Perforce
 Change: 193760
2018-06-14 16:25:08 +01:00
Gareth Rees
2ccdd80953 Extend forktest so that it does allocation before the fork and collection afterwards; this ensures that we hit the read barrier and thus exercise the exception handling.
After forking in the child, re-create exception port and exception thread, and re-register the (only) thread with that port.

Copied from Perforce
 Change: 193755
2018-06-14 12:54:35 +01:00
Gareth Rees
47fc093662 Add fork test case (fails on os x if pthread_atfork is not called).
pthread_atfork handlers on OS X: in the child, update the mach port for the forking thread and move all other threads to the dead ring.

Copied from Perforce
 Change: 193746
2018-06-13 17:09:07 +01:00
Gareth Rees
a8edcb7aa4 Fix typo in user guide: "stack_root" not "reg_root".
Copied from Perforce
 Change: 193741
2018-06-13 15:42:23 +01:00
Gareth Rees
1b5cb807b4 Branching master to branch/2018-06-13/fork.
Copied from Perforce
 Change: 193731
2018-06-13 14:06:46 +01:00
Gareth Rees
169b8dcaf6 Avoid using deprecated function mps_fix and deprecated macro mps_fix in the test cases; use mps_fix12 instead.
Copied from Perforce
 Change: 193726
2018-06-13 13:59:14 +01:00
Gareth Rees
ed39d66d77 Add cross-references from mps_arena_has_addr to mps_addr_pool (and vice versa), to decrease the likelihood that developers will miss these functions.
Copied from Perforce
 Change: 193721
2018-06-13 10:56:47 +01:00
Gareth Rees
57e2dbccf3 Make mps manual sphinx extensions compatible with recent versions of sphinx:
1. Don't use the html_use_smartypants directive (smartquotes are on by default now).
2. Don't call make_admonition but inherit from BaseAdmonition instead.
3. Set the title of an admonition via the visit method instead of hacking the title node (which is now non-existent as a result of item 2).

Copied from Perforce
 Change: 193550
2018-02-12 16:49:42 +00:00
Gareth Rees
51986addd1 Avoid warning about duplicate definition of class functin.
Copied from Perforce
 Change: 193549
2018-02-12 16:39:16 +00:00
Gareth Rees
ead26bad95 Format methods must be async-signal-safe on posix.
Copied from Perforce
 Change: 193472
2017-12-21 14:04:47 +00:00
Gareth Rees
e45e52a6f5 Platforms fri3ll and fri6ll are supported, so add them to overview.
Copied from Perforce
 Change: 193383
 ServerID: perforce.ravenbrook.com
2017-11-03 14:34:20 +00:00
Gareth Rees
729d9ed32c Fix broken link.
Copied from Perforce
 Change: 192963
 ServerID: perforce.ravenbrook.com
2017-03-10 09:38:22 +00:00
Gareth Rees
b9ae05b94f Remove undocumented plinth function mps_lib_assert_fail_expr and rewrite assertp macro to call documented plinth function mps_lib_assert_fail instead.
Copied from Perforce
 Change: 192941
 ServerID: perforce.ravenbrook.com
2017-03-04 11:17:11 +00:00
Gareth Rees
e9df5d6a35 Remove used epvmdefaultsubsequentsegsize.
Copied from Perforce
 Change: 192938
 ServerID: perforce.ravenbrook.com
2017-03-04 11:02:31 +00:00
Gareth Rees
cccb1c1e3c Documentation improvements.
Copied from Perforce
 Change: 192905
 ServerID: perforce.ravenbrook.com
2017-02-18 09:38:15 +00:00
Gareth Rees
4af5b181b3 Fix typos.
Copied from Perforce
 Change: 192890
 ServerID: perforce.ravenbrook.com
2017-02-11 11:30:15 +00:00
Gareth Rees
0ad43e18f7 Add release 1.116.0 to the version index.
Update branch and release tools so that releases get automatically added to the version index.

Copied from Perforce
 Change: 192761
 ServerID: perforce.ravenbrook.com
2016-11-13 11:08:30 +00:00
Gareth Rees
c14d96d9ec Update tag references in design documents so that they work in the design directory, and in the manual.
Copied from Perforce
 Change: 192748
 ServerID: perforce.ravenbrook.com
2016-11-11 10:20:02 +00:00