»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
00:00 alester left 00:02 kane___ left 00:05 jrtayloriv joined, kane___ joined, jrtayloriv left 00:06 frew_ left
wayland76 Does anyone know the git incantation to show what revision I'm on? 00:08
00:08 hoelzro joined 00:09 hoelzro left, toyam joined
Tene wayland76: what are you looking for specifically? 00:11
you can get that a few ways.
'git rev-parse HEAD' will spit out just the revision ID
I usually do 'git show' 00:12
00:16 explorer left
wayland76 Tene: thanks. I just wanted to tell people what revision ID my patch works against 00:22
00:25 hoelzro joined 00:27 frew_ joined 00:30 toyam_ joined 00:32 toyam left, hoelzro left 00:33 hoelzro joined 00:35 hoelzro left 00:42 jrtayloriv joined 00:44 jrtayloriv left 00:47 Limbic_Region left 00:49 kane___ left 00:58 japhb joined 01:00 meppl left 01:01 Whiteknight left 01:07 seano joined 01:10 orafu left 01:11 orafu joined 01:13 seano left 01:16 toyam_ left, toyam joined 01:18 molaf_xx joined 01:23 pmichaud_ is now known as pmichaud, pmichaud is now known as pmicahud_, pmicahud_ is now known as pmichaud_ 01:24 tann left 01:28 xinming joined
wayland76 pmichaud_: Have I asked whether you've had a chance to look at rt.perl.org/rt3/Ticket/Display.html?id=63360 again now that I've attached another patch? 01:31
01:33 alester joined
pmichaud_ I don't know if you've asked, but I know I haven't had a chance :-) 01:34
01:35 molaf_x left 01:37 cdarroch left 01:45 xinming_ left 01:48 hoelzro joined
wayland76 pmichaud_: Yeah, I can see you've been busy with other things. Anyway, as long as it's registered in your mind that there's another patch there for you to look at, I'm happy :) 01:54
My code: my $grammar = XKB::Grammar.new(); 01:55
My error: too few arguments passed (1) - 3 params expected
01:55 xinming left
wayland76 Does anyone know why I' 01:55
d get that error?
01:56 xinming joined
pmichaud_ ...you're trying to create an instance of a grammar? 02:07
(I know why you're getting the error. I'd rather not explain it :-)
wayland76 Ah, do I just use the grammar, and not create an instance? 02:08
pmichaud_ normally it's XKB::Grammar.parse('...') 02:09
wayland76 Great :)
pmichaud_ or .parsefile(...)
wayland76 Even better :) 02:10
02:12 toyam left
pugs_svn r27692 | wayland++ | [S32/Abstraction]: Documented .parse and .parsefile methods on Grammar. 02:15
r27692 | wayland++ | Note that the method signatures may be wrong. pmichaud++ for pointing
r27692 | wayland++ | these functions out.
wayland76 There we go :)
Hmm. Looks like my karma died. I used to be #11 on the list 02:16
(I had 80-something)
pmichaud_ they're mentioned in S05, I think 02:17
diakopter wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++
pmichaud_ rakudo: ('wayland++' xx 10).say 02:18
p6eval rakudo 241545: OUTPUT«wayland++wayland++wayland++wayland++wayland++wayland++wayland++wayland++wayland++wayland++␤»
pmichaud_ hmmm.
wayland76 @karma 02:20
lambdabot You have a karma of 11
wayland76 Doesn't seem to have helped. Probably because I'm wayland76 instead
@karma wayland
lambdabot wayland has a karma of 83
wayland76 Ah, my mistake :)
pmichaud_ just add 'em all up.
wayland76 I'm happy now
rakudo: ('c/c--' xx 10).say 02:21
p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--␤»
wayland76 @karma c/c
lambdabot c/c has a karma of 136
wayland76 Anyway, I'm happy now
I just did @karma before, and it said 11
02:22 alester left
wayland76 Is there a way to specify what rule I want to invoke? 02:24
Or do I have to use TOP? 02:26
02:37 colomon left
wayland76 my $M := XKB::Grammar::XKB ~~ slurp("/usr/share/X11/xkb/symbols/us"); 02:37
Hmm. My grammar took a minute and 44 seconds to run :) 02:40
pugs_svn r27693 | kyle++ | [t/spec] Test for RT #63642 02:49
r27694 | kyle++ | [t/spec] Test for RT #63644
03:10 bpetering joined 03:12 NewOrder left, shachaf left, araujo left, xomas_ left, TimToady left, diakopter left, rjh left, c1sung left, arejay left, TimToady joined, NewOrder joined, shachaf joined, araujo joined, xomas_ joined, diakopter joined, rjh joined, c1sung joined, arejay joined, antiphase joined, awwaiid joined, irc.freenode.net sets mode: +oo TimToady diakopter 03:13 bpetering left 03:15 hoelzro left 03:21 rjh left, diakopter left, NewOrder left, xomas_ left, antiphase left, arejay left, c1sung left, awwaiid left, TimToady left, shachaf left, araujo left, cls_bsd left, Aisling left, rhr left 03:22 diakopter joined, awwaiid joined, antiphase joined, arejay joined, c1sung joined, rjh joined, xomas_ joined, araujo joined, shachaf joined, NewOrder joined, TimToady joined, cls_bsd joined, rhr joined, Aisling joined, irc.freenode.net sets mode: +oo diakopter TimToady 04:03 cognominal_ left 04:09 cognominal joined 04:23 tann joined
tann rakudo: die; 04:24
p6eval rakudo 241545: OUTPUT«No applicable methods.␤in Main (/tmp/1ouJGd6CUk:2)␤»
04:32 cls_bsd left 04:34 frew_ left 04:35 edpratomo joined, agentzh joined 04:36 beggars joined 04:45 nihiliad left
wayland76 How do I introspect a Match object? 04:49
Calling .keys() on it gives me this: Method 'keys' not found for invocant of class 'PGE;Match' 04:50
pugs_svn r27695 | wayland++ | [S32/Abstraction] Added "action" optional parameter to parse and parsefile. 05:00
wayland76 Different question: does Rakudo support grammar action objects yet? 05:01
05:02 synthEEEE joined 05:03 FurnaceBoy left 05:12 synth left
szabgab I need a little help with git, how can I switch to the released version of Rakudo ? would that be git checkout Chicago ? 05:13
it tells me Note: moving to "Chicago" which isn't a local branch
05:13 frew_ joined 05:15 synth joined 05:17 skids left
wayland76 I don't know. Have you done git branch -a ? 05:18
szabgab so far I just used to git pull and build the latest 05:19
wayland76 No, that doesn't help
Do you live in Chicago? If not, it won't be a local branch.
Sorry :) 05:20
szabgab HEAD is now at 9b37b81... Update announcement with spectest results
05:20 masak joined
szabgab :-) 05:20
wayland76 Oh, wait, I've had an idea...
masak ahoj, early birds!
szabgab so it seem it is checked out to Chicago now
joho masak
wayland76 No, my idea doesn't work 05:21
05:22 synthEEEE left
wayland76 Does Rakudo support grammar action objects yet? 05:22
Tene action objects?
wayland76 masak: 3:23 pm here
Tene: MyGrammar.parse($str, :action($action-object))
masak wayland76: you can do that in Rakudo, yes. 05:23
Tene Yes.
wayland76 Ok, thanks
masak actually, the feature has been there 'all the time', as I understand it. I asked about it once long ago, and pmichaud_++ said 'what? like this?' and it turns out it just fell out of how PGE already does it. 05:24
05:25 finanalyst joined
wayland76 Cool :) 05:25
finanalyst good morning
how can i discover what traits a variable has? 05:27
wayland76 So my real question should be "Why doesn't mine work :)
finanalyst rakudo is failing saying it cant assign to a read-only variable
but it doesnt say which variable and i cant see why any of the variables should be read only 05:28
but to narrow down the problem, i need to see the traits
masak wayland76: I don't know. all of mine work. 05:29
lisppaste3 wayland76 pasted "My Grammar action class not working" at paste.lisp.org/display/84113
masak finanalyst: not sure I've seen an answer to that question in the spec. 05:30
finanalyst the problem is puzzling because it occurs in the second iteration of a loop, but not in the first 05:31
wayland76 If we need a special boolean operator for traits, can we call it traitor? :)
finanalyst :)
wayland76 finanalyst: nopaste?
Tene masak: looks like wayland76 you didn't paste the output of that script. 05:32
erm... typing fail.
wayland76: you didn't paste the output of that script.
masak wayland76: hm, I can't see an obvious error.
Tene: the output is nothing.
Tene masak: looks like I'm finally starting work on my roguelike. It was you that was interested in that, right? 05:33
masak aye.
finanalyst wayland76: i want to narrow down the problem as it uses a lot of data first
wayland76 roguelike = text adventure game?
Tene I'll let you know once I have something to look like.
masak Tene: cool!
05:37 frew_ left
masak wayland76: ok, I found it. 05:38
wayland76: you're missing {*} thingies where you want to call your action methods.
after adding those, it works.
wayland76: may I also point you towards krunen's XML module, containing an already quite complete XML grammar? github.com/krunen/xml/ 05:39
wayland76 Yay! :)
Ok, thanks :)
I'm more interested in the actions than the grammar :)
Now I'm glad I made that mistake -- I got a free XML grammar :) 05:40
masak :) 05:43
wayland76 Although the tests say that it fails :) 05:44
It gets this error: perl6regex parse error: Quantifier follows nothing in regex at offset 869, found ':' 05:45
I shall investigate :)
masak wayland76: you do know that you have to quote all non-alphanumerics, right? 05:47
wayland76 Does anyone know whether "offset 869" is a character or a line?
masak: That was just trying to run the test suite
I didn't do anything to it yet :)
masak wayland76: which test suite?
wayland76 The one that comes with the XML grammar
Although maybe "suite" isn't the right word :) 05:48
masak ok, let me try the same thing...
wayland76 I used this: PERL6LIB=lib perl6 t.p6 t.xml
because his command in the README wasn't quuite right
masak seems like the error is on line 54 in Document.pm 05:50
wayland76 must be a character offset; none of the files are long enough otherwise
masak [:<.ident>+]?
...and that's one of the latest changes, 2009-06-30
the latest, in fact. 05:51
wayland76: care to submit a bug report to krunen? :)
wayland76 Well, it seems to work without it :)
How do I do that?
masak via github or email, I guess.
might be worth mentioning the README thing, too.
wayland76 phenny: msg krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line). Your test suite shows it up 05:52
@tell krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line). Your test suite shows it up 05:53
lambdabot Consider it noted.
wayland76 @tell krunen Also, the README isn't quite right (needs .p6 instead of .pl)
lambdabot Consider it noted.
masak phenny: tell krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line). Your test suite turns it up 05:54
phenny masak: I'll pass that on when krunen is around.
masak though I haven't heard krunen speak on this channel in a long time. 05:55
wayland76 Ok, I e-mailed as well 05:58
masak wayland76++ 05:59
06:08 finanalyst left
wayland76 rakudo: (join ' ', 'c/c--' x 10).say 06:13
p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--␤»
wayland76 @karma c/c
lambdabot c/c has a karma of 136
wayland76 rakudo: (join ' ', ('c/c--' x 10)).say 06:14
p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--c/c--␤»
wayland76 rakudo: (join ' ', ('c/c--' xx 10)).say
p6eval rakudo 241545: OUTPUT«c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c--␤»
wayland76 @karma c/c
lambdabot c/c has a karma of 128
wayland76 That's better :)
06:16 araujo left 06:21 tann left
pugs_svn r27696 | moritz++ | [t/spec] be more explicit about hash comparison, and avoid collision on same key 06:29
06:35 alester joined, Su-Shee joined
Su-Shee good morning future. :) 06:35
moritz_ good morning futurebutterflies ;-) 06:36
cbk good morning to you. good night for me :) 06:37
Su-Shee well, we better brace ourselved for the php 6/perl 6 puns to come.. ;)
masak I didn't realize there was a danger of such puns. 06:38
Su-Shee masak: php 6 is coming up.
cbk Perl 6 will drink php's milkshake!!! 06:39
moritz_ with \ as namespace separator?
Su-Shee *hihi* no idea. :)
masak yeah, that'll work.
Su-Shee but if I were a PHP fan and (still) blogging, I would beat the "version 6 coming up" pun to death. ;) 06:40
wayland76 I hear that Duke Nukem Forever is coming out 06:47
And Enlightement DR17 :)
Su-Shee *hehe* :) 06:48
wayland76 Imagine a beowulf cluster of Perl6s 06:49
06:49 tann joined
wayland76 All your version 6 are belong to us :) 06:49
tann hi fellas, just went thru s11 but couldn't figure out the equivalent of good ol' EXPORT_OK 06:52
Su-Shee wayland76: my personal imagination is along the lines of perl 6 having _the_ single most coolest and most extensive GUI/Graphic's bindings to "hey, let's prototype a new window manager this weekend.." ;)
Tene wayland76: I've got E17 gui apps running on in Perl 6. 06:53
wayland76 Tene: I was going to try something like that at one point.
But decided that GTK3+Perl6 would suit me better :) 06:54
Tene wayland76: github.com/tene/parrot-elementary
wayland76 (well, suit my project better)
Tene You mean, not combine obscure + obscure?
;)
cbk GTK and perl 6 would be cool!
Su-Shee wayland76: gtk 3 isn't really up for another year, I'd say..
wayland76 No, it's just that I want to write something for editing interlinear documents 06:55
Tene interlinear?
wayland76 Su-Shee: Well, sounds like it'll be ready at the same time as Perl 6 :)
Tene AFK GOODNIGHT PERL SIX GUYZ
Su-Shee wayland76: that wasn't meant as a discouragement - there's plenty of underlying libs to wrap.. pango, cairo... 06:56
wayland76 Interlinear: www.scripture4all.org/OnlineInterli...f/mat1.pdf
cbk wayland76, no.... we just got till Christmas
06:56 alester left
cbk :) 06:56
Su-Shee wayland76: entire x11.. ;)
wayland76 Su-Shee: Well, I'd settle for GTK2 to start with, and transition later :)
Tene wayland76: I don't quite understand what that PDF is. Why would that format be better served by GTK3? 06:57
Tene curious about toolkits, hasn't looked at GTK3 at all.
wayland76 Tene: It wouldn't. But GTK3 is supposed to make it easier to go between screen and printing
Su-Shee Tene: there is nothing to look at right now but some blog/mailing list postings what gtk3 should be.
06:57 tann left
wayland76 So if we wanted to actually *print* interlinear stuff, that could be useful :) 06:58
Su-Shee dreams of my version of "Sugar" in Perl 6. 06:59
wayland76 Besides, my theory is that we should write an entire office suite in parrot-based languages
Then we could rescript things in any language we wanted :)
Sugar = CRM?
Su-Shee wayland76: because of the bright future of office suites which are going to be web-based anyway?
wayland76: no, the OLPC-desktop written in python
wayland76 Su-Shee: Well, some people seem to think so :). But people have been saying those sorts of things for years. 07:00
Su-Shee wayland76: which is the single most cool example of "noone needs to code C and Xlib for a cool desktop"
wayland76 Well, if we get Python-on-Parrot, you could code Sugar extension in P6 :)
Su-Shee wayland76: I abandoned "office suites" directly after my thesis (last time I used something office-like and this was wordperfect under linux ;) 07:01
07:01 beggars left
Su-Shee wayland76: I want a really nice, fancy, well-done, native parrot-perl6-thing. :) 07:01
wayland76 Su-Shee: Did I say I want my office suite to edit sheet music too? :) 07:02
Su-Shee If I understand all the parrot-vm-wrapping stuff correctly anway, it would mean to write a gtk-parrot first and then make the perl6 bindings..
wayland76: ah. :)
wayland76: well in _that_ definition I "somehow" also have "suites" - gimp and inkscape. 07:03
though there are some shiny flash (!) apps out there, competing with gimp...
wayland76 re: gtk-parrot/perl6 bindings, that's my impression too, although I'm under the impression that they want to make things easy :) 07:04
moritz_ federkiel.wordpress.com/2008/03/12/...g-serious/ some of those sound quite familiar to what Perl 6 developers think (or thought back then in 2000) 07:05
wayland76 I'm thinking more of a combo of rosegarden, lilypond, and a word processor :)
Su-Shee wayland76: the parrot-bindings I looked at look rather understandable - especially due to the fact that I've never really seen something assembler-ish or really stack-like. (besides a postscript's div dup scale line..) 07:06
wayland76 Cool. I spoke to the gtk-perl IRC channel about 6 months ago, and they're keen to do gtk-parrot when the docs are there and the process is easy :) 07:07
(that's for GTK2 of course :) )
Su-Shee wayland76: the parrot docs _are_ there.
wayland76: parrot already comes with a more or less complete handbook. 07:08
wayland76: I think it's more about understanding the concept.. but gee.. they managed XS it can only be easier.
wayland76 Which doc do they read? 07:09
Su-Shee no idea, i was referring to your "when the docs are there"
wayland76 docs/pdds/draft/pdd16_native_call.pod 07:11
In case anyone wonders
I guess I was thinking of the problem that ncigen.pl didn't work last time I tried it 07:12
But maybe that's been fixed too :)
07:12 alester joined
Su-Shee moritz_: the blog posting is about what I know about gtk3 plans. 07:12
07:13 alester left
Su-Shee wayland76: docs.parrot.org/parrot/latest/html/ 07:13
07:15 edpratomo left 07:16 rfordinal joined
Su-Shee ah yes. I like licenses and copyright. the "jodel" line probably everybody knows was ruled copyright protected by a german court. 07:18
07:33 NewOrder left 07:36 alester joined 07:37 alester left 07:41 missingthepoint joined 07:53 alester joined 08:00 missingthepoint is now known as bpetering 08:04 M_o_C joined 08:19 cls_bsd joined
moritz_ jnthn: I pushed the build-parrot-head branch to github which makes the ops build on parrot HEAD (patch by cotto++), but dies a bit later on 08:20
masak moritz_++ 08:25
moritz_ ah, the last fix seems easy too
masak hoping to be able to run off Parrot head again soon. :)
moritz_ 5 minutes.
masak \o/ 08:26
moritz_ bah 08:30
I borked it
by rebasing too much ;-)
lisppaste3 cbk pasted "untitled" at paste.lisp.org/display/84125 08:31
cbk this should work right....?
would $line be just the first word that is read? 08:32
up to \n
moritz_ the first line.
of course you have to declare @teamObj and class Team somewhere 08:33
but in principle, yes
cbk yes i did that
I get Use of uninitialized value when i do say @teamObj[0].name; 08:34
moritz_ it's a bit hard to debug for you without seeing the whole code and your input data
masak: changes pushed; OK, it was 10 minutes, not 5... ;-) 08:36
masak moritz_: gracias. trying build.
cbk my input is just a text file with NFL football team names. I was trying to put the names in a file so I would not have to do something like this @teamNames = <...........>; 08:37
where ..... is all 32 team names
dalek kudo: fc60e1d | (Matthew Walton)++ | Test.pm:
Updated Test.pm planless testing support.
kudo: b198624 | moritz++ | (3 files):
re-enable building against parrot HEAD
moritz_ cbk: ah, I see your problem 08:40
08:40 fridim_ joined
moritz_ cbk: you read the line into $line, but set the name to $_ 08:40
cbk how does .lines read the lines in the file
oh
so just change $_ to $line then 08:41
moritz_ yes
cbk that worked!
08:41 wollmers joined 08:42 payload joined
wollmers rakudo: say ord( :string("a") ) 08:42
p6eval rakudo 241545: OUTPUT«No applicable candidates found to dispatch to for 'ord'␤in Main (/tmp/gVvZIYss2M:2)␤»
moritz_ rakudo doesn't do the "call positional params by name" thing yet
cbk moritz_, thanks, i was using the $_ in another sub and just copied it. 08:43
moritz_ that shows again that copy&paste in one of the programmer's worst enemies
cbk moritz_, might be time for me to go to sleep :) 08:44
masak rakudo: sub foo() {}; foo("bar" => "baz", "OH NOES"); say "alive"
p6eval rakudo 241545: OUTPUT«alive␤»
masak guess this one is known. :/ 08:45
sjohnson masak: :)
masak that's why we still call 'em "developer releases"
sjohnson alright, maybe i should play with rakudo a bit
masak sjohnson: of course you should! :) 08:46
sjohnson here goes
moritz_ masak: how did the build go?
masak moritz_: oh, successfully, thank you.
hanging around on #perl6 without playing with rakudo is like talking about food all day without eating.
moritz_ cool
wollmers Just searching and grepping how to set or access different 'unicode abstraction levels' (grapheme, codepoints, bytes) 08:47
masak "my Parrot is bleeding again!" doesn't sound all too positive, does it? :P
moritz_ wollmers: that's also NYI in Rakudo
sjohnson rakudo: my $str = "happy10"; given ($str) { when (m/\w+(\d)+) { print $1; } } 08:48
p6eval rakudo 241545: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.4.0: cannot open shared object file: No such file or directory␤»
sjohnson i broketed it
Juerd_ What does NYI mean?
moritz_ masak: there are some psychological dysfunctions that make you talk very mouch about food, but rarely consume any 08:49
wollmers I remember some piece of code like '$string.as_codepoints' or so ...
moritz_ Juerd_: Not Yet Implemented
sjohnson rakudo: my $str = "happy10"; given ($str) { when (m/\w+(\d)+/) { print $1; } }
p6eval rakudo 241545: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.4.0: cannot open shared object file: No such file or directory␤»
moritz_ sjohnson: no, it's just the hourly rebuild
masak moritz_: what, me in particular, or people in general? :)
moritz_ sjohnson: and since it requires a new parrot version this time, it takes longer
sjohnson rakudo: my $str = "happy10"; given ($str) { when (m/\w+(\d+)/) { print $1; } }
Juerd_ I'm going to dist-upgrade feather now
p6eval rakudo 241545: OUTPUT«Null PMC access in get_string()␤current instr.: 'parrot;P6metaclass;register' pc 651 (runtime/parrot/library/P6object.pir:438)␤»
sjohnson i just had to at least correct my syntax
moritz_ masak: people in general; you don't seem to talk too much about food ;-)
sjohnson has had a few too many beers
masak moritz_: and I do think I eat enough. :) 08:50
sjohnson is getting hungry
masak sjohnson: $0.
sjohnson $0 for rea?
real*
masak sjohnson: and ditch the parens after the 'when'.
moritz_ the first (...) group is in $0
masak and after the 'given'.
sjohnson there's a lot about perl 6 i dont know
but am eager to learn 08:51
masak sjohnson: free your mind. drop your Perl 5 habits!
moritz_ ;-)
sjohnson can i has a syntax?
masak it's "I can haz", but yes.
you can.
moritz_ rakudo: say 1
p6eval rakudo 241545: OUTPUT«sh: ./perl6: No such file or directory␤»
sjohnson moritz_: tough break
( `ー´)
08:52 alester left
moritz_ it's at the src/gen_setting.pir step 08:52
sorry for the inconvenience.
sjohnson i understand 08:53
08:53 justatheory joined
sjohnson rakudo: say 'compiled?' 08:54
p6eval rakudo b19862: OUTPUT«compiled?␤» 08:55
M_o_C Two questions: a) Can unnecessary code be described as "overhead"? b) Why exactly do many language creators create a bootstraped version with which they compile their compiler written in their created languag? The only reason I can think of so far is, that they like their new language better (they wouldn't have to create it if the language in which the compiler was written already offered this)
moritz_ M_o_C: a) yes
M_o_C: b) several reasons... (more) 08:56
1) it's a good test, and it forces you keep your compiler actually working
08:56 zamolxes left
moritz_ 2) often the structure of language supports building a compiler in it 08:57
for example, for a Perl 6 compiler you need to thave the grammar in Perl 6, otherwise you can't get macros working correctly
08:57 explorer joined
moritz_ 3) if you develop a low-level language (like C or fortran), nobody takes you serious if you write the compiler in a different language 08:58
"look, he wrote a C compiler in Lisp - he can't really like C - I wonder how good the compiler is he didn't like it"
M_o_C Thanks so far. However I have a question regarding point 2: Regarding the example you provided shouldn't it actually be "encourages" instead of "supports". (Though I also understand the "supports" part, because the grammar engine makes creating a compiler/interpreter very easy, which I really like about perl 6) 09:01
09:02 jevin left
moritz_ in the case of Perl 6 it's both 09:02
but in general... probably "encourages", yes 09:03
M_o_C Ok
09:04 pmurias joined
moritz_ www.perlmonks.org/?node_id=782882 maybe that's something we also want for Perl 6 regexes? 09:07
masak moritz_: what is? negative lookahead? inverted character classes? we have both already. 09:09
moritz_ it's "any string that does not contain $regex" 09:10
s/contain/match/
masak if $string !~~ /.../ { ... }
moritz_ you can't use that in a regex easily 09:11
masak yes, there's ~~ and !~~ in regexes, too.
moritz_ right
I forgot about those
the original question was how to match <foo>...</foo> where ... was not allowed to match $rx
so that would be '<foo>' (.*?) $0 !~~ $rx '</foo>' in Perl 6? 09:12
I guess the difference is that $0 !~~ $rx looks prozedural to me, wheres the (?^ $rx) suggestion looks declarative to me 09:13
(yes, Perl 5 doesn't distinguish those, but Perl 6 does)
masak yes, that is an issue.
and I'm not sufficiently read up on S05 right now to know if that works. 09:14
it's certainly NYI, even if it would.
cbk moritz_, masak could you point me in the direction of some good (through) perl 6 regex examples if you know any?
masak std: my $rx; /'<foo>' (.*?) $0 !~~ $rx '</foo>'/
p6eval std 27696: OUTPUT«ok 00:03 37m␤»
masak cbk: I'd recommend the MediaWiki parser in November. 09:15
cbk: hold on, I'll throw you a link.
moritz_ cbk: I wrote perlgeek.de/blog-en/perl-5-to-6/20-...r-xml.html some time ago
09:16 justatheory left
masak actually, this is probably a more illustrative example then the MediaWiki parser: github.com/masak/web/blob/1bcedbaab...LParser.pm 09:17
doesn't use actions, though. 09:18
moritz_ aye, those were NYI at the time of writing
Su-Shee I need a perl 6 book soon.
cbk masak, Thanks
what does NYI mean?
masak cbk: feel free to ask, too.
moritz_ Su-Shee: it's been said that TheDamian works on one, or will be soon 09:19
masak cbk: Not Yet Implemented.
cbk oh
Su-Shee moritz_: I already put aside 200 euros just for perl 6 books. ;)
masak also sometimes NIY. same thing.
Perl 6 books tend to bit-rot quickly...
Matt-W Good morning
masak Matt-W: morning, sir. 09:20
moritz_ let's hope that the Euro doesn't rot as quickly ;-)
Matt-W I wouldn't bank on having any accurate Perl 6 books for a while
wayland76 masak posted this link for me (XML Grammar): github.com/krunen/xml/tree/master
cbk masak, how can i match some text that are going to be used as vars that are separated by a space if perl6 ignores white space?
masak heck, we don't even have accurate tutorials! :)
wayland76 It has an extra colon in XML::Grammar::Document, on the last line, but once you get rid of that, it's fine
moritz_ cbk: either with the :s modifier, or by using \s, or ' ', or ... 09:21
Su-Shee cbk: you use \s for example.
masak cbk: or using 'rule' instead of 'regex' or 'token'.
moritz_ or \c[SPACE]
Matt-W cbk: you just have to explicitly say where you want to match whitespace
masak cbk: have you read S05. might be good starting there.
cbk well like this: VAR1 THISisVAR2 VAR3hereCOULDbTHISBIG 09:22
masak, I have been looking in s05 all night 09:23
masak cbk: ok :)
cbk not really too helpfull if your just learning
moritz_ it's helpful when you read it the third time or so ;-)
masak cbk: I agree. you'd want to mix reading it and trying things out.
moritz_ cbk: I really recommend feather.perl6.nl/~duff/articles/per...-regex.pod
PerlJam++ wrote this, and so far I haven't found a single mistake or outdatedness in it 09:24
wayland76 cbk: search in S05 for "sigspace"
cbk moritz_, Yes something like that!!!
wayland76 Or search for this: The new ":s" (":sigspace") modifier causes whitespace
cbk wayland76, ok
thanks guys the p6-regex.pod looks like a good read for me.... Printing it out now to add to MY perl6 book :) 09:27
night all... Thanks again
masak is porting Python code to Perl 6 09:28
rakudo: sub foo(:$bar) { say $bar }; class A { has $.bar; method baz() { foo(:$.bar) } }; A.new(:bar<OH HAI>).baz 09:31
p6eval rakudo b19862: OUTPUT«Symbol '$1bar' not predeclared in baz␤in Main (src/gen_setting.pm:3343)␤»
masak :)
masak submits rakudobug
Matt-W masak: what Python code?
masak now, are my expectations right in this case? could the above code print "OH HAI"? 09:32
Matt-W: a templater called Genshi.
it's for the Web.pm project.
Matt-W masak: I don't know if your expectations are correct
Is :$.bar supposed to be like :bar($.bar)
masak aye.
that was my expectation. 09:33
moritz_ I don't think so
Matt-W Because I wouldn't expect so without reading it somewhere
moritz_ because $.bar is not parsed as a variable, but as a method call
masak moritz_: does that matter?
and what about :$!bar, then?
09:33 synth left
Matt-W I would expect the same behaviour as $.bar 09:34
masak rakudo: sub foo(:$bar) { say $bar }; class A { has $!bar; method baz() { foo(:$!bar) } }; A.new(:bar<OH HAI>).baz
Matt-W whatever that happens to be...
moritz_ it does matter, Perl 6 is all about syntax
p6eval rakudo b19862: OUTPUT«Symbol '$1bar' not predeclared in baz␤in Main (src/gen_setting.pm:3343)␤»
masak I still think Rakudo does the Wrong thing here.
moritz_ $1bar?
masak there's no $1bar variable.
right.
moritz_ that's a less-than-awesome error message
Matt-W At the very least
moritz_ (hint, hint)
masak yes, it alone merits a bug report.
Matt-W It's either a Missing Feature or a less-than-awesome error message
the question is which
masak moritz_: I'm writing it now. you're in it! :)
Matt-W: exactly. 09:35
moritz_ well, the table in S06 for named arguments doesn't list it, I think
masak I see no reason why it shouldn't work.
same with $^placeholder variables, I'd say. 09:36
Matt-W I see no reason why it should
moritz_ convenience would a good reason, no?
Matt-W Mmm
masak I think so.
Matt-W I can seen an argument for it
masak consistency, too.
moritz_ Perl 6 is all about convenience; otherwise we'd still be writing assembler code ;-) 09:37
masak it's not like the syntax is being used for something else.
szabgab rakudo: for (1, 2, 3, 4, 5) -> $x, $y? {say "$x $y";}
p6eval rakudo b19862: OUTPUT«1 2␤3 4␤StopIteration␤in Main (/tmp/qnyyJmWgOn:2)␤» 09:38
09:38 sri_kraih_ left
szabgab so $y? is accepted already but it is still not optional, right ? 09:38
moritz_ rakudo: (1..5).map: -> $x, $y? { say "$x $y" } 09:39
p6eval rakudo b19862: OUTPUT«Use of uninitialized value␤1 ␤Use of uninitialized value␤2 ␤Use of uninitialized value␤3 ␤Use of uninitialized value␤4 ␤Use of uninitialized value␤5 ␤»
moritz_ szabgab: right. You could call that a bug :/ 09:40
masak szabgab: I hate the StopIteration error message.
szabgab if I call it a bug, will it behave better ? ;)
masak possibly, in the long run. 09:41
moritz_ I doubt that.
ihrd hi there 09:42
masak privet, ihrd.
ihrd I missed something or Rakudo just can`t 'augment class Foo {}' yet?
masak ihrd: it can't yet.
seems the transition is non-trivial.
ihrd masak: privet and thank you 09:43
masak ihrd: the semantics is there, though, in the old form of 'class Austria is also { ... }'
here's why we want to support :$!bar -- one day in the future, some slightly crazy Perl 6 developer will need it and try it out, just to see if it works. when it does, she will be overjoyed. 09:45
ihrd masak: I see, thank you again, my example works now 09:46
masak as it is now, I have to write :bar($!bar), and that's just unnecessary. 09:47
Matt-W nag TimToady to put it in the spec? 09:48
masak I'll certainly mention it when he wakes up.
moritz_ I can see the point with $!bar, because in that case it's just a twigil
however $.bar is not a variable
Matt-W a lot of people will think it is though 09:49
masak moritz_: I don't see why it would have to be a variable.
09:49 Jedai joined
masak it can still be an lvalue. 09:49
moritz_ masak: it's mostly a matter of consistency. :$variable is shortcut for :variable($variable). Extending it to twigiled variables seems natural. Extending it to method calls doesn't 09:50
jnthn oh hai
masak jnthn: oh hai!
Matt-W o/ jnthn
masak moritz_: but surely '.' is a twigil?
moritz_ is it? 09:51
oh hai jnthn
masak I've always thought it is.
jnthn masak: $.foo is the same as $(self.foo)
(Outside of a declaration)
masak I know, I know!
but is it a twigil? 09:52
moritz_ masak: STD.pm doesn't list it as a twigil.
jnthn Amd I reading correctly that Rakudo now builds against Parrot head?
masak jnthn: you are.
moritz_++
moritz_ jnthn: it does. Testing on windows appreciated ;-)
jnthn moritz_++ # thanks!
moritz_ cotto++ # patch
masak moritz_: ok, then it's not a twigil, I guess. more like a method-call shortcut.
moritz_ and bacek++ # descriptive deprecation notice
09:52 ejs joined
moritz_ masak: right; that's what I meant all the time. 09:53
Matt-W The problem is that it looks exactly like a twigil 09:54
moritz_ $.foo($bar) not
Matt-W Most of the time people won't care about the difference of course
moritz_ std: class A { $.foo ~~ 'bar' }
p6eval std 27696: OUTPUT«ok 00:02 37m␤»
moritz_ std: 1.foo ~~ 'bar' 09:55
p6eval std 27696: OUTPUT«ok 00:02 36m␤»
moritz_ std: sub a { }; a ~~ 'bar'
Matt-W So how does 'has' see it?
p6eval std 27696: OUTPUT«##### PARSE FAILED #####␤Preceding operator expects term, but found infix ~~ instead at /tmp/7zMYO9zkqP line 1:␤------> sub a { }; a ~~ 'bar'␤FAILED 00:02 36m␤»
moritz_ Matt-W: specially.
Matt-W clearly 09:56
else you'd just get unable to find method errors
Matt-W erases the bit of his brain that thinks 'has' is a bit like 'my'
moritz_ szabgab: does padre integrate svn or git?
szabgab moritz_, partially 09:57
very partially
but we have plugins for both of them
09:58 donaldh joined
moritz_ szabgab: thanks; I was answering to www.perlmonks.org/?node_id=782901 ;-) 09:59
jnthn std: class A { has $.a; method foo { :$.a } }
p6eval std 27696: OUTPUT«ok 00:02 37m␤»
jnthn Hmm.
masak \o/
I have STD.pm on my side... I think.
szabgab we also would like to have editing via ssh but that's another story 10:00
for now we are working on the Strawberry Perl 5+6+Padre release
jnthn masak: std is a syntactic checker, not a semantic one, though. So it's only a half victory. ;-) 10:01
masak but an important one! 10:02
this half-victory calls for lunch, I think.
&
10:04 dakkar joined 10:06 pmichaud_ is now known as pmichaud
pmichaud good (early) morning, #perl6 10:06
jnthn wow 10:07
jnthn didn't get up that long ago
pmichaud it's very early here, yes.
3:07 am
jnthn uff
Yes early.
Can't sleep?
Or didn't get around to doing sleep yet? 10:08
pmichaud I left the oscon chairs' party a little early and came back to my hotel and crashed :-)
then woke up a bit ago and didn't feel like going immediately back to sleep
jnthn Ah. :_) 10:09
Early hours hacking! ;-)
pmichaud well, likely going to be "cleaning up from oscon" -- getting my presentations posted, follow-up emails, etc.
jnthn lands the big metaclass switchover 10:14
Hope I got the merge right.
dalek kudo: 9c44089 | jnthn++ | (8 files):
Separate out the Rakudo metaclass (calling it ClassHOW) from the Parrot one, and make sure everything we create uses this metaclass. This means we poke less stuff into p6object's namespace, and paves the way for various other refactors and additions.
10:17
Matt-W jnthn++ 10:20
jnthn: that commit changes PARROT_REVISION from 40249 to 40232... 10:21
jnthn oh
fail
:-)
Will up it again. 10:22
moritz_ Matt-W++ # immmediate review
Matt-W Not something I usually do, but I'm waiting on work code to compile...
dalek kudo: e989e65 | jnthn++ | build/PARROT_REVISION:
Oops, mis-merged PARROT_REVISION (Matt-W++ for noticing).
10:23
Matt-W I'm also going to assume that the actual class implementation is already there, seeing how it isn't in this commit.
jnthn Matt-W: Huh? 10:24
moritz_ src/classes/ClassHOW.pir
I think
jnthn Yes, that's right.
pmichaud jnthn: btw, I thought of a huge win that can come from using ObjectRefs for binding...
Matt-W jnthn: yes, that's what I meant
jnthn OMG EPIC WIN
Matt-W waits on the edge of his seat 10:25
jnthn Matt-W: No, I think it's right - it adds src/classes/ClassHOW.pir and removes src/parrot/ClassHOW.pir
pmichaud we no longer have to worry about the lexical symbol being rebound to a different PMC.... and thus we don't need redundant "find_lex" operations
once a scope has fetched a particular lexical... it doesn't have to re-fetch it again later 10:26
jnthn Matt-W: If you click the filename in the list at the top, it'll show you the content of the file.
Matt-W jnthn: oh yes so it does. I just wasn't reading the diff right (github doesn't include added files, it seems)
jnthn Matt-W: But yes, it doesn't automatically show full added files int he diff.
Matt-W pmichaud: sounds nice. What's the catch?
jnthn Thanks for looking anyway - it's hardly like my git skillz are teh awesome.
pmichaud Matt-W: shouldn't be any catch
jnthn pmichaud: Hmm. So at what point do we know to create the ObjectRef? 10:27
pmichaud jnthn: that's what makes this even better
infix:<:=> becomes a normal operator sub
it doesn't need any special handling in the compiler (at least, I don't think it does)
jnthn OK
Hm
So let's look at an exmaple.
sub foo { my $a = 42; my $b := $a; $a = 100; say $b; } 10:28
I think we agree that should print 100?
pmichaud yes
jnthn OK
So what roughly would my $b := $a; compile down to? 10:29
pmichaud ...compile down to?
it would be
$P0 = find_lex '$b'
$P1 = find_lex '$a'
'infix::='($P0, $P1)
jnthn OK, good. And what (not line by line PIR, just description is fine) would infix::= do? 10:30
pmichaud 1. Create a new ObjectRef to the second operand ($a)
2. Copy that ObjectRef into the first operand ($b)
3. Profit
jnthn Ah, OK, so we're doing a copy op there. 10:31
Would
pmichaud it's basically *exactly* what we do for
jnthn sub foo { my $a = 42; my $b := $a; my $c := $b; }
Here, is $c going to be an objectref -> objectref -> $a?
pmichaud my $a = 42; sub foo($b) { $a = 100; say $b }; foo($a);
jnthn Yes, it's the same. 10:32
Which feels somewhat right given it's signature *binding*. 10:33
pmichaud exactly
that's what prompted me to want to go this way (as well as a few other things)
jnthn OK, I don't spot any immediate holes to shoot in this. :-)
pmichaud in the $c case, I haven't completely decided (more)
but it'll likely work out to be much the same as when we pass a bound parameter as an argument to a nested function 10:34
we *should* be able to do some optimization so that $c ends up being objectref -> $a
jnthn I think so, yes. 10:35
pmichaud on the surface it isn't hard -- we just dereference the second operand to "infix::=" prior to building the ObjectRef
masak so, IIUC infix:<:=> and signature binding will share the same mechanism?
pmichaud masak: that's what I'd like to see happen at some level, yes.
jnthn masak: IIUC, yes.
masak that's funny, I had that thought a few days ago -- whether they did use the same mechanism.
Matt-W however, if in the $a $b $c example, you then rebound $b, shouldn't $c reflect that? 10:36
or are the semantics that you bind through to the final target always 10:37
pmichaud Matt-W: no
right.
if we rebind $b, that shouldn't affect the binding of $c
Matt-W oh 10:38
you don't bind $c to $b, you bind it to what $b is bound to
?
pmichaud yes
which is really true even in the $b := $a case
Matt-W and so in the original binding of $b to $a, it binds $b to what $a is bound to, which happens to be this value
pmichaud we bind $b to whatever $a is bound to.... right 10:39
Matt-W right
pmichaud "ding"
Matt-W so yes, you should be able to optimise it down to one objectref
Thanks, I understand that better now
pmichaud we have a bit of twiddling to do to make sure we preserve readonly-ness and type constraints, but that's not too difficult 10:40
Matt-W Cool 10:41
Sounds like a big win all round then
jnthn Aye, though atm we don't get any of that right with binding anyway.
Matt-W Not that I know what we currently do, but I'm not sure there's a better way
It sounds like a good solution
pugs_svn r27697 | wollmers++ | added unicode variables
pmichaud but a nice "side effect" of this approach is that we get to avoid a large number of "find_lex" instructions in the generated code
Matt-W jnthn: two birds, one shotgun with two independently-targetted barrels 10:42
pmichaud because Parrot's lexpad symbols remain bound to the same PMC throughout
10:42 pmurias left
Matt-W pmichaud: so that should give a performance win 10:42
pmichaud yes. I don't know if it'll be a significant win, but it'll certainly make the code look prettier :-)
Matt-W :) 10:43
well avoiding instructions is usually good
find_lex can't be free
jnthn It's not free.
pmichaud it's not free but also not too expensive, I suspect.
jnthn It throws away a bunch of stuff we know statically too.
pmichaud still, avoiding it should be a win 10:44
Matt-W It all helps
And it's not a premature optimisation either
Even I can understand what you're planning to do
So that must mean it's nice and simple :)
avar Probably nobody cares about 1) Updating binaries 2) Updating binaries for windows doubly so 10:45
(gah, wrong paste, wrong channel)
jnthn avar: And there I was, ready to give you a link to the Windows binaries of yesterday's Rakudo release. ;-) 10:46
avar whee:) 10:47
jnthn tries to resist the temptation to go on a massive metamodel refactoring frenzy. 10:49
Su-Shee well I just threw away an entire database design. ;) 10:51
jnthn Well, it won't be so much throwing away as lots of little bits to slowly beat things into a shape I find pleasing. 10:52
(While trying to make that shape pleasing to others too.) 10:53
Su-Shee what's holding you back then? ;) 10:54
pugs_svn r27698 | moritz++ | [test-reporter] include diff in mails, [particle]++ for suggesting that 10:55
10:55 colomon joined
moritz_ phenny, tell KyleHa could please test if r27698 works for you? thanks. 10:55
phenny moritz_: I'll pass that on when KyleHa is around.
jnthn Su-Shee: A vague attempt to finish my current grant on schedule-ish. ;-) 10:56
Though really that's a good thing. It keeps me focused.
moritz_ (hague grants)++
10:56 bpetering left
Su-Shee jnthn: ah, ok, that's a good reason. 10:58
jnthn goes to scribble on paper for a while to try and work out what he really wants/needs 10:59
ihrd rakudo: my $code = {"Foo"}; my %h = :bar; $code(| %h); 11:00
p6eval rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/FgJAABITVb:1)␤»
jnthn ooh
good find
rakudo: my $code = {"Foo"}; my %h = :bar;
p6eval rakudo e989e6: ( no output )
ihrd and another one
pmichaud rakudo: say (:bar).perl 11:01
p6eval rakudo e989e6: OUTPUT«"bar" => 1␤»
ihrd rakudo: my $code = {"Foo"}; $code(| {:foo});
p6eval rakudo e989e6: OUTPUT«argument doesn't array␤in Main (/tmp/vGFnIAQOzW:1)␤»
frettled doesn't array?
ihrd lat just about wrong | relization
jnthn rakudo: my $code = {"Foo"; $:bar}; my %h = :bar; $code(| %h);
p6eval rakudo e989e6: ( no output ) 11:02
pmichaud ah. currently the prefix-| only can work on array and hash variables
jnthn Somehow, the parameter passing gets very upset if you pass a flattening hash and have nowhere to stick the named params.
masak std: "$.method"
p6eval std 27697: ( no output )
jnthn rakudo: sub foo() { }; foo(:bar)
masak std: "$!attr"
p6eval rakudo e989e6: ( no output ) 11:03
std 27697: ( no output )
jnthn rakudo: sub foo() { }; my %h = :bar; foo(|%h)
ihrd pimchaud: mb better error message here, something like "NIY"
p6eval rakudo e989e6: ( no output )
jnthn oh huh
moritz_ rakudo: say 1
p6eval rakudo e989e6: OUTPUT«1␤»
jnthn rakudo: sub foo() { }; my %h = :bar; foo(|%h) 11:04
moritz_ sometimes I question p6eval's sanity to keep my own. Doesn't always work
p6eval rakudo e989e6: ( no output )
pmichaud jnthn: you need a param to foo
moritz_ rakudo: multi sub foo() { }; my %h = :bar; foo(|%h)
jnthn rakudo: sub foo($fake) { }; my %h = :bar; foo(|%h)
pmichaud rakudo: sub foo($a) { }; my %h = :bar; foo(1, |%h);
p6eval rakudo e989e6: ( no output )
rakudo e989e6: OUTPUT«too many named arguments - 'bar' not expected␤in sub foo (/tmp/KIqrbdUo5O:1)␤called from Main (/tmp/KIqrbdUo5O:2)␤»
rakudo e989e6: ( no output )
frettled moritz_: as if we'd notice. I mean, everybody's crazy.
jnthn Nope, that didn't quite get it either.
jnthn is confused
pmichaud rakudo: my $code = -> $a { "Foo" }; my %h = :bar; $code(|%h); 11:05
masak is frustrated
p6eval rakudo e989e6: OUTPUT«too many named arguments - 'bar' not expected␤in Main (/tmp/o8iT7ZaBUS:1)␤»
pmichaud oh! 11:06
no.
jnthn well that was anti-climactic.
pmichaud rakudo: my $code = { "Foo" }; $code();
p6eval rakudo e989e6: ( no output )
pmichaud rakudo: my $code = { "Foo" }; $code(1);
p6eval rakudo e989e6: ( no output )
jnthn rakudo: my $code = { "Foo" }; $code(:bar);
pmichaud rakudo: my $code = -> $a? { "Foo" }; my %h = :bar; $code(|%h); 11:07
p6eval rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/sID400zNEl:1)␤»
rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/bMiMwxo4TG:1)␤»
pmichaud *there*
it's when there's an optional param
jnthn optional param + named flat with nothing to receive it.
masak submits that as a rakudobug
jnthn Guess that's another PCC bug.
11:07 ihrd left
pmichaud yes. 11:07
moritz_ and another less-than-awesome error message :/ 11:08
pmichaud I suspect that combination isn't handled in the pcc code
frettled Perl 6 - new and interesting ways to screw with your minds. I lost my way.
jnthn *another* :'(
moritz_ can we coin LTA as abbreviation of 'Less Than Awesome'?
(maybe lower-cased)
pmichaud jnthn/masak: btw, "awesome" seems to be the word-du-jour around here at OSCON :-)
masak of course. :)
frettled moritz_: that could work, since the TLA also stands for Lighter Than Air. 11:09
pmichaud: isn't it awesome?
Su-Shee pmichaud: hopefully all about perl 6 being awsome. :)
wayland76 awe-all, for when awe-some just isn't enough :)
pmichaud Su-Shee: precisely, but it seems to be unconsciously spilling over into non-perl6 discussions :)
anyway, TimToady++'s state of the onion highlighted the discussion between jnthn++ and masak++ that led to us deciding that Perl 6 must be "not less than awesome" 11:10
masak :D
pmichaud (a wholly positive development, imo) 11:11
my lightning talk today covered hyperoperators, reduction operators, cross operators, and the zip operator, and gave an example using all of them
jnthn "and they work!"
frettled \o/ or /o\ ? 11:12
masak that's no less than awesome.
frettled: is the second one someone covering his head against rotten tomatoes?
frettled masak: for instance, or just holding his head in his hands (􏿽xABoh no!􏿽xBB)
pmichaud gist.github.com/153993
masak pmichaud: that's so cool. 11:13
frettled neat! 11:14
11:14 zamolxes joined
pmichaud what's totally cool is that in almost every case, the code is shorter than the comments :-) 11:14
jnthn pmichaud: my @hand = @deck.splice(0, 5);
Why not
my @hand = @deck[^5];
frettled X~ is something I've been in need of several times.
jnthn Or you wanted to remove them from the deck?
pmichaud jnthn: because when we deal a hand.... exactly
jnthn Right, gotcha. 11:15
Awesome. :-)
pmichaud earlier examples that I had would use @deck.pick(5)
moritz_ and when I ran it, it said 42. Wow!
pmichaud which is great, but if you do:
my @hand1 = @deck.pick(5); my @hand2 = @deck.pick(5);
then we get duplicates :-)
jnthn aye
not good
frettled pmichaud: looks like you might be a bridge player
pmichaud frettled: I did play bridge at one time, yes. Haven't played in years, though. 11:16
moritz_ the >>xx>> 4 looks pretty evil to me ;-)
pmichaud heh
there's a story behind that one
originally I had
11:16 meppl joined
pmichaud (2..10, 10, 10, 10, 11) X+ (0,0,0,0) 11:16
which also produces (2,2,2,2,3,3,3,3,4,4,4,4, ...)
moritz_ oooh, that's evil too ;-) 11:17
pmichaud but I always thought that was a bit hacky
I really wanted to say "give me four copies of each element"
and when I was preparing my slides, I was bummed because I didn't have any hypers in the original code
moritz_ I ususally use map for such things
pmichaud (and it's easiest to describe the other reduction ops after starting with a description of hypers) 11:18
moritz_ but of course >> is nicer in a meta-op lightning talk ;-)
jnthn finds reduction a good one to start with
pmichaud so while I was trying to figure out what to do, I stumbled upon >>xx>>
jnthn Since it only involves one input (an array)
(or list)
moritz_ jnthn: same here
pmichaud I like hypers because it's easy to show a perl5-ish equivalent
jnthn And you can mostly explain it as "think of it textually sticking the operator between each thingy in the array". 11:19
pmichaud it also keeps the notion of "working on lists"
11:19 synth joined
jnthn As a first approximation. 11:19
moritz_ btw why is the @(...) needed around the »xx» thing?
jnthn e.g. [+] 1..4 is a bit like 1 + 2 + 3 + 4.
11:19 mkfort joined
pmichaud because it really comes out to be [(2,2,2,2), (3,3,3,3), (4,4,4,4), ... ] 11:19
moritz_ should it? 11:20
11:20 donaldh left
pmichaud so we want to flatten it before we send it to Z 11:20
and yes, (1,2,3) xx 4 should result in ((1,2,3), (1,2,3), (1,2,3), (1,2,3))
jnthn Gah, we really should wrap Parrot Role PMCs up into a RoleHOW. 11:21
pmichaud normally it flattens if used in a flattening list context... but the arguments to infix:<Z> aren't flattening list
(they're slice context)
jnthn Perhaps anyway...
jnthn ponders
11:22 donaldh joined
frettled pmichaud: hmm, that there is nice tutorial material. 11:22
masak rakudo: sub foo { $bar }
pmichaud jnthn: I wonder if our P6metaclass objects need to be attachable to Role PMCs as well as Class PMCs
p6eval rakudo e989e6: OUTPUT«Symbol '$bar' not predeclared in foo (/tmp/3a1c8BHDKS:2)␤in Main (src/gen_setting.pm:3343)␤»
11:22 rfordinal left
jnthn pmichaud: I was pondering subclassing ClassHOW to get us a RoleHOW. 11:22
pmichaud frettled: I thinking that I want to convert my lightning talk into a blog post (that explains it like I did in the talk)
jnthn pmichaud: And essentially doing that.
frettled masak: my oh my :)
masak submits rakudobug about missing line number
frettled pmichaud: feel free to bounce it off a real n00b, AKA me. 11:23
pmichaud masak: ... missing line number?
jnthn Probably in an backtrace.
pmichaud ":2" looks like a line number to me.
(a wrong one, but not missing)
masak oh. 11:24
masak stands down
don't know what I was thinking, really.
ah!
pmichaud and it might not even be wrong, given that p6eval sticks some code at the beginning
masak because in the error _I_ got, I didn't get a decent line number!
let's see if I can recreate that situation. 11:25
pmichaud frettled: I will be sure to bounce it off of you
frettled great!
pmichaud (although I may just go "straight to post")
masak rakudo: class A { method new { $bar } }
p6eval rakudo e989e6: OUTPUT«Symbol '$bar' not predeclared in new (/tmp/X0ogJTteJj:2)␤in Main (src/gen_setting.pm:3343)␤»
masak there you go.
jnthn std: multi trait_mod:<is>(Class $x, Class $y) { }
masak submits rakudobug
p6eval std 27698: OUTPUT«ok 00:03 39m␤»
jnthn Good.
pmichaud: Basically, my plan is: 11:26
(more) ;-)
masak :)
jnthn 1) Create a RoleHOW
pmichaud jnthn: I'm thinking that we shouldn't have a separate RoleHOW, though
jnthn 2) Get roles using it
pmichaud it doesn't feel Perl6-ish
jnthn 3) RoleHOW and ClassHOW both do some role Class.
4) traits.pm then has saner signatures, and we win all around 11:27
masak dang, that one has a line number too! o_O
jnthn Plus we move more code into the metaclass that is all over traits.pm and guts.pir right now.
pmichaud at least, I haven't seen anything in the spec that implies that the metaclass objects we'd get back from roles would be of a different sort than the ones we get from classes
jnthn pmichaud: Interesting point.
pmichaud I'm not saying we can't do it that way... I just hadn't seen anything to indicate that this was part of the thinking behind them 11:28
jnthn pmichaud: The smop folks are doing it because they need .^dispatch to work differently in each of them (in one it's supposed to pun).
pmichaud ah. If smop is using this approach I have less concern
jnthn I'm trying to think if we have any code paths that'd get us into a need to separate them.
pmichaud but I think it'd definitely be worth asking TimToady++ if that matches his conception of things
moritz_ I think the spec POV is that each keyword (class, role, grammar) can have its own meta class, that also introduces things like 'has', 'method' and so on 11:29
jnthn But basically I think a package declarator maps to a HOW is roughly along the right lines.
pmichaud many times I find that a simple question of "...is this kinda how you thought it would work" brings forth very useful answers.
jnthn I seem to remember a discussion with TimToady along the lines that if you wanted a custom metaclass you'd also want to introduce a custom package declarator.
pmichaud jnthn: sure, but that's going the other way 11:30
that doesn't mean that every package declarator should result in its own metaclass
jnthn pmichaud: Yes, indeed.
pmichaud: As I mentioned though, I did plan RoleHOW at first to inherit from ClassHOW.
So we'd share most of the implementation.
pmichaud and, interestingly, in Rakudo and PGE "grammar" is exactly the same type of class as "class"
jnthn Yeah, true, actually I'd expect those to have a common metaclass. 11:31
pmichaud anyway, I think it's worth asking the question (of ourselves) as to whether they're really different
jnthn Though I guess the only thing you might do differently in a GrammarHOW is that's where you could probably most neatly declare what is the default parent class. 11:32
frettled and if they're different, are they just subclasses of the same? :D
jnthn Grammar vs Any.
pmichaud it's the same sort of discussion about what distinguished type objects from instance objects
jnthn frettled: Oh, even between ClassHOW and RoleHOW if we have them separated out, I think much will be the same. I'd expect not to duplicate implementation there.
pmichaud: I don't see that analogy, that feels like an orthogonal issue to me. 11:33
pmichaud I'm not saying it's a related issue, I'm saying it's a similar sort of discussion
(maybe I went too meta)
jnthn Ah, OK.
;-)
pmichaud i.e., Rakudo treated protoobjects as being a specialized type, smop used a flag
TimToady took a third approach altogether :-)
so by analogy 11:34
frettled jnthn: I'd love to say "aha" and be honest about it :)
pmichaud if we think of RoleHOW and ClassHOW as being separate, we might find that's really not the underlying case
(again, only because I really hadn't seen anything to imply that $role.HOW would be different in nature from $class.HOW 11:35
jnthn They'd both be metaclasses that implemented the same interface.
pmichaud sure, I can see that.
11:35 lumi_ left
jnthn I'm just not sure they'd have to be the same type of metaclass. 11:35
11:35 lumi_ joined
pmichaud I'm not sure they'd ahve to be the same either, but I'm not sure they'd have to be different. 11:36
to me it's one of those "deep choices" that seems like it might have far-reaching effects later on.
frettled . o O ( aliased metaclasses? )
pmichaud so I'm not trying to say which option is correct, I'm just saying "Oh. I had been thinking of it this other way..." and asking if the difference is significant 11:37
frettled (Whenever I think of things like that, I'm afraid that I might find that someone has already _implemented_ the concept.)
jnthn pmichaud: To be honest, I don't actually think it's that huge a difference. 11:38
pmichaud okay.
jnthn At the end of the day, it boils down to use using a subclass in place of it's parent.
And if we find the subclass is extraneous, we can just remove it and have everything use ClassHOW.
pmichaud again, while I know that Perl 6 explicitly supports multiple metaclass instances, it hadn't occurred to me that Perl 6 itself would be *using* multiple metaclass instances 11:39
frettled pmichaud: but it makes a perverse sort of sense.
pmichaud yes, I'm coming around to that view.
jnthn It hadn't really occured to me until smop went that way, and I've been pondering it since.
pmichaud anyway, I've noted my concern, but I don't a strong "OMG this is very likely wrong" feeling about RoleHOW 11:40
*don't have
so I don't object to going down that path :-)
I just wanted to ask about the other one.
frettled I googled RoleHOW and ClassHOW after you mentioned it and glanced through some SMOP documents with arguments pro&con. It seems like it's at least been considered.
jnthn If we feel it's wrong later, we can back out of it. I'll do my best to not paint us into a corner.
pmichaud wfm
jnthn But I'd really like to try and get things straightened out a bit. 11:41
frettled one of the relevant hits, I suppose: www.perlfoundation.org/perl6/index...._gsoc_2009
pmichaud of course, if it works out well then I'll likely be adopting something similar in P6object :-)
jnthn I just feel we've got a lot of bits of things that belong in a metaclass scattered all over the place.
And now Rakudo has it's own ClassHOW, we can put them there.
pmichaud I had some good conversation with Tim Bunce tonight about role support in Parrot
(mostly along the lines of "is it there?" and "can we design interfaces assuming it's present?" 11:42
jnthn Yes it's there, yes we can.
I guess. :-)
moritz_ is he trying to port DBI to Perl 6?
pmichaud moritz_: to *Parrot*
moritz_ well. 11:43
frettled whoa.
moritz_ I guess when it works in parrot, it'll be not too hard to set up a Perl 6 interface on top of it
pmichaud and, because I said I'd try to promote clarity -- it's actually DBDI that he's looking at
jnthn would so love database access from Rakudo.
Juerd_ hopes the interface for DBI *users* will be nicer than in Perl 5's DBI
(Of course, I would like it to be like DBIx::Simple ;)) 11:44
pmichaud His lightning talk today was about how he had done a DB(D)I lightning talk 2 years ago about building something on Parrot, but then promptly did nothing
jnthn Well, NYTProf wasn't exactly nothing, but... ;-)
pmichaud so he then used his lightning talk as a "call for volunteers" to help, as he doesn't want/plan to do all of the work himself :-)
and jnthn -- I told Tim to corner you about some of this stuff at Italian Perl Workshop :-) 11:45
jnthn Oh, he'll be at IPW, but not YAPC::EU? OK.
pmichaud yes
jnthn OK, will try and catch up with him there. :-)
moritz_ when you see him again, you can tell him that I'll volunteer for a Perl 6 frontend 11:46
pmichaud moritz_: I will do that
11:46 szabgab left
pmichaud When he called for volunteers I raised my hand, and later told him I was volunteering to (1) provide any Rakudo/NQP support the effort needed, and (2) to help him find volunteers :) 11:46
moritz_ recursion: see recursion 11:47
www.google.com/search?hl=en&q=recursion
pmichaud delegation: see [1]
anyway, I think five hands went up as volunteers here, so we should be able to get some people behind it 11:48
frettled :) 11:49
pmichaud (and yes, database access from Rakudo is one of those "we're a real implementation" sorts of things)
moritz_ did he mention any collaboration URL? or contact address?
wayland76 Here's the design doc: www.mail-archive.com/dbdi-dev@perl....00002.html
2004 anyone? :)
pmichaud moritz_: not yet, but I'll ask him about one tomorrow
moritz_ anyway, I really admire both of his major Perl modules, DBI and Devel::NYTProf
frettled wayland76: you found that one too, eh. :9 11:50
moritz_ some months ago I read a DBI tutorial on perl.com or so
from 1999, iirc
pmichaud anyway, our discussion was about the availability of roles in _parrot_, because we'd really like this to be available for multiple Parrot languages and not just Rakudo
moritz_ and the code still worked, and didn't feely and clumsy
I just hope that the Perl 6 frontend will be usable from other Perl 6 implementations too 11:51
pmichaud with the design of DBI/DBDI, I think that's entirely possible.
likely, even.
moritz_ I'd expect nothing less of Tim ;-)
masak moritz_: Rakudo is still not announced on use.perl.org/ 11:52
frettled I know a little bit about databases and programming, so I could probably try to give some feedback on the design, but perhaps that's already covered by other clever people.
pmichaud (going back to an earlier topic) pmichaud.com/2008/pres/oscon-perl6op # my lightning talk slides
oops
frettled 404 compliant, yes.
pmichaud 2009
11:52 payload left
pmichaud pmichaud.com/2009/pres/oscon-perl6op 11:52
moritz_ masak: not my fault, I hope. I submitted the story, it's still marked as "pending" 11:53
pmichaud (use 'N' and 'P' to navigate slides if you can't see the bottom bar)
masak moritz_: no, I don't think it's your fault.
moritz_: but it's another small nail in the coffin for use.perl.org 11:54
dalek ok: 28dd10d | (Hinrik Örn Sigurðsson)++ | (3 files):
Remove use of Module::Install::AuthorRequires
ok: 783b3f0 | (Hinrik Örn Sigurðsson)++ | (3 files):
Make Win32::Console::ANSI optional
ok: dbcc997 | (Hinrik Örn Sigurðsson)++ | (4 files):
Bump version to 0.14
ok: 068ce3f | (Hinrik Örn Sigurðsson)++ | (2 files):
Fix logic error
ok: 591c435 | (Hinrik Örn Sigurðsson)++ | (4 files):
Bump version to 0.15
frettled yipe
masak whoa.
literal dalek: you're verbose
moritz_ masak: speaking of which, I wanted to set up shared blogging on perlblog.org
11:54 szabgab joined
BinGOs Atomic commititis 11:54
masak the 'review' line is totally needless. 11:55
wayland76 Nearly as long as autarch's commit message for Temporal :)
moritz_ but ENOTUITS so far
pmichaud moritz_: I've had trouble with the "Publicize" option in use.perl before
masak and the ($n files) could be removed and the first and second lines merged.
voila! half as much output!
pmichaud I'd select it, but then it doesn't "stick"
masak moritz_: when you do, I'll probably join.
pmichaud masak: I often find the review line very helpful 11:56
BinGOs Could use shortened links as well.
masak pmichaud: the line that says 'review' (not the URL)?
11:56 unitxt joined
frettled moritz_: I'll tell you if I find any. 11:56
pmichaud masak: on my client, 'review' and the url are on the same line
masak oh. right. 11:57
they are.
pmichaud oh, I get it -- word wrapping is causing them appear on separate lines in your client
11:57 pmurias joined
pmichaud shorter urls would definitely help 11:57
frettled moritz_: you probably want to upgrade MT to the most recent version. 11:58
pmichaud I suspect that the sha1's could be truncated to 6 characters or so
pmichaud tests
alas, no.
maybe I should locate the github guys and see if they could allow truncated sha1's in the url :-) 11:59
BinGOs That's using the JSON service thingy
?
moritz_ frettled: do you think mt is a good choice for that anyway? 12:00
(the current installation is more of a placeholder thing for me)
frettled moritz_: I'm not quite sure. I'm allergic to blog software, content management systems, bulletin boards, etc. (I work with a hosting provider and I see way too many security issues.) 12:01
moritz_ frettled: usually I'm too, but ... well... for whatever reasons I volunteered :(
frettled moritz_: *pat pat* there, there. 12:02
pmurias jnthn: how would using the same metaclass for roles and classes work?
jnthn pmurias: Well, the more interesting question is "how wouldn't it work"? 12:03
frettled moritz_: the way I see it: don't use any of these systems in a shared webhosting environment where they need to run with the same privileges as the web server process. That excludes mod_perl, mod_php etc., unfortunately, unless Apache runs separate instances per user (ha, bloody ha). suexec is our friend (just barely). :)
jnthn I guess for smop, "we do something different in .^dispatch"?
But what else?
(my leaning is that they need to be separate, I'm just curious what other differences you ahve also run into) 12:04
frettled moritz_: and when that's in working order, I think it would be better politically (which is rather important) for Perl that a Perl blog site is hosted on Perl software.
moritz_: but I can't recall whether there's relevant multi-user alternatives to MT :( 12:05
pmichaud ...sometimes I think we take "eat your own dog food" a little too far
moritz_ frettled: slashcode might be
frettled pmichaud: yes, sometimes
moritz_: hmm, that's an option, sure.
I keep forgetting _that_ mess. :)
moritz_ :)
pmichaud TMTOWTDI should include the possibility of other languages :-)
moritz_ a good reason for me to use a perl based solution is that I want to be able to hack it
and perl is language I know best, by far. 12:06
frettled pmichaud: of course, but I'm thinking that publicity-wise, it looks good to use something made in the programming language you're promoting
pmichaud frettled: I don't disagree (more)
but I do disagree it it means we end up with use.perl
frettled pmichaud: agreed
pmichaud *if it
pmurias jnthn: you need to do something different when composing in a role 12:07
frettled think of the blessed irony of phpBB moving from phplist to mailman for _announcements_. (their own software, phpBB, supports notifications via e-mail, why didn't they use that? too crappy? woops.)
moritz_: that's probably one of the best points
moritz_ installs slash locally
frettled moritz_: maintainability is high on the wishlist, and sometimes, the upstream provider isn't quick enough at addressing security or stability issues :( 12:08
pmurias jnthn: smop doesn't have a ClassHOW yet
Matt-W frettled: well my experience of phpBB hasn't been good anyway
wayland76 I'm personally happy to say don't worry about eating our own dog food until Web.pm is 1.0
jnthn pmurias: I was looking at svn.pugscode.org/pugs/v6/smop/src-s...lassHOW.pm
frettled Matt-W: I'll refrain from ranting about the actual software here, I think I'm off-topic enough as is :)
jnthn pmurias: It's compose_role is wrong however.
Matt-W frettled: probably wise
jnthn pmurias: Since we really compose all roles together in some flattening operation when we compose the class as a whole. 12:09
frettled Matt-W: yup :D
jnthn So really compose_role just probably wants to add to a "todo list".
At least, that's how it is in Rakudo.
But that also makes me suspect the HOW API needs a "compose" method or something that we call at the end of the class definition.
moritz_ rakudo: role R { }; class A does R does R { }; say "alive"
p6eval rakudo e989e6: OUTPUT«alive␤»
jnthn That will do that overall composition.
moritz_ mildew: role R { }; class A does R does R { }; say "alive"
p6eval mildew: OUTPUT«Could not find variable ClassHOW in the lexical scope.␤» 12:10
pmurias jnthn: there are a few things wrong with that compose_role 12:11
jnthn But yes, I suspect there are enough differences that we need to separate them out, and what composition means is probably one of them.
Yes, there are. :-)
pmichaud moritz_: (use.perl story) -- I'll see if I can ping brian about it tomorrow
pmurias but i don't think you need a compose methods
pmichaud (where "tomorrow" is actually "today" or "a few hours from now") 12:12
jnthn How do you plan to handle the overall composition of the class at the end of its declaration?
Surely that's something the metaclass should do?
pmurias what should the overall composition do?
jnthn Actually do the job of composing the roles.
pmurias we can handle role conflicts as they occur (without a final composition step) 12:13
jnthn The roles need to be considered as a whole.
I don't think you can.
pmurias example?
jnthn A role should never conflict with itself no matter how it's introduced for example.
I forget how it looked specifically, but I know we had bugs in Rakudo because of the step-by-step composition. 12:14
moritz_ diamond inheritance + roles was a problem, I think
something that masak++ reported ;-)
jnthn Oh, yes, that was it. 12:15
But the key passage in S14 is this one:
A role may not inherit from a class, but may be composed of other
roles. However, this "crony" composition is not evaluated until
class composition time. This means that if two roles bring in the
same crony, there's no conflict--it's just as if the class pulled in
the crony role itself and the respective roles didn't. A role may
12:15 wollmers left
jnthn So here it talks about class composition time. 12:15
pmurias .^compose_role might also be called at runtime/somewhat later during compilation 12:19
a .^compose_role could recompose everything 12:20
jnthn That feels like a lot of repeated effort. :-S 12:21
Plus if the spec talks about an overall class composition time, it feels to me like we'd want to have something that gets called at that time.
pmichaud time for me to grab a bit more sleep -- back in a few hours
jnthn OK! 12:22
12:22 Front_slash joined
pmurias jnthn: anyway you only need to do the composition once the class is used the first time 12:23
jnthn Nope 12:25
Because you're meant to be able to detect composition conflicts at compile time.
Roles may be composed into a class at compile time, in which case
you get automatic detection of conflicting methods.
(that from S14)
pmurias we could do the compositions at the end of compile time 12:27
moritz_ that's too late
the class might get used later at compile time
jnthn Aye
Anyway, I think I'm going to give Rakudo's ClassHOW a .^compose where we can put this stuff. And we'll see how it goes, and where smop ends up, and work out something that suits both. 12:28
pmurias moritz_: you mean earlier?
moritz_ pmurias: later at compile time, but before end of compile time 12:29
pmurias moritz_: so the composition would be done earlier in that particular case
but recomposition after each .^compose_role seems the most sensible option to me 12:30
jnthn Our ideas of sensible seem to be non-overlapping. :-)
masak rakudo: say *.perl 12:32
p6eval rakudo e989e6: OUTPUT«!whatever_dispatch_helper␤»
jnthn eek.
masak !oh_noes
jnthn oh, I know why
masak yes, me too.
jnthn Oh, hmm, that's a rather interesting one.
masak and I think I reported it long ago.
but it still turns up now and then.
12:33 szabgab left
masak in my .perl calls. 12:33
frettled for fun and profit
jnthn I'm really not sure (a) whether it's a bug and (b) if it is, how to fix it.
masak sure it's a bug!
jnthn Oh, actually, I guess I know how to "fix" it. :-/
12:33 SmokeMachine joined
jnthn masak: Oh rly? 12:33
moritz_ masak: I'm not so sure
masak .perl should generate Perl code, no?
jnthn You'd never want to say
@things.map: *.perl;
lambdabot Unknown command, try @list
jnthn ?
12:33 pmurias_ joined
masak jnthn: fair enough. 12:33
jnthn my @serialized = @things.map: *.perl; # better example
12:34 pmurias left
moritz_ jnthn: I wanted to show the exact same code ;-) 12:34
masak rakudo: say [*,*].perl
p6eval rakudo e989e6: OUTPUT«[!whatever_dispatch_helper, !whatever_dispatch_helper]␤»
jnthn masak: I see your point, you just can't have your cake *and* eat it. ;-)
masak there you go, then.
bug.
moritz_ what's more buggy about this one?
masak it doesn't roundtrip.
pmurias_ jnthn: i haven't given that issue much thought (ruoso wrote ClassHOW) and i don't think much about things i'm not implementing yet
jnthn You can ever have "my @serialized = @things.map: *.perl;" work, or you can have *.perl eq '*'
moritz_ jnthn: maybe we can make *.something return a WhateverCode object that stringifies to *?
masak when possible, an eval should generate the same thing.
12:35 pmurias_ is now known as pmurias
jnthn pmurias: Sure, no worries. 12:35
masak moritz_: yes, that's what I mean.
jnthn pmurias: I see the HOW API as a kind of discussion topic and something that various implementations will be able to come to agreement on over time.
pmurias: We're not *all* that far off, and in fact Rakudo is converging on it generally. 12:36
So I'll go ahead with how I think it should be, but once smop hits implementing role composition we can re-visit it if the way Rakudo has gone really doesn't work for you.
moritz_: Ooh, that's an interesting idea. 12:37
rakudo: class WhateverCode is also { method Str { '*' } }; say *.perl 12:38
p6eval rakudo e989e6: OUTPUT«!whatever_dispatch_helper␤»
jnthn aww
moritz_ rakudo: say (*.perl).WHAT
p6eval rakudo e989e6: OUTPUT«Block()␤»
jnthn Oh.
moritz_ jnthn: that's the problem.
12:39 Gothmog_ left
jnthn moritz_: Aye, seems like it. 12:39
moritz_ rakudo: class NonExisting is also { }
p6eval rakudo e989e6: OUTPUT«Cannot use 'is also' on non-existent class NonExisting at line 2, near ""␤in Main (src/gen_setting.pm:1594)␤»
moritz_ so WhateverCode exists in Rakudo, but is not used in that case? 12:40
rakudo: say (1+*).WHAT
jnthn Yeah, I know it exists 'cus I saw it earlier today in passing. :-/
p6eval rakudo e989e6: OUTPUT«WhateverCode()␤»
jnthn Oh
moritz_ ah, it's activated in that case.
jnthn Yeah, must be a missing re-bless.
12:40 payload joined
masak re-bless? is that what it sounds like? 12:45
rakudo: class A {}; class B {}; say A.bless(B.CREATE) ~~ A
p6eval rakudo e989e6: OUTPUT«0␤»
masak doesn't work.
moritz_ masak: it works on the parrot level
masak I see.
12:54 araujo joined
araujo morning 12:56
masak morning, araujo. 12:58
araujo hi masak
:)
Matt-W masak: jnthn's metaclass thing of earlier makes use of reblessing. I found it rather scary to see the metaclass inheriting from Object, and then Object's metaclass being reblessed to be the metaclass which inherits from Object... HEAD ASPLODE. I think reblessing is something to be done sparingly. 12:59
masak Matt-W: still... I want to try it! :) 13:00
Matt-W masak: you would. 13:01
moritz_ welcome to the world of hald-circular meta object protocols ;-)
s/hald/half/
masak is fond of things that refer to themselves in various ways
13:02 perlygatekeeper joined
perlygatekeeper so where are we at? 13:02
moritz_ to quote chromatic - "I never metamodel not obsessed with reflection"
perlygatekeeper PerlJam!
jnthn Matt-W: Yeah, unfortunately what wsa in there wasn't quite right too. :-/
PerlJam perlygatekeeper 13:03
welcome
jnthn Matt-W: Still trying to unpick it all.
masak perlygatekeeper: I'd say people are distributed over various places.
perlygatekeeper with perl6
masak perlygatekeeper: oh.
perlygatekeeper I want to start a perl7 movement
masak perlygatekeeper: we don't really know our position...
pugs_svn r27699 | pmurias++ | [re-smop] implement a hackish eval
moritz_ "somewhere in the middle"
masak perlygatekeeper: ...but we have quite a good grip on our momentum!
Matt-W jnthn: it is scary.
moritz_ perlygatekeeper: have fun :-)
perlygatekeeper don't change anything, just call it perl7.2.8 13:04
Matt-W masak: nice one
masak Matt-W: really old, though.
pmurias mildew: eval('say "hi"')
p6eval mildew: OUTPUT«Could not find variable &eval in the lexical scope.␤»
perlygatekeeper make it seems like it's all debujgged for year
s
Matt-W masak: yes but sometimes they're worth bringing out again
masak Matt-W: people rolled their eyes when Heisenberg tried it.
that's how old it is.
perlygatekeeper I'm tired of people saying that perl is OLD 13:05
masak oh, not Perl. the joke.
if qualifies as one.
jnthn lunch!
perlygatekeeper lunch?
where the heck are you?
PerlJam listens to Tim O'Reilly at OSCON
moritz_ there's nothing about about old things
Matt-W mmm lunch
bit late aren't you jnthn?
See his dedication to Rakudo
PerlJam perlygatekeeper: he's way over to the right. 13:06
perlygatekeeper ya think
right over the pond, no?
Matt-W perlygatekeeper: one thing you get used to in here, we're from all over the world.
perlygatekeeper really?
Matt-W yes
perlygatekeeper you're not all from Ohio and New York
damn
PerlJam perlygatekeeper: some of us are from all over Texas ;)
perlygatekeeper oooo
masak perlygatekeeper: hello from Uppsala, Sweden. 13:07
Matt-W That has to be one of the best placenames ever
perlygatekeeper Sanata's "into the Night" is on my iPhone
I LOVE this song
hey masak
hello from columbus oh, usa
we are not all evil
masak perlygatekeeper: glad to hear it. 13:08
perlygatekeeper we had a 8-year failure of democracy
masak that explains a lot.
perlygatekeeper: so, have you tried Rakudo yet? 13:09
jnthn Matt-W: heh, well, I didn't get up from around 11:15 today 13:10
masak perlygatekeeper: it's just waiting for you to pick it up, so it can inundate you with awesome!
frettled perlygatekeeper: and hello from Oslo, Norway.
Matt-W jnthn: oh so not too bad then
frettled It's heating up again, I think, the polar bears are migrating north.
Matt-W just unusual to see you having lunch after me :)
perlygatekeeper: and hello from Nottingham, United Kingdom, where they've turned the market square into a 'beach' and we're suffering from a spate of short, sharp and relatively unpredictable heavy rainstorms. 13:11
frettled Matt-W: the usual weather, then ;)
Matt-W frettled: no, we don't usually have these rainstorms for so long 13:12
it usually just rains all the time
wayland76 perlygatekeeper: Hello from Australia :)
moritz_ and from Germany
jnthn waves to perlygatekeeper from Bratislava
moritz_ we ususally also have Israel and the US available 13:13
wayland76 perlygatekeeper: It's longer than a years
s/a/eight/
masak imagines perlygatekeeper putting pins on a world map
frettled Matt-W: ah, yes, good point there.
moritz_ that's actually a good idea
anybody wants to make a google maps mashups with Perl 6 developers?
wayland76 As someone said, "I've discovered a security hole in democracy. Stupid people! Large masses of stupid people!" :)
Matt-W wayland76: That is the flaw nobody's ever been able to overcome 13:14
wayland76 Well, it's pretty much bedtime here.
Matt-W: Yes, but the education system could be so much better :)
moritz_ it could be overcome by giving intelligent/knowledgabe people more voting power
wayland76 At least here, anyway
Matt-W wayland76: here too 13:15
wayland76 moritz_: It sounds good in theory, but I don't trust that idea either :)
masak me neither.
moritz_ neither do I
wayland76 Matt-W: England, right?
Matt-W how come Sweden can produce someone like masak, who speaks superb English, while the UK can barely produce people who can ask for a beer in another language
frettled Matt-W: luck.
Matt-W motivation, probably 13:16
frettled Scandinavians are bred for luck.
jnthn Matt-W: Probably attitudes.
Matt-W so much international culture is now in English
wayland76 Oh good, I'm 1/4 Scandinavian
moritz_ education, motivation and attitude
wayland76 And part Irish too :)
jnthn And education for sure.
Matt-W so a lot of people don't feel the need to learn anything else
frettled moritz_: what's the google maps mashup you want to make?
moritz_: and wouldn't it be interesting to do stuff with OSM?
and openlayers?
wayland76 no, probably not attitude as much as culture
Matt-W and to be honest, if I didn't have any German I wouldn't have any problems in day to day life... except that Wise Guys songs wouldn't be funny 13:17
wayland76 I was brought up without a TV, which probably explains some things :)
masak Matt-W: as a Swede, I've aspired to learn English for as long as I can remember. people in the UK don't have an obvious non-native international language that they realise at an early age that they have to learn.
jnthn masak: Ay, true.
wayland76 I always wanted to learn French
But I lost interest after year 10
frettled haha 13:18
wayland76 But I still know bits and pieces
masak learn Esperanto, and feel like a genious for picking up a language so quickly!
jnthn loves learning languages, but isn't good at any of them.
frettled jnthn: 􏿽xABjack of all trades, master of none􏿽xBB syndrome?
Matt-W masak: this is true, we're told about the number of people who speak Mandarin and Spanish, but there is no reason to speak Mandarin or Spanish for most of us
masak Matt-W: 对
jnthn frettled: Very much like that, I guess.
I've really love to get fluent in a foreign language.
Matt-W French is the traditional language to learn
frettled Matt-W: there might be some motivation to learn pidgin Portuguese before going to YAPC::EU 2009 13:19
jnthn: me, too.
Matt-W frettled: unfortunately I'm not going to YAPC::EU
but yes, there would be motivation there
wayland76 I wanted to learn French because it wasn't dead, but was still good for the classics. 2 birds with one stone :)
Matt-W I did learn a little Swedish when I was there
unfortunately because I was staying with Swedish friends, most of it was rude (and virtually everyone there seems to speak perfect English anyway)
frettled jnthn: I'm closest with English, but the dialects, branches and cultural references make it rather difficult. I suspect the latter is the greater barrier for most languages.
moritz_ going to YAPC::EU would be good motivation for learning pidgin Portuguese ;-)
jnthn I know some Swedish! 13:20
"bra slut!"
masak :)
moritz_ frettled: and that from a Norwegian? ;-)
Matt-W moritz_: if you want to pay, I'll come :)
frettled which doesn't mean 􏿽xABgood slut􏿽xBB
jnthn slut = end
frettled moritz_: :D
jnthn So I think together it's like, a good ending or something.
masak aye.
moritz_ and pronounced differently from the english "slut" 13:21
wayland76 It reminds me of the Irish town called "Faughan" (sp?)
Matt-W The only thing I can remember is rude, and I can't spell it
masak jnthn: here's another one in the same vein: 'fart-kontroll'.
moritz_ (more like the german ü, I think)
frettled jnthn: here's another one for you: 􏿽xABrolig􏿽xBB means different things in Norwegian and Swedish; but what? :D
wayland76 The "gh" is pronounced as a sort of "h" sound
masak jnthn: ('fart' is Swedish for 'speed')
frettled and Norwegian.
Matt-W wayland76: gaelic spelling is really odd. Weirder than Welsh. 13:22
wayland76 My Dad used to buy things from a German company called "SICK"
jnthn masak: Ah, OK. I was wondering if it was related to the German fhart.
Matt-W or maybe that's just because I learned the basic Welsh pronunciation a few years back
masak jnthn: very likely.
frettled As our tame rally driver is rumored to have said: 􏿽xABit's not the fart (speed) that kills you, it's the smell (bang)􏿽xBB
wayland76 "If you want to get better, get SICK" :)
Well, Welsh is easier once you realise that w and y are vowels 13:23
araujo reminds he was told once that "hola" means something like "a petition to get naked" in Romanian
wayland76 And I agree about Gaelic. aoibhell = ee-VELL
jnthn ...that's some interesting huffmanization if so...
Matt-W wayland76: yes, and the y's not so bad when you remember it can sometimes be that same vowel in English (assuming you're an English speaker of course) 13:24
wayland76: of course then there's the doubled consonants
frettled ghoti!
wayland76 I can say Aberystwyth, and Llangloffan (on the second try :) )
masak hasn't had ghoti in some time now
frettled neither. 13:25
It's been six days, I think.
wayland76 My main problem with Welsh is that I learned it from a book that teaches a pronunciation that may be from the time of King Arthur :)
13:25 Chillance joined
wayland76 Gaelic pronunciation/spelling is nearly as bad as English :) 13:26
frettled but just
So, is Perl 6 to Perl 5 what Gaelic is to British English?
;)
masak I've gotten used to most of the idiosyncracies of English spelling and pronunciation. in a way, that scares me. 13:27
Matt-W you cannot compare Perl with English
dalek ok: 4ca3522 | (Hinrik Örn Sigurðsson)++ | (3 files):
Rename -l/--only option to -l/--locate
ok: 625d117 | (Hinrik Örn Sigurðsson)++ | (10 files):
Move parsers to App::Grok::Parser::*
ok: b007a4b | (Hinrik Örn Sigurðsson)++ | (10 files):
Move all resource backends to App::Grok::Resource::*
Matt-W Perl is much better than English
ok: dd7f247 | (Hinrik Örn Sigurðsson)++ | :
Merge branch 'refactor'

