Zoltan Somogyi
6d43c71948
Implement semantic checks for oisu (order independent state update) pragmas.
...
Estimated hours taken: 30
Branches: main
Implement semantic checks for oisu (order independent state update) pragmas.
compiler/hlds_pred.m:
Record for each procedure whether it implements an operation
on a oisu type, and if yes, what kind of operation.
compiler/hlds_module.m:
Add to module_infos a data structure that lists the oisu pragmas
in the module, and the procedures mentioned in them. These are intended
to be used later during code generation.
compiler/add_pragma.m:
Add such pragmas to the HLDS, after checking whatever properties
can be checked during the creation of the HLDS.
compiler/oisu_check.m:
A new module, whose job it is to check those aspects of oisu pragmas
that can be checked only after other semantics are complete on the
module.
compiler/check_hlds.m:
Add the new module.
compiler/notes/compiler_design.html:
Document the new module.
compiler/mercury_compile_front_end.m:
Invoke the new module.
compiler/error_util.m:
Add the new semantic check as a phase.
compiler/mercury_to_mercury.m:
Fix typos in the code for writing out oisu pragmas.
compiler/prog_io_pragmas.m:
Fix typos in the code for reading in oisu pragmas.
compiler/module_qual.m:
Improve the error messages generated for any problems discovered during
module qualification inside pragmas, by writing out what *kind* of
pragma the problem was discovered in.
compiler/modules.m:
Fix a bug: oisu pragmas *can* appear in module interfaces.
compiler/stratify.m:
Give a predicate a better interface and a name.
compiler/hlds_goal.m:
Remove a duplicate comment.
compiler/make_hlds_passes.m:
Fix formatting.
tests/hard_coded/oisu_check_main.{m,exp}:
tests/hard_coded/oisu_check_db.m:
A new multimodule test case, which uses oisu pragmas correctly.
tests/invalid/oisu_check_add_pragma_errors.{m,err_exp}:
A new test case, which tests add_pragma.m's ability to diagnose
the problems it is supposed to diagnose.
tests/invalid/oisu_check_semantic_errors.{m,err_exp}:
A new test case, which tests oisu_check.m's ability to diagnose
the problems it is supposed to diagnose.
tests/hard_coded/Mmakefile:
tests/invalid/Mmakefile:
Enable the new test cases.
2012-10-08 04:14:49 +00:00
..
2012-10-08 04:14:49 +00:00
2011-06-17 07:51:18 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 17:08:58 +00:00
2012-09-10 17:08:58 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-10-08 04:14:49 +00:00
2012-09-10 17:08:58 +00:00
2012-09-05 06:18:16 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-11-22 23:04:53 +00:00
2011-12-14 04:55:20 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-09-16 07:03:36 +00:00
2012-07-11 04:01:00 +00:00
2011-05-23 05:08:24 +00:00
2011-07-05 03:34:39 +00:00
2012-06-08 15:37:07 +00:00
2011-05-25 08:04:27 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2011-09-06 05:20:45 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-09-06 05:20:45 +00:00
2012-06-19 07:21:24 +00:00
2012-07-02 01:16:39 +00:00
2012-10-08 04:14:49 +00:00
2012-09-10 17:08:58 +00:00
2012-10-08 04:14:49 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2011-07-21 06:58:34 +00:00
2012-07-02 01:16:39 +00:00
2012-07-19 11:44:13 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-06-14 07:03:57 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-27 07:44:29 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2011-08-16 03:26:40 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 17:08:58 +00:00
2012-09-10 17:08:58 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-06-19 08:27:19 +00:00
2012-02-13 00:11:57 +00:00
2011-05-23 05:08:24 +00:00
2012-07-19 13:41:10 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-04-23 03:34:49 +00:00
2012-06-19 07:21:24 +00:00
2011-09-30 05:53:51 +00:00
2012-09-10 17:08:58 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 13:33:08 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2011-07-05 03:34:39 +00:00
2012-06-11 03:13:24 +00:00
2011-05-23 05:08:24 +00:00
2012-10-08 04:14:49 +00:00
2012-09-05 06:18:16 +00:00
2012-06-11 03:13:24 +00:00
2011-10-17 04:31:33 +00:00
2012-02-13 00:11:57 +00:00
2012-04-16 08:13:22 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2011-06-16 06:42:19 +00:00
2012-07-02 01:16:39 +00:00
2012-04-24 04:43:31 +00:00
2012-04-18 02:12:49 +00:00
2012-06-19 07:21:24 +00:00
2012-07-19 11:44:13 +00:00
2012-09-10 13:33:08 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-01-17 15:49:47 +00:00
2012-07-23 06:10:13 +00:00
2011-08-16 03:26:40 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-09-07 11:42:01 +00:00
2012-06-11 03:13:24 +00:00
2012-02-13 00:11:57 +00:00
2012-07-11 04:01:00 +00:00
2012-10-08 04:14:49 +00:00
2011-10-17 04:31:33 +00:00
2012-10-08 04:14:49 +00:00
2012-07-02 01:16:39 +00:00
2012-06-22 17:20:11 +00:00
2012-06-08 15:37:07 +00:00
2012-07-02 01:16:39 +00:00
2012-07-11 04:01:00 +00:00
2012-10-08 04:14:49 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-09-07 11:42:01 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-06-11 03:13:24 +00:00
2011-05-23 05:08:24 +00:00
2012-06-22 17:20:11 +00:00
2012-06-08 15:37:07 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 17:08:58 +00:00
2012-07-02 01:16:39 +00:00
2011-09-27 04:41:25 +00:00
2011-07-21 06:58:34 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-04-24 04:43:31 +00:00
2012-06-19 07:21:24 +00:00
2012-07-02 01:16:39 +00:00
2011-10-20 13:44:31 +00:00
2012-06-11 03:13:24 +00:00
2012-08-07 01:22:57 +00:00
2012-07-02 01:16:39 +00:00
2011-09-30 05:53:51 +00:00
2012-07-02 01:16:39 +00:00
2012-01-12 04:57:12 +00:00
2011-08-16 03:26:40 +00:00
2012-06-19 07:21:24 +00:00
2011-10-17 04:31:33 +00:00
2011-10-17 04:31:33 +00:00
2012-06-08 15:37:07 +00:00
2012-07-02 01:16:39 +00:00
2011-08-16 03:26:40 +00:00
2012-07-25 01:25:16 +00:00
2012-01-17 15:49:47 +00:00
2011-05-23 05:08:24 +00:00
2012-09-10 13:33:08 +00:00
2012-10-08 04:14:49 +00:00
2012-02-13 00:11:57 +00:00
2011-11-22 23:04:53 +00:00
2011-12-14 04:55:20 +00:00
2012-05-11 03:56:48 +00:00
2011-12-14 04:55:20 +00:00
2012-05-11 03:56:48 +00:00
2012-05-11 03:56:48 +00:00
2012-06-22 17:20:11 +00:00
2012-02-13 00:11:57 +00:00
2012-07-23 06:10:13 +00:00
2011-07-21 06:58:34 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-10-08 04:14:49 +00:00
2012-07-23 06:10:13 +00:00
2012-07-19 11:44:13 +00:00
2011-08-01 03:31:03 +00:00
2012-03-27 23:29:15 +00:00
2012-10-08 04:14:49 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2011-08-15 06:23:20 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2011-08-16 03:26:40 +00:00
2012-07-02 01:16:39 +00:00
2011-06-16 07:54:25 +00:00
2011-06-15 17:30:09 +00:00
2012-06-08 15:37:07 +00:00
2012-06-19 07:21:24 +00:00
2012-07-02 01:16:39 +00:00
2011-08-15 06:23:20 +00:00
2012-07-02 01:16:39 +00:00
2011-08-22 07:56:10 +00:00
2011-08-15 06:23:20 +00:00
2012-06-11 03:13:24 +00:00
2012-01-17 15:49:47 +00:00
2011-08-15 06:23:20 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-06-08 15:46:21 +00:00
2012-06-08 15:46:21 +00:00
2012-07-15 07:39:30 +00:00
2011-09-06 05:20:45 +00:00
2012-06-08 15:37:07 +00:00
2011-05-23 05:08:24 +00:00
2011-08-22 07:56:10 +00:00
2011-05-23 05:08:24 +00:00
2011-08-22 07:56:10 +00:00
2012-02-15 23:59:19 +00:00
2012-09-10 17:08:58 +00:00
2012-01-24 05:23:07 +00:00
2012-04-23 03:34:49 +00:00
2012-04-23 03:34:49 +00:00
2011-11-03 14:48:10 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-07-19 11:44:13 +00:00
2012-09-05 06:18:16 +00:00
2012-10-08 04:14:49 +00:00
2012-10-08 04:14:49 +00:00
2012-10-08 04:14:49 +00:00
2011-10-18 06:27:08 +00:00
2012-06-19 07:21:24 +00:00
2012-04-24 04:43:31 +00:00
2011-08-09 11:00:55 +00:00
2012-07-23 06:10:13 +00:00
2012-02-13 00:11:57 +00:00
2011-10-21 00:16:21 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2011-07-21 06:58:34 +00:00
2011-08-22 04:23:14 +00:00
2012-02-13 00:11:57 +00:00
2011-08-16 03:26:40 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-09-30 05:53:51 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-06-08 15:46:21 +00:00
2012-09-10 17:08:58 +00:00
2011-10-17 04:31:33 +00:00
2012-09-10 17:08:58 +00:00
2012-06-08 15:37:07 +00:00
2012-04-24 06:02:32 +00:00
2011-10-11 04:31:05 +00:00
2011-05-23 05:08:24 +00:00
2012-09-10 13:33:08 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-12-03 13:35:16 +00:00
2011-05-23 05:08:24 +00:00
2012-09-10 13:33:08 +00:00
2012-10-08 04:14:49 +00:00
2012-04-05 09:20:43 +00:00
2012-09-10 13:33:08 +00:00
2012-06-05 15:14:29 +00:00
2012-09-10 13:33:08 +00:00
2012-09-07 11:42:01 +00:00
2012-09-10 13:33:08 +00:00
2012-09-07 11:42:01 +00:00
2011-11-03 01:01:36 +00:00
2011-05-23 05:08:24 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2011-05-23 05:08:24 +00:00
2012-02-13 00:11:57 +00:00
2012-02-13 00:11:57 +00:00
2012-06-11 03:13:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-06-15 01:05:34 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-09-30 05:53:51 +00:00
2012-09-10 13:33:08 +00:00
2011-05-23 05:08:24 +00:00
2012-09-10 17:08:58 +00:00
2012-09-10 13:33:08 +00:00
2011-09-06 05:20:45 +00:00
2012-06-08 15:46:21 +00:00
2011-07-05 03:34:39 +00:00
2012-07-02 01:16:39 +00:00
2012-06-26 13:11:57 +00:00
2012-09-10 17:08:58 +00:00
2012-07-02 01:16:39 +00:00
2011-07-05 03:34:39 +00:00
2012-07-19 11:44:13 +00:00
2012-07-02 01:16:39 +00:00
2012-06-08 15:37:07 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-10-08 04:14:49 +00:00
2011-10-17 04:31:33 +00:00
2012-09-05 06:18:16 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2011-08-16 03:26:40 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-02-13 00:11:57 +00:00
2012-02-13 00:11:57 +00:00
2012-09-05 06:18:16 +00:00
2012-07-02 01:16:39 +00:00
2012-04-16 08:13:22 +00:00
2012-07-02 01:16:39 +00:00
2012-06-11 03:13:24 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-09-05 06:18:16 +00:00
2011-10-17 04:31:33 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2011-06-15 17:30:09 +00:00
2012-06-11 03:13:24 +00:00
2012-02-13 00:11:57 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-09-05 06:18:16 +00:00
2012-09-05 06:18:16 +00:00
2011-12-19 04:38:20 +00:00
2012-07-02 01:16:39 +00:00
2012-06-11 03:13:24 +00:00
2012-09-05 06:18:16 +00:00
2012-02-13 00:11:57 +00:00
2011-05-23 05:08:24 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2012-09-10 17:08:58 +00:00
2012-06-11 03:13:24 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 17:08:58 +00:00
2012-07-02 01:16:39 +00:00
2012-09-10 17:08:58 +00:00
2012-04-24 02:16:44 +00:00
2012-07-25 04:48:10 +00:00
2012-07-02 01:16:39 +00:00
2012-07-02 01:16:39 +00:00
2012-02-13 00:11:57 +00:00
2012-07-02 01:16:39 +00:00
2012-09-05 06:18:16 +00:00
2012-06-11 03:13:24 +00:00
2011-10-17 04:31:33 +00:00
2012-07-02 01:16:39 +00:00
2011-05-23 05:08:24 +00:00
2011-10-08 08:16:57 +00:00
2011-05-23 05:08:24 +00:00
2011-10-17 04:31:33 +00:00
2012-07-02 01:18:55 +00:00