#parrot Parrot 0.6.4 "St. Vincent Amazon" Released | parrotcode.org/ | 15 new, 648 open, 80 stalled tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 24 July 2008.
00:10 AndyA joined 00:12 kid51 joined 00:37 Ademan joined
cotto_work petergibbs++ #explaining some of the sprintf.t magic 00:44
:q
good thing nobody's paying attention
00:48 dngor joined 00:54 Andy joined 01:10 particle1 joined
dalek r29741 | jkeenan++ | parallel: 01:16
: Simplify condition for printing verbose output by eliminating '&& == 2'. This makes this config step like all others with verbose output functionality.
diff: www.parrotvm.org/svn/parrot/revision?rev=29741
r29742 | jkeenan++ | parallel:
: Provide basic tests. Move list of required template files into _init(), then
: test for their presence.
diff: www.parrotvm.org/svn/parrot/revision?rev=29742
r29743 | jkeenan++ | parallel: 01:25
: Pull hard-coded strings holding names of source files into _init(), then
: modify tests appropriately.
diff: www.parrotvm.org/svn/parrot/revision?rev=29743
01:26 TiMBuS joined
dalek r29744 | jkeenan++ | parallel: 01:27
: Minor typographic touch-up. 01:28
diff: www.parrotvm.org/svn/parrot/revision?rev=29744
r29745 | jkeenan++ | parallel: 01:33
: Pull hard-coded strings holding names of source files into _init(), then modify tests appropriately.
diff: www.parrotvm.org/svn/parrot/revision?rev=29745
01:36 Andy joined
dalek r29746 | jkeenan++ | parallel: 01:39
: Typographic cleanup to bring line lengths into conformance with coding standards.
diff: www.parrotvm.org/svn/parrot/revision?rev=29746
r29747 | jkeenan++ | parallel: 01:44
: Do change intended earlier: if defined ---> if in 5 locations.
diff: www.parrotvm.org/svn/parrot/revision?rev=29747
01:50 bacek joined 01:57 Khisanth joined 02:00 teknomunk joined 02:03 rdice joined
dalek r29748 | coke++ | trunk: 02:10
: [tcl] Todo more spec tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=29748
r29749 | cotto++ | trunk: 03:39
: [ops] add a test that would have segfaulted before r29735
diff: www.parrotvm.org/svn/parrot/revision?rev=29749
03:54 Ademan joined 04:31 particle joined 05:22 Andy joined 05:47 Psyche^ joined 07:22 ewilhelm joined
dalek r29750 | petergibbs++ | trunk: 07:23
: Re-wrote sprintf2.t to simplify adding more tests.
: Added more tests including %*.*f
: Fixed spf_render to make %*.*f test pass.
: Changed sprintf.t to skip test 300 which now fails differently. 07:24
diff: www.parrotvm.org/svn/parrot/revision?rev=29750
07:39 Ademan joined 07:40 Andy joined 08:15 AndyA joined 08:59 NordQ joined 09:15 Patterner joined 09:27 Whiteknight joined 09:30 iblechbot joined 09:48 masak joined
masak is there an Emacs mode for PIR? 10:16
10:40 apeiron joined 10:47 rurban joined
rurban Can I ask about about make install? 10:48
10:55 NordQ joined
masak rurban: you can ask about anything. 10:56
rurban sure. but do I get an answer? 10:58
Ok. I added now to almost all languages Makefile the following targets: installable, test-installable and install 10:59
install copies installable_$LANG@exe to bin_dir/parrot-$LANG@exe@, pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1, 11:00
define DOCS and cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG)
masak was that the question? 11:02
rurban If this okay or if there was something else planned for make install?
jonathan hi all
rurban Hi
purl hola, rurban.
masak jonathan: hi
jonathan finally woke up....after a LOT of (it seems needed) sleep.
masak rurban: I'm sure jonathan can answer your question 11:03
rurban jonathan: q about make install for the languages
I added now to almost all languages Makefiles the following targets: installable, test-installable and install
install copies installable_$LANG@exe to bin_dir/parrot-$LANG@exe@, pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1,
define DOCS and cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG)
If this okay or if there was something else planned for make install? 11:04
Or should we distribute just the $LANG.pbc into some dir?
pbc_to_exe --install is handy to generate self-hosting binaries
jonathan As far as I know, there weren't any solid plans for make install yet. 11:05
It's been advised as something to just not do for quite a while now, because it was broken.
rurban Ok, So I'll just create a TODO ticket and write my plans there. Thing is, I want to package parrot and the languages for cygwin 11:06
jonathan Yes
To me, what you just suggested seems sane.
masak rurban++
rurban Without self-hosting installables I cannot do that, op needs the build_dir to run the langs.
Ok, so I'll continue
jonathan From what I understand, none of this works at all now, so if you're making it do something useful that's an improvement. :-) Even if folks see need to tweak the exact paths later. 11:07
rurban What I thought about is to generate the config/root.in framework automatically from some simplier definitions 11:08
I just need pir deps, the resuklting pbc's, the pmc's, the DOCS and the source for pod2man
jonathan That sounds like itmay make it more maintainable. 11:10
*it may
rurban just like automake. users shoudl be able to override test, test-installable and some pmc and pbc targets 11:11
well, language authors.
purl language authors are in LANGUAGES.STATUS.pod, mostly
rurban The problem is: what about langs not in our tree? kea-cl e.g. basic is also out. 11:14
jonathan I'm not so sure what we can do about those. 11:16
I guess, they'll come with their own configure/make and so on. 11:17
I think eventually, all language projects will move to their own repository. But I think that's a medium-term rather than a short-term thing - Parrot just ain't stable enough to make that a sensible option yet.
jonathan decides to spend the first part of his Rakudo day reviewing patches and tickets in the queue and apply/fixing stuff. 11:18
11:19 ruoso joined, pmurias joined
rurban [perl #57296] [TODO] make install -C languages 11:36
dalek r29751 | jonathan++ | trunk: 11:38
: [rakudo] Make sleep return the value it was given, which for now fakes the number of seconds slept. More importantly, it avoids a Null PMC Access exception. We can improve this once sub-second time support is in place through the time() call. Patch from Carl Mļæ½sak <cmasak at gmail.com> (masak++).
diff: www.parrotvm.org/svn/parrot/revision?rev=29751
masak heh, dalek encodes into latin-1, and rakudo_svn on #perl6 encodes into misformed utf-8... 11:47
it's not easy coming from a country using strange accents on some of its letters 11:48
:)
jonathan masak: I've appreciated this fact much more since moving to such a country.
masak jonathan: .sk, right? 11:49
jonathan Here an accent makes the difference between "woman" and "men". :-)
masak: Yes
masak jonathan: yes, we have similar differences :) 11:50
jonathan Hmm...do we not have any tests anywhere for multi... 12:01
masak there's a few pf them in the Pugs test suite 12:04
jonathan I'll look at getting some together for Rakudo. 12:05
I planned to spend some time writing tests before implementing the Perl 6 MMD algorithm, so I could make sure I had the whole thing clear in my head.
For now, just wanted to add something since "multi foo" now parses (with upcoming patch). 12:06
masak sounds good.
dalek r29752 | jonathan++ | trunk: 12:09
: [rakudo] Make multi f() {} parse and work the same as multi sub f() {}. Resolves RT#57122.
diff: www.parrotvm.org/svn/parrot/revision?rev=29752
12:11 paco joined 12:39 kid51 joined
dalek r29753 | jonathan++ | trunk: 12:40
: [core] When trying to write to a closed file handle, we should throw an exception, not have an assertion failure. That way HLLs or programs can catch it.
diff: www.parrotvm.org/svn/parrot/revision?rev=29753
12:41 rurban_ joined 13:07 Limbic_Region joined
dalek r29754 | jonathan++ | trunk: 13:43
: [rakudo] Give a reasonable error message when trying to inherit from a non-existent class (we need something better eventually, but this beats odd exceptions and assertion failures).
diff: www.parrotvm.org/svn/parrot/revision?rev=29754
r29755 | jonathan++ | trunk: 14:16
: [pct] Fix the Null PMC exceptions that could occur in the return_pir control handler. This resolves at least one Rakudo ticket, and should help anyone using NQP who was also seeing this bug.
diff: www.parrotvm.org/svn/parrot/revision?rev=29755
jonathan Whoever put the blue box in RT that gives a link to the editable version of a ticket deserves a beer. 14:18
14:22 bacek joined
bacek g'night everyone 14:22
14:25 davidfetter joined
jonathan wonders when the post-OSCON hackathon starts 14:39
14:41 Andy joined
TimToady it starts in about an hour and 20 14:42
jonathan Aha, OK.
jonathan moved an extra timezone east after moving from the UK, and is even further from whatever the timezone is in Oregon. 14:43
dalek r29756 | jonathan++ | trunk: 14:48
: [rakudo] Make multi sub foo { } work (the case where you have a multi, but no signature, which means it's a parameterless variant).
diff: www.parrotvm.org/svn/parrot/revision?rev=29756
masak jonathan++ # rt activity 14:56
jonathan masak: Would rather try and not let the queue grow too huge. :-) 14:57
masak jonathan: that's partly my fault, I guess :) 14:58
jonathan Well, your fault in a good way.
It means Rakudo is better as a result.
masak that's my goal. 14:59
jonathan :-)
Ah. Class variables.
masak I'm most interested to hear what you think of #57118 -- but I guess you'll get to that eventually
jonathan I saw it is a bug in some vaguely scary parsing code and thought it better to let pmichaud pick which patch he thought was the Right One. 15:02
Nice work coming up in two patches that will do it, though! 15:03
masak :)
I couldn't sleep last night, and figured "what the heck"
15:12 timbunce joined 15:13 _timbunce joined
davidfetter sees double 15:14
Tene Anyone have anything parrot-related they'd like me to work on? 15:20
15:25 ruoso joined 15:31 clunker3 joined 15:34 bacek joined 15:40 teknomunk joined 15:51 Andy joined 16:03 timbunce joined
dalek r29757 | fperrad++ | trunk: 16:09
: [Lua] first test for OpenGL
diff: www.parrotvm.org/svn/parrot/revision?rev=29757
16:12 davidfetter joined 16:16 iblechbot joined 16:17 kid51 joined 16:27 jhorwitz joined 16:31 Senaka joined
Senaka seen infinoid 16:31
purl infinoid was last seen on #parrot 1 days, 13 hours, 3 minutes and 50 seconds ago, saying: s1n: www.parrotvm.org/svn/pugs [Jul 25 03:28:09 2008]
16:32 Senaka left 16:35 chromatic joined
dalek r29758 | pmichaud++ | trunk: 16:45
: [rakudo]: spectest-progress.csv update, 110 files, 1885 passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=29758
jonathan waves a pmichaud 16:47
*at
pmichaud hello
jonathan how's things?
pmichaud good. finally have a working network connection again :-)
jonathan Phew!
How was OSCON?
pmichaud excellent, as always 16:48
jonathan Nice
Hopefully I make it there again some year. 16:49
I've spent the week on anti-biotics and back and forth to the doctor, so you've certainly done better this week.
dalek r29759 | chromatic++ | trunk:
: [Lua] Fixed SVN metadata on new file.
diff: www.parrotvm.org/svn/parrot/revision?rev=29759
jonathan would choose OSCON over beer-denying anti-biotics any day. 16:50
nopaste "pmichaud" at 64.122.41.37 pasted "why doesn't this work?" (8 lines) at nopaste.snit.ch/13668
jonathan pmichaud: There is a time opcode? 16:51
jonathan wonders what it returns...
nopaste "pmichaud" at 64.122.41.37 pasted "why doesn't this work? results" (5 lines) at nopaste.snit.ch/13669
jonathan Puts the current system time (represented as a number of seconds, with 16:52
microseconds) in $1.
Heh. That would work just nicely.
pmichaud ...except it gives me an odd result (see nopaste 13669)
jonathan oh?
pmichaud sleep(4) doesn't actually sleep for 4 seconds.
jonathan Wow. 16:53
pmichaud it sleeps for something less than 4 seconds
jonathan I'm curious what this dones, on Win32.
pmichaud I'll go ahead and commit.
jonathan OK, sure.
Just smoking a change to add class attributes....
masak pmichaud++ # woot, real sleep!
jonathan If it passes, I'll apply it, and close another masak++ ticket. :-) 16:55
dalek r29760 | pmichaud++ | trunk:
: [rakudo]: Update sleep() to return actual time slept. Sorta.
diff: www.parrotvm.org/svn/parrot/revision?rev=29760
r29761 | jkeenan++ | parallel:
: [configure] Refactor gen::platform::runstep() into smaller chunks. Add tests
: of internal subs where possible.
diff: www.parrotvm.org/svn/parrot/revision?rev=29761
masak "masak ticket". I like the sound of that.
jonathan However
$ perl6 -e 'class A { has $.x; method foo { say $.x } }; my A $a .= new; $a.foo'
Object
I'm pretty sure that printing Object is bogus.
masak yes, why does it do that? 16:56
jonathan Probably because I did something bone-headed inside the 'new' method.
I'll look at it in just a moment...
masak jonathan++ 16:57
dalek r29762 | jonathan++ | trunk: 17:02
: [rakudo] First cut at getting class attributes (declared my $.x) to work. Does a little refactoring so we can do this without code duplication. Also has a workaround for :outer not being allowed to point at :init :load blocks; we can pull that out once pdd25cx is merged and PCT updated. Todo is make the accessor sensitive to the presence or lack or 'is rw' and make sure type constraints get applied.
diff: www.parrotvm.org/svn/parrot/revision?rev=29762
17:03 Andy joined
jonathan pmichaud: On Win32, it appears we haven't got sub-second sleep implemented. 17:03
So I just get 4 and 1 respectively.
Erm, subsecond *time*, I meant.
dalek r29763 | jkeenan++ | parallel: 17:20
: Eliminate trailing white space in several locations.
diff: www.parrotvm.org/svn/parrot/revision?rev=29763
17:29 timbunce joined 17:36 gryphon__ joined
nopaste "chromatic" at 64.122.41.37 pasted "Calling PMC METHODs from VTABLE entries" (47 lines) at nopaste.snit.ch/13670 17:39
chromatic I can't make this work. I have stupid fingers today.
dalek r29764 | jonathan++ | trunk: 17:41
: [rakudo] If you don't specify a type constraint that is a proto-object, we shouldn't default an attribute to containing Object proto-object.
diff: www.parrotvm.org/svn/parrot/revision?rev=29764
jonathan chromatic: Should it not be METHOD void set_key(PMC *key) {
chromatic Most of the other methods aren't, but maybe. I'll try that. 17:43
pmichaud METHODs don't specify return types
jonathan Is it not actually calling the method?
chromatic Yes. 17:44
Apply it and prove t/pmc/enumerate.t
dalek r29765 | pmichaud++ | trunk: 17:45
: [rakudo]: Throw an appropriate exception for unescaped $'s in strings.
: * Resolves RT #57118 (masak++)
diff: www.parrotvm.org/svn/parrot/revision?rev=29765
jonathan chromatic: You getting "t\\pmc\\enumerate....too few arguments passed (0) - 2 params expected" 17:47
chromatic Yes. 17:48
masak pmichaud: I like "Can't use $ as non-variable in interpolated string". 17:51
pmichaud++
pmichaud thanks. I think TimToady will likely change it, though. ;-)
masak maybe one could also write something about that \\$ was probably what was intended
pmichaud so, perhaps "Can't used unescaped $ as non-variable in interpolated string"? 17:53
*use 17:54
masak already better :)
provided that the programmer knows that 'escape' == '\\'
(in this case)
jonathan chromatic: I think that it is expecting a call to have been set up using the Parrot Calling Conventions.
Maybe try using PCCINVOKE
chromatic I've done that too. Let me get the error message. 17:56
Hm. 17:57
jonathan Yeah, I'm trying it here and it fails to compile.
chromatic Okay, now that worked.
Like I said, stupid fingers.
jonathan But basically, the problem boils down to
run_meth_from_c calls runops_args, which calls inoke before calling pass_args_fromc, which normally is fine. 17:58
Because invoke just returns an offset into the bytecode
But here you're calling an NCI
So it tries to get the args, before they have been set up to get. 17:59
chromatic Ah, makes sense.
jonathan It's maybe something worth fixing. 18:00
chromatic I filed a bug a year and a half ago related to that.
It's the "You can't invoke NCI calls from the external API."
jonathan Ah.
So certainly worth fixing.
chromatic If I remember correctly, you said we needed some bytecode changes first. 18:01
Though I may be thinking of the arity method.
jonathan I can't think right now why this particular fix would want bytecode changes. 18:03
chromatic Me neither, but it's been a while. 18:04
dalek r29766 | chromatic++ | trunk: 18:06
: [PMC] Added the set_key() method on the Iterator PMC to encapsulate the
: key-setting operation. (No more poking into its struct val, which I hope to
: remove.)
diff: www.parrotvm.org/svn/parrot/revision?rev=29766
chromatic japhb, ping -- RT #57006 looks appliable. 18:09
dalek r29767 | chromatic++ | trunk: 18:14
: [config] Add the cygwin importlib to please -lparrot in packaged version (Reini
: Urban, RT #56562).
diff: www.parrotvm.org/svn/parrot/revision?rev=29767
masak is there color coding in vim or Emacs for PIR? 18:17
18:18 teknomunk_ joined
chromatic Look in editor/ 18:20
masak chromatic: ah, thanks
could submethods, theoretically, be implemented in rakudo as of today? 18:24
what's the semantics of `my $var` inside a class? (where '$var' is a non-twigil variable) 18:26
rakudo: class A { my $a = "hi"; method foo() { say $a } }; A.new.foo()
polyglotbot OUTPUT[␤]
masak rakudo: class A { my $.a = "hi"; method foo() { say $.a } }; A.new.foo()
polyglotbot OUTPUT[hi␤]
Tene Looks liek polyglotbot is properly updating every 10 minutes, btw. 18:27
masak Tene++ (polyglotbot++) 18:28
18:29 jhorwitz joined
jhorwitz hacks at PDX for an hour 18:30
jonathan masak: Not sure; I think just something with no accessor 18:31
masak jonathan: so it's a bug?
jonathan Assigning initial values to attributes, class or otherwise, isn't yet implemented.
masak oki
jonathan To do that neatly I think we need to refactor variable_declarator to be more STD.pm-ish
masak this is a bit problematic, too: 18:32
rakudo: class A {}; say A.new
polyglotbot OUTPUT[get_string() not implemented in class 'A'␤current instr.: 'print' pc 12252 (src/gen_builtins.pir:7798)␤called from Sub 'say' pc 12274 (src/gen_builtins.pir:7808)␤called from Sub '_block11' pc 36 (EVAL_13:16)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806
..(src/PCT/HLLCompiler.pir:481)␤called from Sub 'parrot;PCT::HLLCompiler;evalfil...
masak it's related to that other bug, where constructor calls cannot be last in a program
what's get_string(), and why doesn't A have one? :)
pmichaud how should A stringify? 18:33
jonathan pmichaud: I don't know. 18:34
pmichaud er, how should an instance of A stringify?
jonathan I'd love to fix it, but I just don't know how an instance of a class should stringify.
chromatic Stringerifically.
jonathan And I don't want to guess.
pmichaud pugs says <obj:A>
masak that's better than failing.
pmichaud however, an instance of Object stringifies to the null string, so perhaps a subclass of Object should do the same. 18:35
masak hm, gotta go make dinner. I'll be back tomorrow with more bugs :) good luck tonight!
jonathan masak: Cool, thanks for all of the tickets you filed, giving me something to work on! :-) 18:36
masak jonathan: thanks for fixing them!
dalek r29768 | chromatic++ | trunk:
: [PMC] Made every PMC which stores a Key in an Iterator use the latter's set_key
: method. Encapsulation++.
jonathan pmichaud: That would be logic, easy to implement now, and clear up the current issue.
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=29768
masak makes rakudo ever more pleasant to play around with
pmichaud jonathan: feel free to do it that way for now.
jonathan OK, just cooking some food right now, and will do it after dinner. 18:37
chromatic Or someone else could do it instead, and you could bring food here.
jonathan Might be cold, by the time I arrive... 18:39
pmichaud: Was there ever some decisive answer on the way but True and .true worked? 18:41
jonathan afk for a moment - dinner 18:46
pmichaud no decisive answer yet -- it's one of the questions I'm hoping to ask TimToady 18:58
19:02 slightlyoff joined
jonathan pmichaud: OK, great. 19:02
chromatic jonathan, we need to fix some vtable stuff before the stringification works the right way. 19:03
jonathan chromatic: Oh? 19:09
Specifically?
19:09 coumbes joined
chromatic It's not clear whether adding get_string in P6Object should or shouldn't override the method of the same name in Int, for example -- at least, it's not clear to PIR. 19:13
jonathan Ouch, yes. 19:14
'cus we "fake" the inheritance from P6Object. 19:16
19:17 Andy joined
pmichaud the solution will likely be to keep P6Object from registering vtable methods, or otherwise controlling it somehow. 19:20
japhb chromatic: pong. Odd, I never received that response from rurban. Looking ... 19:21
jonathan pmichaud: I pondered that, and it seems a tad messy, but I can't think of anything better.
pmichaud is there a way to introspect a sub/method to determine if it's a vtable sub/method? 19:22
jonathan Looking
chromatic src/pmc/namespace.pmc:189 pokes around 19:23
I remember adding that.
jonathan In sub.pmc, we could easily add it to inspect 19:24
dalek r29769 | pmichaud++ | trunk: 19:25
: [rakudo]: Switch sleep to be a listop instead of named unary (masak++)
: * Partially solves RT #57924; but uses a hard-coded constant value
: to represent "forever" until Parrot provides a way to do it.
diff: www.parrotvm.org/svn/parrot/revision?rev=29769
japhb chromatic: Go ahead and apply rurban's latest 57006. I've visually reviewed it, but I've got craziness going on around here, and can't apply/test/commit myself 19:27
jonathan chromatic: Hmm...it seems that v-table overrides go into a separate hash in the class. 19:28
chromatic That's right.
jonathan but the code in P6Object.pir calls $P0.'methods'() 19:29
Which gets just the methods hash.
pmichaud sure, which is what we want. 19:30
but presently there's not a way to create a vtable method that is not also a method
so every vtable method also ends up in the methods hash
jonathan Heh. I was expecting it to be in one or the other... 19:31
But OK.
So it seems easiest way to know which it is, is to add a "is_vtable_method" to the possible inspect strings for a Sub PMC. 19:32
pmichaud we just discussed here (with allison) how we'll control where the various subs get located 19:33
short answer: .sub "foo" :method("method_name") :vtable("vtable_name") :ns("namespace_name") 19:34
where omitting the parens causes the sub name to be used
and applying any of the :method/:vtable/:ns flags suppresses the automatic entry of the sub name into the namespace
jonathan Ah, OK.
That sounds like it'll work. 19:35
pmichaud so, .sub "foo" :method creates a method not entered in the namespace 19:36
.sub "foo" :method :ns creates a method that *is* entered in the namespace
jonathan .sub "foo" :vtable ? 19:37
dalek r29770 | chromatic++ | trunk: 19:39
: [config] Improved OpenGL detection for Cygwin (Reini Urban, RT #57006).
diff: www.parrotvm.org/svn/parrot/revision?rev=29770
pmichaud well, one would not normally do that with "foo" 19:40
but .sub "get_boolean" :vtable works
creates a get_boolean vtable entry but does not create a get_boolean sub or method
jonathan OK, makes sense. 19:42
19:55 apple-gunkies joined 19:58 Ademan joined 20:12 teknomunk__ joined 20:24 AndyA joined 20:26 teknomunk_ joined 20:42 rurban_ joined
dalek r29771 | jonathan++ | trunk: 20:45
: [rakudo] Fix for when you have multiple multis without signatures (but different names) in a program; before, all but the first one got mis-generated.
diff: www.parrotvm.org/svn/parrot/revision?rev=29771
r29772 | fperrad++ | trunk: 20:47
: [Lua] triangle.lua, an OpenGL demo
diff: www.parrotvm.org/svn/parrot/revision?rev=29772
20:54 Ademan joined
dalek r29773 | jonathan++ | trunk: 20:54
: [rakudo] Add some tests for stuff I fixed/implemented today to spectest_regression.
diff: www.parrotvm.org/svn/parrot/revision?rev=29773
20:56 Schwern joined
Schwern Hey kids, where's the hackathon? 20:56
chromatic Urban Grind, east side
Schwern Is Adam Kennedy there? 20:57
chromatic Allison, Patrick, Larry, Jerry, Eric, and me
no Adam
Schwern Ok, thanks. I'll be there within 3 soons.
chromatic If a soon is an hour, then it'll have closed. 20:59
ewilhelm thought adam said he would, but no word 21:01
dalek r29774 | fperrad++ | trunk:
: [Lua] OpenGL, small fix
diff: www.parrotvm.org/svn/parrot/revision?rev=29774
jonathan pmichaud: ping 21:10
pmichaud pong
jonathan For given blocks (and others that set the topic)
At the end of "when" we need to have something to fall to the end of that block
I'm thinking that is some kind of .control thing on a block that sets the invocant? 21:11
pmichaud .leave
jonathan OK, but what does it call that one?
s/one/on/
given $foo { when ... { }; when ... { }; } # simple case, topic set by outer block 21:12
pmichaud I haven't worked the details on that yet.
jonathan given $foo { if $blal { when ... { ... }; when ... { ... }; }
OK
pmichaud it may be that we give an implicit label to the block
jonathan I was wondering if it was a control exception.
pmichaud yes, it's a control exception.
jonathan Like, one that is thrown at the end of a when block, and is caught at the end of a block that sets $_. 21:13
pmichaud in some sense it works about the same as 'last' 21:14
21:14 kid51 joined
pmichaud so I may just implement it that way 21:14
jonathan Hmm. Apart from the block you want to leave with "last" maybe wasn't the one that set the topic.
pmichaud oh?
example? 21:15
and keep in mind that given $foo -> $x { ... } is valid
jonathan given $foo { for @list -> $a { when $a { say "yay" } } }
pmichaud in that example, when applies to the 'for', not the 'given'
jonathan OK. But the for isn't setting the topic? Or is it? 21:16
As in, do both $_ and $a get the current iteration variable?
21:16 Andy joined
pmichaud ...."setting the topic" is a bit of a red herring here. 21:17
oh, perhaps not. hmm.
Andy pmichaud: I forgot to mention
I really do enjoy your recap talks
pmichaud thanks!
Andy even if I ostensibly know everything you're saying
(which I don't)
jonathan pmichaud: when always smartmatches against $_, thus my confusion other what the "when" actually applies to here. 21:18
(where here = in the last example I wrote)
pmichaud okay, re-reading the spec
jonathan "The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop (assuming one of its loop variables is bound to $_) or the body of a method (if you have declared the invocant as $_)." 21:21
And "If the smart match succeeds, when's associated block is executed, and the innermost surrounding block that has $_ as one of its formal parameters (either explicit or implicit) is automatically broken out of." 21:22
chromatic This next commit message will be the awesome. 21:24
dalek r29775 | chromatic++ | trunk: 21:25
: [IMCC] Made :vtable sub attribute imply the existence of a "self" PMC, which
: refers to the invoking PMC. Many occurrences of :method on vtable subs can go
: away now. See RT #47674 (and thanks to Andrew Whitworth for most of this
: patch).
diff: www.parrotvm.org/svn/parrot/revision?rev=29775
jonathan Is the awesome! chromatic++ 21:26
chromatic Figured you'd like that almost as much as I do.
pmichaud jonathan: (asking TimToady) 21:28
jonathan pmichaud: OK. (answers from TimToady)++
pmichaud -> $a { ... } doesn't set $_ as a parameter 21:30
so yes, when $a { ... } would break out of the outer block
jonathan OK
So we maybe need some control exception specially for that? 21:31
21:31 Auzon joined
pmichaud which means that we want to put a control exception on blocks that have $_ as a formal param 21:31
jonathan OK
This gets a little fun, I guess, because in the case of a sub or method that takes $_ as one of its parameters, it is that block. But that also needs to have the return_pir control. 21:32
pmichaud which means we'll want to update control exceptions in PCT, which is what I've been planning to do but haven't had tuits for yet
jonathan OK.
pmichaud the return_pir control can handle more than just return exceptions
PCT's default is to handle only return exceptions, but a HLL can provide its own return_pir PAST
and I'm somewhat waiting for pdd25cx merge before deciding exactly how to do that
jonathan OK, at the moment, or is that waiting control exceptions work? 21:33
Aha, OK, makes sense.
It just occurred to me that getting given/when etc working would be kinda nice to do. :-)
I've spent the day mostly fixing little bits here and there.
Schwern Urban Grind is closing soon? What's the plan then? 21:35
jonathan Amongst other things, fixing the return_pir code sometimes giving null PMC exceptions. Was happy to track that one down.
chromatic Schwern, you have 2.5 hours. 21:37
Schwern Excellent.
dalek r29776 | jkeenan++ | parallel: 21:44
: [configure] Refactor one hard-coded file name from inside runstep() to
: _init(). Test appropriately. Delete commented-out code.
diff: www.parrotvm.org/svn/parrot/revision?rev=29776
jonathan OK, I'm too tired to do anything much else today... Report: use.perl.org/~JonathanWorthington/journal/37019 22:02
pmichaud jonathan++
22:03 Limbic_Region joined
jonathan pmichaud: Are you about next week at all, or is it your week travelling about? 22:07
pmichaud mon and tues I'll be online
jonathan (Just for co-ordinating Rakudo day...)
pmichaud wednesday is travel
thu and fri I don't know yet.
I'll have some online time, but I don't know the hours yet
jonathan OK, I need to deal with some other stuff on Monday for sure. 22:08
Tuesday should be do-able.
pmichaud okay, let's plan that. That probably works best for me, as I'll have some catching up to do on Mon
jonathan OK. There's a couple of big-ish things I'd like to attack.
One of them is getting variable declarator inline with STD.pm 22:09
So the initial assignment is parsed as part of that.
pmichaud I think that's going to require a PGE fix, though.
jonathan I did fear that might be the case. :-(
pmichaud but I might be able to come up with a workaround. Let's plan that for Tues, at any rate
jonathan But has $.x = 42; is, I fear, going to be messy without that. 22:10
pmichaud oh yes, it will.
jonathan We don't want any more $?OMG_GLOBAL. :-)
pmichaud although we might be able to cheat it at least to the level that assignment is currently cheating
chromatic I wanted to catch Esther Dyson at Burgerville this week so I could take a picture and label it "ICANN Has Cheeseburger"
jonathan :-D 22:11
The other thing is the type registry.
chromatic Where would she have to eat for me to get THAT picture?
pmichaud type registry might be a bit easier
jonathan McDonalds? 22:12
purl McDonalds is, like, paying $8/hr for the position of Janitor
jonathan pmichaud: Yeah. But getting it right with namespaces, leical classes, blah.
Not that we have lexical classes yet. :-)
(Though in theory now anoymous ones work, that should be easy...) 22:14
dalek r29777 | coke++ | trunk:
: [cleanup] remove duplicate coda, probably copied in from when this was a standalone file.
diff: www.parrotvm.org/svn/parrot/revision?rev=29777
jonathan I also worked out a way to implement state variables, with stashing the current value in a hash attached to the current sub as a property, which should be fairly easy to implement.
That too is almost certainly something to do after re-working variable_declarator, however. 22:15
pmichaud yes. and we still need to get lexicals/closures working 22:16
jonathan Also, I'm really not happy with the whole scope declarator/scoped/variable declarator code.
And yes, I know, I'm responsible for the mess.
pmichaud :-D
yes, it can be cleaned up.
I think I should spend some time (before Tuesday) building/updating the roadmap
and identifying which features we need to have in place before others
jonathan Part of it is, before we hit parsing the variable we already have parsed the scope. 22:17
But there's no convenient way I can see, other than more $?FOO, to be passing that along to things deeper in the parse tree.
pmichaud does it need to be passed along?
jonathan Well, the problem I'm finding now is that in scope_declarator, there's a "is it a variable we're scoping, is it a routine we're scoping", etc. With lexical packages it'll just gets worse. 22:18
So we end up with the logic for handling variables scattered all the way up the action methods. 22:19
And variable_declarator can't really look up the parse tree, or not so far as I'm aware.
pmichaud no, we can't look up the parse tree yet
but I'm not sure what about variables needs to be "handled" just yet 22:20
jonathan OK. Take a look through the code, and it should give you an idea of what I mean, anyway.
pmichaud sure. I've looked in the past and agree it needs some refactoring 22:21
jonathan Sure. I agree - I'm just not sure what the best way is.
22:36 donaldh joined 22:41 cotto_home joined
jonathan sleeps 22:45
22:48 chromatic joined
dalek r29778 | jkeenan++ | parallel: 23:03
: [configure] Refactor code from inside runstep() to _handle_define_option() to
: increase testability of previously uncovered branch. Add appropriate tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=29778
23:28 Schwern joined
Schwern iwantmyopenid.org/bounty The OpenID bounty thing 23:28
chromatic s/un/o/ 23:33
cotto_home 404: booty not found 23:38
dalek r29779 | chromatic++ | trunk:
: [PMC] Converted Pair PMC to use PDD 17 attribute storage. As part of this, it
: now only holds PMC keys. If we need STRING keys, we need a new implementation.
: (Replace conditional with polymorphism.)
diff: www.parrotvm.org/svn/parrot/revision?rev=29779