Re: Exceptions and Concurrency Questions

2008-05-04 Thread Allison Randal

Allison Randal wrote:


Presumably the handled opcode will remove the exception Task from the 
scheduler and resume execution at the appropriate point.  Presumably 
also the declining to handle an exception (the replacement for 
rethrow) will cause the scheduler to move to the next exception 
handler in its list?  If so, how do we model this control flow?


More on control flow tomorrow.


I started to write this out, and then realized I already did in the 
Exceptions PDD.


Allison


Re: YAPC::EU 2008

2008-05-04 Thread Bernhard Schmalhofer

Jonathan Worthington schrieb:

Allison Randal wrote:

Will Coleda schrieb:

Can we get an idea of how many parrot hackers are planning on
attending YAPC::EU this year? (will be held in Copenhagen, Denmark, on
13-15 August 2008 

Bernhard Schmalhofer wrote:

Is there enough critical mass that would warrant a Mini-hackathon?
I'm now definitely going to be there, and would like to spend some 
time hacking with whichever Parrot hackers/enthusiasts make it. 
August 12 or 16 works for me. Do either of those days work for anyone 
else?
I can be flexible. I'm planning to see a friend in south Sweden around 
the time of the conference too, so expect I will just hang around in 
the general area for a week or so.


We could always do the 12th AND the 16th, just for fun and bonus 
productivity (if everyone isn't exhausted from a day of hacking and 
three days of conference)? ;-)

I'm also flexible. 12th and 16th sounds good to me.

Best regards,
  Bernhard




