Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-08-20

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 Psyche^ joined #perl6
00:01 jnthn night o/
00:03 ruoso joined #perl6
00:09 drbean joined #perl6
00:19 whiteknight joined #perl6
00:27 fod joined #perl6
00:31 blogometer joined #perl6
00:36 lue How do I match the opposite of a character class? Or rather, how to match anything that isn't <alpha> ?
00:37 TimToady <-alpha> should work
00:38 sorear TimToady: Under use graphs, what does [ a .. z ] match?
00:39 sorear I guess \w, \d etc only care about the base character
00:39 sorear but ranges are less clear... also what about [a e i o u]
00:39 TimToady that would depend on whether :ignoremark is set
00:39 TimToady ranges are probably on base chars only, yes
00:40 sorear [aeiou] - 5 characters if :!m, many if :m
00:40 sorear [a..z] - always many
00:40 sorear \w - always many many
00:40 sorear ?
00:40 lue oh, I forgot the :g in my substitution, so I didn't notice when I tried <-alpha> :)
00:42 TimToady that seems about right.  character classes don't get along with Unicode nearly as well as properties do
00:42 sorear Properties are a function entirely of the base, right?
00:43 TimToady we probably need a way to query the mark chars that we haven't invented yet
00:43 tylercurtis sorear, TimToady, are you saying that ä matches [a..z]?
00:44 sorear What should [ a .. \c[O WITH FIVE HATS] ] match?
00:44 spinclad joined #perl6
00:44 sorear tylercurtis: That's what I'm saying.  (But only if use graphs; is in effect.)
00:45 Clem_Chong joined #perl6
00:45 TimToady well, use graphs is supposed to be the default
00:45 sorear I think that defaulting to codes for now would be less suprising than half-implementing graphs
00:45 sorear not that that matters in the platonic world of docs/Perl6/Spec, of course
00:46 tylercurtis Why would we not require :m for that?
00:47 TimToady it would probably be more consistent, yes
00:48 TimToady actually, under NFG, ä is its own base char, since NFG is an extension of NFC
00:49 TimToady and :m kind of implies NFDishness instead
00:50 TimToady in the platonic world, that is.  :P
00:51 tylercurtis Well, :m is specced as checking only the base char in NFD.
00:51 TimToady that seems right, though of course it doesn't actually have to *do* NFD to do that
00:52 TimToady it merely need an NFG to base char mapping of some sort
00:53 TimToady as for [ a .. \c[O WITH FIVE HATS] ], that's certainly an error if there's no NFC grapheme predefined for that
00:56 sorear So .. defines a contiguous range of NFC graphemes, in :!m graphs mode?
00:56 sorear What does .. do in :m graphs?
00:57 TimToady carps about marks maybe, then canonicalize before taking the range?
00:57 jferrero joined #perl6
00:58 TimToady we could do the same for A..z under :i, I suppose
00:58 sorear so :m <[a .. 一]> matches all characters, which, when decomposed, have bases in the U+0061..U+4E00 range?
00:58 lue I get "symbol $phrase not predeclared in <anonymous>", and I can't see why:  http://gist.github.com/539337
00:59 TimToady though A vs a is not a marked/unmarked distinction like base/mark is
00:59 sorear lue: $pharse
00:59 TimToady sorear: that seems about as sane as anything
01:00 sorear Also, can you give a good example of a language where CharLingua is relevant?
01:01 thundergnat joined #perl6
01:01 lue thank you.
01:01 TimToady well, any language that considers certain digraphs to be single characters
01:01 TimToady I think both German and Spanish fall into this category
01:02 sorear yes, ll
01:02 TimToady please don't ask me how those interact with character ranges.  :)
01:03 lue I think my anagram generation method needs some work. Ah well,  afk.
01:04 sorear Isn't it obvious?  It uses linguistic collation tables
01:05 TimToady that's why you shouldn't ask  ;)
01:05 thundergnat Quick question: What is the correct R* syntax for 'second to last element of array'?  $array[-2] in perl5
01:05 TimToady *-2
01:05 thundergnat Thanks
01:10 sorear Perl 5 always has 'codes' semantics, right?
01:13 colomon if @array is the array, @array[*-2] in p6
01:13 jferrero TimToady, sorear, in Spanish, ll and ch digraphs are considered chars, but arent represented into the modern alphabet (from 1994): http://es.wikipedia.org/wiki/Alfabeto_latino#Visi.C3.B3n_general_del_abecedario_latino
01:16 TimToady so we might need to put dates on our CharLingua types.  :)
01:16 jferrero hahaha
01:17 TimToady sorear: yes, unless you say 'use bytes'
01:17 TimToady last I knew, \X was the only thing that knew about graphemes in P5
01:21 blogometer joined #perl6
01:24 TimToady dinner &
01:54 blogometer joined #perl6
01:56 molaf joined #perl6
02:02 redicaps1 joined #perl6
02:06 rjbs left #perl6
02:12 diakopter burp
02:34 rgrau joined #perl6
02:39 Clem_Chong %-:left-justified,what is the operator of right-justified?
02:39 TimToady are you talking about printf formats?
02:40 Clem_Chong TimToady: Yes.
02:41 TimToady just leave out the -
02:41 TimToady rakudo: say "foo".fmt('%-30s')
02:41 p6eval rakudo 90637b: OUTPUT«foo                           ␤»
02:42 TimToady rakudo: say "foo".fmt('%30s')
02:42 p6eval rakudo 90637b: OUTPUT«                           foo␤»
02:42 diakopter sorear: spello  dependancy
02:43 Clem_Chong thanks.
02:43 Clem_Chong rakudo:say "hello"
02:43 p6eval rakudo 90637b: OUTPUT«hello␤»
03:20 sorear diakopter: the American Heritage Dictionary 3rd ed. paperback and the web1913 public text file both list dependancy; what are you using
03:22 sorear TimToady: Does \X[41,42,43] mean anything?
03:29 blogometer joined #perl6
03:32 jaldhar joined #perl6
03:33 jaldhar joined #perl6
03:33 justatheory joined #perl6
03:36 TimToady it could be forced to mean something
03:40 TimToady regex stuff { \x[41,42,43] };  / <-stuff> /
03:45 sorear What does '<-' <ident> '>' mean?
03:46 TimToady it means <?ident> .
03:46 TimToady er, <!ident> .
03:48 sorear What does STD.pm6 +4985 mean in general?
03:49 TimToady a blank line?
03:49 * sorear svn up
03:50 sorear | <name>
03:50 sorear in cclass_elem
03:50 hans__ joined #perl6
03:50 sorear are character classes looked up anywhere?
03:50 TimToady I am svn upped
03:50 sorear or is alpha, digit, xdigit, inCJKExtensionA, etc the extent of it?
03:51 TimToady that's 4993
03:51 sorear huh.
03:52 TimToady ah, no I have something unchecked in
03:54 hans__ left #perl6
03:57 pugssvn r32065 | lwall++ | [STD] extend [-1] error to -2, -3 etc.
04:03 flyback joined #perl6
04:03 flyback anyone seen ajkroll around here
04:03 flyback #darcs
04:09 diakopter sorear: it's just ... righter
04:34 jhuni joined #perl6
04:36 tadzik joined #perl6
04:36 tadzik morning
05:05 kaare joined #perl6
05:56 drbean joined #perl6
05:56 rcfox Guh, Perl 6 has ruined me for Perl 5.
05:57 [particle] you have been assimilated.
05:57 rcfox Indeed.
05:58 tylercurtis say .fmt("Guh, Perl 6 has ruined me for %s") for @languages
06:00 rcfox Wow, a 13MB SVG.
06:00 uniejo joined #perl6
06:01 tylercurtis well, I should probably add an "unless $_ ~~ 'Go'|'Coq'|'Prolog'|'Haskell'" to that. Those are weird enough that I don't compare them negatively to Perl 6 too much.
06:06 lue I looked at Go. I'd say it's worse than P6 :)    # have you seen how many lines it takes to say Hello World in Go?
06:08 mathw Coq isn't really the same kind of tool...
06:09 mathw Go's weird, I need to look into it more at some point
06:09 redicaps1 left #perl6
06:09 lue The number of programs you need to run to get Go code running reminds me of when I fiddled with Java  O.o
06:10 Tene Go is... different.  Go has a lot of good ideas.
06:10 Tene Go is targeted toward specific needs and seems to be pretty good for those.
06:11 lue I'll have to look again, but P6 has stained my world-view of programming languages :D
06:13 tylercurtis lue: Go has LEAVE/KEEP/UNDO! Rakudo doesn't even have those yet. :) Technically, it has LEAVE, but KEEP/UNDO is LEAVE plus a conditional in Go.
06:14 ruoso joined #perl6
06:14 mathw I was considering suggesting Go for a new project at work, actually
06:15 mathw But I don't think the language is mature enough yet
06:16 lue .oO(You can tell how bad a language is by how strong it advocates the 'goto' command)
06:16 mathw I think that's a little simplistic
06:17 tylercurtis lue: what language are you talking about?
06:17 PerlJam lue: What are you talking about? goto is an excellent language feature!  :)
06:19 sorear tylercurtis: .NET ilasm is, to general knowledge, the only system in existance with a native UNDO
06:19 sorear they'
06:19 sorear re called fault blocks
06:21 lue One example: BASIC and friends [ although I admit it's a pretty flimsy language test :) ]
06:23 tadzik mathw: Will there be any announcement on rakudo.org?
06:24 mathw The release guide says perl6-compiler gets the announcement
06:24 mathw maybe rakudo.org should have one too
06:24 mathw don't know
06:24 tadzik hmm
06:24 tadzik It usually did
06:24 mathw yes but that was before *
06:24 tadzik It was usually on p6u too
06:24 tadzik oh, maybe
06:24 mathw which is now the release we're going to be promoting widely
06:25 tadzik http://github.com/parrot/parrot -- look, parrot on github
06:25 mathw so expect to see Star 2 release announcements everywhere
06:25 tadzik I see
06:26 PerlJam I don't think the compiler releases need to be announced anywhere but p6c
06:28 mathw Indeed. things are different in a world with Rakudo Star
06:32 dual joined #perl6
06:34 tylercurtis Translating non-Go code that uses exceptions to Go makes me feel uneasy. panic() has a very different feeling to throw or even die. Maybe Perl 6 should give &die a less pleasant name (though I can't imagine what).
06:41 simcop2387 joined #perl6
06:42 sorear Perl (1) die was non-recoverable until version 1.0.8
06:43 sorear it was literally just fprintf and exit (for 30 days spanning the beginning of '88)
06:43 sorear does the version of Perl which predated 5 have a name?
06:43 sorear perl 1.0.0 through 4.0.26 are sufficiently similar that they deserve to be lumped together like "Perl 5" and "Perl 6" are
06:44 dalek 6model: fd62b41 | ++ | / (6 files):
06:44 dalek 6model: add three more of the Metamodel java files
06:44 dalek 6model: review: http://github.com/jnthn/6model/commit/f​d62b413757be93ef44d45487ff174d80264a5ae
07:21 Trashlord joined #perl6
07:27 sorear colomon: jnthn: ingy: moritz_: TimToady: szabgab: dukeleto: Ping - I'm trying to instigate a #cpan6sketch.
07:27 sorear Alias_ of CPAN5 has expressed interest, but is not available at #phasers time; he says -3h or +4h from it would work
07:40 Mowah joined #perl6
08:11 foodoo joined #perl6
08:12 Mowah joined #perl6
08:13 moritz_ sorear: pong
08:13 moritz_ -3h would work for me
08:13 moritz_ +4h is in the middle of my night
08:14 moritz_ 16H UTC is OK for me, to be clear
08:19 x3nU also
08:19 x3nU i've got something interesting on my hdd
08:19 x3nU it's microsft perl kit :D
08:20 x3nU i din't knew that microsoft made anything related to perl
08:20 x3nU (it's from '96 and it's for windows nt powerpc)
08:22 sorear '96?  Is it even Perl 5?
08:22 sorear moritz_: ok, just need a few more pongs
08:23 x3nU sorear: it says perl 5 build 110
08:23 x3nU ;d
08:23 sorear moritz_: TimToady talked about German requiring a nontrival (!= Grapheme) CharLingua.  Can you elaborate on this?
08:23 moritz_ sorear: not sure what he's talking about
08:24 moritz_ we've got that funny character that becomes two characters if uppercased, but I don't think that applies here
08:24 moritz_ and we have some ligature rules, but that applies only to typesetting, not text processing
08:28 HarryS joined #perl6
08:33 sorear What exactly are named character classes?
08:33 sorear Are they special to the parser?
08:33 sorear If not, what does the code generated for <-fooquux> do?
08:36 arnsholt sorear: The non-trivial thing is probably ß becoming SS when capitalised
08:36 arnsholt Downcasing that correctly is kinda tricky
08:36 thebird joined #perl6
08:38 moritz_ sorear: afaict <-foo> is the same as (<!before <foo>> .), but may assume that <foo> matches exactly one character
08:38 moritz_ arnsholt: there's no way to case-roundtrip ß reliably
08:38 moritz_ at least I know of none
08:39 dakkar joined #perl6
08:39 moritz_ http://www.perlmonks.org/?node_id=856208 # I continue to troll perlmonks with perl 6 answers :-)
08:40 arnsholt moritz_: Only way to do it is proper linguistic processing. Which is kinda hard to get right =)
08:42 kaare_ joined #perl6
08:43 grew joined #perl6
08:44 pmurias joined #perl6
08:44 pmurias ruoso: hi
08:48 sorear pmurias: Ping - I'm trying to instigate a #cpan6sketch.
08:48 sorear Alias_ of CPAN5 has expressed interest, but is not available at #phasers time; he says -3h or +4h from it would work
08:49 sorear so I'm trying to find an effective compromise time and date; moritz_ has approved 1600 UTC
08:49 timbunce joined #perl6
08:49 sorear (repasting for pmurias; others were already pinged)
08:50 moritz_ arnsholt: even with proper linguistic processing, you'd need semantic analysis
08:50 moritz_ arnsholt: because Maße != Masse, for example
08:51 daxim joined #perl6
08:51 milki joined #perl6
08:54 drbean joined #perl6
08:56 agentzh joined #perl6
08:59 smash_ mornin'
08:59 arnsholt moritz_: Yeah. As I said "kinda hard to get right". Really hard, in fact =D
09:00 moritz_ hi smash_
09:00 moritz_ smash_: have you uploaded CGI::Cookie somewhere?
09:01 smash_ moritz_: not yet, haven't had the time yet to quite finish it
09:01 smash_ sorry
09:01 smash_ i'll try to work on it ASAP
09:02 moritz_ smash_: no problem; it would also help if you just upload what you have, so that I can add what I need
09:02 moritz_ "release early, release often"
09:02 * smash_ nods
09:02 smash_ i'll set up a github repo for it this weekend
09:02 moritz_ great
09:03 moritz_ ++smash_
09:03 smash_ no annoucement for yesterday's release on rakudo.org ?
09:04 moritz_ smash_: no; we've decided to announce compiler releases only to perl6-compiler@perl.org
09:04 smash_ oh, ok
09:04 moritz_ smash_: reason is that many people confuse compiler releases with Rakudo Star distribution releases
09:04 pmurias sorear: i'm not knowledgable enough about the perl5 CPAN to contribute to the cpan6 design
09:05 pmurias but 1600 UTC seems okish
09:05 moritz_ and we want end users to use R*
09:05 pmurias sorear: but if #cpan6sketch is logged it doesn't matter much for me
09:06 smash_ moritz_: reading release_guide.pod, yeap.. makes sense
09:06 sorear pmurias: I am assembling two groups of people: people who are experienced in building installer toolchains, and people who want to ask questions of the first group in real time
09:06 moritz_ I can make #cpan6sketch logged
09:07 sorear pmurias: my candidate list for the second group is pmurias colomon jnthn moritz_ TimToady szabgab dukeleto sorear
09:07 sorear my candidates for the first list are Alias_ ingy
09:07 moritz_ sorear: don't forget masak
09:07 sorear masak: ping, you're invited too
09:07 sorear (really, anyone is invited if they fit into one or the other group)
09:08 sorear erp. masak isn't even here
09:08 moritz_ phenny: tell masak please see http://irclog.perlgeek.de/​perl6/2010-08-20#i_2726521 and comment
09:08 phenny moritz_: I'll pass that on when masak is around.
09:09 moritz_ I've registered #cpan6sketch, justin case
09:09 tadzik joined #perl6
09:10 _ilbot2 joined #perl6
09:10 Topic for #perl6is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released!
09:10 sorear Alias_ pinged mst, xdg, klapperl, rjbs from #toolchain for the first group
09:11 _madmax_ joined #perl6
09:12 _ilbot2 joined #perl6
09:12 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released!
09:16 sorear std: /<[a .. c .. e]>/
09:17 p6eval std 32065: OUTPUT«[31m===[0mSORRY![31m===[0m␤Range missing start character on the left at /tmp/QlZasYoO55 line 1:␤------> [32m/<[a .. c ..[33m⏏[31m e]>/[0m␤Check failed␤FAILED 00:01 117m␤»
09:17 smash_ mathw++ # release
09:17 mathw I've picked up more karma in the last 24 hours than in my entire time in the Perl 6 community I think :)
09:18 PacoLinux left #perl6
09:19 masak joined #perl6
09:19 milki left #perl6
09:20 moritz_ http://ttjjss.wordpress.com/2010/08/09​/so-you-want-to-write-a-perl-6-module/ I've missed this post, so I put it here in case others have missed it too
09:20 moritz_ we really should have a manual input option for planetsix
09:22 tadzik that reminds me, I still haven't fixed this You all the time in this post
09:22 sorear moritz_: that thing about <-foo> troubles me, I thought character classes could be comuted statically
09:22 moritz_ "statically"?
09:23 moritz_ I'd be surprised if they followed different dispatch semantics than  ordinary subrules
09:23 moritz_ which would mean you can only get them dynamically anyway
09:23 timbunce left #perl6
09:24 masak character classes are computed statically.
09:24 phenny masak: 09:08Z <moritz_> tell masak please see http://irclog.perlgeek.de/​perl6/2010-08-20#i_2726521 and comment
09:24 masak they doesn't dispatch, they evaporate into more basic constructs.
09:24 moritz_ so there's no way to override <alpha>?
09:24 masak <alpha> is a subrule, not a charclass.
09:24 wamba joined #perl6
09:24 moritz_ ok <+alpha>
09:25 masak that's also a subrule.
09:25 moritz_ <-alpha> ?
09:25 moritz_ :-)
09:25 masak :)
09:26 masak moritz_: re #cpan6sketch, I'll happily attend. these things interest me, and it's fascinating to see the big minds arrive at plausible infrastructures. -3h from #phasers works much better than +4h.
09:27 moritz_ masak: great
09:28 masak ok, someone please remind me: how do I use gdb to produce a stacktrace again?
09:28 moritz_ gdb $excutable
09:28 moritz_ run @arguments
09:28 moritz_ wait for the segfault
09:28 moritz_ bt
09:29 masak grazie.
09:29 moritz_ prego
09:29 tadzik is #cpan6scetch open for listeners?
09:30 moritz_ sure
09:30 tadzik so when is it?
09:30 moritz_ we're still trying to get people together
09:31 Clem_Chong left #perl6
09:31 smash_ me and ambs wrote an article about using Perl testing ecossystem as a non formal certification approach for software certification, it has some nice insights about CPAN
09:32 pmurias smash_: link?
09:32 smash_ (might be worth reading for people tinkering about cpan6)
09:32 smash_ pmurias: sorry, not public yet.. but it will be asap
09:33 frettled smash_: wot, someone other than me thinks that avoiding the Linux distribution screwups of the early 2000's is a good thing?  :D
09:33 drbean left #perl6
09:33 Mowah left #perl6
09:33 smash_ or i can e-mail it to interesteds asap
09:34 smash_ frettled: hehe
09:35 * smash_ afk &
09:38 sorear so I guess it looks like 1600UTC is the best time
09:38 * sorear will need to get up early for that
09:39 pugssvn r32066 | moritz++ | [t/spec] unfudge tests for match object non-flattening
09:41 sorear masak: If <-alpha> is a subrule, what's <isPc+xdigit>?  What about <[ \w ]-[a .. m]>?
09:42 masak sorear: the former is an alternation of two subrules. the latter is a concat of two charclasses (reversed), one of which is zero-width and inverted in meaning.
09:43 masak sorear: I have an unpublished blog post about just that, if you're interested.
09:43 sorear much so
09:43 sorear I'm implementing charclasses now
09:43 masak suspected that :)
09:43 masak sorear: http://github.com/masak/7-wonder​s/blob/master/src/2-charclasses
09:45 moritz_ masak: are you preparing for another November full of blogging? :-)
09:46 TiMBuS is \s the same as <.ws> in a regex? because adding a \s in a negated character class does not do what i mean
09:46 masak moritz_: more like cringing from it, knowing that I probably will. :P
09:46 masak moritz_: that blog post is part of a series that I planned to publish around last Christmas.
09:47 TiMBuS <-space + [others to exclude]> seems to be what i need, but that's lame
09:47 moritz_ TiMBuS: no. <.ws> is something completely different
09:47 TiMBuS oh. well <-[\s]> wont match characters on a boundary last I checked
09:47 moritz_ "on a boundary" ?
09:48 cmadsen1 joined #perl6
09:48 TiMBuS start/end of a string
09:48 cmadsen left #perl6
09:48 masak of course it will.
09:49 masak rakudo: say "foo" ~~ / <-[\s]> /
09:49 moritz_ a character class always matches exactly one character
09:49 p6eval rakudo 90637b: OUTPUT«f␤»
09:49 masak rakudo: say "foo" ~~ / <-[\s]> $ /
09:49 p6eval rakudo 90637b: OUTPUT«o␤»
09:49 masak er, well.
09:49 masak rakudo: say "bar" ~~ / <-[\s]> $ /
09:49 p6eval rakudo 90637b: OUTPUT«r␤»
09:49 TiMBuS that's odd
09:49 masak no, it's very regular.
09:49 TiMBuS heh
09:51 milki joined #perl6
09:51 lucs left #perl6
09:51 ruoso pmurias, hi
09:52 pmurias ruoso: how is the evaluation of my gsoc project?
09:53 pmurias anything besides filling the survery (already did that) that i need to do?
09:54 ruoso i think that's all...
09:54 * smash_ back
09:55 ruoso pmurias, you got a pass, anyway....
09:55 pmurias thanks
09:55 ruoso the project is incredibly on track to the initial proposal
09:59 bbkr new compiler! \o/
09:59 sorear masak: Cute, but I don't see how it's possible to make it work sanely with LT
10:00 sorear M
10:00 sorear || and <before> are both rather LTM-damaging operators
10:00 masak sorear: that's true. this is how PGE solved it.
10:01 masak sorear: note that it doesn't explicitly use <before>, a quite expensive operation in PGE.
10:01 sorear Why is before expensive in PGE?
10:02 sorear Also, it doesn't get to take advantage of my shiny new CClass.pm module
10:02 masak because it takes as an argument the nested regex in text form.
10:02 sorear !!!
10:02 masak so it needs to compile it at runtime.
10:02 masak (it caches it, though)
10:02 sorear Which can evaluate any sequence of +/- literal character classes, even with \w and stuff, in O(log n) time
10:03 masak sorear: this is consistent with <before> being "just another subrule without any special perks"
10:03 moritz_ I guess <before> needs to be special
10:04 lestrrat is now known as lest_away
10:04 sorear <before> is absolutely special
10:04 moritz_ pmichaud said as much in pisa
10:04 sorear it's the only rule that doesn't instantly kill LTM when used with arguments
10:04 masak no, we discussed whether <before> should be made special.
10:04 masak or maybe have one or two special forms.
10:05 ocean-city joined #perl6
10:05 ocean-city left #perl6
10:05 masak seems it's important that it be overridable.
10:05 sorear That doesn't make sense
10:05 moritz_ you can always alter the parser
10:05 sorear Well
10:05 sorear Overridable in a slang, maybe
10:05 masak we still have things left to discuss, it seems.
10:05 moritz_ but fact is that <?before $rule> needs to know at compile time that $rule is being compiled differently
10:05 bbkr Pisa build identifies on -v as "version 2010.07" ?
10:06 TiMBuS oooh ok. found the issue.
10:06 moritz_ :(
10:06 masak I'd like to see a concrete proposal that enumerates and solves the current problems with <before>.
10:06 moritz_ bbkr: maybe the tarball was built before it was tagged?
10:06 TiMBuS rakudo: " a " ~~ / <-[\s]> /; $/.Str.perl.say
10:06 p6eval rakudo 90637b: OUTPUT«" "␤»
10:06 TiMBuS \s doesnt work in char classes
10:06 TiMBuS or, something
10:06 masak TiMBuS: known bug.
10:07 moritz_ .o diaresis
10:07 phenny moritz_: Sorry, no such service. See http://wiki.github.com/nslater/oblique/
10:07 sorear Basically I'm trying to implement real Perl 6 grammars in a way that isn't dog slow
10:07 moritz_ .u diaresis
10:07 phenny moritz_: Sorry, no results for 'diaresis'.
10:07 TiMBuS aaaaa why didn't you say :[
10:07 masak sorear: that sounds highly interesting.
10:08 sorear masak: my approach so far has been "take viv, make it generate C# instead of Perl"
10:08 sorear the only significant change I've made was to use nested loops for backtracking instead of lazy lists
10:10 masak and backtracking works how with nested loops?
10:11 sorear for my $a (1,2,3) { for my $b (1,2,3) { for my $c (1,2,3) { say "trying $a $b $c" } } }
10:11 sorear viv couldn't do anything liks this because Perl 5 doesn't have a way to return a result from inside without cutting all the loops
10:11 sorear for me, that's just gather and take
10:12 dual left #perl6
10:12 masak ...which is equivalent to lazy lists :)
10:13 sorear yes
10:13 sorear really, everything is equivalent if you look hard enough
10:14 masak I don't want to look that hard.
10:15 pugssvn r32067 | moritz++ | [t/spec] allow -e testing with Test::Util
10:17 pugssvn r32068 | moritz++ | [t/spec] basic test for -e
10:18 moritz_ r32067 was hard debugging work :/
10:20 dalek rakudo: 81b4490 | moritz++ | t/spectest.data:
10:20 dalek rakudo: run our first S19 test file
10:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​1b4490b73d436dbaeb555eb33de03ae911e224a
10:21 smash_ can i volunteer for an upcoming devel release ?
10:22 tadzik left #perl6
10:22 * sorear just tried to use $foo[1, 2] to slice an array in Perl 5
10:22 sorear my first 6->5 braino \o/
10:22 moritz_ smash_: sure; next month is still vacant
10:23 smash_ moritz_: hmm, next month is not very good for me, moving to another city
10:23 moritz_ smash_: October is taken by PerlJam++, so November and December (23th!) is still vacant
10:26 smash_ moritz_: either November or December is fine
10:26 masak wow, is it true? we'll have a Rakudo release for Christmas?
10:26 moritz_ masak: do you want to claim November? :-)
10:26 masak heck, why not? :)
10:26 araujo left #perl6
10:27 moritz_ smash_: then you get the Christmas release :-)
10:27 smash_ sure
10:27 mathw yay Christmas
10:27 mathw I'll do next month
10:28 meppl joined #perl6
10:28 moritz_ mathw: got a taste for it, eh? :-)
10:28 mathw might as well
10:28 smash_ hehe
10:28 mathw while I remember how
10:28 x3nU when will be next rakudo star released? :)
10:29 masak x3nU: next week.
10:30 masak I might be able to get pls in shape before that.
10:30 x3nU will it consist of current rakudo or something with never with fixes from repo?
10:30 x3nU newer*
10:31 moritz_ x3nU: it will include yesterday's release
10:31 x3nU thanks for info
10:32 dalek rakudo: 6a3ec07 | moritz++ | docs/release_guide.pod:
10:32 dalek rakudo: [release_guide] volunteers for November (masak++) and Dezember (smash++)
10:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​a3ec07159f56fa3ca0c7cd280c9353e4d631836
10:32 dalek rakudo: e45bf69 | moritz++ | docs/release_guide.pod:
10:32 dalek rakudo: [release_guide] mathw++ has volunteered for next month; add a few more planned release dates
10:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​45bf698a51b90073e967ac156db816b00f27b64
10:33 masak oh, so that's how "December" is spelled in German? :)
10:34 araujo joined #perl6
10:34 araujo left #perl6
10:34 araujo joined #perl6
10:34 McFist left #perl6
10:34 moritz_ masak: yes. Ooops.
10:35 masak I'm so glad the world has so many languages. it makes life more interesting.
10:36 dalek niecza: 4102102 | sorear++ | / (2 files):
10:36 dalek niecza: Implement regex backslash escapes
10:36 dalek niecza: review: http://github.com/sorear/niecza/commit/4​102102379697c10a97c08b852ae2b314ef2b7de
10:36 dalek niecza: dea7a54 | sorear++ | / (2 files):
10:36 dalek niecza: Refactor handling of backslash escapes
10:36 dalek niecza: review: http://github.com/sorear/niecza/commit/d​ea7a54486786393b620992a36f32af038ef1020
10:36 dalek niecza: eaea3cb | sorear++ | / (3 files):
10:36 dalek niecza: Add a character class engine
10:36 dalek niecza: review: http://github.com/sorear/niecza/commit/e​aea3cb026a3f25bdbe7207d55537e005ae56b3b
10:36 dalek niecza: 7ec8a8d | sorear++ | src/Niecza/Actions.pm:
10:36 dalek niecza: Basic parser handling for character classes
10:36 dalek niecza:
10:36 dalek niecza: I think a spec clarification is needed to generate the ASTs, though.
10:36 dalek niecza: review: http://github.com/sorear/niecza/commit/7​ec8a8d820873bb8e4325274741861f251d97fce
10:37 moritz_ phenny: tell pmichaud please review the release_guide branch on github, and merge (or cherry-pick) if you approve
10:37 phenny moritz_: I'll pass that on when pmichaud is around.
10:39 jnthn oh hai I just read on Twitter that Perl 6 is has releaes in December?! \o/
10:39 jnthn ;-)
10:40 masak wow! that's great!
10:40 masak :P
10:40 pnate joined #perl6
10:44 _madmax_ left #perl6
10:54 * sorear out.
10:57 bbkr rakudo: say ::$1 # what does double colon as prefix do in Rakudo? STD doesn't parse it.
10:57 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤ResizablePMCArray: Can't pop from an empty array!␤»
10:57 bbkr but in Rakudo it's runtime error
10:59 ruoso left #perl6
10:59 jnthn rakudo: say "parsed"; say ::$1
10:59 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤ResizablePMCArray: Can't pop from an empty array!␤»
11:00 jnthn No, it's a parse-time error
11:00 jnthn Just not a very good one.
11:00 bbkr jnthn: thanks. I'll create "LTA error message" ticket
11:02 jnthn Thanks. :-)
11:03 pmurias left #perl6
11:03 bbkr I'm watching your YAPC signatures talk. are slides available for download somewhere? video is too blur to read'em.
11:03 jnthn http://www.jnthn.net/papers/​2010-yapc-eu-signatures.pdf
11:04 bbkr jnthn: thanks!
11:14 blixtor joined #perl6
11:15 blixtor hi, quick question. Why does perl6 -e "sub foo { my $s = 0 }" complain about Malformed my at line 1, near "= 0 }"?
11:17 oyse joined #perl6
11:18 lest_away is now known as lestrrat
11:18 huf rakudo: sub foo { my $s = 0 }
11:18 p6eval rakudo e45bf6:  ( no output )
11:18 huf blixtor: where?
11:19 blixtor huf: executing from the command line
11:19 blixtor huf: calling perl6 binary with -e option
11:19 huf doesnt complain for me
11:19 * blixtor is using rakudo-star-2010.07
11:20 huf me too
11:20 huf 2010.07-47-g9fd5eaa
11:20 jnthn Platform?
11:20 blixtor ubuntu 10.04
11:20 blixtor it works fine if I put it in a file
11:22 gfldex blixtor: try 'echo "i has a $s"' in your terminal :)
11:22 huf oh POOP :D
11:22 huf yeah, of course it complains if you put it in "" :)
11:23 blixtor yeah, I just realised that
11:23 blixtor d'oh
11:25 jnthn :-)
11:25 blixtor that's what you get when you come from a different problem and try to simplify ...
11:28 masak no, that's what you get when you come from a different problem, try to simplify, and inadvertently change the problem in the process.
11:28 masak there's a difference there.
11:29 blixtor agreed, I didn't simply very successfully, as the simplification was supposed to still show the problem and not introduce a new one
11:29 blixtor now to my original point
11:29 blixtor perl6: sub foo { my $s; for 1..3 { $s += $_ } } ; say foo()
11:30 p6eval rakudo e45bf6: OUTPUT«666␤»
11:30 p6eval ..pugs: OUTPUT«␤»
11:30 blixtor what is the rationale for this returning '666'
11:30 jnthn We embeded the devil in Rakudo.
11:31 jnthn Also, for in Perl 6 is just a synonym for "map"
11:31 blixtor and it's leaking from time to time, I see ;)
11:31 jnthn So you're doing something like
11:31 jnthn (1..3).map: { $s += $_ }
11:31 jnthn Which returns $s since that's the last thing you touched
11:31 blixtor ahh, ok, that explains the difference to perl5, which doesn't return anything
11:31 jnthn So you end up with a list with $s in it 3 times
11:32 jnthn Yes, it's a difference from Perl 5.
11:32 blixtor thanks
11:32 masak why doesn't that return 136, though?
11:32 masak that's what I'd expect.
11:32 sorear masak: because Rakudo map is rw
11:32 sorear it's not supposed to be
11:32 * masak submits rakudobug
11:32 masak it's in there, I'm sure.
11:33 sorear in theory, take should decontainerize
11:33 masak but it's nice to have this example on file.
11:33 sorear like return
11:33 masak aye.
11:33 jnthn erm
11:33 jnthn what?
11:33 jnthn We never returned or taked here
11:33 masak true.
11:34 masak which is why it's a different ticket, I now realize :)
11:34 sorear jnthn: map is implemented using take
11:34 jnthn sorear: No.
11:34 jnthn sorear: Well, it *may* be.
11:34 jnthn sorear: But it certainly doesn't have to be.
11:34 takadonet morning all
11:34 jnthn (That is, nothing in the spec says it needs to be.)
11:35 jnthn morning, takadonet
11:35 masak someone with privs should disable the account 'tos1' on rakudo.org. its password just went out on p6c.
11:35 jnthn Anyway, it maybe should be decontainerizing somewhere here too
11:35 sorear jnthn: well, in any case, the same underlying LTA iscausing both
11:35 masak takadonet: \o
11:35 jnthn I'm just not sure where.
11:36 jnthn Anyway, a ticket does no harm and makes sure we don't forget the issue.
11:38 cozmic left #perl6
11:47 masak rakudo: my @a = 1, 2, 3; @a[1] := @a; say @a[1]
11:47 p6eval rakudo e45bf6:  ( no output )
11:47 masak rakudo: my @a = 1, 2, 3; @a[1] := @a; say @a.perl
11:47 p6eval rakudo e45bf6: OUTPUT«maximum recursion depth exceeded␤  in 'Block::count' at line 5758:CORE.setting␤  in 'Block::count' at line 5762:CORE.setting␤  in 'Any::join' at line 1␤  in 'Array::perl' at line 2828:CORE.setting␤  in <anon> at line 2828:CORE.setting␤  in 'Any::join' at line 1␤  in
11:47 p6eval ..'Array::perl' a…
11:49 jnthn You asked for it. :P
11:50 masak Data::Dumper handles this well.
11:50 masak .perl should be a built-in Data::Dumper.
11:51 moritz_ fwiw, we have a ticket for that already
11:51 masak we do indeed.
11:51 masak just being a bit jaffa4 about it.
11:51 sorear ooh talked to xdg and BinGOs on #toolchain@irc.perl.org, they're both +1 to #cpan6sketch
11:52 masak \o/
11:54 masak sorear++
12:01 envi^home joined #perl6
12:14 daxim unsolicited personal opinion: piggyback the existing infrastructure as much as possible - cpan6.org is a rewrite and ∴ a spolskian autofail
12:15 masak I think piggybacking is where most people's minds are headed.
12:15 moritz_ aye; re-use as much as possible
12:15 moritz_ it seems the only working recipe to success is to get something running as soon as possible
12:15 moritz_ and gradually improve from there
12:15 moritz_ I plan to
12:16 moritz_ A) teach proto to install from tarballs
12:16 masak :/
12:16 moritz_ B) investigate how to get p6 tarballs onto the existing CPAN
12:16 moritz_ C) build some kind of search interface
12:16 * masak hunkers down and finishes pls
12:17 moritz_ D) ...
12:17 jnthn pls do ;-)
12:17 moritz_ E) Profit
12:17 daxim D) would be metadata, then
12:17 jnthn +1 to re-using stuff that's already known to work
12:17 moritz_ daxim: I'm sure that all steps involve metadata, in some way
12:21 masak threatening to use proto because it works is both (a) sensible, and (b) a good way to get me to finish pls.
12:24 drbean joined #perl6
12:26 patrickas joined #perl6
12:27 masak hm. wonder if the answer to the recurring ruminations about a better, more built-in test syntax is to be found in a specialized very-close-to-p6 DSL?
12:27 masak like good science fiction, tweak just one thing. :)
12:27 patrickas Hello All,
12:28 patrickas RFC on series refactor code: http://gist.github.com/530674 :-)
12:29 blixtor left #perl6
12:29 moritz_ does it pass all the tests?
12:29 patrickas yap
12:29 moritz_ \o/
12:29 patrickas except one which I think is wrong
12:29 patrickas and it passes an extra fudges dozen of tests
12:29 patrickas plus a coupleo f cases with no tests
12:29 masak which one do you think is wrong?
12:29 patrickas let me check
12:30 masak did you write tests for those cases with no tests? :)
12:30 patrickas rakudo: use Tests; is (2, -4, 8 ...^ -32).join(', '), '2, -4, 8, -16, 32', 'exclusive alternating geometric series (not an exact match)';
12:31 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤Unable to find module 'Tests' in the @*INC directories.␤(@*INC contains:␤  lib␤  /home/p6eval/.perl6/lib␤  /home/p6eval//p2/lib/parrot/2.​7.0-devel/languages/perl6/lib␤  .)␤»
12:31 patrickas this one
12:32 patrickas masak no ... not yet ... I'll have to understand the spec well enough first ...
12:32 masak you implemented something without understanding the spec first? :P
12:32 patrickas the (currently fudged) test expects 32 to be the last item
12:32 patrickas masak yes! :-)
12:32 moritz_ patrickas: I think it conforms to current spec, which says that sign-alternating series consider their limit only by absolute value
12:33 moritz_ I might be wrong those
12:33 patrickas yes but since this is ...^ it should not return the limit
12:33 patrickas and if you take absolute value
12:33 patrickas it should not return 32
12:33 moritz_ oh, right
12:33 moritz_ sorry, I mis-read
12:36 patrickas rakudo: say (1 ... {$_ == 5} );
12:36 p6eval rakudo e45bf6:
12:36 p6eval ..OUTPUT«(timeout)1011121314151617181920212223242​5262728293031323334353637383940414243444546474849​5051525354555657585960616263646566676869707172737​4757677787980818283848586878889909192939495969798​9910010110210310410510610710810911011111211311411​5116117118119120121122123124125126127128129130…
12:37 oyse I am playing around with blizkost and the Configure.pl file requires Perl 5.10. Any reason for that? I just ran it with Perl 5.8.9 (by removing use 5.010;) and it seems to work just fine.
12:37 moritz_ oyse: does it also compile and test fine?
12:38 moritz_ note that blizkost has some serious requirements on the perl5 it integrates with
12:38 oyse moritz_: yes
12:38 moritz_ wow, I'm amazed
12:38 patrickas masak: that's the case I am talking about, in the new code I pass the last item to the $limit which is Code and halt the series if it returns True... which is better than our current behaviour .... but I have no idea if that's spec or not ... so i'll have to read the spec on that add tests and implement it correctly.
12:39 bbkr http://rt.perl.org/rt3/Tic​ket/Display.html?id=66152 - this ticket still has no "closable point" defined. and I'm not sure if we should test against used memory amount after all, since this will be platform-dependent and there is no threshold which is considered correct.
12:39 oyse Running on a Ubuntu Hardy machine it seems to compile and test just fine.
12:40 moritz_ bbkr: just because it's not testable right now doesn't mean there's no point to the ticket
12:41 moritz_ oyse: I'm not really into blizkost too much... maybe jnthn or sorear know
12:47 pmichaud good morning, #perl6
12:47 phenny pmichaud: 10:37Z <moritz_> tell pmichaud please review the release_guide branch on github, and merge (or cherry-pick) if you approve
12:47 moritz_ good morning pmichaud
12:48 jnthn moning, pmichaud
12:48 jnthn *morning
12:48 patrickas hello pmichaud
12:49 ruoso joined #perl6
12:50 pmichaud moritz_: what's the significance of tagging before tarballing?
12:50 moritz_ pmichaud: so that the release knows its own version
12:51 pmichaud I don't understand.  afaik, the tags aren't stored in the tarball.
12:51 moritz_ wait... I might have misunderstood how the --version thing works for releases anyway
12:51 moritz_ so how does the tarball know its version?
12:51 pmichaud There *is* probably a step still missing from the guide -- one needs to update the VERSION file.
12:51 pmichaud That's my omission/fault.
12:52 moritz_ ah
12:52 moritz_ then I'll remove the branch
12:52 moritz_ we should probably make another tarball with an updated VERSION file
12:52 masak morning, pmichaud
12:52 patrickas pmichaud: I made sub infinite-series as lazy as I could but the code is now a bit more complicated
12:52 pmichaud (re: for loops don't de-containerize)   actually, I suspect it's the block that needs to de-containerize.
12:53 pmichaud patrickas: making it lazy should probably simplify things, not make them more complex.
12:53 pmichaud at least, that's what usually happens
12:53 masak today's autopun sighting: http://twitter.com/briandg​regory/status/21660915729
12:53 gfldex might it be that a CPAN/Perl6-Module got more or less the same properties and raises the same questions then a distribution package like any .deb?
12:53 gfldex or shorter: do you try to reinvent the wheel?
12:54 moritz_ gfldex: .deb is for binary distributions, not for source distributions
12:54 fod joined #perl6
12:55 patrickas pmichaud: then I messed up :-(
12:55 pmichaud patrickas: I have been known to be wrong.  :-)
12:56 gfldex moritz_: very true, there are source packages as well
12:57 moritz_ gfldex: yes, but they don't offer the same level of comfort as the binary .deb files
12:57 moritz_ and they have some assumptions that don't hold true for Perl modules
12:57 pmichaud and iiuc they're quite unix/linux centric
12:57 jnthn pmichaud: So essentially we always de-containerize the result of a block?
12:58 moritz_ for example with .deb, you can declare all your dependencies
12:58 pmichaud jnthn: yes, unless the block/routine is declared "is rw"
12:58 moritz_ but how do you declare non-perl dependencies for perl modules in a portable way?
12:59 moritz_ across different linux distributions, macos, windows and $other_weird_stuff
12:59 jnthn pmichaud: OK.
12:59 kaare_ left #perl6
13:00 patrickas pmichaud: The thing that complicated it for me was the need to ignore the last item in the array in some cases. Before I'd just copy the whole array, pop the last item if needed and work with it... now I have to work around not being able to touch the last item until I absolutely must. Anyways I guess I'll but colomon about it :-)
13:00 patrickas s/but/bug/;
13:01 moritz_ hm
13:01 moritz_ maybe I misunderstand ...^
13:01 moritz_ but I thought the difference was "execlude the item that comparse equal to the end point"
13:01 moritz_ and not "remove the last element"
13:01 pmichaud moritz_: we're talking about the lhs
13:01 moritz_ so I don't see a need for the look-ahead
13:01 moritz_ oh
13:02 pmichaud 1,2, { ... } ...   $end
13:02 pmichaud the lhs is   1,2,{...}
13:02 pmichaud patrickas: if it makes it cleaner for now, I'd go with a copy then
13:02 patrickas pmichaud: I changed the code and have no problem with it ... I'm just not conformtable being the one to decide if what I did is right or messy or wrong!
13:03 pmichaud I suspect it's reasonable to say that the lhs gets evaluated a bit eagerly
13:05 pmichaud (rule compositions):    <+a+b>    is   [ <a> | <b> ]
13:05 pmichaud <+a-b>  is   [ <!b> <a> ]
13:05 patrickas For comparision: https://gist.github.com/530674/a12bd​656d0ed9458befd5feb373892bdc955b56f line 61 VS http://gist.github.com/530674 line 63
13:05 pmichaud <-b>  is   [ <!b> . ]
13:05 timbunce joined #perl6
13:08 orafu left #perl6
13:09 orafu joined #perl6
13:09 pmichaud actually, more precisely:
13:09 pmichaud <+a+b>    is   [ <.a> | <.b> ]
13:09 pmichaud <+a-b>    is   [ <!b> <.a> ]
13:10 pmichaud <-b>      is   [ <!b> . ]
13:10 oyse left #perl6
13:12 pmichaud (remake tarball with update VERSION)  -- yes, that's probably a good idea.
13:13 moritz_ mathw: can you do that? or should I?
13:13 pmichaud I'm also okay with leaving it as-is, too.
13:14 pmichaud jnthn: what's the desired way of detecting when a routine "is rw"?
13:14 moritz_ well, it'll make it harder to distinguish R*1 from R*2, no?
13:14 pmichaud moritz_: I can always fix it in the R* tarballs.
13:14 jnthn pmichaud: Do we need to know at compile time?
13:15 jhuni left #perl6
13:15 pmichaud jnthn: No, we don't *have* to know at compile time.
13:15 moritz_ pmichaud: ok, then I won't bother
13:15 jnthn pmichaud: OK, but will it be helpful to?
13:15 pmichaud might save a call.
13:15 molaf joined #perl6
13:15 pmichaud is there an easy way to find out at runtime?
13:15 jnthn pmichaud: Worth it then...since this is going to hit every single block exit...
13:15 jnthn Well, it'd be a trait so it'd be a .rw() call on the block in the ideal world.
13:16 PerlJam good $localtime #perl6
13:16 jnthn But it'd be nice to save that if we can.
13:16 molaf left #perl6
13:16 jnthn There is already some stuff in Actions.pm related to handling traits at compile time rather than emitting the loadinit application code.
13:16 frettled jani@knuth ~/prog/t2/rakudo >./perl7
13:16 frettled bash: ./perl7: No such file or directory
13:16 frettled Indeed.
13:16 jnthn Note taht when we have SCs we'll likely do all of them at compile time...
13:17 pmichaud compile-time traits handling is primarily on variables atm, yes?
13:17 frettled PerlJam: «good» is a nice keyword that so far is unused, what can we do about that?  :)
13:18 jnthn pmichaud: yes, and parameters
13:18 pmichaud or do we handle "is export" at compile-time?
13:18 jnthn pmichaud: No, that is normal.
13:18 pmichaud no, I think that's load/runtime
13:18 pmichaud okay.
13:18 PerlJam frettled: you'll have to talk to TimToady about that.  :)
13:19 jnthn But I think I factored that lot to be general.
13:19 pmichaud jnthn: actually, I suspect that it may end up being a call anyway
13:19 bbkr http://rt.perl.org/rt3/Tic​ket/Display.html?id=73328 - is the error message awesome enough that it can be taken for tests? if so - what should be tested? simply eval_dies_ok or also check error message?
13:19 pmichaud so compile-time detection isn't going to be super helpful
13:19 jnthn pmichaud: OK
13:20 pmichaud so, if you or someone could get "is rw" working on blocks, I can handle the decontainerization :-)
13:20 jnthn pmichaud: What do you need?
13:20 pmichaud ...or does it work already? ;-)
13:20 jnthn pmichaud: just for the block to have an .rw method?
13:20 pmichaud rakudo:  sub foo() is rw { ... };
13:20 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Routine $r, Any :default($default)!)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤:(Mu $type where ({ ... }), Any
13:20 p6eval ..:rw($rw)…
13:20 jnthn oh, easy
13:21 pmichaud then how do I determine that &foo "is rw"
13:21 pmichaud check for  "can('rw')"?
13:21 jnthn rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #`set rw` };  sub foo() is rw { ... };
13:21 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤Alphanumeric character is not allowed as a delimiter at line 22, near "set rw` };"␤»
13:21 timbunce left #perl6
13:22 jnthn rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #(set rw) };  sub foo() is rw { ... };
13:22 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
13:22 jnthn rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { say "ok" };  sub foo() is rw { ... };
13:22 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤Could not find sub &say␤»
13:22 jnthn ffs
13:22 pmichaud rakudo:  our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... };
13:22 p6eval rakudo e45bf6:  ( no output )
13:22 jnthn Right
13:22 pmichaud rakudo:  our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... };  say &foo.can('rw');
13:22 p6eval rakudo e45bf6: OUTPUT«␤»
13:22 pmichaud rakudo:  our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... };  say ?&foo.can('rw');
13:22 p6eval rakudo e45bf6: OUTPUT«0␤»
13:22 jnthn pmichaud: You could have an attribute $!rw in Code and have a private method that sets that
13:23 jnthn pmichaud: You could do it by mixing in a role too that overrides rw with something that returns true
13:23 pmichaud oh, and the trait sets it?
13:23 jnthn pmichaud: Yeah.
13:23 pmichaud which is better?
13:23 jnthn pmichaud: Attr is way cheaper than the role mix-in.
13:23 pmichaud then attr is what we do :-)
13:23 jnthn Like, *way* cheaper ATM.
13:23 jnthn We're missing an optimization right now.
13:23 mathw Version update? I'm sure that wasn't in the release_guide.pod
13:23 jnthn That'd make this cheaper.
13:23 jnthn So go attr.
13:23 pmichaud mathw: I'm sure it wasn't also.
13:24 mathw Thus it's not my fault
13:24 pmichaud mathw: that's entirely my fault.
13:24 mathw :P
13:24 moritz_ "yehova, yehova"
13:24 pmichaud votes:  re-do the tarball, or leave it as is?
13:24 moritz_ [X] don't care
13:24 mathw that depends
13:24 jnthn pmichaud: Just get it right for the Star release.
13:24 mathw if it's going to be in Star in its current form, that's bad
13:24 pmichaud okay, will get it right for Star.
13:25 pmichaud No, it'll definitely be correct in Star.
13:25 mathw yes, get it right for Star
13:25 jnthn We're not encouraging people to use the compiler releases.
13:25 pmichaud okay.
13:25 jnthn Well, not most people.
13:25 pmichaud I have to take care of a couple of things here, then will fix the release guide.
13:25 mathw pmichaud++
13:25 [particle] what about doing a point release for the rakudo compiler, and using that in star?
13:25 moritz_ well, who would use those? developers build from source, end users build the 'star' distri
13:26 jferrero joined #perl6
13:26 [particle] there's no 'failure' here, mistakes and bugs happen, and there is a process in place to create a release.
13:26 uniejo left #perl6
13:26 [particle] it's not a lot of work, either.
13:27 pmichaud packagers use the tarballs
13:27 [particle] yes, you'd need to create a new tarball
13:27 pmichaud I'm inclined to not create a new tarball this time.  I think it invites more questions than it answers.
13:27 [particle] if your intent is to use a rakudo compiler release inside the star distro...
13:28 pmichaud clearly I can use a release and "patch" it for the distro.  Happens all the time in packaging.
13:28 [particle] if you're not that concerned about using the compiler release...
13:28 [particle] yes, i suppose the simplest thing to do is fix the thing people are likely to use
13:28 [particle] and chalk this bug up to a learning experience.
13:29 pmichaud if/when we have more people creating distros from the tarballs, I'd be inclined to create a patched release.
13:29 [particle] aye, that's a fair point
13:30 [particle] i know i've made mistakes in parrot releases, and uploaded fixed tarballs to cpan (back in the day... 0.4.13 maybe?)
13:30 [particle] back then, we didn't have the cover of a distro to hide behind ;)
13:38 [Coke] I think a good indicator might be "if someone files a bug report"
13:38 [Coke] (what was the bug?)
13:40 agentzh left #perl6
13:47 Holy_Cow joined #perl6
13:49 patrickas " The compiler may complain if it sees anything on the right that is not a literal " how does the compiler "complain" ?
13:49 ingy mornings
13:49 masak ingy! \o/
13:50 jnthn patrickas: Checking if the LHS node is a PAST::Val would probably do it.
13:51 jnthn er, RHS
13:51 patrickas jnthn ... I did the check ... I don't know how to "complain" officially ? does it mean warn ? fail ?
13:52 patrickas print message to stderr ?
13:52 moritz_ complain = die
13:52 PerlJam patrickas: fail "Aaaiiiiggghhh";  #  :-)
13:52 moritz_ if you do it in the actions, $/.CURSOR.panic($mesage)
13:52 moritz_ ah no, runtime
13:53 patrickas fail will do fine .... I was just confused with the terminology :-)
13:53 patrickas Thanks moritz_ PerlJam && jnthn :-)
13:54 amkrankruleuen joined #perl6
13:54 ingy masak: :D
13:54 patrickas Or in #perl6 parlance PerlJam++ moritz_++ jnthn++ :-)
13:55 * ingy is busy hacking in patch' living room in Cambridge ME
13:55 ingy MA
13:55 patrickas ME is where I am!
13:56 ingy :D
13:56 ingy masak: we need to work on that new yaml parser soon!
13:56 snarkyboojum_ joined #perl6
13:56 masak ingy: agreed. I haz an exam on Tuesday. after that, I'm a free man again.
13:56 ingy masak: I am free after Aug 28
13:56 masak good, then after that.
13:56 snarkyboojum_ left #perl6
13:57 ingy maybe a week from tomorrow
13:57 ingy I get back to Seattle on 27th
13:57 bbkr rakudo: class Bool::True::X { method foo {say 666}}; say 1 ~~ Bool::True::X # this looks wrong, isn't it?
13:57 p6eval rakudo e45bf6: OUTPUT«===SORRY!===␤Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 22, near " Bool::Tru"␤»
13:58 pmichaud std:  say 1 ~~ Bool::True::X
13:58 perlygatekeeper joined #perl6
13:58 p6eval std 32068: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ 'Bool::True::X' used at line 1␤Potential difficulties:␤  Smartmatch against Bool::True always matches; if you mean to test the topic for␤    truthiness, please use :so or *.so or ?* instead at /tmp/l1KaAzeiOi line 1:␤------>
13:58 p6eval ..[32msay…
13:58 pmichaud feel free to file a std bug :)
13:58 Italian_Plumber joined #perl6
14:00 bbkr pmichaud: at RT queue or there is some separate place for STD bugs?
14:00 pmichaud RT queue is the only place I'm aware of atm.
14:00 moritz_ or use phenny to tell TimToady
14:01 masak the latter seems more effective to date.
14:01 moritz_ btw I'm spectesting a build of rakudo 2010.08 but with corrected VERSION - should I upload if all tests pass?
14:01 bbkr how do I use phenny?
14:01 pmichaud moritz_: sure
14:01 moritz_ phenny: tell bbkr like this
14:01 phenny moritz_: I'll pass that on when bbkr is around.
14:02 bbkr test
14:02 phenny bbkr: 14:01Z <moritz_> tell bbkr like this
14:02 bbkr aye :)
14:02 masak moritz_: why is the common practice never to do that? honest question.
14:02 moritz_ masak: never to do what?
14:02 masak re-upload on the same spot.
14:02 ingy masak: join #ingy
14:02 moritz_ to avoid confusion
14:02 masak I've only seen re-releases.
14:03 pmichaud because some people may have already copied the tarball
14:03 [Coke] RT "Internal server error"
14:03 pmichaud and perhaps made sha1sums of what they expect
14:03 pmichaud in general, tarballs and releases ought to be immutable :-)
14:03 moritz_ should I upload as  2010.08-1 or so?
14:03 pmichaud 2010.08.01
14:04 pmichaud or -1 might be okay
14:04 moritz_ it's not on the 1st August...
14:04 moritz_ which 2010.08.01 looks like, for a German at least
14:04 pmichaud packaging systems have trouble with hyphens in version numbers
14:04 pmichaud (e.g., .rpm)
14:04 daxim left #perl6
14:04 moritz_ then I'll use -01 anyway
14:04 [Coke] I would go with A if you can't put punctuation in there.
14:05 pmichaud it's more that .rpm reserves hyphen to mean something different.
14:05 PerlJam "2010.08-1" is version 2010.08 patch 1
14:05 bbkr phenny: tell TimToady that "class Bool::True::X{}; 1 ~~ Bool::True::X" on STD returns message about Smartmatch against True while it should pass as this is just regular smartmatch type check.
14:05 phenny bbkr: I'll pass that on when TimToady is around.
14:06 pmichaud PerlJam: I think .rpm might have trouble with that.
14:06 thebird left #perl6
14:06 pmichaud anyway, "-1" and not "-01"
14:06 moritz_ we can also use .1
14:06 moritz_ that way it's harder to confuse it with a date
14:07 pmichaud I'm okay with .1, I think.
14:07 moritz_ and we don't plan to make >8 further point releases :-)
14:07 pmichaud sure, use .1
14:07 pmichaud if we make more than 8 point releases in a month, we're doing something very wrong.
14:08 pmichaud (actually, if we make more than 8 point releases off of a single release, we're doing something very wrong :-)
14:08 PerlJam repeatedly!
14:10 lucs joined #perl6
14:12 moritz_ http://github.com/rakudo/rakudo/downloads
14:12 moritz_ done
14:13 drbean left #perl6
14:16 bbkr moritz++
14:24 * masak just got opped on #ingy :)
14:24 jferrero left #perl6
14:27 moritz_ rakudo: sub f {}; my $x := &foo; $x = 42; say "alive"
14:27 p6eval rakudo e45bf6: OUTPUT«Could not find sub &foo␤  in main program body at line 22:/tmp/BxUffGGnra␤»
14:27 moritz_ rakudo: sub f {}; my $x := &f; $x = 42; say "alive"
14:27 p6eval rakudo e45bf6: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/k4kvMA7U7r␤»
14:31 moritz_ rakudo: ␤␤␤2 = 4
14:31 p6eval rakudo e45bf6: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/0lGoD51sBE␤»
14:31 moritz_ anybody else finds the "at line 1" confusing?
14:32 [Coke] moritz_: ... isn't everything in an evalbot line on line 1?
14:32 moritz_ [Coke]: no; ␤ is translated into a newline
14:33 moritz_ [Coke]: and besides, p6eval adds a prelude to all rakudo programs anyway
14:33 moritz_ rakudo: die ''
14:33 p6eval rakudo e45bf6: OUTPUT«Died␤␤  in main program body at line 22:/tmp/sdVxQR2g19␤»
14:33 moritz_ so the actual program starts at line 22
14:34 [Coke] hokay. probably easier to be confused with a .p6 file.
14:38 jnthn moritz_: It's an artefact of infix:<=> not being in the setting.
14:38 jnthn moritz_: It's kinda crappy
14:38 jnthn moritz_: I can probably just get it not to print a line number if we hit an error in the PIR built-ins.
14:38 moritz_ jnthn: I'll experiment with making it invisible, and saying "in assignment"
14:39 pmichaud doesn't it just need to look for a non-existent 'line' annotation?
14:39 jnthn That's also an option.
14:39 jnthn pmichaud: Well, I think it is finding one somehow.
14:39 jnthn Dunno how.
14:39 pmichaud it's finding a 'line 1'?
14:39 moritz_ a PIR line number?
14:39 jnthn pmichaud: I guess so. Don't ask me how. :-)
14:39 pmichaud could be because of the way that setting is interleaved with the builtins
14:39 jnthn pmichaud: Right, something like that.
14:39 jnthn There's still some improvements to be had in that area overall.
14:40 * moritz_ experiments with .annotate "invizible_frame" 1
14:40 pmichaud we could manually add some annotations to Compiler.pir
14:40 pmichaud I'd rather change the "line" annotation than introduce a new one.
14:40 moritz_ we already have invizible_frame
14:41 masak jnthn: Twitter is over capacity again. probably your presentation being re-tweeted.
14:41 pmichaud can we at least spell it correctly, then?  ;-)
14:41 jnthn pmichaud: :P
14:41 moritz_ can haz correct speling?
14:41 * masak .oO( moritz_ has a 'z' surplus today )
14:41 dalek rakudo: 7e966fa | moritz++ | src/Perl6/Grammar.pm:
14:41 dalek rakudo: don't carp on smart-matching against types that start with Bool::True::Something
14:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​e966fae324ce38b67e2f6d4091a813b4f0b8023
14:41 jnthn masak: Hush, you'll make it a mame. :P
14:42 moritz_ masak: that one was copied&pasted
14:42 masak jnthn: a mame? is that something that only mammals have?
14:42 pmichaud moritz_: the <!before \w>  isn't needed.
14:42 pmichaud (in the Bool::True patch)
14:42 moritz_ pmichaud: ah right, covered by >>
14:42 pmichaud but we would need to check for hyphen or apostrophe
14:42 takadonet left #perl6
14:43 moritz_ indeed
14:43 pmichaud besides, having nested before's seems really.... evil.
14:43 moritz_ why?
14:43 pmichaud seems like there ought to be a much cleaner answer.
14:43 jnthn masak: no no, that's a *mane*
14:44 masak :)
14:44 moritz_ pmichaud: like not using the first <?before>, and calling the rule from a <?before> block? :/
14:44 [particle] on humans, it's called a mohawk
14:44 [synth] left #perl6
14:44 masak pmichaud: '...it's not ... (non-existent) 'take' that is failing...' -- negation win!
14:45 pmichaud masak: :-)
14:45 takadonet joined #perl6
14:46 moritz_ pmichaud: maybe parse a longname, and compare that to Bool::{True,False} ?
14:47 pmichaud moritz_: yeah, something like that, maybe.  but doing that starts to get kind of expensive.
14:48 pmichaud we want something that can be falsified quickly when the rhs is not True/False
14:48 pmichaud so, perhaps:
14:48 jnthn <?before 'Bool::'? [True|False] \s* '{'> # moze byt
14:48 jnthn Oh wait, it's more smart-matching generally, not just given/when?
14:48 pmichaud jnthn: this gets called from ..... right
14:48 jnthn Ah, can't go on { then
14:49 jnthn pmichaud: Can we do it at AST level, I wonder...
14:49 jnthn *do it easier at...
14:49 pmichaud jnthn: syntactic is probably better
14:49 pmichaud just a sec
14:49 moritz_ hm, supposed to be a syntactic distinction
14:49 jnthn pmichaud: It's certainly more ideal, I agree.
14:50 colomon left #perl6
14:50 moritz_ "ideal" and "optimal" are adjectives of which comparatives don't make much sense
14:51 pmichaud ahhhh
14:51 pmichaud how about
14:51 pmichaud <?before 'Bool::'? True && <.longname> >
14:52 moritz_ is && in regexes implemented?
14:52 pmichaud it can be
14:52 pmichaud but that's a much better solution than the others
14:52 pmichaud i.e., it matches only when <.longname> is exactly 'Bool::True' or 'True'
14:53 pmichaud and doesn't call <.longname> at all if we don't have one of those two as a prefix
14:53 thebird joined #perl6
14:54 moritz_ +1
14:54 moritz_ if you're the one who implements &&  :-)
14:54 pmichaud until && can be made to work, I'd prefer keeping the solution simpl-ish (even if incorrect in the extremely-unlikely-cases)
14:55 pmichaud I suspect I can do && w/o too much difficulty.
14:55 pmichaud it's just like alt, only different.  :-)
14:55 pmichaud er, ||
14:55 moritz_ I can revert that commit later on (when I have a clean working directory again)
14:56 pmichaud I'm fine with it for now; I'd like a comment that proposes the && answer instead, though.
14:56 moritz_ ok
14:57 pmichaud (looking at nqp-rx source)  jeepers, is the code for '||' really that short?  hmmmmm
14:57 [Coke] left #perl6
14:58 moritz_ well, && also needs to check lengths
14:58 pmichaud that's actually pretty easy in the current code I have
14:58 pmichaud I think I can do this... quickly.
14:59 moritz_ hm, ? won't backtrack in a rule
14:59 moritz_ or does it?
14:59 * moritz_ hasn't wrapped his head entirely around backtracking control
15:00 pmichaud ? by itself won't backtrack in a rule
15:01 pmichaud say ?( 'abc' ~~ rule { a? abc } )
15:01 pmichaud rakudo: say ?( 'abc' ~~ rule { a? abc } )
15:01 p6eval rakudo e45bf6: OUTPUT«0␤»
15:01 pmichaud rakudo: say ?( 'abc' ~~ regex { a? abc } )
15:01 p6eval rakudo e45bf6: OUTPUT«1␤»
15:02 moritz_ so will <?before 'Bool::'? True && <.longname> > work without backtracking?
15:02 pmichaud why would it need backtracking?
15:02 moritz_ because 'True' doesn't match 'Bool::' ?
15:03 pmichaud backtracking occurs after a match
15:03 pmichaud in this case, Bool:: never matches, so there's no backtrack required.
15:03 moritz_ so :ratchet doesn't imply  ?: ?
15:03 pmichaud it does imply ?:
15:03 pmichaud but that's not an issue
15:03 pmichaud rakudo: say ?( 'abc' ~~ regex { a? bc } )
15:03 p6eval rakudo e45bf6: OUTPUT«1␤»
15:03 pmichaud rakudo: say ?( 'bc' ~~ regex { a? bc } )
15:03 p6eval rakudo e45bf6: OUTPUT«1␤»
15:04 pmichaud oops, rule
15:04 pmichaud rakudo: say ?( 'abc' ~~ token { a? abc } )
15:04 p6eval rakudo e45bf6: OUTPUT«0␤»
15:04 pmichaud rakudo: say ?( 'abc' ~~ token { a? bc } )
15:04 p6eval rakudo e45bf6: OUTPUT«1␤»
15:04 pmichaud bah, here:
15:05 pmichaud rakudo:  say ?( 'Bool::True' ~~ token { 'Bool::'? 'True' } )
15:05 p6eval rakudo e45bf6: OUTPUT«1␤»
15:05 pmichaud rakudo:  say ?( 'True' ~~ token { 'Bool::'? 'True' } )
15:05 p6eval rakudo e45bf6: OUTPUT«1␤»
15:05 pmichaud it's fine.  :-)
15:05 pmichaud rakudo:  say ?( 'True' ~~ regex { 'Bool::'?: 'True' } )
15:05 p6eval rakudo e45bf6: OUTPUT«1␤»
15:07 moritz_ ah, a quantifier does try until it finds something, but won't try a second time (under :ratchet)
15:07 pmichaud right, it's greedy
15:07 pmichaud under ratchet, once it can no longer match, it doesn't backtrack
15:08 pmichaud so,  ?:  tries to match one time, but if it can't match at all, that's okay too
15:08 pmichaud if it does match one time, it won't go back and try again with zero
15:09 ash_ joined #perl6
15:16 dual joined #perl6
15:17 dalek rakudo: 7b00312 | moritz++ | src/Perl6/Grammar.pm:
15:17 dalek rakudo: add a parsing comment, as advised by pmichaud++
15:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​b003126f10b38322dd2c62d794999fe767f9132
15:20 sftp joined #perl6
15:21 ash_ left #perl6
15:24 justatheory joined #perl6
15:33 alester left #perl6
15:39 masak rakudo: sub greet($person) { say "OH HAI, $person!" }; "jnthn".&greet
15:39 p6eval rakudo e45bf6: OUTPUT«OH HAI, jnthn!␤»
15:39 masak I hadn't realized you could do this.
15:40 jnthn :-)
15:40 masak basically it's a way to use subs as faux methods.
15:40 jnthn Sure you can.
15:40 jnthn Yes.
15:40 PZt joined #perl6
15:40 jnthn Why you'd wnat to do it, is left for you to justify though. :P
15:40 masak it's convenient in map blocks, for example.
15:41 jnthn example?
15:41 masak trying to think of a sub that isn't also a method.
15:41 jnthn oh wait, *.&foo
15:41 jnthn ?
15:41 masak aye.
15:41 jnthn lol!
15:41 jnthn That's...wonderful. :P
15:41 alester joined #perl6
15:41 masak you see, you like it too :)
15:42 alester Never discount the value of indirect PR: http://www.pcworld.com/businesscent​er/article/203671/vim_editor_update​d_with_modern_language_support.html
15:44 masak alester++
15:44 PerlJam alester++
15:45 jnthn alester++ # nice
15:45 alester Thanks
15:45 alester I didn't contact the guy.
15:45 alester You just make some noise, sometimes people hear it.
15:46 [Coke] joined #perl6
15:46 wamba left #perl6
15:50 * TimToady is also surprised by .&foo, but sees how it happened, and is pleased that the design of Perl 6 is sometimes more orthogonal than his brane
15:50 phenny TimToady: 14:05Z <bbkr> tell TimToady that "class Bool::True::X{}; 1 ~~ Bool::True::X" on STD returns message about Smartmatch against True while it should pass as this is just regular smartmatch type check.
15:51 masak TimToady: lol
15:54 risou joined #perl6
15:54 moritz_ alester: do you know how many visitors you got from pcworld?
15:54 sftp left #perl6
15:54 alester no, but I could guess
15:55 alester by looking at Google Analytics
15:55 LionMade0fLions left #perl6
15:56 alester no uptick in traffic
15:56 alester A BIG one on the 6th
15:56 alester but not yesterday
15:58 masak it's being tweeted, too: http://twitter.com/devseo/status/e5bfb6a1376fb47c
15:58 moritz_ what was on the 6th?
15:59 sftp joined #perl6
16:01 alester I dunno
16:02 alester When was Rakudo Star
16:02 alester I have spikes on the 4th and 6th and Jul 27
16:02 moritz_ Jul 29 iirc
16:02 masak you do rc
16:03 alester Spike on the 6th was for /2010/08/what-to-say-to-per​l-6-isnt-perl-any-more.html
16:03 masak that one did get around a bit.
16:04 alester I dind't run anything on R* until a few days after the fact.
16:04 [Coke] masak that URL is bad?
16:04 masak [Coke]: (1) not a question, (2) which URL do you mean?
16:04 alester the twitter one above
16:05 masak oh
16:05 masak don't know why that is.
16:05 masak that's what my Twitter client reports.
16:06 foodoo left #perl6
16:06 masak http://twitter.com/devseo
16:06 Guest23195 joined #perl6
16:06 patrickas I get http://twitter.com/devseo/status/21674945321
16:12 tylercurtis joined #perl6
16:15 lue ohai o/
16:15 moritz_ \o
16:16 jnthn hellue
16:16 justatheory left #perl6
16:17 masak lue.&hello;
16:18 lue .rnd(if printf is just print with formatting, why is there not sayf ?)
16:19 masak lue: you're not the first one to have that thought.
16:19 pmichaud lue: because one can easily put \n into the format string...?
16:19 masak lue: let's just say I'd rather have a language without &sayf predefined :)
16:19 moritz_ because printf() is only a convenience for perl5 and C programmers who haven't got the hang on .fmt, really
16:19 masak pmichaud: that's an argument against &say too. you can easily put "\n" into the argument list.
16:20 moritz_ masak: there's a difference
16:20 masak tell quickly, I'm leaving! :)
16:20 moritz_ masak: printf always has a format, so 99% of all cases it has a string literal anyway
16:20 moritz_ you're dimissed :-)
16:21 pmichaud ...what moritz_++ said.
16:21 masak even in the cases where print has a single string argument, I'm happy to not have to append the \n :)
16:21 masak left #perl6
16:21 moritz_ say() is very good for cases like
16:21 moritz_ say join ',', 1, 2, 3
16:21 moritz_ where you have to get the precedence/parenthesis right if you use "\n"
16:22 moritz_ say join ',', 1, 2, 3, "\n"; # not what I want
16:22 moritz_ erm, s/say/print/
16:25 sbp rakudo: print join ',', 1, 2, 3, "\n";
16:25 p6eval rakudo e45bf6: OUTPUT«1,2,3,␤»
16:25 lue Alright. I prefer .fmt anyway :)  [although sayf would be one of those fun-to-say commands]
16:26 moritz_ rakudo: use Test; dies_ok { {...}.() }, 'stub code dies'
16:27 p6eval rakudo e45bf6: OUTPUT«ok 1 - stub code dies␤»
16:27 pugssvn r32069 | lwall++ | [STD] handle 'when Bool::True::X', which is a completely silly thing to say
16:27 moritz_ rakudo: use Test; dies_ok { ... }, 'stub code dies'
16:27 p6eval rakudo e45bf6: OUTPUT«ok 1 - stub code dies␤»
16:28 pmichaud maybe 'sayf'  should be 'saith', and 'printf' could be 'printh"  :-P
16:28 molaf joined #perl6
16:28 lue .oO(printh tharming!)
16:29 barika left #perl6
16:35 barika joined #perl6
16:38 nadim left #perl6
16:53 Trashlord joined #perl6
17:06 [particle] though.?saith('what')
17:06 [particle] s/gh/
17:07 [particle] grr.
17:08 dalek book: 27283c6 | moritz++ | lib/book.sty:
17:08 dalek book: be more explicit about our contributors
17:08 dalek book: review: http://github.com/perl6/book/commit/27​283c69deabaac4930d7e1fbccfd3ae5bb46b7d
17:09 [Coke] lib/pig.sty
17:10 dakkar left #perl6
17:10 justatheory joined #perl6
17:10 tylercurtis ingy: I've been getting distracted from working on YAML by metamodel thinking and prototyping, but if you or masak want to work on it at some point, let me know and I'll take off my Bennu hat and put on my parser hat.
17:16 moritz_ fwiw, I've uploaded A4 and letter snapshots of the book to the download section on github
17:16 pmichaud http://gist.github.com/540747  # && now works in nqp
17:16 PerlJam moritz_++
17:16 moritz_ I've called them "snapshot" and not "release", because I'm too lazy to do a proper release announcement
17:16 pmichaud moritz_: snapshot +1
17:18 thebird left #perl6
17:18 amkrankruleuen left #perl6
17:19 moritz_ I can only encourage people to work on the book. It really needs love, and we need to give it to chromatic at some point.
17:20 pmichaud I can work on it this weekend, especially now that I can build the book again.  :-)
17:20 PerlJam I don't think it's anywhere near as polished as it should be for chromatic to publish it. :(
17:20 moritz_ indeed
17:20 [Coke] moritz_: unintentional innunedo ftw.
17:21 jnthn [Coke]: :P
17:39 smash_ left #perl6
17:45 jaldhar left #perl6
17:47 Chillance joined #perl6
17:53 nimiezko joined #perl6
17:55 plainhao joined #perl6
18:17 pugssvn r32070 | kyle++ | [t/spec] Fix pid.t (test passed because of a bug)
18:18 Mowah joined #perl6
18:19 Mowah left #perl6
18:19 Mowah joined #perl6
18:26 molaf left #perl6
18:30 dalek nqp-rx: 8788740 | pmichaud++ | src/Regex/P6Regex/ (2 files):
18:30 dalek nqp-rx: Add parsing for &&.
18:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​788740b185a5de82dd5819a24b5be426b2879c5
18:30 dalek nqp-rx: 41267b0 | pmichaud++ | / (2 files):
18:30 dalek nqp-rx: Add && conjunctions to regexes.
18:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​1267b0f913ec91e516384f135795aaaedaaaca6
18:30 dalek nqp-rx: 253aeeb | pmichaud++ | src/stage0/ (4 files):
18:30 dalek nqp-rx: Update bootstrap.
18:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​53aeeb6c68ad816cf75445eb0403741068788f3
18:33 TimToady ooh, I've found a rakudo bug of some sort or other
18:33 TimToady rakudo: my @fib := (1,1, *+* ... *); say @fib[8]; @fib[8] = 100; say @fib[9];
18:33 p6eval rakudo 7b0031: OUTPUT«34␤55␤»
18:33 moritz_ I thought the spec doesn't force completely lazy evaluation?
18:34 TimToady I suppose not
18:34 TimToady rakudo: my @fib := (1,1, *+* ... *); say @fib[2]; @fib[8] = 100000000; say @fib[9];
18:35 p6eval rakudo 7b0031: OUTPUT«2␤55␤»
18:35 TimToady rakudo: my @fib := (1,1, *+* ... *); say @fib[2]; @fib[8] = 100000000; say @fib[40];
18:35 p6eval rakudo 7b0031: OUTPUT«2␤165580141␤»
18:35 pmichaud @fib[8] should probably be an error
18:35 TimToady that's what I thought
18:35 pmichaud i.e., @fib[8] = .... should probably say "unable to assign to readonly value..."
18:35 pmichaud I suspect that's the lack-of-decontainerization showing up again.
18:35 TimToady I just wonder what it's actually doing
18:36 pmichaud it's assigning to some temporary lexical that isn't being used for anything, in all likelihood.
18:36 TimToady ah
18:37 pmichaud rakudo:  my @fib := (1,1, *+* ... *);  say @fib[2]; @fib[8] = 4;  say @fib[8];
18:37 p6eval rakudo 7b0031: OUTPUT«2␤4␤»
18:37 pmichaud yeah, it's assigning to a temporary container that isn't being held in the @lhs
18:37 TimToady and I guess we haven't implemented lazypush yet
18:41 moritz_ is it even specced? :-)
18:42 nimiezko left #perl6
18:43 TimToady is there a better name than lazypush?
18:44 envi^home left #perl6
18:45 TimToady my @fib .= more(1,1,*+*...*); # maybe
18:45 TimToady as in, here's what to do when the array wants more
18:46 TimToady it's not a verb though
18:46 TimToady .supply
18:46 pugssvn r32071 | coke++ | [syn] Fix spelling error.
18:46 TimToady .append .add .specify
18:47 pmichaud .pushmore
18:47 sorear moritz_: Please don't discuss CPAN6 *now* :(
18:48 moritz_ sorear: why not? I've always been discussing it when somebody asked
18:48 sorear gfldex: Please do not discuss CPAN6 here and now, I'm seting up a meeting for a *reason*
18:48 pmichaud pmichaud@plum:~/rakudo$ ./perl6
18:48 pmichaud > say 1 ~~ Bool::True;
18:48 pmichaud Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 1, near " Bool::Tru"
18:48 [Coke] to stifle conversation? =-)
18:48 pmichaud > say 1 ~~ Bool::True::X;
18:48 pmichaud Can not find sub Bool::True::X
18:48 pmichaud > say 1 ~~ Bool::True-bar
18:48 pmichaud Can not find sub Bool::True-bar
18:48 pmichaud > say 1 ~~ True-foo
18:48 pmichaud Could not find sub &True-foo
18:49 TimToady std: say 1 ~~ Bool::True::X;
18:49 p6eval std 32070: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ 'Bool::True::X' used at line 1␤Check failed␤FAILED 00:01 116m␤»
18:49 moritz_ std: class Bool::True::X { }; 1 ~~ Bool::True::X;
18:49 p6eval std 32070: OUTPUT«ok 00:01 116m␤»
18:49 sorear pmichaud: Are those equivalences exact to the point of LTM?
18:50 pmichaud sorear: I don't understand the question
18:51 pmichaud I was just testing Rakudo's use of && to match against Bool::True
18:51 pmichaud I see that STD.pm6 now looks for a space.
18:51 TimToady which will miss some cases occasionally
18:52 pmichaud I was just trying    [ 'Bool::True' && <.longname> ]
18:52 TimToady should probably looks for a few other delimiters
18:52 TimToady oh, duh
18:52 pmichaud well, actually   'Bool::'? 'True && <.longname>
18:53 pmichaud *'True'
18:53 TimToady it probably wants to be a semantic check at the reduce, actually
18:53 pmichaud ah, jnthn++ suggested that also
18:54 pmichaud anyway, this prompted me to get && working in regexes again, so that's a bit of a win.  :)
18:54 dalek nqp-rx: b139200 | moritz++ | / (2 files):
18:54 dalek nqp-rx: [setting] implement split(), mostly stolen from partcl-nqp, Coke++
18:54 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​1392000d6b6e81aefaee9ee597b724e3061ea96
18:54 pmichaud > '0123456789'  ~~   / \d+ && ..5 /
18:54 pmichaud 345
18:55 pmichaud > '0123456789'  ~~   / 3.* && .*7 /
18:55 pmichaud 34567
18:57 sorear pmichaud: the question was re. 1309UTC
18:58 pmichaud sorear: ah.  I just know that's how role compositions are defined.
18:58 pmichaud I haven't thought about their ltm impacts at all.
18:58 sorear What do role compositions have to do with that?
18:58 pmichaud sorry, rule compositions
18:58 pmichaud wrong vowel
18:59 KyleHa joined #perl6
18:59 KyleHa Hello #perl6.
18:59 sorear ah.
18:59 eric256 joined #perl6
18:59 sftp left #perl6
19:00 KyleHa Is there a Moritz in attendance?
19:00 eric256 hey, from a been here and there and gone on and off stand point, it would be realy cool if the rakudo star release info pointed to examples for its feature list
19:00 mberends joined #perl6
19:03 KyleHa left #perl6
19:04 eric256 just a thought in case no one had mentioned it, love the release, very excited...
19:04 cono left #perl6
19:05 * jnthn back from noms
19:06 pmichaud sorear: http://www.nntp.perl.org/group/perl.​perl6.language/2005/05/msg21120.html  might help explain the character class arithmetic
19:06 sjn joined #perl6
19:06 sjn o/
19:06 cono joined #perl6
19:06 * sjn just tried to compile rakudo from git/svn, and got the following error message when running the executable:
19:06 sjn PackFile_unpack: This Parrot cannot read bytecode files with version 8.1.
19:07 sjn <- did a "make realclean" first, but that didn't make any difference
19:07 pmichaud sjn: when parrot has a new release, it changes what it looks for in the bytecode files
19:07 pmichaud and "realclean" doesn't always catch everything
19:07 jnthn TimToady: (lazypush) I think .plan was also suggested at one point.
19:07 mberends \o jnthn, tonight after a busy week of C# and VB.NET, I'm relaxing by porting more bits of 6model to Java :)
19:07 pmichaud generally I start by removing the parrot and parrot_install subdirs and starting afresh
19:07 [Coke] are you using a locally installed parrot?
19:07 jnthn mberends: Awesome \o/
19:07 [Coke] "what pmichaud" said.
19:07 sjn ok
19:07 jnthn mberends: Got some dobre pivo to go with that? :-)
19:08 * sjn suggests fixing "make realclean" ;-)
19:08 pmichaud sjn: I'm not sure what part of realclean is broken to be able to fix it.
19:08 mberends jnthn: yes, a very cold full pint mug
19:08 pmichaud the Parrot error could be a bit more useful if it would at least tell us what file it's having trouble unpacking  :-|
19:09 sjn how about just deleting all the bytecode files? :-P
19:10 sjn that's the current "fix" anyway
19:10 jnthn mberends: mmmmm
19:11 pmichaud sjn: I don't even have a way of finding all of the bytecode files
19:12 sjn does parrot's Makefile have an idea?
19:12 tylercurtis sjn: not necessarily. I've gotten that error after deleting my entire parrot install and checkout before.
19:13 pmichaud sjn: I think parrot's Makefile is the one that may be not realcleaning
19:13 pugssvn r32072 | kyle++ | [Test::Util] reunite lonely variable with its purpose
19:13 pmichaud since I don't know which bytecode file is causing the issue... hard to say.
19:13 pmichaud afaik Rakudo cleans up all of its .pbc files.  There aren't that many.
19:15 ingy tylercurtis: re YAML, sounds good.
19:15 pmichaud anyway, I'll see if I can track the realclean bug down.
19:15 sjn awesome ^^
19:15 sjn that would be a very n00b-friendly fix :)
19:16 sorear [Coke]: Fine, I give up.  If there's going to be hostility, I won't push for #cpan6sketch anymore.
19:16 nadim joined #perl6
19:17 pmichaud sorear: I didn't detect any hostility intended in what Coke wrote.
19:17 pmichaud it was more of a "normally we don't tell people they aren't allowed to talk about topics except at specified times"
19:17 pmichaud our general philosophy is that people are able to contribute whatever/whenever they can.
19:19 moritz_ sorear: please don't stop pusing #cpan6sketch, just don't try to make it exclusive in some way
19:19 sorear ok.  hmm.
19:19 tylercurtis left #perl6
19:22 * sorear tries to figure out what his role in this is
19:23 dalek nqp-rx: 4d31c5b | moritz++ | t/setting/04-regex.t:
19:23 dalek nqp-rx: precedence fix for regex test, Coke++
19:23 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​d31c5b84a3518d9e1341dd42251ed959b9e9fdc
19:23 pmichaud sorear: what are you wanting to achieve?
19:24 sorear pmichaud: achieve critical mass of knowledgeable and caring people
19:24 sorear we've achieved critical mass of caring people before, but with insufficient knowledge
19:24 pmichaud I think the critical mass needs to be achieved in some implementations
19:24 pmichaud maybe we need some knowledgeable people to get to that point
19:26 pmichaud historically "perl 6 cpan" discussions have tended to lead into bikeshedding or ratholes, imo
19:26 moritz_ aye
19:26 pmichaud so the challenge is to keep it from doing that
19:27 sorear pmichaud: I blame this on the lack of people with actual experience in such discussions
19:27 pmichaud sorear: ...except that as is the case with many bikeshed discussions, people argue it because they believe they have experience :-)
19:27 [particle] so, try to create one, and learn from the failures
19:28 [particle] don't call it cpan until it meets the requirements, whenever they're finalized
19:28 sorear pmichaud: the more direct reason is that Alias_ can't make #phasers due to timezoning
19:28 pmichaud sorear: that's a quite valid reason
19:29 plainhao left #perl6
19:29 sorear there was a little something in #p5p where the complaint was voiced that Perl 6 was ignoring the lessons of CPAN, and Alias_ volunteered to help fix that
19:29 pmichaud one can easily say "we're going to meet at xyz time to discuss perl 6 module management", but that's a far cry from saying "...and don't anyone else discuss it except then/there"
19:30 [Coke] (hostility) and certainly don't feel like you have to take any crap from me, even if I /am/ being hostile. which I wasn't trying to be, sorry. ;)
19:30 pmichaud fwiw, I agree that until now we haven't really looked at the lessons of CPAN.  I think it's also critical that we not blindly adopt the assumptions of CPAN either :-)
19:30 sjn pmichaud: fwiw, if you want to get some of the #toolchain folks interested in Perl6 module management, then you should look into the perl-qa hackathon thing :)
19:31 sjn Barbie told me there's a very good chance there will be another one next year
19:31 pmichaud sjn: I agree, it's just that the perl-qa hackathons are a bit far for me to attend.
19:31 pmichaud I'd need to find a local representative, I suspect.  masak++, moritz++, and mberends++ would be excellent folks to have there instead of me :)
19:31 sjn that would work too
19:33 sjn having some of the core perl6 folks hanging out in #perl-qa or #toolchain might also be a good start... (there are quite a few people in that community that haven't seen the big point in caring about Perl6 yet, but by giving them some attention too they shouldn't be to difficult to "win over" :)
19:33 jnthn o/ sjn
19:33 moritz_ sjn: I've hung out in #toolchain for quite some time. It was rather boring.
19:34 sjn heya, jnthn :)
19:34 jnthn I should make it up to Oslo at some point. :-)
19:34 sjn moritz_: I know :)
19:34 sjn jnthn: how does second tuesday in september sound for you? (got a green light from the NUUG board, so we'll reimburse travel/hotel :)
19:35 jnthn sjn: Let me check...
19:35 pmichaud it would probably be helpful for someone to write down a quick bullet list of what the "lessons of CPAN" are.  :-)
19:35 sjn just haven't gotten around to mail you about it yet,  :-P
19:35 sjn pmichaud: you wish :)
19:35 sorear pmichaud: Or to put it another way, I'm looking to gather people who are qualified to list the "... all the things that need reinventing" part of te Perl 6 motto
19:35 jnthn sjn: That'd be the 14th?
19:36 pmichaud sorear: that's reasonable.  If we just had a group that got together and said "this is what needs to be remembered" that'd be a great start.
19:36 jnthn sjn: Need to check with a couple of folks, I'll get back to you in the next few days.
19:36 sjn jnthn: yep, meeting is at 18:30 on the 14th
19:36 sjn great
19:37 pmichaud when is the #cpan6sketch meeting expected?
19:37 fod left #perl6
19:37 moritz_ Tue 16:00 UTC, iirc
19:37 * sjn wonders if a pointed question + follow-up on the perl-qa mailing list might help
19:37 pmichaud (I'd also be fine with it taking place in #perl6 or #phasers, but having a separate channel is okay too)
19:38 * pmichaud adds it to his calendar.
19:43 pmichaud anyway, I think the real answer to perl 6 module archive is to focus on "rough consensus and running code"
19:43 pmichaud it's too early to do a spec.
19:43 jnthn +1
19:43 moritz_ indeed
19:44 pmichaud and if someone believes we should just be using CPAN as-is, then we need some modules to do that (which falls back to "rough consensus and running code")
19:57 sftp joined #perl6
20:01 Italian_Plumber left #perl6
20:04 pugssvn r32073 | lwall++ | [S32/Containers.pod] spec .plan as a lazy push
20:11 Italian_Plumber joined #perl6
20:12 colomon joined #perl6
20:13 justatheory left #perl6
20:13 justatheory joined #perl6
20:30 azert0x joined #perl6
20:30 azert0x left #perl6
20:31 moritz_ KyleHa++ # fixing my stuff
20:31 azert0x joined #perl6
20:31 azert0x left #perl6
20:31 azert0x joined #perl6
20:32 justatheory left #perl6
20:32 justatheory joined #perl6
20:34 spq1 left #perl6
20:46 patrickas left #perl6
20:48 alester wrote to the guy who wrote the vim article, asking about what made him write about the Perl stuff
20:48 alester "I found it completely at random in fact. I was trying to find more info about some of the features in vim and ran across your post--which was the only one that addressed the Perl angle, which really helped add some more weight to the story, news-wise."
20:48 jferrero joined #perl6
20:48 alester My reply: "Thanks for the background.  Let me know if I can help you with any Perl news.  Perl 6 is starting a big groundswell, and so many of its features have found their way back into Perl 5 and Perl 5 modules that it's a pretty cool time to be working with Perl."
20:48 alester The more press we can get, the better!
20:50 TimToady then maybe I should murder someone
20:51 pmichaud don't think that worked for Reiser
20:51 TimToady not terribly well, no
20:51 jnthn "And Perl 6's killer feature is..."
20:51 pmichaud although some of us are being accused of killing Perl 5  :-P
20:51 TimToady can't think of any likely candidates, in any case...
20:53 TimToady don't think I want to deny using steroids in front of Congress, either...
20:54 TimToady and it's too late to get famous for a Darwin award
20:55 pmichaud unless you killed all of your descendants  :=)
20:55 pmichaud then you'd get both :)
20:56 pugssvn r32074 | lwall++ | [S03] defined binding operators as parsing like list assignment
20:57 pmichaud \o/
20:57 pmichaud now if we could only get assignment to scalars to act like list assignment ...  :-P
20:58 lue does this mean someone has to go back and change the := code? :=)
20:58 pmichaud lue: no, I suspect it confirms the := code that already exists.
20:58 Khisanth TimToady: but they would probably believe you if you were to deny using steroids in front of Congress :)
20:58 pmichaud rakudo:  my $a := 1,2,3,4;   say $a.WHAT;
20:58 p6eval rakudo 7b0031: OUTPUT«Int()␤»
20:58 pmichaud hmmm
20:58 pmichaud guess not.
20:59 pmichaud rakudo:  my $a := (1,2,3,4);   say $a.WHAT;
20:59 p6eval rakudo 7b0031: OUTPUT«Parcel()␤»
20:59 pmichaud probably ought to be Seq anyway
20:59 jnthn I guess the initial tweak is just changing the precedence, though?
20:59 lue rakudo: my @a = 1,2,3; my @b := @a; @b = 4,5,6; say @a;  # let's see if it works!
20:59 pugssvn r32075 | lwall++ | [STD] Make := and ::= parse as list assignment as in new spec.
20:59 pugssvn r32075 | Make [op]= actually parse according to the existing spec (that is,
20:59 pugssvn r32075 | item assignment for op tighter than comma, list assignment otherwise)
20:59 p6eval rakudo 7b0031: OUTPUT«456␤»
21:00 pmichaud jnthn: yeah, move it to list assignment precedence, likely
21:00 TimToady actually, I've used a considerable number of steroids when I had eye troubles...
21:01 masak joined #perl6
21:01 masak ahoy, #perl6!
21:02 jnthn lolitsmasak!
21:02 mberends good weekend, masak
21:02 Tene ohaimasak
21:02 lue ohaimasak
21:02 masak jnthn: Google emailed me and said that I passed.
21:02 TimToady though my descendants have used more steroids than I have
21:03 masak jnthn: they also said, and I quote, "Please contact your mentor to discuss the results of your evaluation and to plan your goals and development plan for the rest of the program"
21:03 masak jnthn: I... didn't know there was a rest of the program :)
21:03 TimToady item assignment is unlikely to go away as long as we have to explain that defaults always parse like item assignment
21:03 masak jnthn: though I do plan to keep developing the bits that I wrote :)
21:03 jnthn masak: Yes, I was Cc'd in and thought just the same. :-)
21:03 jnthn masak: I hoped you would. :-)
21:04 jnthn masak++
21:04 masak jnthn: I think it's a thinko/fossil from midterms.
21:04 TimToady and I'm not too worried about people mixing them up once we get "Useless use of" warnings enabled
21:04 jnthn masak: I guess I'm only allowed to unofficially tormentor you now. :-)
21:05 masak mberends: I'd like to talk to you about a patch I got from oha. as the chief mainstream consumer of the code patched, you're likely to have some views on it.
21:05 TimToady unofficial torment can be worse...
21:05 TimToady plausable deniability, and all that...
21:05 masak jnthn: I'll miss the official tormenting a bit. it was, for lack of a better word, nice. :) thanks for mentoring me this summer. jnthn++
21:06 perlygatekeeper left #perl6
21:06 jnthn masak: Yes, aside from requiring me to trasport a power supply a thousand kilometers, you were a very good and competent student. :-)
21:06 masak jnthn: that had nothing to do with GSoC! :P
21:06 jnthn True. :P
21:06 masak jnthn: I want you to know that the power supply and I are very happy together.
21:08 jnthn masak: Ooh, next year you can take the Latvian power supply on a trip to its motherland too. \o/
21:08 * masak has trouble telling the two he has apart...
21:09 masak I'm in a bipowerous relationship.
21:09 jnthn *groan*
21:13 jnthn mberends: Ooh, I didn't noticed that you'd sneaked in a patch yesterday. :-)
21:14 mberends jnthn: it was only a tittle bittle patch :)
21:14 flyback is now known as krisskross
21:14 masak 'tiddle bittle'. :)
21:14 mberends masak: can we chat in about an hour?
21:14 krisskross is now known as flyback
21:14 masak oh, anytime.
21:15 masak just glad to see you online :)
21:15 jnthn mberends: Whoa.
21:15 jnthn mberends: The interface => abstract class refactor will make the reprs have a load less boilerplate in Java.
21:15 alester TimToady: If you kill all your descendents, then we'll have to hear about how we don't support inheritance.
21:16 mberends jnthn: are you changing KnowHOWBootstrap as well?
21:16 jnthn mberends: No, writing that ones hurt my brane enough.
21:16 jnthn Well, I mean, I have to write it for the Parrot port too I guess.
21:16 jnthn Oh well. :-)
21:16 jnthn But no, I don't plan to twiddle that one for now.
21:17 lue afk
21:17 jnthn mberends: It'll need to learn how to do gradual typing at some point.
21:17 jnthn That'll probably happen first on Parrot unless I find a good way to do the gradual typing in a non-bootstrapped environment.
21:18 tylercurtis joined #perl6
21:18 jnthn Or at least, one that doesn't compromise the good bits of unifying the compile time and runtime MOP.
21:21 * jnthn digs into working out what on earth is up with enabling building a constant table for the NQPSetting.
21:23 masak I don't think Perl 6 has been "ignoring the lessons of CPAN" so much as not gotten to the point where paying attention to those lessons is an option. :)
21:28 jnthn oh lol
21:29 jnthn stupid bug is stupid.
21:29 Holy_Cow left #perl6
21:31 masak by the way, the "lions made of lions" ticket was closed today. jnthn++ [Coke]++ moritz_++ http://rt.perl.org/rt3/Tic​ket/Display.html?id=75644
21:32 jnthn \o/
21:32 masak rakudo: role Lion[::T?] {}; class LionMaybeMadeOfLions does Lion[Lion[]] {}; say "alive"
21:32 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤Unable to parse def_module_name, couldn't find final ']' at line 22␤»
21:33 masak hm?
21:33 masak rakudo: role Lion[::T?] {}; class LionMaybeMadeOfLions does Lion[] {}; say "alive"
21:33 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤Unable to parse def_module_name, couldn't find final ']' at line 22␤»
21:33 [Coke] rakudo: role Lion[::T] {}; class LionMadeOfLions does  Lion[Lion] {}
21:33 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for '_block124'. Available candidates are:␤:(Mu ::T )␤␤»
21:33 masak that one is correct, IMO.
21:33 ruoso left #perl6
21:33 masak rakudo: role A {}; class B does A[] {}
21:33 p6eval rakudo 7b0031:  ( no output )
21:34 masak rakudo: role A {}; class B does A[] {}; say "alive"
21:34 p6eval rakudo 7b0031: OUTPUT«alive␤»
21:34 masak rakudo: role A[] {}; class B does A[] {}; say "alive"
21:34 p6eval rakudo 7b0031: OUTPUT«alive␤»
21:34 masak rakudo: role A[::T] {}; class B does A[] {}; say "alive"
21:34 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for '_block124'. Available candidates are:␤:(Mu ::T )␤␤»
21:34 masak rakudo: role A[::T?] {}; class B does A[] {}; say "alive"
21:34 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤Unable to parse def_module_name, couldn't find final ']' at line 22␤»
21:34 * masak submits rakudobug
21:34 masak the Lion roars again!
21:35 TimToady std: role A[::T?] {}; class B does A[] {}; say "alive"
21:35 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse generic role at /tmp/aQyIg_nsqM line 1:␤------> [32mrole A[33m⏏[31m[::T?] {}; class B does A[] {}; say "ali[0m␤Couldn't find final ']'; gave up at /tmp/aQyIg_nsqM line 1:␤------> [32mrole A[::T[33m⏏[31m?] {}; class B does A[]
21:35 p6eval ..{}…
21:35 masak ...or not.
21:35 TimToady I don't think that syntax is legal
21:35 TimToady std: role A[::T $?] {}; class B does A[] {}; say "alive"
21:35 masak I'm starting to suspect you're right...
21:35 p6eval std 32075: OUTPUT«ok 00:01 119m␤»
21:35 TimToady you can't put ? on a type constraint, which ::T is parsed as
21:35 masak oh right.
21:36 masak makes sense.
21:36 masak rakudo: role A[::T $?] {}; class B does A[] {}; say "alive"
21:36 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near "] {}; clas"␤»
21:36 * masak submits this other bug instead :)
21:36 TimToady heh, STD's twigils require a following \w
21:37 masak rakudo: role A[::T $?] {}
21:37 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near "] {}"␤»
21:37 masak rakudo: sub foo(::T $?) {}
21:37 p6eval rakudo 7b0031: OUTPUT«===SORRY!===␤In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near ") {}"␤»
21:37 TimToady std: role A[::T $ ?] {}; class B does A[] {}; say "alive"
21:37 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse generic role at /tmp/ebqLcTOU42 line 1:␤------> [32mrole A[33m⏏[31m[::T $ ?] {}; class B does A[] {}; say "[0m␤Couldn't find final ']'; gave up at /tmp/ebqLcTOU42 line 1:␤------> [32mrole A[::T $ [33m⏏[31m?] {}; class B does
21:37 p6eval ..A[]…
21:37 masak I agree; it's not a twigil unless there's something coming after it :)
21:38 TimToady interesting, doesn't allow space there
21:39 TimToady std: role A[::T []?] {}; class B does A[] {}; say "alive"
21:39 p6eval std 32075: OUTPUT«ok 00:01 119m␤»
21:39 masak o.O
21:40 masak what does []? mean?
21:40 TimToady beats me
21:40 jnthn ...I wonder what Rakudo would make of that. :-)
21:40 masak "the mystery box"
21:40 jnthn rakudo: role A[::T []?] {};
21:40 p6eval rakudo 7b0031:  ( no output )
21:40 jnthn Great, it means something. :-)
21:40 jnthn rakudo: sub foo(::T []?) { }; say &foo.signature.perl
21:40 p6eval rakudo 7b0031: OUTPUT«:(Positional ::T ? ())␤»
21:40 jnthn Optional parameter that must unpack to an empty positional.
21:40 jnthn :-)
21:41 jnthn rakudo++
21:42 TimToady I guess the first signature can stand in for the param_var
21:42 jnthn Oh, and we capture the type of it too
21:42 masak rakudo++
21:42 jnthn TimToady: I guess so. :-)
21:42 TimToady std: -> []? []? {...}  # fail?
21:42 jnthn TimToady: Heh. It's great when the implemtation handles stuff you didn't think of when writing it. :-)
21:42 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/YbJoaXiMJf line 1:␤------> [32m-> []? [][33m⏏[31m? {...}  # fail?[0m␤    expecting any of:␤ block␤  constraint␤ param_sep␤      signature␤        trait␤Parse failed␤FAILED 00:01 116m␤»
21:42 TimToady std: -> []? [] {...}  # fail?
21:42 p6eval std 32075: OUTPUT«ok 00:01 116m␤»
21:42 TimToady std: -> *[] [] {...}  # fail?
21:42 jnthn std: -> []?, []? {...}
21:42 p6eval std 32075: OUTPUT«ok 00:01 116m␤»
21:42 p6eval std 32075: OUTPUT«ok 00:01 117m␤»
21:43 jnthn hehe
21:43 jnthn "Signatures. They can be line noise too."
21:43 TiMBuS left #perl6
21:43 TiMBuS joined #perl6
21:43 TimToady std: -> [] () [] () --> [] {...}  # fail?
21:43 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤No type found after --> at /tmp/TmnP_uPIrR line 1:␤------> [32m-> [] () [] () --> [33m⏏[31m[] {...}  # fail?[0m␤    expecting any of:␤      name␤   type_constraint␤Parse failed␤FAILED 00:01 116m␤»
21:44 TimToady std: -> [] () [] () --> 42 {...}  # fail?
21:44 p6eval std 32075: OUTPUT«ok 00:01 117m␤»
21:44 masak o.O
21:44 TimToady values may be used as types :)
21:44 TimToady someitmes
21:44 masak what have we done!?
21:44 TimToady *times
21:44 masak rakudo: -> []?, []?, []?, []?, []?, []?, []? { ... }
21:44 jnthn masak: Confirmed that Perl 6 is, indeed, still Perl. :-)
21:44 p6eval rakudo 7b0031:  ( no output )
21:45 TimToady std: -> 24 *[] () [] () --> 42 {...}  # fail?
21:45 p6eval std 32075: OUTPUT«ok 00:01 117m␤»
21:45 masak jnthn: it's line noise, but it's really classy line noise.
21:46 TimToady a function that is guaranteed to turn a Nil 24 into 42
21:46 jnthn Oh eurgh...constants of a type that you're in the proccess of bootstrapping are scary. :-)
21:46 jnthn TimToady: Useful! ;-)
21:46 masak jnthn: you know you brought this on yourself :)
21:46 masak jnthn: but do tell more about the scary, twisted parts :P
21:47 jnthn masak: See http://github.com/jnthn/6model/blo​b/master/common/NQP/NQPSetting.pm and consider the 0 on line 6. :-)
21:48 jnthn masak: (Yes, actually running code, fwiw.)
21:48 * masak looks
21:49 TimToady It's blue
21:49 masak jnthn: 0... is an NQPInt...?
21:49 * masak swoons
21:49 jnthn masak: Well, no
21:49 masak oh phew.
21:50 TimToady just use +Set() instead
21:50 jnthn masak: It probably needs to become one though. :-/
21:50 jnthn masak: Because BootstrapInt is HOW-less
21:50 masak what do the arguments in nqp::equal_ints mean? I think I got the first two.
21:50 jnthn I wonder why I have that and if I can toss it somehow.
21:50 TimToady integers are implemented in terms of sets, aren't they?
21:50 jnthn The third is the type to box the argument into.
21:50 masak ahah.
21:51 jnthn TimToady: There's tormenting and there's cruelty. :P
21:51 * TimToady plucks another leg off the jnthn++
21:51 jnthn masak: oh gah
21:51 jnthn masak: I meant, the type to box the result into.
21:51 masak TimToady: I'm done cleaning your ivory tower. you can climb back up now. :P
21:51 masak jnthn: that's how I interpreted you anyways.
21:52 TimToady Hey, where'd you put my set theory?!?
21:52 * masak hid it
21:52 * justatheory waves to TimToady
21:52 masak TimToady: ok, it's right under the New Math.
21:52 TimToady This is against union rules...
21:53 jnthn "Today on IRC goes on the road, we visit the exciting city of p6l!"
21:53 masak you theorists always grumble about everything.
21:53 jnthn OK, so what really happens if I try and make that 0 an NQPInt...
21:53 TimToady or the everything engine, in chromatic++'s case
21:53 masak jnthn: p6l, the legendary lost city!?
21:55 jnthn Oh my, the type universe imploded...
21:58 diakopter wesley saved it though.
22:01 tylercurtis jnthn: I have a question about KnowHOWBootstrapper.Bootstrap().
22:01 TimToady sorear: actually, <isPc+xdigit> is a syntax error; a character classish thing may only start with +, -, or [
22:02 jnthn tylercurtis: oh no :-)
22:02 masak not according to that old email.
22:02 jnthn tylercurtis: Are you going to make me understand my own code? :-)
22:02 masak http://www.nntp.perl.org/group/perl.​perl6.language/2005/05/msg21120.html
22:02 jnthn tylercurtis: Go ahead. :-)
22:02 tylercurtis jnthn: What is KnowHOWMeths for? It appears that the only time it is used is when you loop through it, adding all the methods to KnowHOWHOW.Methods.
22:02 lue hai again
22:03 masak hai, lue
22:03 jnthn tylercurtis: It's because in the future it'll be used in another way. :-)
22:03 jnthn tylercurtis: To make it possible to implement KnowHOW.^.methods
22:03 jnthn tylercurtis: Alas, I don't have any way to do lists yet.
22:03 jnthn tylercurtis: There may turn out to be a better way, but that's the motivation for putting 'em in a dictionary.
22:04 jnthn (So they're available for that usage too.)
22:04 jnthn Basically, want to be introspectable all the way down.
22:04 TimToady masak: I don't see anything in there suggesting that <foo+bar> is legal
22:05 jnthn I'm not sure if it'll pan out needing to be that way though.
22:05 TimToady only <+foo+bar> and such
22:05 jnthn So maybe that code can be simplified some day.
22:05 masak it suggests <[abc]> is short for <+[abc]>.
22:05 masak <[abc]> is a character classish thing.
22:05 TimToady yes, but <foo> isn't short for <+foo>
22:05 tylercurtis Alright. Reading the code has been interesting. I'm probably going to steal your SharedTable design for Bennu. :)
22:05 TimToady since they have different argument parsing policies
22:05 masak TimToady: oh, true. I un-object.
22:07 jnthn tylercurtis: Yes, the STable bit I'm fairly happy with, apart from it needs an SC.
22:07 TimToady std: /<foo()>/; /<+foo()>/;  # for instance
22:07 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse metachar at /tmp/SNloF2kyNz line 1:␤------> [32m/<foo()>/; /[33m⏏[31m<+foo()>/;  # for instance[0m␤Couldn't find final '>'; gave up at /tmp/SNloF2kyNz line 1:␤------> [32m/<foo()>/; /<+foo[33m⏏[31m()>/;  # for instance[0m␤
22:07 p6eval ..e…
22:08 TimToady restricting the +/- stuff to argumentless rules seems somewhat sane, maybe
22:08 TimToady one can always do more complicated stuff with a real lookahead
22:09 masak aye.
22:09 * TimToady is still backlogging from last night, sigh...
22:10 jnthn tylercurtis: Is Bennu the LLVM project?
22:10 jnthn tylercurtis: I highly advise stealing the Representation implementation too, fwiw.
22:12 tylercurtis jnthn: Yes, although I may decide to target C first when I rewrite it initially to make compilation simpler.
22:12 TimToady <before>'s argument is supposed to parse at compile time; it's really a macro
22:12 jnthn tylercurtis: I can certainly say targetting C# rather than IL has made my life easier as a prototyper.
22:13 TimToady std: /<?before +>/
22:13 p6eval std 32075: OUTPUT«ok 00:01 116m␤»
22:13 TimToady std: /<?before |>/
22:13 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse metachar at /tmp/B97ljvCVuR line 1:␤------> [32m/[33m⏏[31m<?before |>/[0m␤Couldn't find final '>'; gave up at /tmp/B97ljvCVuR line 1:␤------> [32m/<?before[33m⏏[31m |>/[0m␤    expecting assertion␤Parse failed␤FAILED 00:01
22:13 p6eval ..116m␤»
22:14 TimToady std: /<?before>/
22:14 p6eval std 32075: OUTPUT«ok 00:01 116m␤»
22:14 TimToady hmm
22:14 TimToady std: /<?before !>/
22:14 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/kPNr1pUcbH line 1:␤------> [32m/<?before ![33m⏏[31m>/[0m␤Can't call method "from" on unblessed reference at STD.pm line 53782.␤FAILED 00:01 116m␤»
22:14 masak <?before> is ok?
22:14 TimToady shouldn't be
22:15 masak thought so.
22:15 TimToady + should also fail
22:15 tylercurtis jnthn: I expect to steal quite a bit from your metamodel, really.
22:15 masak aye.
22:15 jnthn tylercurtis: :-)
22:15 jnthn tylercurtis: Feedback on your experiences with in LLVM most welcome.
22:16 jnthn tylercurtis: Portability is in my long list of design worries. :-)
22:16 alester left #perl6
22:16 TimToady darn, the + modified the (non)sigspace!?!?
22:17 masak yuck.
22:17 TimToady std: /<?before+>/
22:17 p6eval std 32075: OUTPUT«[31m===[0mSORRY![31m===[0m␤Quantifier quantifies nothing at /tmp/PMMjHIro3J line 1:␤------> [32m/<?before+[33m⏏[31m>/[0m␤Check failed␤FAILED 00:01 116m␤»
22:17 TimToady hmm
22:18 eric256 left #perl6
22:22 masak rakudo: for [] -> $a { say $a.perl }
22:22 p6eval rakudo 7b0031: OUTPUT«[]␤»
22:22 masak is this correct?
22:23 tylercurtis jnthn: will do, though I don't expect to work directly on the Bennu rewrite just yet. Waiting until I understand the metamodel a bit more.
22:23 masak put differently, do things flatten in the <EXPR> position in the for statement?
22:24 TimToady [] never flattens in a list
22:24 TimToady so it's correct
22:25 masak what about this one?
22:25 masak rakudo: my %h = foo => []; for %h<foo> -> $a { say $a.perl }
22:25 p6eval rakudo 7b0031: OUTPUT«[]␤»
22:27 masak I find I do such hash accesses when iterating on quantified Match objects. I'd like to know if I should write %h<foo> or %h<foo>.list in the for statement.
22:27 jnthn tylercurtis: Heh, I didn't start on the Parrot implementation yet for the same reason. :-)
22:29 masak not least because bitrot in my code seems to indicate that the behaviour changed in Rakudo recently :)
22:30 masak ah well, working code trumps getting a final answer.
22:37 TimToady I think that one should flatten
22:37 masak what's the easy rule that distinguishes them?
22:38 TimToady there's no [] or $ to prevent it in the return from .<>
22:39 masak so... where there's no explicit "don't flatten" clue, the thing flattens?
22:39 TimToady nod
22:39 * masak submits rakudobug
22:40 Guest23195 left #perl6
22:40 masak good. that's how I understood it last time.
22:41 colomon left #perl6
22:41 colomon joined #perl6
22:42 * masak sleeps
22:42 masak left #perl6
22:45 colomon left #perl6
22:51 Trashlord left #perl6
22:53 jnthn Ooh. Seems with the right twiddling the bootstrap becomes a bunch neater.
22:53 Trashlord joined #perl6
22:53 Trashlord is now known as Guest29521
22:56 dalek 6model: 3b36cb6 | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
22:56 dalek 6model: Helps to actually emit the call to set up the constant table we build in the setting.
22:56 dalek 6model: review: http://github.com/jnthn/6model/commit/3​b36cb63485647aa54330a1bb041bcbb112b8cc2
22:56 dalek 6model: c20047e | jnthn++ | dotnet/compiler/ (2 files):
22:56 dalek 6model: Make PDB files for the stuff we compile, so it's easier to go debugging.
22:56 dalek 6model: review: http://github.com/jnthn/6model/commit/c​20047e0813d814cc261ef5e0366188162ecd10d
22:56 dalek 6model: 3e7ec36 | jnthn++ | common/NQP/NQPSetting.pm:
22:56 dalek 6model: A little setting re-ordering; put NQPStr first, since we need strings early on in the bootstrap.
22:56 dalek 6model: review: http://github.com/jnthn/6model/commit/3​e7ec365102c0ed75c1ff3aebcf8871f2f090241
22:56 dalek 6model: 0e373a8 | jnthn++ | dotnet/compiler/Actions.pm:
22:56 dalek 6model: Bind the type object as soon as we create it, rather than post-compose.
22:56 dalek 6model: review: http://github.com/jnthn/6model/commit/0​e373a83ace9f3e3faa730cf5e8729c5527682c4
22:56 dalek 6model: 63a9ad2 | jnthn++ | dotnet/ (2 files):
22:56 dalek 6model: Eliminate much of the bootstrappy type mess, which means we can create most constant things in the setting as constants (outside of loadinits where we're building the types of the constant things).
22:56 dalek 6model: review: http://github.com/jnthn/6model/commit/6​3a9ad2793573314b726264e8ef7a1918472ca54
22:57 dalek book: a64178f | chromatic++ | src/builtins.pod:
22:57 dalek book: Converted builtin lists to POD tables.
22:57 dalek book: review: http://github.com/perl6/book/commit/a6​4178fde082cf1c2fcddad885bc1836b5979cba
23:00 pugssvn r32076 | lwall++ | [STD] improve error messages from malformed <before>ish things
23:09 M_o_C joined #perl6
23:09 M_o_C left #perl6
23:09 M_o_C joined #perl6
23:11 tylercurtis jnthn: If someone does BindAttribute on a P6hash type object, it appears that it becomes defined. Is that correct?
23:11 colomon joined #perl6
23:12 jnthn tylercurtis: No, it's just behind.
23:12 jnthn tylercurtis: I thought "ah, let's lazily allocate it"
23:12 jnthn tylercurtis: That was before I put in repr_defined :-)
23:15 jnthn Hmm. The "third argument is the type we want to box to" forms of the ops may be cute, but they actually completely kill us because of the sheer number of (lexical) lookups that result.
23:15 jnthn (researching on a platform with an awesome profiler to hand)++
23:16 jnthn tylercurtis: I'm not using that P6hash repr for anything though
23:16 jnthn tylercurtis: Also you're confused
23:16 jnthn tylercurtis: That's not a type object
23:16 jnthn tylercurtis: It's a representation object.
23:16 jnthn (hangs off the REPR pointer in an STable)
23:17 tylercurtis jnthn: I mean that if you use the P6hash REPR's BindAttribute method with a type object as the object, it becomes defined.
23:18 jnthn tylercurtis: Yeah
23:18 jnthn tylercurtis: It's rong.
23:18 jnthn tylercurtis: Should just hit the null and die
23:18 jnthn Well, die nicely I guess.
23:18 Mowah left #perl6
23:21 cotto_work left #perl6
23:21 dju left #perl6
23:22 dju joined #perl6
23:23 drbean joined #perl6
23:25 jnthn tylercurtis: Actually that P6hash repr is a bad example all around. :-)
23:25 jnthn tylercurtis: It was one of the first two that I sketched out when I was playing with ideas.
23:25 jnthn tylercurtis: And it's received just about enough attention to keep it compiling. :-)
23:28 tylercurtis jnthn: I'll keep that in mind.
23:33 jnthn Mmmmm....Krusovice mam. :-D
23:52 itz has anyone tried rakudo on android yet? ok I'm sure its not fast :)
23:52 M_o_C left #perl6
23:52 dalek 6model: 3881965 | jnthn++ | / (9 files):
23:52 dalek 6model: Turns out that the always pass ops type object for result type stratergy is a rather bad idea, since we end up doing tons of lexical lookups. This patch halves the number we do in a simple counting up while loop benchmark.
23:52 dalek 6model: review: http://github.com/jnthn/6model/commit/3​881965d8ae9ff8393ef967c5c5d30d8d1ee3f2d
23:52 dalek 6model: d9c8bf3 | jnthn++ | dotnet/compiler/ROADMAP.txt:
23:52 dalek 6model: Remove some done items from the ROADMAP.
23:52 dalek 6model: review: http://github.com/jnthn/6model/commit/d​9c8bf39e119c757c4361365dcb2e34d7440c273
23:58 meppl left #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo