Tons of dependency fixes and updates * Removed unused JARs from org.simantics.scenegraph and re-exported org.apache.batik from there instead of including three old batik JARs internally to export the batik parser. * Replaced all dependencies on org.apache.commons.collections with org.apache.commons.collections4 * Removed version specifiers from all org.slf4j.api and org.eclipse.collections.eclipse-collections* dependencies to avoid the need to modify them down the road with new major releases * Explicitly specified all Jetty dependencies to be on version 9.4.24 in an attempt to avoid OSGi (Felix) bundle wiring performance problems experienced by Marko in recent developments. gitlab #485 gitlab #486 Change-Id: Id5a3d62a007fad4a45f601b4d471f061395e556b
Automatic deriving of instances for Json Example: data GeographicalLocation = GeographicalLocation { latitude :: Double, longitude :: Maybe Double } deriving instance Json GeographicalLocation testIt :: <Proc> () testIt = do print $ toJsonString GeographicalLocation { latitude = 1, longitude = Just 2 } print (fromJsonString "{ \"latitude\": 1, \"longitude\": 2 }" :: GeographicalLocation) print $ toJsonString GeographicalLocation { latitude = 1, longitude = Nothing } print (fromJsonString "{ \"latitude\": 1 }" :: GeographicalLocation) #256 Change-Id: I7f44b65472436779045e4d15871858d14132dff9
Minor refactorings related to SCL constructors * Moved recordFieldNames from SCLConstructor to SCLValue and renamed as parameterNames * Replaced String array fieldNames in SCLConstructor and Constructor by more generic ComponentAcces array and renamed as componentAccesses. gitlab #114 Change-Id: I4f8d59a2f028717b6777949c8d8fc6ec6d3b16e9
(refs #7250) CHR rules modularization (first working version) This change adds a complete implementation of CHR modularization. New top level declaration ruleset allows to define rulesets that can be included into other rulesets (see CHR{5,6}.scl). Change-Id: I3a188d788602fa27f863e16969f956d79c9684a9
(refs #7250) Refactoring CHR implementation This change is preparation for the modularization of the CHR rule systems. The main change is moving the major rule execution code from fact classes to priority level classes. Change-Id: Idd63339d8c2cf81e2af07660f0f81cae273c1d62
(refs #7214) Treat $ exactly like function application Converts (f $ p) before type checking to (f p). This slightly changes the semantics of the language for it is now possible to use $ with functions like runProc, syncRead etc. Change-Id: Ida816667a5c9d7623d59ca998a34fe98df5b4732
Fixed all line endings of the repository I followed the instructions in http://stackoverflow.com/a/1511273 git rm --cached -r . git config core.autocrlf true git diff --cached --name-only -z | xargs -0 git add git commit -m "..." Change-Id: I4920748df8f53c221fc2f643e991b66aea5697e0
Merged changes from feature/scl to master. This commit contains lots of SCL compiler and runtime changes: * New CHR-rule based sublanguage. This change alters meaning of when-keyword and so some code using when may break. * Removed type classes Eq and Hashable. Compiler now generates and uses Java methods equals and hashCode. This change is needed for better interoperability with Java code. * Type based overloading for symbols imported from different modules * Some expressions ignore their return value (statements in do/let/where, if and match cases if the return value of if/match is ignored). These expressions can have any type and if/match expression branches may have different types. Also if-expressions may have only else branch. If the return value of apply-experssion is ignored, the expression cannot be partial application that does not have side-effects. * View pattern support (https://ghc.haskell.org/trac/ghc/wiki/ViewPatterns) * Lambda-match support (https://ghc.haskell.org/trac/ghc/wiki/LambdasVsPatternMatching) * String interpolation can be used also in patterns * SCL compiler regression test suite has been moved to a new bundle org.simantics.scl.compiler.tests * Improvements to SCL module editor syntax coloring * SCL compiler refactorings, for example all name constants are now in a dedicated class Names and CompilationContext merging old context classes * Improved byte code for comparisons * Improved code generation from string interpolation * Anonymous object support in SCL backend (not yet frontend support) * Bugfixes and new regression tests refs #6888 Change-Id: I9d4c001d0323069d3b86a83369fa3581f02ee305
Migrated source code from Simantics SVN