many updates
[dotfiles.git] / clean / .local / bin / install_clean.sh
index acf04f0..745a9e1 100755 (executable)
@@ -1,4 +1,107 @@
 #!/bin/sh
-mv /opt/clean /opt/clean.bak
+cd /tmp
 curl ftp://ftp.cs.ru.nl/pub/Clean/builds/linux-x64/clean-bundle-complete-linux-x64-latest.tgz | tar -xz
+rm -rf /opt/clean
 mv clean-bundle-complete /opt/clean
+
+patch /opt/clean/lib/StdEnv/StdGeneric.dcl <<EOPATCH
+--- StdGeneric.dcl     2018-12-17 02:43:55.000000000 +0100
++++ StdGeneric.dcl     2018-12-17 11:06:09.196234236 +0100
+@@ -64,6 +64,16 @@
+ derive bimap FIELD
+ derive bimap (->)
++generic binumap a b | binumap b a :: a -> b
++derive binumap c
++derive binumap PAIR
++derive binumap EITHER
++derive binumap OBJECT
++derive binumap CONS
++derive binumap RECORD
++derive binumap FIELD
++derive binumap (->)
++
+ // HACK: dictionaries for all generics.
+ // It works since all generic classes have only one method and do not inherit 
+ // from other classes
+EOPATCH
+
+patch /opt/clean/lib/StdEnv/StdGeneric.icl <<EOPATCH
+--- StdGeneric.icl     2018-12-17 02:43:55.000000000 +0100
++++ StdGeneric.icl     2018-12-17 11:06:09.196234236 +0100
+@@ -21,6 +21,23 @@
+ bimap{|(->)|} _ ba fr _ f = comp3 fr f ba
++binumap{|c|} x = x
++
++binumap{|PAIR|} fx _ fy _ (PAIR x y) = PAIR (fx x) (fy y)
++
++binumap{|EITHER|} fl _ fr _ (LEFT x)  = LEFT (fl x)
++binumap{|EITHER|} fl _ fr _ (RIGHT x) = RIGHT (fr x)
++
++binumap{|CONS|} fx _ (CONS x) = CONS (fx x)
++
++binumap{|RECORD|} fx _ (RECORD x) = RECORD (fx x)
++
++binumap{|FIELD|} fx _ (FIELD x) = FIELD (fx x)
++
++binumap{|OBJECT|} fx _ (OBJECT x) = OBJECT (fx x)
++
++binumap{|(->)|} _ ba fr _ f = comp3 fr f ba
++
+ comp3 :: !(.a -> .b) u:(.c -> .a) !(.d -> .c) -> u:(.d -> .b)
+ comp3 f g h
+       | is_id f
+EOPATCH
+
+patch /opt/clean/etc/IDEEnvs <<EOPATCH
+--- IDEEnvs    2018-12-17 11:58:48.876039159 +0100
++++ IDEEnvs    2018-12-17 12:00:52.384066455 +0100
+@@ -35,13 +35,44 @@
+                       Path:   {Application}/lib/StdEnv
+                       Path:   {Application}/lib/Dynamics
+                       Path:   {Application}/lib/TCPIP
++                      Path:   {Application}/lib/Gast
+                       Path:   {Application}/lib/Platform
+                       Path:   {Application}/lib/Platform/Deprecated/Generics
++                      Path:   {Application}/lib/Platform/Deprecated/ArgEnv
++                      Path:   {Application}/lib/Platform/Deprecated/MersenneTwister
+                       Path:   {Application}/lib/Platform/Deprecated/StdLib
+                       Path:   {Application}/lib/Sapl
+                       Path:   {Application}/lib/GraphCopy
+                       Path:   {Application}/lib/iTasks
+-              EnvironmentCompiler:    lib/exe/cocl::-dynamics -sapl
++              EnvironmentCompiler:    lib/exe/cocl:-h 500m -s 20m:-dynamics -sapl
++              EnvironmentCodeGen:     lib/exe/cg
++              EnvironmentLinker:      lib/exe/linker|lib/exe/sapl-collector-linker|lib/exe/itasks-web-collector
++              EnvironmentDynLink:     lib/exe/linker
++              EnvironmentVersion:     920
++              EnvironmentRedirect:    False
++              EnvironmentCompileMethod:       Pers
++              EnvironmentProcessor:   I386
++              Environment64BitProcessor:      True
++      Environment
++              EnvironmentName:        iTasks-git
++              EnvironmentPaths
++                      Path:   {Application}/lib/StdEnv
++                      Path:   {Application}/lib/Dynamics
++                      Path:   {Application}/lib/TCPIP
++                      Path:   {Application}/lib/Sapl
++                      Path:   {Application}/lib/GraphCopy
++                      Path:   {Application}/lib/Gast
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/Platform-x86
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Posix
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Linux
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Linux-64
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Independent
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Independent/Deprecated/Generics
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Independent/Deprecated/StdLib
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Independent/Deprecated/ArgEnv
++                      Path:   /home/mrl/projects/clean/clean-platform/src/libraries/OS-Independent/Deprecated/MersenneTwister
++                      Path:   /home/mrl/projects/clean/iTasks-SDK/Libraries
++              EnvironmentCompiler:    lib/exe/cocl:-h 500m -s 20m:-dynamics -sapl
+               EnvironmentCodeGen:     lib/exe/cg
+               EnvironmentLinker:      lib/exe/linker|lib/exe/sapl-collector-linker|lib/exe/itasks-web-collector
+               EnvironmentDynLink:     lib/exe/linker
+EOPATCH