about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-10-27 23:09:36 -0700
committerKartik Agaram <vc@akkartik.com>2018-10-27 23:09:36 -0700
commit120dbb118602b4b9ad6d4ba34c21aa988cae1dde (patch)
tree93d0ef96b29d48850e1397eb0caf3217710cecdc
parent5f21a5e788402345f97e8bc934259e960ba0f334 (diff)
downloadmu-120dbb118602b4b9ad6d4ba34c21aa988cae1dde.tar.gz
4727 - commit to better 64-bit support
I've started testing more regularly on 64-bit Linux, and I realize that
the binaries actually now compare identical even on 64-bit. Why did I ever
add that condition to CI? Seems to be working now on Travis. Let's start
comparing now and see if the problem happens again.
-rw-r--r--subx/Readme.md5
-rwxr-xr-xsubx/test_apps29
2 files changed, 16 insertions, 18 deletions
diff --git a/subx/Readme.md b/subx/Readme.md
index 49abbdf3..a993e751 100644
--- a/subx/Readme.md
+++ b/subx/Readme.md
@@ -138,9 +138,8 @@ The `examples/` directory shows some simpler programs giving a more gradual
 introduction to SubX features. The repo includes the binary for all examples.
 At any commit an example's binary should be identical bit for bit with the
 result of translating the .subx file. The binary should also be natively
-runnable on a 32-bit Linux system. If either of these invariants is broken
-it's a bug on my part. The binary should also be runnable on a 64-bit Linux
-system. I can't guarantee it, but I'd appreciate hearing if it doesn't run.
+runnable on a Linux system running on Intel x86 processors, either 32- or
+64-bit. If either of these invariants is broken it's a bug on my part.
 
 However, not all 32-bit Linux binaries are guaranteed to be runnable by
 `subx`. I'm not building general infrastructure here for all of the x86 ISA
diff --git a/subx/test_apps b/subx/test_apps
index a8060016..4071a8df 100755
--- a/subx/test_apps
+++ b/subx/test_apps
@@ -6,12 +6,11 @@
 set -e
 cd `dirname $0`
 
-test `uname -m` = 'i686'  &&  echo 'comparing generated binaries'
 test `uname` = 'Linux'  &&  echo 'testing native runs as well'
 
 echo ex1
 CFLAGS=-g ./subx translate examples/ex1.subx  -o examples/ex1
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex1
+git diff --quiet examples/ex1
 CFLAGS=-g ./subx run examples/ex1  ||  ret=$?
 test $ret -eq 42  # life, the universe and everything
 test `uname` = 'Linux'  &&  {
@@ -21,7 +20,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex2
 CFLAGS=-g ./subx translate examples/ex2.subx  -o examples/ex2
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex2
+git diff --quiet examples/ex2
 CFLAGS=-g ./subx run examples/ex2  ||  ret=$?
 test $ret -eq 2  # 1 + 1
 test `uname` = 'Linux'  &&  {
@@ -31,7 +30,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex3
 CFLAGS=-g ./subx translate examples/ex3.subx  -o examples/ex3
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex3
+git diff --quiet examples/ex3
 CFLAGS=-g ./subx run examples/ex3  ||  ret=$?
 test $ret -eq 55  # 1 + 2 + ... + 10
 test `uname` = 'Linux'  &&  {
@@ -41,7 +40,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex4
 CFLAGS=-g ./subx translate examples/ex4.subx  -o examples/ex4
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex4
+git diff --quiet examples/ex4
 echo a | CFLAGS=-g ./subx run examples/ex4 >ex4.out  ||  true
 test `cat ex4.out` = 'a'
 test `uname` = 'Linux'  &&  {
@@ -51,7 +50,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex5
 CFLAGS=-g ./subx translate examples/ex5.subx  -o examples/ex5
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex5
+git diff --quiet examples/ex5
 echo a | CFLAGS=-g ./subx run examples/ex5 >ex5.out  ||  true
 test `cat ex5.out` = 'a'
 test `uname` = 'Linux'  &&  {
@@ -61,7 +60,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex6
 CFLAGS=-g ./subx translate examples/ex6.subx  -o examples/ex6
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex6
+git diff --quiet examples/ex6
 CFLAGS=-g ./subx run examples/ex6 >ex6.out  ||  true
 test "`cat ex6.out`" = 'Hello, world!'
 test `uname` = 'Linux'  &&  {
@@ -71,7 +70,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex7
 CFLAGS=-g ./subx translate examples/ex7.subx  -o examples/ex7
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex7
+git diff --quiet examples/ex7
 CFLAGS=-g ./subx run examples/ex7  ||  ret=$?
 test $ret -eq 97  # 'a'
 test `uname` = 'Linux'  &&  {
@@ -81,7 +80,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex8
 CFLAGS=-g ./subx translate examples/ex8.subx  -o examples/ex8
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex8
+git diff --quiet examples/ex8
 CFLAGS=-g ./subx run examples/ex8 abcd  ||  ret=$?
 test $ret -eq 4  # length('abcd')
 test `uname` = 'Linux'  &&  {
@@ -91,7 +90,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex9
 CFLAGS=-g ./subx translate examples/ex9.subx  -o examples/ex9
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex9
+git diff --quiet examples/ex9
 CFLAGS=-g ./subx run examples/ex9 z x  ||  ret=$?
 test $ret -eq 2  # 'z' - 'x'
 test `uname` = 'Linux'  &&  {
@@ -101,7 +100,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex10
 CFLAGS=-g ./subx translate examples/ex10.subx  -o examples/ex10
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex10
+git diff --quiet examples/ex10
 CFLAGS=-g ./subx run examples/ex10 abc abc  ||  ret=$?
 test $ret -eq 1  # equal
 CFLAGS=-g ./subx run examples/ex10 abc abcd  # 0; not equal
@@ -113,7 +112,7 @@ test `uname` = 'Linux'  &&  {
 
 echo ex11
 CFLAGS=-g ./subx translate examples/ex11.subx  -o examples/ex11
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex11
+git diff --quiet examples/ex11
 CFLAGS=-g ./subx run examples/ex11
 echo
 test `uname` = 'Linux'  &&  {
@@ -123,13 +122,13 @@ test `uname` = 'Linux'  &&  {
 
 echo ex12
 CFLAGS=-g ./subx translate examples/ex12.subx  -o examples/ex12
-test `uname -m` = 'i686'  &&  git diff --quiet examples/ex12
+git diff --quiet examples/ex12
 CFLAGS=-g ./subx run examples/ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
 test `uname` = 'Linux'  &&  examples/ex12
 
 echo factorial
 CFLAGS=-g ./subx translate *.subx apps/factorial.subx  -o apps/factorial
-test `uname -m` = 'i686'  &&  git diff --quiet apps/factorial
+git diff --quiet apps/factorial
 CFLAGS=-g ./subx run apps/factorial  ||  ret=$?
 test $ret -eq 120  # factorial(5)
 CFLAGS=-g ./subx run apps/factorial test
@@ -143,7 +142,7 @@ test `uname` = 'Linux'  &&  {
 
 echo crenshaw2-1
 CFLAGS=-g ./subx translate *.subx apps/crenshaw2-1.subx  -o apps/crenshaw2-1
-test `uname -m` = 'i686'  &&  git diff --quiet apps/crenshaw2-1
+git diff --quiet apps/crenshaw2-1
 CFLAGS=-g ./subx run apps/crenshaw2-1 2>crenshaw2-1.out  ||  true
 test "`cat crenshaw2-1.out`" = 'Error: Integer expected'
 test `uname` = 'Linux'  &&  {