Inverted copyInto to copyFrom in IEglContext to avoid duplication of code in EGX. Deleted EglModuleParallel (incomplete/incorrect/requires complete redesign).
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EgxModule.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EgxModule.java
index df23982..127c4df 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EgxModule.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EgxModule.java
@@ -176,7 +176,7 @@
 	@Override
 	protected void prepareContext() {
 		super.prepareContext();
-		getContext().copyInto(getContext().getTemplateFactory().getContext(), true);
+		getTemplateFactory().getContext().copyFrom(context, true);
 	}
 	
 	@Override
@@ -194,7 +194,7 @@
 	 * @since 1.6
 	 */
 	protected void generateRules() throws EolRuntimeException {
-		EglTemplateFactory templateFactory = getContext().getTemplateFactory();
+		EglTemplateFactory templateFactory = getTemplateFactory();
 		
 		for (GenerationRule rule : getGenerationRules()) {
 			rule.generateAll(context, templateFactory, this);
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
index 108366f..0a1336a 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
@@ -46,7 +46,7 @@
 		this.context = egxContext;
 		this.invokedTemplates = new ConcurrentLinkedQueue<>();
 	}
-	
+
 	@Override
 	protected void prepareExecution() throws EolRuntimeException {
 		super.prepareExecution();
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/EglContext.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/EglContext.java
index 0fd6d10..d01f87c 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/EglContext.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/EglContext.java
@@ -40,22 +40,26 @@
 	private IEglContext parentContext;

 	

 	public EglContext() {

-		this(new EglTemplateFactory());

+		this((EglTemplateFactory) null);

 	}

 	

 	public EglContext(EglTemplateFactory templateFactory) {

 		super(new EolClasspathNativeTypeDelegate(EglContext.class.getClassLoader()));

-		this.templateFactory = templateFactory != null ? templateFactory : new EglTemplateFactory();

+		this.templateFactory = templateFactory != null ? templateFactory : new EglTemplateFactory(this);

 		populateScope();

 		setOperationFactory(new EglOperationFactory());

 	}

-

-	protected void setExecutionManager(EglExecutionManager executionManager) {

-		this.executionManager = executionManager;

-	}

 	

-	public void setTemplateFactory(EglTemplateFactory templateFactory) {

-		this.templateFactory = templateFactory;

+	@Override

+	public void copyFrom(IEolContext context, boolean preserveFramestack) {

+		IEglContext.super.copyFrom(context, preserveFramestack);

+		

+		if (context instanceof EglContext) {

+			EglContext other = (EglContext) context;

+		 	this.parentContext = other.parentContext;

+		 	this.executionManager = other.executionManager;

+		 	this.templateFactory = other.templateFactory;

+		}

 	}

 	

 	@Override

@@ -81,13 +85,6 @@
 			Variable.createReadOnlyVariable("closeTag",       "%]")

 		);

 	}

-	

-	

-	

-	@Override

-	public void copyInto(IEolContext context) {

-		copyInto(context, false);

-	}

 

 	@Override

 	public CompositePartitioner getPartitioner() {

diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEglContext.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEglContext.java
index 586c0d5..46dee04 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEglContext.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEglContext.java
@@ -27,30 +27,35 @@
 	public List<String> getPartitioningProblems();	

 	

 	public EglTemplateFactory getTemplateFactory();

-	

+

 	/**

 	 * 

 	 * @param context

+	 * @param preserveFramestack

 	 * @since 1.6

 	 */

-	public default void copyInto(IEolContext context) {

-		copyInto(context, false);

-	}

-

-	public default void copyInto(IEolContext context, boolean preserveFrameStack) {

-		context.setErrorStream(getErrorStream());

-		context.setExecutorFactory(getExecutorFactory());

-		context.setIntrospectionManager(getIntrospectionManager());

-		context.setModelRepository(getModelRepository());

-		context.setOperationFactory(getOperationFactory());

-		context.setOutputStream(getOutputStream());

-		if (!preserveFrameStack) context.setFrameStack(getFrameStack());

-		context.setUserInput(getUserInput());

-		context.setNativeTypeDelegates(getNativeTypeDelegates());

-		context.setExtendedProperties(getExtendedProperties());

-		context.setPrettyPrinterManager(getPrettyPrinterManager());

-		if (context instanceof EglPreprocessorContext)

-			((EglPreprocessorContext) context).setEglContext(this);

+	public default void copyFrom(IEolContext context, boolean preserveFramestack) {

+		this.setErrorStream(context.getErrorStream());

+		this.setExecutorFactory(context.getExecutorFactory());

+		this.setIntrospectionManager(context.getIntrospectionManager());

+		this.setModelRepository(context.getModelRepository());

+		this.setOperationFactory(context.getOperationFactory());

+		this.setOutputStream(context.getOutputStream());

+		if (!preserveFramestack) this.setFrameStack(context.getFrameStack());

+		this.setUserInput(context.getUserInput());

+		this.setNativeTypeDelegates(context.getNativeTypeDelegates());

+		this.setExtendedProperties(context.getExtendedProperties());

+		this.setPrettyPrinterManager(context.getPrettyPrinterManager());

+		if (context instanceof IEglContext) {

+			IEglContext other = (IEglContext) context;

+			other.getStatusMessages().forEach(this::addStatusMessage);

+			this.setOutputBufferFactory(other.getOutputBufferFactory());

+			this.setPartitioner(other.getPartitioner());

+			this.setContentTypeRepository(other.getContentTypeRepository());

+			if (this instanceof EglPreprocessorContext) {

+				((EglPreprocessorContext) this).setEglContext(other);

+			}

+		}

 	}

 	

 	public CompositePartitioner getPartitioner();

diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEgxContext.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEgxContext.java
index f842896..b052111 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEgxContext.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/IEgxContext.java
@@ -11,7 +11,6 @@
 
 import org.eclipse.epsilon.egl.EglTemplateFactory;
 import org.eclipse.epsilon.egl.IEgxModule;
-import org.eclipse.epsilon.eol.execute.context.IEolContext;
 import org.eclipse.epsilon.erl.execute.RuleExecutorFactory;
 import org.eclipse.epsilon.erl.execute.context.IErlContext;
 
@@ -42,26 +41,4 @@
 	
 	public EglTemplateFactory getTemplateFactory();
 	
-	/**
-	 * 
-	 * @param context
-	 * @since 1.6
-	 */
-	public default void copyInto(IEolContext context) {
-		copyInto(context, false);
-	}
-
-	public default void copyInto(IEolContext context, boolean preserveFrameStack) {
-		context.setErrorStream(getErrorStream());
-		context.setExecutorFactory(getExecutorFactory());
-		context.setIntrospectionManager(getIntrospectionManager());
-		context.setModelRepository(getModelRepository());
-		context.setOperationFactory(getOperationFactory());
-		context.setOutputStream(getOutputStream());
-		if (!preserveFrameStack) context.setFrameStack(getFrameStack());
-		context.setUserInput(getUserInput());
-		context.setNativeTypeDelegates(getNativeTypeDelegates());
-		context.setExtendedProperties(getExtendedProperties());
-		context.setPrettyPrinterManager(getPrettyPrinterManager());
-	}
 }
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EglContextParallel.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EglContextParallel.java
deleted file mode 100644
index 4e2c73f..0000000
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EglContextParallel.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2018 The University of York.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
-**********************************************************************/
-package org.eclipse.epsilon.egl.execute.context.concurrent;
-
-import org.eclipse.epsilon.common.concurrent.ConcurrencyUtils;
-import org.eclipse.epsilon.common.module.ModuleElement;
-import org.eclipse.epsilon.egl.EglTemplateFactory;
-import org.eclipse.epsilon.egl.execute.context.EglContext;
-import org.eclipse.epsilon.egl.execute.context.EglExecutionManager;
-import org.eclipse.epsilon.egl.execute.context.EglFrameStackManager;
-import org.eclipse.epsilon.eol.exceptions.concurrent.EolNestedParallelismException;
-import org.eclipse.epsilon.eol.execute.ExecutorFactory;
-import org.eclipse.epsilon.eol.execute.concurrent.executors.EolExecutorService;
-import org.eclipse.epsilon.eol.execute.context.FrameStack;
-import org.eclipse.epsilon.eol.execute.context.concurrent.IEolContextParallel;
-import org.eclipse.epsilon.eol.execute.operations.contributors.OperationContributorRegistry;
-import org.eclipse.epsilon.eol.execute.concurrent.DelegatePersistentThreadLocal;
-import org.eclipse.epsilon.eol.execute.concurrent.PersistentThreadLocal;
-
-/**
- * 
- * @author Sina Madani
- * @since 1.6
- */
-public class EglContextParallel extends EglContext implements IEolContextParallel {
-
-	protected final int numThreads;
-	protected int nestLevel;
-	protected boolean isParallel = false;
-	protected EolExecutorService executorService;
-	protected PersistentThreadLocal<FrameStack> concurrentFrameStacks;
-	protected PersistentThreadLocal<ExecutorFactory> concurrentExecutors;
-	protected ThreadLocal<OperationContributorRegistry> concurrentMethodContributors;
-	protected ThreadLocal<EglExecutionManager> concurrentExecutionManagers;
-	
-	public EglContextParallel() {
-		this(0);
-	}
-	
-	public EglContextParallel(EglTemplateFactory templateFactory) {
-		this(templateFactory, 0);
-	}
-
-	public EglContextParallel(int parallelism) {
-		this(null, parallelism);
-	}
-	
-	public EglContextParallel(EglTemplateFactory templateFactory, int parallelism) {
-		super(templateFactory);
-		numThreads = parallelism > 0 ? parallelism : ConcurrencyUtils.DEFAULT_PARALLELISM;
-		initMainThreadStructures();
-	}
-	
-	protected void initMainThreadStructures() {
-		frameStack = new FrameStack(null, true);
-		executorFactory = new ExecutorFactory(null, true);
-		setExecutionManager(new EglExecutionManager(new EglFrameStackManager(getFrameStack())));
-	}
-	
-	protected void initThreadLocals() {
-		concurrentMethodContributors = ThreadLocal.withInitial(OperationContributorRegistry::new);
-		concurrentFrameStacks = new DelegatePersistentThreadLocal<>(() -> new FrameStack(frameStack, false));
-		concurrentExecutors = new DelegatePersistentThreadLocal<>(() -> new ExecutorFactory(executorFactory, false));
-		concurrentExecutionManagers = ThreadLocal.withInitial((() -> new EglExecutionManager(new EglFrameStackManager(getFrameStack()))));
-	}
-	
-	protected void setBaseThreadSafety(boolean concurrent) {
-		frameStack.setThreadSafe(concurrent);
-		executorFactory.setThreadSafe(concurrent);
-	}
-	
-	@Override
-	protected void finalize() {
-		if (executorService != null) {
-			executorService.shutdownNow();
-			executorService = null;
-		}
-	}
-	
-	@Override
-	public void goParallel() {
-		if (!isParallel) {
-			initThreadLocals();
-			isParallel = true;
-		}
-	}
-	
-	@Override
-	public void endParallel() {
-		isParallel = false;
-		
-		finalize();
-		
-		concurrentFrameStacks.removeAll();
-		concurrentFrameStacks = null;
-		concurrentMethodContributors = null;
-		concurrentExecutors.removeAll();
-		concurrentExecutors = null;
-	}
-	
-	@Override
-	public boolean isParallel() {
-		return isParallel;
-	}
-	
-	@Override
-	public int getParallelism() {
-		return numThreads;
-	}
-	
-	@Override
-	public void enterParallelNest(ModuleElement entryPoint) throws EolNestedParallelismException {
-		if (++nestLevel > PARALLEL_NEST_THRESHOLD) {
-			throw new EolNestedParallelismException(entryPoint);
-		}
-	}
-
-	@Override
-	public void exitParallelNest(ModuleElement entryPoint) {
-		if (nestLevel > 0)
-			nestLevel--;
-	}
-
-	@Override
-	public int getNestedParallelism() {
-		return nestLevel;
-	}
-	
-	@Override
-	public EolExecutorService getExecutorService() {
-		if (executorService == null) {
-			executorService = newExecutorService();
-		}
-		return executorService;
-	}
-	
-	@Override
-	public FrameStack getFrameStack() {
-		return parallelGet(concurrentFrameStacks, super::getFrameStack);
-	}
-	
-	@Override
-	public void setFrameStack(FrameStack frameStack) {
-		parallelSet(frameStack, concurrentFrameStacks, super::setFrameStack);
-	}
-	
-	@Override
-	public OperationContributorRegistry getOperationContributorRegistry() {
-		return parallelGet(concurrentMethodContributors, super::getOperationContributorRegistry);
-	}
-	
-	@Override
-	public ExecutorFactory getExecutorFactory() {
-		return parallelGet(concurrentExecutors, super::getExecutorFactory);
-	}
-
-	@Override
-	public void setExecutorFactory(ExecutorFactory executorFactory) {
-		parallelSet(executorFactory, concurrentExecutors, super::setExecutorFactory);
-	}
-	
-	@Override
-	public String toString() {
-		return super.toString()+" [parallelism="+getParallelism()+"]";
-	}
-	
-}
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
index 2c2bd39..0bd5ec8 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
@@ -34,8 +34,7 @@
 	
 	public EgxContextParallel(EglTemplateFactory templateFactory, int parallelism) {
 		super(parallelism);
-		this.templateFactory = templateFactory != null ? templateFactory :
-			new EglTemplateFactory(new EglContextParallel(getParallelism()));
+		this.templateFactory = templateFactory != null ? templateFactory : new EglTemplateFactory();
 	}
 
 	public EgxContextParallel(int parallelism) {
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/internal/EglModule.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/internal/EglModule.java
index cf917ba..2624b8e 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/internal/EglModule.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/internal/EglModule.java
@@ -51,9 +51,7 @@
 

 	protected EglParser parser;

 	protected EglLexer lexer;

-	protected Reader reader;

 	protected EglPreprocessorModule preprocessorModule;

-	protected AST ast;

 

 	private final List<EglMarkerSection> markers = new LinkedList<>();	

 	private URI templateRoot;

@@ -63,8 +61,8 @@
 	}

 	

 	public EglModule(IEglContext context) {

-		this.context = context != null ? context : new EglContext();

-		preprocessorModule = new EglPreprocessorModule(context);

+		((IEglContext) (this.context = new EglContext())).copyFrom(context, false);

+		preprocessorModule = new EglPreprocessorModule(this.context);

 	}

 

 	@Override

@@ -90,7 +88,8 @@
 

 			try {

 				templateRoot = UriUtil.fileToUri(file.getAbsoluteFile().getParentFile());

-			} catch (URISyntaxException e) {}

+			}

+			catch (URISyntaxException e) {}

 		}

 		

 		return parseAndPreprocess(lexer, file);

