Skip to content

Commit

Permalink
Various minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
GregRos committed Apr 13, 2016
1 parent 66949a6 commit c161dc1
Show file tree
Hide file tree
Showing 27 changed files with 101 additions and 98 deletions.
2 changes: 1 addition & 1 deletion Imms/ExtraFunctional/ExtraFunctional/App.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
Expand Down
7 changes: 4 additions & 3 deletions Imms/ExtraFunctional/ExtraFunctional/ExtraFunctional.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
<OutputType>Exe</OutputType>
<RootNamespace>ExtraFunctional</RootNamespace>
<AssemblyName>ExtraFunctional</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFSharpCoreVersion>4.3.0.0</TargetFSharpCoreVersion>
<Name>ExtraFunctional</Name>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand Down Expand Up @@ -78,7 +79,7 @@
</ItemGroup>
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>..\..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll</HintPath>
<HintPath>..\..\..\..\packages\FSharp.Core.4.0.0.1\lib\net40\FSharp.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="mscorlib" />
Expand Down
2 changes: 1 addition & 1 deletion Imms/ExtraFunctional/ExtraFunctional/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Core" version="3.1.2.5" targetFramework="net40-client" />
<package id="FSharp.Core" version="4.0.0.1" targetFramework="net451" />
</packages>
2 changes: 2 additions & 0 deletions Imms/Imms.Abstract/Abstractions/Iterable/AbstractIterable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

