Jonathan Holburn
d2ec9570d7
Add dylan test object to comm.gmk for extcon, missing from last commit
2023-05-10 13:57:26 +01:00
Jonathan Holburn
73b9fbd4cd
Remove homebrew format from extcon testbench and replace with dylan fmt. also disable code relating to stack roots. also replaces deprecated root_table. add comments
2023-05-10 13:51:39 +01:00
Richard Brooksby
a97e2b2c9a
Disabling the insist comparing the testobj array to the cold end of the stack, since the testobj array is now a static and not comparible.
2023-05-02 16:02:48 +01:00
Richard Brooksby
fbd0d0e082
Moving the root of objects into a static to avoid problems with the cold end of the stack for now, deferring solution of github issue < https://github.com/ravenbrook/mps/issues/210 >. convertin asserts to insists so that they are present in hot builds.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/210
2023-05-02 15:40:26 +01:00
Jonathan Holburn
a5a3fb7e94
Add output to aid cold end of stack debugging
2023-04-26 18:01:53 +01:00
Richard Brooksby
5fdb7072ef
Adding detailed output to extcon about memory reservation and gc cycles, to try to diagnose intermittent failures in ci.
2023-04-14 17:33:16 +01:00
Richard Brooksby
29425d80d4
Removing unnecessary arena_park.
2023-04-14 15:32:37 +01:00
Richard Brooksby
e5015abe5f
Adding an attribute to test_main to prevent clang 14 from inlining it an reordering locals, causing stack roots to become lost. working around github issue < https://github.com/ravenbrook/mps/issues/210 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/210
2023-04-14 15:32:10 +01:00
Richard Brooksby
0896712c51
Adding an assertion that forces gcc not to reorder locals, working around github issue < https://github.com/ravenbrook/mps/issues/210 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/210
2023-04-14 15:08:27 +01:00
Richard Brooksby
4a5fe3fbc4
Detabifying extcon.c.
2023-04-14 10:52:08 +01:00
Richard Brooksby
f8e0026b40
Adding extcon extension/contraction test to posix builds. fixing warnings in extcon.c.
2023-04-14 10:46:56 +01:00
Jonathan Holburn
dcc7666a07
Fix test to ensure that cold pointer exists in colder stack frame.
...
This avoids the issue https://github.com/Ravenbrook/mps/issues/210
Also increase the number of test objects by *10 to make it more likely
the arena will decide to contract.
Also comment out some printfs in the interrupt context, to avoid messy
output.
Also fix some typos in comments
2023-04-14 10:10:18 +01:00
Jonathan Holburn
970288d974
Add test for arena extend and contract callbacks
2023-04-13 12:25:15 +01:00
Richard Brooksby
e1590fc699
Part of making extension callbacks part of the public mps.
...
* Move type and macro declarations to the public header mps.h.
* Move documentation to appropriate sections of manual.
(cherry picked from commit b928fa236178fb1bdbe20442c3f53b8e8a545a4b)
2023-04-13 10:07:58 +01:00
Richard Brooksby
53d522b506
Merging branch/2023-03-04/getpagesize-vs-sysconf for github pull request < https://github.com/ravenbrook/mps/pull/188 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/188
2023-03-23 22:17:37 +00:00
Richard Brooksby
0538ddb984
Merging branch/2023-02-27/correct-file-names for github pull request < https://github.com/ravenbrook/mps/pull/179 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/179
2023-03-23 22:09:32 +00:00
Richard Brooksby
0460bcf671
Minor documentation improvements in response to review < https://github.com/ravenbrook/mps/pull/179#pullrequestreview-1354912126 >.
2023-03-23 15:44:06 +00:00
Richard Brooksby
1aa18cdc00
Merging branch/2023-03-09/sig-design-tidy for github pull request < https://github.com/ravenbrook/mps/pull/193 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/193
2023-03-13 20:17:31 +00:00
Richard Brooksby
f84241fa4f
Merging branch/2023-02-21/termux-build for github pull request < https://github.com/ravenbrook/mps/pull/164 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/164
2023-03-09 11:53:39 +00:00
Richard Brooksby
1610d65d4c
Explaining the purpose of the calls variable in response to < https://github.com/ravenbrook/mps/pull/164#discussion_r1130845346 >.
2023-03-09 11:33:14 +00:00
Richard Brooksby
39e2e60cd1
Cleaning up fixmes. moving signature on abqstruct to the start, since i couldn't find any justification for it to be at the end. it was always at the end.
2023-03-09 10:11:12 +00:00
Richard Brooksby
9f202d3521
Cleaning up fixmes. we no longer initialize protocol classes with static initializers.
2023-03-09 10:06:39 +00:00
Richard Brooksby
0d9d4bfaa1
Cleaning up fixmes. inststruct does not have a signature.
2023-03-09 09:59:16 +00:00
Richard Brooksby
787ea7d302
Moving design documentation of signatures to design.mps.sig and updating tagging from code to be consistent.
2023-03-09 09:40:03 +00:00
Richard Brooksby
a1147b996d
Merging branch/2023-02-13/fix-typos for github pull request < https://github.com/ravenbrook/mps/pull/149 >.
...
GitHub-reference: https://github.com/Ravenbrook/mps/issues/149
2023-03-08 11:10:53 +00:00
Richard Brooksby
6ac5dcb1f4
Declaring variable as static volatile to ensure clean communication with debugger and suppress warnings. this is a better expression of intention.
2023-03-08 11:03:27 +00:00
Richard Brooksby
38cc6e4f8e
Documenting deprecation of getpagesize().
2023-03-04 07:56:29 +00:00
Bruce Mitchener
322dc834d9
Unix: use sysconf(_sc_pagesize), not getpagesize()
...
The `getpagesize()` is a legacy function and is not available
in the default configurations on some platforms.
The documentation for `getpagesize()` recommends using the POSIX
`sysconf(_SC_PAGESIZE)` instead.
Additionally, `sysconf(_SC_PAGESIZE)` returns a `long` rather than
an `int`, so the code is updated to handle that as well.
Sources:
* https://man7.org/linux/man-pages/man2/getpagesize.2.html
* https://pubs.opengroup.org/onlinepubs/7908799/xsh/getpagesize.html
2023-03-04 14:11:09 +07:00
Bruce Mitchener
892063a954
Correct file name references.
...
The checks that these files are being used on the right platform
contain the wrong file names.
2023-02-27 10:19:55 +07:00
Richard Brooksby
f54fea1f9d
Clarifying todo in response to review < https://github.com/ravenbrook/mps/pull/119#discussion_r1115542531 >.
2023-02-24 09:07:28 +00:00
Richard Brooksby
eaa9e9cb22
Adding references to issues raised by review < https://github.com/ravenbrook/mps/pull/119#discussion_r1115543553 >.
2023-02-24 08:53:03 +00:00
Richard Brooksby
4f69099fa6
Suppressing unused variable warning for static that we only look at from a debugger.
2023-02-21 16:17:51 +00:00
Richard Brooksby
b331e68916
Wrapping preservedinplacecount in statistic macros to suppress dataflow warning from clang. see < https://github.com/ravenbrook/mps/issues/163#issuecomment-1438723301 >.
2023-02-21 16:09:04 +00:00
Richard Brooksby
c88e4e8a05
Downgrading old fixmes to todos with better explanation of tasks.
2023-02-20 08:51:15 +00:00
Bruce Mitchener
0f6e2f7a20
Fix typos.
2023-02-13 23:27:57 +07:00
Richard Brooksby
4f2f097ef5
Merging branch/2023-01-06/gcc-11.3.0-warnings for github pull request 92 < https://github.com/ravenbrook/mps/pull/92 >.
2023-01-16 15:14:34 +00:00
Richard Brooksby
8ab5806e31
Adding narrowing cast to suppress warning on fri6ll.
2023-01-11 18:18:51 +00:00
Richard Brooksby
cfb459b757
Adding narrowing cast to suppress warning on fr86ll.
2023-01-11 15:58:50 +00:00
Richard Brooksby
61ef072ba1
Merge branch 'branch/2023-01-05/travis-windows' into branch/2022-12-23/hardened-runtime to get travis to test this branch on windows before merging.
2023-01-11 08:20:17 +00:00
Gareth Rees
3818bf1e06
Handle errors from mmap and mprotect due to apple hardened runtime.
...
On Apple Silicon, when Hardened Runtime is in force and the
application lacks the "Allow Unsigned Executable Memory Entitlement",
mmap and mprotect return EACCES when an attempt is made to create or
modify memory so that it is simultaneously writable and executable.
This commit handles these cases by retrying the operation without the
PROT_EXEC flag, and setting global variables so that future operations
omit the flag.
2023-01-06 18:31:54 +00:00
Richard Brooksby
9ba1724cdb
Resolve legit warning from gcc 11.3.0 about potential array overruns.
2023-01-06 17:39:48 +00:00
Richard Brooksby
119fa09bd9
Fix travis ci build for windows using auxiliary batch script to escape from git bash to visual studio.
2023-01-06 12:18:03 +00:00
Gareth Rees
4ed7bef4b2
Avoid compilation error from clang 13.1.
2022-08-21 08:25:50 +01:00
Gareth Rees
6a965b5ff0
Handle partial allocation failure by marking allocated pages spare and purging, as suggested by rb in review.
...
Copied from Perforce
Change: 195997
2022-01-17 20:19:08 +00:00
Gareth Rees
71b05de30f
Eliminate pagestate and pagepoolunion: spare pages are now represented by the spare page land, and free/allocated pages can be distinguished using the pool pointer.
...
Copied from Perforce
Change: 195991
2022-01-17 20:19:08 +00:00
Gareth Rees
49a20700a7
Can't assert that res == reslimit since it may be an injected memory allocation failure from fotest.
...
Copied from Perforce
Change: 195988
2022-01-17 20:19:07 +00:00
Gareth Rees
b0a1af5c05
Represent the spare memory as a land.
2022-01-17 20:19:07 +00:00
Gareth Rees
359bd5b034
New api function mps_pool_walk.
2022-01-17 17:39:18 +00:00
Gareth Rees
a8fe3c5134
New function scanstateupdatesummary updates seg summary after scan.
2022-01-17 17:12:58 +00:00
Gareth Rees
8b87dccf6e
Indirect formatted scanning through the scanstate.
...
This will allow us to reuse the scanning protocol with an arbitrary area
scanning function (replacing traceFormatScan) in order to implement
formatted object walking without an extra segment method.
Don't insist on scanning only grey segments: we want to be able to
reuse the scan protocol for walking, when the segments are black.
2022-01-17 17:12:58 +00:00