summaryrefslogtreecommitdiff
path: root/lang/modula-3-lib/files/patch-bi
diff options
context:
space:
mode:
authorJohn Polstra <jdp@FreeBSD.org>1996-10-29 23:01:55 +0000
committerJohn Polstra <jdp@FreeBSD.org>1996-10-29 23:01:55 +0000
commitd5a92ea9241e6b6b531220df28c2fc1b569388f3 (patch)
treed4e99980d84282a78dcd8c40088cda1fe63a11f8 /lang/modula-3-lib/files/patch-bi
parentUpgrade to v1.0prerelease-1 (diff)
Split the Modula-3 port into two pieces, creating a new port
"modula-3-lib". It installs only the shared libraries needed for executing Modula-3 programs. This saves a lot of disk space for people who need to run Modula-3 programs but don't need to build them. The original "modula-3" port now depends on this one, and uses it to install the compiler and the rest of the development system. Also, everything is now built with optimization. I have been testing this for at least a month, and haven't seen any problems from it. It makes the libraries and executables substantially smaller. This new port also includes some hooks that will make SOCKS support possible in the near future.
Diffstat (limited to 'lang/modula-3-lib/files/patch-bi')
-rw-r--r--lang/modula-3-lib/files/patch-bi39
1 files changed, 39 insertions, 0 deletions
diff --git a/lang/modula-3-lib/files/patch-bi b/lang/modula-3-lib/files/patch-bi
new file mode 100644
index 000000000000..74a018c9ba18
--- /dev/null
+++ b/lang/modula-3-lib/files/patch-bi
@@ -0,0 +1,39 @@
+Bug fix from SRC:
+ bug assigning arrays
+
+ This patch applies to all platforms.
+
+ The Modula-3 language definition says that it is possible to assign
+ one array to another if they have the same shape. There is a bug
+ in the compiler front-end that causes the compiler to report that
+ two array types are not assignable if they have different base
+ indices, even if they have the same size.
+
+Index: m3/m3front/src/types/ArrayType.m3
+--- ArrayType.m3.orig Tue May 23 15:24:27 1995
++++ ArrayType.m3 Mon Sep 30 11:12:31 1996
+@@ -286,7 +286,9 @@
+ a := Reduce (ta); b := Reduce (tb);
+ IF (a = NIL) OR (b = NIL) THEN EXIT END;
+ IF (a.index # b.index) THEN
+- IF Type.Number (a.index) # Type.Number (b.index) THEN RETURN FALSE END;
++ IF NOT TInt.EQ (Type.Number (a.index), Type.Number (b.index)) THEN
++ RETURN FALSE
++ END;
+ END;
+ ta := a.element;
+ tb := b.element;
+Index: m3/m3front/src/types/OpenArrayType.m3
+--- OpenArrayType.m3.orig Tue May 23 15:24:22 1995
++++ OpenArrayType.m3 Mon Sep 30 11:13:12 1996
+@@ -188,7 +188,9 @@
+
+ (* peel off the fixed dimensions as long as the sizes are equal *)
+ WHILE ArrayType.Split (ta, ia, ea) AND ArrayType.Split (tb, ib, eb) DO
+- IF Type.Number (ia) # Type.Number (ib) THEN RETURN FALSE END;
++ IF NOT TInt.EQ (Type.Number (ia), Type.Number (ib)) THEN
++ RETURN FALSE
++ END;
+ ta := ea;
+ tb := eb;
+ END;