namespace Imms.Abstract {



/// <summary>
/// A parent class for collections of all sorts (ordered, unordered, set-like, dictionary-like) that support a form of
/// iteration.
Expand Down
7 changes: 7 additions & 0 deletions Imms/Imms.Abstract/Abstractions/Mixins/MForEach.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Imms.Abstract;

8 changes: 8 additions & 0 deletions Imms/Imms.Abstract/Abstractions/Mixins/Mixin.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using System;
using System.Runtime.CompilerServices;



namespace Imms.Abstract {

}
3 changes: 3 additions & 0 deletions Imms/Imms.Abstract/Imms.Abstract.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
<Compile Include="Abstractions\Iterable\IterableLinq.cs" />
<Compile Include="Abstractions\MapLike\IAnyMapBuilder.cs" />
<Compile Include="Abstractions\MapLike\Interfaces.cs" />
<Compile Include="Abstractions\Mixins\MForEach.cs" />
<Compile Include="Abstractions\Mixins\Mixin.cs" />
<Compile Include="Abstractions\Sequential\Debugging.cs" />
<Compile Include="Abstractions\Sequential\Interfaces.cs" />
<Compile Include="Abstractions\Sequential\ISequentialBuilder.cs" />
Expand Down Expand Up @@ -118,6 +120,7 @@
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<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.
Expand Down
1 change: 1 addition & 0 deletions Imms/Imms.Abstract/Imms.Abstract.csproj.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Ccommon/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Citerable/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Cmaplike/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Cmixins/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Csequential/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=abstractions_005Csetlike/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=equality_0020and_0020comparison/@EntryIndexedValue">True</s:Boolean>
Expand Down
2 changes: 1 addition & 1 deletion Imms/Imms.Abstract/Properties/ImmsInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace Imms {
internal static class ImmsInfo {
public const string Version = "0.5.1";
public const string Version = "0.6.0";

public const string Author = "Gregory Rosenbaum";

Expand Down
35 changes: 0 additions & 35 deletions Imms/Imms.Collections/Examples/Optional.cs

This file was deleted.

1 change: 1 addition & 0 deletions Imms/Imms.Collections/Imms.FSharp/Modules.fs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ open Imms.FSharp
open Imms.FSharp.Implementation
open Imms
open Imms.FSharp.Operators
#nowarn "44"
///A module for working with ImmVector collections -- immutable high-performance vector collections.
module ImmVector =
///Returns true if the specified collection is empty.
Expand Down
1 change: 0 additions & 1 deletion Imms/Imms.Collections/Imms.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="Examples\Optional.cs" />
<Compile Include="Implementation\Common\Assertions.cs" />
<Compile Include="Implementation\Common\Marked.cs" />
<Compile Include="Implementation\FingerTree\Measured.cs" />
Expand Down
4 changes: 2 additions & 2 deletions Imms/Imms.Collections/Imms.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
<authors>$author$</authors>
<owners>$author$</owners>
<licenseUrl>https://raw.githubusercontent.com/GregRos/Imms/master/license.md</licenseUrl>
<projectUrl>https://github.com/GregRos/Imms</projectUrl>
<projectUrl>https://github.com/Imms/Imms</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<iconUrl>https://raw.githubusercontent.com/GregRos/Imms/master/Icon.png</iconUrl>
<summary>High-performance immutable collections for .NET.</summary>
<description>$description$</description>
<releaseNotes>Various minor fixes.</releaseNotes>
<releaseNotes>Various changes.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>collection collections fsharp immutable persistent imms imm functional deque vector map dictionary list queue stack performance set</tags>
</metadata>
Expand Down
6 changes: 1 addition & 5 deletions Imms/Imms.Collections/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@

[assembly: AssemblyTitle("Imms")]
[assembly: AssemblyDescription(
@"High performance persistent and immutable collections for .NET, supporting many operations efficiently.
Includes a catenable/indexed deque, a high performance vector, sets, and maps/dictionaries.
Better than anything released for .NET previously (as of this writing, and that I'm aware of). Check out the comparisons in the project website."
@"A powerful library of immutable and persistent data structures for the .NET platform."
)]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany(ImmsInfo.Author)]
Expand Down
2 changes: 2 additions & 0 deletions Imms/Imms.Collections/Wrappers/Immutable/Common/ImmVector.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;

namespace Imms {
/// <summary>
/// Static class containing utility and extension methods for working with the ImmVector[T] class.
/// </summary>
[Obsolete("Use ImmList for now.")]
public static class ImmVector {
/// <summary>
/// Returns the empty vector for the specified type.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ namespace Imms {
/// Implements a random access list.
/// </summary>
/// <typeparam name="T">The type of value stored in the list.</typeparam>
[Obsolete("Use ImmList for now.")]
public sealed partial class ImmVector<T> : AbstractSequential<T, ImmVector<T>> {


Expand Down
7 changes: 4 additions & 3 deletions Imms/Imms.FSharp/Imms.FSharp.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@
<OutputType>Library</OutputType>
<RootNamespace>Imms.FSharp</RootNamespace>
<AssemblyName>Imms.FSharp</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<Name>Imms.FSharp</Name>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<TargetFSharpCoreVersion>4.3.0.0</TargetFSharpCoreVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Expand Down Expand Up @@ -86,7 +87,7 @@
</ItemGroup>
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll</HintPath>
<HintPath>..\..\..\packages\FSharp.Core.4.0.0.1\lib\net40\FSharp.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="mscorlib" />
Expand Down
14 changes: 5 additions & 9 deletions Imms/Imms.FSharp/Imms.FSharp.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,29 @@
<package >
<metadata>
<id>Imms.FSharp</id>
<version>0.5.1</version>
<version>0.6.0</version>
<title>Imms.FSharp</title>
<authors>Gregory Rosenbaum</authors>
<owners>Gregory Rosenbaum</owners>
<licenseUrl>https://raw.githubusercontent.com/GregRos/Imms/master/license.md</licenseUrl>
<projectUrl>https://github.com/GregRos/Imms</projectUrl>
<projectUrl>https://github.com/Imms/Imms</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<iconUrl>https://raw.githubusercontent.com/GregRos/Imms/master/Icon.png</iconUrl>
<summary>Provides F# integration for Imms collections.</summary>
<description>
This library provides F# integration for the Imms immutable collections library.

It contains extension methods, active patterns, modules, computational expressions, and other syntactic sugar.

It is not useful if you're not writing in F#.
</description>
<releaseNotes>First release since rename.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>collection collections fsharp immutable persistent imms imm functional deque vector map dictionary list queue stack performance set</tags>
<dependencies>
<dependency id="Imms" version="0.5.1"/>
<dependency id="FSharp.Core" version="3.1.2.1"/>
<dependency id="Imms" version="0.6.0"/>
<dependency id="FSharp.Core" version="4.0.0.1"/>
</dependencies>

</metadata>
<files>
<file src="Imms.FSharp.dll" target="lib/net40-client"/>
<file src="Imms.FSharp.dll" target="lib/net45"/>
<file src="Imms.FSharp.xml" target="lib"/>
</files>
</package>
2 changes: 1 addition & 1 deletion Imms/Imms.FSharp/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Core" version="3.1.2.5" targetFramework="net40-client" />
<package id="FSharp.Core" version="4.0.0.1" targetFramework="net40-client" />
</packages>
4 changes: 2 additions & 2 deletions Imms/Imms.Messing.CSharp/Imms.Messing.CSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
<LangVersion>6</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll</HintPath>
<Reference Include="FSharp.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\FSharp.Core.4.0.0.1\lib\net40\FSharp.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
Expand Down
73 changes: 48 additions & 25 deletions Imms/Imms.Messing.CSharp/Program.cs
Original file line number Diff line number Diff line change
@@ -1,52 +1,75 @@
using System;
using System.Collections.Generic;
using System.CodeDom.Compiler;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Imms;
using Microsoft.FSharp.Core;
using Imms.Abstract;

namespace Imms.Messing.CSharp {

public interface Mixin {
}

public interface IMixin {
public interface HasMixins {

}

//instead of implementing IMixin, you implement IHas<Mixin>
public interface Has<out TMixin> : HasMixins
where TMixin : Mixin {
TMixin Mixin { get; }
}

public interface MForEach<out T> : IMixin {
void ForEach(Action<T> iterator);
public static class MixinUtils {
public static TMixin Mixout<TMixin>(this Has<TMixin> what)
where TMixin : Mixin {
return what.Mixin;
}

bool ForEachWhile(Func<T, bool> iterator);
[Obsolete("The object does not have this mixin.", true)]
public static TSome Mixout<TSome>(this HasMixins something) where TSome : Mixin {
return default(TSome);
}
}

interface MForEachBack<out T> : IMixin {
void ForEachBack(Action<T> iterator);
public abstract class Mixin1 : Mixin {
}

bool ForEachBackWhile(Func<T, bool> iterator);
public abstract class Mixin2 : Mixin {
}

public interface Has<out TMixin> : IMixin {
TMixin Implementation {
get;
public abstract class Mixin3 : Mixin {
}

public class Test : Has<Mixin1>, Has<Mixin2> {


Mixin1 Has<Mixin1>.Mixin => Mixin1Impl.Instance;

Mixin2 Has<Mixin2>.Mixin => Mixin2Impl.Instance;

private class Mixin1Impl : Mixin1 {
public static readonly Mixin1Impl Instance = new Mixin1Impl();
}

private class Mixin2Impl : Mixin2 {
public static readonly Mixin2Impl Instance = new Mixin2Impl();
}
}

public static class ForEachMixin {
static class TestThis {
public static void run() {
var t = new Test();
var a = t.Mixout<Mixin1>();
var b = t.Mixout<Mixin2>();

}
}


class Program {


static void Main(string[] args) {
int? a = 5;
object b = null;

var x = a.AsOptional();
var y = 5.AsOptional();
FSharpOption<int>.Some()
var list = ImmList.FromItems(1);
list.Any()
}

}
}
}
2 changes: 1 addition & 1 deletion Imms/Imms.Messing.CSharp/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Core" version="3.1.2.5" targetFramework="net452" />
<package id="FSharp.Core" version="4.0.0.1" targetFramework="net452" />
</packages>
2 changes: 1 addition & 1 deletion Imms/Imms.Tests.Integrity/Imms.Tests.Integrity.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll</HintPath>
<HintPath>..\..\..\packages\FSharp.Core.4.0.0.1\lib\net40\FSharp.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="mscorlib" />
Expand Down
Loading

0 comments on commit c161dc1

Please sign in to comment.