@@ -101,19 +100,15 @@
 		if (uri == null)

 			throw new IllegalArgumentException("URI cannot be null");

 

-		try {

-			this.sourceUri = uri;

-			this.templateRoot = uri;

+		this.sourceUri = uri;

+		this.templateRoot = uri;

 

-			if (uri.getScheme() != null && uri.getScheme().equals("file")) {

-				this.sourceFile = new File(uri);

-			}

-

-			reader = new BufferedReader(new InputStreamReader(uri.toURL().openStream()));

-			return parseAndPreprocess(new EglLexer(reader), this.sourceFile);

+		if (uri.getScheme() != null && uri.getScheme().equals("file")) {

+			this.sourceFile = new File(uri);

 		}

-		finally {

-			if (reader != null) reader.close();

+

+		try (Reader reader = new BufferedReader(new InputStreamReader(uri.toURL().openStream()))) {

+			return parseAndPreprocess(new EglLexer(reader), this.sourceFile);

 		}

 	}

 	

@@ -122,13 +117,13 @@
 		EpsilonTreeAdaptor astFactory = new EpsilonTreeAdaptor(file, this);

 		parser = new EglParser(lexer, astFactory);

 		parser.parse();

-		ast = parser.getAST();

+		AST ast = parser.getAST();

 		

 		final boolean validEgl = parser.getParseProblems().isEmpty();

 		final boolean validEol = preprocessorModule.preprocess(ast, sourceFile, sourceUri);

 

 		if (validEgl && validEol) {

-			buildModel();

+			buildModel(ast);

 		}

 		

 		return validEgl && validEol;

@@ -141,7 +136,7 @@
 		return null;

 	}

 	

