MPS issue job003716

Title"ANSI" platform is not regularly tested
Statusclosed
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionThe MPS has an "ANSI" platform which uses only Standard C Library features (no operating system calls). This platform is intended to be used as a basis for ports to new operating systems. However, it is not regularly tested.
AnalysisSee also e-mail thread [1] [2].

Define a new configuration parameter, CONFIG_ANSI say, that ignores the detected platform and just uses the generic backends.

With this defined, the threading test cases (amcssth, awlutth) fail as expected, but also these three:

awlut -- trace.c:1791: MPS ASSERTION FAILED: unreachable code
awluthe -- trace.c:1867: MPS ASSERTION FAILED: res == ResOK
mpsicv -- trace.c:1867: MPS ASSERTION FAILED: res == ResOK

The failures in awlut, awluthe and mpsicv are due to the use of mps_stack_scan_ambig, which is unimplemented in the ANSI platform.

(TODO: think about THREAD_SINGLE and PROTECTION_NONE.)
How foundinspection
Evidence[1] <https://info.ravenbrook.com/mail/2014/03/24/21-40-28/0/>
[2] <https://info.ravenbrook.com/mail/2014/03/25/12-40-29/0/>
Created byGareth Rees
Created on2014-03-25 12:55:30
Last modified byGareth Rees
Last modified on2014-03-27 15:55:49
History2014-03-25 GDR Created.

Fixes

Change Effect Date User Description
185050 closed 2014-03-27 15:19:42 Gareth Rees Test case database now notes which test cases use threads.
New test suite "testansi" consists of test cases that run on the generic ("ANSI") platform.
New target "ansi" builds the MPS with the CONFIG_PF_ANSI CONFIG_THREAD_SINGLE and CONFIG_PROTECTION_NONE settings.
Build and test the "ansi" target as part of "make test" for the benefit of the buildbots (just Linux and FreeBSD for the moment).