#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
Set by moderator on 29 April 2008.
00:13 contingencyplan joined 00:18 TheAvarHexMan left 00:20 askie joined
dalek r27260 | chromatic++ | pdd25cx: 00:35
: [exceptions] Prepended EXCEPTION_ to all exception types, globally.
diff: www.parrotvm.org/svn/parrot/revision?rev=27260
chromatic@wgz.org | Concurrency Tasks:
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
dalek r27261 | chromatic++ | trunk: 00:40
: [src] Fixed C++ build (which I probably broke).
diff: www.parrotvm.org/svn/parrot/revision?rev=27261
01:03 kid51 joined 01:04 Andy joined 01:15 Andy joined
dalek r27262 | jkeenan++ | trunk: 01:17
: Correct DESCRIPTION and AUTHOR sections in POD.
diff: www.parrotvm.org/svn/parrot/revision?rev=27262
01:36 patspam joined 02:02 Theory joined 02:16 japhb joined
japhb seen chromatic 02:18
purl chromatic was last seen on #parrot 1 day and 3 hours ago, saying: I'll update the wiki so I don't have to keep it in my braiiiiins. [Apr 29 16:41:29 2008]
02:36 rmah joined 02:38 rmah left
Coke brains? 02:40
purl NO BRAINS FOR YOU! NEXT!
Coke braaaaains?
-> abed
03:03 davidfetter joined 03:04 davidfetter joined 03:21 patspam joined
Patterner brainz? 04:07
purl brainz is www.urbandead.com/
tetragon branes? 04:08
purl Help me, help me! Q::E melted my braaaaane.
04:29 contingencyplan joined 04:30 tetragon joined 04:52 Psyche^ joined 05:42 Zaba_ joined 06:24 slightlyoff joined 06:59 Theory joined
jonathan morning all 08:08
purl morning, jonathan
08:14 iblechbot joined 09:04 wknight8111 joined 09:23 ambs joined
ambs good morning 09:23
purl Is it morning again? YAWN...
jonathan morning ambs 09:29
09:34 barney joined 09:36 alex_ joined 09:37 alex_ left
dalek r27263 | jonathan++ | trunk: 09:37
: [rakudo] Refactor storage of type information so we now store it in a general %!properties hash.
diff: www.parrotvm.org/svn/parrot/revision?rev=27263
r27264 | bernhard++ | trunk: 09:48
: [Eclectus]
: Add missing ',' in NQP-generation.
: Make the 'gen_past_in_nqp' the default implementation.
diff: www.parrotvm.org/svn/parrot/revision?rev=27264
09:51 nopaste joined
dalek r27265 | bernhard++ | trunk: 10:08
: [Eclectus]
: Rip out support for 'gen_past_in_pir'.
: Add some notes in eclectus.pod.
diff: www.parrotvm.org/svn/parrot/revision?rev=27265
10:48 Zaba joined
dalek r27266 | jonathan++ | trunk: 11:01
: [rakudo] Basic implementation of WHENCE, though it certainly will need fleshing out later. This is the first step in being able to set initial attribute values of parent classes from the call to .new().
diff: www.parrotvm.org/svn/parrot/revision?rev=27266
11:24 mire joined 11:26 kid51 joined
dalek r27267 | jonathan++ | trunk: 11:34
: [rakudo] Refactor the Pair class so we no longer use the Parrot Pair PMC, which was mutable and seemed a tad broken too.
diff: www.parrotvm.org/svn/parrot/revision?rev=27267
11:45 askie joined 12:24 ambs joined
dalek r27268 | jonathan++ | trunk: 13:05
: [rakudo] Improve new method to take auto-vivification closures, and also to die if you specify a named parameter that doesn't correspond to an attribute. So now new(Foo{:x(42)}) style stuff works. 13:06
diff: www.parrotvm.org/svn/parrot/revision?rev=27268
13:14 gryphon joined
Coke someone ate his wheaties this morning. =-) 13:15
13:22 Senaka joined
Senaka likes the Parrot SW Foundation idea 13:22
seen infinoid 13:23
purl infinoid was last seen on purl 14 hours and 41 minutes ago, saying: <private message>
Senaka seen chromatic
purl chromatic was last seen on #parrot 1 day and 14 hours ago, saying: I'll update the wiki so I don't have to keep it in my braiiiiins. [Apr 29 16:41:29 2008]
Senaka mumbles.... 13:24
dalek r27269 | jonathan++ | trunk: 13:43
: [core] The copy opcode currently blows up if working with an anonymous class, since it has no type number. We'll choose to morph to an Undef instead for now; may not be perfect, but appears to work fine.
diff: www.parrotvm.org/svn/parrot/revision?rev=27269
r27270 | jonathan++ | trunk: 13:56
: [rakudo] Small addition to new to use the current protoobject's WHENCE, so now you can do things like my $foo42 = Foo{ :x(42) }, and then anything you instantiate from $foo42 will have x as 42 by default.
diff: www.parrotvm.org/svn/parrot/revision?rev=27270
14:10 iblechbot joined 14:40 cognominal joined
dalek r27271 | jonathan++ | trunk: 14:47
: [rakudo] Make it so we can specify multiple parameters in the WHENCE. This also sets us up a little more for slices, but they are some way down the list yet. These set of patches to introduce WHENCE will handle the common case of initializing superclass attributes, but will need some further changes later as we're supposed to wind up with lazily evaluated closure semantics. That looks a tad trickier, though.
diff: www.parrotvm.org/svn/parrot/revision?rev=27271
14:47 Senaka left 14:56 rhr joined 15:29 Senaka joined 15:30 Senaka left, Andy joined 15:39 Zaba joined 15:42 patspam joined 16:14 davidfetter joined 16:31 rdice joined
tewk seen pmichaud,jonathan 16:33
purl I haven't seen 'pmichaud,jonathan', tewk
tewk seen pmichaud
purl pmichaud was last seen on #parrot 18 hours and 45 minutes ago, saying: particle: I have a gprs modem with kubuntu :-)
tewk seen jonathan
purl jonathan was last seen on #parrot 7 hours and 4 minutes ago, saying: morning ambs
jonathan twek: ping 16:34
tewk So I'm getting back into parrot, and I want error reporting to work. For example I'd like PGE to report the line of the grammar file that is failing, not just the pir. 16:35
I've got a few tuits, just need someone to get me up to speed on what needs to be implemented/changed. 16:36
I love PGE, I hate its error reporting.
jonathan Aha, OK. WE have a branch for working on PDD13 things at the moment. Infinoid is working on moving us over to using PMCs for packfile stuff. 16:38
But it may be possible to start getting some of the bits we need for the bytecode annotations in place. 16:39
nopaste "tewk" at 155.97.237.62 pasted "I'd like to add grammar.pg lines numbers intermingled to this" (16 lines) at nopaste.snit.ch/12869
jonathan The spec is here: www.parrotcode.org/docs/pdd/pdd13_bytecode.html
The relevant part is "Annotations Segment" 16:40
This will give us the power to express line number, file, column and whatever else we need. 16:41
We need this Parrot-level support first, then there's the work to tie this into PGE, PCT and so forth. 16:42
tewk jonathan: so do we want labeled annotation segments like one for PIR and one for HLL 16:49
I would really like a HLL backtrace and a PIR backtrace eventually. 16:50
Infinoid regarding the PDD13 work, I've got some stubs in place but no meat yet... once I understand the current .pbc file format, I can start implementing RT#53130, and then we can start thinking about jonathan's nifty new format
jonathan twek: yes, we will be able to have both. 16:51
Infinoid: did you stub in the annotations segment PMC yet? 16:52
Infinoid yes, all the PMCs are stubbed 16:53
svn.perl.org/parrot/branches/pdd13...ations.pmc
shorten Infinoid's url is at xrl.us/bj2rq
tewk tewk checks out PDD13 branch
jonathan OK, cool. 16:54
particle has thought PFAnnotations might be better than PackFileAnnotations, but that's lipstick
Infinoid it is a mouthful
Coke does not tend to prefer abbreviations like htat. 17:03
but I spent half of the last six years getting paid to work on java.
Infinoid: what is #53130 for? 17:08
(isn't load_bytecode "foo.pbc" readonly, e.g.?)
Infinoid Coke: PDD13 task: basically, reimplement src/packfile.c in PMC form 17:09
I've broken the tasks out into RT tickets... #53130 is read support, #53140 is write support
Coke ah 17:17
17:21 Theory joined 17:52 ambs joined
Coke particle: ping. is rt.perl.org/rt3/Ticket/Display.html?id=45413 closable? 17:57
(or anyone with win32/msvc)
ambs ney 17:58
no msvc :)
Determining whether python is installed.........................yes, 2.5.2. 17:59
AAAAAAAAAAAAARGH!
18:00 Ivatar joined
Coke ? 18:01
dalek r27272 | ambs++ | trunk:
: print version without the leading v
diff: www.parrotvm.org/svn/parrot/revision?rev=27272
ambs Coke, parrot is detecting python. that can't be good 18:02
Coke is one of the languages using it? pretty sure we don't need it for anything core.
ambs probably
purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
18:04 purl joined
ambs purl, seen schwern 18:05
purl schwern was last seen on #perl 15 hours and 24 minutes ago, saying: YoMama: Microsoft Word Up!
ambs :-S 18:06
18:07 gryphon joined
Eevee does schwern work on parrot/perl6? 18:09
Coke nope. 18:10
ambs needs him for other reasons.
Eevee ah 18:11
ambs sorry, I could just msg purl. 18:12
dalek r27273 | jonathan++ | trunk: 18:14
: [rakudo] Make regexes in grammars end up in the right namespace. Also begin treating grammars more like classes, so we will be able to get inheritance working later on.
diff: www.parrotvm.org/svn/parrot/revision?rev=27273
ambs hmms... opengl.pir library has hardcoded library paths. not like it much 18:15
jonathan ok y'all, dinner time...back in a bit
japhb ambs: I'm here
damn, brb 18:16
ambs grins
rillian so, I love that parrot has opengl bindings. but, er, why? 18:19
Eevee more interestingly, can they be easily used from rakudo 18:20
japhb ambs, rillian: I'm back
OK, let me answer questions.
ambs japhb, tell me a thing
pmichaud Eevee: we don't have a good way to access the opengl stuff from rakudo yet
ambs japhb, that pathes on OpenGL.pir for loadlib, are generated during a config step? or are they always like that? 18:21
pmichaud in general, we haven't identified exactly where rakudo modules should go
Eevee ah
pmichaud (in the runtime path, that is.)
japhb ambs: I don't like it either, but right now there is no way to find the system headers for any other way than manually iterating over the possibilities.
Eevee be there really any good mechanism to call C from any p6 implementation? (actually, I don't ever remember reading anything about how that's supposed to work) 18:22
japhb You'll notice that some of the library names are just file basenames, and other ones have full paths -- this is because of the "different" way that Mac OS X does runtime linking
pmichaud Eevee: at present it's not well defined, no. 18:23
ambs japhb, right. I am having some similar problem with pcre, I think
pmichaud at least not for rakudo.
ambs although not sure yet
japhb So OpenGL.pir iterates over the known ways that different operating systems refer to the OpenGL libs, and just uses the first one that works.
18:23 AndyA joined
pmichaud ponders a temporary NCI.pm module.... 18:24
japhb pmichaud, Eevee: jonathan has said he will put some effort into making it possible to access other language namespaces from Rakudo. Once that works, we'll be golden.
rillian: Two reasons. 1) I am in the camp proposing that Parrot should ship with wrappers for common things (and even if it doesn't *ship* with said wrappers, for now we need to incubate those wrappers in the Parrot repo, just like Rakudo incubates here), 2) Because OpenGL is the subsystem I care most about. :-) 18:25
rillian I was mostly curious what you were doing with it 18:26
rib compiler with scripting extensions? :)
pmichaud japhb: I've already got preliminary code to get PCT to access other hll namespaces -- just need to test and commit it. 18:27
then Rakudo can use that.
but the real issue at the moment is figuring out how to export symbols from one place to another 18:28
and, in the case of OO libraries, getting the proper protoobjects in place for any given library
pmichaud suddenly figures out a way to to do the latter.
but I need lunch. bbl 18:29
japhb pmichaud: +1 to all four of your comments. :-)
ambs what should a library .pir, like OpenGL or pcre do, when it fails to load a library?
japhb rillian: Right now, just spinning a triangle. Eventually -- porting my Perl 5 3D engine to Perl 6 using Rakudo
ambs: In my case, if every way I can load the library fails, I finally give up and die. 18:30
ambs japhb, how do we die? :D
Eevee ponders re swig for rakudo? 18:31
rillian japhb: I love diversity! :)
japhb Eevee: something similar is the subject of a GSoC project
ambs: see OpenGL.pir: load_lib_with_fallbacks, near the end of the sub 18:32
Eevee oh so it is
purl no it isn't
pmichaud (die) use the die opcode
18:32 Zaba joined
Eevee that would be incredibly useful; c bindings and turing completeness are all you need to write anything (see also php) 18:32
japhb ambs: I actually throw an exception, but top level parrot then dies
ambs japhb, found it. 18:33
ambs will just die for now
pmichaud right -- just use the 'die' opcode
that's what it's for. :-)(
er, :-)
japhb pmichaud: why not throw an exception? I thought that was recommended for a module's behavior?
pmichaud japhb: die === throw an exception 18:34
die "foo" throws an exception with a message of 'foo'
ambs nice
japhb, you can remove three lines :D
pmichaud if nothing traps it, then parrot does a backtrace and dies
japhb pmichaud: Ah! So it just saves the work of having to create the exception PMC manually
pmichaud japhb: yes 18:35
in PCT we actually generalize it to a panic method
japhb ambs, pmichaud: excellent.
pmichaud so one can do $P0.panic('Exception: ', $S0, ' has been reached with ', $I0, ' status')
and automatically stitch together the arguments into a string that is then thrown using 'die' 18:36
japhb I also found a place to save a few lines in a similar way in triangle.pir -- but I haven't had a chance to implement the needed change to glut_callbacks.c to make it work. Damn $day_job!
pmichaud: very nice!
pmichaud but in general, to throw an exception with a string is simply 'die'
(unless the exceptions PDD has changed that recently)
really gone this time. 18:37
(lunch)
ambs hmms.. parrot doesn't have a -L flag, for library searching, right? 18:42
japhb ambs: I don't know exactly how parrot's dynamic loading works, actually. What you see in OpenGL.pir was the result of a couple days hashing out with the MacOS X people trying to get something that would work for now. It certainly seems less than ideal, to say the least. 18:43
ambs japhb, right 18:44
also, I had to set DYLD_FALLBACK_LIBRARY_PATH so library.t find libpcre under /opt/local/lib
japhb ambs: I was thinking at one point of moving load_lib_with_fallbacks to runtime/parrot/library/NCI/ so that everyone could use it, but I didn't want to further cement this ugly hack. I guess it depends on how long until the problem is dealt with cleanly. 18:45
OK, afk for lunch myself. 18:46
ambs sure
dalek r27274 | ambs++ | trunk: 18:48
: Fixed pcre.pir to die if library is not found.
: Added SVN properties to auto_pcre-01.t
: Removed trailing spaces on remaining files.
diff: www.parrotvm.org/svn/parrot/revision?rev=27274
ambs who is the current parrot pumpkin? is there any? 18:56
18:57 grim_fandango joined
Coke we don't have one, per se. 19:00
do you mean, "who is doing the next release?"
or do you mean 'who makes sure stuff that gets checked in is sane'? 19:01
the answer to the first one is chromatic.
ambs I know releases are cycling 19:03
and my question is probably the second
Coke it's shared across all the committers; many of us follow the commits list and comment on commits. 19:04
19:04 slightlyoff joined 19:05 slightlyoff left
Coke that's just post-commit, though. 19:05
Infinoid "make test" is a pretty good starting point for pre-commit
Coke there's pre-commit work done too. Ultimately, it's up to allison, but most folks with a commit bit act autonomously at some lvel. 19:06
Infinoid: that's a pretty good -ending- point. =-)
ambs nice.
Infinoid really? if it doesn't pass tests, I don't bother people with "is this sane?" questions
Coke if it does pass tests, you're done, though, neh? 19:07
Infinoid or you haven't written enough tests yet :)
Coke I was alluding to the decision about what should even be -in- parrot, and then the implementation, and *then* the fact that it's tested.
Infinoid the first third of that statement seems a bit ambiguous 19:08
ambs ok, sent an email for discussion about dynamic loading
now it is time for dinner
and I'll be back to read the flames and answers 19:09
Infinoid heh, in that order.
Coke Infinoid: for example "should we have opengl bindings" 19:11
or "should we provide transcendental math opcodes"
some stuff gets checked in without a real design review.
or architecture review, ftm. 19:12
a lot of it is done post-commit. (Which I think has been working ok in the pre-1.0 stage.) 19:13
Infinoid ok. I did get some flak for the opengl bindings :) 19:15
19:17 askie joined
Coke and, in an ideal world, you'd have gotten the flak before anything was committed! 19:20
... perhaps I should "platonic" there to avoid implications of my personal preference.
19:24 mire joined 19:30 cotto_work joined
jonathan returns from dinner 19:35
19:40 ambs joined 19:41 sjansen joined
Coke pmichaud: is it possible that tryeq and tryok are meant to trap an exception, potentially useful when you're just starting out? 19:43
pmichaud meant to, perhaps. But in the code they don't do that.
as written they're local to arith.t, not testing in general. 19:44
Coke then by all means. You should have moritz make the SOC guy do that. =-)
pmichaud and in arith.t, any exceptions that occur would happen before tryeq/tryok are invoked.
so they're kinda irrelevant. 19:45
well, this came up in response to some questions from obra++, who is working on understanding the tests so he can put together a guide for people wanting to work on Perl 6 tests 19:46
I agree with having the SOC guy work on it, but I also think there's plenty to do (and it's timely) that we can also handle it now
dalek r27275 | kjs++ | trunk: 19:50
: [docs] update pir introductionary articles
diff: www.parrotvm.org/svn/parrot/revision?rev=27275
ambs any fink user around? 19:53
none around, it seems 19:57
jonathan I tweaked the spec tests a little today, but it's tedious and I don't feel I made much progress to getting us anywhere close to having a set of tests that we expect to pass when running make spectest, which is what I want. 19:58
20:01 rafl joined 20:02 davidfetter joined
ambs and chromatic is not around again 20:04
well, sent an email 20:05
20:07 Zaba_ joined
ambs and another 20:07
ambs waits for flames again 20:08
:D
Infinoid funny, I thought the NCI stuff did dlopen(), rather than actually linking the binary against them 20:10
ambs Infinoid, they do dlopen 20:11
but the binary is being linked as well
those -l should be removed from the CC line used to compile parrot
20:12 wknight8111 joined
Infinoid if parrot links without them, we obviously don't need them 20:12
ambs I know
Infinoid so I agree :)
ambs we need to correct the configure system about that
just that :)
Coke ambs: otool -arch all -L $*
(my ~/bin/ldd script) 20:13
ambs oh, nice
Coke, but that doesn't solve the problem :D
Coke no, but it will avoid all those nasty greps. =-)
ambs sure
Coke++
jonathan pmichaud: Just looking into passing flags from PAST to another compiler (for passing on sigspace and so forth). 20:24
I don't see any way we can currently do this.
Tene Anyone have any comments on how to implement state vars in rakudo before I start hacking aimlessly? 20:25
jonathan Tene: I'd not really thought about that yet.
I can't think of a good way right off the top of my head. 20:26
Tene Neither can I. I'll hack around and see what I can work out. 20:27
:)
jonathan Good luck! :)
jonathan hopes Tene works it out. :-)
pmichaud jonathan: there's not a way to do this yet. It needs to be added. It's in my brain as "things I know how to do but need time to write the code"
Tene I'm also looking at resuming work on cardinal.
pmichaud cardinal++ (this came up in my dfw.pm presentation on Tuesday) 20:28
Coke or tcl.
Coke whistles innocently.
Tene Yes, or tc... eh? I was?
Coke ^_^
Tene :)
jonathan pmichaud: In your brain in a, you can explain to me how you plan to do it in 2 minutes so I can write the code instead? 20:29
pmichaud jonathan: short answer: add an "arguments" entry to the PAST::Var node
jonathan PAST::Var?
pmichaud sorry, PAST::Op 20:30
or wherever compilers end up now
I guess it's PAST::Block
jonathan Blocks.
:-)
OK, arguments entry takes a hash?
pmichaud yes
jonathan And we flatten that into options?
pmichaud just a hash, passed as :named :flat
hadn't decided what to call it
possibly compiler_args or compilerargs or something like that
jonathan compiler_args works for me... 20:31
pmichaud should be analogous to whatever the entry that identifies the compiler is
it's rare enough that the name shouldn't be that significant, as long as it's clear.
compiler_args it is, then.
jonathan :compiler
OK, cool.
pmichaud *or*
oh, never mind
purl Okie dokie
jonathan :-)
pmichaud bad idea
Tene pmichaud: cardinal came up how? 20:32
pmichaud Tene: people were asking about what other languages were on Parrot, and there are a few people interested in ruby
I said I was hoping that someone would pick up the cardinal effort again now that we have PCT available
Tene does anyone here actually speak ruby? 20:36
ambs not me 20:38
pmichaud I looked at it once and decided I could do JIT learning of it when I needed it :-) 20:41
Eevee "JIT learning" is the best thing I've heard all day 20:42
ambs then, pmichaud++ :) 20:43
particle "jit learning" aka open-book test 20:45
20:45 Theory joined
particle coke: re #45413: resolved. 20:47
pmichaud I wish I could take credit for the term -- but it comes from one of my best friends and colleagues (who is designing "jit learning" systems for handling medical trauma)
Coke particle: danke. 20:48
jonathan pmichaud: done. 20:59
dalek r27276 | jonathan++ | trunk:
: [PCT] Allow PAST::Block to take a compiler_args argument, which we use to pass additional options on to a compiler.
diff: www.parrotvm.org/svn/parrot/revision?rev=27276
21:00 Zaba joined
dalek r27277 | jonathan++ | trunk: 21:11
: [rakudo] Make token and rule imply :s and :ratchet as they're meant to.
diff: www.parrotvm.org/svn/parrot/revision?rev=27277
ambs night 21:23
purl, good night
purl sleep fast, sleep tight, don't let the bed bugs bite
ambs better
later :)
21:33 japhb joined
jonathan Write-up of what I did today on Rakudo: 21:49
use.perl.org/~JonathanWorthington/journal/36308
(Vienna.pm)++
Infinoid jonathan++ 21:51
particle cla?
purl cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement
jonathan particle: Was that for me? 21:54
particle no, it was for a user in another dimension. please ignore.
jonathan :-)
pmichaud jonathan++ is starting to make me feel inadequate. :-)
jonathan Was gonna say, I'm sure I already signed one of those... 21:55
particle pmichaud++ # you're not inadequate yet :)
jonathan pmichaud: Oh, don't worry, I'm leaving you all the *hard* bits. ;-)
pmichaud heh
I think we have a (wonderful) case where each of us thinks the other is working on the hard bits. :-) 21:56
jonathan The docs on how you match against stuff in a grammar in S05 feels a bit sparse to me, or am I missing it? 21:57
pmichaud basically it's the TOP rule
jonathan I know smartmatch against it should match against TOP.
pmichaud everything else is by method
e.g.: 'foo' ~~ / <Grammar::rule> /
or perhaps 21:58
Grammar::rule('foo')
or even
Grammar.rule('foo')
or
jonathan OK, the third one is the only one I can see inheritance working on?
Or should it work somehow for all of 'em?
pmichaud first and third one
I'm not sure about the second.
PGE dtrt with respect to <Grammar::rul> 21:59
er, <Grammar::rule>
jonathan OK, I should look at what it's Right Thing is to make Grammar.rule work
Also while I'm asking questions (for future implementation...)...
Should you be able to do things like grammar Foo { ... }; say Foo.WHAT()
If so, what should it report? 22:00
pmichaud I think so, since a grammar is just a class
Foo.WHAT() would report 'Foo'
jonathan I'm trying to get my head around, how class-like grammars actually are.
OK, they are class like to the point that we may as well just call make_proto on them?
pmichaud at the moment I think 'identical with a few extra bits like TOP' is sufficient 22:01
jonathan And Foo is actually a proto-object?
particle grammars and classes are isomorphic
pmichaud and yes, make_proto makes sense to me
jonathan OK.
pmichaud internally I've been thinking of grammar as just another form of class
jonathan I tried that and it got in the way of the Foo::rule stuff.
So I got something to work and decided to leave making them more class like and doing inheritance and stuff for another day. 22:02
pmichaud PGE isn't smart enough to understand Foo::rule
jonathan :-)
pmichaud (it should be, but isn't)
feel free to file a ticket on that and I'll take it
jonathan No, I meant in Perl 6 itself, outside of a rule.
I mainly wanted to get the rules to end up in the right namepace today, though, which I managed.
pmichaud using the 'grammar' option to Perl6Regex ? 22:03
(or maybe it's 'namespace' -- i forget)
jonathan No, :namespace passed along to the compiler.
Well, not even in the compiler args, but you don't need them - POST was already passing namespace as an option.
pmichaud oh yes, right. 22:04
jonathan Perl6Regex does take a grammar option too, I spotted that earlier on today, but haven't looked into what it does.
pmichaud it's really just the same as 'namespace'
jonathan OK.
pmichaud except that it tells the rule what sort of object to return if the rule is invoked with a non-match object
jonathan Oh.
That's probably going to be rather useful for making the inheritance work. 22:05
pmichaud right now 'grammar' is Perl6Regex's equivalent of :namespace
I've been thinking it should change to :namespace for consistency
jonathan It seems that it already takes namespace anyway.
pmichaud PGE does, or POST ? 22:06
if passed a 'grammar' adverb, Perl6Regex puts the rule into the correct namespace
jonathan I believe PGE must; POST simply passes the namespace on to PGE, and doesn't emit anything itself.
pmichaud hmmmmm
jonathan I may be mis-remembering the code here, that was my impression.
pmichaud I need to review that
jonathan :-)
pmichaud I know my memory of it is a bit foggy at the moment 22:07
jonathan The other thing I need to work out is what actually goes into the namespace for a role.
At the moment it's just the Role PMC instance.
pmichaud wouldn't role methods show up there as well somehow?
jonathan Yes, I guess so.
But I mean, if I do 22:08
role Foo { }
Then Foo is just an instance of the Role PMc
pmichaud It's not a proto of some sort?
jonathan You can compose them with does, but that's it.
pmichaud (but what you wrote seems entirely reasonable to me) 22:09
jonathan Right, it's not a proto.
And you can't do .WHAT on it and so forth at the moment.
pmichaud does Perl 6 allow .WHAT on roles?
jonathan The idea of a proto role didn't quite fit nicely in my head since I see them as uninstantiable things.
I don't know.
I don't think S12 explicitly says it should.
pmichaud roles don't quite fit nicely into my head in general, but only because I have so little experience on them 22:10
anyway, if Foo resolves to a Role PMC that seems like a reasonable first start for now
jonathan But you'd expect there is some way to introspect what methods they have and so forth.
OK, sounds good.
purl speakers so loud they blow women's clothing off!
jonathan ...I need to stop saying "sounds good" in this channel.
pmichaud or fix purl.
jonathan /kick purl
I need to go revisit attributes in roles. 22:11
pmichaud ...and you said you were leaving me the hard parts...:-)
jonathan I didn't really worry much about those, just methods, in the first go around.
pmichaud I agree, methods is good for the first go around
jonathan And I think Larry changed them since last time I looked at it.
particle purl, no, sounds good is |<reply>i seem to remember a line from "The Italian Job" about that.... ;)
purl OK, particle.
pmichaud He does that. Shoot, he just changed S05 on me :-)
(he did check with me first, however :-) 22:12
jonathan The hard bit I'm more worried about with roles is type parameterizing them.
22:12 Limbic_Region joined
jonathan I haven't given it much thought yet, though. 22:12
pmichaud that goes "way down the list" on milestones 22:13
jonathan Yeah.
pmichaud we can explicitly put "parameterized types" in the list if you want
jonathan I've no plans on doing it anytime soon.
particle jonathan: if you were to move on to something else, what would it be?
jonathan wonders how general particle's question is
particle another rakudo roadmap item 22:14
pmichaud I'm expecting to get lots of coding time this next week
jonathan I'm currently trying to do stuff around the top.
Though I leave the very top two items to pmichaud
pmichaud my $otherjob clears up a bunch after this weekend
particle i don't mean living in uk/living in spain/living in ??
pmichaud: still aiming for HLL first?
jonathan Oh, I'm leaving Spain after next week anyway. 22:15
Moving to Bratislava.
pmichaud I have a long list of things atm
updating parser for listop is near the very top
I have a long list of "somewhat important and easy-to-do" things atm
particle that's a big win.
jonathan On roadmap, my plan is to get a bit more grammars stuff done (make them more class like, get inheritnace to work and so forth). 22:16
particle i'm going to put some tuits into the tests
pmichaud I want to update parser for listop, which means that we can get sub foo($x = 'whatever') { ... } working quickly
jonathan For OO stuff, there is tons and tons to do. Like today I did the first cut of WHENCE.
pmichaud as a general approach for now, I'm tending to work from the top of the milestone list down 22:17
particle we need tests for WHO WHAT WHENCE etc
jonathan We do.
pmichaud I'm very happy if jonathan++ picks-and-chooses the features that he's interested in at any moment
jonathan I would really, really love somebody to work on OO stuff.
erm
geck
to work on OO *tests*
Well, they can work on OO stuff too. But the tests would be great to have more of. 22:18
pmichaud put out a call in a blog entry, and on perl6-compiler, and possible perl6-language
jonathan And it would make me really, really happy to be able to type make spectest and get a clean sheet.
Or close enough that I can know I didn't break anything while adding feature X.
pmichaud jonathan: okay if there's lots of skips and todos?
that's a good high-priority item -- updating t/spec with markers so that rakudo's make spectest passes 22:19
jonathan Yes, because they don't show up as failures in the final report.
I spent half an hour throwing in some more #?rakudo directives today.
pmichaud I think it's okay to add them a bit liberally at the moment
jonathan Yeah, it's just very tedious. 22:20
And there's no way to say "just skip this entire test file" with fudge, or I didn't see it.
pmichaud seems like there ought to be
I thought we had discussed a way to do that? 22:21
jonathan I haven't been involved in any discussions about fudge at all really, I only really started trying to make use of it today. 22:22
pmichaud my question was more directed to particle
jonathan Ah, OK.
Is fixing fatarrow parsing on your list at all?
pmichaud yes 22:23
jonathan OK, cool.
pmichaud I should make a "Patrick's list" wiki page
jonathan What about :precedence('transparent') ;-)
pmichaud ... do you mean colon pairs with postcircumfix or particularly :precedence ?
jonathan Particularly precedence. 22:24
pmichaud (or did I miss a reference?)
particle isn't there a skipall?
particle checks
Eevee okay you need to all stop having the same length names
jonathan It's used for parsing hypers.
Infinoid Eevee: me too
Eevee gah
pmichaud Eevee: it could be worse. We could all have nicks that begin with 'p' :-)
Eevee half of you do! 22:25
ponathan hah
pnfinoid when I google for "postcircumfix", the entire first page of results is rakudo, perl6, and/or pugs
particle you've been pwned!
pnfinoid ph34r.
Eevee well now you just look like one person talking endlessly to emself 22:26
particle laughs at his tab completion list for p
pmichaud I do that often, yes.
(talk endlessly to myself)
sometimes I even listen.
pknight8111 the conversation is better with yourself
pnfinoid as long as you say intelligent things, its a net plus for everyone
pmichaud jonathan: for :precedence('transparent') -- that falls in with hyperoperators in ROADMAP :-) 22:27
so it's a ways down on my list.
ponathan pmichaud: On the transpartent precedence - it's needed for parsing hyper ops, which is some way down the list, I know. I don't understand PGE well enough to know how hard that is.
pmichaud heh
Eevee when you vehemently disagree with yourself or ask yourself for clarification you start to look a bit nuts
pmichaud I'm thinking that hyperops will be outside of PGE somehow.
particle jonathan, iirc this won't overflow: #?rakudo 999 skip 'reason' 22:28
ponathan particle: That's sick, but works for me.
pmichaud particle: does it actually count 999 blocks?
and/or tests, or whatever?
particle no
ponathan You'd have to add #?DOES 42 # or whatever the number of tests is
Jonathn GECK!
particle i mean, if there are more than 999, it'll work 22:29
less than 999, it'll be like skipall
Jonathan pmichaud: What do you mean by "outside of PGE"?
pmichaud Jonathan: I'm thinking that I'll consider hyperops in conjunction with also looking at LTM
22:29 teknomunk joined
pmichaud which may mean that the entire operator precedence parser may change 22:30
Jonathan Ah, OK.
And that is certainly a Hard Thing that I'm happy to leave to you. :-)
pmichaud heh, yes, that definitely counts as a hard thing :-)
anyway, time for me to go to dinner
Jonathan Basically, though, once you get us the ability to parse hypers and reductions and crosses, I don't see the rest being so hard (e.g. making them work). 22:31
OK, enjoy.
pmichaud I agree
Jonathan I will sleep soon too.
pmichaud and I'm eager to see hypers and reductions also
Jonathan Sure, they're a cool thing.
pmichaud I've even though of having rakudo simply generate >>X<< tokens for every X
*thought 22:32
Jonathan That'd be one way.
pmichaud that would be a lot of tokens
Jonathan If LTM is planned for this summer, we can wait until them, IMO.
pmichaud my thinking exactly
Jonathan It's not like we've a shortage of other tasks.
pmichaud if ltm yields some obvious answers, I'll do it then -- if not, then we can do a couple of temporary workarounds 22:33
anyway, gotta run
Jonathan Ok, enjoy dinner, cya
Eevee LTM?
purl LTM is longest token matching
Eevee that is the first time purl has told me anything relevant
Infinoid pats purl 22:35
purl pats Infinoid back, harder
Infinoid Jonathan: out of curiosity, is there any documentation that's reasonably relevant for the current .pbc format?
PDD13 is obviously the goal, but docs/parrotbyte.pod also doesn't look quite right
but if one of those is pretty close, I can use it
Eevee glances over S12 again 22:36
Infinoid (learning the file format by reading the source is proving to be slow.)
particle Infinoid: the code is self-documenting. 22:38
Jonathan www.parrotcode.org/docs/parrotbyte.html is somewhat accurate
22:38 Zaba_ joined
Jonathan But we now have the header format of PDD13. 22:38
But the other bits are accurate.
Infinoid oh, ok, great. thanks! 22:39
Jonathan Or reasonably accurate.
It's missing a section on the PIC segment.
I asked leo to write one a few times, because I didn't understand it, but that never happened, and I still don't understand it. :-) 22:40
However, I'm moving an hour away from him in a week and a half, so I can probably physically extract it from his braaaiiins. :-) 22:41
particle i'll send you a box of crazy straws.
Eevee then *he* won't understand it
Infinoid does he even understand himself? 22:42
Jonathan Well, he implemented it. ;-)
Infinoid well, I'm pretty sure I'll understand it after reimplementing it 22:44
though, to be honest, I don't fully understand PDD13 either
I think I sent you some questions about that. :)
Limbic_Region Win32/Cygwin is now passing 30.49% of rakudo spectest
Jonathan Oh, oops.
Limbic_Region :-)
Jonathan Limbic_Region: Given I develop primarily on Win32, Rakudo gets quite a bit of love there. 22:45
Infinoid: Did you email them?
particle same here
Limbic_Region Jonathan - Win32/MinGW doesn't report the same though - I have no idea how much is passing/failing there
Jonathan Oh, curious.
purl hands Jonathan a dead cat
Limbic_Region and I am not quite sure how it is possible to fail 200% of the tests
Infinoid Jonathan: good idea. expect something in the next few days
Jonathan OK, email is the best way to give me stuff to do that I won't forget. 22:46
Limbic_Region Jonathan - would you like a nopaste of the output I see with Win32/MinGW?
Jonathan I'm normally not *this* bad, but in the last week I've had someone to visit, and at the same time been planning moving country, plus trying to work out what to speak about at two conferences...
Limbic_Region: I'd be interested to know, if Parrot generally fails a lot of tests there. 22:47
Though if it's 200%, then I suspect it may be a test harness issue.
Infinoid Jonathan: I always am that bad, if its not in the inbox, it doesn't exist for me... no worries.
Limbic_Region this is specific to Rakudo
I don't run parrot's test suite except for the monthly release cycle
Jonathan OK, maybe email me them, I really need to sleep soon and I won't get chance to look at it any more tonight. 22:48
Infinoid no problem, I'm outta here anyway
Jonathan (that was for LR)
Limbic_Region right - will email you the nopaste link
Jonathan OK, cya
Infinoid oh. seeya regardless :)
Jonathan :-)
Infinoid sushi & 22:49
Jonathan Limbic_Region: Thanks, may be able to make sense of it, don't have MinGW set up here.
Limbic_Region purl nopaste
purl somebody said nopaste was at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating
nopaste "Limbic_Region" at 68.49.236.220 pasted "For Jonathan - Rakudo spectest output on Win32/MinGW - note, no summary" (997 lines) at nopaste.snit.ch/12870 22:51
22:52 tetragon joined
Limbic_Region email sent 22:55
purl Jonathan 22:56
purl Jonathan is mailto:jnthn@jnthn.net
Limbic_Region hrm
that's not the email address in CREDITS 22:57
*shrug*
Jonathan What's in CREDITS? 22:59
The one purl gave you is right.
Updated CREDITS. 23:02
dalek r27278 | jonathan++ | trunk:
: Update my CREDITS entry to have correct email and website.
diff: www.parrotvm.org/svn/parrot/revision?rev=27278
Jonathan Limbic_Region: please resend to the one purl gave
Limbic_Region Jonathan - ok - I already sent to 2 23:03
will send to that one too
Jonathan OK. :)
Limbic_Region and my subject isn't quite accurate 23:04
it is producing summary info
but it isn't useful
Jonathan ok, thanks 23:10
sleep now
Jonathan &
23:22 obra joined
obra rakudo-folks: what's the current expected output of 'make spectest' 23:23
?
particle many many failures 23:30
we need to add more #?rakudo skip 'parsefail' and similar directives 23:31
pmichaud obra: we were just discussing that we should probably decorate most of the existing t/spec files so that 'make spectest' is more useful on rakudo
(about 60 minutes ago :-)
particle Jonathan did some of that today, but he did way too much work 23:32
he added #?DOES 3 etc everywhere, and we don't generally need that
pmichaud I agree
particle he also deleted some pod we should be able to parse 23:33
23:33 teknomunk joined
pmichaud also, instead of #?rakudo 999 skip 'reason' I think we should use 99999 23:33
particle /pugs> svn diff -c 20340 23:34
pmichaud easier to search for, less likely to hit 100000 tests than 1000
particle i *think* we caus #?rakudo eval 'somethingorother'
s/caus/can/
maybe eval exit; 23:35
pmichaud can we support eval yet? I'd be a little surprised about that. 23:36
particle no, it's a fudge directive
pmichaud right, but since it depends on a conditional parse....
particle it doesn't write 'eval' in the generated code
pmichaud then how does it work? 23:37
particle it writes what's after the fudge directive called 'eval'
iirc
pmichaud #?implname [num] eval 'reason'
eval num tests or blocks and skip(num) on parsefail
particle ah, yep it does eval
pmichaud we have an implementation of eval, but it doesn't understand outer scoped lexicals yet 23:38
obra Where does the Test.pm which Rakduo uses live? 23:39
pmichaud languages/perl6/
(top level in that dir)
particle++ was going to see about updating it a bit, I think
obra ..right in front of my nose
pmichaud it uses arity-based multisubs to avoid the need for optional params 23:40
particle but we can handle optional subs now
pmichaud we can handle optional params w/o initializers now 23:41
particle i mean... optional args
pmichaud sub foo($x?) { ... } # ok
sub foo($x = 4) { ... } # not yet impl
23:41 kid51 joined
Eevee that's can't be too hard, can it? 23:41
pmichaud the tricky part is parsing the expression following the '='
particle sub ok($cond, $desc?, :$todo) # works
pmichaud eek~ 23:42
get rid of that :$todo
evil
stop it
icky
particle hee
pmichaud it's now
particle i put it there just for you
pmichaud todo('reason'); ok('whatever')
particle yes.
pmichaud but yes, named parameters are properly optional
particle sub ok($cond, $desc?) # will now parse in rakudo 23:43
pmichaud Eevee: it's not too hard to do the '=' part, though, no. It's on my high-priority list.
as in, I think I will get to it sun or mon
(it would be sooner but I have to travel/work fri/sat)
Eevee ah okay
particle multi sub ok($cond, $desc) { 23:44
proclaim($cond, $desc);
}
multi sub ok($cond) { ok($cond, ''); }
can be replaced with
multi sub ok($cond, $desc) { 23:45
$desc //= '';
proclaim($cond, $desc);
}
but, if by sunday, that can be
multi sub ok($cond, $desc = '')
or whatever the syntax is, i don't think it's worth changing now
pmichaud is it worth converting things to = '' syntax, or should we just leave them as they are now? 23:48
particle after = '' is in, i say we use it
it's more DRY
pmichaud okay. I'm trying to keep Test.pm on the simple side as well. :-)
particle multi sub is($got, $expected) { is($got, $expected, ''); } 23:49
hurts my eyes
pmichaud gee, I always thought that was kinda elegant :-)
particle unnecessary use of word 'multi'. five yards. repeat down. 23:50
Eevee elegrant grossness
sorta like the nonword "elegrant"
which I may now coin to cover my typo
obra heh
particle flagrant use of elegance. 10 yards. loss of down. 23:51
pmichaud flagrant use of football metaphors. 15 yards, ejection from channel.
Eevee (is this good or bad I don't watch much baseball)
obra arith......1/188 get_bignum() not implemented in class 'Float' 23:52
current instr.: 'infix:+' pc 8651 (src/gen_builtins.pir:6074)
23:52 particle joined
Eevee you sure showed you 23:52
particle sometimes, i get so high, i jump back, and kick myself. 23:53
obra any idea what horrors I have brouught upon myself?
pmichaud obra: I don't think Parrot (or Rakudo) seamlessly handles bignum conversions yet
I'm a little surprised to see that, though
obra I've been dumbing down arith.t 23:54
the only questionable thing I've done so far is to comment out "undefine $a"
not actually knowing perl 6, I don't know if that's a fuction in Pugs Test.pm or a missing builtin
pmichaud I guess the numbers are going outside of Parrot's Float range somehow 23:55
obra well, it's very carefully constructing insanely large numbers
pmichaud I was thinking it was perhaps cribbed from the p5 test suite
anyway, I would #?rakudo skip those until we get bignum support in 23:56
obra ok( abs( 13e21 % 4e21 - 1e21) < $limit);
is test 5
23:56 Ademan joined
pmichaud I think I still prefer 23:56
is_approx( 13e21 % 4e21 - 1e21, 0 );
particle is_approx++
pmichaud I don't know if Pugs' Test.pm has is_approx though 23:57
nor do I know how important it is to be able to test to the limit
obra this test file had its own variant thereof
pmichaud that's another case where I wonder if it was cribbed from an equivalent p5 test
obra what's the ETA on parrot giving sane line numbers / stack traces for failures like that?
pmichaud I'm guessing 3-4 weeks 23:58
it needs some parrot support
obra nods
pmichaud I could see about prioritizing a workaround, but I keep hearing noises about people fixing the bytecode format so that I won't need the workaround
obra nods 23:59
pmichaud it's important enough that a workaround might be worthwhile
particle fudge supports is_approx, so i say we use it
if pugs' doesn't have it, it'll have to implement one
obra arith......1/188 Null PMC access in invoke()
particle is|ok|is_deeply|is_approx|isnt|like|unlike|eval_dies_ok|cmp_ok|isa_ok|use_ok|throws_ok|dies_ok|pass|flunk