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: [perl #48971] Parrot build failure no such instruction: `trap'

2008-05-04 Thread Walter M Szeliga

Excellent, the patch from ticket 52214 works.

Walter


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 #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 #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


[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


Re: grammar for 'constant' ?

2008-05-04 Thread Moritz Lenz
John M. Dlugosz wrote:
 The synopses are contradictary over the way 'constant' works.  First it says 
 that it is a declarator like 'my'. 

That's what STD.pm says:

token scope_declarator:my   { sym scoped {*} }
token scope_declarator:our  { sym scoped {*} }
token scope_declarator:state{ sym scoped {*} }
token scope_declarator:constant { sym scoped {*} }
token scope_declarator:has  { sym scoped {*} }


 Then in S12 it shows
 
   my constant ...
 and
   our constant ...
 
 that is, independant from the my or our declarator.  

I grep'ped STD.pm tentatively for other occurrences of 'constant', and
couldn't find where that should be implemented.

 Assuming the second way is newer/better, what is the grammar for this?  Is it 
 a declarator if used on its own, or a different category?
 
 Oh, and should it still say that if you leave off the optional 'my' or 'our' 
 that it defaults to 'my', or should it be 'our' like everything else?
 
 --John


-- 
Moritz Lenz
http://moritz.faui2k3.org/ |  http://perl-6.de/



signature.asc
Description: OpenPGP digital signature


Re: grammar for 'constant' ?

2008-05-04 Thread John M. Dlugosz

Moritz Lenz moritz-at-casella.verplant.org |Perl 6| wrote:



Then in S12 it shows

  my constant ...
and
  our constant ...

that is, independant from the my or our declarator.  



I grep'ped STD.pm tentatively for other occurrences of 'constant', and
couldn't find where that should be implemented.
  



Thanks.  I checked S12 again and could not find that example.  Maybe my 
mistake from when I took notes the first time.


So, let's talk about the semantics of constant.

It's natural to want to export them from classes or modules.  So, the 
description of them being just like my is incomplete.  I propose 
allowing that to be true as far as it goes, but describing the meaning 
of adding is export to the declaration as well.


--John


Where is Manhattan Dispatch discussion?

2008-05-04 Thread John M. Dlugosz
I want to review and collect the wisdom of what has been discussed before.  
Someone mentioned this the other day, as being a significant consensus.  But I 
can't find anything in the forum archives.

Can someone point to the discussion, position papers, etc.?  

--John


not a reference - What does this mean?

2008-05-04 Thread John M. Dlugosz
Perl 6 doesn't have references anymore, it has captures.  So, what does 
the following mean:


@x = foo bar;
$a = [1, 2, [EMAIL PROTECTED];

I imagine that the 3rd element of the Array is itself an Array, and is 
the same object that is bound to @x.  But captures are lazy 
context-sensitive beasts, so I wonder if there is more poised to go on 
than I want or care about in this example.


 say $a[2] === @x; #gives True
 @x[1] = baz;
 say $a[2][1];  #gives baz

--John



Re: not a reference - What does this mean?

2008-05-04 Thread Jonathan Worthington

John M. Dlugosz wrote:
Perl 6 doesn't have references anymore, it has captures.  So, what 
does the following mean:


@x = foo bar;
$a = [1, 2, [EMAIL PROTECTED];

I imagine that the 3rd element of the Array is itself an Array, and is 
the same object that is bound to @x.  But captures are lazy 
context-sensitive beasts, so I wonder if there is more poised to go on 
than I want or care about in this example.


 say $a[2] === @x; #gives True
 @x[1] = baz;
 say $a[2][1];  #gives baz
Captures themselves are immutable, but the underlying data that they 
reference is not. Thus the laziness, or at least that's what I 
understand it to mean. I'm sure I read something along these lines in a 
synopsis, probably S02.


Jonathan