# New Ticket Created by Reini Urban # Please include the string: [perl #58176] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58176 >
--- osname= cygwin osvers= 1.5.25(0.15642) arch= cygwin-thread-multi-64int cc= gcc --- Flags: category=languages severity=high ack=no --- make dotnet work with the new exceptions. I'm not sure how to return the jump_point correctly, but it looks fine. --- Summary of my parrot 0.7.0 (r0) configuration: configdate='Wed Aug 20 18:34:46 2008 GMT' Platform: osname=cygwin, archname=cygwin-thread-multi-64int jitcapable=1, jitarchname=i386-cygwin, jitosname=CYGWIN, jitcpuarch=i386 execcapable=1 perl=/usr/bin/perl.exe Compiler: cc='gcc', ccflags='-U__STRICT_ANSI__ -pipe -I/usr/local/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wno-missing-format-attribute -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -DHAS_GETTEXT', Linker and Libraries: ld='gcc', ldflags=' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base ', cc_ldflags='', libs='-L/usr/local/lib -lcrypt -lgmp -lreadline -lpcre -lglut32 -lglu32 -lopengl32 -lcrypto -lintl' Dynamic Linking: share_ext='.dll', ld_share_flags='-shared', load_ext='.dll', ld_load_flags='-shared' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 Locally applied patches: [perl #39742] [BUG] installed conflict [perl #51944] [DOCS] Cygwin Readme [perl #56544] [PATCH] install_files.pl [perl #56998] [PATCH] rename cygwin dll to cygparrot$MAJ_$MIN_$P.dll [perl #57006] [PATCH] add cygwin opengl config quirks [perl #56554] [TODO] make install -C languages [perl #58034] [TODO] config_args [perl #56996] [TODO] FHS runtime paths --- Environment: CYGWIN =server HOME =/home/rurban LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =~/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/usr/bin:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Programme/ATI Technologies/ATI.ACE/Core-Static:/usr/local/bin:/usr/lib/gstreamer-0.8:/usr/lib/lapack SHELL (unset)
Index: parrot-svn/languages/dotnet/ops/dotnet.ops =================================================================== --- parrot-svn.orig/languages/dotnet/ops/dotnet.ops +++ parrot-svn/languages/dotnet/ops/dotnet.ops @@ -88,7 +88,10 @@ static opcode_t* dotnet_OverflowExceptio PMC *ex_pmc = pmc_new(interp, enum_class_Exception); VTABLE_set_string_native(interp, ex_pmc, string_from_literal(interp, "System.OverflowException")); - return (opcode_t *)throw_exception(interp, ex_pmc, ret); + VTABLE_set_integer_keyed_str(interp, ex_pmc, + "severity", EXCEPT_error); + Parrot_ex_throw_from_c(interp, ex_pmc); + return ret; } Index: parrot-svn/languages/dotnet/pmc/dotnetassembly.pmc =================================================================== --- parrot-svn.orig/languages/dotnet/pmc/dotnetassembly.pmc +++ parrot-svn/languages/dotnet/pmc/dotnetassembly.pmc @@ -1848,7 +1848,7 @@ pmclass DotNetAssembly dynpmc group dotn free(filename); if (!in) - Parrot_ex_throw_from_c_args(INTERP, NULL, E_IOError, + Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR, "Unable to open file %s", filename); /* Attempt to load the PE parts of the file; this locates the CLI @@ -2184,12 +2184,9 @@ pmclass DotNetAssembly dynpmc group dotn /* If we don't have an assembly or nothing is loaded, throw an exception and leave. */ - if (ass == NULL || ass->loaded == 0) - { - EXCEPTION_INVALID_OPERATION(INTERP, NULL, INVALID_OPERATION, + if (!ass || !ass->loaded) + Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION, "No .NET CLI file loaded"); - RETURN(PMC *PMCNULL); - } else { PMC *result = VTABLE_get_pmc_keyed_int(INTERP, ass->methods, ass->entry_point);