[perl #53666] [PATCH] Implementation of kv method for rakudo's hashes.

2008-05-04 Thread via RT
# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #53666]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53666 


Hello.

There is implementation of kv method for rakudo.

Only languages/perl/src/classes/Hash.pir affected.

-- 
Bacek.
Index: src/classes/Hash.pir
===
--- src/classes/Hash.pir	(revision 27306)
+++ src/classes/Hash.pir	(working copy)
@@ -39,7 +39,24 @@
 .return ($S0)
 .end
 
+.sub 'kv' :method
+.local pmc iter
+.local pmc rv
+iter = new 'Iterator', self
+rv   = new 'List'
+  loop:
+unless iter goto end
+$S1 = shift iter
+push rv, $S1
+$S1 = iter[$S1]
+push rv, $S1
+goto loop
+  end:
+.return (rv)
+.end
 
+
+
 .sub 'keys' :method
 .local pmc iter
 .local pmc rv


Re: [perl #48971] Parrot build failure no such instruction: `trap'

2008-05-04 Thread Walter M Szeliga

Excellent, the patch from ticket 52214 works.

Walter


[perl #53684] here is the revised file

2008-05-04 Thread William Herrera
# New Ticket Created by  William Herrera 
# Please include the string:  [perl #53684]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53684 


/* compiler.h
 *  Copyright (C) 2007-2008, The Perl Foundation.
 *  SVN Info
 * $Id: compiler.h 26630 2008-03-29 20:42:36Z chromatic $
 *  Overview:
 * defines compiler capabilities
 */

#ifndef PARROT_COMPILER_H_GUARD
#define PARROT_COMPILER_H_GUARD

/*
 * This set of macros define capabilities that may or may not be available
 * for a given compiler.  They are based on GCC's __attribute__ functionality.
 */

/*
 * Microsoft provides two annotations mechanisms.  __declspec, which has been
 * around for a while, and Microsoft's standard source code annotation
 * language (SAL), introduced with Visual C++ 8.0.
 * See http://msdn2.microsoft.com/en-us/library/ms235402(VS.80).aspx,
 * http://msdn2.microsoft.com/en-us/library/dabb5z75(VS.80).aspx.
 */
#if defined(_MSC_VER)  (_MSC_VER  1300)
#  define PARROT_HAS_SAL 1
#  include sal.h
#else
#  define PARROT_HAS_SAL 0
#endif

#ifdef HASATTRIBUTE_NEVER_WORKS
 #  error This attribute can never succeed.  Something has mis-sniffed your 
configuration.
#endif
#ifdef HASATTRIBUTE_DEPRECATED
#  ifdef _MSC_VER
#define __attribute__deprecated__   __declspec(deprecated)
#  else
#define __attribute__deprecated__   __attribute__((__deprecated__))
#  endif
#endif
#ifdef HASATTRIBUTE_FORMAT
#  define __attribute__format__(x, y, z)__attribute__((__format__((x), (y), 
(z
#endif
#ifdef HASATTRIBUTE_MALLOC
#  define __attribute__malloc__ __attribute__((__malloc__))
#endif
#ifdef HASATTRIBUTE_NONNULL
#  define __attribute__nonnull__(a) __attribute__((__nonnull__(a)))
#endif
#ifdef HASATTRIBUTE_NORETURN
#  ifdef _MSC_VER
#define __attribute__noreturn__ __declspec(noreturn)
#  else
#define __attribute__noreturn__ __attribute__((__noreturn__))
#  endif
#endif
#ifdef HASATTRIBUTE_PURE
#  define __attribute__pure__   __attribute__((__pure__))
#endif
#ifdef HASATTRIBUTE_CONST
#  define __attribute__const__  __attribute__((__const__))
#endif
#ifdef HASATTRIBUTE_UNUSED
#  define __attribute__unused__ __attribute__((__unused__))
#endif
#ifdef HASATTRIBUTE_WARN_UNUSED_RESULT
#  define __attribute__warn_unused_result__ 
__attribute__((__warn_unused_result__))
#endif

/* If we haven't defined the attributes yet, define them to blank. */
#ifndef __attribute__deprecated__
#  define __attribute__deprecated__
#endif
#ifndef __attribute__format__
#  define __attribute__format__(x, y, z)
#endif
#ifndef __attribute__malloc__
#  define __attribute__malloc__
#endif
#ifndef __attribute__nonnull__
#  define __attribute__nonnull__(a)
#endif
#ifndef __attribute__noreturn__
#  define __attribute__noreturn__
#endif
#ifndef __attribute__const__
#  define __attribute__const__
#endif
#ifndef __attribute__pure__
#  define __attribute__pure__
#endif
#ifndef __attribute__unused__
#  define __attribute__unused__
#endif
#ifndef __attribute__warn_unused_result__
#  define __attribute__warn_unused_result__
#endif


/* Shim arguments are arguments that must be included in your function,
 * but serve no purpose inside.  Mark them with the SHIM() macro so that
 * the compiler and/or lint know that it's OK it's unused.  Shim arguments
 * get _unused added to them so that you can't accidentally use them
 * without removing the shim designation.
 */
#define SHIM(a) /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ a##_unused 
__attribute__unused__

/* UNUSED() is the old way we handled shim arguments Should still be
   used in cases where the argument should, at some point be used.
 */
#define UNUSED(a) if (0) (void)(a);

#if PARROT_HAS_SAL
#  define PARROT_CAN_RETURN_NULL  /[EMAIL PROTECTED]@*/ __maybenull
#  define PARROT_CANNOT_RETURN_NULL   /[EMAIL PROTECTED]@*/ __notnull
#else
#  define PARROT_CAN_RETURN_NULL  /[EMAIL PROTECTED]@*/
#  define PARROT_CANNOT_RETURN_NULL   /[EMAIL PROTECTED]@*/
#endif

#define PARROT_DEPRECATED   __attribute__deprecated__

#define PARROT_IGNORABLE_RESULT
#define PARROT_WARN_UNUSED_RESULT   __attribute__warn_unused_result__

#define PARROT_PURE_FUNCTION__attribute__pure__  
__attribute__warn_unused_result__
#define PARROT_CONST_FUNCTION   __attribute__const__ 
__attribute__warn_unused_result__
#define PARROT_DOES_NOT_RETURN  /[EMAIL PROTECTED]@*/ 
__attribute__noreturn__
#define PARROT_DOES_NOT_RETURN_WHEN_FALSE   /[EMAIL PROTECTED]@*/
#define PARROT_MALLOC   /[EMAIL PROTECTED]@*/ 
__attribute__malloc__ __attribute__warn_unused_result__

/* Function argument instrumentation */
/* For explanations of the annotations, see 
http://www.splint.org/manual/manual.html */

#if PARROT_HAS_SAL
#  define NOTNULL(x)  /[EMAIL PROTECTED]@*/ __notnull x
/* The pointer passed may not be NULL 

[perl #53682] Cage cleaning: Visual Studio compiler for parrot

2008-05-04 Thread William Herrera
# New Ticket Created by  William Herrera 
# Please include the string:  [perl #53682]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53682 


The MS C compiler produces numerous warnings about not all paths return a
value or no return value when Parrot throws an exception in many of the
functions.  This produces a fair amount of noise when compiling with
warnings turned on.  If the following is added to compiler.h the warnings
are much diminished:

#ifdef _MSC_VER
/* turn off MSC warnings when exceptions prevent normal value return */
#  pragma warning (disable : 4715)
#  pragma warning (disable : 4716)
#endif

I have attached a version of compiler.h with the addition as well.

I would be happy to fix some of the remaining issues, which are mainly void
pointer conversion warnings and local variable initialization issues, if you
would like

--Bill