From 8a984fa798bb95ae5e1feb4907ce7c2a22b1e0ac Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Mon, 28 Jul 2014 01:59:01 +0200 Subject: [PATCH 01/16] mjc2wsl - fixed number print procedure to use the length of the number; removed TODO --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index 26452e8..9a61bbf 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -212,8 +212,8 @@ public class mjc2wsl{ if (!genInlinePrint) { ret.append("\nPROC Print_MJ(val, format VAR)==\n"); ret.append(createComment("print spacing", C_SPEC)); - ret.append("\n\tIF format>1 THEN\n\t\tFOR i:=2 TO "); - ret.append("format STEP 1 DO PRINFLUSH(\" \") OD\n"); + ret.append("\n\tIF format>1 THEN\n\t\tFOR i:=1 TO "); + ret.append("MAX(0, format-SLENGTH(@String(tempb))) STEP 1 DO PRINFLUSH(\" \") OD\n"); ret.append("\tFI;\n\tPRINFLUSH(val)\nEND\n"); ret.append("\nPROC Print_MJ_CHAR(val, format VAR)==\n"); @@ -670,7 +670,6 @@ public class mjc2wsl{ break; } case print: { - // TODO printing numbers needs different lengths of spacing prl(createStartVar("tempa", "tempb")); prl(createTopTwoEStack()); -- 2.17.1 From cb772f818f110f996bdd38b5da4a1c035838e7e5 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Mon, 28 Jul 2014 15:11:06 +0200 Subject: [PATCH 02/16] mjc2wsl; remove a flag variable when making global vars --- .../transformations/mjc2wsl/mjc2wsl.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index 9a61bbf..f5bb3ea 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -182,11 +182,11 @@ public class mjc2wsl{ ret.append("\nVAR <\n\t"); if (!genLocalVars){ ret.append("\n\ttempa := 0, tempb :=0, tempres := 0,"); - } + } else + ret.append("\n\tmjvm_flag_jump := 0,"); ret.append("mjvm_locals := ARRAY(1,0),"); ret.append("\n\tmjvm_statics := ARRAY("+numWords+",0),"); ret.append("\n\tmjvm_arrays := < >,"); - ret.append("\n\tmjvm_flag_jump := 0,"); ret.append("\n\tmjvm_objects := < >,"); ret.append("\n\tmjvm_estack := < >, mjvm_mstack := < > > :"); @@ -602,18 +602,26 @@ public class mjc2wsl{ case jle: case jgt: case jge: { - prl(createStartVar("tempa", "tempb")); - prl(createTopTwoEStack()); - prl("IF tempb " + mjInput.getRelationFor(op) - + " tempa THEN mjvm_flag_jump := 1" - + " ELSE mjvm_flag_jump := 0" - + " FI;"); - prl(createEndVar()); - prl("IF mjvm_flag_jump = 1 THEN CALL a" - + (mjInput.getCounter() + mjInput.get2()) - + " ELSE CALL a" + (mjInput.getCounter() + 1) - + " FI;"); - + if (genLocalVars) { + prl(createStartVar("tempa", "tempb")); + prl(createTopTwoEStack()); + prl("IF tempb " + mjInput.getRelationFor(op) + + " tempa THEN mjvm_flag_jump := 1" + + " ELSE mjvm_flag_jump := 0" + + " FI;"); + prl(createEndVar()); + prl("IF mjvm_flag_jump = 1 THEN CALL a" + + (mjInput.getCounter() + mjInput.get2()) + + " ELSE CALL a" + (mjInput.getCounter() + 1) + + " FI;"); + } else { + prl(createTopTwoEStack()); + prl("IF tempb " + mjInput.getRelationFor(op) + + " tempa THEN CALL a" + + (mjInput.getCounter() + mjInput.get2()) + + " ELSE CALL a" + (mjInput.getCounter() + 1) + + " FI;"); + } break; } -- 2.17.1 From 6e7963e611956408e4fb26e69ccababdcfa61845 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Mon, 28 Jul 2014 15:17:36 +0200 Subject: [PATCH 03/16] mjc2wsl - added an error to display unrecognized options from the command line --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index f5bb3ea..d50c5a4 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -858,6 +858,8 @@ public class mjc2wsl{ genLocalVars = true; } else if (args[i].compareToIgnoreCase("--genGlobalVars") == 0) { genLocalVars = false; + } else { + System.err.println("unknown option: "+args[i]); } i++; } -- 2.17.1 From c207f4b308f9baee6634f006ebf5e06d76533818 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Wed, 30 Jul 2014 19:34:31 +0200 Subject: [PATCH 04/16] gitignore - folder 'local' for local instalation specifics --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index d41ad38..b6163df 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,8 @@ transf.ini #local custom properties etc custom.properties +#local instalation specifics, experiments etc +local/ + #var local temp files etc .directory -- 2.17.1 From fa49662f7c1f1ff9104e73b987d5115c1ab85a25 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Wed, 30 Jul 2014 19:52:36 +0200 Subject: [PATCH 05/16] mjc2wsl - use the new Read_Line_Proc instead of the function version --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index d50c5a4..c890fef 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -366,7 +366,7 @@ public class mjc2wsl{ if (genPrintForEachAddress) { prl("PRINT(\"a" + mjInput.getCounter() + "\");"); if (genPauseAfterEachAddress) - prl("debug_disposable_string := @Read_Line(Standard_Input_Port);"); + prl("@Read_Line_Proc(VAR debug_disposable_string, Standard_Input_Port);"); } switch (op) { case load: { @@ -659,7 +659,8 @@ public class mjc2wsl{ } case read: { prl(createStartVar("tempa")); - prl("tempa := @String_To_Num(@Read_Line(Standard_Input_Port));"); + prl("@Read_Line_Proc(VAR tempa, Standard_Input_Port);"); + prl("tempa := @String_To_Num(tempa);"); prl(createToEStack("tempa")); prl(createEndVar()); break; -- 2.17.1 From 3f48f8ab0fdd7ffc6d9e15cd89968470ef9ac52d Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Wed, 30 Jul 2014 20:14:47 +0200 Subject: [PATCH 06/16] ant task to generate various versions and tar them --- build.xml | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 4250bbf..a2de8b0 100644 --- a/build.xml +++ b/build.xml @@ -283,7 +283,46 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.17.1 From 9e84964fb3bb33b019cac3063c7944d89a0460c8 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Wed, 30 Jul 2014 22:16:12 +0200 Subject: [PATCH 07/16] mjc2wsl - proper reading of char from the command line and then transformed to a number code --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index c890fef..78f30eb 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -653,9 +653,13 @@ public class mjc2wsl{ // read, print case bread: { - // TODO make it a char for read - messages.message("char is read like a number", TransMessages.M_WAR); - prl(createComment("char is read like a number", C_SPEC)); + // TODO maybe we'll need a bufer for multi chars! + prl(createStartVar("tempa")); + prl("@Read_Line_Proc(VAR tempa, Standard_Input_Port);"); + prl("tempa := @String_To_List(tempa)[1];"); + prl(createToEStack("tempa")); + prl(createEndVar()); + break; } case read: { prl(createStartVar("tempa")); -- 2.17.1 From 6dc62f4d854849045be6915835145c54538af4d4 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Wed, 30 Jul 2014 22:18:07 +0200 Subject: [PATCH 08/16] new InOut samples, one for a char, other for branching --- samples/InOut2.mj | 10 ++++++++++ samples/InOut3.mj | 23 +++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 samples/InOut2.mj create mode 100644 samples/InOut3.mj diff --git a/samples/InOut2.mj b/samples/InOut2.mj new file mode 100644 index 0000000..7c81f38 --- /dev/null +++ b/samples/InOut2.mj @@ -0,0 +1,10 @@ +program InOut2{ + void main() + char c; + { + print('c'); + print('?'); + read(c); + print(c); + } +} \ No newline at end of file diff --git a/samples/InOut3.mj b/samples/InOut3.mj new file mode 100644 index 0000000..73d7ddd --- /dev/null +++ b/samples/InOut3.mj @@ -0,0 +1,23 @@ +program InOut3{ + void main() + char c; + int i; + { + i = 5; + print('c'); + print('?'); + read(c); + print(c); + print(chr(10)); + if (c=='y') { + print('i'); + read(i); + } else { + print('c'); + read(c); + } + print(chr(10)); + print(i,5); + print(c,5); + } +} \ No newline at end of file -- 2.17.1 From e4a1d3722827c39ca4c3d92680abad1728000554 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Fri, 1 Aug 2014 14:07:33 +0200 Subject: [PATCH 09/16] fixed typo (wrong var) in the procedure for printing --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index 78f30eb..9a4493c 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -213,7 +213,7 @@ public class mjc2wsl{ ret.append("\nPROC Print_MJ(val, format VAR)==\n"); ret.append(createComment("print spacing", C_SPEC)); ret.append("\n\tIF format>1 THEN\n\t\tFOR i:=1 TO "); - ret.append("MAX(0, format-SLENGTH(@String(tempb))) STEP 1 DO PRINFLUSH(\" \") OD\n"); + ret.append("MAX(0, format-SLENGTH(@String(val))) STEP 1 DO PRINFLUSH(\" \") OD\n"); ret.append("\tFI;\n\tPRINFLUSH(val)\nEND\n"); ret.append("\nPROC Print_MJ_CHAR(val, format VAR)==\n"); -- 2.17.1 From caa4326027af649b03967612eed6430fc400d3ca Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Fri, 1 Aug 2014 14:36:14 +0200 Subject: [PATCH 10/16] mjc2wsl - inline printing - use the new @Format instead of substringing --- src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index 9a4493c..f5714aa 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -676,7 +676,7 @@ public class mjc2wsl{ prl(createTopTwoEStack()); if (genInlinePrint){ prl(createComment("print spacing and transformation",C_SPEC)); - prl("PRINFLUSH(SUBSTR(\" \", 0, MIN(10, MAX(0,tempa-1))), @List_To_String(< tempb >));"); + prl("PRINFLUSH(@Format(tempa, @List_To_String(< tempb >)));"); } else prl("Print_MJ_CHAR(tempb,tempa);"); prl(createEndVar()); @@ -688,7 +688,7 @@ public class mjc2wsl{ prl(createTopTwoEStack()); if (genInlinePrint){ prl(createComment("print spacing",C_SPEC)); - prl("PRINFLUSH(SUBSTR(\" \", 0, MIN(10, MAX(0, tempa-SLENGTH(@String(tempb))))), tempb);"); + prl("PRINFLUSH(@Format(tempa,tempb));"); } else prl("Print_MJ(tempb,tempa);"); -- 2.17.1 From a8f59160bc7c0f2d5e7b4616fd19ebf27e033924 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 14:52:28 +0200 Subject: [PATCH 11/16] added tutorial for installing FermaT on Linux --- docs/install-fermat-on-linux.txt | 125 +++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 docs/install-fermat-on-linux.txt diff --git a/docs/install-fermat-on-linux.txt b/docs/install-fermat-on-linux.txt new file mode 100644 index 0000000..4b2c1a5 --- /dev/null +++ b/docs/install-fermat-on-linux.txt @@ -0,0 +1,125 @@ +How to install and use FermaT on a Linux machine +================================================ + +The machine that this instructions were tested with was a fresh Ubuntu +install, more precisely Lubuntu 14.04, 64 bit version. It came with +gcc 4.8.2 (4.8.2-19ubuntu1) installed. + +This should work on most distributions from the Debian family (Ubuntu, +Mint, CrunchBang, ...) and with small changes on any other Linux or +BSD system. The main changes are in the usage of the package system - +debian uses ".deb" packages and the "apt-get" command, others use yum, +packman etc. + + +Dependencies +============ + +GNU Compiler Collection (C) +----------------------------- + +For building FermaT you need a working C compiler, GCC recommended. In +Ubuntu there is a convenient package "build-essential" that will +install most of the needed packages for building software. + +use: + + sudo apt-get install build-essential + +When trying to build FermaT it migh complain about a missing +"sys/cdefs.h". This file can be found in libc6-dev package, but you +might also need to install "libc6-dev-i386" (even though it is a 64 +bit system, the shared file is in the old library). + + +Perl +------ + +Perl is included by default, but you also need some extra modules - +Bit::Vector and Set::IntRange. + +If these modules are not installed WSL will work in most cases, but +not all. To be sure everything is ok run "make test" and check that +all the tests succeeded. + +You can use "cpanm" command from the "cpanminus" package for +installing modules. It will automatically find and install any missing +module dependencies. + +You can install them globally on the system with + + sudo cpanm Bit::Vector + sudo cpanm Set::IntRange + +If you don't want to (or can't) install them globally, you can +configure local modules. Try running cpanm without sudo for +suggestions how to do this. + + +Main build +=========== + +You need to download and extract fermat3: + + wget http://www.cse.dmu.ac.uk/~mward/fermat3.tar.gz + tar -xf fermat3.tar.gz + + +Once you are inside the folder you need to "source" the appropriate +DOIT file. This will set up a few environment variables that are +needed for FermaT to work and are also needed for the build process. + +For Ubuntu this will probably be bash: + + cd fermat3 + source DOIT.bash + +After that you can start the build and test process with + + make test + +If everything is already built it will skip straith to the +testing. You want to see all tests pass. + +You can alternatively start the build process directly with: + + make-fermat + + +If everything is ok you should be able to enter "wsl" in the command +line and get a usage message. + + +Running WSL +============ + +FermaT does not install system-wide on it's own. If you want to use it +in a command line you need to source DOIT again. Since DOIT.bash uses +pwd (print working directory) you need to run it in the fermat3 +directory. + +Alternatively you can make a copy of the file (let's call it +myDOIT.bash) and change the line "Fermat=`pwd` to include the install +folder directly, for instance if we extracted fermat3 in our home: + +Fermat=/home/username/fermat3 + +You can then run that file from anywhere and it will setup the values +properly. For instance you can put this file somewhere on the PATH. A +convenient place is to make a "bin" folder in your home if there isn't +one already. This will be included by bash automatically. Then +you could run + + source myDOIT.bash + +from any terminal that you want to run WSL in. + +If you want to have access to wsl in all of the shells you can add +these lines to your .bashrc file (in the home directory). + + +End notes +========= + +Copyright (C) 2014 Doni Pracner; Released under the GNU Free Documentation +Licence https://www.gnu.org/licenses/fdl.html -- 2.17.1 From 70fa713715b2193b36836360710cd54a3a4a25f8 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 15:23:02 +0200 Subject: [PATCH 12/16] updates to the install tutorial by Martin Ward --- docs/install-fermat-on-linux.txt | 109 +++++++++++++++++++++---------- 1 file changed, 74 insertions(+), 35 deletions(-) diff --git a/docs/install-fermat-on-linux.txt b/docs/install-fermat-on-linux.txt index 4b2c1a5..ef964e9 100644 --- a/docs/install-fermat-on-linux.txt +++ b/docs/install-fermat-on-linux.txt @@ -1,3 +1,4 @@ + How to install and use FermaT on a Linux machine ================================================ @@ -16,24 +17,32 @@ Dependencies ============ GNU Compiler Collection (C) ------------------------------ +--------------------------- For building FermaT you need a working C compiler, GCC recommended. In Ubuntu there is a convenient package "build-essential" that will install most of the needed packages for building software. -use: +Debian: + + sudo apt-get install build-essential + +Mageia: - sudo apt-get install build-essential + urpmi gcc make -When trying to build FermaT it migh complain about a missing -"sys/cdefs.h". This file can be found in libc6-dev package, but you -might also need to install "libc6-dev-i386" (even though it is a 64 -bit system, the shared file is in the old library). +Fedora: + + yum install gcc make + +When trying to build FermaT it might complain about a missing +"sys/cdefs.h". This file can be found in libc6-dev package, +but you might also need to install "libc6-dev-i386" (even though +it is a 64 bit system, the shared file is in the old library). Perl ------- +---- Perl is included by default, but you also need some extra modules - Bit::Vector and Set::IntRange. @@ -42,67 +51,97 @@ If these modules are not installed WSL will work in most cases, but not all. To be sure everything is ok run "make test" and check that all the tests succeeded. +Debian: + You can use "cpanm" command from the "cpanminus" package for installing modules. It will automatically find and install any missing module dependencies. You can install them globally on the system with - sudo cpanm Bit::Vector - sudo cpanm Set::IntRange + sudo cpanm Bit::Vector + sudo cpanm Set::IntRange If you don't want to (or can't) install them globally, you can configure local modules. Try running cpanm without sudo for suggestions how to do this. +Mageia, Fedora and other Linux versions: + +If your system does not have cpanm, you can use the CPAN module directly: + + sudo perl -MCPAN -e shell + +This will start the CPAN shell. Type: + + install Set::IntRange + +to install Set::IntRange and Bit::Vector. + Main build -=========== +========== You need to download and extract fermat3: - wget http://www.cse.dmu.ac.uk/~mward/fermat3.tar.gz - tar -xf fermat3.tar.gz + wget http://www.cse.dmu.ac.uk/~mward/fermat3.tar.gz + OR + wget http://www.gkc.org.uk/fermat3.tar.gz + + tar -xf fermat3.tar.gz +To compile and test FermaT: -Once you are inside the folder you need to "source" the appropriate -DOIT file. This will set up a few environment variables that are -needed for FermaT to work and are also needed for the build process. + cd fermat3 + make test -For Ubuntu this will probably be bash: +To run the FermaT scripts from the command line (wsl, dotrans, +make-fermat etc) you need to ensure that the fermat3/bin directory +is in your path and the FermaT environment variable is set. - cd fermat3 - source DOIT.bash +A simple way to do this is to "source" the appropriate DOIT file +from the fermat3 directory. -After that you can start the build and test process with +Most Linux systems use the bash shell by default: - make test + cd fermat3 + source DOIT.bash + +If you use csh or tcsh then: -If everything is already built it will skip straith to the -testing. You want to see all tests pass. + cd fermat3 + source DOIT.csh -You can alternatively start the build process directly with: +After setting the envirotment variable and path, you can recompile FermaT +with the command: make-fermat +You can test some basic WSL commands with: + + test-fermat + +and test some transformations with: + + test-trans If everything is ok you should be able to enter "wsl" in the command line and get a usage message. Running WSL -============ +=========== -FermaT does not install system-wide on it's own. If you want to use it -in a command line you need to source DOIT again. Since DOIT.bash uses -pwd (print working directory) you need to run it in the fermat3 -directory. +FermaT does not install system-wide on it's own. If you want +to use it in a command line you need to source DOIT again. +Since DOIT.bash uses pwd (print working directory) you need to run +it in the fermat3 directory. -Alternatively you can make a copy of the file (let's call it -myDOIT.bash) and change the line "Fermat=`pwd` to include the install -folder directly, for instance if we extracted fermat3 in our home: +Alternatively you can make a copy of the file (let's call it myDOIT.bash) +and change the line "Fermat=`pwd` to refer to the install folder directly, +for instance if we extracted fermat3 in our home: -Fermat=/home/username/fermat3 +FermaT=/home/user/fermat3 You can then run that file from anywhere and it will setup the values properly. For instance you can put this file somewhere on the PATH. A @@ -110,7 +149,7 @@ convenient place is to make a "bin" folder in your home if there isn't one already. This will be included by bash automatically. Then you could run - source myDOIT.bash + source myDOIT.bash from any terminal that you want to run WSL in. @@ -121,5 +160,5 @@ these lines to your .bashrc file (in the home directory). End notes ========= -Copyright (C) 2014 Doni Pracner; Released under the GNU Free Documentation +Copyright (C) 2014 Doni Pracner, Martin Ward; Released under the GNU Free Documentation Licence https://www.gnu.org/licenses/fdl.html -- 2.17.1 From 8ba67d1758b43ac16c2e965aed1db0c479a4366a Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 15:26:14 +0200 Subject: [PATCH 13/16] fermat install tutorial - change of order in the starting paragraphs; improved /home/donny in bash suggestion --- docs/install-fermat-on-linux.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/install-fermat-on-linux.txt b/docs/install-fermat-on-linux.txt index ef964e9..b3b1ad8 100644 --- a/docs/install-fermat-on-linux.txt +++ b/docs/install-fermat-on-linux.txt @@ -2,16 +2,16 @@ How to install and use FermaT on a Linux machine ================================================ -The machine that this instructions were tested with was a fresh Ubuntu -install, more precisely Lubuntu 14.04, 64 bit version. It came with -gcc 4.8.2 (4.8.2-19ubuntu1) installed. - -This should work on most distributions from the Debian family (Ubuntu, -Mint, CrunchBang, ...) and with small changes on any other Linux or -BSD system. The main changes are in the usage of the package system - +These instructions should work on most distributions from the Debian family +(Ubuntu, Mint, CrunchBang, ...) and with small changes on any other Linux or +BSD system. The main changes are in the usage of the package system - debian uses ".deb" packages and the "apt-get" command, others use yum, packman etc. +The machine that these instructions were tested with was a fresh Ubuntu +install, more precisely Lubuntu 14.04, 64 bit version. It came with gcc +4.8.2 (4.8.2-19ubuntu1) installed. + Dependencies ============ @@ -141,7 +141,7 @@ Alternatively you can make a copy of the file (let's call it myDOIT.bash) and change the line "Fermat=`pwd` to refer to the install folder directly, for instance if we extracted fermat3 in our home: -FermaT=/home/user/fermat3 +FermaT=$HOME/fermat3 You can then run that file from anywhere and it will setup the values properly. For instance you can put this file somewhere on the PATH. A -- 2.17.1 From 2eca86bb543c5baa04e8a1b741e5b80b6fb75951 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 15:33:55 +0200 Subject: [PATCH 14/16] main readme --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8014c16..938e849 100644 --- a/README.md +++ b/README.md @@ -8,26 +8,28 @@ folder. More about the tools can be found in the "docs" folder. Quick build and test -------------------- -Running ant in the folder should compile the tool as well as the MJ compiler -and then do a test - compile all of the sample MicroJava codes into MJ -bytecode, translate them to WSL and then apply the given transformations in -MetaWSL to the programs. +Running ant in the folder should compile the tool and then do a test - +compile all of the sample MicroJava codes into MJ bytecode, translate them +to WSL and then apply the given transformations in MetaWSL to the programs. Look in the "docs" folder for more details about running the available ant -tasks. +tasks, configurations, installations etc. Requirements ------------ -- java JDK for compiling and running the mjc2wsl tool and the MJ compiler + - java JDK for compiling and running the mjc2wsl tool and the MJ compiler -- ant for building and testing --- ant-contrib tasks are needed for some of the tasks + - ant for building and testing + -- ant-contrib tasks are needed for some of the tasks -- FermaT for running the translated examples and applying the transformations -(FermaT Maintanance Environment can be used) -Downloads available at http://www.cse.dmu.ac.uk/~mward/fermat.html + - FermaT for running the translated examples and applying the transformations + (FermaT Maintanance Environment can be used) + Downloads available at http://www.cse.dmu.ac.uk/~mward/fermat.html + +Check the docs folder for a more detailed tutorial on how to install +FermaT under Linux. Setting the FermaT dir -- 2.17.1 From 74e65f87b5a2927cc66448a1e53a5a00b1f2522c Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 15:37:21 +0200 Subject: [PATCH 15/16] main readme - minor formatting for markdown on bitbucket --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 938e849..8c5b612 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Requirements - java JDK for compiling and running the mjc2wsl tool and the MJ compiler - ant for building and testing - -- ant-contrib tasks are needed for some of the tasks + - ant-contrib tasks are needed for some of the tasks - FermaT for running the translated examples and applying the transformations (FermaT Maintanance Environment can be used) -- 2.17.1 From 4df23774d9c5ed527c86fa9178d0b37ae28a6617 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 16 Aug 2014 15:40:52 +0200 Subject: [PATCH 16/16] main readme - minor formatting for markdown on bitbucket --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c5b612..4efb155 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Requirements - java JDK for compiling and running the mjc2wsl tool and the MJ compiler - ant for building and testing - - ant-contrib tasks are needed for some of the tasks + - ant-contrib tasks are needed for some of the tasks - FermaT for running the translated examples and applying the transformations (FermaT Maintanance Environment can be used) -- 2.17.1