fmacj-commits Mailing List for FMACJ Parallelization Framework
Status: Beta
Brought to you by:
noah1989
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(31) |
Dec
(5) |
---|
From: <noa...@us...> - 2009-12-06 16:52:26
|
Revision: 110 http://fmacj.svn.sourceforge.net/fmacj/?rev=110&view=rev Author: noah1989 Date: 2009-12-06 16:52:16 +0000 (Sun, 06 Dec 2009) Log Message: ----------- reordered entries in makefiles Modified Paths: -------------- trunk/Examples.Mandelbrot/Examples.Mandelbrot.csproj trunk/Examples.Mandelbrot/Main.cs trunk/Examples.Mandelbrot/Makefile trunk/Examples.Mandelbrot/Mandelbrot.cs trunk/Fmacj.sln trunk/Makefile trunk/Tests/Distribution/DistributionTest.cs trunk/Tests/Emitter/ParallelizationFactoryTest.cs trunk/Tests/Emitter/TypeValidatorTest.cs trunk/Tests/Helpers/ChannelResolver.cs trunk/Tests/Helpers/ThreadTimeout.cs trunk/Tests/Makefile trunk/Tests/Runtime/BusTest.cs trunk/Tests/Runtime/ChannelEnumerableTest.cs trunk/Tests/Tests.csproj Added Paths: ----------- trunk/Core.Emitter/ trunk/Core.Emitter/AssemblyParallelizer.cs trunk/Core.Emitter/ChannelImplementer.cs trunk/Core.Emitter/ChordImplementer.cs trunk/Core.Emitter/ChordInfo.cs trunk/Core.Emitter/ConstructorImplementer.cs trunk/Core.Emitter/Core.Emitter.csproj trunk/Core.Emitter/DisposeImplementer.cs trunk/Core.Emitter/ForkGroup.cs trunk/Core.Emitter/ForkImplementer.cs trunk/Core.Emitter/JoinGroup.cs trunk/Core.Emitter/JoinImplementer.cs trunk/Core.Emitter/Makefile trunk/Core.Emitter/ParallelizationFactory.cs trunk/Core.Emitter/Properties/ trunk/Core.Emitter/Properties/AssemblyInfo.cs trunk/Core.Emitter/TypeAnalyzer/ trunk/Core.Emitter/TypeAnalyzer/TypeAnalyzer.Chord.cs trunk/Core.Emitter/TypeAnalyzer/TypeAnalyzer.Fork.cs trunk/Core.Emitter/TypeAnalyzer/TypeAnalyzer.Join.cs trunk/Core.Emitter/TypeAnalyzer/TypeAnalyzer.Yield.cs trunk/Core.Emitter/TypeAnalyzer/TypeAnalyzer.cs trunk/Core.Emitter/TypeParallelizer.cs trunk/Core.Emitter/YieldImplementer.cs trunk/Core.Emitter/YieldInfo.cs trunk/Core.Framework/ trunk/Core.Framework/AsynchronousAttribute.cs trunk/Core.Framework/ChannelAttribute.cs trunk/Core.Framework/ChordAttribute.cs trunk/Core.Framework/Constants.cs trunk/Core.Framework/Core.Framework.csproj trunk/Core.Framework/ForkAttribute.cs trunk/Core.Framework/IChannelEnumerable.cs trunk/Core.Framework/IParallelizable.cs trunk/Core.Framework/InconsistentChannelTypeException.cs trunk/Core.Framework/InvalidChannelException.cs trunk/Core.Framework/InvalidMethodException.cs trunk/Core.Framework/InvalidTypeException.cs trunk/Core.Framework/JoinAttribute.cs trunk/Core.Framework/Makefile trunk/Core.Framework/MovableAttribute.cs trunk/Core.Framework/ParallelException.cs trunk/Core.Framework/ParallelizableAttribute.cs trunk/Core.Framework/ParallelizationException.cs trunk/Core.Framework/Properties/ trunk/Core.Framework/Properties/AssemblyInfo.cs trunk/Core.Framework/RemoteException.cs trunk/Core.Framework/TypeNotFoundException.cs trunk/Core.Framework/TypeValidator.cs trunk/Core.Framework/YieldAttribute.cs trunk/Core.Runtime/ trunk/Core.Runtime/Bus.cs trunk/Core.Runtime/Channel.cs trunk/Core.Runtime/ChannelEnumerable.cs trunk/Core.Runtime/ChannelEnumerator.cs trunk/Core.Runtime/ChannelOptions.cs trunk/Core.Runtime/ChordManager.cs trunk/Core.Runtime/Core.Runtime.csproj trunk/Core.Runtime/IChannel.cs trunk/Core.Runtime/Makefile trunk/Core.Runtime/Properties/ trunk/Core.Runtime/Properties/AssemblyInfo.cs trunk/Tests/EmittedCode/ trunk/Tests/EmittedCode/ChannelTest.cs trunk/Tests/EmittedCode/ChordTest.cs trunk/Tests/EmittedCode/DisposeTest.cs trunk/Tests/EmittedCode/EnumerableChannelTest.cs trunk/Tests/EmittedCode/ForkTest.cs trunk/Tests/EmittedCode/JoinTest.cs trunk/Tests/EmittedCode/ShortcutTest.cs trunk/Tests/EmittedCode/YieldTest.cs Removed Paths: ------------- trunk/Components.TaskClient/Components.TaskClient.csproj trunk/Components.TaskClient/Makefile trunk/Components.TaskClient/Properties/AssemblyInfo.cs trunk/Components.TaskClient/TaskClient.cs trunk/Emitter/AssemblyParallelizer.cs trunk/Emitter/ChannelImplementer.cs trunk/Emitter/ChordImplementer.cs trunk/Emitter/ChordInfo.cs trunk/Emitter/ConstructorImplementer.cs trunk/Emitter/DisposeImplementer.cs trunk/Emitter/Emitter.csproj trunk/Emitter/ForkGroup.cs trunk/Emitter/ForkImplementer.cs trunk/Emitter/JoinGroup.cs trunk/Emitter/JoinImplementer.cs trunk/Emitter/Makefile trunk/Emitter/ParallelizationFactory.cs trunk/Emitter/Properties/AssemblyInfo.cs trunk/Emitter/TypeAnalyzer/TypeAnalyzer.Chord.cs trunk/Emitter/TypeAnalyzer/TypeAnalyzer.Fork.cs trunk/Emitter/TypeAnalyzer/TypeAnalyzer.Join.cs trunk/Emitter/TypeAnalyzer/TypeAnalyzer.Yield.cs trunk/Emitter/TypeAnalyzer/TypeAnalyzer.cs trunk/Emitter/TypeParallelizer.cs trunk/Emitter/YieldImplementer.cs trunk/Emitter/YieldInfo.cs trunk/Executables.DistributionServer/Executables.DistributionServer.csproj trunk/Executables.DistributionServer/Makefile trunk/Executables.DistributionServer/Program.cs trunk/Executables.DistributionServer/Properties/AssemblyInfo.cs trunk/Executables.DistributionServer/TaskServer.cs trunk/Executables.DistributionServer/WorkServer.cs trunk/Executables.FmacjRun/Executables.FmacjRun.csproj trunk/Executables.FmacjRun/Makefile trunk/Executables.FmacjRun/Program.cs trunk/Executables.FmacjRun/Properties/AssemblyInfo.cs trunk/Executables.WorkClient/Executables.WorkClient.csproj trunk/Executables.WorkClient/Makefile trunk/Executables.WorkClient/Program.cs trunk/Executables.WorkClient/Properties/AssemblyInfo.cs trunk/Executables.WorkClient/WorkClient.cs trunk/Framework/AsynchronousAttribute.cs trunk/Framework/ChannelAttribute.cs trunk/Framework/ChordAttribute.cs trunk/Framework/Constants.cs trunk/Framework/ForkAttribute.cs trunk/Framework/Framework.csproj trunk/Framework/IChannelEnumerable.cs trunk/Framework/IParallelizable.cs trunk/Framework/InconsistentChannelTypeException.cs trunk/Framework/InvalidChannelException.cs trunk/Framework/InvalidMethodException.cs trunk/Framework/InvalidTypeException.cs trunk/Framework/JoinAttribute.cs trunk/Framework/Makefile trunk/Framework/MovableAttribute.cs trunk/Framework/ParallelException.cs trunk/Framework/ParallelizableAttribute.cs trunk/Framework/ParallelizationException.cs trunk/Framework/Properties/AssemblyInfo.cs trunk/Framework/RemoteException.cs trunk/Framework/TypeNotFoundException.cs trunk/Framework/TypeValidator.cs trunk/Framework/YieldAttribute.cs trunk/Runtime/Bus.cs trunk/Runtime/Channel.cs trunk/Runtime/ChannelEnumerable.cs trunk/Runtime/ChannelEnumerator.cs trunk/Runtime/ChannelOptions.cs trunk/Runtime/ChordManager.cs trunk/Runtime/IChannel.cs trunk/Runtime/Makefile trunk/Runtime/Properties/AssemblyInfo.cs trunk/Runtime/Runtime.csproj trunk/Runtime.Network/Communication/Client.cs trunk/Runtime.Network/Communication/ExceptionResponse.cs trunk/Runtime.Network/Communication/RegisterWorkClientRequest.cs trunk/Runtime.Network/Communication/Request.cs trunk/Runtime.Network/Communication/Response.cs trunk/Runtime.Network/Communication/RunTaskRequest.cs trunk/Runtime.Network/Communication/Server.cs trunk/Runtime.Network/Communication/WorkClientRegisteredResponse.cs trunk/Runtime.Network/Communication/WorkClientTicket.cs trunk/Runtime.Network/Makefile trunk/Runtime.Network/Properties/AssemblyInfo.cs trunk/Runtime.Network/Runtime.Network.csproj trunk/Tests/Emitter/DisposeTest.cs trunk/Tests/LanguageFeatures/ChannelTest.cs trunk/Tests/LanguageFeatures/ChordTest.cs trunk/Tests/LanguageFeatures/EnumerableChannelTest.cs trunk/Tests/LanguageFeatures/ForkTest.cs trunk/Tests/LanguageFeatures/JoinTest.cs trunk/Tests/LanguageFeatures/ShortcutTest.cs trunk/Tests/LanguageFeatures/YieldTest.cs Deleted: trunk/Components.TaskClient/Components.TaskClient.csproj =================================================================== --- trunk/Components.TaskClient/Components.TaskClient.csproj 2009-12-05 12:48:40 UTC (rev 109) +++ trunk/Components.TaskClient/Components.TaskClient.csproj 2009-12-06 16:52:16 UTC (rev 110) @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.50727</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{2A0BA69A-D98B-4F1F-A112-55BFFFBF3E32}</ProjectGuid> - <OutputType>Library</OutputType> - <AssemblyName>Components.TaskClient</AssemblyName> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug</OutputPath> - <DefineConstants>DEBUG</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>none</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Release</OutputPath> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Compile Include="TaskClient.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Framework\Framework.csproj"> - <Project>{C3A4C3E4-B54C-43C1-9ABB-1473FB1DBFEC}</Project> - <Name>Framework</Name> - </ProjectReference> - <ProjectReference Include="..\Runtime.Network\Runtime.Network.csproj"> - <Project>{B49AB1C5-62E4-431A-A1F1-1DE1255ACBD2}</Project> - <Name>Runtime.Network</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="System.Core" /> - <Reference Include="System" /> - </ItemGroup> - <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> - <ProjectExtensions> - <MonoDevelop> - <Properties InternalTargetFrameworkVersion="3.5"> - <Deployment.LinuxDeployData generatePcFile="false" /> - <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile" SyncReferences="true"> - <BuildFilesVar Sync="true" Name="FILES" /> - <DeployFilesVar /> - <ResourcesVar Sync="true" Name="RESOURCES" /> - <OthersVar /> - <GacRefVar Sync="true" Name="REFERENCES" /> - <AsmRefVar Sync="true" Name="REFERENCES" /> - <ProjectRefVar Sync="true" Name="REFERENCES" /> - </MonoDevelop.Autotools.MakefileInfo> - </Properties> - </MonoDevelop> - </ProjectExtensions> -</Project> \ No newline at end of file Deleted: trunk/Components.TaskClient/Makefile =================================================================== --- trunk/Components.TaskClient/Makefile 2009-12-05 12:48:40 UTC (rev 109) +++ trunk/Components.TaskClient/Makefile 2009-12-06 16:52:16 UTC (rev 110) @@ -1,144 +0,0 @@ - -EXTRA_DIST = Makefile - -# Warning: This is an automatically generated file, do not edit! - -srcdir=. -top_srcdir=.. - -include $(top_srcdir)/config.make - -ifeq ($(CONFIG),DEBUG) -ASSEMBLY_COMPILER_COMMAND = gmcs -ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG" -ASSEMBLY = bin/Debug/Components.TaskClient.dll -ASSEMBLY_MDB = $(ASSEMBLY).mdb -COMPILE_TARGET = library -PROJECT_REFERENCES = \ - ../Framework/bin/Debug/Framework.dll \ - ../Runtime.Network/bin/Debug/Runtime.Network.dll -BUILD_DIR = bin/Debug - -FRAMEWORK_DLL_SOURCE=../Framework/bin/Debug/Framework.dll -FRAMEWORK_DLL_MDB_SOURCE=../Framework/bin/Debug/Framework.dll.mdb -FRAMEWORK_DLL_MDB=$(BUILD_DIR)/Framework.dll.mdb -RUNTIME_NETWORK_DLL_SOURCE=../Runtime.Network/bin/Debug/Runtime.Network.dll -RUNTIME_NETWORK_DLL_MDB_SOURCE=../Runtime.Network/bin/Debug/Runtime.Network.dll.mdb -RUNTIME_NETWORK_DLL_MDB=$(BUILD_DIR)/Runtime.Network.dll.mdb -COMPONENTS_TASKCLIENT_DLL_MDB_SOURCE=bin/Debug/Components.TaskClient.dll.mdb -COMPONENTS_TASKCLIENT_DLL_MDB=$(BUILD_DIR)/Components.TaskClient.dll.mdb - -endif - -ifeq ($(CONFIG),RELEASE) -ASSEMBLY_COMPILER_COMMAND = gmcs -ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -ASSEMBLY = bin/Release/Components.TaskClient.dll -ASSEMBLY_MDB = -COMPILE_TARGET = library -PROJECT_REFERENCES = \ - ../Framework/bin/Release/Framework.dll \ - ../Runtime.Network/bin/Release/Runtime.Network.dll -BUILD_DIR = bin/Release - -FRAMEWORK_DLL_SOURCE=../Framework/bin/Release/Framework.dll -FRAMEWORK_DLL_MDB= -RUNTIME_NETWORK_DLL_SOURCE=../Runtime.Network/bin/Release/Runtime.Network.dll -RUNTIME_NETWORK_DLL_MDB= -COMPONENTS_TASKCLIENT_DLL_MDB= - -endif - -AL=al2 -SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll - -PROGRAMFILES = \ - $(FRAMEWORK_DLL) \ - $(FRAMEWORK_DLL_MDB) \ - $(RUNTIME_NETWORK_DLL) \ - $(RUNTIME_NETWORK_DLL_MDB) \ - $(COMPONENTS_TASKCLIENT_DLL_MDB) - - -RESGEN=resgen2 - -FRAMEWORK_DLL = $(BUILD_DIR)/Framework.dll -RUNTIME_NETWORK_DLL = $(BUILD_DIR)/Runtime.Network.dll - -FILES = \ - Properties/AssemblyInfo.cs \ - TaskClient.cs - -DATA_FILES = - -RESOURCES = - -EXTRAS = - -REFERENCES = \ - ../Framework/bin/Debug/Framework.dll \ - ../Runtime.Network/bin/Debug/Runtime.Network.dll \ - System \ - System.Core - -DLL_REFERENCES = - -CLEANFILES = $(PROGRAMFILES) - -#Targets -all: $(ASSEMBLY) $(PROGRAMFILES) $(top_srcdir)/config.make - -include $(top_srcdir)/Makefile.include -#include $(srcdir)/custom-hooks.make - - - -$(eval $(call emit-deploy-target,FRAMEWORK_DLL)) -$(eval $(call emit-deploy-target,FRAMEWORK_DLL_MDB)) -$(eval $(call emit-deploy-target,RUNTIME_NETWORK_DLL)) -$(eval $(call emit-deploy-target,RUNTIME_NETWORK_DLL_MDB)) - - -$(eval $(call emit_resgen_targets)) -$(build_xamlg_list): %.xaml.g.cs: %.xaml - xamlg '$<' - - -$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) - make pre-all-local-hook prefix=$(prefix) - mkdir -p $(shell dirname $(ASSEMBLY)) - make $(CONFIG)_BeforeBuild - $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) - make $(CONFIG)_AfterBuild - make post-all-local-hook prefix=$(prefix) - -install-local: $(ASSEMBLY) $(ASSEMBLY_MDB) - make pre-install-local-hook prefix=$(prefix) - make install-satellite-assemblies prefix=$(prefix) - mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' - $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(RUNTIME_NETWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(RUNTIME_NETWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(COMPONENTS_TASKCLIENT_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - make post-install-local-hook prefix=$(prefix) - -uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) - make pre-uninstall-local-hook prefix=$(prefix) - make uninstall-satellite-assemblies prefix=$(prefix) - $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(RUNTIME_NETWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(RUNTIME_NETWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(COMPONENTS_TASKCLIENT_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - make post-uninstall-local-hook prefix=$(prefix) - -install: install-local -uninstall: uninstall-local -clean: clean-local - -include $(top_srcdir)/rules.make Deleted: trunk/Components.TaskClient/Properties/AssemblyInfo.cs =================================================================== --- trunk/Components.TaskClient/Properties/AssemblyInfo.cs 2009-12-05 12:48:40 UTC (rev 109) +++ trunk/Components.TaskClient/Properties/AssemblyInfo.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -1,52 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FMACJ Parallelization Task Client Component")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Stefan Noack")] -[assembly: AssemblyProduct("FMACJ")] -[assembly: AssemblyCopyright("Copyright © Stefan Noack 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a5b19859-cdb2-485d-a8f3-35f3df144fa1")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("0.8")] -[assembly: AssemblyFileVersion("0.8")] Deleted: trunk/Components.TaskClient/TaskClient.cs =================================================================== --- trunk/Components.TaskClient/TaskClient.cs 2009-12-05 12:48:40 UTC (rev 109) +++ trunk/Components.TaskClient/TaskClient.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -1,61 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.IO; -using System.Reflection; -using Fmacj.Framework; -using Fmacj.Runtime.Network.Communication; - -namespace Fmacj.Components.TaskClient -{ - public class TaskClient : Client - { - public TaskClient(Stream serverStream) : base(serverStream) - { - } - - public void RunTask(Action entryPoint) - { - RunTask(entryPoint.Method); - } - - public void RunTask(Assembly assembly) - { - RunTask(assembly.EntryPoint); - } - - public void RunTask(MethodInfo entryPoint) - { - Assembly assembly = entryPoint.DeclaringType.Assembly; - - if(assembly.Location == "") - throw new ArgumentException("The given assembly could not be located.", "assembly"); - - byte[] rawAssembly = File.ReadAllBytes(assembly.Location); - - RunTask(rawAssembly, entryPoint); - } - - public void RunTask(byte[] rawAssembly, MethodInfo entryPoint) - { - RunTaskRequest request = new RunTaskRequest(rawAssembly, entryPoint); - Response response = SendRequest(request); - } - } -} Copied: trunk/Core.Emitter/AssemblyParallelizer.cs (from rev 109, trunk/Emitter/AssemblyParallelizer.cs) =================================================================== --- trunk/Core.Emitter/AssemblyParallelizer.cs (rev 0) +++ trunk/Core.Emitter/AssemblyParallelizer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,77 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Reflection; +using System.Reflection.Emit; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal class AssemblyParallelizer + { + private readonly Assembly source; + private readonly AssemblyName parallelizedAssemblyName; + + public AssemblyParallelizer(Assembly source) + { + this.source = source; + parallelizedAssemblyName = source.GetName(); + parallelizedAssemblyName.Name += ".Parallelized"; + } + + public AssemblyName ParallelizedAssemblyName + { + get { return parallelizedAssemblyName; } + } + + public Assembly GetParallelizedAssembly() + { + AssemblyBuilder assemblyBuilder = + AppDomain.CurrentDomain.DefineDynamicAssembly(ParallelizedAssemblyName, AssemblyBuilderAccess.Run); + + ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(ParallelizedAssemblyName.Name); + + foreach (Type sourceType in source.GetTypes()) + { +#if DEBUG + try + { +#endif + if (sourceType.GetCustomAttributes(typeof (ParallelizableAttribute), false).Length > 0) + { + if (!TypeValidator.IsParallelizable(sourceType)) + throw new InvalidTypeException(sourceType.Name); + + TypeParallelizer typeParallelizer = new TypeParallelizer(sourceType); + typeParallelizer.DefineParallelizedType(moduleBuilder); + } +#if DEBUG + } + catch (Exception ex) + { + Console.Error.WriteLine("Something went wrong during parallelization of type {3}.\n{0}: {1}\n{2}\n", + ex.GetType(), ex.Message, ex.StackTrace, sourceType.Name); + } +#endif + } + + return assemblyBuilder; + } + } +} Copied: trunk/Core.Emitter/ChannelImplementer.cs (from rev 109, trunk/Emitter/ChannelImplementer.cs) =================================================================== --- trunk/Core.Emitter/ChannelImplementer.cs (rev 0) +++ trunk/Core.Emitter/ChannelImplementer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,88 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Reflection.Emit; +using Fmacj.Core.Runtime; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal class ChannelImplementer + { + private readonly TypeBuilder target; + + private readonly Dictionary<string, FieldInfo> channelFields = + new Dictionary<string, FieldInfo>(); + + public ChannelImplementer(TypeBuilder target) + { + this.target = target; + } + + private FieldInfo GetChannelFieldInternal(string internalname, Type type) + { + Type channelType = typeof(Channel<>).MakeGenericType(new Type[] { type }); + + FieldInfo result; + + if (!channelFields.TryGetValue(internalname, out result)) + { + result = target.DefineField(internalname, + channelType, + FieldAttributes.Private); + + channelFields.Add(internalname, result); + } + else + if (result.FieldType != channelType) + throw new InconsistentChannelTypeException(internalname, target.Name); + + + + return result; + } + + public FieldInfo GetChannelField(string name, Type type) + { + return GetChannelFieldInternal(name + "Channel", type); + } + + public FieldInfo GetJoinChannelField(string name, Type type) + { + return GetChannelFieldInternal(name + "ChannelJ", type); + } + + public FieldInfo GetJoinParameterChannelField(string joinName, int parameterIndex, Type type) + { + return GetChannelFieldInternal(joinName + "ChannelJP" + parameterIndex, type); + } + + public void ImplementChannelInitialization(ILGenerator generator) + { + foreach (FieldInfo field in channelFields.Values) + { + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Newobj, field.FieldType.GetConstructor(new Type[] {})); + generator.Emit(OpCodes.Stfld, field); + } + } + } +} Copied: trunk/Core.Emitter/ChordImplementer.cs (from rev 109, trunk/Emitter/ChordImplementer.cs) =================================================================== --- trunk/Core.Emitter/ChordImplementer.cs (rev 0) +++ trunk/Core.Emitter/ChordImplementer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,150 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Reflection.Emit; +using System.Threading; +using Fmacj.Core.Runtime; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal class ChordImplementer + { + private readonly TypeBuilder target; + private readonly ChannelImplementer channelImplementer; + + private readonly Dictionary<ChordInfo, MethodBuilder> callbacks = new Dictionary<ChordInfo, MethodBuilder>(); + + public ChordImplementer(TypeBuilder target, ChannelImplementer channelImplementer) + { + this.target = target; + this.channelImplementer = channelImplementer; + } + + public void Implement(ChordInfo chord) + { + ImplementCallback(chord); + } + + private void ImplementCallback(ChordInfo chord) + { + MethodBuilder callback = target.DefineMethod(string.Format("{0}Callback", chord.Name), + MethodAttributes.Private, typeof (void), + new Type[] {typeof (object), typeof (bool)}); + + callback.DefineParameter(1, ParameterAttributes.In, "bus"); + callback.DefineParameter(2, ParameterAttributes.In, "unused"); + + int joinParameterCount = chord.JoinParameters.Length; + int inChannelParameterCount = chord.InChannelParameters.Length; + int outChannelParameterCount = chord.OutChannelParameters.Length; + + Type returnType = chord.ChordMethod.ReturnType; + + ILGenerator generator = callback.GetILGenerator(); + + // IL: Get join channel + if (returnType != typeof(void)) + { + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, channelImplementer + .GetJoinChannelField(chord.ChordMethod.Name, + returnType)); + } + + // IL: Receive from Bus and store array + generator.DeclareLocal(typeof(object[])); + generator.Emit(OpCodes.Ldarg_1); + generator.EmitCall(OpCodes.Call, typeof (Bus).GetMethod("Receive", new Type[] {}), null); + generator.Emit(OpCodes.Stloc_0); + + generator.Emit(OpCodes.Ldarg_0); + + // IL: Reregister bus + generator.Emit(OpCodes.Ldarg_1); + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldftn, callback); + generator.Emit(OpCodes.Newobj, typeof(WaitOrTimerCallback).GetConstructor(new Type[] { typeof(object), typeof(IntPtr) })); + generator.EmitCall(OpCodes.Call, typeof(ChordManager).GetMethod("RegisterBus", new Type[] { typeof(Bus), typeof(WaitOrTimerCallback) }), null); + + // IL: Unwrap value array + for (int parameterIndex = 0; parameterIndex < joinParameterCount; parameterIndex++) + { + generator.Emit(OpCodes.Ldloc_0); + generator.Emit(OpCodes.Ldc_I4, parameterIndex); + generator.Emit(OpCodes.Ldelem_Ref); + if (chord.JoinParameters[parameterIndex].ParameterType.IsValueType) + generator.Emit(OpCodes.Unbox_Any, chord.JoinParameters[parameterIndex].ParameterType); + } + for (int parameterIndex = 0; parameterIndex < inChannelParameterCount; parameterIndex++) + { + generator.Emit(OpCodes.Ldloc_0); + generator.Emit(OpCodes.Ldc_I4, parameterIndex + joinParameterCount); + generator.Emit(OpCodes.Ldelem_Ref); + if (chord.InChannelParameters[parameterIndex].ParameterType.IsValueType) + generator.Emit(OpCodes.Unbox_Any, chord.InChannelParameters[parameterIndex].ParameterType); + } + + // IL: Prepare out channels + for (int channelParameterIndex = 0; channelParameterIndex < outChannelParameterCount; channelParameterIndex++) + { + generator.DeclareLocal(chord.OutChannelParameters[channelParameterIndex].ParameterType.GetElementType()); + generator.Emit(OpCodes.Ldloca, channelParameterIndex + 1); + } + + // IL: Call chord method + generator.EmitCall(OpCodes.Call, chord.ChordMethod, null); + + // IL: Send result to join channel + if (returnType != typeof(void)) + { + generator.EmitCall(OpCodes.Call, typeof(Channel<>) + .MakeGenericType(new Type[] { returnType }) + .GetMethod("Send"), null); + } + + // IL: Handle out channel results + for (int channelParameterIndex = 0; channelParameterIndex < outChannelParameterCount; channelParameterIndex++) + { + Type channelType = chord.OutChannelParameters[channelParameterIndex] + .ParameterType.GetElementType(); + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, channelImplementer + .GetChannelField(chord.OutChannelNames[channelParameterIndex], + channelType)); + + generator.Emit(OpCodes.Ldloc, channelParameterIndex + 1); + generator.EmitCall(OpCodes.Call, typeof(Channel<>) + .MakeGenericType(new Type[] { channelType }) + .GetMethod("Send"), null); + } + + generator.Emit(OpCodes.Ret); + + callbacks.Add(chord, callback); + } + + public Dictionary<ChordInfo, MethodBuilder> GetCallbacks() + { + return callbacks; + } + } +} \ No newline at end of file Copied: trunk/Core.Emitter/ChordInfo.cs (from rev 109, trunk/Emitter/ChordInfo.cs) =================================================================== --- trunk/Core.Emitter/ChordInfo.cs (rev 0) +++ trunk/Core.Emitter/ChordInfo.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,148 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Reflection; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal struct ChordInfo + { + public ChordInfo(Type sourceType, MethodInfo chordMethod): this() + { + SourceType = sourceType; + ChordMethod = chordMethod; + FindParameters(); + } + + private void FindParameters() + { + List<ParameterInfo> joinParameters = new List<ParameterInfo>(); + List<ParameterInfo> inChannelParameters = new List<ParameterInfo>(); + List<ParameterInfo> outChannelParameters = new List<ParameterInfo>(); + + foreach (ParameterInfo parameter in ChordMethod.GetParameters()) + { + if (parameter.GetCustomAttributes(typeof(ChannelAttribute), false).Length > 0) + { + if(parameter.IsOut) + { + outChannelParameters.Add(parameter); + } + else + { + if(outChannelParameters.Count != 0) + throw new InvalidMethodException(SourceType.Name, ChordMethod.Name, "Output channel prameters may not precede input channel parameters."); + + inChannelParameters.Add(parameter); + } + } + else + { + if(inChannelParameters.Count != 0) + throw new InvalidMethodException(SourceType.Name, ChordMethod.Name, "Input channel prameters may not precede join parameters."); + + if(outChannelParameters.Count != 0) + throw new InvalidMethodException(SourceType.Name, ChordMethod.Name, "Output channel prameters may not precede join parameters."); + + joinParameters.Add(parameter); + } + } + + JoinParameters = joinParameters.ToArray(); + InChannelParameters = inChannelParameters.ToArray(); + OutChannelParameters = outChannelParameters.ToArray(); + } + + public Type SourceType { get; private set; } + public MethodInfo ChordMethod { get; private set; } + + public string Name { get { return ChordMethod.Name; } } + + public ParameterInfo[] JoinParameters + { + get; private set; + } + + public ParameterInfo[] InChannelParameters + { + get; private set; + } + + public ParameterInfo[] OutChannelParameters + { + get; private set; + } + + public string[] InChannelNames + { + get + { + string[] result = new string[InChannelParameters.Length]; + + for (int i = 0; i < InChannelParameters.Length; i++) + result[i] = + ((ChannelAttribute) + InChannelParameters[i].GetCustomAttributes(typeof (ChannelAttribute), false)[0]).Name; + + return result; + } + } + + public ChannelAttribute[] InChannelAttributes + { + get + { + ChannelAttribute[] result = new ChannelAttribute[InChannelParameters.Length]; + + for (int i = 0; i < InChannelParameters.Length; i++) + result[i] = (ChannelAttribute) + InChannelParameters[i].GetCustomAttributes(typeof (ChannelAttribute), false)[0]; + + return result; + } + } + + public string[] OutChannelNames + { + get + { + string[] result = new string[OutChannelParameters.Length]; + + for (int i = 0; i < OutChannelParameters.Length; i++) + result[i] = + ((ChannelAttribute) + OutChannelParameters[i].GetCustomAttributes(typeof (ChannelAttribute), false)[0]).Name; + + return result; + } + } + + public Type GetEnumerableInChannelType(int channelIndex) + { + Type parameterType = InChannelParameters[channelIndex].ParameterType; + + if(parameterType.GetGenericTypeDefinition() != typeof(IChannelEnumerable<>)) + throw new InvalidMethodException(SourceType.Name, ChordMethod.Name, "Enumerable channel prameter type must be IChannelEnumerable<>."); + + return parameterType.GetGenericArguments()[0]; + } + } +} Copied: trunk/Core.Emitter/ConstructorImplementer.cs (from rev 109, trunk/Emitter/ConstructorImplementer.cs) =================================================================== --- trunk/Core.Emitter/ConstructorImplementer.cs (rev 0) +++ trunk/Core.Emitter/ConstructorImplementer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,158 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Reflection.Emit; +using System.Threading; +using Fmacj.Core.Runtime; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal class ConstructorImplementer + { + private readonly TypeBuilder target; + private readonly Type baseType; + private readonly ChannelImplementer channelImplementer; + private readonly ChordImplementer chordImplementer; + private readonly DisposeImplementer disposeImplementer; + + public ConstructorImplementer(TypeBuilder target, Type baseType, + ChannelImplementer channelImplementer, + ChordImplementer chordImplementer, + DisposeImplementer disposeImplementer) + { + this.target = target; + this.baseType = baseType; + this.channelImplementer = channelImplementer; + this.chordImplementer = chordImplementer; + this.disposeImplementer = disposeImplementer; + } + + public void ImplementConstructor() + { + ConstructorBuilder ctor = target.DefineConstructor(MethodAttributes.Public, + CallingConventions.HasThis, + new Type[] {}); + + ILGenerator generator = ctor.GetILGenerator(); + + generator.DeclareLocal(typeof (IChannel[])); + generator.DeclareLocal(typeof (ChannelOptions[])); + + // IL: Call base constructor + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Call, baseType.GetConstructor(BindingFlags.Instance | BindingFlags.Public + | BindingFlags.NonPublic, null, new Type[] { }, null)); + + channelImplementer.ImplementChannelInitialization(generator); + + Dictionary<ChordInfo, MethodBuilder> callbacks = chordImplementer.GetCallbacks(); + + foreach (ChordInfo chord in callbacks.Keys) + { + int joinParameterCount = chord.JoinParameters.Length; + int inChannelParameterCount = chord.InChannelParameters.Length; + int totalParameterCount = joinParameterCount + inChannelParameterCount; + + // IL: Create channel array + generator.Emit(OpCodes.Ldc_I4, totalParameterCount); + generator.Emit(OpCodes.Newarr, typeof (IChannel)); + generator.Emit(OpCodes.Stloc_0); + + // IL: Create channel options array + generator.Emit(OpCodes.Ldc_I4, totalParameterCount); + generator.Emit(OpCodes.Newarr, typeof (ChannelOptions)); + generator.Emit(OpCodes.Stloc_1); + + // Join Parameter Channels + for (int parameterIndex = 0; parameterIndex < joinParameterCount; parameterIndex++) + { + // IL: Wrap up channel array + generator.Emit(OpCodes.Ldloc_0); + generator.Emit(OpCodes.Ldc_I4, parameterIndex); + + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, channelImplementer + .GetJoinParameterChannelField(chord.Name, parameterIndex, + chord.JoinParameters[parameterIndex].ParameterType)); + + generator.Emit(OpCodes.Stelem_Ref); + + // IL: Wrap up channel options array + generator.Emit(OpCodes.Ldloc_1); + generator.Emit(OpCodes.Ldc_I4, parameterIndex); + + generator.Emit(OpCodes.Ldc_I4, Convert.ToInt32(false)); + generator.Emit(OpCodes.Newobj, typeof(ChannelOptions).GetConstructor(new Type[] { typeof(bool) })); + + generator.Emit(OpCodes.Stelem_Ref); + } + + // In Channels + for (int parameterIndex = 0; parameterIndex < inChannelParameterCount; parameterIndex++) + { + // IL: Wrap up channel array + generator.Emit(OpCodes.Ldloc_0); + generator.Emit(OpCodes.Ldc_I4, parameterIndex + joinParameterCount); + + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, channelImplementer + .GetChannelField(chord.InChannelNames[parameterIndex], + chord.InChannelAttributes[parameterIndex].Enumerable + ? chord.GetEnumerableInChannelType(parameterIndex) + : chord.InChannelParameters[parameterIndex].ParameterType)); + + generator.Emit(OpCodes.Stelem_Ref); + + // IL: Wrap up channel options array + generator.Emit(OpCodes.Ldloc_1); + generator.Emit(OpCodes.Ldc_I4, parameterIndex + joinParameterCount); + + generator.Emit(OpCodes.Ldc_I4, Convert.ToInt32(chord.InChannelAttributes[parameterIndex].Enumerable)); + generator.Emit(OpCodes.Newobj, typeof(ChannelOptions).GetConstructor(new Type[] { typeof(bool) })); + + generator.Emit(OpCodes.Stelem_Ref); + } + + + // IL: Register chord + generator.Emit(OpCodes.Ldloc_0); + generator.Emit(OpCodes.Ldloc_1); + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldftn, callbacks[chord]); + generator.Emit(OpCodes.Newobj, typeof(WaitOrTimerCallback).GetConstructor(new Type[] { typeof(object), typeof(IntPtr) })); + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldflda, disposeImplementer.GetDisposingEventHandlerField()); + generator.EmitCall(OpCodes.Call, + typeof(ChordManager).GetMethod("RegisterChord", + new Type[] + { + typeof(IChannel[]), + typeof(ChannelOptions[]), + typeof(WaitOrTimerCallback), + typeof(EventHandler).MakeByRefType() + }), null); + } + + generator.Emit(OpCodes.Ret); + } + } +} \ No newline at end of file Copied: trunk/Core.Emitter/Core.Emitter.csproj (from rev 109, trunk/Emitter/Emitter.csproj) =================================================================== --- trunk/Core.Emitter/Core.Emitter.csproj (rev 0) +++ trunk/Core.Emitter/Core.Emitter.csproj 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{D3264B1D-ADEB-4DFC-BCDC-FF5CE6E701BC}</ProjectGuid> + <OutputType>Library</OutputType> + <RootNamespace>Fmacj.Core.Emitter</RootNamespace> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <AssemblyName>Fmacj.Core.Emitter</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <AssemblyName>Emitter</AssemblyName> + </PropertyGroup> + <ItemGroup> + <Compile Include="AssemblyParallelizer.cs" /> + <Compile Include="ChannelImplementer.cs" /> + <Compile Include="ChordImplementer.cs" /> + <Compile Include="ChordInfo.cs" /> + <Compile Include="ConstructorImplementer.cs" /> + <Compile Include="DisposeImplementer.cs" /> + <Compile Include="ForkGroup.cs" /> + <Compile Include="ForkImplementer.cs" /> + <Compile Include="JoinGroup.cs" /> + <Compile Include="JoinImplementer.cs" /> + <Compile Include="ParallelizationFactory.cs" /> + <Compile Include="TypeParallelizer.cs" /> + <Compile Include="YieldImplementer.cs" /> + <Compile Include="YieldInfo.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Chord.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Fork.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Join.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Yield.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Core.Runtime\Core.Runtime.csproj"> + <Project>{16351C71-CBD2-44FE-A6A1-61065464C732}</Project> + <Name>Core.Runtime</Name> + </ProjectReference> + <ProjectReference Include="..\Core.Framework\Core.Framework.csproj"> + <Project>{C3A4C3E4-B54C-43C1-9ABB-1473FB1DBFEC}</Project> + <Name>Core.Framework</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ProjectExtensions> + <MonoDevelop> + <Properties> + <Deployment.LinuxDeployData generatePcFile="false" /> + <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile" SyncReferences="true"> + <BuildFilesVar Sync="true" Name="FILES" /> + <DeployFilesVar /> + <ResourcesVar Sync="true" Name="RESOURCES" /> + <OthersVar /> + <GacRefVar Sync="true" Name="REFERENCES" /> + <AsmRefVar Sync="true" Name="REFERENCES" /> + <ProjectRefVar Sync="true" Name="REFERENCES" /> + </MonoDevelop.Autotools.MakefileInfo> + </Properties> + </MonoDevelop> + </ProjectExtensions> +</Project> \ No newline at end of file Copied: trunk/Core.Emitter/DisposeImplementer.cs (from rev 109, trunk/Emitter/DisposeImplementer.cs) =================================================================== --- trunk/Core.Emitter/DisposeImplementer.cs (rev 0) +++ trunk/Core.Emitter/DisposeImplementer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,114 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Reflection; +using System.Reflection.Emit; + +namespace Fmacj.Core.Emitter +{ + internal class DisposeImplementer + { + private FieldBuilder disposingEventHandlerField; + private FieldBuilder disposedField; + + private readonly TypeBuilder target; + private readonly Type baseType; + + public DisposeImplementer(TypeBuilder target, Type baseType) + { + this.target = target; + this.baseType = baseType; + } + + public void ImplementDisposalBehavior() + { + // IL: Prepare "disposingEventHandler" and "disposed" fields + disposingEventHandlerField = target.DefineField("disposingEventHandler", typeof (EventHandler), FieldAttributes.Private); + disposedField = target.DefineField("disposed", typeof(bool), FieldAttributes.Private); + + target.DefineMethodOverride(GetDisposeMethodBody(), typeof(IDisposable).GetMethod("Dispose", new Type[] {})); + } + + private MethodInfo GetDisposeMethodBody() + { + MethodBuilder result = target.DefineMethod("Dispose", + MethodAttributes.Virtual | MethodAttributes.Public, + typeof(void), new Type[] { }); + + ILGenerator generator = result.GetILGenerator(); + + Label returnLabel = generator.DefineLabel(); + + // IL: If disposed, return + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, disposedField); + generator.Emit(OpCodes.Brtrue, returnLabel); + + // IL: Call base.Dispose() + MethodInfo baseDispose = baseType.GetMethod("Dispose",BindingFlags.Instance | BindingFlags.Public + | BindingFlags.NonPublic, null, new Type[] { }, null); + if(!baseDispose.IsAbstract) + { + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Call, baseDispose); + } + + // IL: Set disposed = true + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldc_I4_1); + generator.Emit(OpCodes.Stfld, disposedField); + + // IL: GC.SuppressFinalize(this) + generator.Emit(OpCodes.Ldarg_0); + generator.EmitCall(OpCodes.Call, + typeof (GC).GetMethod("SuppressFinalize", new Type[] {typeof (object)}), + null); + + // IL: If eventHandler == null, return + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, disposingEventHandlerField); + generator.Emit(OpCodes.Brfalse, returnLabel); + + // IL: Invoke disposingEventHandler + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Ldfld, disposingEventHandlerField); + generator.Emit(OpCodes.Ldarg_0); + generator.Emit(OpCodes.Newobj, typeof (EventArgs).GetConstructor(new Type[] {})); + generator.EmitCall(OpCodes.Call, + typeof(EventHandler).GetMethod("Invoke", + new Type[] + { + typeof (object), + typeof (EventArgs) + } + ), null); + + // IL: Return + generator.MarkLabel(returnLabel); + generator.Emit(OpCodes.Ret); + + return result; + } + + public FieldInfo GetDisposingEventHandlerField() + { + return disposingEventHandlerField; + } + } +} \ No newline at end of file Copied: trunk/Core.Emitter/ForkGroup.cs (from rev 109, trunk/Emitter/ForkGroup.cs) =================================================================== --- trunk/Core.Emitter/ForkGroup.cs (rev 0) +++ trunk/Core.Emitter/ForkGroup.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,93 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Reflection; +using Fmacj.Core.Framework; + +namespace Fmacj.Core.Emitter +{ + internal struct ForkGroup + { + public ForkGroup(Type sourceType, MethodInfo forkMethod, MethodInfo parallelMethod) : this() + { + SourceType = sourceType; + ForkMethod = forkMethod; + ParallelMethod = parallelMethod; + FindChannelParameters(); + } + + private void FindChannelParameters() + { + List<ParameterInfo> channelParameters = new List<ParameterInfo>(); + + foreach (ParameterInfo parallelParameter in ParallelMethod.GetParameters()) + { + if (parallelParameter.GetCustomAttributes(typeof(ChannelAttribute), false).Length > 0) + channelParameters.Add(parallelParameter); + } + + ChannelParameters = channelParameters.ToArray(); + } + + public Type SourceType { get; private set; } + public MethodInfo ForkMethod { get; private set; } + public MethodInfo ParallelMethod { get; private set; } + + public string Name { get { return ForkMethod.Name; } } + public Type[] ParameterTypes + { + get + { + ParameterInfo[] parameters = ForkMethod.GetParameters(); + Type[] result = new Type[parameters.Length]; + + for (int i = 0; i < parameters.Length; i++) + result[i] = parameters[i].ParameterType; + + return result; + } + } + + public ParameterInfo[] Parameters + { + get { return ForkMethod.GetParameters(); } + } + + public ParameterInfo[] ChannelParameters + { + get; private set; + } + + public string[] ChannelNames + { + get + { + string[] result = new string[ChannelParameters.Length]; + + for (int i = 0; i < ChannelParameters.Length; i++) + result[i] = + ((ChannelAttribute) + ChannelParameters[i].GetCustomAttributes(typeof (ChannelAttribute), false)[0]).Name; + + return result; + } + } + } +} Copied: trunk/Core.Emitter/ForkImplementer.cs (from rev 109, trunk/Emitter/ForkImplementer.cs) =================================================================== --- trunk/Core.Emitter/ForkImplementer.cs (rev 0) +++ trunk/Core.Emitter/ForkImplementer.cs 2009-12-06 16:52:16 UTC (rev 110) @@ -0,0 +1,140 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +... [truncated message content] |
From: <noa...@us...> - 2009-12-05 12:48:51
|
Revision: 109 http://fmacj.svn.sourceforge.net/fmacj/?rev=109&view=rev Author: noah1989 Date: 2009-12-05 12:48:40 +0000 (Sat, 05 Dec 2009) Log Message: ----------- restructured tests, decoupled BusTest from Channel feature Modified Paths: -------------- trunk/Tests/Makefile trunk/Tests/Tests.csproj Added Paths: ----------- trunk/Tests/Distribution/ trunk/Tests/Distribution/DistributionTest.cs trunk/Tests/Emitter/ trunk/Tests/Emitter/DisposeTest.cs trunk/Tests/Emitter/ParallelizationFactoryTest.cs trunk/Tests/Emitter/TypeValidatorTest.cs trunk/Tests/Helpers/ trunk/Tests/Helpers/ChannelResolver.cs trunk/Tests/Helpers/ThreadTimeout.cs trunk/Tests/LanguageFeatures/ trunk/Tests/LanguageFeatures/ChannelTest.cs trunk/Tests/LanguageFeatures/ChordTest.cs trunk/Tests/LanguageFeatures/EnumerableChannelTest.cs trunk/Tests/LanguageFeatures/ForkTest.cs trunk/Tests/LanguageFeatures/JoinTest.cs trunk/Tests/LanguageFeatures/ShortcutTest.cs trunk/Tests/LanguageFeatures/YieldTest.cs trunk/Tests/Runtime/ trunk/Tests/Runtime/BusTest.cs trunk/Tests/Runtime/ChannelEnumerableTest.cs Removed Paths: ------------- trunk/Tests/BusTest.cs trunk/Tests/ChannelEnumerableTest.cs trunk/Tests/ChannelResolver.cs trunk/Tests/ChannelTest.cs trunk/Tests/ChordTest.cs trunk/Tests/DisposeTest.cs trunk/Tests/DistributionTest.cs trunk/Tests/EnumerableChannelTest.cs trunk/Tests/ForkTest.cs trunk/Tests/JoinTest.cs trunk/Tests/ParallelizationFactoryTest.cs trunk/Tests/ShortcutTest.cs trunk/Tests/ThreadTimeout.cs trunk/Tests/TypeValidatorTest.cs trunk/Tests/YieldTest.cs Deleted: trunk/Tests/BusTest.cs =================================================================== --- trunk/Tests/BusTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/BusTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,179 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Runtime.Serialization; -using System.Threading; -using Fmacj.Emitter; -using Fmacj.Framework; -using Fmacj.Runtime; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class BusTest : AssertionHelper - { - [Parallelizable] - public abstract class BusTestClass : IParallelizable - { - [Fork] - public abstract void TestMethod1(int value); - [Asynchronous] - protected void TestMethod1(int value, [Channel("TestChannel1")] out int result) - { - result = value*value; - } - - [Fork] - public abstract void TestMethod2(int value); - [Asynchronous] - protected void TestMethod2(int value, [Channel("TestChannel2")] out double result) - { - result = 1/(double)value; - } - - [Fork] - public abstract void TestMethod3(int value); - [Asynchronous] - protected void TestMethod3(int value, [Channel("TestChannel3")] out int result) - { - result = -value; - } - - public abstract void Dispose(); - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(BusTestClass).Assembly); - } - - [Test] - public void OneChannel() - { - BusTestClass busTestClass = ParallelizationFactory.GetParallelized<BusTestClass>(); - - busTestClass.TestMethod3(5); - - int result = 0; - - Thread thread = - new Thread( - delegate() - { - Channel<int> channel = ChannelResolver<int>.GetChannel(busTestClass, "TestChannel3"); - Bus bus = new Bus(new IChannel[] {channel}, - new ChannelOptions[] { - new ChannelOptions(false)}); - object[] objects = bus.Receive(); - bus.Close(); - Expect(objects.Length, EqualTo(1)); - result = (int) objects[0]; - }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - Expect(result, EqualTo(-5)); - } - - [Test] - public void TwoChannels() - { - BusTestClass busTestClass = ParallelizationFactory.GetParallelized<BusTestClass>(); - - double result = 0; - - busTestClass.TestMethod1(2); - busTestClass.TestMethod2(3); - - Thread thread = - new Thread( - delegate() - { - Channel<int> channel1 = ChannelResolver<int>.GetChannel(busTestClass, "TestChannel1"); - Channel<double> channel2 = ChannelResolver<double>.GetChannel(busTestClass, "TestChannel2"); - Bus bus = new Bus(new IChannel[] {channel1, channel2}, - new ChannelOptions[] { - new ChannelOptions(false), - new ChannelOptions(false)});; - object[] objects = bus.Receive(); - bus.Close(); - Expect(objects.Length, EqualTo(2)); - result = (int) objects[0] + (double) objects[1]; - }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - Expect(result, EqualTo(2*2 + 1d/3)); - } - - [Test] - public void ManyValues() - { - BusTestClass busTestClass = ParallelizationFactory.GetParallelized<BusTestClass>(); - - for (int i = 1; i <= 1000; i++) - { - busTestClass.TestMethod1(i); - busTestClass.TestMethod2(-i); - } - Thread.Sleep(100); - - List<int> result1 = new List<int>(); - List<double> result2 = new List<double>(); - - - Thread thread = - new Thread( - delegate() - { - Channel<int> channel1 = ChannelResolver<int>.GetChannel(busTestClass,"TestChannel1"); - Channel<double> channel2 = ChannelResolver<double>.GetChannel(busTestClass,"TestChannel2"); - var bus = new Bus(new IChannel[] {channel1, channel2}, - new ChannelOptions[] { - new ChannelOptions(false), - new ChannelOptions(false)}); - - for (int i = 1; i <= 1000; i++) - { - - object[] objects = bus.Receive(); - Expect(objects.Length, EqualTo(2)); - result1.Add((int) objects[0]); - result2.Add((double) objects[1]); - } - bus.Close(); - }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - for (int i = 1; i <= 1000; i++) - Expect(result1.Contains(i*i), String.Format("Missing number: {0} ({1} received)", i, result1.Count)); - - for (int i = 1; i <= 1000; i++) - Expect(result2.Contains(1d/-i), String.Format("Missing number: {0} ({1} received)", i, result1.Count)); - } - } -} Deleted: trunk/Tests/ChannelEnumerableTest.cs =================================================================== --- trunk/Tests/ChannelEnumerableTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/ChannelEnumerableTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,64 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Linq; -using Fmacj.Framework; -using Fmacj.Runtime; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class ChannelEnumerableTest : AssertionHelper - { - [Test] - public void Enumerate() - { - Channel<int> channel = new Channel<int>(); - - for (int i = 0; i < 10; i++) - channel.Send(i); - - IChannelEnumerable<int> enumerable = new ChannelEnumerable<int>(channel); - - int n = 0; - foreach(int i in enumerable.Take(10)) - Expect(i, EqualTo(n++)); - } - - [Test] - [ExpectedException(typeof(InvalidOperationException))] - public void EnumerateOnlyOnce() - { - Channel<int> channel = new Channel<int>(); - - for (int i = 0; i < 10; i++) - channel.Send(i); - - IChannelEnumerable<int> enumerable = new ChannelEnumerable<int>(channel); - - int n = 0; - foreach(int i in enumerable.Take(5)) - Expect(i, EqualTo(n++)); - - foreach(int i in enumerable.Take(5)) - Expect(i, EqualTo(n++)); - } - } -} Deleted: trunk/Tests/ChannelResolver.cs =================================================================== --- trunk/Tests/ChannelResolver.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/ChannelResolver.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,33 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System.Reflection; -using Fmacj.Framework; -using Fmacj.Runtime; - -namespace Fmacj.Tests -{ - public static class ChannelResolver<T> - { - public static Channel<T> GetChannel(IParallelizable instance, string name) - { - return (Channel<T>) instance.GetType().GetField(name+"Channel", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(instance); - } - - } -} \ No newline at end of file Deleted: trunk/Tests/ChannelTest.cs =================================================================== --- trunk/Tests/ChannelTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/ChannelTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,179 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Runtime.Serialization; -using System.Threading; -using Fmacj.Emitter; -using Fmacj.Framework; -using Fmacj.Runtime; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class ChannelTest : AssertionHelper - { - [Parallelizable] - public abstract class ChannelTestClass : IParallelizable - { - [Fork] - public abstract void ChannelTestMethod(int value); - - [Asynchronous] - protected void ChannelTestMethod(int value, [Channel("TestChannel")] out int result) - { - result = value * value; - } - - [Fork] - public abstract void TwoChannelTestMethod(int value); - - [Asynchronous] - protected void TwoChannelTestMethod(int value, [Channel("TestChannel1")] out int result1, [Channel("TestChannel2")] out string result2) - { - result1 = value * value; - result2 = string.Format("->{0}<-", value); - } - - public abstract void Dispose(); - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(ChannelTestClass).Assembly); - } - - [Test] - public void OneChannel() - { - using (ChannelTestClass channelTestClass = ParallelizationFactory.GetParallelized<ChannelTestClass>()) - { - channelTestClass.ChannelTestMethod(5); - - int result = 0; - - Thread thread = new Thread(delegate() { result = ChannelResolver<int>.GetChannel(channelTestClass, "TestChannel").Receive(); }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - Expect(result,EqualTo(25)); - } - } - - [Test] - public void TwoChannels() - { - using (ChannelTestClass channelTestClass = ParallelizationFactory.GetParallelized<ChannelTestClass>()) - { - channelTestClass.TwoChannelTestMethod(23); - - int result1 = 0; - string result2 = ""; - - Thread thread = new Thread(delegate() - { - result1 = ChannelResolver<int>.GetChannel(channelTestClass, "TestChannel1").Receive(); - result2 = ChannelResolver<string>.GetChannel(channelTestClass, "TestChannel2").Receive(); - }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - Expect(result1, EqualTo(529)); - Expect(result2, EqualTo("->23<-")); - } - } - - [Test] - public void InstanceChannels() - { - List<Thread> threads = new List<Thread>(); - bool[] successArray = new bool[20]; - for (int i = 1; i <= 20; i++) - { - int i1 = i; - Thread thread = new Thread(delegate() - { - using (ChannelTestClass instance = ParallelizationFactory.GetParallelized<ChannelTestClass>()) - TestForInstance(instance, i1); - successArray[i1 - 1] = true; - }); - threads.Add(thread); - thread.Start(); - } - - foreach(Thread thread in threads) - { - if (!ThreadTimeout.Timeout(thread, 10000)) - throw new TimeoutException(); - } - - foreach(bool success in successArray) - { - Expect(success); - } - } - - private readonly Random random = new Random(); - - private void TestForInstance(ChannelTestClass instance, int value) - { - Thread.Sleep(random.Next(200)); - instance.ChannelTestMethod(value); - - int result = ChannelResolver<int>.GetChannel(instance, "TestChannel").Receive(); - Expect(result, EqualTo(value*value)); - } - - [Test] - public void ManyValues() - { - using (ChannelTestClass channelTestClass = ParallelizationFactory.GetParallelized<ChannelTestClass>()) - { - for (int i = 1; i <= 1000; i++) - channelTestClass.ChannelTestMethod(i); - - Thread.Sleep(100); - - List<int> result = new List<int>(); - - Thread thread = - new Thread( - delegate() - { - Channel<int> channel = ChannelResolver<int>.GetChannel(channelTestClass, "TestChannel"); - for (int i = 1; i <= 1000; i++) - { - result.Add(channel.Receive()); - } - }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - for (int i = 1; i <= 1000; i++) - Expect(result.Contains(i*i), String.Format("Missing number: {0}", i)); - } - } - } -} \ No newline at end of file Deleted: trunk/Tests/ChordTest.cs =================================================================== --- trunk/Tests/ChordTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/ChordTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,299 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Net; -using System.Net.Sockets; -using System.Threading; -using Fmacj.Emitter; -using Fmacj.Framework; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class ChordTest : AssertionHelper - { - [Parallelizable] - public abstract class ChordTestClass : IParallelizable - { - [Fork] - public abstract void TestMethod1(int value); - [Asynchronous] - protected void TestMethod1(int value, [Channel("TestChannel1")] out int result) - { - result = value * value; - } - - [Fork] - public abstract void TestMethod2(int value); - [Asynchronous] - protected void TestMethod2(int value, [Channel("TestChannel2")] out double result) - { - result = 1 / (double)value; - } - - [Chord] - protected void TestChord([Channel("TestChannel1")] int value1, [Channel("TestChannel2")] double value2) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - binaryWriter.Write(value1 + value2); - binaryWriter.Flush(); - tcpClient.Close(); - } - - - [Fork] - public abstract void TestMethod3(int value); - [Asynchronous] - protected void TestMethod3(int value, [Channel("TestChannel3")] out int result) - { - result = -value; - } - - [Chord] - protected void SimpleChord([Channel("TestChannel3")] int value) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - binaryWriter.Write(value); - binaryWriter.Flush(); - tcpClient.Close(); - } - - - [Fork] - public abstract void TestMethod4(string value); - [Asynchronous] - protected void TestMethod4(string value, [Channel("TestChannel4")] out string result) - { - Thread.Sleep(random.Next(20)); - result = string.Format("{0},{{0}}", value); - } - - [Fork] - public abstract void TestMethod5(int value); - [Asynchronous] - protected void TestMethod5(int value, [Channel("TestChannel5")] out int result) - { - Thread.Sleep(random.Next(20)); - result = 23000 + value; - } - - [Chord] - protected void ComplexChord([Channel("TestChannel4")] string value1, [Channel("TestChannel5")] int value2) - { - string value = String.Format(value1, value2); - - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, value2); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - binaryWriter.Write(value); - binaryWriter.Flush(); - tcpClient.Close(); - } - - - [Fork] - public abstract void TestMethod6(int value); - [Asynchronous] - protected void TestMethod6(int value, [Channel("TestChannel6")] out int result) - { - result = value ; - } - - [Fork] - public abstract void TestMethod7(double value); - [Asynchronous] - protected void TestMethod7(double value, [Channel("TestChannel7")] out double result) - { - result = value; - } - - [Chord] - protected void OutChannelChord([Channel("TestChannel6")] int value1, [Channel("TestChannel7")] double value2, - [Channel("OutChannel1")] out double result1, [Channel("OutChannel2")] out string result2) - { - result1 = value1 / value2; - result2 = "Test"; - } - - - private readonly Random random = new Random(); - - public abstract void Dispose(); - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(ChordTestClass).Assembly); - } - - [Test] - public void SimpleChord() - { - using (ChordTestClass chordTestClass = ParallelizationFactory.GetParallelized<ChordTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - chordTestClass.TestMethod3(5); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(200); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new BinaryReader(tcpClient.GetStream()).ReadInt32(), EqualTo(-5)); - - tcpClient.Close(); - tcpListener.Stop(); - - } - } - - [Test] - public void TwoChannelChord() - { - using (ChordTestClass chordTestClass = ParallelizationFactory.GetParallelized<ChordTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - chordTestClass.TestMethod1(2); - chordTestClass.TestMethod2(3); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new BinaryReader(tcpClient.GetStream()).ReadDouble(), EqualTo(2 * 2 + 1d / 3)); - - tcpClient.Close(); - tcpListener.Stop(); - } - } - - [Test] - public void MassiveInvoke() - { - using (ChordTestClass chordTestClass = ParallelizationFactory.GetParallelized<ChordTestClass>()) - { - List<TcpListener> tcpListeners = new List<TcpListener>(); - - for (int i = 0; i < 500; i++) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000 + i); - tcpListeners.Add(tcpListener); - tcpListener.Start(); - chordTestClass.TestMethod4(string.Format("V{0}", i)); - chordTestClass.TestMethod5(i); - } - - List<string> results = new List<string>(); - - foreach (TcpListener tcpListener in tcpListeners) - { - int i = 0; - var timeout = 10; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (++i > timeout) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - results.Add(new BinaryReader(tcpClient.GetStream()).ReadString()); - - tcpClient.Close(); - tcpListener.Stop(); - } - - Debug.Print(string.Format("Received {0} results.", results.Count)); - - List<string> results1 = new List<string>(); - List<string> results2 = new List<string>(); - - foreach(string value in results) - { - string[] values = value.Split(','); - results1.Add(values[0]); - results2.Add(values[1]); - } - - for (int i = 0; i < 500; i++) - { - Expect(results1.Contains(string.Format("V{0}", i)), - string.Format("Missing value1: {0}", i)); - Expect(results2.Contains(string.Format("{0}", 23000 + i)), - string.Format("Missing value2: {0}", i)); - } - - } - } - - [Test] - public void OutChannelChord() - { - using (ChordTestClass chordTestClass = ParallelizationFactory.GetParallelized<ChordTestClass>()) - { - chordTestClass.TestMethod6(5); - chordTestClass.TestMethod7(23); - - double result1 = 0; - string result2 = ""; - - Thread thread = new Thread(delegate() { result1 = ChannelResolver<double>.GetChannel(chordTestClass, "OutChannel1").Receive(); - result2 = ChannelResolver<string>.GetChannel(chordTestClass, "OutChannel2").Receive(); }); - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - Expect(result1,EqualTo(5.0/23.0)); - Expect(result2,EqualTo("Test")); - } - } - } -} \ No newline at end of file Deleted: trunk/Tests/DisposeTest.cs =================================================================== --- trunk/Tests/DisposeTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/DisposeTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,59 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Runtime.Serialization; -using System.Threading; -using Fmacj.Emitter; -using Fmacj.Framework; -using Fmacj.Runtime; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class DisposeTest : AssertionHelper - { - [Parallelizable] - public abstract class DisposeTestClass : IParallelizable - { - public bool DisposeCalled { get; private set; } - - public virtual void Dispose() - { - DisposeCalled = true; - } - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(DisposeTestClass).Assembly); - } - - [Test] - public void CallsBaseDispose() - { - DisposeTestClass disposeTestClass = ParallelizationFactory.GetParallelized<DisposeTestClass>(); - disposeTestClass.Dispose(); - Expect(disposeTestClass.DisposeCalled); - } - } -} \ No newline at end of file Copied: trunk/Tests/Distribution/DistributionTest.cs (from rev 108, trunk/Tests/DistributionTest.cs) =================================================================== --- trunk/Tests/Distribution/DistributionTest.cs (rev 0) +++ trunk/Tests/Distribution/DistributionTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,64 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.IO; +using System.Net.Sockets; +using NUnit.Framework; +using Fmacj.Framework; +using Fmacj.Components.TaskClient; + +namespace Fmacj.Tests +{ + [TestFixture] + public class DistributionTest : AssertionHelper + { + public static void TestEntryPoint() + { + Console.WriteLine("Running"); + } + + private TcpClient tcpClient; + private Stream stream; + private TaskClient taskClient; + + [SetUp] + public void SetUp() + { + try + { + tcpClient = new TcpClient("localhost", Constants.DefaultTaskServerPort); + } + catch (Exception ex) + { + Assert.Ignore("Could not connect to distribution server: {0}.", ex); + } + + tcpClient.SendTimeout = 5000; + tcpClient.ReceiveTimeout = 5000; + stream = tcpClient.GetStream(); + taskClient = new TaskClient(stream); + } + + [Test] + public void Test() + { + taskClient.RunTask(TestEntryPoint); + } + } +} \ No newline at end of file Deleted: trunk/Tests/DistributionTest.cs =================================================================== --- trunk/Tests/DistributionTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/DistributionTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,64 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.IO; -using System.Net.Sockets; -using NUnit.Framework; -using Fmacj.Framework; -using Fmacj.Components.TaskClient; - -namespace Fmacj.Tests -{ - [TestFixture] - public class DistributionTest : AssertionHelper - { - public static void TestEntryPoint() - { - Console.WriteLine("Running"); - } - - private TcpClient tcpClient; - private Stream stream; - private TaskClient taskClient; - - [SetUp] - public void SetUp() - { - try - { - tcpClient = new TcpClient("localhost", Constants.DefaultTaskServerPort); - } - catch (Exception ex) - { - Assert.Ignore("Could not connect to distribution server: {0}.", ex); - } - - tcpClient.SendTimeout = 5000; - tcpClient.ReceiveTimeout = 5000; - stream = tcpClient.GetStream(); - taskClient = new TaskClient(stream); - } - - [Test] - public void Test() - { - taskClient.RunTask(TestEntryPoint); - } - } -} \ No newline at end of file Copied: trunk/Tests/Emitter/DisposeTest.cs (from rev 108, trunk/Tests/DisposeTest.cs) =================================================================== --- trunk/Tests/Emitter/DisposeTest.cs (rev 0) +++ trunk/Tests/Emitter/DisposeTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,59 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Threading; +using Fmacj.Emitter; +using Fmacj.Framework; +using Fmacj.Runtime; +using NUnit.Framework; + +namespace Fmacj.Tests +{ + [TestFixture] + public class DisposeTest : AssertionHelper + { + [Parallelizable] + public abstract class DisposeTestClass : IParallelizable + { + public bool DisposeCalled { get; private set; } + + public virtual void Dispose() + { + DisposeCalled = true; + } + } + + [SetUp] + public void SetUp() + { + ParallelizationFactory.Clear(); + ParallelizationFactory.Parallelize(typeof(DisposeTestClass).Assembly); + } + + [Test] + public void CallsBaseDispose() + { + DisposeTestClass disposeTestClass = ParallelizationFactory.GetParallelized<DisposeTestClass>(); + disposeTestClass.Dispose(); + Expect(disposeTestClass.DisposeCalled); + } + } +} \ No newline at end of file Copied: trunk/Tests/Emitter/ParallelizationFactoryTest.cs (from rev 108, trunk/Tests/ParallelizationFactoryTest.cs) =================================================================== --- trunk/Tests/Emitter/ParallelizationFactoryTest.cs (rev 0) +++ trunk/Tests/Emitter/ParallelizationFactoryTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,66 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Reflection; +using System.Runtime.Serialization; +using Fmacj.Emitter; +using Fmacj.Framework; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace Fmacj.Tests +{ + [TestFixture] + public class ParallelizationFactoryTest : AssertionHelper + { + [Parallelizable] + public abstract class ParallelizationFactoryTestClass : IParallelizable + { + public abstract void Dispose(); + } + + [SetUp] + public void SetUp() + { + ParallelizationFactory.Clear(); + } + + [Test] + [ExpectedException(ExceptionType=typeof(InvalidOperationException))] + public void NotParallelizedAssembly() + { + ParallelizationFactory.GetParallelized<ParallelizationFactoryTestClass>(); + } + + [Test] + [ExpectedException(ExceptionType = typeof(InvalidOperationException))] + public void MultipleParallelizedAssembly() + { + ParallelizationFactory.Parallelize(typeof(ParallelizationFactoryTestClass).Assembly); + ParallelizationFactory.Parallelize(typeof(ParallelizationFactoryTestClass).Assembly); + } + + [Test] + public void MinimalClass() + { + ParallelizationFactory.Parallelize(typeof(ParallelizationFactoryTestClass).Assembly); + Expect(ParallelizationFactory.GetParallelized<ParallelizationFactoryTestClass>(), Is.Not.Null); + } + } +} Copied: trunk/Tests/Emitter/TypeValidatorTest.cs (from rev 108, trunk/Tests/TypeValidatorTest.cs) =================================================================== --- trunk/Tests/Emitter/TypeValidatorTest.cs (rev 0) +++ trunk/Tests/Emitter/TypeValidatorTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,79 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System.Runtime.Serialization; +using Fmacj.Framework; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace Fmacj.Tests +{ + [TestFixture] + public class TypeValidatorTest : AssertionHelper + { + [Test] + public void AbstractClass() + { + Expect(TypeValidator.IsParallelizable(typeof(AbstractTestClass)), Is.True); + } + private abstract class AbstractTestClass : IParallelizable + { + public abstract void Dispose(); + } + + [Test] + public void NonAbstractClass() + { + Expect(TypeValidator.IsParallelizable(typeof(NonAbstractTestClass)), Is.False); + } + private class NonAbstractTestClass : IParallelizable + { + public void Dispose() + { + throw new System.NotImplementedException(); + } + } + + [Test] + public void NonImplementingAbstractClass() + { + Expect(TypeValidator.IsParallelizable(typeof(NonImplementingAbstractTestClass)), Is.False); + } + private abstract class NonImplementingAbstractTestClass {} + + [Test] + public void Struct() + { + Expect(TypeValidator.IsParallelizable(typeof(TestStruct)), Is.False); + } + private struct TestStruct : IParallelizable + { + public void Dispose() + { + throw new System.NotImplementedException(); + } + } + + [Test] + public void Interface() + { + Expect(TypeValidator.IsParallelizable(typeof (ITestInterface)), Is.False); + } + private interface ITestInterface : IParallelizable {} + } +} Deleted: trunk/Tests/EnumerableChannelTest.cs =================================================================== --- trunk/Tests/EnumerableChannelTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/EnumerableChannelTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,125 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Linq; -using System.Collections.Generic; -using System.Runtime.Serialization; -using System.Threading; -using System.IO; -using System.Net; -using System.Net.Sockets; -using Fmacj.Emitter; -using Fmacj.Framework; -using Fmacj.Runtime; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class EnumerableChannelTest : AssertionHelper - { - [Parallelizable] - public abstract class EnumerableChannelTestClass : IParallelizable - { - - [Fork] - public abstract void TestMethod1(int val); - [Asynchronous] - protected void TestMethod1(int val, [Channel("TestChannel1")] out int result) - { - result = -val; - } - - [Chord] - protected void SimpleChord([Channel("TestChannel1", Enumerable = true)] IChannelEnumerable<int> values) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - - Thread thread = - new Thread( - delegate() - { - foreach (int val in values.Take(10)) - binaryWriter.Write(val); - }); - - thread.Start(); - - ThreadTimeout.Timeout(thread, 10000); - - binaryWriter.Flush(); - tcpClient.Close(); - } - - public abstract void Dispose(); - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(EnumerableChannelTestClass).Assembly); - } - - [Test] - public void SimpleChord() - { - using (EnumerableChannelTestClass enumerableChannelTestClass = ParallelizationFactory.GetParallelized<EnumerableChannelTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - for (int n = 0; n < 20; n++) - enumerableChannelTestClass.TestMethod1(n); - - List<int> results = new List<int>(); - - for(int c = 0; c < 2; c++) - { - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(200); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - BinaryReader reader = new BinaryReader(tcpClient.GetStream()); - - - for (int n = 0; n < 10; n++) - results.Add(reader.ReadInt32()); - - tcpClient.Close(); - } - - for (int n = 0; n < 20; n++) - Expect(results.Contains(-n)); - - tcpListener.Stop(); - } - } - } -} Deleted: trunk/Tests/ForkTest.cs =================================================================== --- trunk/Tests/ForkTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/ForkTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,296 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Net; -using System.Net.Sockets; -using System.Runtime.Serialization; -using System.Threading; -using Fmacj.Emitter; -using Fmacj.Framework; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class ForkTest : AssertionHelper - { - [Parallelizable] - public abstract class ForkTestClass : IParallelizable - { - [Fork] - public abstract void TestMethod(string testString); - [Asynchronous] - protected void TestMethod(string testString, [Channel("Dummy")] out object dummy) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - StreamWriter streamWriter = new StreamWriter(tcpClient.GetStream()); - streamWriter.Write(testString); - streamWriter.Flush(); - tcpClient.Close(); - - dummy = null; - } - - [Fork] - public abstract void TestMethod(); - [Asynchronous] - protected void TestMethod([Channel("Dummy")] out object dummy) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - StreamWriter streamWriter = new StreamWriter(tcpClient.GetStream()); - streamWriter.Write("Aloha ʻoe"); - streamWriter.Flush(); - tcpClient.Close(); - - dummy = null; - } - - [Fork] - public abstract void TestMethod(string testString, string testString2); - [Asynchronous] - protected void TestMethod(string testString, string testString2, [Channel("Dummy")] out object dummy) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - StreamWriter streamWriter = new StreamWriter(tcpClient.GetStream()); - streamWriter.Write(testString + testString2); - streamWriter.Flush(); - tcpClient.Close(); - - dummy = null; - } - - [Fork] - public abstract void MassiveTest(string testValue); - [Asynchronous] - protected void MassiveTest(string testValue, [Channel("Dummy")] out object dummy) - { - int value = Convert.ToInt32(testValue); - - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000 + value); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - binaryWriter.Write(value); - binaryWriter.Flush(); - tcpClient.Close(); - - dummy = null; - } - - [Fork] - public abstract void ValueTypeTest(int testValue); - [Asynchronous] - protected void ValueTypeTest(int testValue, [Channel("Dummy")] out object dummy) - { - TcpClient tcpClient = new TcpClient(); - tcpClient.Connect(IPAddress.Loopback, 23000); - BinaryWriter binaryWriter = new BinaryWriter(tcpClient.GetStream()); - binaryWriter.Write(testValue); - binaryWriter.Flush(); - tcpClient.Close(); - - dummy = null; - } - - public abstract void Dispose(); - } - - [SetUp] - public void SetUp() - { - ParallelizationFactory.Clear(); - ParallelizationFactory.Parallelize(typeof(ForkTestClass).Assembly); - } - - [Test] - public void WithParameter() - { - using (ForkTestClass forkTestClass = ParallelizationFactory.GetParallelized<ForkTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - forkTestClass.TestMethod("Aloha ʻoe"); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new StreamReader(tcpClient.GetStream()).ReadToEnd(), EqualTo("Aloha ʻoe")); - - tcpClient.Close(); - tcpListener.Stop(); - - } - } - - [Test] - public void WithoutParameter() - { - using (ForkTestClass forkTestClass = ParallelizationFactory.GetParallelized<ForkTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - forkTestClass.TestMethod(); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new StreamReader(tcpClient.GetStream()).ReadToEnd(), EqualTo("Aloha ʻoe")); - - tcpClient.Close(); - tcpListener.Stop(); - - } - } - [Test] - public void MultipleParameters() - { - using (ForkTestClass forkTestClass = ParallelizationFactory.GetParallelized<ForkTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - forkTestClass.TestMethod("Aloha", " ʻoe"); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new StreamReader(tcpClient.GetStream()).ReadToEnd(), EqualTo("Aloha ʻoe")); - - tcpClient.Close(); - tcpListener.Stop(); - - } - } - - [Test] - public void MassiveInvoke() - { - using (ForkTestClass forkTestClass = ParallelizationFactory.GetParallelized<ForkTestClass>()) - { - List<TcpListener> tcpListeners = new List<TcpListener>(); - - for (int i = 0; i < 500; i++) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000 + i); - tcpListeners.Add(tcpListener); - tcpListener.Start(); - - forkTestClass.MassiveTest(i.ToString()); - } - - List<int> results = new List<int>(); - - foreach (TcpListener tcpListener in tcpListeners) - { - int i = 0; - var timeout = 10; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (++i > timeout) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - if(i > timeout) - continue; - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - results.Add(new BinaryReader(tcpClient.GetStream()).ReadInt32()); - - tcpClient.Close(); - tcpListener.Stop(); - } - - Debug.Print(string.Format("Received {0} results.", results.Count)); - - for (int i = 0; i < 500; i++) - { - Expect(results.Contains(i), string.Format("Missing value: {0}", i)); - } - - } - } - - [Test] - public void ValueTypeParameter() - { - using (ForkTestClass forkTestClass = ParallelizationFactory.GetParallelized<ForkTestClass>()) - { - TcpListener tcpListener = new TcpListener(IPAddress.Loopback, 23000); - tcpListener.Start(); - - forkTestClass.ValueTypeTest(235); - - int i = 0; - while (!tcpListener.Pending()) - { - Thread.Sleep(100); - if (i++ > 20) - { - tcpListener.Stop(); - throw new TimeoutException(); - } - } - - TcpClient tcpClient = tcpListener.AcceptTcpClient(); - Expect(new BinaryReader(tcpClient.GetStream()).ReadInt32(), EqualTo(235)); - - tcpClient.Close(); - tcpListener.Stop(); - } - } - } -} \ No newline at end of file Copied: trunk/Tests/Helpers/ChannelResolver.cs (from rev 108, trunk/Tests/ChannelResolver.cs) =================================================================== --- trunk/Tests/Helpers/ChannelResolver.cs (rev 0) +++ trunk/Tests/Helpers/ChannelResolver.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,33 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System.Reflection; +using Fmacj.Framework; +using Fmacj.Runtime; + +namespace Fmacj.Tests +{ + public static class ChannelResolver<T> + { + public static Channel<T> GetChannel(IParallelizable instance, string name) + { + return (Channel<T>) instance.GetType().GetField(name+"Channel", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(instance); + } + + } +} \ No newline at end of file Copied: trunk/Tests/Helpers/ThreadTimeout.cs (from rev 108, trunk/Tests/ThreadTimeout.cs) =================================================================== --- trunk/Tests/Helpers/ThreadTimeout.cs (rev 0) +++ trunk/Tests/Helpers/ThreadTimeout.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -0,0 +1,48 @@ +/* + FMACJ Parallelization Framework for .NET + Copyright (C) 2008 Stefan Noack + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; + +namespace Fmacj.Tests +{ + internal static class ThreadTimeout + { + public static bool Timeout(Thread thread, int timeout) + { + bool result = true; + Thread timeoutThread = + new Thread( + delegate() + { + Thread.Sleep(timeout); + if (thread.ThreadState != ThreadState.Stopped) + { + result = false; + thread.Abort(); + } + }); + timeoutThread.Start(); + thread.Join(); + return result; + } + } +} Deleted: trunk/Tests/JoinTest.cs =================================================================== --- trunk/Tests/JoinTest.cs 2009-12-04 03:02:59 UTC (rev 108) +++ trunk/Tests/JoinTest.cs 2009-12-05 12:48:40 UTC (rev 109) @@ -1,172 +0,0 @@ -/* - FMACJ Parallelization Framework for .NET - Copyright (C) 2008 Stefan Noack - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Threading; -using Fmacj.Framework; -using Fmacj.Emitter; -using NUnit.Framework; - -namespace Fmacj.Tests -{ - [TestFixture] - public class JoinTest : AssertionHelper - { - [Parallelizable] - public abstract class JoinTestClass : IParallelizable - { - [Fork] - public abstract void TestMethod1(int val); - [Asynchronous] - protected void TestMethod1(int val, [Channel("TestChannel1")] out int result) - { - result = val*val; - } - - [Fork] - public abstract void TestMethod2(int val); - [Asynchronous] - protected void TestMethod2(int val, [Channel("TestChannel2")] out double result) - { - result = 1/(double)val; - } - - [Chord] - protected double SimpleJoin([Channel("TestChannel1")] int bar, [Channel("TestChannel2")] double baz) - { - return bar + baz; - } - [Join] - public abstract double SimpleJoin(); - - - [Fork] - public abstract void TestMethod3(int value); - [Asynchronous] - protected void TestMethod3(int value, [Channel("TestChannel3")] out int result) - { - result = value ; - } - - [Fork] - public abstract void TestMethod4(double value); - [Asynchronous] - protected void TestMethod4(double value, [Channel("TestChannel4")] out double result) - { - result = value; - } - - [Chord] - protected... [truncated message content] |
From: <noa...@us...> - 2009-12-04 03:03:06
|
Revision: 108 http://fmacj.svn.sourceforge.net/fmacj/?rev=108&view=rev Author: noah1989 Date: 2009-12-04 03:02:59 +0000 (Fri, 04 Dec 2009) Log Message: ----------- changed .gitignore Modified Paths: -------------- trunk/.gitignore Modified: trunk/.gitignore =================================================================== --- trunk/.gitignore 2009-12-03 01:48:37 UTC (rev 107) +++ trunk/.gitignore 2009-12-04 03:02:59 UTC (rev 108) @@ -1,4 +1,5 @@ bin/ +*/bin *.pidb *.userprefs *.usertasks This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-12-03 01:48:43
|
Revision: 107 http://fmacj.svn.sourceforge.net/fmacj/?rev=107&view=rev Author: noah1989 Date: 2009-12-03 01:48:37 +0000 (Thu, 03 Dec 2009) Log Message: ----------- removed unnecessary files Removed Paths: ------------- trunk/Components.TaskClient/components.taskclient.pc.in trunk/Emitter/emitter.pc.in trunk/Examples.Mandelbrot/examples.mandelbrot.in trunk/Framework/framework.pc.in trunk/Runtime/runtime.pc.in trunk/Runtime.Network/runtime.network.pc.in trunk/Tests/tests.pc.in Deleted: trunk/Components.TaskClient/components.taskclient.pc.in =================================================================== --- trunk/Components.TaskClient/components.taskclient.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Components.TaskClient/components.taskclient.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Components.TaskClient -Description: Components.TaskClient -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Components.TaskClient.dll Deleted: trunk/Emitter/emitter.pc.in =================================================================== --- trunk/Emitter/emitter.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Emitter/emitter.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Emitter -Description: Emitter -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Emitter.dll Deleted: trunk/Examples.Mandelbrot/examples.mandelbrot.in =================================================================== --- trunk/Examples.Mandelbrot/examples.mandelbrot.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Examples.Mandelbrot/examples.mandelbrot.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,3 +0,0 @@ -#!/bin/sh - -exec mono "@expanded_libdir@/@PACKAGE@/Examples.Mandelbrot.exe" "$@" Deleted: trunk/Framework/framework.pc.in =================================================================== --- trunk/Framework/framework.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Framework/framework.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Framework -Description: Framework -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Framework.dll Deleted: trunk/Runtime/runtime.pc.in =================================================================== --- trunk/Runtime/runtime.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Runtime/runtime.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Runtime -Description: Runtime -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Runtime.dll Deleted: trunk/Runtime.Network/runtime.network.pc.in =================================================================== --- trunk/Runtime.Network/runtime.network.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Runtime.Network/runtime.network.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Runtime.Network -Description: Runtime.Network -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Runtime.Network.dll Deleted: trunk/Tests/tests.pc.in =================================================================== --- trunk/Tests/tests.pc.in 2009-12-03 01:40:40 UTC (rev 106) +++ trunk/Tests/tests.pc.in 2009-12-03 01:48:37 UTC (rev 107) @@ -1,6 +0,0 @@ -Name: Tests -Description: Tests -Version: 0.1 - -Requires: -Libs: -r:@expanded_libdir@/@PACKAGE@/Tests.dll This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-12-03 01:40:56
|
Revision: 106 http://fmacj.svn.sourceforge.net/fmacj/?rev=106&view=rev Author: noah1989 Date: 2009-12-03 01:40:40 +0000 (Thu, 03 Dec 2009) Log Message: ----------- added 'run' target to Tests/Makefile Modified Paths: -------------- trunk/.gitignore trunk/Components.TaskClient/Makefile trunk/Emitter/Makefile trunk/Examples.ChaoticPendulum/ChaoticPendulum.Core/Makefile trunk/Examples.ChaoticPendulum/ChaoticPendulum.Frontend.Gtk/Makefile trunk/Examples.ChaoticPendulum/ChaoticPendulum.Visualization/Makefile trunk/Examples.ChaoticPendulum/Makefile.include trunk/Examples.ChaoticPendulum/configure trunk/Examples.Mandelbrot/Makefile trunk/Executables.DistributionServer/Makefile trunk/Executables.FmacjRun/Makefile trunk/Executables.WorkClient/Makefile trunk/Framework/Makefile trunk/Makefile trunk/Runtime/Makefile trunk/Runtime.Network/Makefile trunk/Tests/Makefile Added Paths: ----------- trunk/Components.TaskClient/Components.TaskClient.csproj trunk/Components.TaskClient/components.taskclient.pc.in trunk/Emitter/Emitter.csproj trunk/Emitter/emitter.pc.in trunk/Examples.Mandelbrot/Examples.Mandelbrot.csproj trunk/Examples.Mandelbrot/examples.mandelbrot.in trunk/Executables.DistributionServer/Executables.DistributionServer.csproj trunk/Executables.FmacjRun/Executables.FmacjRun.csproj trunk/Executables.WorkClient/Executables.WorkClient.csproj trunk/Fmacj.sln trunk/Framework/Framework.csproj trunk/Framework/framework.pc.in trunk/Makefile.include trunk/Runtime/Runtime.csproj trunk/Runtime/runtime.pc.in trunk/Runtime.Network/Runtime.Network.csproj trunk/Runtime.Network/runtime.network.pc.in trunk/Tests/Tests.csproj trunk/Tests/tests.pc.in trunk/configure trunk/rules.make Removed Paths: ------------- trunk/Components.TaskClient/Components.TaskClient.mdp trunk/Components.TaskClient/Fmacj.Components.TaskClient.csproj trunk/Emitter/Emitter.mdp trunk/Emitter/Fmacj.Emitter.csproj trunk/Examples.Mandelbrot/Examples.Mandelbrot.mdp trunk/Examples.Mandelbrot/Fmacj.Examples.Mandelbrot.csproj trunk/Executables.DistributionServer/Executables.DistributionServer.mdp trunk/Executables.FmacjRun/Executables.FmacjRun.mdp trunk/Executables.WorkClient/Executables.WorkClient.mdp trunk/FMACJ.sln trunk/Fmacj.mds trunk/Framework/Fmacj.Framework.csproj trunk/Framework/Framework.mdp trunk/Runtime/Fmacj.Runtime.csproj trunk/Runtime/Runtime.mdp trunk/Runtime.Network/Runtime.Network.mdp trunk/Tests/Fmacj.Tests.csproj trunk/Tests/Tests.mdp Modified: trunk/.gitignore =================================================================== --- trunk/.gitignore 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/.gitignore 2009-12-03 01:40:40 UTC (rev 106) @@ -1,6 +1,8 @@ -bin/* +bin/ *.pidb *.userprefs *.usertasks Tests/C:\\NUnitPrimaryTrace.txt Tests/TestResult.xml +config.log +config.make Added: trunk/Components.TaskClient/Components.TaskClient.csproj =================================================================== --- trunk/Components.TaskClient/Components.TaskClient.csproj (rev 0) +++ trunk/Components.TaskClient/Components.TaskClient.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{2A0BA69A-D98B-4F1F-A112-55BFFFBF3E32}</ProjectGuid> + <OutputType>Library</OutputType> + <AssemblyName>Components.TaskClient</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Compile Include="TaskClient.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Framework\Framework.csproj"> + <Project>{C3A4C3E4-B54C-43C1-9ABB-1473FB1DBFEC}</Project> + <Name>Framework</Name> + </ProjectReference> + <ProjectReference Include="..\Runtime.Network\Runtime.Network.csproj"> + <Project>{B49AB1C5-62E4-431A-A1F1-1DE1255ACBD2}</Project> + <Name>Runtime.Network</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Reference Include="System.Core" /> + <Reference Include="System" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ProjectExtensions> + <MonoDevelop> + <Properties InternalTargetFrameworkVersion="3.5"> + <Deployment.LinuxDeployData generatePcFile="false" /> + <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile" SyncReferences="true"> + <BuildFilesVar Sync="true" Name="FILES" /> + <DeployFilesVar /> + <ResourcesVar Sync="true" Name="RESOURCES" /> + <OthersVar /> + <GacRefVar Sync="true" Name="REFERENCES" /> + <AsmRefVar Sync="true" Name="REFERENCES" /> + <ProjectRefVar Sync="true" Name="REFERENCES" /> + </MonoDevelop.Autotools.MakefileInfo> + </Properties> + </MonoDevelop> + </ProjectExtensions> +</Project> \ No newline at end of file Deleted: trunk/Components.TaskClient/Components.TaskClient.mdp =================================================================== --- trunk/Components.TaskClient/Components.TaskClient.mdp 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Components.TaskClient/Components.TaskClient.mdp 2009-12-03 01:40:40 UTC (rev 106) @@ -1,33 +0,0 @@ -<Project name="Components.TaskClient" fileversion="2.0" language="C#" clr-version="Net_2_0" targetFramework="2.0" ctype="DotNetProject"> - <Configurations active="Debug"> - <Configuration name="Debug" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Debug" assembly="Components.TaskClient" /> - <Build debugmode="True" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - <Configuration name="Release" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Release" assembly="Components.TaskClient" /> - <Build debugmode="False" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - </Configurations> - <Contents> - <File name="Properties/AssemblyInfo.cs" subtype="Code" buildaction="Compile" /> - <File name="TaskClient.cs" subtype="Code" buildaction="Compile" /> - </Contents> - <References> - <ProjectReference type="Assembly" localcopy="True" specificVersion="False" refto="../bin/Fmacj.Runtime.Network.dll" /> - <ProjectReference type="Assembly" localcopy="True" specificVersion="False" refto="../bin/Fmacj.Framework.dll" /> - </References> - <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="Makefile" SyncReferences="True"> - <BuildFilesVar Sync="True" Name="FILES" /> - <DeployFilesVar /> - <ResourcesVar /> - <OthersVar /> - <GacRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <AsmRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <ProjectRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - </MonoDevelop.Autotools.MakefileInfo> -</Project> \ No newline at end of file Deleted: trunk/Components.TaskClient/Fmacj.Components.TaskClient.csproj =================================================================== --- trunk/Components.TaskClient/Fmacj.Components.TaskClient.csproj 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Components.TaskClient/Fmacj.Components.TaskClient.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.30729</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{E9F8F4D6-86A4-4D64-BD75-C32F7E3C6EEB}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Fmacj.Components.TaskClient</RootNamespace> - <AssemblyName>Fmacj.Components.TaskClient</AssemblyName> - <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <StartupObject> - </StartupObject> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> - <ItemGroup> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="TaskClient.cs" /> - </ItemGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core"> - <RequiredTargetFramework>3.5</RequiredTargetFramework> - </Reference> - <Reference Include="System.Data" /> - <Reference Include="System.XML" /> - </ItemGroup> -</Project> \ No newline at end of file Modified: trunk/Components.TaskClient/Makefile =================================================================== --- trunk/Components.TaskClient/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Components.TaskClient/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -1,19 +1,144 @@ -ASSEMBLY = ../bin/Fmacj.Components.TaskClient.dll +EXTRA_DIST = Makefile + +# Warning: This is an automatically generated file, do not edit! + +srcdir=. +top_srcdir=.. + +include $(top_srcdir)/config.make + +ifeq ($(CONFIG),DEBUG) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG" +ASSEMBLY = bin/Debug/Components.TaskClient.dll +ASSEMBLY_MDB = $(ASSEMBLY).mdb +COMPILE_TARGET = library +PROJECT_REFERENCES = \ + ../Framework/bin/Debug/Framework.dll \ + ../Runtime.Network/bin/Debug/Runtime.Network.dll +BUILD_DIR = bin/Debug + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Debug/Framework.dll +FRAMEWORK_DLL_MDB_SOURCE=../Framework/bin/Debug/Framework.dll.mdb +FRAMEWORK_DLL_MDB=$(BUILD_DIR)/Framework.dll.mdb +RUNTIME_NETWORK_DLL_SOURCE=../Runtime.Network/bin/Debug/Runtime.Network.dll +RUNTIME_NETWORK_DLL_MDB_SOURCE=../Runtime.Network/bin/Debug/Runtime.Network.dll.mdb +RUNTIME_NETWORK_DLL_MDB=$(BUILD_DIR)/Runtime.Network.dll.mdb +COMPONENTS_TASKCLIENT_DLL_MDB_SOURCE=bin/Debug/Components.TaskClient.dll.mdb +COMPONENTS_TASKCLIENT_DLL_MDB=$(BUILD_DIR)/Components.TaskClient.dll.mdb + +endif + +ifeq ($(CONFIG),RELEASE) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- +ASSEMBLY = bin/Release/Components.TaskClient.dll +ASSEMBLY_MDB = +COMPILE_TARGET = library +PROJECT_REFERENCES = \ + ../Framework/bin/Release/Framework.dll \ + ../Runtime.Network/bin/Release/Runtime.Network.dll +BUILD_DIR = bin/Release + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Release/Framework.dll +FRAMEWORK_DLL_MDB= +RUNTIME_NETWORK_DLL_SOURCE=../Runtime.Network/bin/Release/Runtime.Network.dll +RUNTIME_NETWORK_DLL_MDB= +COMPONENTS_TASKCLIENT_DLL_MDB= + +endif + +AL=al2 +SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll + +PROGRAMFILES = \ + $(FRAMEWORK_DLL) \ + $(FRAMEWORK_DLL_MDB) \ + $(RUNTIME_NETWORK_DLL) \ + $(RUNTIME_NETWORK_DLL_MDB) \ + $(COMPONENTS_TASKCLIENT_DLL_MDB) + + +RESGEN=resgen2 + +FRAMEWORK_DLL = $(BUILD_DIR)/Framework.dll +RUNTIME_NETWORK_DLL = $(BUILD_DIR)/Runtime.Network.dll + FILES = \ Properties/AssemblyInfo.cs \ - TaskClient.cs + TaskClient.cs +DATA_FILES = + +RESOURCES = + +EXTRAS = + REFERENCES = \ - -r:../bin/Fmacj.Framework.dll \ - -r:../bin/Fmacj.Runtime.Network.dll + ../Framework/bin/Debug/Framework.dll \ + ../Runtime.Network/bin/Debug/Runtime.Network.dll \ + System \ + System.Core -all: $(ASSEMBLY) +DLL_REFERENCES = -$(ASSEMBLY): $(FILES) - gmcs -out:$(ASSEMBLY) $(REFERENCES) -target:library -debug $(FILES) +CLEANFILES = $(PROGRAMFILES) -clean: - -rm -vf $(ASSEMBLY)* +#Targets +all: $(ASSEMBLY) $(PROGRAMFILES) $(top_srcdir)/config.make -new: clean all +include $(top_srcdir)/Makefile.include +#include $(srcdir)/custom-hooks.make + + + +$(eval $(call emit-deploy-target,FRAMEWORK_DLL)) +$(eval $(call emit-deploy-target,FRAMEWORK_DLL_MDB)) +$(eval $(call emit-deploy-target,RUNTIME_NETWORK_DLL)) +$(eval $(call emit-deploy-target,RUNTIME_NETWORK_DLL_MDB)) + + +$(eval $(call emit_resgen_targets)) +$(build_xamlg_list): %.xaml.g.cs: %.xaml + xamlg '$<' + + +$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) + make pre-all-local-hook prefix=$(prefix) + mkdir -p $(shell dirname $(ASSEMBLY)) + make $(CONFIG)_BeforeBuild + $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) + make $(CONFIG)_AfterBuild + make post-all-local-hook prefix=$(prefix) + +install-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-install-local-hook prefix=$(prefix) + make install-satellite-assemblies prefix=$(prefix) + mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' + $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(RUNTIME_NETWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(RUNTIME_NETWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(COMPONENTS_TASKCLIENT_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-install-local-hook prefix=$(prefix) + +uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-uninstall-local-hook prefix=$(prefix) + make uninstall-satellite-assemblies prefix=$(prefix) + $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(RUNTIME_NETWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(RUNTIME_NETWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(COMPONENTS_TASKCLIENT_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-uninstall-local-hook prefix=$(prefix) + +install: install-local +uninstall: uninstall-local +clean: clean-local + +include $(top_srcdir)/rules.make Added: trunk/Components.TaskClient/components.taskclient.pc.in =================================================================== --- trunk/Components.TaskClient/components.taskclient.pc.in (rev 0) +++ trunk/Components.TaskClient/components.taskclient.pc.in 2009-12-03 01:40:40 UTC (rev 106) @@ -0,0 +1,6 @@ +Name: Components.TaskClient +Description: Components.TaskClient +Version: 0.1 + +Requires: +Libs: -r:@expanded_libdir@/@PACKAGE@/Components.TaskClient.dll Copied: trunk/Emitter/Emitter.csproj (from rev 105, trunk/Emitter/Fmacj.Emitter.csproj) =================================================================== --- trunk/Emitter/Emitter.csproj (rev 0) +++ trunk/Emitter/Emitter.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{D3264B1D-ADEB-4DFC-BCDC-FF5CE6E701BC}</ProjectGuid> + <OutputType>Library</OutputType> + <AssemblyName>Emitter</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Compile Include="AssemblyParallelizer.cs" /> + <Compile Include="ChannelImplementer.cs" /> + <Compile Include="ChordImplementer.cs" /> + <Compile Include="ChordInfo.cs" /> + <Compile Include="ConstructorImplementer.cs" /> + <Compile Include="DisposeImplementer.cs" /> + <Compile Include="ForkGroup.cs" /> + <Compile Include="ForkImplementer.cs" /> + <Compile Include="JoinGroup.cs" /> + <Compile Include="JoinImplementer.cs" /> + <Compile Include="ParallelizationFactory.cs" /> + <Compile Include="TypeParallelizer.cs" /> + <Compile Include="YieldImplementer.cs" /> + <Compile Include="YieldInfo.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Chord.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Fork.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Join.cs" /> + <Compile Include="TypeAnalyzer\TypeAnalyzer.Yield.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Framework\Framework.csproj"> + <Project>{C3A4C3E4-B54C-43C1-9ABB-1473FB1DBFEC}</Project> + <Name>Framework</Name> + </ProjectReference> + <ProjectReference Include="..\Runtime\Runtime.csproj"> + <Project>{16351C71-CBD2-44FE-A6A1-61065464C732}</Project> + <Name>Runtime</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ProjectExtensions> + <MonoDevelop> + <Properties> + <Deployment.LinuxDeployData generatePcFile="false" /> + <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile" SyncReferences="true"> + <BuildFilesVar Sync="true" Name="FILES" /> + <DeployFilesVar /> + <ResourcesVar Sync="true" Name="RESOURCES" /> + <OthersVar /> + <GacRefVar Sync="true" Name="REFERENCES" /> + <AsmRefVar Sync="true" Name="REFERENCES" /> + <ProjectRefVar Sync="true" Name="REFERENCES" /> + </MonoDevelop.Autotools.MakefileInfo> + </Properties> + </MonoDevelop> + </ProjectExtensions> +</Project> \ No newline at end of file Deleted: trunk/Emitter/Emitter.mdp =================================================================== --- trunk/Emitter/Emitter.mdp 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Emitter/Emitter.mdp 2009-12-03 01:40:40 UTC (rev 106) @@ -1,51 +0,0 @@ -<Project name="Emitter" fileversion="2.0" language="C#" clr-version="Net_2_0" targetFramework="2.0" ctype="DotNetProject"> - <Configurations active="Debug"> - <Configuration name="Debug" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Debug" assembly="Emitter" /> - <Build debugmode="True" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - <Configuration name="Release" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Release" assembly="Emitter" /> - <Build debugmode="False" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - </Configurations> - <Contents> - <File name="Properties/AssemblyInfo.cs" subtype="Code" buildaction="Compile" /> - <File name="AssemblyParallelizer.cs" subtype="Code" buildaction="Compile" /> - <File name="ChordImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="ChordInfo.cs" subtype="Code" buildaction="Compile" /> - <File name="ForkGroup.cs" subtype="Code" buildaction="Compile" /> - <File name="ForkImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="JoinGroup.cs" subtype="Code" buildaction="Compile" /> - <File name="ParallelizationFactory.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeParallelizer.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeAnalyzer/TypeAnalyzer.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeAnalyzer/TypeAnalyzer.Fork.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeAnalyzer/TypeAnalyzer.Chord.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeAnalyzer/TypeAnalyzer.Join.cs" subtype="Code" buildaction="Compile" /> - <File name="JoinImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="ChannelImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="TypeAnalyzer/TypeAnalyzer.Yield.cs" subtype="Code" buildaction="Compile" /> - <File name="YieldInfo.cs" subtype="Code" buildaction="Compile" /> - <File name="YieldImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="ConstructorImplementer.cs" subtype="Code" buildaction="Compile" /> - <File name="DisposeImplementer.cs" subtype="Code" buildaction="Compile" /> - </Contents> - <References> - <ProjectReference type="Assembly" localcopy="True" refto="../bin/Fmacj.Runtime.dll" /> - <ProjectReference type="Assembly" localcopy="True" refto="../bin/Fmacj.Framework.dll" /> - </References> - <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="Makefile" SyncReferences="True"> - <BuildFilesVar Sync="True" Name="FILES" /> - <DeployFilesVar /> - <ResourcesVar /> - <OthersVar /> - <GacRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <AsmRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <ProjectRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - </MonoDevelop.Autotools.MakefileInfo> -</Project> \ No newline at end of file Deleted: trunk/Emitter/Fmacj.Emitter.csproj =================================================================== --- trunk/Emitter/Fmacj.Emitter.csproj 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Emitter/Fmacj.Emitter.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.30729</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{1EF044B4-BEB8-4898-A16B-59F73BA0CA0D}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Fmacj.Emitter</RootNamespace> - <AssemblyName>Fmacj.Emitter</AssemblyName> - <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core"> - <RequiredTargetFramework>3.5</RequiredTargetFramework> - </Reference> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="AssemblyParallelizer.cs" /> - <Compile Include="ChannelImplementer.cs" /> - <Compile Include="ChordImplementer.cs" /> - <Compile Include="ChordInfo.cs" /> - <Compile Include="ConstructorImplementer.cs" /> - <Compile Include="DisposeImplementer.cs" /> - <Compile Include="ForkGroup.cs" /> - <Compile Include="ForkImplementer.cs" /> - <Compile Include="JoinGroup.cs" /> - <Compile Include="JoinImplementer.cs" /> - <Compile Include="ParallelizationFactory.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="TypeAnalyzer\TypeAnalyzer.Chord.cs" /> - <Compile Include="TypeAnalyzer\TypeAnalyzer.cs" /> - <Compile Include="TypeAnalyzer\TypeAnalyzer.Fork.cs" /> - <Compile Include="TypeAnalyzer\TypeAnalyzer.Join.cs" /> - <Compile Include="TypeAnalyzer\TypeAnalyzer.Yield.cs" /> - <Compile Include="TypeParallelizer.cs" /> - <Compile Include="YieldImplementer.cs" /> - <Compile Include="YieldInfo.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Runtime\Fmacj.Runtime.csproj"> - <Project>{B8D09CBB-91D0-4119-829F-FE0698396B23}</Project> - <Name>Fmacj.Runtime</Name> - </ProjectReference> - <ProjectReference Include="..\Framework\Fmacj.Framework.csproj"> - <Project>{A3421000-CF97-4434-82D1-E5C2ECFD6678}</Project> - <Name>Fmacj.Framework</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file Modified: trunk/Emitter/Makefile =================================================================== --- trunk/Emitter/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Emitter/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -1,5 +1,70 @@ -ASSEMBLY = ../bin/Fmacj.Emitter.dll +EXTRA_DIST = Makefile + +# Warning: This is an automatically generated file, do not edit! + +srcdir=. +top_srcdir=.. + +include $(top_srcdir)/config.make + +ifeq ($(CONFIG),DEBUG) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG" +ASSEMBLY = bin/Debug/Emitter.dll +ASSEMBLY_MDB = $(ASSEMBLY).mdb +COMPILE_TARGET = library +PROJECT_REFERENCES = \ + ../Framework/bin/Debug/Framework.dll \ + ../Runtime/bin/Debug/Runtime.dll +BUILD_DIR = bin/Debug + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Debug/Framework.dll +FRAMEWORK_DLL_MDB_SOURCE=../Framework/bin/Debug/Framework.dll.mdb +FRAMEWORK_DLL_MDB=$(BUILD_DIR)/Framework.dll.mdb +RUNTIME_DLL_SOURCE=../Runtime/bin/Debug/Runtime.dll +RUNTIME_DLL_MDB_SOURCE=../Runtime/bin/Debug/Runtime.dll.mdb +RUNTIME_DLL_MDB=$(BUILD_DIR)/Runtime.dll.mdb +EMITTER_DLL_MDB_SOURCE=bin/Debug/Emitter.dll.mdb +EMITTER_DLL_MDB=$(BUILD_DIR)/Emitter.dll.mdb + +endif + +ifeq ($(CONFIG),RELEASE) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- +ASSEMBLY = bin/Release/Emitter.dll +ASSEMBLY_MDB = +COMPILE_TARGET = library +PROJECT_REFERENCES = \ + ../Framework/bin/Release/Framework.dll \ + ../Runtime/bin/Release/Runtime.dll +BUILD_DIR = bin/Release + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Release/Framework.dll +FRAMEWORK_DLL_MDB= +RUNTIME_DLL_SOURCE=../Runtime/bin/Release/Runtime.dll +RUNTIME_DLL_MDB= +EMITTER_DLL_MDB= + +endif + +AL=al2 +SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll + +PROGRAMFILES = \ + $(FRAMEWORK_DLL) \ + $(FRAMEWORK_DLL_MDB) \ + $(RUNTIME_DLL) \ + $(RUNTIME_DLL_MDB) \ + $(EMITTER_DLL_MDB) + + +RESGEN=resgen2 + +FRAMEWORK_DLL = $(BUILD_DIR)/Framework.dll +RUNTIME_DLL = $(BUILD_DIR)/Runtime.dll + FILES = \ AssemblyParallelizer.cs \ ChannelImplementer.cs \ @@ -20,18 +85,77 @@ TypeAnalyzer/TypeAnalyzer.Yield.cs \ TypeParallelizer.cs \ YieldImplementer.cs \ - YieldInfo.cs + YieldInfo.cs +DATA_FILES = + +RESOURCES = + +EXTRAS = + REFERENCES = \ - -r:../bin/Fmacj.Framework.dll \ - -r:../bin/Fmacj.Runtime.dll + ../Framework/bin/Debug/Framework.dll \ + ../Runtime/bin/Debug/Runtime.dll \ + System -all: $(ASSEMBLY) +DLL_REFERENCES = -$(ASSEMBLY): $(FILES) - gmcs -out:$(ASSEMBLY) $(REFERENCES) -target:library -d:DEBUG -debug $(FILES) +CLEANFILES = $(PROGRAMFILES) -clean: - -rm -vf $(ASSEMBLY)* +#Targets +all: $(ASSEMBLY) $(PROGRAMFILES) $(top_srcdir)/config.make -new: clean all +include $(top_srcdir)/Makefile.include +#include $(srcdir)/custom-hooks.make + + + +$(eval $(call emit-deploy-target,FRAMEWORK_DLL)) +$(eval $(call emit-deploy-target,FRAMEWORK_DLL_MDB)) +$(eval $(call emit-deploy-target,RUNTIME_DLL)) +$(eval $(call emit-deploy-target,RUNTIME_DLL_MDB)) + + +$(eval $(call emit_resgen_targets)) +$(build_xamlg_list): %.xaml.g.cs: %.xaml + xamlg '$<' + + +$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) + make pre-all-local-hook prefix=$(prefix) + mkdir -p $(shell dirname $(ASSEMBLY)) + make $(CONFIG)_BeforeBuild + $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) + make $(CONFIG)_AfterBuild + make post-all-local-hook prefix=$(prefix) + +install-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-install-local-hook prefix=$(prefix) + make install-satellite-assemblies prefix=$(prefix) + mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' + $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(RUNTIME_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(RUNTIME_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(EMITTER_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-install-local-hook prefix=$(prefix) + +uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-uninstall-local-hook prefix=$(prefix) + make uninstall-satellite-assemblies prefix=$(prefix) + $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(FRAMEWORK_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(FRAMEWORK_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(RUNTIME_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(RUNTIME_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(EMITTER_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-uninstall-local-hook prefix=$(prefix) + +install: install-local +uninstall: uninstall-local +clean: clean-local + +include $(top_srcdir)/rules.make Added: trunk/Emitter/emitter.pc.in =================================================================== --- trunk/Emitter/emitter.pc.in (rev 0) +++ trunk/Emitter/emitter.pc.in 2009-12-03 01:40:40 UTC (rev 106) @@ -0,0 +1,6 @@ +Name: Emitter +Description: Emitter +Version: 0.1 + +Requires: +Libs: -r:@expanded_libdir@/@PACKAGE@/Emitter.dll Modified: trunk/Examples.ChaoticPendulum/ChaoticPendulum.Core/Makefile =================================================================== --- trunk/Examples.ChaoticPendulum/ChaoticPendulum.Core/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.ChaoticPendulum/ChaoticPendulum.Core/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -49,14 +49,14 @@ CHAOTICPENDULUM_CORE_PC = $(BUILD_DIR)/chaoticpendulum.core.pc -FILES = \ +FILES = \ + Particle.cs \ + Vector2D.cs \ Attractor.cs \ AttractorSet.cs \ - FluidFriction.cs \ + Pendulum.cs \ Friction.cs \ - Particle.cs \ - Pendulum.cs \ - Vector2D.cs + FluidFriction.cs DATA_FILES = @@ -65,7 +65,8 @@ EXTRAS = \ chaoticpendulum.core.pc.in -REFERENCES = System.Core +REFERENCES = \ + System.Core DLL_REFERENCES = @@ -101,9 +102,9 @@ mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) mkdir -p '$(DESTDIR)$(libdir)/pkgconfig' $(call cp,$(CHAOTICPENDULUM_CORE_PC),$(DESTDIR)$(libdir)/pkgconfig) - $(call cp,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) make post-install-local-hook prefix=$(prefix) uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) @@ -111,8 +112,8 @@ make uninstall-satellite-assemblies prefix=$(prefix) $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(CHAOTICPENDULUM_CORE_PC),$(DESTDIR)$(libdir)/pkgconfig) - $(call rm,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) make post-uninstall-local-hook prefix=$(prefix) install: install-local Modified: trunk/Examples.ChaoticPendulum/ChaoticPendulum.Frontend.Gtk/Makefile =================================================================== --- trunk/Examples.ChaoticPendulum/ChaoticPendulum.Frontend.Gtk/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.ChaoticPendulum/ChaoticPendulum.Frontend.Gtk/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -19,14 +19,10 @@ ../ChaoticPendulum.Visualization/bin/Debug/ChaoticPendulum.Visualization.dll BUILD_DIR = bin/Debug +CHAOTICPENDULUM_CORE_DLL_SOURCE=../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll +CHAOTICPENDULUM_VISUALIZATION_DLL_SOURCE=../ChaoticPendulum.Visualization/bin/Debug/ChaoticPendulum.Visualization.dll CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB_SOURCE=bin/Debug/ChaoticPendulum.Frontend.Gtk.exe.mdb CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB=$(BUILD_DIR)/ChaoticPendulum.Frontend.Gtk.exe.mdb -CHAOTICPENDULUM_CORE_DLL_MDB_SOURCE=../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll.mdb -CHAOTICPENDULUM_CORE_DLL_MDB=$(BUILD_DIR)/ChaoticPendulum.Core.dll.mdb -CHAOTICPENDULUM_VISUALIZATION_DLL_SOURCE=../ChaoticPendulum.Visualization/bin/Debug/ChaoticPendulum.Visualization.dll -CHAOTICPENDULUM_CORE_DLL_SOURCE=../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll -CHAOTICPENDULUM_VISUALIZATION_DLL_MDB_SOURCE=../ChaoticPendulum.Visualization/bin/Debug/ChaoticPendulum.Visualization.dll.mdb -CHAOTICPENDULUM_VISUALIZATION_DLL_MDB=$(BUILD_DIR)/ChaoticPendulum.Visualization.dll.mdb endif @@ -41,11 +37,9 @@ ../ChaoticPendulum.Visualization/bin/Release/ChaoticPendulum.Visualization.dll BUILD_DIR = bin/Release -CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB= -CHAOTICPENDULUM_CORE_DLL_MDB= -CHAOTICPENDULUM_VISUALIZATION_DLL_SOURCE=../ChaoticPendulum.Visualization/bin/Release/ChaoticPendulum.Visualization.dll CHAOTICPENDULUM_CORE_DLL_SOURCE=../ChaoticPendulum.Core/bin/Release/ChaoticPendulum.Core.dll -CHAOTICPENDULUM_VISUALIZATION_DLL_MDB= +CHAOTICPENDULUM_VISUALIZATION_DLL_SOURCE=../ChaoticPendulum.Visualization/bin/Release/ChaoticPendulum.Visualization.dll +CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB= endif @@ -53,40 +47,37 @@ SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll PROGRAMFILES = \ - $(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB) \ - $(CHAOTICPENDULUM_CORE_DLL_MDB) \ - $(CHAOTICPENDULUM_VISUALIZATION_DLL) \ $(CHAOTICPENDULUM_CORE_DLL) \ - $(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB) + $(CHAOTICPENDULUM_VISUALIZATION_DLL) \ + $(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB) RESGEN=resgen2 -CHAOTICPENDULUM_VISUALIZATION_DLL = $(BUILD_DIR)/ChaoticPendulum.Visualization.dll CHAOTICPENDULUM_CORE_DLL = $(BUILD_DIR)/ChaoticPendulum.Core.dll +CHAOTICPENDULUM_VISUALIZATION_DLL = $(BUILD_DIR)/ChaoticPendulum.Visualization.dll -FILES = \ - AssemblyInfo.cs \ +FILES = \ gtk-gui/generated.cs \ + MainWindow.cs \ gtk-gui/MainWindow.cs \ Main.cs \ - MainWindow.cs + AssemblyInfo.cs DATA_FILES = -RESOURCES = gtk-gui/gui.stetic +RESOURCES = \ + gtk-gui/gui.stetic EXTRAS = REFERENCES = \ - ../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll \ - ../ChaoticPendulum.Visualization/bin/Debug/ChaoticPendulum.Visualization.dll \ - Mono.Posix \ - -pkg:glade-sharp-2.0 \ + System \ + -pkg:gtk-sharp-2.0 \ -pkg:glib-sharp-2.0 \ + -pkg:glade-sharp-2.0 \ + Mono.Posix \ -pkg:gtk-dotnet-2.0 \ - -pkg:gtk-sharp-2.0 \ - System \ System.Drawing DLL_REFERENCES = @@ -101,10 +92,8 @@ -$(eval $(call emit-deploy-target,CHAOTICPENDULUM_CORE_DLL_MDB)) -$(eval $(call emit-deploy-target,CHAOTICPENDULUM_VISUALIZATION_DLL)) $(eval $(call emit-deploy-target,CHAOTICPENDULUM_CORE_DLL)) -$(eval $(call emit-deploy-target,CHAOTICPENDULUM_VISUALIZATION_DLL_MDB)) +$(eval $(call emit-deploy-target,CHAOTICPENDULUM_VISUALIZATION_DLL)) $(eval $(call emit_resgen_targets)) @@ -126,11 +115,9 @@ mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(CHAOTICPENDULUM_CORE_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) make post-install-local-hook prefix=$(prefix) uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) @@ -138,11 +125,9 @@ make uninstall-satellite-assemblies prefix=$(prefix) $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(CHAOTICPENDULUM_CORE_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(CHAOTICPENDULUM_FRONTEND_GTK_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) make post-uninstall-local-hook prefix=$(prefix) install: install-local Modified: trunk/Examples.ChaoticPendulum/ChaoticPendulum.Visualization/Makefile =================================================================== --- trunk/Examples.ChaoticPendulum/ChaoticPendulum.Visualization/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.ChaoticPendulum/ChaoticPendulum.Visualization/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -18,8 +18,6 @@ ../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll BUILD_DIR = bin/Debug -CHAOTICPENDULUM_CORE_DLL_MDB_SOURCE=../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll.mdb -CHAOTICPENDULUM_CORE_DLL_MDB=$(BUILD_DIR)/ChaoticPendulum.Core.dll.mdb CHAOTICPENDULUM_CORE_DLL_SOURCE=../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll CHAOTICPENDULUM_VISUALIZATION_DLL_MDB_SOURCE=bin/Debug/ChaoticPendulum.Visualization.dll.mdb CHAOTICPENDULUM_VISUALIZATION_DLL_MDB=$(BUILD_DIR)/ChaoticPendulum.Visualization.dll.mdb @@ -36,7 +34,6 @@ ../ChaoticPendulum.Core/bin/Release/ChaoticPendulum.Core.dll BUILD_DIR = bin/Release -CHAOTICPENDULUM_CORE_DLL_MDB= CHAOTICPENDULUM_CORE_DLL_SOURCE=../ChaoticPendulum.Core/bin/Release/ChaoticPendulum.Core.dll CHAOTICPENDULUM_VISUALIZATION_DLL_MDB= @@ -46,7 +43,6 @@ SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll PROGRAMFILES = \ - $(CHAOTICPENDULUM_CORE_DLL_MDB) \ $(CHAOTICPENDULUM_CORE_DLL) \ $(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB) @@ -56,10 +52,11 @@ RESGEN=resgen2 -CHAOTICPENDULUM_VISUALIZATION_PC = $(BUILD_DIR)/chaoticpendulum.visualization.pc CHAOTICPENDULUM_CORE_DLL = $(BUILD_DIR)/ChaoticPendulum.Core.dll +CHAOTICPENDULUM_VISUALIZATION_PC = $(BUILD_DIR)/chaoticpendulum.visualization.pc -FILES = TrajectoryGraph.cs +FILES = \ + TrajectoryGraph.cs DATA_FILES = @@ -69,7 +66,6 @@ chaoticpendulum.visualization.pc.in REFERENCES = \ - ../ChaoticPendulum.Core/bin/Debug/ChaoticPendulum.Core.dll \ System.Drawing DLL_REFERENCES = @@ -84,9 +80,8 @@ -$(eval $(call emit-deploy-wrapper,CHAOTICPENDULUM_VISUALIZATION_PC,chaoticpendulum.visualization.pc)) -$(eval $(call emit-deploy-target,CHAOTICPENDULUM_CORE_DLL_MDB)) $(eval $(call emit-deploy-target,CHAOTICPENDULUM_CORE_DLL)) +$(eval $(call emit-deploy-wrapper,CHAOTICPENDULUM_VISUALIZATION_PC,chaoticpendulum.visualization.pc)) $(eval $(call emit_resgen_targets)) @@ -108,11 +103,10 @@ mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - mkdir -p '$(DESTDIR)$(libdir)/pkgconfig' - $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_PC),$(DESTDIR)$(libdir)/pkgconfig) - $(call cp,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(CHAOTICPENDULUM_CORE_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + mkdir -p '$(DESTDIR)$(libdir)/pkgconfig' + $(call cp,$(CHAOTICPENDULUM_VISUALIZATION_PC),$(DESTDIR)$(libdir)/pkgconfig) make post-install-local-hook prefix=$(prefix) uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) @@ -120,10 +114,9 @@ make uninstall-satellite-assemblies prefix=$(prefix) $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) - $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_PC),$(DESTDIR)$(libdir)/pkgconfig) - $(call rm,$(CHAOTICPENDULUM_CORE_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(CHAOTICPENDULUM_CORE_DLL),$(DESTDIR)$(libdir)/$(PACKAGE)) $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_DLL_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(CHAOTICPENDULUM_VISUALIZATION_PC),$(DESTDIR)$(libdir)/pkgconfig) make post-uninstall-local-hook prefix=$(prefix) install: install-local Modified: trunk/Examples.ChaoticPendulum/Makefile.include =================================================================== --- trunk/Examples.ChaoticPendulum/Makefile.include 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.ChaoticPendulum/Makefile.include 2009-12-03 01:40:40 UTC (rev 106) @@ -1,4 +1,4 @@ -VALID_CULTURES = ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT +VALID_CULTURES = ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO en-TT es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT s2q=$(subst \ ,?,$1) q2s=$(subst ?,\ ,$1) Modified: trunk/Examples.ChaoticPendulum/configure =================================================================== --- trunk/Examples.ChaoticPendulum/configure 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.ChaoticPendulum/configure 2009-12-03 01:40:40 UTC (rev 106) @@ -3,8 +3,8 @@ PACKAGE=chaoticpendulum prefix=/usr/local config=DEBUG -configurations=" RELEASE DEBUG" -common_packages=" glade-sharp-2.0;2.12.8 glib-sharp-2.0;2.12.8 gtk-dotnet-2.0;2.12.8 gtk-sharp-2.0;2.12.8" +configurations=" DEBUG RELEASE" +common_packages=" glade-sharp-2.0;2.12.9 glib-sharp-2.0;2.12.9 gtk-dotnet-2.0;2.12.9 gtk-sharp-2.0;2.12.9" usage () Added: trunk/Examples.Mandelbrot/Examples.Mandelbrot.csproj =================================================================== --- trunk/Examples.Mandelbrot/Examples.Mandelbrot.csproj (rev 0) +++ trunk/Examples.Mandelbrot/Examples.Mandelbrot.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{F7D3F51B-4185-47C1-92D1-BDCE400EF374}</ProjectGuid> + <OutputType>Exe</OutputType> + <AssemblyName>Examples.Mandelbrot</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Compile Include="Main.cs" /> + <Compile Include="Mandelbrot.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System.Drawing" /> + <Reference Include="System.Core" /> + <Reference Include="System" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Framework\Framework.csproj"> + <Project>{C3A4C3E4-B54C-43C1-9ABB-1473FB1DBFEC}</Project> + <Name>Framework</Name> + </ProjectReference> + <ProjectReference Include="..\Emitter\Emitter.csproj"> + <Project>{D3264B1D-ADEB-4DFC-BCDC-FF5CE6E701BC}</Project> + <Name>Emitter</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ProjectExtensions> + <MonoDevelop> + <Properties InternalTargetFrameworkVersion="3.5"> + <Deployment.LinuxDeployData generateScript="false" scriptName="mandelbrot" /> + <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile" SyncReferences="true"> + <BuildFilesVar Sync="true" Name="FILES" /> + <DeployFilesVar /> + <ResourcesVar Sync="true" Name="RESOURCES" /> + <OthersVar /> + <GacRefVar Sync="true" Name="REFERENCES" /> + <AsmRefVar Sync="true" Name="REFERENCES" /> + <ProjectRefVar Sync="true" Name="REFERENCES" /> + </MonoDevelop.Autotools.MakefileInfo> + </Properties> + </MonoDevelop> + </ProjectExtensions> +</Project> \ No newline at end of file Deleted: trunk/Examples.Mandelbrot/Examples.Mandelbrot.mdp =================================================================== --- trunk/Examples.Mandelbrot/Examples.Mandelbrot.mdp 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.Mandelbrot/Examples.Mandelbrot.mdp 2009-12-03 01:40:40 UTC (rev 106) @@ -1,35 +0,0 @@ -<Project name="Examples.Mandelbrot" fileversion="2.0" language="C#" clr-version="Net_2_0" targetFramework="2.0" ctype="DotNetProject"> - <Configurations active="Debug"> - <Configuration name="Debug" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Debug" assembly="Examples.Mandelbrot" /> - <Build debugmode="True" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - <Configuration name="Release" ctype="DotNetProjectConfiguration"> - <Output directory="bin/Release" assembly="Examples.Mandelbrot" /> - <Build debugmode="False" target="Exe" /> - <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> - <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> - </Configuration> - </Configurations> - <Contents> - <File name="Main.cs" subtype="Code" buildaction="Compile" /> - <File name="Properties/AssemblyInfo.cs" subtype="Code" buildaction="Compile" /> - <File name="Mandelbrot.cs" subtype="Code" buildaction="Compile" /> - </Contents> - <References> - <ProjectReference type="Assembly" localcopy="True" refto="../bin/Fmacj.Framework.dll" /> - <ProjectReference type="Assembly" localcopy="True" refto="../bin/Fmacj.Emitter.dll" /> - <ProjectReference type="Gac" localcopy="True" refto="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - </References> - <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="Makefile" SyncReferences="True"> - <BuildFilesVar Sync="True" Name="FILES" /> - <DeployFilesVar /> - <ResourcesVar /> - <OthersVar /> - <GacRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <AsmRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - <ProjectRefVar Sync="True" Name="REFERENCES" Prefix="-r:" /> - </MonoDevelop.Autotools.MakefileInfo> -</Project> \ No newline at end of file Deleted: trunk/Examples.Mandelbrot/Fmacj.Examples.Mandelbrot.csproj =================================================================== --- trunk/Examples.Mandelbrot/Fmacj.Examples.Mandelbrot.csproj 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.Mandelbrot/Fmacj.Examples.Mandelbrot.csproj 2009-12-03 01:40:40 UTC (rev 106) @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.30729</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{2C87955C-86A3-4D32-A021-6E2A39D2340F}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Fmacj.Examples.Mandelbrot</RootNamespace> - <AssemblyName>Fmacj.Examples.Mandelbrot</AssemblyName> - <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> - <ItemGroup> - <Compile Include="Main.cs" /> - <Compile Include="Mandelbrot.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Emitter\Fmacj.Emitter.csproj"> - <Project>{1EF044B4-BEB8-4898-A16B-59F73BA0CA0D}</Project> - <Name>Fmacj.Emitter</Name> - </ProjectReference> - <ProjectReference Include="..\Framework\Fmacj.Framework.csproj"> - <Project>{A3421000-CF97-4434-82D1-E5C2ECFD6678}</Project> - <Name>Fmacj.Framework</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core"> - <RequiredTargetFramework>3.5</RequiredTargetFramework> - </Reference> - <Reference Include="System.Data" /> - <Reference Include="System.Drawing" /> - <Reference Include="System.XML" /> - </ItemGroup> -</Project> \ No newline at end of file Modified: trunk/Examples.Mandelbrot/Makefile =================================================================== --- trunk/Examples.Mandelbrot/Makefile 2009-11-27 06:09:04 UTC (rev 105) +++ trunk/Examples.Mandelbrot/Makefile 2009-12-03 01:40:40 UTC (rev 106) @@ -1,21 +1,160 @@ -ASSEMBLY = ../bin/Fmacj.Examples.Mandelbrot.exe +EXTRA_DIST = Makefile + +# Warning: This is an automatically generated file, do not edit! + +srcdir=. +top_srcdir=.. + +include $(top_srcdir)/config.make + +ifeq ($(CONFIG),DEBUG) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG" +ASSEMBLY = bin/Debug/Examples.Mandelbrot.exe +ASSEMBLY_MDB = $(ASSEMBLY).mdb +COMPILE_TARGET = exe +PROJECT_REFERENCES = \ + ../Framework/bin/Debug/Framework.dll \ + ../Emitter/bin/Debug/Emitter.dll +BUILD_DIR = bin/Debug + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Debug/Framework.dll +FRAMEWORK_DLL_MDB_SOURCE=../Framework/bin/Debug/Framework.dll.mdb +FRAMEWORK_DLL_MDB=$(BUILD_DIR)/Framework.dll.mdb +EMITTER_DLL_SOURCE=../Emitter/bin/Debug/Emitter.dll +RUNTIME_DLL_SOURCE=../Runtime/bin/Debug/Runtime.dll +RUNTIME_DLL_MDB_SOURCE=../Runtime/bin/Debug/Runtime.dll.mdb +RUNTIME_DLL_MDB=$(BUILD_DIR)/Runtime.dll.mdb +EMITTER_DLL_MDB_SOURCE=../Emitter/bin/Debug/Emitter.dll.mdb +EMITTER_DLL_MDB=$(BUILD_DIR)/Emitter.dll.mdb +EXAMPLES_MANDELBROT_EXE_MDB_SOURCE=bin/Debug/Examples.Mandelbrot.exe.mdb +EXAMPLES_MANDELBROT_EXE_MDB=$(BUILD_DIR)/Examples.Mandelbrot.exe.mdb + +endif + +ifeq ($(CONFIG),RELEASE) +ASSEMBLY_COMPILER_COMMAND = gmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- +ASSEMBLY = bin/Release/Examples.Mandelbrot.exe +ASSEMBLY_MDB = +COMPILE_TARGET = exe +PROJECT_REFERENCES = \ + ../Framework/bin/Release/Framework.dll \ + ../Emitter/bin/Release/Emitter.dll +BUILD_DIR = bin/Release + +FRAMEWORK_DLL_SOURCE=../Framework/bin/Release/Framework.dll +FRAMEWORK_DLL_MDB= +EMITTER_DLL_SOURCE=../Emitter/bin/Release/Emitter.dll +RUNTIME_DLL_SOURCE=../Runtime/bin/Release/Runtime.dll +RUNTIME_DLL_MDB= +EMITTER_DLL_MDB= +EXAMPLES_MANDELBROT_EXE_MDB= + +endif + +AL=al2 +SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll + +PROGRAMFILES = \ + $(FRAMEWORK_DLL) \ + $(FRAMEWORK_DLL_MDB) \ + $(EMITTER_DLL) \ + $(RUNTIME_DLL) \ + $(RUNTIME_DLL_MDB) \ + $(EMITTER_DLL_MDB) \ + $(EXAMPLES_MANDELBROT_EXE_MDB) + + +RESGEN=resgen2 + +FRAMEWORK_DLL = $(BUILD_DIR)/Framework.dll +EMITTER_DLL = $(BUILD_DIR)/Emitter.dll +RUNTIME_DLL = $(BUILD_DIR)/Runtime.dll + FILES = \ Main.cs \ Mandelbrot.cs \ - Properties/AssemblyInfo.cs + Properties/AssemblyInfo.cs +DATA_FILES = + +RESOURCES = + +EXTRAS = + REFERENCES = \ - -r:../bin/Fmacj.Emitter.dll \ - -r:../bin/Fmacj.Framework.dll \ - -r:System.Drawing + ../Emitter/bin/Debug/Emitter.dll \ + ../Framework/bin/Debug/Framework.dll \ + System \ + System.Core \ + System.Drawing -all: $(ASSEMBLY) +DLL_REFERENCES = -$(ASSEMBLY): $(FILES) - gmcs -out:$(ASSEMBLY) $(REFERENCES) -target:exe -d:DEBUG -debug $(FILES) +CLEANFILES = $(PROGRAMFILES) -clean: - -rm -vf $(ASSEMBLY)* +#Targets +all: $(ASSEMBLY) $(PROGRAMFILES) $(top_srcdir)/config.make -new: clean all +include $(top_srcdir)/Makefile.include +#include $(srcdir)/custom-hooks.make + + + +$(eval $(call emit-deploy-target,FRAMEWORK_DLL)) +$(eval $(call emit-deploy-target,FRAMEWORK_DLL_MDB)) +$(eval $(call emit-deploy-target,EMITTER_DLL)) +$(eval $(call emit-deploy-target,RUNTIME_DLL)) +$(eval $(call emit-deploy-target,RUNTIME_DLL_MDB)) +$(eval $(call emit-deploy-target,EMITTER_DLL_MDB)) + + +$(eval $(call emit_resgen_targets)) +$(build_xamlg_list): %.xaml.g.cs... [truncated message content] |
From: <noa...@us...> - 2009-11-27 06:09:13
|
Revision: 105 http://fmacj.svn.sourceforge.net/fmacj/?rev=105&view=rev Author: noah1989 Date: 2009-11-27 06:09:04 +0000 (Fri, 27 Nov 2009) Log Message: ----------- added stuff to .gitignore Conflicts: .gitignore Added Paths: ----------- trunk/.gitignore Added: trunk/.gitignore =================================================================== --- trunk/.gitignore (rev 0) +++ trunk/.gitignore 2009-11-27 06:09:04 UTC (rev 105) @@ -0,0 +1,6 @@ +bin/* +*.pidb +*.userprefs +*.usertasks +Tests/C:\\NUnitPrimaryTrace.txt +Tests/TestResult.xml This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 05:15:31
|
Revision: 104 http://fmacj.svn.sourceforge.net/fmacj/?rev=104&view=rev Author: noah1989 Date: 2009-11-27 05:15:24 +0000 (Fri, 27 Nov 2009) Log Message: ----------- updated README.git Modified Paths: -------------- trunk/README.git Modified: trunk/README.git =================================================================== --- trunk/README.git 2009-11-27 05:07:50 UTC (rev 103) +++ trunk/README.git 2009-11-27 05:15:24 UTC (rev 104) @@ -1,4 +1,5 @@ -pushing to gi...@no...:fmacj will commit changes to svn on sourceforge +Pushing to gi...@no...:fmacj will commit changes to svn on SourceForge. +Changes directly commited to svn will not appear in git and can cause trouble. Host key fingerprint is e4:d2:b0:49:5d:dc:84:b1:76:72:ac:3e:91:03:e4:4b +--[ RSA 2048]----+ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 05:07:56
|
Revision: 103 http://fmacj.svn.sourceforge.net/fmacj/?rev=103&view=rev Author: noah1989 Date: 2009-11-27 05:07:50 +0000 (Fri, 27 Nov 2009) Log Message: ----------- removed test files Removed Paths: ------------- trunk/rename_blabla trunk/test.bla_rename2 Deleted: trunk/rename_blabla =================================================================== --- trunk/rename_blabla 2009-11-27 05:06:31 UTC (rev 102) +++ trunk/rename_blabla 2009-11-27 05:07:50 UTC (rev 103) @@ -1 +0,0 @@ -blablablabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 05:06:37
|
Revision: 102 http://fmacj.svn.sourceforge.net/fmacj/?rev=102&view=rev Author: noah1989 Date: 2009-11-27 05:06:31 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Added Paths: ----------- trunk/test.bla_rename2 Removed Paths: ------------- trunk/test.bla trunk/test.bla_rename This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 05:03:49
|
Revision: 101 http://fmacj.svn.sourceforge.net/fmacj/?rev=101&view=rev Author: noah1989 Date: 2009-11-27 05:03:41 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Added Paths: ----------- trunk/test.bla_rename This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 05:02:34
|
Revision: 100 http://fmacj.svn.sourceforge.net/fmacj/?rev=100&view=rev Author: noah1989 Date: 2009-11-27 05:02:26 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Added Paths: ----------- trunk/rename_blabla trunk/test.bla Added: trunk/rename_blabla =================================================================== --- trunk/rename_blabla (rev 0) +++ trunk/rename_blabla 2009-11-27 05:02:26 UTC (rev 100) @@ -0,0 +1 @@ +blablablabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 04:59:52
|
Revision: 99 http://fmacj.svn.sourceforge.net/fmacj/?rev=99&view=rev Author: noah1989 Date: 2009-11-27 04:59:45 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Removed Paths: ------------- trunk/more_testing trunk/more_testing_rename Deleted: trunk/more_testing =================================================================== --- trunk/more_testing 2009-11-27 04:49:40 UTC (rev 98) +++ trunk/more_testing 2009-11-27 04:59:45 UTC (rev 99) @@ -1 +0,0 @@ -bla Deleted: trunk/more_testing_rename =================================================================== --- trunk/more_testing_rename 2009-11-27 04:49:40 UTC (rev 98) +++ trunk/more_testing_rename 2009-11-27 04:59:45 UTC (rev 99) @@ -1 +0,0 @@ -blablablabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 04:49:49
|
Revision: 98 http://fmacj.svn.sourceforge.net/fmacj/?rev=98&view=rev Author: noah1989 Date: 2009-11-27 04:49:40 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Modified Paths: -------------- trunk/more_testing_rename Modified: trunk/more_testing_rename =================================================================== --- trunk/more_testing_rename 2009-11-27 04:25:06 UTC (rev 97) +++ trunk/more_testing_rename 2009-11-27 04:49:40 UTC (rev 98) @@ -1 +1 @@ -bla +blablablabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 04:25:12
|
Revision: 97 http://fmacj.svn.sourceforge.net/fmacj/?rev=97&view=rev Author: noah1989 Date: 2009-11-27 04:25:06 +0000 (Fri, 27 Nov 2009) Log Message: ----------- Merge branch 'master' of klusteris:fmacj Added Paths: ----------- trunk/more_testing_rename Added: trunk/more_testing_rename =================================================================== --- trunk/more_testing_rename (rev 0) +++ trunk/more_testing_rename 2009-11-27 04:25:06 UTC (rev 97) @@ -0,0 +1 @@ +bla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 04:06:43
|
Revision: 96 http://fmacj.svn.sourceforge.net/fmacj/?rev=96&view=rev Author: noah1989 Date: 2009-11-27 04:06:35 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test.. Added Paths: ----------- trunk/more_testing Removed Paths: ------------- trunk/testing_rename Added: trunk/more_testing =================================================================== --- trunk/more_testing (rev 0) +++ trunk/more_testing 2009-11-27 04:06:35 UTC (rev 96) @@ -0,0 +1 @@ +bla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 03:39:18
|
Revision: 95 http://fmacj.svn.sourceforge.net/fmacj/?rev=95&view=rev Author: noah1989 Date: 2009-11-27 03:39:10 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing rename Added Paths: ----------- trunk/testing_rename Removed Paths: ------------- trunk/another_test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 03:13:36
|
Revision: 94 http://fmacj.svn.sourceforge.net/fmacj/?rev=94&view=rev Author: noah1989 Date: 2009-11-27 03:13:29 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Removed Paths: ------------- trunk/test_3 Deleted: trunk/test_3 =================================================================== --- trunk/test_3 2009-11-27 03:06:00 UTC (rev 93) +++ trunk/test_3 2009-11-27 03:13:29 UTC (rev 94) @@ -1 +0,0 @@ -blabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 03:06:08
|
Revision: 93 http://fmacj.svn.sourceforge.net/fmacj/?rev=93&view=rev Author: noah1989 Date: 2009-11-27 03:06:00 +0000 (Fri, 27 Nov 2009) Log Message: ----------- test Added Paths: ----------- trunk/test_3 Added: trunk/test_3 =================================================================== --- trunk/test_3 (rev 0) +++ trunk/test_3 2009-11-27 03:06:00 UTC (rev 93) @@ -0,0 +1 @@ +blabla This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:47:52
|
Revision: 92 http://fmacj.svn.sourceforge.net/fmacj/?rev=92&view=rev Author: noah1989 Date: 2009-11-27 02:47:44 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Removed Paths: ------------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:47:39
|
Revision: 91 http://fmacj.svn.sourceforge.net/fmacj/?rev=91&view=rev Author: noah1989 Date: 2009-11-27 02:47:32 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Added Paths: ----------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:47:23
|
Revision: 90 http://fmacj.svn.sourceforge.net/fmacj/?rev=90&view=rev Author: noah1989 Date: 2009-11-27 02:47:16 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Added Paths: ----------- trunk/another_test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:47:10
|
Revision: 89 http://fmacj.svn.sourceforge.net/fmacj/?rev=89&view=rev Author: noah1989 Date: 2009-11-27 02:47:03 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Removed Paths: ------------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:46:55
|
Revision: 88 http://fmacj.svn.sourceforge.net/fmacj/?rev=88&view=rev Author: noah1989 Date: 2009-11-27 02:46:49 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Added Paths: ----------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:46:43
|
Revision: 87 http://fmacj.svn.sourceforge.net/fmacj/?rev=87&view=rev Author: noah1989 Date: 2009-11-27 02:46:31 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Removed Paths: ------------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <noa...@us...> - 2009-11-27 02:46:03
|
Revision: 86 http://fmacj.svn.sourceforge.net/fmacj/?rev=86&view=rev Author: noah1989 Date: 2009-11-27 02:45:55 +0000 (Fri, 27 Nov 2009) Log Message: ----------- testing git-svn autocommit Added Paths: ----------- trunk/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |