Граф коммитов

7959 Коммитов

Автор SHA1 Сообщение Дата
Jan Vorlicek b8ee185564 Enable compilation of the runtime on Linux
This change enables compilation of the runtime excluding the PAL
layer on Linux.
Most of the changes are just to make it build with clang that's
more strict w.r.t. the C++11 standard.
In addition to that, I have removed our implementation of the
new / delete operators and replaced all calls to new in the
runtime by new (nothrow).
2015-10-24 08:38:19 -07:00
Jan Kotas 4a63480697 Merge pull request #113 from jkotas/dead-code
Delete unused code
2015-10-24 04:52:10 -07:00
Tarek Mahmoud Sayed 300c946969 Merge pull request #111 from tarekgh/GlobalHacks
Add the default globalization implementation for Linux
2015-10-23 20:34:16 -07:00
Tarek Mahmoud Sayed d56f145e12 Add the default globalization implementation for Linux
The change here is just adding some default implmentation to be used for
Linux so we can avoid calling any path end up calling Win32 API.

The change also will make it easier in the future to determine what
functionality needed for Linux to implement the real PAL layer.

Note that, the changes here cover most of the globalization implemntation but
we may need to do more as needed if we run into any other problem when getting
the demo ready
2015-10-23 20:24:34 -07:00
Michal Strehovský 4a2d23f5c5 Add support for InitializeArray intrinsic
Most of the work is piping the RVA static data from the PE image
into our internal data structures, and into the resulting object file.

* Adding IsIntrinsic property that indicates whether the property is an intrinsic
* Adding concept of ReadOnlyDataBlobs to the NodeFactory. I expect this to be more general purpose.
* Name mangling on fields. I was conflicted about adding a big name mangler since we will only need it for RVA statics, but I did it anyway.

This is intentionally only recognizing InitializeArray as an intrinsic. We have some
work to do before we can enable it on e.g. CompareExchange<T>.

We will need to figure out a way to distinguish between JIT intrinsics and
compiler intrinsics in the near future.
2015-10-23 19:12:59 -07:00
Jan Kotas 9b01515fa9 Merge pull request #104 from gkhanna79/PubILNative
Generate Nuget Packages for ILToNative
2015-10-23 15:09:46 -07:00
Gaurav Khanna b7d4051224 Generate Microsoft.DotNet.ILToNative and Microsoft.Dotnet.ILToNative.Development nuget packages. 2015-10-23 13:40:03 -07:00
Jan Kotas c34a6b462c Merge pull request #99 from MichalStrehovsky/stringlayout
Special case string field layout
2015-10-23 11:49:31 -07:00
Jan Kotas 80e9188caa Merge pull request #103 from MichalStrehovsky/hellocolor
Implement isStructRequiringStackAllocRetBuf
2015-10-23 11:48:53 -07:00
Michal Strehovský bdee59cc58 Merge pull request #100 from MichalStrehovsky/getChars
Remove String::get_Chars workaround
2015-10-23 10:45:36 -07:00
Michal Strehovský 56cfac1285 Remove rest of PInvoke stub workarounds
We now implement this.
2015-10-23 10:42:56 -07:00
Michal Strehovský dddeb53a53 Implement isStructRequiringStackAllocRetBuf
This is the last piece needed to let us run the colorful Hello World
demo.
2015-10-23 10:30:26 -07:00
Michal Strehovský d1ca63f94d Special case string BaseSize
Strings are special.
2015-10-23 10:03:51 -07:00
Michal Strehovský 59d32ecc7b Fix string field layout
The existing string field layout data assumes the code will be compiled
with Bartok. We will not be carrying forward the workarounds at the
compiler side that make it work.
2015-10-23 09:43:06 -07:00
Jan Kotas 62ead8b743 Delete unused code 2015-10-23 08:51:04 -07:00
Jan Kotas 88138ccf07 Merge pull request #102 from jkotas/asmwriter
Delete old AsmWriter
2015-10-23 08:43:57 -07:00
Jan Kotas a0621ceb12 Delete old AsmWriter 2015-10-22 23:42:50 -07:00
Jan Kotas cf1006ab4c Merge pull request #98 from MichalStrehovsky/hello
Hello World fix for Memmove
2015-10-22 23:21:36 -07:00
Michal Strehovský 061bf05cbc Remove String::get_Chars workaround
CoreLib now has a workaround applied that lets us compile this method
just fine and this is giving errors about duplicate symbols.
2015-10-22 22:49:19 -07:00
Michal Strehovský a6e45edb36 Hello World fix for Memmove
We can't handle the JIT-generated relocs for large switch blocks.
2015-10-22 22:26:06 -07:00
Jan Kotas 86b0cc9a82 Merge pull request #97 from janvorli/includes-rename
Rename filenames in #include commands to match real filenames
2015-10-22 18:17:23 -07:00
Jan Vorlicek c1c17ef74f Rename filenames in #include commands to match real filenames 2015-10-22 17:48:22 -07:00
Tarek Mahmoud Sayed 8af4471b53 Merge pull request #96 from tarekgh/FixLinuxBuild
Fix building System.Private.Corelib on Linux
2015-10-22 17:26:15 -07:00
Tarek Mahmoud Sayed 71efaa1030 Rename source file with right Camel casing 2015-10-22 17:15:39 -07:00
Tarek Mahmoud Sayed 7cdef23bef Fix building System.Private.Corelib on Linux
used the same letter casing as the file stored on the disk
2015-10-22 16:37:59 -07:00
Jan Kotas 3211b7acdd Merge pull request #95 from MichalStrehovsky/cctortrigger
Call cctor when accessing type's static base
2015-10-22 14:04:27 -07:00
Michal Strehovský 45a198314d Call cctor when accessing type's static base
JIT expects that accessing the static base will trigger the cctor if
necessary and does not insert explicit triggers.
2015-10-22 13:18:31 -07:00
Jan Kotas 450301aee4 Merge pull request #94 from jkotas/delete-stubs
Delete reproNative/stubs.cpp
2015-10-22 10:43:59 -07:00
Jan Kotas 844a8c7f58 Delete reproNative/stubs.cpp 2015-10-22 09:42:02 -07:00
Jan Kotas 4b8d3c17b0 Merge pull request #93 from jkotas/Win64
Define WIN64 when building System.Private.CoreLib.csproj
2015-10-22 09:17:24 -07:00
Jan Kotas 27c55460b4 Merge pull request #92 from jkotas/misc-fixes
Misc fixes
2015-10-22 09:16:56 -07:00
Jan Kotas 3a29cb7b42 Define WIN64 when building System.Private.CoreLib.csproj 2015-10-22 09:14:51 -07:00
Jan Kotas 1ac145954b Misc fixes
- Implement unbox any in CppCodeGen
- Add stubs for a few more missing Runtime methods
2015-10-22 07:12:09 -07:00
Jan Kotas d65860c6ad Merge pull request #91 from MichalStrehovsky/fixes
Set of random fixes for Hello World
2015-10-21 22:52:53 -07:00
Michal Strehovský 7e054034f4 Add a comment about the WriteBarrier workaround 2015-10-21 20:55:17 -07:00
Michal Strehovský 9754d3a02c Set of random fixes for Hello World
Hello World compiles, but doesn't run because we don't support instance method delegates yet.

* Do not try to emit addresses of abstract methods into vtables. Emit a null pointer instead.
* Generate an "INT 3" method body if JIT fails to compile a method
* Fix a bug in GC static data EEType creation code
* Emit an external symbol reference for RuntimeImports
* Temporary workaround for WriteBarrier. We can't call the C++ method because JIT doesn't build a stack frame with a register spill zone before the call.
2015-10-21 19:33:06 -07:00
Michal Strehovský 5ed878b759 Merge pull request #90 from jkotas/CoreLib-Switch
Switch to System.Private.CoreLib
2015-10-21 18:23:35 -07:00
Jan Kotas 46ff4d8af3 Switch to System.Private.CoreLib
Switch to System.Private.CoreLib built in this repo.
2015-10-21 17:02:11 -07:00
Jan Kotas 63a2d6f465 Merge pull request #84 from jkotas/CoreLib-Fixes
Apply CoreRT fixes and workarounds in System.Private.CoreLib
2015-10-21 16:59:37 -07:00
Jan Kotas f575642630 Apply CoreRT fixes and workarounds in System.Private.CoreLib
- Intrinsics changed to be compatible with CoreCLR/RyuJIT model
- Temporary ifdefs for not-yet-implemented functionality
2015-10-21 16:30:30 -07:00
Jan Kotas f156c2f14f Merge pull request #87 from tarekgh/corelib
Port the build and source changes from TFS
2015-10-21 15:43:28 -07:00
Jan Kotas 2c3effe916 Merge pull request #81 from MichalStrehovsky/mdarrays
Add support for multidimensional arrays
2015-10-21 15:42:14 -07:00
Tarek Mahmoud Sayed 3c9de17fbe Port the build and source changes from TFS
[tfs-changeset: 1540317]
2015-10-21 15:04:37 -07:00
Michal Strehovský 217a12db62 Move MDArray creation to the runtime
The rest are some small fixes:
* Fix a bug where during EEType generation we assumed everything will be
castable to MetadataType
* Compute proper baseSize for Array and MDArray types
2015-10-21 12:27:59 -07:00
Michal Strehovský ba9c060dba Add support for multidimensional arrays
Adding support for CoreCLR-style MDArrays. The MDArrays are implemented
inline (as opposed to having an indirection to a separate vector, which
is how they are implemented in .NET Native).

We are emitting IL stubs for Get/Set/Address methods and allocation is
handled by a separate JIT helper implemented by the runtime.

I also update the implementation in the CPP backend - that one was using
.NET Native style arrays that expected MDArrays to be backed by a
"normal" generic type.

There are still some TODOs left (type check, bounds check) that depend
on the IL stub emitter to work with labels. Labels are NYI and this
checkin is already pretty big as it is. I can tackle that in a separate
checkin.
2015-10-21 10:50:38 -07:00
Michal Strehovský 515b6d7ded Merge pull request #82 from MichalStrehovsky/methodilDebug
Debugger proxy for MethodIL class
2015-10-21 10:31:33 -07:00
Michal Strehovský e3582c5a0c Debugger proxy for MethodIL class
Tiny IL disassember that will show you disassembly of a MethodIL
instance within Visual Studio.

Makes the game of "How did Michal mess up generating the IL again?" way
less frustrating for me.
2015-10-21 10:25:54 -07:00
John Chen 51db0bf96c Merge pull request #74 from JohnChen0/Delegate
Implement simple delegates
2015-10-21 08:30:33 -07:00
John Chen (CLR) b9c0cb5512 Implement simple delegates 2015-10-21 08:23:06 -07:00
Jan Kotas 97ca422249 Merge pull request #83 from dotnet/revert-79-references
Revert "Add explicit references to nuget packages in desktop.csproj"
2015-10-20 20:13:58 -07:00