Re: Exceptions and Concurrency Questions
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'
Excellent, the patch from ticket 52214 works. Walter
Re: YAPC::EU 2008
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
# 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.
# 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
# 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' ?
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' ?
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?
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?
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?
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