Re: [perl #58176] [PATCH] dotnet exceptions

2008-09-03 Thread chromatic
On Wednesday 20 August 2008 12:48:27 Reini Urban wrote:

 make dotnet work with the new exceptions.
 I'm not sure how to return the jump_point correctly, but it looks fine.

Thanks, applied as r30718.

-- c


[perl #58176] [PATCH] dotnet exceptions

2008-08-20 Thread via RT
# 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,