Changes
ok: 0237272 | (Hinrik Örn Sigurðsson)++ | (9 files):
Bump version to 0.16_01
frettled Hmm. Is there any particular reason _not_ to /ignore dalek, I wonder.
masak frettled: rakudo commits. 13:28
13:28 skids joined
wayland76 I think the perl5/perl6 relationship is more like German/Esperanto (neither of which I speak) 13:28
frettled: They might exterminate you :) 13:29
frettled wayland76: if I don't see them, they're not there! ;)
13:29 M_o_C left
frettled masak: aha. In that case, I think I'll ignore dalek for now, and remove it from the ignore list if I'm suddenly interested in that. :) 13:29
wayland76 frettled: I think you need to change your nick to "ostrich" to enable that feature :) 13:30
masak frettled: what, you're not interested in rakudo commits?
wayland76 He's obviously commitment-phobic :)
frettled masak: not at this point in time.
masak frettled: that's one of the best features of this channel, besides all the great people!
wayland76 masak: Not everyone follows rakudo in quite the depth that you do :) 13:31
masak no, of course not.
wayland76 And I definitely prefer the people :)
masak but I still thought they had a passing interest...
Matt-W the people are better, that's for sure
13:31 Exodist joined
Matt-W but I like the rakudo commits 13:31
they help me learn how rakudo works
frettled I do, however pay (more) attention to the responses from rakudobot etc.
Matt-W of course, I could just follow them on github 13:32
13:32 Exodist left
frettled Matt-W: just so :) 13:32
wayland76 masak: Well, I don't even understand that last set of commits
masak wayland76: I see.
wayland76 the only joy I get from them is reading Hinrik's name -- I don't often get to read non-English letters :)
jnthn Mmm...that was a good cheese salad. 13:33
wayland76 I understand them in a general sense, ie. "I moved some files around and did a refactor", but that's about my limit :)
masak wayland76: I, too, think that dalek could be a little more quiet when reporting a lot of commits from the same author. maybe refer to a nopaste with all the info or something.
wayland76 googles cheese salad
Well, but the autarch commit on Temporal was good 13:34
Although that may not've been dalek
As far as I'm concerned, though, dalek can feel free to keep going; as long as it serves pmichaud and jnthn, I'm happy :)
I was hoping that cheese salad would be an assortment of cheeses, but no, it involves vegetables :) 13:35
masak no, I think dalek should strive to minimize noise. 13:36
jnthn wayland76: It's just salad with cheese. :-)
masak we should have high standards for our bots, that's important for the atmosphere on the channel.
jnthn In my case.
wayland76 masak: I'm fine with improvements, as long as pmichaud and jnthn are happy :)
masak oh, of course.
wayland76 jnthn: Yeah, I've had cheese salad before, I just didn't know what it was called
jnthn masak: Let's invite purl here!! 13:37
;-)
BinGOs spleen scream.
frettled o_O
literal 13:36:39 < masak> oh, of course.
masak jnthn: to make us realise how lucky we were before...?
literal oops, bad paste
wayland76 I don't like purl, because "purl: help" doesn't tell you what the commands are :)
masak purl is all but helpful.
BinGOs You are supposed to instinctively know the commands. 13:38
jnthn purl also randomly insults people. :-)
Yes, I don't miss purl in the slightest on #perl6
moritz_ and non-people too
wayland76 Well, maybe. But I tried "purl: @karma", and it just said "huh?" 13:39
moritz_ and purl usually doesn't care if you address her, or nobody, or somebody else
wayland76 @much like lambdabot?
lambdabot Unknown command, try @list
moritz_ well, at least lambdabot only cares about ^@ 13:40
jnthn > too
lambdabot Not in scope: `too'
jnthn ! maybe?
wayland76 @a = (1, 2, 3);
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
masak @@ 13:41
wayland76 I think I've had an idea
lambdabot: @(*&Y^%!^!
lambdabot Unknown command, try @list
wayland76 Well, at least it responds appropriately to swearing :)
Anyway, bedtime. afk & 13:42
jnthn night! 13:45
dalek ok: c5e12a4 | (Hinrik Örn Sigurðsson)++ | README:
Update the README
ok: 47a9d9b | (Hinrik Örn Sigurðsson)++ | lib/App/Grok/Resource/Functions.pm:
Remove leftover debugging statement
13:46 explorer left
jnthn hah, it's getting hot again 13:46
jnthn had hoped last night's storm that cooled things down would keep things cool 13:47
masak jnthn: you haven't had any rain?
oh, ok.
jnthn Yeah, a bit last night
It was lovely and cool afterwards.
Yesterday it hit 35ish here.
masak aye. bit of the same situation here yesterday. it was stifling until the rain came.
jnthn Which is a good 15C over the kind of temperature I like.
Matt-W jnthn: sounds like you like the same kind of temperature I do 13:48
jnthn masak: How hot is Sweden in summer?
masak jnthn: Sweden is long, north-south.
Matt-W The bit I went to was really hot
jnthn masak: The bit that people live in. ;-)
Matt-W and I went in April
jnthn Uff.
masak: I thought anything about Uppsala didn't count anyway? ;-) 13:49
masak jnthn: this week, the wearher report says between 16 and 24 degrees. that sounds fairly typical.
jnthn That's quite nice.
Matt-W that sounds nice
masak though 16 is definitely because of the rain.
13:49 hoelzro joined
masak I guess it can run up to 30 sometimes. seldom over 35, though. 13:50
Matt-W The problem we get in England is that when it gets up to the high 20s it tends to be very humid at the same time 13:51
[particle] hottest place i've been in is 44C
Matt-W And that's highly unpleasant
frettled The temperature record for all of Norway is 35.6 􏿽xB0C
Su-Shee I sum this up as "I want winter." ;) 13:52
Matt-W I like autumn
[particle] fly south :)
jnthn Su-Shee: That was actually (though not in English) my Facebook status yesterday. :-)
frettled Google maps location of Nesbyen in Norway: tinyurl.com/Nesbyen 13:53
jnthn Ho hum. Winter isn't so far off. :-)
Su-Shee jnthn: pretty much _everything_ I do and like isn't compatible with heat. from walking the city to making chocolate truffles.
masak well, you can _make_ the truffles... 13:54
frettled Su-Shee: and where do you live? :D
Su-Shee berlin.
frettled masak: if it's too warm, not really :)
moritz_ chocolate truff... don't you want to host the next German Perl Workshop?
frettled moritz_: ...in the autumn, I hear autumn is nice in Berlin (well, it was okay last year) 13:55
Su-Shee moritz_: already done that years ago and even if so: no, it's no fun to make truffles for a hundred people. ;))
moritz_ Su-Shee: I'm not a hundred people ;-)
13:55 hoelzro left
moritz_ Su-Shee: I think the last GPW in Berlin was before I became involved with the Perl community 13:56
jnthn frettled: Heh, I've probably been through Nesbyen.
Su-Shee autumn is exceptionally nice in berlin. usally from end of august until mid of october - deep blue sky, fresh breeze, golden sun light and NO HEAT ANYMORE
pmurias frettled: autumn is nice? you mean you like autumnish weather?
Su-Shee moritz_: I just know it being in there somewhere in this small town..
frettled jnthn: \o/
pmurias: it's not bad in Berlin, at least.
jnthn frettled: Seems the train like Oslo - Bergen goes through there.
Su-Shee moritz_: but yes, I can feed one person with chocolate truffles. ;) 13:57
jnthn s/like/line/
frettled jnthn: yep
moritz_ :)
Matt-W Berlin's somewhere I should probably visit
Su-Shee Matt-W: avoid july.
frettled Hmm. I've forgotten whether I put up last year's vacation pictures. 13:58
dalek ok: 65c15e2 | (Hinrik Örn Sigurðsson)++ | (2 files):
Recommend Win32::Console::ANSI in Makefile.PL
Su-Shee Matt-W: and if you hate "grey", avoid feburary either. ;)
frettled No, darnit, only from the army museum in Paris. Grr. 13:59
Matt-W Su-Shee: in July I like to stay at home and pretend it isn't happening
Su-Shee Matt-W: that's what I'm trying to do these days..
moritz_ bah, all this summer bashing
frettled Visit Longyearbyen (Svalbard), summer (as you know it) isn't happening there.
moritz_ it's not so bad IMHO
frettled not anytime soon, anyway.
Matt-W I can cope until the air con at work breaks down 14:00
jnthn Longyearbyen would be an awesome place to visit.
Matt-W which it's done five times this year so far
the building simply doesn't work without it
Su-Shee "what air conditioning?" ;)
Matt-W at least they finally figured out why it breaks
frettled moritz_: I agree; the lines at Six Flags Magic Mountain (Valencia, CA, USA) are much shorter then.
Matt-W it's the typical absurd reason - somebody didn't put in a big enough power cable for it
personally I'd prefer a building designed to function without air con, but... 14:01
frettled jnthn: If we find a millionaire sponsor, we could do a YAPC::Svalbard or something.
Su-Shee Matt-W: old administration buildings are great. thick, massive walls to intimidate every citizen.. ;) 14:02
Matt-W Su-Shee: we don't really have those here 14:04
14:05 alanhaggai joined, the_irrational_1 left 14:06 ruoso joined 14:07 KyleHa joined
Su-Shee Matt-W: prussian heritage. ;) 14:07
ruoso Hello! 14:08
ruoso very absent in the last weeks... $dayjob consuming all the time
14:09 Jedai left 14:10 ejs left
pmurias ruoso: hi! 14:15
14:15 szabgab joined
ruoso hi pmurias 14:15
pmurias ruoso: checkout out the performance improvements ;)
ruoso pmurias, svn updat'ing atm 14:16
dalek ok: e0fa86e | (Hinrik Örn Sigurðsson)++ | (4 files):
Die if the target is not recognized
14:17
pugs_svn r27700 | hinrik++ | [S32/Containers] Fix =item line for C<comb> 14:24
frettled szabgab: \o/
ruoso pmurias, sorry for not being able to backlog right now... could you summarize the changes? 14:25
pmurias np. i rewrote the lexical pad
and added caching to punning
14:26 FurnaceBoy joined
pmurias ruoso: do you think it's fast enough? 14:26
14:26 zamolxes left
ruoso still testing 14:27
14:28 mj41 joined
pugs_svn r27701 | masak++ | [S06] fixed some spelling and consistency stuff 14:29
pmurias mildew: eval('say "hi"') 14:30
p6eval mildew: OUTPUT«Can't locate Coro.pm in @INC (@INC contains: ../re-smop/SMOP/blib/lib/ ../re-smop/SMOP/blib/arch ../re-smop/SMOP/blib/lib/ ../re-smop/SMOP/blib/arch /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/…
pmurias :(
moritz_ any particular version required?
pmurias don't think so 14:31
pugs_svn r27702 | pmurias++ | [t] add block
ruoso pmurias, cool it's considerably faster
pugs_svn r27703 | pmurias++ | [re-smop] add tests for eval
r27704 | pmurias++ | [re-smop] added while
pmurias ruoso: do you think it's worth optimising it more or is it better to add more features? 14:32
ruoso pmurias, I think it's fast enough now...
pmurias, we can move on implementing featuers 14:33
and I think we need a better definition on the S11 issue by TimToady now...
I'd consider proper module loading to be our next target 14:34
14:34 szabgab left
moritz_ mildew: eval('say "hi"') 14:35
p6eval mildew: OUTPUT«say "hi"␤hi␤» 14:36
moritz_ debugging output left in? ;-)
ruoso looks like so
pmurias moritz_: fixed in HEAD
mildew: my $foo=123;eval('say $foo'); 14:37
14:37 szabgab joined
p6eval mildew: OUTPUT«Potential difficulties:␤ Variable $foo is not predeclared at /tmp/1mOioXyrsW line 1:␤------> say $foo␤say $foo␤123␤» 14:37
pmurias ruoso: eval is really slow as it runs mildew
ruoso pmurias, that's fine 14:38
moritz_ I hope we don't need string eval all that often ;-)
masak I still need it for working around regexes, but I guess that's not what you meant.
ruoso mildew: multi infix:<abc> ($a, $b) { $a ~ ' abc ' ~ $b }; say 1 abc 2;
p6eval mildew: OUTPUT«1 abc 2␤» 14:39
ruoso :D
pmurias ruoso: on other important thing is that i started using fudge
ruoso cool... that's worth a blog post ;)
moritz_ pmurias: do you also have a list of test files to run?
14:40 nihiliad joined
pmurias TESTS in v6/re-mildew 14:40
moritz_ in rakudo there's a rather handy script which runs all of the tests that are not yet in t/spectest.data and gives a nice overview which passes how many tests 14:41
tools/update_passing_test_data.pl
it should be pretty easy to adapt to your needs
pmurias moritz_: how does it deal with stuff which fails to parse?
moritz_ or we can move it into the t/spec/tools/ or so, and generalize it so that it works for both 14:42
pmurias: it reports them as 0 pass
pmurias: if you use STD.pm that rarely happens ;-)
or to be more precise it doesn't report them, currently it only reports those that have at least 1 pass
pmurias we can parse everything but the compiler doesn't recognise most constructs 14:43
moritz_ the utility of that script will grow when you implement more constructs ;-) 14:44
14:44 szabgab left 14:45 arnsholt left
moritz_ is there a good reason to build Test.pir with parrot perl6.pbc instead of the fakexuctable? 14:50
pmurias ruoso: so how do we procced with module loading? 14:51
jnthn moritz_: Suspect it may just be history.
ruoso pmurias, we need a proper decision by TimToady
pmurias, on how S11 will look like 14:52
masak moritz_: there used to be good reasons, but I think they disappeared (for me) around New Year or so. 14:53
pmurias ruoso: and what should i work on before the decision? 14:58
ruoso pmurias, take a look on what's missing for src-s1p/ClassHOW.pm to work 14:59
pugs_svn r27705 | pmurias++ | [re-smop] add a fuged ../../t/spec/S04-statements/while.t to TESTS 15:00
15:00 meteorjay joined
pmurias shopping& 15:01
15:01 pmurias left
moritz_ YaY, mildew is using the spectests! 15:01
pugs_svn r27706 | moritz++ | [t/spec] test descriptions for die.t, and two vim modelines 15:02
ruoso YaY indeed ;)
masak so that makes rakudo, pugs, mildew... yes?
moritz_ not only will that make me feel more important, it'll also help us to keep the test suite implementation agnostic 15:03
masak: elf used to use the test suite in some crude way (storing the result and diff'ing the results of different runs)
15:03 explorer joined
TimToady well, I think now mildew parses more of the test suite than any other implementation :) 15:04
moritz_ ;-)
15:04 szabgab joined
masak mildew++ 15:05
15:05 zamolxes joined
jnthn Next step: s/r/s/ :-) 15:05
masak should be trivial. it's only one letter. 15:07
15:08 nihiliad left
masak only one bit, actually. 15:08
TimToady commuting & # oscon
moritz_ rakudo: say ('r' ~& 's').perl 15:09
p6eval rakudo e989e6: OUTPUT«"\x[72]"␤»
moritz_ rakudo: say ('r' ~& 's')
p6eval rakudo e989e6: OUTPUT«r␤»
moritz_ rakudo: say ('r' ~s 's')
p6eval rakudo e989e6: OUTPUT«s/// not implemented, try .subst as workaround at line 2, near ")"␤in Main (src/gen_setting.pm:3343)␤»
moritz_ rakudo: say ('r' ~| 's')
p6eval rakudo e989e6: OUTPUT«s␤»
moritz_ rakudo: say ('r' ~^ 's').perl
p6eval rakudo e989e6: OUTPUT«"\x[1]"␤»
moritz_ rakudo: say s.perl 15:10
p6eval rakudo e989e6: OUTPUT«Could not find non-existent sub s␤»
moritz_ rakudo: say 's'.perl
p6eval rakudo e989e6: OUTPUT«"s"␤»
moritz_ rakudo: say ('r' ~& 's').PARROT
p6eval rakudo e989e6: OUTPUT«String␤»
moritz_ rakudo: say 's'.PARROT
p6eval rakudo e989e6: OUTPUT«Str␤»
moritz_ I wonder if we can find a bug related to that. 15:11
masak try doing .trans on both.
moritz_ rakudo: say ('r' ~& 's').subst(/s/, 't')
15:11 szabgab left
p6eval rakudo e989e6: OUTPUT«r␤» 15:11
moritz_ rakudo: say ('r' ~& 's').subst(/r/, 't')
p6eval rakudo e989e6: OUTPUT«t␤»
moritz_ rakudo: say ('r' ~& 's').uc.subst(/R/, 't') 15:12
p6eval rakudo e989e6: OUTPUT«Can't upcase binary data␤in method Any::uc (src/gen_setting.pm:579)␤called from Main (/tmp/Wt4LTpvuxN:2)␤»
masak ooh.
moritz_ ooh indeed
it means that this much closer to a Buf than to Str
and might be exactly what we want for Buf ;-)
masak excellent.
anyway, 15:13
rakudo: "".trans()
p6eval rakudo e989e6: ( no output )
masak rakudo: ("r" ~& "s").trans()
p6eval rakudo e989e6: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (/tmp/E1rA8Ivaaa:2)␤»
masak I had a feeling that'd blow up. :)
moritz_ :)
masak man, I've been doing this a long time. I know all the weak points... :) 15:14
anyway, that's a bug.
masak submits
moritz_ right, .trans is aslo defined on parrot strings
masak but differently.
moritz_ so it'll pick up the wrong candidate if it's not a Perl 6 Str 15:15
right
15:20 donaldh left 15:21 donaldh joined
masak is there a non-eval way to create a class based on the class name in $var? 15:28
15:28 payload left
moritz_ NYI presumably 15:28
I'm sure the meta class provides a method for that
masak the meta class of what? Str? 15:29
moritz_ the common meta class of Perl 6 classes
P6meta in Rakudo
jnthn ClassHOW
moritz_ or that, yes :)
masak rakudo: class A {}; my $var = A; my $a = $var.new(); say $a 15:30
p6eval rakudo e989e6: OUTPUT«A()<0xb686dc80>␤»
masak \o/
dalek ok: 2f9635a | (Hinrik Örn Sigurðsson)++ | (2 files):
Fix S32 parsing bug
ok: 0bc215d | (Hinrik Örn Sigurðsson)++ | (4 files):
Fixed problem with -l/--locate, added test for it
ok: c06849e | (Hinrik Örn Sigurðsson)++ | (4 files):
Look up the man pages. Depend on Perl6::Doc 0.42
ok: 8cf5c68 | (Hinrik Örn Sigurðsson)++ | (9 files):
Bump version to 0.16_02
15:31
ok: 3454ac2 | (Hinrik Örn Sigurðsson)++ | Changes:
Make the Changes file historically accurate
dakkar masak: that's not "the class name in $var", that's "the class object in $var"
masak dakkar: indeed.
dakkar: I managed to change the objective, making the problem solvable.
dakkar and using the class object is much cleaner
masak yes. 15:32
moritz_ rakudo: class A { }; my $x = A; $x.new.perl()
p6eval rakudo e989e6: ( no output )
masak sometimes one-pass parsing annoys me to no end.
moritz_ rakudo: class A { }; my $x = A; say $x.new.perl()
p6eval rakudo e989e6: OUTPUT«A.new()␤»
moritz_ masak: multi pass parsing is even more annoying in the long run ;-)
masak I think it's very restrictive that you can't refer to a class name before it's been declared.
it's unlike many other languages I'm familiar with. 15:33
jnthn You can always declare a stub and define it later.
masak true.
in other circumstances, that's called 'cruft' or 'boilerplate'. 15:34
code required to cater to a language's oddities.
jnthn has spent all afternoon grappling with something he expected to be simple. :-/ 15:36
15:37 szabgab joined 15:44 szabgab left 15:45 sparc joined 15:47 szabgab joined 15:49 SmokeMachine left, dakkar left
dalek kudo: ca2e4f1 | moritz++ | t/spectest.data:
[t/spectest.data] 5 more passing test files
15:53
jnthn \o/ 15:54
HOw many new tests is that?
I'm sure we've run some of those before now.
moritz_ in the order of 100 perhaps 15:55
masak oh well. it'll make the next release seem all the more impressive.
15:56 szabgab left, szabgab joined
moritz_ I've grepped `git log -p t/spectest.data` for identity.t and found no prior mention 15:56
same for null.t (that seems new) 15:57
same for die.t (not so new)
same for autoincrement-range
(but that's a new file too, KyleHa++) 15:58
jnthn Heh, wow. 16:00
16:02 Jedai joined 16:03 kane___ joined
dalek kudo: f78cf0b | jnthn++ | src/ (3 files):
This gets us creating the metaclass right at the start of class creation and operating on it. We dispatch traits on it also, which many of the fixes in here are helping towards. We also make mentions of ClassHOW work more properly, by having it registered, so now it's a bit less special. For now, there's more mess, but this is mostly an enabling refactor for more cleanups.
16:06
kudo: 546c253 | jnthn++ | :
Merge branch 'master' of [email@hidden.address]
moritz_ when I run 'perl tools/test_summary.pl' I get a usage message from fudge - any idea why? 16:07
ah, because I f*cked it up
16:07 FurnaceBoy left
dalek ok: 056121c | (Hinrik Örn Sigurðsson)++ | (4 files):
Small Pod fixes
16:09
kudo: d4d2319 | moritz++ | t/spectest.data:
[t/spectest.data] fix test name, moritz--
16:12
pmichaud good morning (again), #perl6 16:18
so, now that I don't have talks or meetings... has anything happened with Rakudo this week? ;-) 16:19
moritz_ yes, it was released, builds against parrot HEAD, has a refactored meta class...
jnthn Gained .^roles and .^attributes 16:20
moritz_ I also pushed Matt-W's done_testing patch to Test.pm
pmichaud outstanding 16:22
masak awesome.
jdv79 how are traits?
moritz_ and 5 more passing tests that we missed previously
jdv79: cool ;-)
masak test files, even.
moritz_ erm, yes ;-)
16:23 nihiliad joined
jnthn jdv79: Traits are coming along. Not perfect yet, but improving steadily. 16:23
Actually a bunch of what I'm working on today will straighten part of the issues out.
These days you can write traits to apply to blocks just fine. Soon you'll be able to write traits to apply to classes and roles also in a sensible way. 16:24
16:24 szabgab left, szabgab joined 16:30 pmichaud is now known as pmichaud_ 16:33 pmichaud joined
pmichaud reads scrollback 16:34
wayland76: ping 16:39
16:39 kane___ left
masak pmichaud: I think he went to sleep. 16:40
pmichaud okay, thanks
16:41 ctime joined
pmichaud in rt #63360, wayland76 creates a patch that contains all of the diffs of the ins2 branch as well as his own changes. I'd like to see just the changes he made -- what's the git magic to make that happen? 16:42
16:42 cdarroch joined
masak the ins2 branch is still around? 16:43
pmichaud yes.
masak pmichaud: create a branch from wayland76's patch and git-diff ins2 against it.
actually, you probably don't even need to create a branch.
pmichaud does "man git diff" 16:44
er, "man git-diff"
masak just git-diff ins2..$_ given sha1(wayland76.commit)
PerlJam If you have a working copy with the patch applied you don't need a diff.
er, branch
pmichaud PerlJam: I don't understand. 16:45
ctime anyone interested in knife crimes
masak ctime: I prefer butterflies and camels.
PerlJam pm: if your working copy (of ins2) has the patch applied, you just say "git diff ins2"
masak ah, yes. that's better. 16:46
pmichaud PerlJam: do I need to do anything special to apply the patch to ins2, given that the patch contains the ins2 diffs as well?
or is git's merge so smart that it can figure out which parts of the patch to apply and which to avoid?
masak pmichaud: apply it to the branch point instead.
pmichaud so I have to look up the branch point? or is that easily available also? 16:47
dalek kudo: 5167835 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 418 files, 11913 passing, 0 failing
masak pmichaud: good question. it's the commit before the first commit unique to the branch.
pmichaud so I have to look in the log for ins2 for that commit
masak so you can do 'git log master..ins2', take the last on the list, and do <sha1>^ on that. 16:48
PerlJam gitk or git-gui could tell you which commit that is graphically
(I don't know of an easier way)
pmichaud yeah, this seems a bit cumbersome
masak goes to ask on #git
pmichaud I wish wayland76 had given me just his diffs, rather than my diffs with his folded in
PerlJam pmichaud: or you could just assume that git is smart enough to not care that the ins2 diffs are included in the patch and see if that works. 16:49
pmichaud I might try that.
PerlJam git is darn smart about such things in general
masak I don't think it will.
might work with a merge, but not with a patch.
pmichaud maybe I'll just back-burner it for a bit while I catch up on other stuff. 16:50
masak #git says 'git merge-base' for finding branch point.
PerlJam #git++
masak yes, those guys know their git. 16:51
16:51 FurnaceBoy joined
jnthn role A { has $.a }; say A.HOW.attributes(A, :local)>>.name 16:51
rakudo: role A { has $.a }; say A.HOW.attributes(A, :local)>>.name 16:52
p6eval rakudo d4d231: OUTPUT«$!created$!selector$!shortname␤»
jnthn whoa
PerlJam (Dirk Hohndel)++
jnthn Well, I did fix something then. :-)
(locally)
pugs_svn r27707 | kyle++ | [t/spec] Test for RT #63646 16:53
PerlJam jnthn: does :tree work as well?
jnthn PerlJam: :tree isn't implemetned yet for all of the introspectable bits.
I think it works for .^parents 16:54
Check the tests. ;-)
16:54 Psyche^ joined
jnthn Of course, now we need a bunch of tests for role introspection. ;-) 16:54
masak
.oO( "who introspects the introspection?" )
16:56
ruoso masak, in theory the HOW is an object like any other
masak ruoso: in theory?
ruoso in practice, RoleHOW in mildew doesn't yet implement the REPR API 16:57
masak ok.
ruoso RoleHOW does
it's PrototypeHOW that doesn't
masak ah.
jnthn PrototypeHOW?
ruoso or is it PurePrototypeHOW
the thing that governs the knowhows
jnthn Dunno
Oh
Suspect that's not something that'll appear in Rakudo then. :-) 16:58
ruoso mildew: role A { }; say A.^!how;
p6eval mildew: OUTPUT«Could not find method Str.␤»
ruoso well, RoleHOW is not yet implementing Str by itself 16:59
mildew: role A { }; say A.^!how.^!how;
p6eval mildew: OUTPUT«unknown method "Str" at message line 143 file build/s1p-oo/src/prototypehow.c␤»
ruoso aha!
mildew: role A { }; say A.^!how.^!how.^!how;
p6eval mildew: OUTPUT«unknown method "^!how" at message line 143 file build/s1p-oo/src/prototypehow.c␤»
16:59 SmokeMachine joined
ruoso there it is... 17:00
17:00 nihiliad left, nihiliad joined
KyleHa You know what they say. 17:05
phenny KyleHa: 10:55Z <moritz_> tell KyleHa could please test if r27698 works for you? thanks.
KyleHa They say, "you know what they say."
phenny: tell moritz_ r27698 works great and thanks for writing it. See RT #63646 for an example. 17:06
phenny KyleHa: I'll pass that on when moritz_ is around.
17:07 Patterner left, Psyche^ is now known as Patterner
masak phenny: tell phenny will you pass this on when phenny is around? 17:08
phenny Hey, I'm not as stupid as Monty you know!
masak phenny++
phenny: tell masak will you pass this on to me when I'm around, then? 17:09
phenny You can tell yourself that.
masak :)
jnthn wow! 17:11
:-)
A bot that isn't braindead.
pmichaud ...but what if I want phenny to remind me of something? 17:12
17:12 jnthn is now known as jnthn_from_the_p
masak pmichaud: well, as she succinctly informed me, you can tell youself that. :) 17:12
jnthn_from_the_p phenny: tell jnthn remember this!
phenny jnthn_from_the_p: I'll pass that on when jnthn is around.
17:12 jnthn_from_the_p is now known as jnthn
jnthn ;-) 17:12
phenny jnthn: 17:12Z <jnthn_from_the_p> tell jnthn remember this!
masak :P
if you need to remind yourself of something 10 seconds from now, you have bigger problems than convincing a bot to hold a message to yourself. :P 17:13
pmichaud masak: I'll try to remember that! 17:14
masak :)
dalek ok: 9571a50 | (Hinrik Örn Sigurðsson)++ | (2 files):
Depend on Perl6::Doc 0.43
17:16
jnthn rakudo: say Role 17:19
p6eval rakudo d4d231: OUTPUT«Role()␤»
masak realizes he can use introspection to find even weirder bugs 17:21
rakudo: enum foo <>; say foo[1]
p6eval rakudo d4d231: OUTPUT«No applicable candidates found to dispatch to for '!create_simple_role_helper'␤in Main (/tmp/3Agx6QBFCz:2)␤»
masak submits rakudobug 17:22
jnthn Guess same as 17:23
rakudo: role Foo { }; Foo[42]
p6eval rakudo d4d231: OUTPUT«No applicable candidates found to dispatch to for '_block50'␤in Main (/tmp/4NmYLPdN2p:2)␤»
jnthn Aye
Need better error.
KyleHa Pshaw!
masak except that enums declare themselves as having a postcircumfix:[ ]
jnthn Oh?
KyleHa There's no spec for error messages, so all error messages are equal.
Just 'die "ouch"' and be done! 17:24
masak rakudo: enum foo <>; say foo.^methods>>.name.grep(/post/).perl
p6eval rakudo d4d231: OUTPUT«["postcircumfix:[ ]"]␤»
17:24 pmurias joined
jnthn Exactly. 17:24
And on a role, that is a selector.
masak KyleHa: this is exactly why you are not in charge of error messages. :P
jnthn Think class Foo does Answer[42] { }
masak oh.
KyleHa Because all my errors would be sarcastic. 8-)
pmichaud KyleHa: you're welcome to propose community error messages :-) 17:25
masak KyleHa: 'ouch' is not very sarcastic, is it?
pmurias ruoso: RoleHOW does the REPR API
KyleHa "error: Oh, I know exactly what method you want me to dispatch to."
ruoso pmurias, yeah... I realized it just after I said it...
pmurias ruoso: only p6opaque does it and RoleHOW is a instance of p6opaque
KyleHa masak: "ouch" is not sarcastic, but the suggestion that all errors be "ouch" is a sarcastic suggestion. 17:26
Tene Maybe we should just have rakudo dynamically fetch appropriate error messages live from a wiki.
masak KyleHa: I see.
KyleHa Heh.
masak Tene: MetaError: 'could not find bloody wiki' 17:27
KyleHa "error: unable to fetch error message"
Tene Then we can, um, crowdsource... the blogosphere...
17:27 pmichaud left
dalek kudo: dd5767c | (Kyle Hasselbacher)++ | src/ (2 files):
Simple implementation of [//] and [||] operators

Signed-Off-By: Moritz Lenz [email@hidden.address]
17:27
17:28 seve joined
seve whats an MPI 17:28
PerlJam message passing interface?
pmurias ruoso: ClassHOW should a knowhow or a role? 17:29
seve ok so i ddidn't misunderstand it's definition
is it used for clustering?
ruoso pmurias, it can be a knowhow
PerlJam seve: can be
seve ok
where else is it widely used 17:30
i was referring the anl.gov website and it mentioned in there
PerlJam google it
literal hm search.cpan.org/perldoc?Regexp::Grammars
seve k thanks PerlJam 17:31
pmurias ruoso: ClassHOW uses Pod6? 17:34
what viewer for Pod6 do we have?
KyleHa moritz++ # fixing my patches and applying them 17:35
17:36 estrabd joined
seve im looking for an alogirthm to convert base10 (decimal) to base N any ideas? 17:37
pmurias how do i install perl6.vim?
ruoso pmurias, yes... and it parses with STD
literal pmurias: github.com/petdance/vim-perl 17:45
pmurias: you can do a checkout of that and then "make symlinks" 17:46
17:48 nbrown left
KyleHa seve: search.cpan.org/~kwilliams/Math-Bas...aseCalc.pm 17:48
seve KyleHa: got it, thx 17:49
masak is it possible to add elements to an enum at runtime?
17:49 finanalyst joined 17:50 alester joined
moritz_ pmurias: clone hinrik/vim-perl from github, and 'make install' 17:51
phenny moritz_: 17:06Z <KyleHa> tell moritz_ r27698 works great and thanks for writing it. See RT #63646 for an example.
PerlJam masak: does it make sense to do that?
literal moritz_: has been merged back into petdance/vim-perl, which should work as well 17:52
pmurias moritz_: i cloned petdance/vim-perl , is it ok
?
literal pmurias: yeah
masak PerlJam: I have a case where I think it would.
literal the petdance one is the "official" one
alester moritz_: I'm glad someone's using the "make install"
it just seemed to make sense.
literal it will go into vim at some point
alester I need to feed files back to bram
moritz_ alester: actually I think I use 'make symlinks' or so 17:53
PerlJam masak: show me :)
masak PerlJam: ok, hold on.
17:53 nbrown joined
masak PerlJam: look at this enum: github.com/masak/web/blob/6fa8ed10a...ream.pm#L4 17:54
17:55 REPLeffect left
PerlJam looking 17:55
masak turns out there's a filter called EmptyTagFilter in the program I'm porting from which introduces a new value 'empty'.
17:55 REPLeffect joined
masak now, in the original they don't use enums, they just initialize objects with strings. 17:55
I consider that a poor man's enums. 17:56
so I can either (1) put the 'empty' element there statically, or (2) introduce it at runtime when needed.
I'm doing (1), but asking about (2). :)
pmurias ruoso: Object delegates CREATE,BUILDALL,DESTROYALL to the metaclass? 17:58
ruoso pmurias, as I current see it, yes
but this might be outdated concerning the fact that Object is now a role
or not 17:59
no... it isn't
because CREATE will be invoked in the punned class
so it will call the punned class metaclass
PerlJam masak: it seems to me that the point of an enum is that you know what's in it at compile time (becuase you're enumerated them :) 18:01
masak: you could probably alter it at runtime with some eval() trick if you really needed to 18:02
masak PerlJam: 'augment enum' :)
TimToady std: augment enum Bool <maybe>; 18:03
p6eval std 27707: OUTPUT«ok 00:03 38m␤»
PerlJam masak: that seems like "I wrote this enum above, but forgot this element" (i.e., static, compile-time info)
18:06 mepplock joined
masak hm, I don't know what would be a good solution here. just fishing for possibilities. 18:07
18:09 alanhaggai left
PerlJam I think you know a good solution (you already mentioned it :) 18:09
18:10 nihiliad left 18:12 Chillance_ joined
masak argh! if I get the error message 'Lexical foo not found', which part of the Rakudo stack have I enraged? 18:12
18:12 Chillance__ joined
masak there's no line number or file information... 18:12
jnthn No sigil? Hmm. 18:13
Probably something you declared lexically then that's a sub?
:-S
But odd.
PerlJam sounds like a parroty error
masak it's a constant I declared to be equal to an enum value. 18:14
pmurias ruoso: but BUILD shouldn't be defined in the metaclass should it? 18:15
ruoso pmurias, why not?
ah... I see what you mean
yeah... it could be called something different 18:16
but prototypehow doesn't call BUILD
so it isn't a problem, I think
18:18 tann joined
pmurias why do we delegate DESTORYALL,BUILDALL to the metaclass instead of handling them in Object? 18:19
tann rakudo doesn't seem having support for use Foo <x y z> yet? a bug or known issue? 18:20
std: use Foo <foo @bar>; 18:21
p6eval std 27707: OUTPUT«Potential difficulties:␤ Can't locate module Foo at /tmp/EpkmNhcHs5 line 1:␤------> use Foo <foo @bar>;␤ok 00:02 36m␤»
18:21 alester left, meppl left
tann rakudo: use Foo <foo @bar>; 18:21
moritz_ tann: known NYI
p6eval rakudo dd5767: OUTPUT«Unknown import list expression in use at line 2, near ";"␤in Main (src/gen_setting.pm:408)␤»
tann alrighty 18:22
18:24 hercynium joined
ruoso pmurias, the idea is that replacing the metaclass will allow a more powerfull customization 18:24
moritz_ rakudo: say 1 ~~ Inf^..^Inff
rakudo: say 1 ~~ Inf^..^Inf
rakudo: say 1 ~~ -Inf^..^Inf
p6eval rakudo dd5767: OUTPUT«Could not find non-existent sub Inff␤»
rakudo dd5767: OUTPUT«0␤»
rakudo dd5767: OUTPUT«1␤»
pmurias ruoso: but you could as well mixing a role into the class 18:25
* mix in
* compose a role into the class
ruoso pmurias, yeah... in fact...
pmichaud_ jnthn: another thing that wants fixing is that "constant" is now package scoped instead of lexical scoped.
jnthn That's...not the usual direction things tend to go... 18:26
Also the inlining analysis gets harder, I think. :-/ 18:27
18:27 fridim_ left
jnthn (don't think we do any yet though) 18:28
18:28 Chillance left, FurnaceBoy left
jnthn -> store for stuff to cook...or fast food if I suffer a sudden outburst of laziness on the way. 18:29
TimToady it's possible the constant decalarator should become more like 'sub' or 'multi' in terms of syntactic slot
18:30 Chillance_ left
TimToady (I said at the time that I wasn't sure our-ifying constant was the right approach...) 18:31
pmurias TimToady: why does CREATE take a string repr parameter, wouldn't passing an object be better? 18:33
that is $class.CREATE(:repr(P6opaque)) instead of $class.CREATE(:repr<P6opaque>)? 18:34
masak rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.elems } }; A.new(:a(1,2,3)).foo
p6eval rakudo dd5767: OUTPUT«1␤»
masak somewhere I get an extra layer of Array in the above. where? 18:35
how do I get foo to print 3?
18:36 justatheory joined, justatheory left, finanalyst left
pmurias class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo 18:37
rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo
p6eval rakudo dd5767: OUTPUT«No applicable candidates found to dispatch to for 'new'␤in Main (/tmp/oRn3TE0IuQ:2)␤» 18:38
pmurias rakudo: class A { has @!a; multi method new(*%_) { self.bless(self.CREATE(), |%_) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo
p6eval rakudo dd5767: OUTPUT«[1]␤»
pmurias class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(7,2,3)).foo
rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.elems } }; A.new(:a(7,2,3)).foo 18:39
tann pugs: say caller(0).perl
p6eval rakudo dd5767: OUTPUT«1␤»
pugs: OUTPUT«Control::Caller.new((\("file", undef), \("line", undef), \("package", undef), \("sub", undef), \("subname", undef), \("subtype", undef))␤»
pmurias rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.perl } }; A.new(:a(7,2,3)).foo
p6eval rakudo dd5767: OUTPUT«[7]␤»
pmurias masak: two of arguments to :a get discarded? 18:40
masak pmurias: seems so.
that can't be right.
18:41 b2gills joined
cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.\s/ { say $_; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right? 18:43
p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤␤»
masak rakudo: sub foo(:@a) { say @a.perl }; foo(:a[42,43,44]) 18:44
p6eval rakudo dd5767: OUTPUT«[42, 43, 44]␤»
masak rakudo: sub foo(:@a) { say @a.perl }; foo(:a(42,43,44))
p6eval rakudo dd5767: OUTPUT«Parameter type check failed; expected Positional, but got Int for @a in call to foo␤in sub foo (/tmp/m0LcAL4iI8:2)␤called from Main (/tmp/m0LcAL4iI8:2)␤»
masak shouldn't both these work?
moritz_ thinks so
masak slams another rakudobug 18:46
cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.\s/ { say <$_>; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right?
p6eval rakudo dd5767: OUTPUT«$_␤»
moritz_ cbk: no. 18:47
cbk is it just $_
moritz_ if you do 'say $/', it should be 'n '
the regex match sets $/, not $_
cbk ok 18:48
pmichaud_ rakudo: say :a(42,43,44).perl
p6eval rakudo dd5767: OUTPUT«"a" => 42␤»
pmichaud_ there ya go.
cbk and /.\s/ will match any number of chars and the first white space char?
pmichaud_ we have to refactor colonpairs anyway, they switched from postcircumfix to circumfix parsing 18:49
file a ticket, assign it to me, I'll fix it later tonight
(that's one I'd like to fix relatively quickly)
cbk and /.\s/ will match any number of chars and the first white space char? 18:50
Tene pmichaud_: ETA for rakudo being able ot build against Parrot trunk again?
pmichaud_ Tene: it's not doing that now? I thought that landed
moritz_ Tene: -6 hours
cbk whoops sorry for the re post on my last.... 18:51
Tene pmichaud_: looks lik emoritz has the answer. :)
18:51 leedo left
pmichaud_ Tene: one of the amazing things I've learned from OSCON is just how irrelevant I am to getting things done with Rakudo. :-) 18:51
cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.......\s/ { say </_>; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right? 18:52
p6eval rakudo dd5767: OUTPUT«/_␤»
18:52 leedo joined
cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.......\s/ { say /_; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right? 18:52
moritz_ cbk: .......\s is always a fixed width match 18:53
p6eval rakudo dd5767: OUTPUT«_block64␤»
moritz_ rakudo: given 'mrGreen 5 1 23 ' { say "<$/>" if /.\s/ }
p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤<>␤»
cbk moritz_, yah thats not really what I want but I could make it work..... not the best choice
moritz_ rakudo: given 'mrGreen 5 1 23 ' { if /<[a..zA..Z]>*\d/ { say "<$/>" } } 18:54
p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤<>␤»
moritz_ hrmpf.
pmichaud_ something isn't setting $/ properly? 18:55
moritz_ rakudo: if 'mrGreen 5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" } }
p6eval rakudo dd5767: OUTPUT«Syntax error at line 2, near "}"␤in Main (src/gen_setting.pm:3343)␤»
moritz_ pmichaud_: I have no idea what the problem is.
rakudo: if 'mrGreen 5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" }
18:55 fridim_ joined
p6eval rakudo dd5767: OUTPUT«<5>␤» 18:55
18:55 damyan left
moritz_ rakudo: if 'mrGreen5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" } 18:55
p6eval rakudo dd5767: OUTPUT«<mrGreen5>␤»
pmichaud_ I know there are some issues with given { } blocks -- maybe that's the problem. 18:56
moritz_ rakudo: given 'mrGreen 5 1 23 ' { say $_.perl }
p6eval rakudo dd5767: OUTPUT«"mrGreen 5 1 23 "␤»
moritz_ rakudo: given 'mrGreen 5 1 23 ' { /<[a..zA..Z]>*\d/ }
p6eval rakudo dd5767: ( no output )
moritz_ rakudo: given 'mrGreen 5 1 23 ' { /<[a..zA..Z]>*\d/ && say $/ } 18:57
p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤␤»
moritz_ there you go.
moritz_ reports bug
[particle] that hat makes you look like masak
masak doesn't mind
b2gills rakudo: given 'mrGreen 5 1 23' { when /<[a..zA..Z>*\d/ {say $/ }} 18:58
p6eval rakudo dd5767: OUTPUT«perl6regex parse error: Missing close '>' or ']>' in enumerated character class at offset 67, found ''␤in Main (src/gen_setting.pm:3343)␤»
cbk moritz_, pmichaud_ thanks but I have to go to work now. THANKS rakudo.org for #19 went to sleep at 3am last night and woke up at 7am. now I'm going to be a zombie at work :)
moritz_ <gandalf>I was barely involved</gandalf> 19:00
b2gills rakudo: given 'mrGreen 5 1 23' { when /<[a..zA..Z]>*\d/ {say $/ }} 19:01
p6eval rakudo dd5767: OUTPUT«5␤»
19:02 nihiliad joined
PerlJam b2gills: were you expecting something different? 19:02
pmichaud_ moritz++ # Rakudo 19
19:04 damyan joined
moritz_ pmichaud++ # rakudo 19:04
19:08 jferrero joined
masak rakudo++ 19:10
ingy hi masak 19:13
pmichaud_ wants to add Damian's Parse::Grammar debugger to PGE.... 19:14
TimToady me wants to run STD's logger into a debugger
masak hi ingy 19:16
ingy: will you be at YAPC::EU?
19:17 sri_kraih joined
ingy masak: non 19:18
masak: you busy right now?
masak ingy: just about to go home and regenerate.
I mean sleep. sleep.
ingy got 10 mins for me? :] 19:19
masak yes, I do. :)
ingy /join #testml
19:20 donaldh left 19:21 donaldh joined 19:23 explorer left 19:24 ilbot2 left, ilbot2 joined
literal pmichaud_: Parse::Grammar ? you mean Regexp::Grammars? 19:27
19:27 seve left
masak I've had a very productive afternoon with Hitomi today. I'll be ready to blog tomorrow. 19:27
that'll mark the end of my part of the grant, and the beginning of the MVC part that I've taken over from ihrd.
jnthn Nice work. :-) 19:28
KyleHa rakudo: my %h = ( a => any(3, 4) ); for %h.kv -> $k, $v { say "$k: {$v.WHAT}" };
jnthn looks forward to masak++'s YAPC::EU talk
p6eval rakudo dd5767: OUTPUT«a: Junction()␤»
masak jnthn: thank you. it has been slow, but satisfactory.
jnthn: me too! :)
19:28 arnsholt joined
Tene I've got a Perl 6 issue that I'm having trouble working out. 19:28
masak and the presentation software to drive it...
Tene: spill it. :)
Tene I've got a class, Foo, with an attribute, $.bar. 19:29
masak ah, a public one.
Tene I want to be able to initialize new Foo isntances with a bar based on several parameters.
my $x = Foo.new(1,2,3,4);
masak Tene: so declare your own 'new' method.
moritz_ then you ned to write a custom constructor
Tene masak: Right, but how do I make the actual object to return in the 'new' method? 19:30
masak which does self.bless(*, :bar( $formula ))
Tene Ah, bless. How did I forget bless?
masak like that :)
I scratched my head over that a lot too :)
jnthn aww...bless you.
PerlJam does Whatever work in that context?
Tene What's the * there for?
jnthn Yes 19:31
19:31 alanhaggai joined
jnthn It means "you decide what representation to use" 19:31
That is, "call CREATE for me"
PerlJam Ever since it's been added to the language I find myself surprised at where it shows up for some reason.
masak in effect, it means self.CREATE()
PerlJam: what, bless?
PerlJam Whatever
masak PerlJam: ah.
yes, it's slightly ubiquitous. 19:32
19:32 masak left
KyleHa rakudo: say any(1,2).WHAT 19:32
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/pMcfKfY769:2)␤»
19:33 nbrown left
PerlJam I think "Null PMC access" is more ubiquitous than Whatever ;( 19:33
19:33 justatheory joined
pmurias perl6: $Foo::bar = 1; 19:34
p6eval elf 27707, pugs, rakudo dd5767: ( no output )
KyleHa rakudo: say any("foo","bar").WHAT 19:35
19:35 payload joined
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/uNC1qkzmla:2)␤» 19:35
KyleHa Where's the integer?
moritz_ internal somewhere
pmurias ruoso: so do we need to but D.../B... in the metaclass?
pmichaud_ rakudo: say any("foo","bar).PARROT 19:36
PerlJam rakudo: any.WHAT.say
p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "(\"foo\",\"ba"␤in Main (src/gen_setting.pm:3343)␤»
rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/S4yK9KwfFS:2)␤»
pmichaud_ rakudo: say any("foo","bar:).PARROT
ruoso pmurias, I think it's an API choice...
pmichaud_ rakudo: say any("foo","bar").PARROT
p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "(\"foo\",\"ba"␤in Main (src/gen_setting.pm:3343)␤»
rakudo dd5767: OUTPUT«Junction␤»
ruoso I think TimToady help would be very much appreciated here
pmichaud_ (sorry for typoes)
rakudo: say any("foo","bar").WHAT 19:37
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/zy3y7E7waD:2)␤»
pmichaud_ rakudo: say any("foo","bar").WHAT.PARROT 19:38
p6eval rakudo dd5767: OUTPUT«␤»
pmichaud_ oh. I wonder if it's trying to autothread there or something
pugs_svn r27708 | kyle++ | [misc] Better test-reporter.pl documentation
r27709 | kyle++ | [t/spec] (perhaps incomplete) test for RT #63686
r27710 | moritz++ | [t/spec] test for RT #67864
r27711 | kyle++ | [t/spec] identifying a junction causes Null PMC
pmichaud_ anytime .PARROT returns "" it means we're dealing with an anonymous class somehow, though 19:39
19:41 hercynium left
payload can't .PARROT return "anonymous class" instead? ^^ 19:43
pmichaud_ I'll have to look at that. Better would be "anonymous subclass of Foo" 19:44
pmichaud_ files rakudobug 19:45
19:45 nbrown joined 19:47 jevin joined, M_o_C joined
pugs_svn r27712 | kyle++ | [t/spec] label the tests for RT #67886 19:49
19:51 eternaleye left
jnthn back from nom 19:51
tann rakudo: my $x = given 1 { default 1 { say 'yup' } }; 19:52
p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "{ default "␤in Main (src/gen_setting.pm:3343)␤»
jnthn default doesn't want an arg after it
std: my $x = given 1 { default 1 { say 'yup' } };
p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤given() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/0TJYLV0b09 line 1:␤------> my $x = given 1 { default 1 { say 'yup' } };␤ expecting any
..…
jnthn Oh, curious error. 19:53
tann rakudo: my $x = given 1 { default { 1 } }; say $x;
p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "{ default "␤in Main (src/gen_setting.pm:3343)␤»
moritz_ uhm, wtf?
TimToady std: my $x = do given 1 { default 1 { say 'yup' } };
moritz_ I don't see why STD.pm should reject that
p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/Tk5uFL2WwR line 1:␤------> my $x = do given 1 { default 1 { say 'yup' } };␤ expecting any of:␤ infix or meta-infix␤ infix
..stopper␤ sta…
TimToady std: my $x = do given 1 { default { say 'yup' } }; 19:54
p6eval std 27707: OUTPUT«ok 00:02 37m␤»
19:54 Su-Shee left
PerlJam do++ 19:57
pugs_svn r27713 | moritz++ | [t/spec] fix several smartlinks
PerlJam std: my $x = if 1 { 5 } else { 3 }
p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤if() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/aXstEMQkge line 1:␤------> my $x = if 1 { 5 } else { 3 }␤ expecting any of:␤ infix or
..meta…
PerlJam std: my $x = do if 1 { 5 } else { 3 }
p6eval std 27707: OUTPUT«ok 00:02 37m␤»
PerlJam rakudo: my $x = do if 1 { 5 } else { 3 }; say $x; 19:59
p6eval rakudo dd5767: OUTPUT«5␤»
PerlJam rakudo++
19:59 jevin left 20:02 Front_slash left 20:03 jevin joined
pugs_svn r27714 | moritz++ | [t/spec] fix all remaining broken smartlinks 20:07
tann rakudo: caller 20:08
p6eval rakudo dd5767: OUTPUT«Could not find non-existent sub caller␤»
tann ok, still nyi
20:10 mkelly32 joined
pmurias ruoso: i would prefer putting that into Object as the metaclass has methods releating to class construction and those methods are related to instance construction 20:12
ruoso: plus i don't imagine anyone chaning BUILDALL or DESTORYALL so getting rid of complexity is more important the ease of overiding 20:13
moritz_ and they aren't called with ^, so they must go into Object, not the meta class 20:14
pmichaud_ maybe we should create NYI.pm in src/settings/ with stubs for the "not yet implemented" stuff.
20:15 fridim_ left
moritz_ that's something I could do 20:15
pmichaud_ let's try it and see how it goes
ruoso pmurias, that's a sane idea... I don't have any arguments against it... 20:16
pugs_svn r27715 | lwall++ | [STD] complain on missing block for constructs that require block, tann++
r27715 | lwall++ | [STD] polish to error messages, including yellow marker for colorblind folks++
leedo are there any videos online of TimToady's p6 error message talk? i missed it at YAPC::NA :( 20:19
20:19 fridim_ joined
moritz_ how can write a private sub in the setting? 20:19
pugs_svn r27716 | kyle++ | [t/spec] Test for RT #67852 20:20
20:20 jferrero left 20:21 vts joined
payload in grammar.pg at line 52 is [ $ || <panic: Syntax error> ] 20:21
where is panic defined?
jnthn moritz_: Use a lexical sub maybe?
moritz_ jnthn: just trying...
jnthn payload: probably it's inherited.
From PCT::Grammar perhaps. 20:22
pmichaud_ panic is in PCT::Grammar at the moment
payload thx 20:23
pugs_svn r27717 | pmurias++ | [re-smop] handle ::CGI::Fast properly 20:24
r27718 | pmurias++ | [re-smop] start making ClassHOW compile
20:24 explorer joined, skids left
moritz_ jnthn: bah, lexical subs don't work in the setting 20:28
jnthn moritz_: Huh? That's...odd.
moritz_ they can't be found from within the same file
nopaste.snit.ch/17383 20:29
jnthn rakudo: my sub foo() { say 1 }; foo()
p6eval rakudo dd5767: OUTPUT«1␤»
jnthn moritz_: And it works outside of the setting? 20:30
moritz_ the fact that it complains about sub nyi() and not about sub caller() means that I didn't forget to add it to the Makefile ;-)
PerlJam rakudo: my sub foo() { say "hi" }; multi blah() { foo(); } ; blah();
moritz_ hrm 20:31
p6eval rakudo dd5767: OUTPUT«hi␤»
moritz_ jnthn: yes, works outside the setting
TimToady std: default 1 {...} 20:33
p6eval std 27716: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/fQw5B7ZSFJ line 1:␤------> default 1 {...}␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤
..terminator␤Undecl…
TimToady hmm, that's wrong still 20:34
jnthn pmichaud_: hmm...just discovered a...curiosity
pmichaud_: In Any.pir we have:
.sub 'does' :method .param pmc x $P0 = self.'HOW'() .tailcall $P0.'isa'(self, x) 20:35
.end
Should that not be delegating to .'does'?
20:35 justatheory left
moritz_ would seem more sane 20:35
jnthn Aye
20:36 eternaleye joined
jnthn Though that changes breaks...of all things...a couple of enums tests! 20:37
20:37 vts left
moritz_ submitted the settings problem to RT 20:37
TimToady std: default 1 {...}
p6eval std 27716: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/c4RCbqkPh9 line 1:␤------> default 1 {...}␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤
..terminator␤Undecl…
TimToady maybe I broke the rebuild
moritz_ triggers the rebuild 20:38
20:38 M_o_C left
moritz_ takes some time; slow machine 20:38
TimToady but it's reporting a version greater than my change, without the effect
moritz_ I have no idea how reliable that version number is. 20:39
TimToady well, I'm likely to lose internet shortly
jnthn ok $x.does(Day::Mon), 'Can test with .does() for enum value'; # what changing s/isa/does/ there breaks :-S 20:40
TimToady they usually tear down pretty fast as oscon
jnthn Why on earth it woulda worked with isa though is bewildering.
TimToady std: default 1 {...} 20:46
p6eval std 27718: OUTPUT«##### PARSE FAILED #####␤Missing block at /tmp/pj4TsMft7j line 1:␤------> default ⏏1 {...}␤FAILED 00:02 35m␤»
jnthn wonders if that test is actually bogus... :-S
20:46 alester joined
TimToady that's better :) 20:46
moritz_ what's the yellow character before the 1? 20:47
EJECT SYMBOL
hm
jnthn TimToady: While an enum itself essentially implies a role, I think the same is not true for the values? And thsu while we'd expect $x ~~ Day::Mon to work (if $x is 42 but Day::Mon), .does(Day::Mon) is perhaps a bit more tenuous?
*thus
(I think it's been working by accident in Rakudo up until now. :-S) 20:48
moritz_ if it's not a role, does '$x but Bool::True' work?
jnthn but is spec'd as knowing how to generalize an enum element to its role.
So yes that works, but $x does Bool::True would not.
moritz_ somehow Perl 6 is confusing. 20:50
jnthn ponders what to do.
I suspect the tests may be bogus.
TimToady will ponder over lunch & 20:51
jnthn TimToady: Thanks.
20:51 unitxt left
tann rakudo: my @a; my $a = @a; say @a.WHAT; say $a.WHAT 20:52
^^^ :))
p6eval rakudo dd5767: OUTPUT«Array()␤Array()␤»
jnthn :)
PerlJam jnthn: What would you expect of Int.does(4) ?
is it symmetric?
jnthn rakudo: say Int.does(4) # expect false
p6eval rakudo dd5767: OUTPUT«1␤»
PerlJam rakudo: 4.does(Int) 20:53
p6eval rakudo dd5767: ( no output )
jnthn And with local fixes
> say Int.does(4)
PerlJam rakudo: say 4.does(Int)
jnthn 0
p6eval rakudo dd5767: OUTPUT«1␤»
jnthn See, that way around makes some sense.
oh, wait 20:54
Int in Rakudo is currently a class, not a role.
20:54 alester left
jnthn So for now it's 0, but maybe in Perl 6 terms it should be true. 20:54
s/0/false
20:55 alester joined
jnthn Int.does(4) being true is surely bogus though. 20:56
I know why we were getting it as true before.
20:56 fridim_ left 20:57 estrabd_ joined 21:01 ruoso left 21:02 alanhaggai left 21:10 eternaleye left 21:15 eternaleye joined
pugs_svn r27719 | kyle++ | [t/spec] Test for RT #63724 21:22
KyleHa Are there any more eyes around who can check look at that one for me?
s/check look/any("check","look")/ 21:23
moritz_ looks, and finds a problem 21:25
KyleHa What do you see? 21:26
moritz_ TimToady++ has revised the the spec of .perl a bit...
basically .perl forces scalar context first
KyleHa Oh. Is the RT ticket out of date, then?
moritz_ so my @reconstituted = eval $dehydrated;
should be
my @reconstituted = @( eval $dehydrated ); 21:27
second problem: checking for the form ( , ) isn't allowed, strictly speaking
.perl is allowed to emit any working code
so <foo bar baz> would be allowed 21:28
or ['foo', 'bar', 'baz'].list
KyleHa That's kind of what I thought, but the ticket implied a strict requirement of parens.
Glad I was wrong on that one.
moritz_ I understood that as "that would be more correct than what we have right now" 21:29
KyleHa So List.perl results in [1,2,3], and that's back to being correct?
21:31 nihiliad left
pugs_svn r27720 | kyle++ | [t/spec] Fix RT #63724 tests after feedback from moritz++ 21:31
21:35 eternaleye left 21:37 justatheory joined 21:41 Whiteknight joined 21:42 maja__ joined
moritz_ no, my example was [...].list 21:46
of which I don't know exactly if it's correct
problem with [...] is that it constructs an Array, not a List
21:46 perlygatekeeper left
jnthn Hmmpfh. Something's rotten in the MMD narrowness analysis. 21:46
That or the topological sorter.
21:47 justatheory left, Limbic_Region joined
moritz_ and in the state of denmark. 21:48
21:52 maja_ left
KyleHa rakudo: my $a = $b; my $b; 21:53
p6eval rakudo dd5767: OUTPUT«Null PMC access in isa()␤in Main (/tmp/6U4YYz7Ri0:2)␤»
KyleHa I think that should live, not die.
...let alone die that way.
moritz_ it should, because $b is not pre-declared
that's know to happen when the declaration follows on the same line. 21:54
jnthn Should be an error, just not that one.
moritz_ and there's an auld ticket for that one ;-)
and tests in t/spec/S04-declarations/my.t, or so ;-)
KyleHa Tests in S04-declarations/my.t imply that before the declaration, the variable exists and is not defined. 21:55
moritz_ ouch.
21:55 lumi__ joined
KyleHa eval '$x = "abc"'; my Int $x -- supposed to be a type error 21:56
moritz_ erm, that's something else
because eval is run after the declaration
and the declaration is tied to the begin of the block
KyleHa In "my $a = $b; my $b", the assignment happens after the declaration too. 21:57
moritz_ I meant the very first test in that file
KyleHa Oh, hmmm.
moritz_ KyleHa: that was badly phrased by me...
KyleHa: in the case with eval, the *parsing* happens after the declaration
KyleHa Oh yeah. 21:58
OK, I'm convinced.
jnthn rakudo: say Any ~~ Object; say Object ~~ Any;
moritz_ and the lexical pad that eval sees is always that of a whole block
p6eval rakudo dd5767: OUTPUT«1␤1␤»
jnthn shit!
moritz_ wtf?
and we have no tests for that?
jnthn *That's* what's broken.
OK, there was a bug in the multi dispatch narrowness analysis too.
I guess after I found one I suspected there must be a further one though. 21:59
Whereas actually this one is...well...that. :-|
21:59 b2gills left
moritz_ has to retreat to bed 21:59
22:03 justatheory joined 22:04 KyleHa left 22:09 dalek left, dalek joined 22:14 lumi_ left 22:16 SmokeMachine left 22:22 alester left 22:24 colomon left
jnthn OK, looks like patch to fix up Object ~~ Any being true is going to work out, but showed up 2 tests that seem to point to other problems now that bit is straight. 22:29
Anyway, sleep now...will get this lot landed tomorrow, I hope. 22:30
o/
tann std: my $s = 8; $s .+> 1;
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/KXC8yTXzUU line 1:␤------> my $s = 8; $s ⏏.+> 1;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 37m␤»
22:35 donaldh_ joined 22:40 davef joined, davef left 22:41 unitxt joined 22:50 pmurias left 22:56 justatheory left 23:11 frew_ joined 23:12 donaldh_ left 23:20 donaldh left, donaldh joined, redicaps joined
tann which syn should i look at for info regarding aliases ie. references? the search on perlcalbal doesn't seem to return anything i'm looking for..thanks 23:27
23:30 lumi_ joined 23:37 lumi__ left 23:38 hoelzro joined 23:41 explorer left 23:47 hoelzro left 23:49 nihiliad joined 23:53 payload left, payload joined 23:55 kane_ joined, fridim_ joined 23:58 kane___ joined 23:59 hoelzro joined