Merge "List the unsatisfied dependencies in CanvasContext"
authorJani Simomaa <jani.simomaa@vtt.fi>
Wed, 28 Dec 2016 14:17:03 +0000 (16:17 +0200)
committerGerrit Code Review <gerrit2@www.simantics.org>
Wed, 28 Dec 2016 14:17:03 +0000 (16:17 +0200)
665 files changed:
.gitattributes [new file with mode: 0644]
.mvn/extensions.xml
bundles/org.simantics.acorn/src/org/simantics/acorn/ClusterManager.java
bundles/org.simantics.acorn/src/org/simantics/acorn/GraphClientImpl2.java
bundles/org.simantics.acorn/src/org/simantics/acorn/lru/ChangeSetInfo.java
bundles/org.simantics.desktop.product/simantics-desktop.product
bundles/org.simantics.image.ui/scl/Simantics/Image.scl
bundles/org.simantics.modeling.ui.workbench/META-INF/MANIFEST.MF
bundles/org.simantics.modeling.ui/scl/Simantics/Testing/ActionBrowseContext.scl
bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphModuleSourceRepository.java
bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphPropertyRelation.java
bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphRelation.java
bundles/org.simantics.modeling/src/org/simantics/modeling/scl/OntologyModuleSourceRepository.java
bundles/org.simantics.scl.compiler/.classpath
bundles/org.simantics.scl.compiler/.settings/org.eclipse.core.resources.prefs [deleted file]
bundles/org.simantics.scl.compiler/ActiveTests.launch [deleted file]
bundles/org.simantics.scl.compiler/META-INF/MANIFEST.MF
bundles/org.simantics.scl.compiler/SCLRegressionTests.launch [deleted file]
bundles/org.simantics.scl.compiler/build.properties
bundles/org.simantics.scl.compiler/src/org/cojen/classfile/TypeDesc.java
bundles/org.simantics.scl.compiler/src/org/cojen/util/KeyFactory.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/cojen/util/ReferencedValueHashMap.java
bundles/org.simantics.scl.compiler/src/org/cojen/util/WeakIdentityMap.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/commands/CommandSession.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/common/names/Names.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CompilationContext.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/DeclarationClassification.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/DocumentationGeneration.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/Elaboration.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NamespaceOfModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/SCLCompiler.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/TypeChecking.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/TypeCheckingScheduler.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/BooleanConstant.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/ComparisonFunction.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/JavaComparisonOperation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/JavaComparisonToZeroOperation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/SCLConstant.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/StringInterpolation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/UnsafeCoerce.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/generic/CallJava.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/generic/Pop2OutputFilter.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/generic/PopOutputFilter.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/singletons/IncreaseByOne.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/singletons/ListElement.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/singletons/ListLength.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/singletons/NullCheck.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/singletons/UnsafeCoerce.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRLiteral.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRQuery.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRelation.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRule.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRuleset.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRulesetObject.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/analysis/UsageAnalysis.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AssignOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/CheckOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/ClaimOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/ExecuteOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/IterateConstraintOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/IterateListOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/IterateRelationOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/MatchOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PartnerFact.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PlanContext.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PlanOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PlanRealizer.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PostCommitOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PreCommitOp.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PrioritizedPlan.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/PlanPriorityQueue.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/PrePlanItem.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/QueryPlanningContext.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/CheckPrePlanItem.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/EqualsPrePlanItem.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/GenericPrePlanItem.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/MemberPrePlanItem.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/CHRConstraint.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/SpecialCHRRelation.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/UnresolvedCHRRelation.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/translation/CHRTranslation.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/SimplificationContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/TranslationContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/TypeTranslationContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/TypingContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/Case.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/DecoratingExpression.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EApply.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAsPattern.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBinary.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBlock.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ECHRRuleset.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EConstant.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EFieldAccess.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EIf.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EIntegerLiteral.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ELambda.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ELambdaType.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ELet.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ELiteral.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EMatch.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EPreLet.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EPreRuleset.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERange.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERealLiteral.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERuleset.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ESelect.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ESimpleLambda.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ESimpleLet.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EStringLiteral.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVariable.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EViewPattern.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/Expression.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ExpressionTransformer.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ExpressionVisitor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/Expressions.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/GuardedExpressionGroup.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionTransformer.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/StandardExpressionVisitor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/BindStatement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/CHRStatement.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/ConstraintStatement.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/GuardStatement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/LetStatement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/RuleStatement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/Statement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/block/StatementGroup.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/printing/ExpressionToStringVisitor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/Builtins.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/EqualsFunction.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/ListConstructor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/MemberRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/OptionalRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeAlias.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeDescriptor.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/query/QNegation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/query/compilation/EnforcingContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/query/compilation/QueryCompilationContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/AbstractRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/ConcreteRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/LocalRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/SCLRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/TransitiveClosureRelation.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/AbstractEnvironment.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/EmptyNamespace.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environment.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environments.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Namespace.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/NamespaceImpl.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/errors/ErrorLog.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/analysis/LoopAnalysis.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/analysis/StatementBrowser.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/CHRCodeGenerator.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/ExampleStore.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/optimization/FoldlBuildFusion.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/optimization/OptimizationMap.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/references/Val.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSABlock.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAClosure.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAExit.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAFunction.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAObject.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAStatement.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/StaticField.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/binders/ClosureBinder.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/binders/FunctionBinder.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/exits/If.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/exits/Jump.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/exits/Switch.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/exits/Throw.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetApply.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetFunctions.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/types/JavaTypeTranslator.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/types/StandardTypeConstructor.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/CodeBuilderUtils.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/JavaNamingPolicy.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilder.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilderBase.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/SSALambdaLiftingContext.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ValRefVisitor.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/CodeWriter.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/ModuleWriter.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/RecursiveDefinitionWriter.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/EqDeriver.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/HashableDeriver.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/IODeriver.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/InstanceDerivers.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/OrdDeriver.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/ShowDeriver.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/constraints/ConstraintEnvironment.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/constraints/ConstraintSolver.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/PatternMatchingCompiler.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/Row.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching2/PatternMatchingCompiler2.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching2/Row2.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/transformations/TransformationBuilder.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/transformations/UnifiableFactory.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCL.grammar
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.flex
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.dat
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParserImpl.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLPostLexer.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLTerminals.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/types/TApplyAst.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/types/TVarAst.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/markdown/html/SCLDocumentationExtensionNodeHandler.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/LazyModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/ExpressionClassLoader.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/RuntimeModule.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/AbstractModuleSourceRepository.java [deleted file]
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/ClassModuleSourceRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/CompositeModuleSourceRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/FileModuleSourceRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/MapModuleSourceRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/ModuleSourceRepository.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ExpressionEvaluator.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/SCLCompilerConfiguration.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ToplevelEffectDecorator.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Skeletons.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TApply.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TCon.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TForAll.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TFun.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TMetaVar.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TPred.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TUnion.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/TVar.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Type.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Types.java
bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/util/SkeletonKeyMap.java [new file with mode: 0644]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/ActiveTests.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/FindAllowedChars.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/ModuleRegressionTests.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/RegressionTests.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/ScriptTestBase.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/ScriptTests.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestAll.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestBase.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestClassNaming.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestCommandParsing.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestCommandSession.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestExpressionEvaluator.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestTypeDesc.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/UnimplementedTests.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/experimentation/RecursiveInitialization.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/experimentation/TestEquals.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/experimentation/TestTypeDesc.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/imports/Maybe4Imports.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/markdown/spec.txt [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/performance/SumOfInverses.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/performance/SumOfInverses2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/AmbiguousType.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ApplicationOfNunfunction.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Arity1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/AsPattern.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BigContext.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BigFunction.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BigInstances.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BinaryOperators1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BlankExpression.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/BooleanId.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Bug4450.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Character1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ClashingClass.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ClashingData.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ClashingInstance.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ClashingValueDefinition.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ClashingValueType.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Collaz.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Compose.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Composition.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ConjunctionMacro.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Constant.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ConstructorNameClash.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/DefaultMethods1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Deriving3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Deriving4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/DifferentBranchTypes.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Div.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/DoubleConversion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/DoubleEffect.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Effects6.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/EmptyLet.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Equality.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Equations1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ExistentialData.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ExistentialData2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ExpressionParsing.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FaultyRecursion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Fibonacci.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Fibonacci2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Fibonacci3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FingerTree.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FoldMissingInitialValue.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FoldlBuild1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FoldlBuild2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Forall1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Forall2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Forall3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Formula.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FromDynamic.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FromDynamic2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FromDynamic3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FromDynamic4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FromDynamic5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FunctionFunctor.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FunctionalDependencies1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FunctionalDependencies2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Functor.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/FunctorM1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Generalization.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/GenericMutualRecursion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/GlobalVariables.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/GraphPrelude.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/GuardedExpressionBug.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Guards1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Guards2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/IdAsOperator.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/IllegalChar.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ImportJavaConstructor.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ImportRef.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InconsistentArity.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InconsistentIndentation.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/IndentationAndParenthesis.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Index.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Inline1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InlineLoop.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InstanceHierarchy.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InstanceIsTypoedAsClass.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InstanceTypeVariables.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidClass1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidEncoding.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidInstance1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidJavaTypeAnnotation.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidKinds.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidKinds2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidKinds3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidLambda.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidModule.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidPattern1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidPattern2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidPattern3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidPattern4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidRuleset1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidRuleset2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/InvalidTypeClassInstance1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/JavaAccess1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/JavaConstructors.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/JavaMethods.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/JavaTypes.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Kinds1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LP.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Lambda.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Layout1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/List.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListError1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListError2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax10.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax11.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax12.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax6.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax7.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax8.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntax9.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ListSyntaxWithoutPrelude.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LocalDefinitions.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LocalDefinitions2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LocalDefinitions3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LocalDefinitions4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/LocalDefinitions5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Macros1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Macros2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Macros3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Macros4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Map1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MarketModel.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MarketModel2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching3b.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MatchingWithMissingParameter.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MatchingWithoutTypeAnnotations.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MaximumBy.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Maybe1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Maybe2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Maybe3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Maybe4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MissingEffect.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MissingMethod.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MissingTypeParameter.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ModuleInitialization.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MonadBug1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MonadSyntax1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/MonadSyntax2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Monads1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NoDefinitionErrorMessage.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NoInstance.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NoInstance2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NonassociativeOperator.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NonexistentTypeClassInAnnotation.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/NonexistingEffect.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OneLineMatch.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OpenString1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OpenString2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/OverloadedLiterals2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Overloading1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Overloading2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Overloading3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Parsing.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/PatternError.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/PolymorphicRecursion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/PolymorphicRecursion2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Polynomials.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/PrecedenceOfNonoperators.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Primes.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Proc1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Proc2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Proc3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Pythagoras.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Random1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RangeSyntax.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Record1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecordShorthand.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecursiveContext.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecursiveValues.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecursiveValues2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecursiveValues3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RecursiveValues4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RedBlackTrees.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Relations1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Relations2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/RepeatedVariableInPattern.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SSATypingBug.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Scanl.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Search.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Sections.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select6.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select7.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select8.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Select9.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SelfReferringContextInTypeClass.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Serialization.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Serialization2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Serialization3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Set1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SharedTypeVariable.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ShortcutFusion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Show1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Signals.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SinConst1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Sort.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Sort2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SpecConstr1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StackTrace.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StreamFusion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StringEscape.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StringInterpolation1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StringInterpolation2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/StringMatching1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/SumOfInverses2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Timing.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TooManyParametersToSin.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation4.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation5.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation6.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Transformation7.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TransformationOrder.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Tuples.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Tuples2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAlias1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAlias2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAlias3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAliasRefsToTypeAlias.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAnnotation1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeAnnotation2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClass.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClass2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClassBug1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClassBug2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeInferenceBug2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeOf1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypingBug1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypingError1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypingError2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnaryMinus.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UndefinedValue.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnexpectedToken.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Unification1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnknownAnnotation.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnresolvedClass.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnresolvedTypeInAnnotation.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnresolvedTypeInInstance.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnresolvedVariable.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/UnresolvedVariable2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ValueAsOperator.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/ValueConversion.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Vector1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Vector2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Void1.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Void2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Void3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/While.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/While2.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/While3.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/WrongDefaultMethod.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/WrongInstanceMethod.scl [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scripts/Arithmetic.sts [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scripts/Functions.sts [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scripts/Functions2.sts [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scripts/Lists.sts [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/unit/TestConstraintSolver.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/unit/TestNamespaceFilter.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/unit/TestSubSolver.java [deleted file]
bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/unit/TestTypeParser.java [deleted file]
bundles/org.simantics.scl.compiler/tools/procyon-decompiler-0.5.29.jar [deleted file]
bundles/org.simantics.scl.data/scl/Data/Json.scl
bundles/org.simantics.scl.data/scl/Data/XML.scl
bundles/org.simantics.scl.db/scl/Simantics/DB.scl
bundles/org.simantics.scl.db/scl/Simantics/Variables.scl
bundles/org.simantics.scl.osgi/META-INF/MANIFEST.MF
bundles/org.simantics.scl.osgi/build.properties
bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleModuleSource.java
bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleModuleSourceRepository.java
bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/FileSystemModuleSourceRepository.java
bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/ServiceBasedModuleSourceRepository.java
bundles/org.simantics.scl.runtime/META-INF/MANIFEST.MF
bundles/org.simantics.scl.runtime/scl/Arbitrary.scl
bundles/org.simantics.scl.runtime/scl/ArrayList.scl
bundles/org.simantics.scl.runtime/scl/BigInteger.scl
bundles/org.simantics.scl.runtime/scl/Collection.scl
bundles/org.simantics.scl.runtime/scl/Databoard.scl
bundles/org.simantics.scl.runtime/scl/Prelude.scl
bundles/org.simantics.scl.runtime/scl/SList.scl
bundles/org.simantics.scl.runtime/scl/Vector.scl
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/chr/CHRHashIndex.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/chr/CHRHashOverflowException.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/chr/Fact.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/chr/FactActivationQueue.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/chr/PriorityContainer.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/tests/org/simantics/scl/runtime/tests/TestCHRHashIndex.java [new file with mode: 0644]
bundles/org.simantics.scl.runtime/tests/org/simantics/scl/runtime/tests/TestFactActivationQueue.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/META-INF/MANIFEST.MF
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SCLSourceViewerConfigurationNew.java
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/completion/SCLTextEditorEnvironment.java
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/DebugPartionTokenScanner.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLModuleEditor2DocumentProvider.java
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLPartitionScanner.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLPresentationReconciler.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SingleTokenScanner.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/StringTokenScanner.java [new file with mode: 0644]
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/info/SCLInfo.java
bundles/org.simantics.tests.modelled.ui.ontology/graph.tg
bundles/org.simantics.tests.modelled.ui.ontology/graph/TestsUI.pgraph
bundles/org.simantics.tests.modelled.ui.ontology/src/org/simantics/tests/modelled/ui/ontology/TestsUIResource.java
bundles/org.simantics.tests.modelled.ui/META-INF/MANIFEST.MF
bundles/org.simantics.tests.modelled.ui/adapters.xml [new file with mode: 0644]
bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/STSSuiteSorterRule.java [new file with mode: 0644]
bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/STSTestSuiteModel.java
bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/RuntimeSTSRunner.java
bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/RuntimeSTSSuiteRunner.java
bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/RuntimeSTSTestRunner.java
bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/RuntimeTestCollector.java
bundles/org.simantics/src/org/simantics/Simantics.java
features/org.simantics.desktop.product.feature/feature.xml
features/org.simantics.help.addons.feature/feature.xml
features/org.simantics.modeling.ui.workbench.feature/feature.xml
features/org.simantics.platform.feature/feature.xml
features/org.simantics.platform.ui.feature/feature.xml
features/org.simantics.sdk.feature/feature.xml
features/org.simantics.ui.workbench.feature/feature.xml
features/org.simantics.utils.feature/feature.xml
features/org.simantics.utils.ui.feature/feature.xml
features/org.simantics.wiki.ui.feature/feature.xml
features/org.simantics.workbench.feature/feature.xml
releng/doc/dump-mysql-db.sh [new file with mode: 0755]
releng/doc/dump-wikis.sh [new file with mode: 0755]
releng/doc/release.html [new file with mode: 0644]
releng/doc/release.md [new file with mode: 0644]
releng/org.simantics.sdk.build.p2.site/pom.xml
releng/org.simantics.sdk.build.targetdefinition/simantics.target [moved from releng/org.simantics.sdk.build.targetdefinition/org.simantics.sdk.build.targetdefinition-semantum.target with 92% similarity]
releng/org.simantics.sdk.repository/category.xml
releng/org.simantics.sdk.repository/pom.xml
releng/org.simantics.target/.htpasswd [deleted file]
releng/org.simantics.target/.project [deleted file]
releng/org.simantics.target/rmap/Modelica.rmap [deleted file]
releng/org.simantics.target/rmap/SDK.rmap [deleted file]
releng/org.simantics.target/rmap/Simantics.rmap [deleted file]
releng/org.simantics.target/rmap/Sysdyn.rmap [deleted file]
releng/org.simantics.target/rmap/Tutorials.rmap [deleted file]
releng/org.simantics.target/simantics.target [deleted file]
releng/org.simantics.tycho.configuration/pom.xml
tests/org.simantics.scl.compiler.tests/META-INF/MANIFEST.MF
tests/org.simantics.scl.compiler.tests/logback.xml [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/ActiveTests.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/AllTestsForCoverage.java [moved from bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/TestActive.java with 51% similarity]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/ModuleRegressionTests.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestBase.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestClassNaming.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestCommandSession.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestExpressionEvaluator.java
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/markdown/MarkdownTests.java [moved from bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/markdown/RunMarkdownTests.java with 92% similarity]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/markdown/RunMarkdownTests.java [deleted file]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/markdown/spec.txt
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Arity1.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/CHR1.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/CHR2.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/CHR3.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/ClosingBrace.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Equality.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/FoldMissingInitialValue.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/IfWithoutElse.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/InvalidLambda.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/LambdaMatch.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Macros2.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Polynomials.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Primes.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Serialization4.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Signals.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/StringInterpolation2.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/StringInterpolation3.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Transformation2.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/UnexpectedToken.scl
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/ViewPatterns1.scl [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/unit/TestCHRCodeGenerator.java [new file with mode: 0644]
tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/unit/TestNamespaceFilter.java

diff --git a/.gitattributes b/.gitattributes
new file mode 100644 (file)
index 0000000..146504c
--- /dev/null
@@ -0,0 +1,10 @@
+*.java      text\r
+*.pgraph    text\r
+*.scl       text\r
+*.xml       text\r
+*.svg       text\r
+MANIFEST.MF text\r
+\r
+*.tg        binary\r
+*.png       binary\r
+*.gif       binary
\ No newline at end of file
index 2d97f0e0d341141aca355b2c4e8ad7970b8ac31e..19c1651eabad3ae02a218ba625fd438af450d408 100644 (file)
@@ -3,6 +3,6 @@
   <extension>\r
     <groupId>org.eclipse.tycho.extras</groupId>\r
     <artifactId>tycho-pomless</artifactId>\r
-    <version>0.25.0</version>\r
+    <version>0.26.0</version>\r
   </extension>\r
 </extensions> 
\ No newline at end of file
index 51db52efc55a43108df3939b5bd23561700b6784..b2a30953cca9e0bff26e72dc69a788139e52a817 100644 (file)
@@ -70,7 +70,7 @@ public class ClusterManager {
                info.acquireMutex();
                try {
                        info.makeResident();
-                       return info.getCSSIds();
+                       return info.getCCSIds();
                } finally {
                        info.releaseMutex();
                }
index 05f9c8de00b66c315f9a6c5317026f28c0c664cb..90af336aafdc079fe99b6210ad9d139211d86f45 100644 (file)
@@ -122,10 +122,10 @@ public class GraphClientImpl2 implements Database.Session {
                                                mainProgram.mutex.release();
                                        }
                                } catch (IllegalAcornStateException | ProCoreException e) {
-                                       Logger.defaultLogError(e);
+                                       Logger.defaultLogError("Snapshotting failed", e);
                                        unexpectedClose = true;
                                } catch (InterruptedException e) {
-                                       Logger.defaultLogError(e);
+                                       Logger.defaultLogError("Snapshotting interrupted", e);
                                } finally {
                                        try {
                                                if(tr != null)
@@ -135,11 +135,11 @@ public class GraphClientImpl2 implements Database.Session {
                            try {
                                support.close();
                            } catch (DatabaseException e1) {
-                               Logger.defaultLogError(e1);
+                               Logger.defaultLogError("Failed to close database as a safety measure due to failed snapshotting", e1);
                            }
                                                }
                                        } catch (ProCoreException e) {
-                                               Logger.defaultLogError(e);
+                                               Logger.defaultLogError("Failed to end snapshotting write transaction", e);
                                        }
                                }
                        }
@@ -239,18 +239,17 @@ public class GraphClientImpl2 implements Database.Session {
 
        @Override
        public long cancelCommit(long transactionId, long changeSetId, byte[] metadata, OnChangeSetUpdate onChangeSetUpdate) throws ProCoreException {
-           UnsupportedOperationException e = new UnsupportedOperationException("org.simantics.acorn.GraphClientImpl2.cancelCommit() is not supported operation! Closing down to prevent further havoc");
-           clusters.notSafeToMakeSnapshot(new IllegalAcornStateException(e));
-           throw e;
-//         System.err.println("GraphClientImpl2.cancelCommit() called!! this is experimental and might cause havoc!");
-//         try {
-//            undo(new long[] {changeSetId}, onChangeSetUpdate);
-//        } catch (SDBException e) {
-//            e.printStackTrace();
-//            throw new ProCoreException(e);
-//        }
-//         clusters.state.headChangeSetId++;
-//         return clusters.state.headChangeSetId;
+               // Accept and finalize current transaction and then undo it
+               acceptCommit(transactionId, changeSetId, metadata);
+
+               try {
+                       undo(new long[] {changeSetId+1}, onChangeSetUpdate);
+                       clusters.state.headChangeSetId++;
+                       return clusters.state.headChangeSetId;
+               } catch (SDBException e) {
+                       Logger.defaultLogError("Failed to undo cancelled transaction", e);
+                       throw new ProCoreException(e);
+               }
        }
 
        @Override
@@ -622,10 +621,11 @@ public class GraphClientImpl2 implements Database.Session {
                        ArrayList<String> ccss = clusters.getChanges(id);
     
                        for(int j=0;j<ccss.size();j++) {
+                               String ccsid = ccss.get(ccss.size()-j-1);
                                try {
                                        if(ClusterUpdateProcessorBase.DEBUG)
-                                               System.err.println("performUndo " + ccss.get(ccss.size()-j-1));
-                                       performUndo(ccss.get(ccss.size()-j-1), clusterChanges, support);
+                                               System.err.println("performUndo " + ccsid);
+                                       performUndo(ccsid, clusterChanges, support);
                                } catch (DatabaseException e) {
                                        e.printStackTrace();
                                }
index a730e136d3b8bce4c6bd18b922fb3344a0285d53..a19a8540b48d3faafcf002541a622032046396a8 100644 (file)
@@ -31,7 +31,7 @@ public class ChangeSetInfo extends LRUObject<Long, ChangeSetInfo> {
                LRU.insert(this, accessTime);
        }
        
-       public ArrayList<String> getCSSIds() throws AcornAccessVerificationException {
+       public ArrayList<String> getCCSIds() throws AcornAccessVerificationException {
                if(VERIFY) verifyAccess();
                return clusterChangeSetIds;
        }
index af09f04b71ed02b8712e52714905e6efa5dc9c0a..109d06cc54864b5d45b82c03c96ee207811f25a9 100644 (file)
@@ -26,10 +26,10 @@ org.eclipse.e4.ui.css.theme.e4_classic
 -Xmx500M\r
 -Xshare:off\r
 -XX:MaxPermSize=192m\r
--Djava.net.preferIPv4Stack=true\r
 -Dorg.simantics.workbench.application.showFastViewBars=false\r
 -Dorg.simantics.workbench.application.showPerspectiveBar=false\r
 -Dorg.simantics.workbench.application.excludePerspectiveFromTitle=true\r
+-Djava.util.Arrays.useLegacyMergeSort=true\r
 -Declipse.workaround.bug467000=true\r
       </vmArgs>\r
       <vmArgsWin>-Dorg.osgi.framework.os.name=win32\r
@@ -60,6 +60,7 @@ org.eclipse.e4.ui.css.theme.e4_classic
       <feature id="org.simantics.desktop.product" version="1.0.0.qualifier"/>\r
    </features>\r
 \r
+\r
    <preferencesInfo>\r
       <targetfile overwrite="false"/>\r
    </preferencesInfo>\r
index df9ba836019a09c8b5a12aa43d8d9b4a29be4e4f..2faaaf9e2dd3fed2281ab90d8e00e496447d95cb 100644 (file)
@@ -1,7 +1,6 @@
 include "Simantics/Entity" hiding (nameOf)\r
 import "Simantics/Misc"\r
 import "Simantics/Library"\r
-import "Simantics/DrawingTemplate"\r
 \r
 type Image = Resource\r
 \r
index e5a9cf6b1ca17a23130edfd28a5e337bbd164a01..5adc0cb6dd4ce199d1f26897bbfdf27fe20bb221 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: General Modeling Workbench Contributions
 Bundle-SymbolicName: org.simantics.modeling.ui.workbench;singleton:=true
-Bundle-Version: 1.25.0.qualifier
+Bundle-Version: 1.26.0.qualifier
 Bundle-Vendor: Semantum Oy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.ui
index 471a83ef9cf8b84d865ba95921e2b6485315653a..510603d5194be82c216e2cee440dfe535ab3111a 100644 (file)
@@ -20,9 +20,6 @@ importJava "org.simantics.modeling.ui.actions.ModeledActions" where
     """\r
     ACTION_COMPARATOR :: Comparator Action\r
 \r
-instance Eq Action where\r
-    a == b = compareWithComparator ACTION_COMPARATOR a b == 0\r
-\r
 instance Ord Action where\r
     compare = compareWithComparator ACTION_COMPARATOR\r
 \r
index 3edc7bfeae28dd2a696dc9c3bd1d9d984c00de5d..10a217b9da073918575c19bacf98f2925619688e 100644 (file)
-package org.simantics.modeling.scl;\r
-\r
-import java.util.Collection;\r
-\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.RequestProcessorSpecific;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.UnaryRead;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.procedure.SyncListener;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.modeling.ModelingUtils;\r
-import org.simantics.scl.compiler.module.repository.UpdateListener;\r
-import org.simantics.scl.compiler.source.ModuleSource;\r
-import org.simantics.scl.compiler.source.StringModuleSource;\r
-import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;\r
-import org.simantics.scl.runtime.SCLContext;\r
-import org.simantics.structural2.utils.StructuralUtils;\r
-import org.simantics.scl.runtime.tuple.Tuple0;\r
-\r
-import gnu.trove.procedure.TObjectProcedure;\r
-import gnu.trove.set.hash.THashSet;\r
-\r
-public enum GraphModuleSourceRepository implements ModuleSourceRepository {\r
-    INSTANCE;\r
-\r
-    @Override\r
-    public ModuleSource getModuleSource(final String moduleName, UpdateListener listener) {\r
-        if(!moduleName.startsWith("http://"))\r
-            return null;\r
-\r
-        Object graph = SCLContext.getCurrent().get("graph");\r
-        RequestProcessorSpecific requestProcessor;\r
-        if(graph instanceof ReadGraph)\r
-            requestProcessor = (ReadGraph)graph;\r
-        else\r
-            requestProcessor = Simantics.getSession();\r
-\r
-        Read<ModuleSource> request = new ReadModuleSource(moduleName);\r
-\r
-        try {\r
-            if(listener != null)\r
-                return requestProcessor.syncRequest(request, new ModuleListener(listener, moduleName));\r
-            else\r
-                return requestProcessor.syncRequest(request);\r
-        } catch (DatabaseException e) {\r
-            e.printStackTrace();\r
-            return null;\r
-        }\r
-    }\r
-\r
-    static class ModuleListener implements SyncListener<ModuleSource> {\r
-        UpdateListener listener;\r
-        boolean alreadyExecutedOnce;\r
-        final String moduleName;\r
-        public ModuleListener(UpdateListener listener, String moduleName) {\r
-            this.listener = listener;\r
-            this.moduleName = moduleName;\r
-        }\r
-        @Override\r
-        public boolean isDisposed() {\r
-            return listener == null;\r
-        }\r
-        private void fireUpdate(ReadGraph graph) {\r
-            if(listener != null) {\r
-                SCLContext context = SCLContext.getCurrent();\r
-                Object oldGraph = context.put("graph", graph);\r
-                try {\r
-                    listener.notifyAboutUpdate();\r
-                } finally {\r
-                    listener = null;\r
-                    context.put("graph", oldGraph);\r
-                }\r
-            }\r
-        }\r
-        @Override\r
-        public void execute(ReadGraph graph, ModuleSource result)\r
-                throws DatabaseException {\r
-            if(alreadyExecutedOnce)\r
-                fireUpdate(graph);\r
-            else\r
-                alreadyExecutedOnce = true;\r
-        }\r
-        @Override\r
-        public void exception(ReadGraph graph, Throwable t)\r
-                throws DatabaseException {\r
-            t.printStackTrace();\r
-            if(alreadyExecutedOnce && listener != null)\r
-                fireUpdate(graph);\r
-        }\r
-    };\r
-    \r
-    public static class GraphModuleSource extends StringModuleSource {\r
-\r
-        private final boolean immutable;\r
-\r
-        public GraphModuleSource(String moduleName, ClassLoader classLoader, String moduleText, boolean immutable) {\r
-            super(moduleName, classLoader, moduleText);\r
-            this.immutable = immutable;\r
-        }\r
-        \r
-        @Override\r
-        public boolean isUpdateable() {\r
-            return !immutable;\r
-        }\r
-        \r
-        @Override\r
-        public void update(String newSourceText) {\r
-            try {\r
-                Simantics.getSession().syncRequest(new WriteModuleSource(getModuleName(), newSourceText));\r
-            } catch (DatabaseException e) {\r
-                e.printStackTrace();\r
-            }\r
-        }\r
-    }\r
-\r
-    static class ReadModuleSource extends UnaryRead<String, ModuleSource> {\r
-        public ReadModuleSource(String moduleName) {\r
-            super(moduleName);\r
-        }\r
-\r
-        @Override\r
-        public ModuleSource perform(ReadGraph graph) throws DatabaseException {\r
-            Resource moduleResource = graph.getPossibleResource(parameter);\r
-            if(moduleResource == null)\r
-                return null;\r
-            Layer0 L0 = Layer0.getInstance(graph);\r
-            if(!graph.isInstanceOf(moduleResource, L0.SCLModule))\r
-                return null;\r
-            String text = graph.getRelatedValue(moduleResource, L0.SCLModule_definition);\r
-            boolean immutable = StructuralUtils.isImmutable(graph, moduleResource);\r
-            return new GraphModuleSource(parameter, getClass().getClassLoader(), text, immutable);\r
-        }\r
-    }\r
-    \r
-    static class WriteModuleSource extends WriteRequest {\r
-        private final String moduleURI;\r
-        private final String sourceText;\r
-        \r
-        public WriteModuleSource(String moduleURI, String sourceText) {\r
-            this.moduleURI = moduleURI;\r
-            this.sourceText = sourceText;\r
-        }\r
-\r
-        @Override\r
-        public void perform(WriteGraph graph) throws DatabaseException {\r
-            Resource moduleResource = graph.getPossibleResource(moduleURI);\r
-            if(moduleResource == null)\r
-                return;\r
-            Layer0 L0 = Layer0.getInstance(graph);\r
-            if(!graph.isInstanceOf(moduleResource, L0.SCLModule))\r
-                return;\r
-            graph.claimLiteral(moduleResource, L0.SCLModule_definition, sourceText);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void forAllModules(TObjectProcedure<String> procedure) {\r
-        THashSet<String> moduleURIs;\r
-        try {\r
-            moduleURIs = Simantics.getSession().syncRequest(new Read<THashSet<String>>() {\r
-                @Override\r
-                public THashSet<String> perform(ReadGraph graph)\r
-                        throws DatabaseException {\r
-                    THashSet<String> result = new THashSet<String>(); \r
-                    Resource projectResource = Simantics.getProjectResource();\r
-                    Layer0 L0 = Layer0.getInstance(graph);\r
-                    for(Resource model : graph.getObjects(projectResource, L0.ConsistsOf)) {\r
-                        if(graph.isInstanceOf(model, L0.IndexRoot)) {\r
-                            for(Resource module : ModelingUtils.searchByType(graph, model, L0.SCLModule))\r
-                                result.add(graph.getURI(module));\r
-                        }\r
-                    }\r
-                    \r
-                    Collection<Resource> ontologies = Simantics.applySCL("Simantics/SharedOntologies", "getSharedOntologies", graph, Tuple0.INSTANCE);\r
-                    for (Resource ontology : ontologies) {\r
-                        for(Resource module : ModelingUtils.searchByType(graph, ontology, L0.SCLModule))\r
-                            result.add(graph.getURI(module));\r
-                    }\r
-                    \r
-                    return result;\r
-                }\r
-            });\r
-            moduleURIs.forEach(procedure);\r
-        } catch (DatabaseException e) {\r
-            e.printStackTrace();\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void checkUpdates() {\r
-    }\r
-\r
-    @Override\r
-    public String getDocumentation(String documentationName) {\r
-        return null;\r
-    }\r
-\r
-    @Override\r
-    public void forAllDocumentations(TObjectProcedure<String> procedure) {\r
-    }\r
-\r
-    @Override\r
-    public void clear() {\r
-    }\r
-}\r
+package org.simantics.modeling.scl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.RequestProcessorSpecific;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.UnaryRead;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.procedure.SyncListener;
+import org.simantics.db.request.Read;
+import org.simantics.layer0.Layer0;
+import org.simantics.modeling.ModelingUtils;
+import org.simantics.scl.compiler.module.repository.UpdateListener;
+import org.simantics.scl.compiler.source.ModuleSource;
+import org.simantics.scl.compiler.source.StringModuleSource;
+import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
+import org.simantics.scl.runtime.SCLContext;
+import org.simantics.structural2.utils.StructuralUtils;
+import org.simantics.scl.runtime.tuple.Tuple0;
+
+import gnu.trove.procedure.TObjectProcedure;
+import gnu.trove.set.hash.THashSet;
+
+public enum GraphModuleSourceRepository implements ModuleSourceRepository {
+    INSTANCE;
+
+    @Override
+    public ModuleSource getModuleSource(final String moduleName, UpdateListener listener) {
+        if(!moduleName.startsWith("http://"))
+            return null;
+
+        Object graph = SCLContext.getCurrent().get("graph");
+        RequestProcessorSpecific requestProcessor;
+        if(graph instanceof ReadGraph)
+            requestProcessor = (ReadGraph)graph;
+        else
+            requestProcessor = Simantics.getSession();
+
+        Read<ModuleSource> request = new ReadModuleSource(moduleName);
+
+        try {
+            if(listener != null)
+                return requestProcessor.syncRequest(request, new ModuleListener(listener, moduleName));
+            else
+                return requestProcessor.syncRequest(request);
+        } catch (DatabaseException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    static class ModuleListener implements SyncListener<ModuleSource> {
+        UpdateListener listener;
+        boolean alreadyExecutedOnce;
+        final String moduleName;
+        public ModuleListener(UpdateListener listener, String moduleName) {
+            this.listener = listener;
+            this.moduleName = moduleName;
+        }
+        @Override
+        public boolean isDisposed() {
+            return listener == null;
+        }
+        private void fireUpdate(ReadGraph graph) {
+            if(listener != null) {
+                SCLContext context = SCLContext.getCurrent();
+                Object oldGraph = context.put("graph", graph);
+                try {
+                    listener.notifyAboutUpdate();
+                } finally {
+                    listener = null;
+                    context.put("graph", oldGraph);
+                }
+            }
+        }
+        @Override
+        public void execute(ReadGraph graph, ModuleSource result)
+                throws DatabaseException {
+            if(alreadyExecutedOnce)
+                fireUpdate(graph);
+            else
+                alreadyExecutedOnce = true;
+        }
+        @Override
+        public void exception(ReadGraph graph, Throwable t)
+                throws DatabaseException {
+            t.printStackTrace();
+            if(alreadyExecutedOnce && listener != null)
+                fireUpdate(graph);
+        }
+    };
+    
+    public static class GraphModuleSource extends StringModuleSource {
+
+        private final boolean immutable;
+
+        public GraphModuleSource(String moduleName, ClassLoader classLoader, String moduleText, boolean immutable) {
+            super(moduleName, classLoader, moduleText);
+            this.immutable = immutable;
+        }
+        
+        @Override
+        public boolean isUpdateable() {
+            return !immutable;
+        }
+        
+        @Override
+        public void update(String newSourceText) {
+            try {
+                Simantics.getSession().syncRequest(new WriteModuleSource(getModuleName(), newSourceText));
+            } catch (DatabaseException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    static class ReadModuleSource extends UnaryRead<String, ModuleSource> {
+        public ReadModuleSource(String moduleName) {
+            super(moduleName);
+        }
+
+        @Override
+        public ModuleSource perform(ReadGraph graph) throws DatabaseException {
+            Resource moduleResource = graph.getPossibleResource(parameter);
+            if(moduleResource == null)
+                return null;
+            Layer0 L0 = Layer0.getInstance(graph);
+            if(!graph.isInstanceOf(moduleResource, L0.SCLModule))
+                return null;
+            String text = graph.getRelatedValue(moduleResource, L0.SCLModule_definition);
+            boolean immutable = StructuralUtils.isImmutable(graph, moduleResource);
+            return new GraphModuleSource(parameter, getClass().getClassLoader(), text, immutable);
+        }
+    }
+    
+    static class WriteModuleSource extends WriteRequest {
+        private final String moduleURI;
+        private final String sourceText;
+        
+        public WriteModuleSource(String moduleURI, String sourceText) {
+            this.moduleURI = moduleURI;
+            this.sourceText = sourceText;
+        }
+
+        @Override
+        public void perform(WriteGraph graph) throws DatabaseException {
+            Resource moduleResource = graph.getPossibleResource(moduleURI);
+            if(moduleResource == null)
+                return;
+            Layer0 L0 = Layer0.getInstance(graph);
+            if(!graph.isInstanceOf(moduleResource, L0.SCLModule))
+                return;
+            graph.claimLiteral(moduleResource, L0.SCLModule_definition, sourceText);
+        }
+    }
+
+    @Override
+    public void forAllModules(TObjectProcedure<String> procedure) {
+        THashSet<String> moduleURIs;
+        try {
+            moduleURIs = Simantics.getSession().syncRequest(new Read<THashSet<String>>() {
+                @Override
+                public THashSet<String> perform(ReadGraph graph)
+                        throws DatabaseException {
+                    THashSet<String> result = new THashSet<String>(); 
+                    Resource projectResource = Simantics.getProjectResource();
+                    Layer0 L0 = Layer0.getInstance(graph);
+                    for(Resource model : graph.getObjects(projectResource, L0.ConsistsOf)) {
+                        if(graph.isInstanceOf(model, L0.IndexRoot)) {
+                            for(Resource module : ModelingUtils.searchByType(graph, model, L0.SCLModule))
+                                result.add(graph.getURI(module));
+                        }
+                    }
+                    
+                    Collection<Resource> ontologies = Simantics.applySCL("Simantics/SharedOntologies", "getSharedOntologies", graph, Tuple0.INSTANCE);
+                    for (Resource ontology : ontologies) {
+                        for(Resource module : ModelingUtils.searchByType(graph, ontology, L0.SCLModule))
+                            result.add(graph.getURI(module));
+                    }
+                    
+                    return result;
+                }
+            });
+            moduleURIs.forEach(procedure);
+        } catch (DatabaseException e) {
+            e.printStackTrace();
+        }
+    }
+    
+    @Override
+    public Collection<String> getModuleNames() {
+        ArrayList<String> result = new ArrayList<>();
+        forAllModules((String name) -> {
+            result.add(name);
+            return true;
+        });
+        return result;
+    }
+}
index 45ac24f1c7ad4f5913e933f3448b90f82d9d483f..4e450005b24b100f13b90b2bdeeb576f46a0aca9 100644 (file)
@@ -2,6 +2,8 @@ package org.simantics.modeling.scl;
 \r
 import org.simantics.db.Resource;\r
 import org.simantics.scl.compiler.common.names.Name;\r
+import org.simantics.scl.compiler.common.names.Names;\r
+import org.simantics.scl.compiler.elaboration.chr.plan.PlanContext;\r
 import org.simantics.scl.compiler.elaboration.expressions.EApply;\r
 import org.simantics.scl.compiler.elaboration.expressions.EExternalConstant;\r
 import org.simantics.scl.compiler.elaboration.expressions.EVariable;\r
@@ -10,7 +12,9 @@ import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext;\r
 import org.simantics.scl.compiler.elaboration.query.compilation.QueryCompilationContext;\r
 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;\r
+import org.simantics.scl.compiler.environment.Environment;\r
 import org.simantics.scl.compiler.errors.Locations;\r
+import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
 import org.simantics.scl.compiler.types.TVar;\r
 import org.simantics.scl.compiler.types.Type;\r
 import org.simantics.scl.compiler.types.Types;\r
@@ -63,7 +67,7 @@ public class GraphPropertyRelation implements SCLRelation {
         Expression possibleValue = new EApply(\r
                 Locations.NO_LOCATION,\r
                 Types.READ_GRAPH,\r
-                context.getTypingContext().getConstant(POSSIBLE_RELATED_VALUE, valueType),\r
+                context.getCompilationContext().getConstant(POSSIBLE_RELATED_VALUE, valueType),\r
                 context.getEvidence(location, Types.pred(Types.SERIALIZABLE, valueType)),\r
                 new EVariable(parameters[0]),\r
                 new EExternalConstant(propertyRelation, RESOURCE)\r
@@ -72,9 +76,8 @@ public class GraphPropertyRelation implements SCLRelation {
         case BB: {\r
             Variable temp = new Variable("temp", valueType);\r
             context.condition(new EApply(\r
-                    context.getTypingContext().getConstant(Name.create("Prelude", "=="), valueType),\r
+                    context.getCompilationContext().getConstant(Names.Builtin_equals, valueType),\r
                     new Expression[] {\r
-                        context.getEvidence(location, Types.pred(Types.EQ, valueType)),\r
                         new EVariable(temp),\r
                         new EVariable(parameters[1])\r
                     }\r
@@ -95,7 +98,7 @@ public class GraphPropertyRelation implements SCLRelation {
         return new EApply(\r
                 Locations.NO_LOCATION,\r
                 Types.WRITE_GRAPH,\r
-                context.getTypingContext().getConstant(CLAIM_RELATED_VALUE, valueType),\r
+                context.getCompilationContext().getConstant(CLAIM_RELATED_VALUE, valueType),\r
                 context.getEvidence(location, Types.pred(Types.SERIALIZABLE, valueType)),\r
                 new EVariable(parameters[0]),\r
                 new EExternalConstant(propertyRelation, RESOURCE),\r
@@ -108,4 +111,14 @@ public class GraphPropertyRelation implements SCLRelation {
         return 0;\r
     }\r
     \r
+    @Override\r
+    public void generateEnforce(PlanContext context, CodeWriter w, long location, Expression[] parameters) {\r
+        throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support enforce.");\r
+    }\r
+    \r
+    @Override\r
+    public void generateIterate(PlanContext context, CodeWriter w, long location, int boundMask, Variable[] variables,\r
+            Expression[] expressions) {\r
+        throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support iterate.");\r
+    }\r
 }\r
index 807d44a16612c48ff3d670b672b3ad0d6e00b0b9..72bfa128e9f58e5394414aa5876569c7d87598a9 100644 (file)
@@ -2,6 +2,7 @@ package org.simantics.modeling.scl;
 \r
 import org.simantics.db.Resource;\r
 import org.simantics.scl.compiler.common.names.Name;\r
+import org.simantics.scl.compiler.elaboration.chr.plan.PlanContext;\r
 import org.simantics.scl.compiler.elaboration.expressions.EApply;\r
 import org.simantics.scl.compiler.elaboration.expressions.EExternalConstant;\r
 import org.simantics.scl.compiler.elaboration.expressions.EVariable;\r
@@ -10,7 +11,9 @@ import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext;\r
 import org.simantics.scl.compiler.elaboration.query.compilation.QueryCompilationContext;\r
 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;\r
+import org.simantics.scl.compiler.environment.Environment;\r
 import org.simantics.scl.compiler.errors.Locations;\r
+import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
 import org.simantics.scl.compiler.types.TVar;\r
 import org.simantics.scl.compiler.types.Type;\r
 import org.simantics.scl.compiler.types.Types;\r
@@ -69,7 +72,7 @@ public class GraphRelation implements SCLRelation {
             context.iterateList(parameters[1], new EApply(\r
                     Locations.NO_LOCATION,\r
                     Types.READ_GRAPH,\r
-                    context.getTypingContext().getConstant(GET_OBJECTS),\r
+                    context.getCompilationContext().getConstant(GET_OBJECTS),\r
                     new EVariable(parameters[0]),\r
                     new EExternalConstant(relation, Types.RESOURCE)\r
                     ));\r
@@ -80,7 +83,7 @@ public class GraphRelation implements SCLRelation {
             context.iterateList(parameters[0], new EApply(\r
                     Locations.NO_LOCATION,\r
                     Types.READ_GRAPH,\r
-                    context.getTypingContext().getConstant(GET_OBJECTS),\r
+                    context.getCompilationContext().getConstant(GET_OBJECTS),\r
                     new EVariable(parameters[1]),\r
                     new EExternalConstant(inverseRelation, Types.RESOURCE)\r
                     ));\r
@@ -91,7 +94,7 @@ public class GraphRelation implements SCLRelation {
                     ? new EApply(\r
                             Locations.NO_LOCATION,\r
                             Types.READ_GRAPH,\r
-                            context.getTypingContext().getConstant(HAS_STATEMENT),\r
+                            context.getCompilationContext().getConstant(HAS_STATEMENT),\r
                             new Expression[] {\r
                                 new EVariable(parameters[0]),\r
                                 new EExternalConstant(relation, Types.RESOURCE),\r
@@ -101,7 +104,7 @@ public class GraphRelation implements SCLRelation {
                     : new EApply(\r
                             Locations.NO_LOCATION,\r
                             Types.READ_GRAPH,\r
-                            context.getTypingContext().getConstant(HAS_STATEMENT),\r
+                            context.getCompilationContext().getConstant(HAS_STATEMENT),\r
                             new Expression[] {\r
                                 new EVariable(parameters[1]),\r
                                 new EExternalConstant(inverseRelation, Types.RESOURCE),\r
@@ -121,7 +124,7 @@ public class GraphRelation implements SCLRelation {
         return new EApply(\r
                 Locations.NO_LOCATION,\r
                 Types.WRITE_GRAPH,\r
-                context.getTypingContext().getConstant(CLAIM),\r
+                context.getCompilationContext().getConstant(CLAIM),\r
                 new EVariable(parameters[0]),\r
                 new EExternalConstant(relation, Types.RESOURCE),\r
                 new EVariable(parameters[1])\r
@@ -133,4 +136,50 @@ public class GraphRelation implements SCLRelation {
         return 0;\r
     }\r
 \r
+    @Override\r
+    public void generateIterate(PlanContext context, CodeWriter w, long location, int boundMask, Variable[] variables,\r
+            Expression[] expressions) {\r
+        Environment env = context.context.environment;\r
+        switch(boundMask) {\r
+        case BF:\r
+            context.iterateList(location, w, variables[1],\r
+                    w.apply(location,\r
+                            env.getValue(GET_OBJECTS).getValue(),\r
+                            expressions[0].toVal(env, w),\r
+                            w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE)));\r
+            break;\r
+        case FB:\r
+            if(inverseRelation == null)\r
+                throw new IllegalArgumentException();\r
+            context.iterateList(location, w, variables[0],\r
+                    w.apply(location,\r
+                            env.getValue(GET_OBJECTS).getValue(),\r
+                            expressions[1].toVal(env, w),\r
+                            w.getModuleWriter().getExternalConstant(inverseRelation, Types.RESOURCE)));\r
+            break;\r
+        case BB:\r
+            context.check(location, w, \r
+                    inverseRelation == null || relationSelectivity <= inverseRelationSelectivity\r
+                    ? w.apply(location, env.getValue(HAS_STATEMENT).getValue(), \r
+                            expressions[0].toVal(env, w),\r
+                            w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE),\r
+                            expressions[1].toVal(env, w))\r
+                    : w.apply(location, env.getValue(HAS_STATEMENT).getValue(), \r
+                            expressions[1].toVal(env, w),\r
+                            w.getModuleWriter().getExternalConstant(inverseRelation, Types.RESOURCE),\r
+                            expressions[0].toVal(env, w)));\r
+            break;\r
+        default: throw new IllegalArgumentException();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public void generateEnforce(PlanContext context, CodeWriter w, long location, Expression[] parameters) {\r
+        Environment env = context.context.environment;\r
+        w.apply(location,\r
+                env.getValue(CLAIM).getValue(),\r
+                parameters[0].toVal(env, w),\r
+                w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE),\r
+                parameters[1].toVal(env, w));\r
+    }\r
 }\r
index a8cefb1fa7e899d5df782cecd3dce03a6eefb237..6fbcfd8e973f50597bbf975d3c2b2461e21052a8 100644 (file)
@@ -1,73 +1,64 @@
-package org.simantics.modeling.scl;\r
-\r
-\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.common.request.UnaryRead;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.scl.compiler.module.repository.UpdateListener;\r
-import org.simantics.scl.compiler.source.ModuleSource;\r
-import org.simantics.scl.compiler.source.PrecompiledModuleSource;\r
-import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;\r
-import org.simantics.scl.runtime.SCLContext;\r
-\r
-import gnu.trove.procedure.TObjectProcedure;\r
-\r
-public enum OntologyModuleSourceRepository implements ModuleSourceRepository {\r
-    INSTANCE;\r
-\r
-       static class ModuleSourceRequest extends UnaryRead<String, ModuleSource> {\r
-\r
-        public ModuleSourceRequest(String moduleName) {\r
-                       super(moduleName);\r
-               }\r
-\r
-               @Override\r
-        public ModuleSource perform(ReadGraph graph) throws DatabaseException {\r
-            return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0);\r
-        }\r
-\r
-    };\r
-       \r
-    @Override\r
-    public ModuleSource getModuleSource(final String moduleName,\r
-            UpdateListener listener) {\r
-        if(!moduleName.startsWith("http://"))\r
-            return null; // Don't do a graph request if this cannot be a resource\r
-        \r
-        ReadGraph graph = (ReadGraph)SCLContext.getCurrent().get("graph");\r
-        \r
-        try {\r
-            if(graph != null) {\r
-                return new PrecompiledModuleSource(new OntologyModule(graph, moduleName), -1.0);\r
-            }\r
-\r
-            return Simantics.getSession().syncRequest(new ModuleSourceRequest(moduleName));\r
-        } catch(DatabaseException e) {\r
-            e.printStackTrace();\r
-            return null;\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void forAllModules(TObjectProcedure<String> procedure) {\r
-    }\r
-    \r
-    @Override\r
-    public void checkUpdates() {\r
-    }\r
-\r
-    @Override\r
-    public String getDocumentation(String documentationName) {\r
-        return null;\r
-    }\r
-\r
-    @Override\r
-    public void forAllDocumentations(TObjectProcedure<String> procedure) {\r
-    }\r
-\r
-    @Override\r
-    public void clear() {\r
-    }\r
-\r
-}\r
+package org.simantics.modeling.scl;
+
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.common.request.UnaryRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.scl.compiler.module.repository.UpdateListener;
+import org.simantics.scl.compiler.source.ModuleSource;
+import org.simantics.scl.compiler.source.PrecompiledModuleSource;
+import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
+import org.simantics.scl.runtime.SCLContext;
+
+import gnu.trove.procedure.TObjectProcedure;
+
+public enum OntologyModuleSourceRepository implements ModuleSourceRepository {
+    INSTANCE;
+
+       static class ModuleSourceRequest extends UnaryRead<String, ModuleSource> {
+
+        public ModuleSourceRequest(String moduleName) {
+                       super(moduleName);
+               }
+
+               @Override
+        public ModuleSource perform(ReadGraph graph) throws DatabaseException {
+            return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0);
+        }
+
+    };
+       
+    @Override
+    public ModuleSource getModuleSource(final String moduleName,
+            UpdateListener listener) {
+        if(!moduleName.startsWith("http://"))
+            return null; // Don't do a graph request if this cannot be a resource
+        
+        ReadGraph graph = (ReadGraph)SCLContext.getCurrent().get("graph");
+        
+        try {
+            if(graph != null) {
+                return new PrecompiledModuleSource(new OntologyModule(graph, moduleName), -1.0);
+            }
+
+            return Simantics.getSession().syncRequest(new ModuleSourceRequest(moduleName));
+        } catch(DatabaseException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    @Override
+    public void forAllModules(TObjectProcedure<String> procedure) {
+    }
+    
+    @Override
+    public Collection<String> getModuleNames() {
+        return Collections.emptyList();
+    }
+
+}
index 1c982aa6bde2a2c322c13b59ff4443e110441a31..b862a296d38fe04269faeee6c9d77d11ff77380d 100755 (executable)
@@ -3,7 +3,5 @@
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
        <classpathentry kind="src" path="src"/>\r
-       <classpathentry kind="src" path="tests"/>\r
-       <classpathentry exported="true" kind="lib" path="tools/procyon-decompiler-0.5.29.jar"/>\r
        <classpathentry kind="output" path="bin"/>\r
 </classpath>\r
diff --git a/bundles/org.simantics.scl.compiler/.settings/org.eclipse.core.resources.prefs b/bundles/org.simantics.scl.compiler/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644 (file)
index ba02823..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1\r
-encoding//tests/org/simantics/scl/compiler/tests/scl/InvalidEncoding.scl=ISO-8859-1\r
diff --git a/bundles/org.simantics.scl.compiler/ActiveTests.launch b/bundles/org.simantics.scl.compiler/ActiveTests.launch
deleted file mode 100644 (file)
index 379d4db..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
-<listEntry value="/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/ActiveTests.java"/>\r
-</listAttribute>\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">\r
-<listEntry value="1"/>\r
-</listAttribute>\r
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>\r
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>\r
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>\r
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.simantics.scl.compiler.tests.ActiveTests"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.simantics.scl.compiler"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XX:-UseSplitVerifier"/>\r
-</launchConfiguration>\r
index 916e66cfd22f510b5c8ac238454a1e277015fc74..603cdaf4881c8a8eea8b1fca9f21d3908144eb28 100755 (executable)
@@ -2,14 +2,15 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: SCL Compiler
 Bundle-SymbolicName: org.simantics.scl.compiler
-Bundle-Version: 0.5.0.qualifier
+Bundle-Version: 0.6.1.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: gnu.trove3;bundle-version="3.0.0",
  org.simantics.scl.runtime;bundle-version="0.1.4";visibility:=reexport,
  org.junit;bundle-version="4.12.0";resolution:=optional,
  org.objectweb.asm;bundle-version="[5.0.0,6.0.0)",
  org.objectweb.asm.commons;bundle-version="[5.0.0,6.0.0)",
- org.objectweb.asm.util;bundle-version="[5.0.0,6.0.0)"
+ org.objectweb.asm.util;bundle-version="[5.0.0,6.0.0)",
+ org.slf4j.api;bundle-version="1.7.2"
 Export-Package: org.cojen.classfile,
  org.simantics.scl.compiler.commands,
  org.simantics.scl.compiler.common.datatypes,
@@ -19,6 +20,10 @@ Export-Package: org.cojen.classfile,
  org.simantics.scl.compiler.compilation,
  org.simantics.scl.compiler.constants,
  org.simantics.scl.compiler.constants.generic,
+ org.simantics.scl.compiler.elaboration.chr,
+ org.simantics.scl.compiler.elaboration.chr.plan,
+ org.simantics.scl.compiler.elaboration.chr.planning,
+ org.simantics.scl.compiler.elaboration.chr.relations;x-friends:="org.simantics.scl.compiler.tests",
  org.simantics.scl.compiler.elaboration.contexts,
  org.simantics.scl.compiler.elaboration.equation,
  org.simantics.scl.compiler.elaboration.errors,
@@ -39,6 +44,11 @@ Export-Package: org.cojen.classfile,
  org.simantics.scl.compiler.environment.filter,
  org.simantics.scl.compiler.environment.specification,
  org.simantics.scl.compiler.errors,
+ org.simantics.scl.compiler.internal.codegen.chr;x-friends:="org.simantics.scl.compiler.tests",
+ org.simantics.scl.compiler.internal.codegen.references,
+ org.simantics.scl.compiler.internal.codegen.types;x-friends:="org.simantics.scl.compiler.tests",
+ org.simantics.scl.compiler.internal.codegen.utils;x-friends:="org.simantics.scl.compiler.tests",
+ org.simantics.scl.compiler.internal.codegen.writer,
  org.simantics.scl.compiler.internal.elaboration.constraints2,
  org.simantics.scl.compiler.internal.elaboration.subsumption,
  org.simantics.scl.compiler.internal.parsing,
@@ -62,7 +72,6 @@ Export-Package: org.cojen.classfile,
  org.simantics.scl.compiler.types.exceptions,
  org.simantics.scl.compiler.types.kinds,
  org.simantics.scl.compiler.types.util
-Bundle-ClassPath: tools/procyon-decompiler-0.5.29.jar,
- .
+Bundle-ClassPath: .
 Service-Component: OSGI-INF/org.simantics.scl.compiler.source.repository.BuiltinModuleSourceRepository.xml
 Import-Package: org.osgi.service.component.annotations
diff --git a/bundles/org.simantics.scl.compiler/SCLRegressionTests.launch b/bundles/org.simantics.scl.compiler/SCLRegressionTests.launch
deleted file mode 100644 (file)
index 893498e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
-<listEntry value="/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/RegressionTests.java"/>\r
-</listAttribute>\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">\r
-<listEntry value="1"/>\r
-</listAttribute>\r
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>\r
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>\r
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>\r
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.simantics.scl.compiler.tests.RegressionTests"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.simantics.scl.compiler"/>\r
-</launchConfiguration>\r
index 2038552d7dc88b2c84f0ba651bc0f5a73c7422fd..33fbae442a6a2ac62cd1e16763b4a2f095d9482a 100755 (executable)
@@ -2,5 +2,4 @@ source.. = src/
 output.. = bin/\r
 bin.includes = META-INF/,\\r
                .,\\r
-               tools/procyon-decompiler-0.5.29.jar,\\r
                OSGI-INF/org.simantics.scl.compiler.source.repository.BuiltinModuleSourceRepository.xml\r
index cfc5a1deb0fcf7a303651c39782af93fc6e8742b..acf2bb18d643ae4f40c1d3a6d1896d9782787f63 100644 (file)
@@ -16,7 +16,6 @@
 
 package org.cojen.classfile;
 
-import java.io.Serializable;
 import java.lang.ref.SoftReference;
 import java.lang.reflect.Array;
 import java.util.Collections;
@@ -34,7 +33,7 @@ import org.cojen.util.WeakIdentityMap;
  * @author Brian S O'Neill
  */
 @SuppressWarnings("rawtypes")
-public abstract class TypeDesc extends Descriptor implements Serializable {
+public abstract class TypeDesc extends Descriptor {
     /**
      * Type code returned from getTypeCode, which can be used with the
      * newarray instruction.
diff --git a/bundles/org.simantics.scl.compiler/src/org/cojen/util/KeyFactory.java b/bundles/org.simantics.scl.compiler/src/org/cojen/util/KeyFactory.java
deleted file mode 100644 (file)
index 1bd1b01..0000000
+++ /dev/null
@@ -1,709 +0,0 @@
-/*
- *  Copyright 2004-2010 Brian S O'Neill
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.cojen.util;
-
-import java.util.Arrays;
-
-/**
- * KeyFactory generates keys which can be hashed or compared for any kind of
- * object including arrays, arrays of arrays, and null. All hashcode
- * computations, equality tests, and ordering comparsisons fully recurse into
- * arrays.
- *
- * @author Brian S O'Neill
- */
-@SuppressWarnings({ "rawtypes", "unused", "unchecked", "serial" })
-public class KeyFactory {
-       static final Object NULL = new Comparable() {
-        public int compareTo(Object obj) {
-            return obj == this || obj == null ? 0 : 1;
-        }
-    };
-
-    public static Object createKey(boolean[] obj) {
-        return obj == null ? NULL : new BooleanArrayKey(obj);
-    }
-
-    public static Object createKey(byte[] obj) {
-        return obj == null ? NULL : new ByteArrayKey(obj);
-    }
-
-    public static Object createKey(char[] obj) {
-        return obj == null ? NULL : new CharArrayKey(obj);
-    }
-
-    public static Object createKey(double[] obj) {
-        return obj == null ? NULL : new DoubleArrayKey(obj);
-    }
-
-    public static Object createKey(float[] obj) {
-        return obj == null ? NULL : new FloatArrayKey(obj);
-    }
-
-    public static Object createKey(int[] obj) {
-        return obj == null ? NULL : new IntArrayKey(obj);
-    }
-
-    public static Object createKey(long[] obj) {
-        return obj == null ? NULL : new LongArrayKey(obj);
-    }
-
-    public static Object createKey(short[] obj) {
-        return obj == null ? NULL : new ShortArrayKey(obj);
-    }
-
-    public static Object createKey(Object[] obj) {
-        return obj == null ? NULL : new ObjectArrayKey(obj);
-    }
-
-    public static Object createKey(Object obj) {
-        if (obj == null) {
-            return NULL;
-        }
-        if (!obj.getClass().isArray()) {
-            return obj;
-        }
-        if (obj instanceof Object[]) {
-            return createKey((Object[])obj);
-        } else if (obj instanceof int[]) {
-            return createKey((int[])obj);
-        } else if (obj instanceof float[]) {
-            return createKey((float[])obj);
-        } else if (obj instanceof long[]) {
-            return createKey((long[])obj);
-        } else if (obj instanceof double[]) {
-            return createKey((double[])obj);
-        } else if (obj instanceof byte[]) {
-            return createKey((byte[])obj);
-        } else if (obj instanceof char[]) {
-            return createKey((char[])obj);
-        } else if (obj instanceof boolean[]) {
-            return createKey((boolean[])obj);
-        } else if (obj instanceof short[]) {
-            return createKey((short[])obj);
-        } else {
-            return obj;
-        }
-    }
-
-    static int hashCode(boolean[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = (hash << 1) + (a[i] ? 0 : 1);
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(byte[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = (hash << 1) + a[i];
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(char[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = (hash << 1) + a[i];
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(double[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            long v = Double.doubleToLongBits(a[i]);
-            hash = hash * 31 + (int)(v ^ v >>> 32);
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(float[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = hash * 31 + Float.floatToIntBits(a[i]);
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(int[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = (hash << 1) + a[i];
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(long[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            long v = a[i];
-            hash = hash * 31 + (int)(v ^ v >>> 32);
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(short[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = (hash << 1) + a[i];
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    static int hashCode(Object[] a) {
-        int hash = 0;
-        for (int i = a.length; --i >= 0; ) {
-            hash = hash * 31 + hashCode(a[i]);
-        }
-        return hash == 0 ? -1 : hash;
-    }
-
-    // Compute object or array hashcode and recurses into arrays within.
-    static int hashCode(Object a) {
-        if (a == null) {
-            return -1;
-        }
-        if (!a.getClass().isArray()) {
-            return a.hashCode();
-        }
-        if (a instanceof Object[]) {
-            return hashCode((Object[])a);
-        } else if (a instanceof int[]) {
-            return hashCode((int[])a);
-        } else if (a instanceof float[]) {
-            return hashCode((float[])a);
-        } else if (a instanceof long[]) {
-            return hashCode((long[])a);
-        } else if (a instanceof double[]) {
-            return hashCode((double[])a);
-        } else if (a instanceof byte[]) {
-            return hashCode((byte[])a);
-        } else if (a instanceof char[]) {
-            return hashCode((char[])a);
-        } else if (a instanceof boolean[]) {
-            return hashCode((boolean[])a);
-        } else if (a instanceof short[]) {
-            return hashCode((short[])a);
-        } else {
-            int hash = a.getClass().hashCode();
-            return hash == 0 ? -1 : hash;
-        }
-    }
-
-    // Compares object arrays and recurses into arrays within.
-    static boolean equals(Object[] a, Object[] b) {
-        if (a == b) {
-            return true;
-        }
-        if (a == null || b == null) {
-            return false;
-        }
-        int i;
-        if ((i = a.length) != b.length) {
-            return false;
-        }
-        while (--i >= 0) {
-            if (!equals(a[i], b[i])) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    // Compares objects or arrays and recurses into arrays within.
-    static boolean equals(Object a, Object b) {
-        if (a == b) {
-            return true;
-        }
-        if (a == null || b == null) {
-            return false;
-        }
-        Class ac = a.getClass();
-        if (!(ac.isArray())) {
-            return a.equals(b);
-        }
-        if (ac != b.getClass()) {
-            return false;
-        }
-        if (a instanceof Object[]) {
-            return equals((Object[])a, (Object[])b);
-        } else if (a instanceof int[]) {
-            return Arrays.equals((int[])a, (int[])b);
-        } else if (a instanceof float[]) {
-            return Arrays.equals((float[])a, (float[])b);
-        } else if (a instanceof long[]) {
-            return Arrays.equals((long[])a, (long[])b);
-        } else if (a instanceof double[]) {
-            return Arrays.equals((double[])a, (double[])b);
-        } else if (a instanceof byte[]) {
-            return Arrays.equals((byte[])a, (byte[])b);
-        } else if (a instanceof char[]) {
-            return Arrays.equals((char[])a, (char[])b);
-        } else if (a instanceof boolean[]) {
-            return Arrays.equals((boolean[])a, (boolean[])b);
-        } else if (a instanceof short[]) {
-            return Arrays.equals((short[])a, (short[])b);
-        } else {
-            return a.equals(b);
-        }
-    }
-
-    static int compare(boolean[] a, boolean[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            int av = a[i] ? 0 : 1;
-            int bv = b[i] ? 0 : 1;
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(byte[] a, byte[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            byte av = a[i];
-            byte bv = b[i];
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(char[] a, char[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            char av = a[i];
-            char bv = b[i];
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(double[] a, double[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            int v = Double.compare(a[i], b[i]);
-            if (v != 0) {
-                return v;
-            }
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(float[] a, float[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            int v = Float.compare(a[i], b[i]);
-            if (v != 0) {
-                return v;
-            }
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(int[] a, int[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            int av = a[i];
-            int bv = b[i];
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(long[] a, long[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            long av = a[i];
-            long bv = b[i];
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    static int compare(short[] a, short[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            short av = a[i];
-            short bv = b[i];
-            return av < bv ? -1 : (av > bv ? 1 : 0);
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    // Compares object arrays and recurses into arrays within.
-    static int compare(Object[] a, Object[] b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        int length = Math.min(a.length, b.length);
-        for (int i=0; i<length; i++) {
-            int v = compare(a[i], b[i]);
-            if (v != 0) {
-                return v;
-            }
-        }
-        return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
-    }
-
-    // Compares objects or arrays and recurses into arrays within.
-    static int compare(Object a, Object b) {
-        if (a == b) {
-            return 0;
-        }
-        if (a == null) {
-            return 1;
-        }
-        if (b == null) {
-            return -1;
-        }
-        Class ac = a.getClass();
-        if (!(ac.isArray())) {
-            return ((Comparable)a).compareTo(b);
-        }
-        if (ac != b.getClass()) {
-            throw new ClassCastException();
-        }
-        if (a instanceof Object[]) {
-            return compare((Object[])a, (Object[])b);
-        } else if (a instanceof int[]) {
-            return compare((int[])a, (int[])b);
-        } else if (a instanceof float[]) {
-            return compare((float[])a, (float[])b);
-        } else if (a instanceof long[]) {
-            return compare((long[])a, (long[])b);
-        } else if (a instanceof double[]) {
-            return compare((double[])a, (double[])b);
-        } else if (a instanceof byte[]) {
-            return compare((byte[])a, (byte[])b);
-        } else if (a instanceof char[]) {
-            return compare((char[])a, (char[])b);
-        } else if (a instanceof boolean[]) {
-            return compare((boolean[])a, (boolean[])b);
-        } else if (a instanceof short[]) {
-            return compare((short[])a, (short[])b);
-        } else {
-            throw new ClassCastException();
-        }
-    }
-
-    protected KeyFactory() {
-    }
-
-    private static interface ArrayKey extends Comparable, java.io.Serializable {
-        int hashCode();
-
-        boolean equals(Object obj);
-
-        int compareTo(Object obj);
-    }
-
-    private static class BooleanArrayKey implements ArrayKey {
-        protected final boolean[] mArray;
-        private transient int mHash;
-
-        BooleanArrayKey(boolean[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof BooleanArrayKey ?
-                 Arrays.equals(mArray, ((BooleanArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((BooleanArrayKey) obj).mArray);
-        }
-    }
-
-    private static class ByteArrayKey implements ArrayKey {
-        protected final byte[] mArray;
-        private transient int mHash;
-
-        ByteArrayKey(byte[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof ByteArrayKey ?
-                 Arrays.equals(mArray, ((ByteArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((ByteArrayKey) obj).mArray);
-        }
-    }
-
-    private static class CharArrayKey implements ArrayKey {
-        protected final char[] mArray;
-        private transient int mHash;
-
-        CharArrayKey(char[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof CharArrayKey ?
-                 Arrays.equals(mArray, ((CharArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((CharArrayKey) obj).mArray);
-        }
-    }
-
-    private static class DoubleArrayKey implements ArrayKey {
-        protected final double[] mArray;
-        private transient int mHash;
-
-        DoubleArrayKey(double[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof DoubleArrayKey ?
-                 Arrays.equals(mArray, ((DoubleArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((DoubleArrayKey) obj).mArray);
-        }
-    }
-
-    private static class FloatArrayKey implements ArrayKey {
-        protected final float[] mArray;
-        private transient int mHash;
-
-        FloatArrayKey(float[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof FloatArrayKey ?
-                 Arrays.equals(mArray, ((FloatArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((FloatArrayKey) obj).mArray);
-        }
-    }
-
-    private static class IntArrayKey implements ArrayKey {
-        protected final int[] mArray;
-        private transient int mHash;
-
-        IntArrayKey(int[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof IntArrayKey ?
-                 Arrays.equals(mArray, ((IntArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((IntArrayKey) obj).mArray);
-        }
-    }
-
-    private static class LongArrayKey implements ArrayKey {
-        protected final long[] mArray;
-        private transient int mHash;
-
-        LongArrayKey(long[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof LongArrayKey ?
-                 Arrays.equals(mArray, ((LongArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((LongArrayKey) obj).mArray);
-        }
-    }
-
-    private static class ShortArrayKey implements ArrayKey {
-        protected final short[] mArray;
-        private transient int mHash;
-
-        ShortArrayKey(short[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof ShortArrayKey ?
-                 Arrays.equals(mArray, ((ShortArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((ShortArrayKey) obj).mArray);
-        }
-    }
-
-    private static class ObjectArrayKey implements ArrayKey {
-        protected final Object[] mArray;
-        private transient int mHash;
-
-        ObjectArrayKey(Object[] array) {
-            mArray = array;
-        }
-
-        public int hashCode() {
-            int hash = mHash;
-            return hash == 0 ? mHash = KeyFactory.hashCode(mArray) : hash;
-        }
-
-        public boolean equals(Object obj) {
-            return this == obj ? true :
-                (obj instanceof ObjectArrayKey ?
-                 KeyFactory.equals(mArray, ((ObjectArrayKey) obj).mArray) : false);
-        }
-
-        public int compareTo(Object obj) {
-            return compare(mArray, ((ObjectArrayKey) obj).mArray);
-        }
-    }
-}
index d854fafecc77582743c1707f31c8be94c4fc14de..cf2772f408d349d7745d894876e9ddb2e827ec37 100644 (file)
@@ -46,6 +46,12 @@ import java.util.Set;
 public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
     implements Map<K, V>, Cloneable
 {
+    static final Object NULL = new Comparable() {
+        public int compareTo(Object obj) {
+            return obj == this || obj == null ? 0 : 1;
+        }
+    };
+    
     private transient Entry<K, V>[] table;
     private transient int count;
     private int threshold;
@@ -128,7 +134,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
 
     public boolean containsValue(Object value) {
         if (value == null) {
-            value = KeyFactory.NULL;
+            value = NULL;
         }
 
         Entry[] tab = this.table;
@@ -221,7 +227,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     }
                     count--;
                 } else if (e.hash == hash && key.equals(e.key)) {
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -241,7 +247,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     }
                     this.count--;
                 } else if (e.key == null) {
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -311,7 +317,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
 
     public V put(K key, V value) {
         if (value == null) {
-            value = (V) KeyFactory.NULL;
+            value = (V) NULL;
         }
 
         // Makes sure the key is not already in the HashMap.
@@ -336,7 +342,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     this.count--;
                 } else if (e.hash == hash && key.equals(e.key)) {
                     e.setValue(value);
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -358,7 +364,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     this.count--;
                 } else if (e.key == null) {
                     e.setValue(value);
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -415,7 +421,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     this.count--;
 
                     e.setValue(null);
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -443,7 +449,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
                     this.count--;
 
                     e.setValue(null);
-                    return (entryValue == KeyFactory.NULL) ? null : entryValue;
+                    return (entryValue == NULL) ? null : entryValue;
                 } else {
                     prev = e;
                 }
@@ -693,12 +699,12 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
 
         public V getValue() {
             V value = this.value.get();
-            return value == KeyFactory.NULL ? null : value;
+            return value == NULL ? null : value;
         }
 
         public V setValue(V value) {
             V oldValue = getValue();
-            this.value = newReference(value == null ? ((V) KeyFactory.NULL) : value);
+            this.value = newReference(value == null ? ((V) NULL) : value);
             return oldValue;
         }
 
@@ -713,7 +719,7 @@ public abstract class ReferencedValueHashMap<K, V> extends AbstractMap<K, V>
             Object thisValue = get();
             if (thisValue == null) {
                 return false;
-            } else if (thisValue == KeyFactory.NULL) {
+            } else if (thisValue == NULL) {
                 thisValue = null;
             }
             return (this.key == null ? e.getKey() == null : this.key.equals(e.getKey())) &&
index 70030ab88d24888d07bafaf1d07124c221f6791f..b771a982fb3b5d77c7a902ff974f1045e62127a4 100644 (file)
@@ -208,7 +208,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
 
     public boolean containsKey(Object key) {
         if (key == null) {
-            key = KeyFactory.NULL;
+            key = ReferencedValueHashMap.NULL;
         }
 
         Entry[] tab = this.table;
@@ -239,7 +239,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
 
     public V get(Object key) {
         if (key == null) {
-            key = KeyFactory.NULL;
+            key = ReferencedValueHashMap.NULL;
         }
 
         Entry<K, V>[] tab = this.table;
@@ -329,7 +329,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
 
     public V put(K key, V value) {
         if (key == null) {
-            key = (K) KeyFactory.NULL;
+            key = (K) ReferencedValueHashMap.NULL;
         }
 
         cleanup();
@@ -378,7 +378,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
 
     public V remove(Object key) {
         if (key == null) {
-            key = KeyFactory.NULL;
+            key = ReferencedValueHashMap.NULL;
         }
 
         Entry<K, V>[] tab = this.table;
@@ -637,7 +637,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
 
         public K getKey() {
             K key = Entry.this.get();
-            return key == KeyFactory.NULL ? null : key;
+            return key == ReferencedValueHashMap.NULL ? null : key;
         }
 
         public V getValue() {
@@ -661,7 +661,7 @@ public class WeakIdentityMap<K, V> extends AbstractMap<K, V> implements Map<K, V
             Object thisKey = get();
             if (thisKey == null) {
                 return false;
-            } else if (thisKey == KeyFactory.NULL) {
+            } else if (thisKey == ReferencedValueHashMap.NULL) {
                 thisKey = null;
             }
             return (thisKey == e.getKey()) &&
index e463a4e6a4ca420c8308e405c4dc0017dd321d8c..82d615ca89f476e248615ffb158075d5b7fa5826 100644 (file)
@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.simantics.scl.compiler.common.names.Name;
+import org.simantics.scl.compiler.common.names.Names;
 import org.simantics.scl.compiler.constants.StringConstant;
 import org.simantics.scl.compiler.elaboration.expressions.EApply;
 import org.simantics.scl.compiler.elaboration.expressions.EBlock;
@@ -47,7 +47,6 @@ import org.simantics.scl.compiler.runtime.RuntimeEnvironment;
 import org.simantics.scl.compiler.top.ExpressionEvaluator;
 import org.simantics.scl.compiler.top.LocalStorage;
 import org.simantics.scl.compiler.top.SCLExpressionCompilationException;
-import org.simantics.scl.compiler.types.TCon;
 import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.compiler.types.Types;
 import org.simantics.scl.runtime.SCLContext;
@@ -78,10 +77,6 @@ public class CommandSession {
     
     PrintStream fileOutput;
 
-    private static final String CONTEXT_MODULE = "Expressions/Context";
-    private static final TCon CONTEXT_TYPE = Types.con(CONTEXT_MODULE, "Context");
-    private static final Name CONTEXT_GET = Name.create(CONTEXT_MODULE, "contextGet");
-
     public CommandSession(ModuleRepository moduleRepository, SCLReportingHandler handler) {
         this.moduleRepository = moduleRepository;
         this.defaultHandler = new PrintDecorator(
@@ -202,7 +197,7 @@ public class CommandSession {
         }, Types.functionE(Types.STRING, Types.PROC, Types.UNIT)));
         LOCAL_FUNCTIONS.put("reset", new LocalFunction(new FunctionImpl2<CommandSession, Tuple0, Tuple0>() {
             @Override
-            public Tuple0 apply(CommandSession commandSession, Tuple0 _) {
+            public Tuple0 apply(CommandSession commandSession, Tuple0 dummy) {
                 commandSession.removeTransientImports();
                 commandSession.removeVariables();
                 commandSession.moduleRepository.getSourceRepository().checkUpdates();
@@ -212,7 +207,7 @@ public class CommandSession {
         }, Types.functionE(Types.UNIT, Types.PROC, Types.UNIT)));
         LOCAL_FUNCTIONS.put("variables", new LocalFunction(new FunctionImpl2<CommandSession, Tuple0, List<String>>() {
             @Override
-            public List<String> apply(CommandSession commandSession, Tuple0 _) {
+            public List<String> apply(CommandSession commandSession, Tuple0 dummy) {
                 ArrayList<String> result = new ArrayList<String>(commandSession.variableTypes.keySet());
                 Collections.sort(result);
                 return result;
@@ -255,7 +250,7 @@ public class CommandSession {
         }, Types.functionE(Types.STRING, Types.PROC, Types.UNIT)));
         LOCAL_FUNCTIONS.put("stopPrintingToFile", new LocalFunction(new FunctionImpl2<CommandSession, Tuple0, Tuple0>() {
             @Override
-            public Tuple0 apply(final CommandSession commandSession, Tuple0 _) {
+            public Tuple0 apply(final CommandSession commandSession, Tuple0 dummy) {
                 if(commandSession.fileOutput != null) {
                     commandSession.fileOutput.close();
                     commandSession.fileOutput = null;
@@ -267,13 +262,13 @@ public class CommandSession {
 
     private LocalEnvironment createLocalEnvironment() {
         return new AbstractLocalEnvironment() {
-            Variable contextVariable = new Variable("context", CONTEXT_TYPE);
+            Variable contextVariable = new Variable("context", Names.Expressions_Context_Context);
             @Override
             public Expression resolve(Environment environment, String localName) {
                 Type type = variableTypes.get(localName);
                 if(type != null)
                     return new EApply(
-                            new EConstant(environment.getValue(CONTEXT_GET), type),
+                            new EConstant(environment.getValue(Names.Expressions_Context_contextGet), type),
                             new EVariable(contextVariable),
                             new ELiteral(new StringConstant(localName))
                             );
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/common/names/Names.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/common/names/Names.java
new file mode 100644 (file)
index 0000000..046d31f
--- /dev/null
@@ -0,0 +1,80 @@
+package org.simantics.scl.compiler.common.names;\r
+\r
+import org.simantics.scl.compiler.types.TCon;\r
+import org.simantics.scl.compiler.types.Type;\r
+import org.simantics.scl.compiler.types.Types;\r
+\r
+public class Names {\r
+    \r
+    public static final Name ArrayList_add = Name.create("ArrayList", "add");\r
+    public static final Name ArrayList_freeze = Name.create("ArrayList", "freeze");\r
+    public static final Name ArrayList_new = Name.create("ArrayList", "new");\r
+    public static final Name Builtin_equals = Name.create(Types.BUILTIN, "==");\r
+    public static final Name Builtin_fail = Name.create(Types.BUILTIN, "fail");\r
+    public static final Name Builtin_runProc = Name.create(Types.BUILTIN, "runProc");\r
+    public static final Name Data_XML_createElement = Name.create("Data/XML", "createElement");\r
+    public static final Type Data_XML_Element = Types.con("Data/XML", "Element");\r
+    public static final TCon Expressions_Context_Context = Types.con("Expressions/Context", "Context");    \r
+    public static final Name Expressions_Context_contextGet = Name.create("Expressions/Context", "contextGet");\r
+    public static final Name JavaBuiltin_unsafeCoerce = Name.create("JavaBuiltin", "unsafeCoerce");\r
+    public static final Name MList_add = Name.create("MList", "add");\r
+    public static final Name MList_create = Name.create("MList", "create");\r
+    public static final Name MList_removeLast = Name.create("MList", "removeLast");\r
+    public static final TCon MList_T = Types.con("MList", "T");\r
+    public static final Name MSet_add = Name.create("MSet", "add");\r
+    public static final Name MSet_contains = Name.create("MSet", "contains");\r
+    public static final Name MSet_create = Name.create("MSet", "create");\r
+    public static final Name MSet_iter = Name.create("MSet", "iter");\r
+    public static final Name MSet_mapFirst = Name.create("MSet", "mapFirst");\r
+    public static final TCon MSet_T = Types.con("MSet", "T");\r
+    public static final Name Prelude_addList = Name.create("Prelude", "addList");\r
+    public static final Name Prelude_any = Name.create("Prelude", "any");\r
+    public static final Name Prelude_appendList = Name.create("Prelude", "appendList");\r
+    public static final Name Prelude_bind = Name.create("Prelude", ">>=");\r
+    public static final Name Prelude_build = Name.create("Prelude", "build");\r
+    public static final Name Prelude_concatMap = Name.create("Prelude", "concatMap");\r
+    public static final Name Prelude_elem = Name.create("Prelude", "elem");\r
+    public static final Name Prelude_elemMaybe = Name.create("Prelude", "elemMaybe");\r
+    public static final Name Prelude_emptyList = Name.create("Prelude", "emptyList");\r
+    public static final Name Prelude_foldl = Name.create("Prelude", "foldl");\r
+    public static final Name Prelude_fromDouble = Name.create("Prelude", "fromDouble");    \r
+    public static final Name Prelude_fromInteger = Name.create("Prelude", "fromInteger"); \r
+    public static final Name Prelude_guardList = Name.create("Prelude", "guardList");\r
+    public static final Name Prelude_iterList = Name.create("Prelude", "iterList");\r
+    public static final Name Prelude_mapFirst = Name.create("Prelude", "mapFirst");\r
+    public static final Name Prelude_mapList = Name.create("Prelude", "mapList");\r
+    public static final Name Prelude_neg = Name.create("Prelude", "neg");\r
+    public static final Name Prelude_not = Name.create("Prelude", "not");\r
+    public static final Name Prelude_range = Name.create("Prelude", "range");\r
+    public static final Name Prelude_showForPrinting = Name.create("Prelude", "showForPrinting");\r
+    public static final Name Prelude_singletonList = Name.create("Prelude", "singletonList");\r
+    public static final Name R_R_runR = Name.create("R/R", "runR");\r
+    public static final Name Random_runRandom = Name.create("Random", "runRandom");\r
+    public static final Name Serialization_ioSize = Name.create("Serialization", "ioSize");\r
+    public static final Name Serialization_read = Name.create("Serialization", "read");\r
+    public static final Name Serialization_write = Name.create("Serialization", "write");\r
+    public static final Name Simantics_DB_newResource = Name.create("Simantics/DB", "newResource");\r
+    public static final Name Simantics_DB_syncRead = Name.create("Simantics/DB", "syncRead");\r
+    public static final Name Simantics_DB_syncWrite = Name.create("Simantics/DB", "syncWrite");\r
+    public static final Name Simantics_Variables_child_ = Name.create("Simantics/Variables", "child_");\r
+    public static final Name Simantics_Variables_property = Name.create("Simantics/Variables", "property");\r
+    public static final Name Simantics_Variables_untypedPropertyValue = Name.create("Simantics/Variables", "untypedPropertyValue");\r
+    public static final Name Unifiable_createUMap = Name.create("Unification", "createUMap");\r
+    public static final Name Unifiable_extractWithDefault = Name.create("Unification", "extractWithDefault");\r
+    public static final Name Unifiable_getUMapWithDefault = Name.create("Unification", "getUMapWithDefault");\r
+    public static final Name Unifiable_putUMap = Name.create("Unification", "putUMap");\r
+    public static final Name Unifiable_putUMapC = Name.create("Unification", "putUMapC");\r
+    public static final Name Unifiable_uCons = Name.create("Unification", "uCons");\r
+    public static final Name Unifiable_uId = Name.create("Unification", "uId");\r
+    public static final TCon Unifiable_UMap = Types.con("Unification", "UMap");\r
+    public static final TCon Unifiable_Unifiable = Types.con("Unification", "Unifiable");\r
+    public static final Name Unifiable_uPending = Name.create("Unification", "uPending");\r
+    public static final Name Unifiable_uTag = Name.create("Unification", "uTag");\r
+    public static final TCon Unifiable_UTag = Types.con("Unification", "UTag");\r
+    public static final Name Unifiable_uVar = Name.create("Unification", "uVar");\r
+    public static final Name Vector_anyVector = Name.create("Vector", "anyVector");\r
+    public static final Name Vector_concatMapVector = Name.create("Vector", "concatMapVector");\r
+    public static final Name Vector_iterVector = Name.create("Vector", "iterVector");\r
+    public static final Name Vector_mapFirstVector = Name.create("Vector", "mapFirstVector");\r
+    \r
+}\r
index 470b8e9f0701c0418fb08bf02757e0b4717616d5..52abbc6d87b48542b60e26152d917d4b64eaa22a 100644 (file)
@@ -25,7 +25,6 @@ import org.simantics.scl.compiler.elaboration.modules.SCLValueProperty;
 import org.simantics.scl.compiler.elaboration.modules.TypeClass;
 import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance;
 import org.simantics.scl.compiler.elaboration.modules.TypeClassMethod;
-import org.simantics.scl.compiler.environment.Environment;
 import org.simantics.scl.compiler.errors.ErrorLog;
 import org.simantics.scl.compiler.internal.codegen.references.IVal;
 import org.simantics.scl.compiler.internal.codegen.references.Val;
@@ -37,7 +36,6 @@ import org.simantics.scl.compiler.internal.codegen.utils.ClassBuilder;
 import org.simantics.scl.compiler.internal.codegen.utils.CodeBuilderUtils;
 import org.simantics.scl.compiler.internal.codegen.utils.CodeBuildingException;
 import org.simantics.scl.compiler.internal.codegen.utils.Constants;
-import org.simantics.scl.compiler.internal.codegen.utils.JavaNamingPolicy;
 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilderBase;
 import org.simantics.scl.compiler.internal.codegen.utils.ModuleBuilder;
@@ -61,10 +59,8 @@ public class CodeGeneration {
     
     public static final int OPTIMIZATION_PHASES = 2;
     
+    CompilationContext compilationContext;
     ErrorLog errorLog;
-    Environment environment;
-    JavaNamingPolicy namingPolicy;
-    JavaTypeTranslator javaTypeTranslator;
     JavaReferenceValidator<Object, Object, Object, Object> validator;
     ConcreteModule module;
     ModuleBuilder moduleBuilder;
@@ -75,28 +71,22 @@ public class CodeGeneration {
     Map<String, byte[]> classes;
     
     @SuppressWarnings("unchecked")
-    public CodeGeneration(ErrorLog errorLog,
-            Environment environment,
-            JavaNamingPolicy namingPolicy, JavaTypeTranslator javaTypeTranslator,
+    public CodeGeneration(CompilationContext compilationContext,
             JavaReferenceValidator<?, ?, ?, ?> javaReferenceValidator,
-            ConcreteModule module) {
-        this.errorLog = errorLog;
-        this.environment = environment;
-        this.namingPolicy = namingPolicy;
-        this.javaTypeTranslator = javaTypeTranslator;
+            ConcreteModule module) {    
+        this.compilationContext = compilationContext;
+        this.errorLog = compilationContext.errorLog;
         this.module = module;
         this.validator = (JavaReferenceValidator<Object, Object, Object, Object>) javaReferenceValidator;
   &n