-	public void buildModel() throws Exception {	

+	void buildModel(AST ast) throws Exception {	

 		for (AST child : ast.getChildren()) {

 			if (child.getType() == TokenType.START_MARKER_TAG.getIdentifier()) {

 				EglMarkerSection section = (EglMarkerSection) createAst(child, this);

@@ -163,13 +158,11 @@
 	@Override

 	public EglResult execute(EglTemplate template, Formatter postprocessor) throws EglRuntimeException {

 		IEglContext context = getContext();

-		

 		context.enter(template);

 		

 		final String generatedText = execute(postprocessor);

 		

 		context.exit();

-		

 		return new EglResult(generatedText);

 	}

 

diff --git a/plugins/org.eclipse.epsilon.egl.traceability.fine/src/org/eclipse/epsilon/egl/engine/traceability/fine/internal/EglOutputBufferPrintExecutionListener.java b/plugins/org.eclipse.epsilon.egl.traceability.fine/src/org/eclipse/epsilon/egl/engine/traceability/fine/internal/EglOutputBufferPrintExecutionListener.java
index 265f07c..516fc27 100644
--- a/plugins/org.eclipse.epsilon.egl.traceability.fine/src/org/eclipse/epsilon/egl/engine/traceability/fine/internal/EglOutputBufferPrintExecutionListener.java
+++ b/plugins/org.eclipse.epsilon.egl.traceability.fine/src/org/eclipse/epsilon/egl/engine/traceability/fine/internal/EglOutputBufferPrintExecutionListener.java
@@ -12,9 +12,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.WeakHashMap;
-
 import org.eclipse.epsilon.common.module.ModuleElement;
-import org.eclipse.epsilon.common.parse.AST;
 import org.eclipse.epsilon.egl.engine.traceability.fine.trace.Region;
 import org.eclipse.epsilon.egl.execute.context.IEglContext;
 import org.eclipse.epsilon.egl.internal.EglPreprocessorContext;
@@ -25,13 +23,12 @@
 import org.eclipse.epsilon.eol.execute.control.IExecutionListener;
 import org.eclipse.epsilon.eol.execute.introspection.recording.IPropertyAccess;
 import org.eclipse.epsilon.eol.execute.introspection.recording.IPropertyAccessRecorder;
-import org.eclipse.epsilon.eol.parse.EolParser;
 
 @SuppressWarnings("restriction")
 public class EglOutputBufferPrintExecutionListener implements IExecutionListener {
 
 	private final IPropertyAccessRecorder recorder;
-	private final WeakHashMap<ModuleElement, EglOutputBufferPrintExecutionListener.TraceData> cache = new WeakHashMap<ModuleElement, EglOutputBufferPrintExecutionListener.TraceData>();
+	private final WeakHashMap<ModuleElement, EglOutputBufferPrintExecutionListener.TraceData> cache = new WeakHashMap<>();
 	private final TracedPropertyAccessLedger ledger;
 
 	public EglOutputBufferPrintExecutionListener(IPropertyAccessRecorder recorder, TracedPropertyAccessLedger ledger) {
diff --git a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/FrameStack.java b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/FrameStack.java
index 012a8fd..ffcb23b 100644
--- a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/FrameStack.java
+++ b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/FrameStack.java
@@ -577,6 +577,21 @@
 		return locals.isEmpty() ? globals : locals;

 	}

 	

+	/**

+	 * Copies the references of all variables in the given FrameStack into this FrameStack.

+	 * 

+	 * @param other The FrameStack to copy from.

+	 * @since 1.6

+	 */

+	public void putAll(FrameStack other) {

+		this.globals.putAll(other.globals.getAll());

+		this.locals.putAll(other.locals.getAll());

+		this.builtInVariables.putAll(other.builtInVariables);

+	}

+	

+	/**

+	 * @since 1.6

+	 */

 	@Override

 	public FrameStack getBase() {

 		return base;

@@ -596,11 +611,17 @@
 		return getFrames().size();

 	}

 	

+	/**

+	 * @since 1.6

+	 */

 	@Override

 	public boolean isThreadSafe() {

 		return isConcurrent;

 	}

 	

+	/**

+	 * @since 1.6

+	 */

 	@Override

 	public void setThreadSafe(boolean concurrent) {

 		if (concurrent != this.isConcurrent) {

@@ -613,6 +634,7 @@
 	/**

 	 * Adds all of this FrameStack's frames into its base FrameStack, or vice-versa.

 	 * @param mode Whether to merge from base to this, or from this to base.

+	 * @since 1.6

 	 */

 	@Override

 	public void merge(MergeMode mode) {

@@ -623,6 +645,7 @@
 	

 	/**

 	 * Adds all the frames and variables from the first argument to the second one.

+	 * @since 1.6

 	 */

 	protected static void mergeFrameStacks(FrameStack from, FrameStack to) {

 		if (from != null && to != null) {

diff --git a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/IEolContext.java b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/IEolContext.java
index 9493ecb..9091342 100644
--- a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/IEolContext.java
+++ b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/execute/context/IEolContext.java
@@ -94,5 +94,5 @@
 	Queue<AsyncStatementInstance> getAsyncStatementsQueue();

 	

 	OperationContributorRegistry getOperationContributorRegistry();

-	

+

 }