Hello, this repository is now archived.
Going forward, the .NET team is using https://github.com/dotnet/machinelearning for Microsoft.Data.* and https://github.com/dotnet/runtimelab for experiments.
This repo is for experimentation and exploring new ideas that may or may not make it into the main corefx repo.
License: MIT License
Hello, this repository is now archived.
Going forward, the .NET team is using https://github.com/dotnet/machinelearning for Microsoft.Data.* and https://github.com/dotnet/runtimelab for experiments.
The following test will fail:
var formatter = new StringFormatter();
formatter.Format("{{{0}", 1);
Assert.Equal("{1", formatter.ToString());
The FreeBSD Daemon has a license requirement that we are not yet following. We need to fix that.
This is a follow-on to #83.
/cc @josteink
There isn't a System.Text.Xml, and I would argue that while json, like xml, is represented by text, its implementation details shouldn't be part of Text.
This issue follows from the discussion at https://github.com/dotnet/corefx/issues/1563.
It is proposed to create a legacy-free library or set of libraries that would eventually be incorporated into corefx. The libraries would define primitive types and interfaces in the 2D and/or 3D geometry, drawing and image processing areas that are complementary to corefx. Such definitions would encourage compatibility of use and implementation across platforms and between libraries that target corefx in these areas.
The coreclr and corefx newly define SIMD-optimized types in System.Numerics
that have special processing by the JIT compiler. These types include Vector2/3/4
and related Matrix
and geometry types. The new primitive types defined for geometry, drawing and image processing could make use of these optimized types where appropriate.
Some of the use cases that would fall under this topic are:
The proposal is not to provide comprehensive cross-platform implementations to cover these areas. Rather, the intention is to define common types and API patterns (perhaps in the style of OWIN for http handlers) that various implementations could align with. These libraries should consolidate work done for corefx that fall within the geometry, drawing and image processing scope.
There are many questions:
Can we make a list of existing .NET (open-source or otherwise) libraries in this space:
The dispose method on CilAssembly needs to be updated to keep track of disposed state in order to avoid disposing the readers twice and get an exception.
See:
The following test will fail:
var formatter = new StringFormatter();
formatter.Format("{0,2:D}{1,-2}#", 5, 6));
Assert.Equal(" 56 #", formatter.ToString());
It looks like Visit(CilTypeDefinition typeDefinition)
is missing handling for Attributes
.
The project does not build currently as it's using C# 6 features (string interpolation) which is not supported by the current engineering system in corefxlab.
Repro:
Repro:
Should decoded tokens be referenced as CilEntity objects instead of strings on CilStringInstruction
?
In order to do this there should be an implementation of CilMemberReference (FieldRef, MethodRef) and CilMethodSpecification.
Need to decode marshal descriptors on CilFields and on CilParameters.
See:
In order to be able to do this it is needed to have a Marshal Decoder on System.Reflection.Metadata.Decoding, issue #2688
I'd be interested in hearing your thoughts on a library I've been working on that's similar in spirit to what you're doing here: https://github.com/MikePopoloski/StringFormatter
Mostly I needed a way to do formatting without allocations during my game loop. I think what I came up with is a pretty nice API.
I have a Windows 10 x64 Preview machine running Visual Studio 2015. When I git clone the corefxlab project, I am able to compile a 64bit version of the console application and it works perfectly including nuget grabbing all necessary files. If I set application to compile as x86, the application compiles but close immediately. Would you expect that this would work with x86?
Missing type implementations IEnumerable Property on CilTypeDefinitions.
Probably a CilTypeImplementation class should be create them to represent them and visit them with CilToStringVisitor.
implements Interface on type definition on CilToStringVisitor missing when type signature being dumped to writer.
File declaration missing to implement and dump on CilToStringVisitor.
Example:
.file /*26000005*/ nometadata normnfkd.nlp
.hash = (5D C0 2A 17 57 BB CC BF 38 84 66 BF 65 80 86 4D // ].*.W...8.f.e..M
99 13 6E 9C )
The following test will fail:
var formatter = new StringFormatter();
formatter.Format("{0:D2}", 1);
Assert.Equal("01", formatter.ToString());
This includes better wiki
The whole codebase needs to be ported to ByteSpan. Otherwise it's not possible to make UTF8 encoding of small strings competitive with native code implementation, as there are too many calls to pin and unpin the byte[] buffers.
For this to happen, ByteSpan needs to be made public and BufferPool needs to probably use native memory instead of pinning. I am not sure if these tradeoffs are worth it.
Alternatively, I would need to wait for a real GC tracked Span before seeing great runtime perf.
When an identifier (type, method, file, module, field, property, etc) name is not a valid msil name.
i.e:
<>_System
It needs to be single quoted in order to be valid and not have a syntax error.
i.e:
'<>_System'
The pool is quite complex and I don't think the complexity is worth it. Interlocked operations are very expensive, and I think performance sensitive scenarios should use a pool per thread. Also, the interlocked synchronization is not much faster than locks but it causes some buffers to be dropped on the heap.
This shouldn't be used because this is inefficient an sometimes unpredicatble.
There is a lot of places where this is used.
One of the tests has the following line commented:
//utf8Writer.Append("\uD950\uDF21"); // TODO: surrogate pair; this is NIY
Uncommenting this and running tests will cause test failures. This is because the library does not support surrogates. The fix should be moderately difficult.
The resolution scope on CilTypeReference is not yet decoded. This could be one of the following options:
-String (resolution scope name)
-CilEntity (CilModuleDefinition, CilModuleReference, CilTypeReference, CilAssemblyReference)
Microsoft.Experimental.Collections has a useful implementation of MultiValueDictionary, but it now appears abandoned in alpha state. A discussion on corefx indicates corefxlab is a good place for it, but what is the process to bring it to release from here?
Repro:
https://tools.ietf.org/html/rfc7230#section-3.2.4
Historically, HTTP has allowed field content with text in the
ISO-8859-1 charset [ISO-8859-1], supporting other charsets only
through use of [RFC2047] encoding. In practice, most HTTP header
field values use only a subset of the US-ASCII charset [USASCII].
Newly defined header fields SHOULD limit their field values to
US-ASCII octets. A recipient SHOULD treat other octets in field
content (obs-text) as opaque data.
So https://github.com/dotnet/corefxlab/blob/master/demos/LowAllocationWebServer/HttpRequestParser.cs
should be parsing bytes based on US-ASCII rather than UTF8 data
It would be great if we allowed text generators to compose, i.e. if the output needs to be encoded, formatting DateTime (for example) would result in already encoded output.
I did the following steps described at http://blogs.msdn.com/b/dotnet/archive/2015/02/03/coreclr-is-now-open-source.aspx?Redirected=true&PageIndex=2
Hi I am trying to run the demo Hello World program on Centos7 but getting the error. It isn't able to install the dependencies.
⇒ dnu install System.Console
Microsoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-12264
GET https://www.nuget.org/api/v2/
GET https://www.nuget.org/api/v2/FindPackagesById()?id='System.Console'
Warning: FindPackagesById: System.Console
The AddressFamily 117 is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead.
Parameter name: socketAddress
GET https://www.nuget.org/api/v2/FindPackagesById()?id='System.Console'
Warning: FindPackagesById: System.Console
The AddressFamily 117 is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead.
Parameter name: socketAddress
GET https://www.nuget.org/api/v2/FindPackagesById()?id='System.Console'
Error: FindPackagesById: System.Console
The AddressFamily 117 is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead.
Parameter name: socketAddress
System.ArgumentException: The AddressFamily 117 is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead.
Parameter name: socketAddress
Repro:
The formatting library uses several small hacky parsers (mainly to parse composite formatting strings). We should create a real non-allocating parsing library and use it instead.
Currently, the floating point formatter has a temporary implementation that simply calls ToString.
This needs to be implemented properly, but such implementation is very tricky.
When I try to build the main and test projects, I get the following error:
.\corefxlab\src\System.Numerics.Matrices\test\System.Numerics.Matrices.Tests.csproj : error MSB4057: The target "BuildAndTest" does not exist in the project.
.\corefxlab\src\System.Numerics.Matrices\src\System.Numerics.Matrices.csproj : error MSB4057: The target "BuildAndTest" does not exist in the project.
Should parameter and local types be represented as CilEntity to have either a CilTypeReference, CilTypeDefinition, CilTypeSpecification?
This would be such as in CilEventDefinitions.
There needs to be a way to get FormattingData instances for other cultures.
There are two ways to do it: either get the data from .NET CultureInfo or write a parser for the standard Unicode database.
The should allow verifying ranges.
Also, when a failure happens, better diagnostics information should be easily available.
Looks like a known issue based on the NotImplementedException, opening this issue to track it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.