[m-rev.] diff: il grade fixes

Peter Ross pro at missioncriticalit.com
Mon May 19 19:23:37 AEST 2003


Hi,


===================================================================


Estimated hours taken: 0.5
Branches: main

Upgrades to build the compiler in the il grade with v1.1 of the .NET CLR.

compiler/Mmakefile:
	Copy the dlls from the analysis and browser directories into the
	current directory so that mercury_compile.exe can find them.
	
library/float.m:
	Use // for comments in C# instead of %.

library/table_builtin.m:
	Promise that table_simple_get_answer_block is semipure.

Index: compiler/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/Mmakefile,v
retrieving revision 1.74
diff -u -r1.74 Mmakefile
--- compiler/Mmakefile	7 May 2003 12:53:33 -0000	1.74
+++ compiler/Mmakefile	19 May 2003 09:18:18 -0000
@@ -195,6 +195,7 @@
 ifeq ($(findstring il,$(GRADE)),il)        
 	# set the stack size to 100M -- the default of 1M is too low
 	-editbin /nologo /stack:100000000 mercury_compile$(EXT_FOR_EXE)
+	cp ../analysis/*.dll ../browser/*.dll .
 endif
 
 libmercury_compile.a: lib$(MC_PROG).a
Index: library/float.m
===================================================================
RCS file: /home/mercury1/repository/mercury/library/float.m,v
retrieving revision 1.52
diff -u -r1.52 float.m
--- library/float.m	9 May 2003 09:10:35 -0000	1.52
+++ library/float.m	19 May 2003 09:18:21 -0000
@@ -530,12 +530,12 @@
 	float__min = (Min::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% We can't use System.Double.MinValue, because in v1 of the .NET CLR,
-	% that means something completely different: the negative number
-	% with the greatest absolute value.
-	% Instead, we just hard-code the appropriate value (copied from the
-	% glibc header files); this is OK, because the ECMA specification
-	% nails down the representation of double as 64-bit IEEE.
+	// We can't use System.Double.MinValue, because in v1 of the .NET CLR,
+	// that means something completely different: the negative number
+	// with the greatest absolute value.
+	// Instead, we just hard-code the appropriate value (copied from the
+	// glibc header files); this is OK, because the ECMA specification
+	// nails down the representation of double as 64-bit IEEE.
 	Min = 2.2250738585072014e-308;
 ").
 
@@ -550,14 +550,14 @@
 	float__epsilon = (Eps::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% We can't use System.Double.Epsilon, because in v1 of the .NET CLR,
-	% that means something completely different: the smallest (denormal)
-	% positive number.  I don't know what the people who designed that
-	% were smoking; that semantics for 'epsilon' is different from the
-	% use of 'epsilon' in C, Lisp, Ada, etc., not to mention Mercury.
-	% Instead, we just hard-code the appropriate value (copied from the
-	% glibc header files); this is OK, because the ECMA specification
-	% nails down the representation of double as 64-bit IEEE.
+	// We can't use System.Double.Epsilon, because in v1 of the .NET CLR,
+	// that means something completely different: the smallest (denormal)
+	// positive number.  I don't know what the people who designed that
+	// were smoking; that semantics for 'epsilon' is different from the
+	// use of 'epsilon' in C, Lisp, Ada, etc., not to mention Mercury.
+	// Instead, we just hard-code the appropriate value (copied from the
+	// glibc header files); this is OK, because the ECMA specification
+	// nails down the representation of double as 64-bit IEEE.
 	Eps = 2.2204460492503131e-16;
 ").
 
@@ -572,9 +572,9 @@
 	float__radix = (Radix::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% The ECMA specification requires that double be 64-bit IEEE.
-	% I think that implies that it must have Radix = 2.
-	% This is definitely right for x86, anyway.
+	// The ECMA specification requires that double be 64-bit IEEE.
+	// I think that implies that it must have Radix = 2.
+	// This is definitely right for x86, anyway.
 	Radix = 2;
 ").
 
@@ -589,7 +589,7 @@
 	float__mantissa_digits = (MantDig::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% ECMA specifies that System.Double is 64-bit IEEE float
+	// ECMA specifies that System.Double is 64-bit IEEE float
 	MantDig = 53;
 ").
 
@@ -606,7 +606,7 @@
 	float__min_exponent = (MinExp::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% ECMA specifies that System.Double is 64-bit IEEE float
+	// ECMA specifies that System.Double is 64-bit IEEE float
 	MinExp = -1021;
 ").
 
@@ -623,7 +623,7 @@
 	float__max_exponent = (MaxExp::out),
 		[will_not_call_mercury, promise_pure, thread_safe],
 "
-	% ECMA specifies that System.Double is 64-bit IEEE float
+	// ECMA specifies that System.Double is 64-bit IEEE float
 	MaxExp = 1024;
 ").
 
Index: library/table_builtin.m
===================================================================
RCS file: /home/mercury1/repository/mercury/library/table_builtin.m,v
retrieving revision 1.30
diff -u -r1.30 table_builtin.m
--- library/table_builtin.m	2 May 2003 21:44:16 -0000	1.30
+++ library/table_builtin.m	19 May 2003 09:18:21 -0000
@@ -373,6 +373,7 @@
 	impure private_builtin__imp,
 	private_builtin__sorry("table_simple_mark_as_inactive").
 
+:- pragma promise_semipure(table_simple_get_answer_block/2).
 table_simple_get_answer_block(_, _) :-
 	% This version is only used for back-ends for which there is no
 	% matching foreign_proc version.

--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list