[m-rev.] for review: build grade_lib by default

Peter Wang novalazy at gmail.com
Tue Apr 14 16:37:37 AEST 2020

On Mon, 13 Apr 2020 07:22:49 +1000 (AEST), "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
> Build the grade_lib directory by default.
> This should prevent bit rot in its code, such as that caused by the
> move of the one_or_more type from list.m to one_or_more.m.
> Mmakefile:
>     Add grade_lib to the list of directories to build, to the list of
>     directories in which dependencies are made, the list of directories
>     in which tags files are made, and the list of directories to clean.
>     Do not include the grade library in source distributions. In the
>     intended use case, the grade library modules that the compiler needs
>     will be present in the source distribution in the *compiler* directory.

configure wants to produce grade_lib/GRADE_LIB_FLAGS from
GRADE_LIB_FLAGS.in so I think the grade_lib needs to be included
in the source distribution.

After the following change, the resulting srcdist still doesn't
build without a bootstrap compiler. Hopefully the problem is
obvious to someone else:

make[2]: Entering directory '/tmp/mercury-srcdist-DEV/grade_lib'
mmc --grade hlc.gc.pregen     --mercury-linkage static --flags GRADE_LIB_FLAGS      -f *.m
../scripts/mmc: 31: exec: /tmp/mercury-srcdist-DEV/Install/bin/mercury_compile: not found


diff --git a/Mmakefile b/Mmakefile
index 9a77629db..8446b5ac2 100644
--- a/Mmakefile
+++ b/Mmakefile
@@ -508,6 +508,8 @@ tar: 	$(GENERATED_DOCS)
 	+cd deep_profiler && $(SUBDIR_MMAKE) cs tags
 	+cd mfilterjavac && $(SUBDIR_MMAKE) depend
 	+cd mfilterjavac && $(SUBDIR_MMAKE) cs tags
+	+cd grade_lib && $(SUBDIR_MMAKE) depend
+	+cd grade_lib && $(SUBDIR_MMAKE) cs tags
 	+cd doc && $(SUBDIR_MMAKE) info html dvi mdb_doc
 	# the following commands might fail on Windows?
 	-cd bindist && $(SUBDIR_MMAKE) bindist.Makefile
@@ -534,7 +536,6 @@ tar: 	$(GENERATED_DOCS)
 	export ROOTNAME;						\
 	cd .. && (							\
 		mkdir stuff-to-exclude;					\
-		mv $$ROOTNAME/grade_lib stuff-to-exclude;		\
 		test -d $$ROOTNAME/bytecode && 				\
 			mv $$ROOTNAME/bytecode stuff-to-exclude; 	\
 		mv $$ROOTNAME/extras/quickcheck stuff-to-exclude;	\

More information about the reviews mailing list