--- /dev/null
+@echo off
+cd mcs\jay
+vcbuild jay.vcxproj
+msbuild net_4_x.sln
--- /dev/null
+#!/bin/sh
+(cd mcs/jay; make)
+msbuild net_4_x.sln
TARGET=ARM64
arch_target=arm64
boehm_supported=false
+ AOT_SUPPORTED="yes"
;;
s390x-*-linux*)
TARGET=S390X;
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay.exe -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
\r
</PreBuildEvent>\r
\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="resources/SR.resources">\r
+ <EmbeddedResource Include="resources/SR.resx">\r
<LogicalName>SR.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/SQLiteCommand.bmp">\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources">\r
+ <EmbeddedResource Include="Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resx">\r
<LogicalName>ResultCodeMessages.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Microsoft.Internal.Strings.resources">\r
+ <EmbeddedResource Include="Microsoft.Internal.Strings.resx">\r
<LogicalName>Microsoft.Internal.Strings.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Client/System.Data.Services.Client.resources">\r
+ <EmbeddedResource Include="Client/System.Data.Services.Client.resx">\r
<LogicalName>System.Data.Services.Client.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Json.Properties.Resources.resources">\r
+ <EmbeddedResource Include="System.Json.Properties.Resources.resx">\r
<LogicalName>System.Json.Properties.Resources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Net.Http.Properties.CommonWebApiResources.resources">\r
+ <EmbeddedResource Include="System.Net.Http.Properties.CommonWebApiResources.resx">\r
<LogicalName>System.Net.Http.Properties.CommonWebApiResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Net.Http.Properties.Resources.resources">\r
+ <EmbeddedResource Include="System.Net.Http.Properties.Resources.resx">\r
<LogicalName>System.Net.Http.Properties.Resources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
public void Close ()
{
CancellationTokenRegistration.Dispose ();
- ContentStream.Close ();
+ if (ContentStream != null) {
+ ContentStream.Close ();
+ }
}
}
wr.KeepAlive = request.Headers.ConnectionClose != true;
}
- wr.ServicePoint.Expect100Continue = request.Headers.ExpectContinue == true;
-
if (allowAutoRedirect) {
wr.AllowAutoRedirect = true;
wr.MaximumAutomaticRedirections = maxAutomaticRedirections;
if (useProxy) {
wr.Proxy = proxy;
+ } else {
+ // Disables default WebRequest.DefaultWebProxy value
+ wr.Proxy = null;
}
+ wr.ServicePoint.Expect100Continue = request.Headers.ExpectContinue == true;
+
// Add request headers
var headers = wr.Headers;
foreach (var header in request.Headers) {
}
}
+ class ThrowOnlyProxy : IWebProxy
+ {
+ public ICredentials Credentials {
+ get {
+ throw new NotImplementedException ();
+ }
+
+ set {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public Uri GetProxy (Uri destination)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public bool IsBypassed (Uri host)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
const int WaitTimeout = 5000;
string TestHost, LocalServer;
}
}
+ [Test]
+ public void Proxy_Disabled ()
+ {
+ var pp = WebRequest.DefaultWebProxy;
+
+ try {
+ WebRequest.DefaultWebProxy = new ThrowOnlyProxy ();
+
+ var request = new HttpClientHandler {
+ UseProxy = false
+ };
+
+ var client = new HttpClient (request);
+ Assert.IsTrue (client.GetAsync ("http://google.com").Wait (5000), "needs internet access");
+ } finally {
+ WebRequest.DefaultWebProxy = pp;
+ }
+ }
+
[Test]
public void Send ()
{
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Core.resources">\r
+ <EmbeddedResource Include="Strings_Core.resx">\r
<LogicalName>System.Reactive.Strings_Core.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Linq.resources">\r
+ <EmbeddedResource Include="Strings_Linq.resx">\r
<LogicalName>System.Reactive.Strings_Linq.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_PlatformServices.resources">\r
+ <EmbeddedResource Include="Strings_PlatformServices.resx">\r
<LogicalName>System.Reactive.Strings_PlatformServices.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Providers.resources">\r
+ <EmbeddedResource Include="Strings_Providers.resx">\r
<LogicalName>System.Reactive.Strings_Providers.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_WindowsThreading.resources">\r
+ <EmbeddedResource Include="Strings_WindowsThreading.resx">\r
<LogicalName>System.Reactive.Strings_WindowsThreading.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Web.Http.Properties.CommonWebApiResources.resources">\r
+ <EmbeddedResource Include="System.Web.Http.Properties.CommonWebApiResources.resx">\r
<LogicalName>System.Web.Http.Properties.CommonWebApiResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Web.Http.Properties.SRResources.resources">\r
+ <EmbeddedResource Include="System.Web.Http.Properties.SRResources.resx">\r
<LogicalName>System.Web.Http.Properties.SRResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Mvc/Resources/MvcResources.resources">\r
+ <EmbeddedResource Include="Mvc/Resources/MvcResources.resx">\r
<LogicalName>System.Web.Mvc.Resources.MvcResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Web.Razor.Resources.RazorResources.resources">\r
+ <EmbeddedResource Include="System.Web.Razor.Resources.RazorResources.resx">\r
<LogicalName>System.Web.Razor.Resources.RazorResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Web.Razor.Common.CommonResources.resources">\r
+ <EmbeddedResource Include="System.Web.Razor.Common.CommonResources.resx">\r
<LogicalName>System.Web.Razor.Common.CommonResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Web.WebPages.Deployment.Common.CommonResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Deployment.Common.CommonResources.resx">\r
<LogicalName>System.Web.WebPages.Deployment.Common.CommonResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Web.WebPages.Deployment.Resources.ConfigurationResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Deployment.Resources.ConfigurationResources.resx">\r
<LogicalName>System.Web.WebPages.Deployment.Resources.ConfigurationResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Web.WebPages.Razor.Resources.RazorWebResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Razor.Resources.RazorWebResources.resx">\r
<LogicalName>System.Web.WebPages.Razor.Resources.RazorWebResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Web.WebPages.Razor.Common.CommonResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Razor.Common.CommonResources.resx">\r
<LogicalName>System.Web.WebPages.Razor.Common.CommonResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="System.Web.WebPages.Resources.WebPageResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Resources.WebPageResources.resx">\r
<LogicalName>System.Web.WebPages.Resources.WebPageResources.resources</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="System.Web.WebPages.Common.CommonResources.resources">\r
+ <EmbeddedResource Include="System.Web.WebPages.Common.CommonResources.resx">\r
<LogicalName>System.Web.WebPages.Common.CommonResources.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="resources/TranslationResources.resources">\r
+ <EmbeddedResource Include="resources/TranslationResources.resx">\r
<LogicalName>TranslationResources.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/WebUIValidation.js">\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="resources/TranslationResources.resources">\r
+ <EmbeddedResource Include="resources/TranslationResources.resx">\r
<LogicalName>TranslationResources.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/WebUIValidation.js">\r
<EmbeddedResource Include="resources/DnDMove.cur">\r
<LogicalName>System.Windows.Forms.DnDMove.cur</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="resources/keyboards.resources">\r
+ <EmbeddedResource Include="resources/keyboards.resx">\r
<LogicalName>keyboards.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/16_computer.png">\r
{
// Ensure that all the data has been read out of the package
// stream already. Otherwise we'll lose data when we recreate the zip
- foreach (ZipPackagePart part in Parts.Values)
- part.GetStream ().Dispose ();
+ foreach (ZipPackagePart part in Parts.Values) {
+ if (part.Package != null)
+ part.GetStream ().Dispose ();
+ }
// Empty the package stream
PackageStream.Position = 0;
// Write all the part streams
foreach (ZipPackagePart part in Parts.Values) {
+ if (part.Package == null)
+ continue;
+
Stream partStream = part.GetStream ();
partStream.Seek (0, SeekOrigin.Begin);
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Transform.resources">\r
+ <EmbeddedResource Include="Transform.resx">\r
<LogicalName>NUnit.Util.Transform.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
}
static MonoInternalThread*
-create_internal_thread ()
+create_internal_thread (void)
{
MonoError error;
MonoInternalThread *thread;
mono_threads_unlock ();
}
-static void
-mono_special_static_data_free_slot (guint32 offset, guint32 size)
-{
- /* Only ever called for ThreadLocal instances */
- g_assert (ACCESS_SPECIAL_STATIC_OFFSET (offset, type) == SPECIAL_STATIC_OFFSET_TYPE_THREAD);
-
- mono_threads_lock ();
- do_free_special_slot (offset, size);
- mono_threads_unlock ();
-}
-
#ifdef HOST_WIN32
static void CALLBACK dummy_apc (ULONG_PTR param)
{
RUNTIME_AOTCHECK = MONO_PATH="$(CLASS)$(PLATFORM_PATH_SEPARATOR)." $(RUNTIME_EXECUTABLE)
CSC = $(mcs_topdir)/class/lib/build/mcs.exe
-MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll
+MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Core.dll
ILASM = $(MINI_RUNTIME) $(CLASS)/ilasm.exe
AM_CFLAGS = \
res ^= insn->sreg1 << 0x10;
res ^= insn->sreg2 << 0x14;
res ^= insn->sreg3 << 0x18;
- res ^= (guint) insn->next;
- res ^= (guint) insn->prev;
- res ^= (guint) insn;
+ res ^= (gsize) insn->next;
+ res ^= (gsize) insn->prev;
+ res ^= (gsize) insn;
return res;
}
int context_used;
MonoInst *klass_inst = NULL, *res;
+ if (src->opcode == OP_PCONST && src->inst_p0 == 0)
+ return src;
+
context_used = mini_class_check_context_used (cfg, klass);
if (!context_used && mini_class_has_reference_variant_generic_argument (cfg, klass, context_used)) {
if (context_used) {
MonoInst *args [3];
- if(mini_class_has_reference_variant_generic_argument (cfg, klass, context_used) || is_complex_isinst (klass)) {
+ if (mini_class_has_reference_variant_generic_argument (cfg, klass, context_used) || is_complex_isinst (klass)) {
MonoInst *cache_ins;
cache_ins = emit_get_rgctx_klass (cfg, context_used, klass, MONO_RGCTX_INFO_CAST_CACHE);
case MONO_TYPE_I8:
info->ret_marshal = GSHAREDVT_RET_I8;
break;
-
+ case MONO_TYPE_GENERICINST:
+ g_assert (!mono_type_generic_inst_is_valuetype (ret));
+ info->ret_marshal = GSHAREDVT_RET_I8;
+ break;
default:
g_error ("Gsharedvt can't handle dst type [%d]", (int)sig->ret->type);
}
#define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1
#define MONO_ARCH_HAVE_PATCH_CODE_NEW 1
#define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT 1
+#define MONO_ARCH_HAVE_GENERAL_RGCTX_LAZY_FETCH_TRAMPOLINE 1
#if defined(TARGET_OSX) || defined(__linux__)
#define MONO_ARCH_HAVE_UNWIND_BACKTRACE 1
else
wrapper = mini_get_gsharedvt_out_sig_wrapper (normal_sig);
res = mono_compile_method_checked (wrapper, &error);
- mono_error_raise_exception (&error); /* FIXME don't raise here */
+ mono_error_assert_ok (&error);
return res;
}
target =
mono_create_jit_trampoline (mono_domain_get (),
call->method, &error);
- if (!mono_error_ok (&error))
- mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+ if (!is_ok (&error)) {
+ set_failure (ctx, mono_error_get_message (&error));
+ mono_error_cleanup (&error);
+ return;
+ }
+
tramp_var = LLVMAddGlobal (ctx->lmodule, LLVMPointerType (llvm_sig, 0), name);
LLVMSetInitializer (tramp_var, LLVMConstIntToPtr (LLVMConstInt (LLVMInt64Type (), (guint64)(size_t)target, FALSE), LLVMPointerType (llvm_sig, 0)));
LLVMSetLinkage (tramp_var, LLVMExternalLinkage);
#else
target =
mono_create_jit_trampoline (mono_domain_get (),
- call->method, &error);
- if (!mono_error_ok (&error))
- mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+ call->method, &error);
+ if (!is_ok (&error)) {
+ g_free (name);
+ set_failure (ctx, mono_error_get_message (&error));
+ mono_error_cleanup (&error);
+ return;
+ }
callee = LLVMAddFunction (ctx->lmodule, name, llvm_sig);
g_free (name);
- if (!mono_error_ok (&error))
- mono_error_raise_exception (&error); /* FIXME: Don't raise here */
LLVMAddGlobalMapping (ctx->module->ee, callee, target);
#endif
}
return buf;
}
+gpointer
+mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboolean aot)
+{
+ guint8 *code, *buf;
+ int tramp_size;
+ MonoJumpInfo *ji = NULL;
+ GSList *unwind_ops;
+
+ g_assert (aot);
+ tramp_size = 64;
+
+ code = buf = (guint8 *)mono_global_codeman_reserve (tramp_size);
+
+ unwind_ops = mono_arch_get_cie_program ();
+
+ // FIXME: Currently, we always go to the slow path.
+ /* This receives a <slot, trampoline> in the rgctx arg reg. */
+ /* Load trampoline addr */
+ amd64_mov_reg_membase (code, AMD64_R11, MONO_ARCH_RGCTX_REG, 8, 8);
+ /* move the rgctx pointer to the VTABLE register */
+ amd64_mov_reg_reg (code, MONO_ARCH_VTABLE_REG, AMD64_ARG_REG1, sizeof(gpointer));
+ /* Jump to the trampoline */
+ amd64_jump_reg (code, AMD64_R11);
+
+ mono_arch_flush_icache (buf, code - buf);
+ mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
+
+ g_assert (code - buf <= tramp_size);
+
+ if (info)
+ *info = mono_tramp_info_create ("rgctx_fetch_trampoline_general", buf, code - buf, ji, unwind_ops);
+
+ return buf;
+}
+
void
mono_arch_invalidate_method (MonoJitInfo *ji, void *func, gpointer func_arg)
{
{
EmptyStruct s;
+ memset (&s, 0, sizeof (s));
+
g_assert (a == 42);
return s;
--- /dev/null
+$(ProjectDir)\..\..\jay\jay.exe -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
foreach (var dk in embedded_resources) {
var source = dk.Key;
if (source.EndsWith (".resources"))
- source.Replace (".resources", ".resx");
+ source = source.Replace (".resources", ".resx");
+ Console.WriteLine ("Got {0} -> {1}", dk.Key, source);
resources.AppendFormat (" <EmbeddedResource Include=\"{0}\">" + NewLine, source);
resources.AppendFormat (" <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
resources.AppendFormat (" </EmbeddedResource>" + NewLine);
}
switch (args [1]){
- case "xml":
- Filter (bdir + "/class/System.XML/System.Xml.XPath/Parser.jay",
- bdir + "/class/System.XML/Mono.Xml.Xsl/PatternParser.jay",
- (i, o) => o.Write (i.ReadToEnd ().Replace ("%start Expr", "%start Pattern")));
- break;
-
case "core":
Filter (bdir + "/build/common/Consts.cs.in",
bdir + "/build/common/Consts.cs",