»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 10 October 2009.
00:12 kst joined 00:26 arthur-- joined 00:31 xinming_ joined 00:32 lumi joined 00:41 rhr joined 00:42 vmbrasseur joined, rdice joined 00:47 vmbrasseur_ joined 00:49 vmbrasseur_ left
vmbrasseur Hey, all. I'm considering starting in on some "how to contribute" info for perl6.org. 00:51
Goal is to explain as much as possible and dispel a lot of fog from newbie heads. 00:52
Because right now? It ain't so clear even what's what, let alone where someone could start on lending a hand. 00:53
Feedback on the general idea?
Tene sounds great to me.
vmbrasseur Do you have anything in particular which you'd like to see covered? 00:54
perl6.org/about says I should check here for consensus before larger changes (assuming that means additions as well). 00:55
sjohnson hi Tene 00:57
Tene hi sjohnson 00:58
00:59 rhr_ joined 01:06 Eevee joined, Mr_Orange left 01:11 rhr joined 01:19 rhr_ joined, SmokeMachine joined, jaldhar joined 01:21 rml_ joined 01:26 eternaleye joined 01:30 lumi joined 01:36 orafu joined 01:45 rdice joined 01:47 brunov joined
vmbrasseur There's no formal issue tracking (aside from TASKS in svn) for Perl6? 01:52
quietfanatic Do you mean like rt.perl.org/rt3/Public/?nossl=true or something different? 01:54
vmbrasseur Like that, but for development-type things. 01:56
I hadn't noticed the RT for perl6 before though, so thanks for that.
Looks like dev.pugscode.org is a morass of spam tickets. 01:58
Ah, OK. Default view of the timeline included closed tickets. Disabling that removed the spam. That's a more encouraging picture. 02:00
02:05 rhr joined 02:27 xenoterracide joined 02:28 rhr_ joined 02:30 jaldhar joined 02:34 JimmyZ joined 02:36 agentzh joined 02:38 lumi joined 02:41 nbrown_ joined 02:48 NorwayGeek joined 02:55 JimmyZ joined, am0c joined
quietfanatic rakudo: my $x = "x"; say |$x 03:04
p6eval rakudo 3eceb8: OUTPUT«argument doesn't array␤in Main (file src/gen_setting.pm, line 206)␤»
quietfanatic rakudo: my @x = "x"; say |@x
p6eval rakudo 3eceb8: OUTPUT«x␤»
quietfanatic I think prefix:<|> should work on scalars, right 03:05
?
std: my $x = "x"; say |$x 03:06
p6eval std 28792: OUTPUT«ok 00:02 114m␤»
sjohnson rakudo: my @x = "x"; say '' |@x 03:08
p6eval rakudo 3eceb8: OUTPUT«any("", ["x"])␤»
03:09 synth joined 03:11 nihiliad joined 03:16 NorwayGeek joined 03:30 envi^office joined 03:34 PZt joined 03:37 eternaleye_ joined 03:56 kst joined 03:57 xinming joined 04:02 lumi joined 04:30 bpetering joined 04:32 zloyrusskiy joined 04:46 Confield left 04:52 synth joined 05:08 JimmyZ joined, _jaldhar joined 05:14 lumi joined 05:30 ShaneC joined
dalek p-rx: c5a7893 | pmichaud++ | (4 files):
Add Regex::P6Grammar as temporary scaffolding for bootstrapping the parser.
05:31
p-rx: 2bb5b72 | pmichaud++ | .gitignore:
Update .gitignore.
p-rx: f80ba14 | pmichaud++ | (2 files):
Change "make test" target to specify $(PARROT) executable (suggested
05:38 ShaneC joined 05:42 jaldhar_ joined 05:43 synth joined 05:59 Su-Shee joined
Su-Shee good morning. 05:59
colomon o/
bpetering perceived problem: svn.pugscode.org/pugs/docs/Bootstra...butors.pod 06:10
proposed solution: svn.pugscode.org/pugs/docs/IRCchannelLexicon.pod 06:11
dalek p-rx: e7e5924 | pmichaud++ | src/Regex/P6 (2 files):
Add the ability to parse arglists after colons in subrule calls.

Bootstrap progress: The "p6grammar" executable is now able to parse its own grammar definition; test via
   ./p6grammar --target=parse src/Regex/P6Grammar/Grammar.pm
06:17 lumi joined 06:23 dalek joined 06:33 JimmyZ joined 06:40 NorwayGeek joined 06:43 Kid joined
Kid Hi All 06:43
I am New to This Plateform and Perl 6 06:44
Could Any body point out about perl 6
moritz_ good morning 06:45
there are lots of good links on perl6.org/ 06:46
is there anything more specific you want to know?
Kid I know python / ruby / php 06:48
and Perl (Just Aware of)
I am planning to shift Perl 6
06:49 lumi joined
moritz_ great 06:49
Kid So Could you tell me How can Perl 6 can help me w.r.t Web Projects
06:50 [synth] joined 06:51 zamolxes joined
moritz_ we have a nice project that wants to simplify web development 06:51
06:52 flip214 joined
moritz_ masak has been developing much of it, and he's been blogging about it also 06:52
Kid Could you please Give the URL
moritz_ blog: use.perl.org/~masak/journal/ source: github.com/masak/web/
Kid Are you from Perl 6 Team 06:53
06:53 barney joined
moritz_ yes 06:53
Kid I will check them 06:55
Is Their any Django Kinda Framework Perl 6 is Providing 06:56
06:56 zamolxes joined
moritz_ I no of no other web framwork for Perl 6 than Web.pm 06:56
Kid Sorry I don't get you 06:57
moritz_ I know of no other web framwork for Perl 6 than Web.pm # next attempt :-) 06:59
sorry, not quite awake yet
Kid Okey One more Question How it is different from Haskell 07:01
moritz_ very much so
Kid I think I need to know Perl 6 07:02
moritz_ haskell is a pure, functional language with lazy evaluation
Kid Some Features are impressive
moritz_ Perl 6 is a more "traditional" language where you have variables you can assign to, and only lists are lazy
you can still do functional programming with Perl 6, though 07:03
Kid Okey
Thanks for your advice
moritz_ you're welcome 07:04
Kid I am using IRC after 8 Years. Impressive IRC culture has not changed yet. Salute to IRC and Specially @moritz_ 07:05
moritz_ bows 07:06
07:08 hugme joined
Kid Is This Your URl Mortiz 07:08
moritz.faui2k3.org/en/
moritz_ that's one of them yes 07:09
though most of my up-to-date stuff is on perlgeek.de/
including a Perl 6 blog :-)
Kid I am still kid in terms of Perl 07:10
Please Share
07:10 pugs_svn joined
pugs_svn r28790 | jnthn++ | [t/spec] Correct incorrect signature. 07:10
r28791 | geoffb++ | [irclog] cgi/style.css: Improve look and layout of calendars
r28792 | kyle++ | [t/spec] Test for RT 65638
r28793 | bpetering++ | A problem and a solution - contributors and #perl6
moritz_ perlgeek.de/blog-en/
Kid Nice to meat you. 07:13
I had book marked the URl.and will contact you if stuck somewhere between. 07:14
pugs_svn r28794 | moritz++ | [docs] some updates to IRCchannelLexicon.pod
Kid Wishing you Happly Diwali (Indian Fastival) 07:15
Bye
moritz_ same to you
bye
phenny: tell vmbrasseur re contribution info, you might be interested in <www.perlmonks.org/?node_id=771635> and <www.perlmonks.org/?node_id=780001>. Also feel free to ask on #perl6 if you need a pugs commit bit to change perl6.org 07:18
phenny moritz_: I'll pass that on when vmbrasseur is around.
07:18 kst joined
sjohnson nice to meat :) 07:21
moritz_ feels so tasty
sjohnson just kidding. i am not teasing
a perl fan, is a perl fan
moritz_ not teasing? what's wrong with you? ;-) 07:23
sjohnson hehe
ahh was worried for political reasons tbh
didn't want to seem like a bastard
sjohnson played the PC card
... and is ashamed of having to lie
haven't seen wayland76 around for a while 07:24
moritz_ aye
@seen wayland76
lambdabot Unknown command, try @list
moritz_ that bot is getting more and more useless every day
07:27 NorwayGeek_ joined
mathw Morning 07:27
Maybe we should evict lambdabot 07:28
moritz_ \\o/
mathw: only if we have another karma tracking bot ;-)
07:28 Bzek joined
mathw moritz_: so the plan should be to replace lambdabot with a karmabot written in Perl 6 07:33
sjohnson moritz_: might be because it was programmed in python ;) 07:35
.. or a warning that p6 could replace drone-like human activity 07:36
... and the only one
i've seen the Terminator movies... i know what might happen
Su-Shee
.oO(I get Christian Bale covered in dirt? ;)
07:37
sjohnson i've always wondered what .oO
means
Tene sjohnson: "thought bubble"
Su-Shee thinking :)
sjohnson needs to keep up with the times
.oO(would also like that)
07:38
you guys can't read that... right?
sjohnson feels save
safe
Tene support for select()and then a POE-alike is on my TODO list. 07:39
07:52 rfordinal joined
pmichaud time for sleep here... got a very late start on nqp-rx today, but managed to get a lot done anyway. :) 07:53
mathw yay! \\o/ 07:54
dalek p-rx: bbbca64 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Refactor named assertions slightly for better argument handling later.
07:56
p-rx: 2b0f1ad | pmichaud++ | (3 files):
More updates to P6Grammar bootstrapping.

for its own grammar definition (in src/Regex/P6Grammar/Grammar.pm). Still need a metachar:<{*}> action method to produce action methods. :-)
moritz_ pmichaud++ 07:58
08:01 mariuz joined 08:05 iblechbot joined 08:18 ejs joined 08:25 KatrinaTheLamia joined 08:42 ihrd joined
flip214 rakudo: say ((5/6) + (612/742)).perl 08:43
p6eval rakudo 3eceb8: OUTPUT«3691/2226␤»
flip214 rakudo: say ((5/6) + (612512351/7422)).perl
p6eval rakudo 3eceb8: OUTPUT«too many arguments passed (3) - 1 param expected␤in Main (file src/gen_setting.pm, line 206)␤»
flip214 help, please?
moritz_ that's an integer overflow internally
flip214 bad error message, I think 08:44
moritz_ you can convert to Num and calculate with that approximately
yes
there's already a bug ticket for taht
flip214 although Larry said at YAPC that he wants better messages
ok, fine
thanks
But I'm on a 64bit machine ... shouldn't that use at least 64bit? And S02 says "arbitrary precision", IIRC
So that's more an implementation bug? 08:45
moritz_ yes, it's a bug
it's supposed to work with bigints
flip214 moritz_: you can restart the bots?
moritz_ flip214: which bots?
flip214 just asking because I'd like to test something
rakudo
moritz_ rakudo: say "I'm here, what's up?" 08:46
p6eval rakudo 3eceb8: OUTPUT«I'm here, what's up?␤»
flip214 rakudo: my $b='rakudo: my $b=%c%s%c;say sprintf $b,39,$b,39;';say sprintf $b,39,$b,39;
p6eval rakudo 3eceb8: OUTPUT«rakudo: my $b='rakudo: my $b=%c%s%c;say sprintf $b,39,$b,39;';say sprintf $b,39,$b,39;␤»
moritz_ heh :-)
flip214 hmmm, sadly the "rakudo xxxx" part messes up.
sorry.
moritz_ that's intentional
flip214 had to try
moritz_ :-)
I took care that all but output starts with something that the user can't control 08:47
in order not to control other bots, or itself
flip214 hmmmm ... I'll think of something
where are the sources of the bot? 08:48
moritz_ in the pugs repo in misc/evalbot/
rakudo: multi a ($x where 1 where *) { 1 }; say a(1) 08:50
p6eval rakudo 3eceb8: OUTPUT«1␤»
moritz_ rakudo: multi a ($x where 1 where *) { 1 }; multi a($x where 1) { 2 }; say a(1)
p6eval rakudo 3eceb8: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:(Any $x where all({ ... }, { ... }))␤:(Any $x where { ... })␤in Main (file src/gen_setting.pm, line 206)␤» 08:51
flip214 morith: thanks 08:52
09:01 dakkar joined 09:08 pmurias joined
JimmyZ rakudo: sub postfix:<!>($n) { [*] 1..$n }; 10!.say; 09:23
p6eval rakudo 3eceb8: OUTPUT«Confused at line 2, near ".say;"␤in Main (file <unknown>, line <unknown>)␤»
JimmyZ rakudo: sub postfix:<!>($n) { [*] 1..$n }; (10!).say;
p6eval rakudo 3eceb8: OUTPUT«3628800␤»
bpetering pmichaud++ # refactors 09:25
dalek ok: 97b41dc | moritz++ | src/multi-dispatch.pod:
[MMD] headings, narrowness
09:26
bpetering moritz++ 09:27
09:28 ihrd left, donaldh joined 09:30 mariuz joined
dalek p-rx: 468b4eb | pmichaud++ | src/ (3 files):
Add keyed reductions / action triggers.
09:40
p-rx: 0c574ea | pmichaud++ | src/ (2 files):
Determine regex name to be used for action methods.
p-rx: 672674d | pmichaud++ | src/Regex/P6Grammar/ (2 files):
Update P6Grammar to attach names to regexes, set modifiers for
09:41 masak joined
masak good mid-day, #perl6. 09:41
09:44 payload1 joined
jnthn oh morning 09:52
masak :)
I had a fun debugging session last night. 09:53
I should write a whole blog post about debugging in Rakudo.
I have at least two solid techniques that I use nowadays.
jnthn Nice.
I spent last night doing the things I should have done in the day when I was doing Rakudo things...
masak :) 09:54
the debugging session ended in a very clear conclusion: I can't spell, and Rakudo punishes me mightily for it.
so the lexicals model is safe, for now. 09:55
jnthn Well, punishment is a method of teaching, no? ;-) 09:56
masak I feel thoroughly taught.
it's definitely a lesson in humility. in less than one second, I go from "hah, wait until I catch this bug!" to "oh, ouch. it says Foo.Blahr.new()?!" 09:57
jnthn masak: I hope it didn't actually say that, or I'll go fetch my +2 multi-headed whip of variable name choice learning. 09:58
;-)
masak no, I'm anonymizing. :)
jnthn oh phew
masak it's a habit I picked up from working with November.
09:59 mwm joined
jnthn needs to make time to follow the roles discussion on p6l 10:01
It's actually looks like a worthwhile thread to follow.
masak nod. 10:05
sjohnson bed :) 10:08
10:08 eMaX joined
jnthn only got out of that recently... 10:09
My sleep times are kinda fail, but I don't see much need to fix 'em.
sjohnson same
it's 3am here
and i have to call in sick to work tomorrow
ugh
just cause i got into an argument over irc yet again 10:10
... end of rant
masak same here.
but I'm at work, as usual.
I only work half-time, so when I wake late, I work afternoons.
10:12 integral left
sjohnson yeah 10:13
sjohnson pat pats masak
masak purrs
sjohnson :) 10:14
there might be some Perl6 chocolate around here that Su-Shee offered
sjohnson scrounges the carpet like a crack victim
masak oh wow! I see I need to backlog :)
10:18 ShekarKCB joined
masak (now calendar look on irclog.perlgeek.de)++ 10:18
I -think- it's better. the previous one had slightly better contrast, but this has less clutter.
10:19 lumi joined
masak /usr/local/bin/parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir 10:26
Null PMC access in find_method()
jnthn ouch. 10:27
jnthn looks innocently at masak
"But I didn't push to master for days!"
masak heh.
it worked when I pulled yesterday.
mathw It wasn't me, I don't have a rakudo commit bit 10:28
And all I did yesterday was de-bitrot Form.pm
masak mathw++ 10:29
jnthn masak: realclean help at all?
masak trying now.
no, didn't work. 10:30
jnthn meh, fail
Do you have the version of Parrot matching the requested on in PARROT_REVISION? 10:31
masak no.
jnthn That may well be your problem. ;-) 10:32
masak aye.
10:39 JimmyZ joined
masak I downdated Parrot and rebuilt everything. still getting the Null PMC access. 10:46
moritz_ rm -rf parrot_install; make realclean; perl Configure --gen-parrot 10:47
masak I'm running Rakudo-in-Parrot, so the first step does not apply. 10:48
but apart from that, that's what I just did.
oh, and minus the --gen-parrot
moritz_ anyway, you should clear the location to which you intalled parrot 10:52
masak bpetering++ # lingo mismatch solution suggestion 10:54
bpetering: long time no see, by the way. haven't talked since we collaborated wonderfully on Text::CVS together, and you promised 'something really cool'... 10:56
mathw Wow
Link::C is impressive
masak quietfanatic++ 10:57
jnthn masak: About BPW, do you know what dates you'll be around there? 11:00
mathw another perl workshop?
masak jnthn: haven't planned that far yet. open for suggestions.
lunch &
jnthn masak: I can fly there Friday afternoon, back on Monday mid day. 11:01
For decent-ish prices.
mathw: Baltic...
It's in Latvia. 11:02
So er, how to put this nicely...it might be quite cheap for hotel/beer given the current economic conditions there.
mathw ahah 11:05
Su-Shee jnthn: "the currency is very favorable these days.."
mathw latvia here has a reputation for being cheap and good for going to for raucous stag nights
but that basically sums up the english pubgoer's attitude to all of that part of europe 11:06
Su-Shee oh yes. we have one or two of those in berlin "sometimes". ;)
jnthn Meh. I hate discovering Brit stag parties. 11:07
mathw Me too
jnthn Those are the times when I normally deny being British.
mathw Nottingham also has a reputation as a good place for stag parties
And hen nights
They're infuriating
Although at the moment it's all the new students at the universities who are busily drinking every drop of alcohol they didn't drink in their first 18 years 11:08
Su-Shee luckily, tourists go in one place and all others somewhere else. ;)
moritz_ rakudo: multi a($, $?) { 1}; multi b($, $) { 2 }; say a(1), a(1, 1)
mathw making the can-buy-alcohol age the same as the go-to-university age may not be a good idea...
p6eval rakudo 3eceb8: OUTPUT«11␤»
jnthn It's fine to go out for some drinks when abroad...but pissing on national monuments is rather less so.
mathw because suddenly they can buy it, and then they move away from their parents
and lo! Drinking ensues
jnthn: I agree with you entirely.
jnthn Sadly, such incidents have happened enough here that a lot of locals have quite negative attitude now towards foreigners. :-( 11:09
Su-Shee isn't university where binge drinking has already stopped?
mathw But then, I tend to avoid countries where I don't speak the native language because I feel too embarrassed to try and find someone who speaks English
Su-Shee: no
moritz_ so binding to an optional parameter is just as narrow as a required one?
mathw For a lot of people it starts at sixth form and continues until they get run over by an ambulance
moritz_ *as to a*
(sorry for the off-topic question :) 11:10
jnthn moritz_: The way optionals influence narrowness is kinda...interesting.
moritz_ jnthn: do tell
11:10 NorwayGeek joined
jnthn moritz_: I'd love to, but I think the spec isn't so clear on it, and the code that takes care of that is decidedly hairy. 11:10
Su-Shee mathw: uhm.. you travel only to english spoken countries? :)
jnthn moritz_: ihrd++ has brought this up a bit, and I've discussed it some with him. 11:11
mathw Su-Shee: Most of the time I stay in the UK, there's still a great deal to explore here. But I go to Germany happily, because I speak enough German to deal with all the likely situations.
jnthn moritz_: But we're kinda lacking an easily explainable set of rules for arity based multi-dispatch in regards to optionals and slurpies.
moritz_: In general, more positionals is narrower than less positionals and a slurpy. 11:12
At one time we had it so that optionals didn't count into the type sorting.
Now we essentially take min($a.count, $b.count) 11:13
To decide how many parameters to consider in the type sort.
moritz_: So that's about the current state. I'm far from attached to it though.
moritz_ I think I leave out that part for now :-) 11:14
jnthn Who'd of thought that arity based multi-dispatch would end up more complex than type-based... :-)
moritz_ jnthn: anyway, thanks for the explanation
mathw It wouldn't be if we didn't have optional parameters
But they make arities... uncertain
jnthn mathw: aye 11:15
well, it's two things. It's the fact that arity is non-trivial, but also how those things interact with the type based narrowness analysis.
mathw yes, not only do you have a complicated set of rules, they have to interact with a different set of complicated rules 11:16
jnthn Well, the type rules are dead easy for the most part.
mathw who came up with this multiple dispatch idea anyway
jnthn "Well it blend^Wsmart-match?"
mathw it's far too much effort
let's drop it
jnthn Yeah, let's rip it out of the spec!
:-P
mathw :) 11:17
moritz_ and the presence of a required named parameter is counted like a constraint, right? 11:19
jnthn moritz_: ye 11:21
s 11:22
moritz_: that causes a full bindability check.
Just as constraints do.
Like constraints, they also do not contribute to type narrowness considerations, other than by their existence.
:(Int $x) is wider than :(Int $x, :$beer!) 11:23
However, if you had three sigs, like
:(Int $x), :(Int $x, Any :$beer!), :(Int $x, Weiss :$beer!) 11:24
Then the last two would be equally narrow.
And whichever one matched first would be teh winner
moritz_ that's how I understood it, yes
wait...
jnthn OK, good. :-)
aww, damm :-)
moritz_ no ambiguous dispatch if both match?
jnthn Not any more. 11:25
moritz_ ok
jnthn The spec changed on that.
I'm not sure it's a change I agree with, but it changed.
mathw But... Weiss is narrower than Any
moritz_ mathw: but it's just a name :-)
mathw Then isn't Int just a name? 11:26
jnthn mathw: It's tastier too, but that doesn't affect the type ordering.
mathw Umm
moritz_ mathw: that's the difference between positional and named
jnthn mathw: Only the types of positionals are involved in type ordering.
mathw I'm missing something
And I think it might be the idea that I might want to use named parameters 11:27
I guess most multidispatch is going to happen on compulsory parameters
And most nameds are optional
moritz_ aye
11:27 zamolxes joined
mathw But it still seems odd 11:27
that the Any might match instead of the Weiss when you give it something which ~~ Weiss 11:28
moritz_ I think the dispatcher is sufficiently non-trivial already 11:29
mathw I'm not saying it's easy
But it is going to bite people 11:30
moritz_ aye
jnthn That, and other reasons, are why I think it's wrong that the spec changed to "pick the first one". 11:31
mathw because 'what's "first"' 11:32
it's effectively ambiguous
jnthn The other big problem is that "first one" is kinda hard to keep in your head when you're doing a "use" and importing stuff.
mathw as far as most programmers are concerned, which one they get is a matter of pot luck (and possibly the order of their use statements)
jnthn He wants to go sightseeing, but the weather is crap.
oh, wrong window
mathw I was about to try and interpret that as an astonishingly wise metaphor 11:33
jnthn mathw: yes, my leaning too :-)
lol!
No, I'm not TimToady. :-)
11:33 jan_ joined, egypt joined
mathw no 11:36
you're jnthn
two TimToadys would be an extravagance
We'd have to lend one to another language
11:39 michaelr joined 11:40 solarion joined, tylerni7 joined, buubot joined, cxreg joined, solarion joined, allbery_b joined, michaelr_ joined, solarion_ joined
jnthn I'd love to hear the two TimToadys debate the merits of their relative languages. :-) 11:40
11:41 cxreg joined
masak jnthn: they wouldn't debate. they would just trump each other's witticisms. :) 11:41
oh, and Joyous Diwali, people. 11:43
11:43 zloyrusskiy joined
takadonet morning all 12:02
masak o/ 12:03
12:08 envi^home joined 12:10 jnthn joined, barney joined, jaldhar_ joined, xinming joined, BinGOs joined, zerhash joined, rgrau joined, p6eval joined, PacoLinux joined, alester joined, drbean joined, slavik joined, colomon joined, carlin joined, shachaf joined, sjohnson joined, Grrrr joined, nsh joined, cosimo joined 12:35 meppl joined
takadonet how do you create a directory in perl6? 12:39
masak mkdir
takadonet thanks masak 12:40
masak bows
colomon is that implemented already?
masak in Rakudo?
moritz_ rakudo: mkdir '/tmp/blah/'
p6eval rakudo 3eceb8: OUTPUT«Could not find non-existent sub mkdir␤in Main (file src/gen_setting.pm, line 206)␤»
takadonet hmmmm 12:41
masak it isn't.
takadonet so currently there is no way to create a directory in rakudo then?
moritz_ there's run() 12:42
rakudo: run('mkdir', '/tmp/foo')
p6eval rakudo 3eceb8: OUTPUT«operation not permitted in safe mode␤in Main (file /home/p6eval//p2/lib/parrot/1.6.0-devel/languages/perl6/lib/Safe.pm, line 24)␤»
takadonet thanks 12:43
masak rakudo: sub foo() { our $already_called and die "Already called"; $already_called = 1; say "OH HAI" }; foo; foo 12:44
p6eval rakudo 3eceb8: OUTPUT«OH HAI␤Already called␤in sub foo (file /tmp/oxEof9vGMi, line 1)␤called from Main (file /tmp/oxEof9vGMi, line 0)␤»
masak rakudo: sub foo() { state $already_called++ and die "Already called"; say "OH HAI" }; foo; foo
p6eval rakudo 3eceb8: OUTPUT«OH HAI␤Already called␤in sub foo (file /tmp/5AZCNJORgm, line 1)␤called from Main (file /tmp/5AZCNJORgm, line 0)␤»
masak quietfanatic: I think using 'state' is more idiomatic. at least if you don't plan to use $already_called outside of the routine. 12:45
bpetering_ masak: stuff for you soon 12:51
masak bpetering_: oh yay! I thought you had forgotten, been kidnapped, or both. :) 12:52
bpetering_ forgotten? how could i forgot you and all the wonderful people here? ;)
masak I even toyed with the idea to write a blog post about our successful collaboration and your subsequent mysterious disappearance. 12:53
12:53 NorwayGeek joined
masak but now I'd much prefer to wait a bit and see how the story continues. :) 12:53
bpetering_ gah, ppl asleep, etc etc :)
masak bah, rules.
moritz_ contributors beware - you might get kidnapped by an evil, secret PHP deployment organization 12:54
bpetering_ moritz_: s/PHP/ASP/ and you'd be close
moritz_ bpetering_: ok :-)
anything with a trailing capital P :-)
bpetering_ so, masak: you've been ridiculously patient. thank you :) 12:59
masak no problem. this world runs on voluntary contributions, after all. 13:03
13:04 payload joined
bpetering_ *right* now i need to not fail a course for uni, and complete an evil .*P project, but after that: csv goodness 13:04
masak good luck on the former two. 13:05
moritz_: what do you have against LISP? 13:06
moritz_ good luck with all three :-)
masak: lc
masak moritz_: opinions differ on that.
moritz_ :-)
bpetering_ sides with moritz_
masak very well. what do you have against ROOP? 13:07
masak is going through en.wikipedia.org/wiki/List_of_progr..._languages
bpetering_ masak is way below the obscurity threshold 13:08
masak ROOP sounds cool. "ROOP is a multiparadigm programming language targeted at AI applications created at the Chengdu University of China. It combines rule-based, procedural, logical and object-oriented programming techniques."
the application domain is ridiculously narrow, though. most AI applications were not created at the Chengdu University of China.
:P
bpetering_ moritz_: thank you 13:09
masak: stop goofing off plz! before i beat you with the back-on-topic stick! ;) 13:10
masak laughs and climbs the drapes
bpetering_ you're lucky i've finished my cocoa!
moritz_ bpetering_: that's masakbot in safe mode. You don't even want to imagine him in safe mode switched off 13:11
masak me neither.
bpetering_ does safe mode involve caffeine deprivation?
moritz_ it mostly involves not throwing around rude Swedish words 13:12
masak moritz_: mind you, those first ones aren't rude in Swedish, and the second one is only a word in the sense that it's a compound of two existing words, one of them rude. 13:13
bpetering_ off to fetch said stick
moritz_ masak: so you say
masak bpetering_: you'll have to catch me first. I'm now halfway to the ceiling, and it's a high ceiling. 13:14
bpetering_ shakes the drapes
moritz_ fires off a well-aimed body binding curse at masak 13:15
bpetering_ haha
masak becomes stiff, and gets caught in the drapes, unable to move
moritz_ now let's just set the drapes on fire... :-) 13:16
bpetering_ we have discovered a new mode for masakbot
masak hey, friends.
suddenly this doesn't feel like such a good idea after all.
let's negotiate, shall we?
moritz_ sure
mathw Vanishes the drapes 13:17
masak falls
moritz_ you find some bug, I write some more book stuff
moritz_ applies the "feather light fall" spell
masak oof.
too little, too late.
bpetering_ moritz speaks softly...
masak lucky someone put that sacco bag there.
bpetering_ masak: i still have the big stick.
masak bpetering_: I'm on topic! we're talking about bugs, and the Perl 6 book, and... stuff. 13:18
mathw book book book
masak bugs bugs bugs
bpetering_ svedish chef chef chef?
mathw I said book, not bork 13:19
masak
.oO( mmm... chocolate Moose )
mathw life size?
moritz_ post modern meta-chocolate system?
masak I never meta chocolate I didn't like. 13:20
moritz_ did
masak tried the ginger variety, did you?
bpetering_ moritz_: was it number 214 or so?
moritz_ bpetering_: my chocolates aren't numbered :)
mathw I did 13:21
bpetering_ indeed, better if you don't keep track :)
mathw it had coconut in it
moritz_ but >80% cocoa just doesn't take like chocolate anymore
mathw no it's something else
but it's still nice
particularly if you mix it with other things
more of an ingredient, really
moritz_ s/take/taste/
masak I don't care if my testing framework gets stuck in an infinite loop, because sooner or later Parrot dies anyway. ;P 13:23
mathw umm
with an attitude like that, you could work here! 13:24
bpetering_ haha
masak :)
13:25 schaf joined
bpetering_ well, friends... 13:25
TTFN
evil chocolate^W ASP jobs with which to content :) 13:26
err, contend.
moritz_ have the appropriate amount of fun :-)
bpetering_ "With Perl 6 we shall be content." 13:27
</yeahright>
moritz_: even if that's negatively numbered? 13:28
masak "I'd rather cry in a Rakudo than laugh in PHP."
bpetering_ "I'd rather cry at (the comparitive beauty of) Rakudo than laugh at PHP" 13:31
On that note: Create Beauty. 13:32
Good night.
masak we will. g'night. 13:33
bpetering_ ninight masakbot
masak bots happily
bpetering_ night moritz, plz keep your curse gun aimed at masak :)
night mathw 13:34
moritz_ it's 3:30pm here, no chance of sleeping any time soon :-)
krunen rakudo: Q:PIR{%r=new'OS'}.mkdir("/tmp",1) 13:38
p6eval rakudo 3eceb8: OUTPUT«File exists␤in Main (file src/gen_setting.pm, line 206)␤»
krunen hmm... that form of mkdir worked! shouldn't Q:PIR be stopped in the eval bot? 13:41
masak conceivably.
moritz_ krunen: if you tell me how... gladly :-)
also eval(..., :lang<perl5>) is a considerable security risk 13:42
(and the reason p6eval was unavailable for a few hours yesterday)
krunen moritz_: ok :/
13:44 Nasser joined
krunen Anyway, that's a _slightly_ better mkdir than using run... 13:45
moritz_ krunen: you could turn that into a patch that adds it to the setting... 13:46
krunen: then anbody could use it
13:46 Nasser left
colomon ooo, Parrot has mkdir already? 13:49
13:49 SmokeMachine joined
colomon if so, adding mkdir to the setting would rock. 13:49
krunen moritz_: Good idea, I'll look at the specs and see if I can find a _right_ way :)
mathw Parrot's got a lot of stuff 13:50
I implemented getting mtime
but then I stalled on trying to figure out where to put it
so I've got it stashed away in my local rakudo
13:51 KyleHa joined
colomon Are there spectests for mkdir? 13:56
moritz_ ack will tell you
colomon was already typing that in another window.
no.
Tene moritz_: what was the HUGE JUMP in the rakudo spectests recently? 13:57
colomon trig tests, mostly, Tene.
moritz_ colomon++, mostly :-)
Tene Ah. 13:58
takadonet indeed colomon++ 13:59
colomon blushes.
moritz_ hugme: hug colomon 14:00
hugme hugs colomon
masak colomon++ 14:01
14:01 zloyrusskiy joined
moritz_ @karma colomon 14:01
lambdabot colomon has a karma of 28
colomon woah, when did that happen? last time I checked I had a karma of 0...
krunen S32/IO seems to say that something like p{/path}.create is the new mkdir 14:02
moritz_ urm
I'd ignore that and implement mkdir as a normal function :-) 14:03
masak me too.
S32/IO is so full of it sometimes...
moritz_ colomon: well, you comitted to pugs and rakudo - that gives karma
krunen yeah :/
takadonet @karma takadonet
lambdabot You have a karma of 0
takadonet hehe
masak takadonet++ # welcome! 14:04
moritz_ takadonet: you ned to send more patches
colomon moritz_: Yeah, but last time I checked I'd been committing to pugs and rakudo for about a month. :)
takadonet @karma takadonet
lambdabot You have a karma of 1
takadonet !!!
masak hugme: hug takadonet
hugme hugs takadonet
colomon Also, I think my rakudo commits are giving karma to "Solomon Foster"
moritz_ @karma Foster
lambdabot Foster has a karma of 0
moritz_ @karma Foster)
lambdabot Foster) has a karma of 14
moritz_ there you go :/
masak :)
colomon \\o/
takadonet moritz_ : I know, been busy working on bioperl stuff 14:05
moritz_ Infinoid: it seems dalek considers only parrot's CREDIT file for nick translation - could you also add rakudo's CREDITS file?
14:08 kst joined 14:09 rfordinal left 14:10 Psyche^ joined 14:12 pmurias joined
dalek kudo: d5a2ee9 | moritz++ | CREDITS:
restore alphabetical order in CREDITS
14:13
14:14 kidd` joined 14:15 xenoterracide joined 14:18 xenoterracide joined 14:19 schmalbe joined 14:20 xenoterracide joined 14:23 zloyrusskiy joined
pugs_svn r28795 | jimmy++ | [zh-cn/syn/S02-bits.pod] added a bit more translations. 14:28
jnthn back 14:29
@karma Fosters
lambdabot Fosters has a karma of 0
jnthn Fosters-- # meh, they call it beer, but really it's flavored water with a tiny bit of alcohol 14:30
mathw It's amusingly marketed 14:35
14:35 justatheory joined
mathw In the UK, it's promoted as being Australian, and therefore apparently inherently good 14:35
Due to the idea that Australians do nothing but sit around on the beach, have barbecues and drink beer
and then it says in the corner
'Brewed in the UK'
jnthn Well, I know that at least a couple of Australians show up here, and it seems they make breaks from those activities to write Perl 6. :-) 14:36
mathw yes, it's total nonsense
it's also advertised with things like 'you wouldn't want a warm beer, would you?' 14:37
jnthn Maybe that's why so many Britts choose to emmigrate there...thinking the life really is all that. :-)
Well no, I wouldn't...good job pubs tend to serve beers cold.
mathw no I think they just do it because the prime minister of australia isn't as ugly as ours
Of course, the problem it has appealing to me is that all the adverts start on the assumption that I might want some beer 14:38
jnthn Natural beauty of leader doesn't always imply country in awesome state.
;-)
Otherwise Ukraine would be the most awesome country in the whole world. :-)
moritz_ sadly absence of natural beauty doesn't imply it either (see: Germany)
mathw :)
see: the UK
various parts of the UK are completely mad, but I'm not planning on going anywhere 14:39
I firmly believe nowhere else is likely to be any better in the long term
jnthn I think it's mostly trade-offs.
I didn't move to Slovakia because everything about it is better than in the UK. 14:40
I just fancied a change, a new language...and trains that weren't late. :-)
14:42 Limbic_Region joined, JimmyZ joined, Exodist joined 14:44 nihiliad joined
Su-Shee I like to work in Istanbul for a time. 14:47
pmichaud good morning, #perl6 14:52
moritz_ pmich\\o/ or so :-) 14:53
jnthn oh hai pmichaud 14:54
jnthn is having unproductive day
masak pmichaud: oh hai 14:55
JimmyZ oh, good evening, #per6 ;)
jnthn (planned unproductive...got visitor from Russia, plus Slovak class, plus pm group and beer tonight)
pmichaud jnthn: no problem, my overnight was productive. I have P6grammar so that it can (almost) compile itself. 14:56
s/compile itself/compile its own parser/
jnthn pmichaud: Nice work!
:-)
Go parse yourself! 14:57
;-)
So next step is parse NQP?
masak parsi seauton.
pmichaud want to finish the bootstrap first -- next step is eliminate PGE from the process
jnthn aha, ok
masak \\o/
pmichaud++ 14:58
JimmyZ It's really nice work!
masak it is indeed. 14:59
15:03 kst joined
pugs_svn r28796 | kyle++ | [t/spec] A # in a test description fools the harness 15:04
15:06 lanny joined 15:07 NorwayGeek joined
lanny rakudo: my $x=[1,2,3]; my @y = $x; @y.elems.say; 15:09
p6eval rakudo d5a2ee: OUTPUT«1␤»
lanny How would I flatten that array instead of assigning it as the first element?
Tene put a | in front of it.
pmichaud rakudo: my $x = [1,2,3]; my @y = @($x); @y.elems.say
p6eval rakudo d5a2ee: OUTPUT«3␤»
Tene that works too. 15:10
lanny Tene: my first guess but it didn't work.
pmichaud: thanks
pmichaud the | is for flattening in argument lists
moritz_ | in front is for interpolation into signatures
pmichaud I'm not sure it applies to bare terms
moritz_ erm, yes, argument lists, not signatures
Tene But this doesn't count. Okay.
rakudo: my $x=[1,2,3]; my @y = (|$x); @y.elems.say;
p6eval rakudo d5a2ee: OUTPUT«1␤»
15:11 hercynium joined
pmichaud can also use .list 15:11
rakudo: my $x = [1,2,3]; my @y = $x.list; @y.elems.say
p6eval rakudo d5a2ee: OUTPUT«3␤»
moritz_ or binding
rakudo: my $x = [1,2,3]; my @y := $x; say @y.elems
p6eval rakudo d5a2ee: OUTPUT«3␤»
moritz_ rakudo: my $x = [1,2,3]; my @y := $x; say @y.push: 4; say $x.elems 15:12
p6eval rakudo d5a2ee: OUTPUT«1234␤4␤»
moritz_ however binding keeps a relation between the variables
lanny Hmm. I had tried my @y = list $x; trying to put it in list context but of course it already was in list context. 15:13
rakudo: sub foo(@xs) { @xs.elems.say; }; my $x = [1,2,3]; foo($x); 15:16
p6eval rakudo d5a2ee: OUTPUT«3␤»
dalek ok: 7264634 | moritz++ | src/multi-dispatch.pod:
[MMD] Paper, Scissors, Stone
15:17
lanny moritz: so if I then call wins(Dog.new(), Dog.new()) I also get a draw? 15:19
moritz_ lanny: right
PerlJam lanny: and wins(Dog.new,Cat.new) means that the cat wins :) 15:21
lanny Would it without a definition that matched for the multi dispatch? 15:22
moritz_ first come, last serve
lanny (I'm looking at the code review)
moritz_ lanny: the (Any, Any) version matches any two object
(though written as ($, $) in the example)
lanny hmm. ah. The '$'s snuggled up against the ',' had me missing that 15:23
dalek p-rx: ec4637c | pmichaud++ | (6 files):
Change src/parrot/ to more correctly named src/cheats/ .
15:24
moritz_ lanny: I hope that in a rendered version it's not so easy to miss
lanny So you'd need something like: multi wins( Rock|Paper|Stone ::T $, T $) { 1 } to get around that?
moritz_ right 15:25
lanny ok
moritz_ std: multi wins( Rock|Paper|Stone ::T $, T $) { 1 }
p6eval std 28796: OUTPUT«[31m===[0mSORRY![31m===[0m␤Invalid typename Rock at /tmp/YZdQG15AtO line 1:␤------> [32mmulti wins( Rock[33m⏏[31m|Paper|Stone ::T $, T $) { 1 }[0m␤FAILED 00:02 111m␤»
moritz_ std: multi wins( Int|Num|Str ::T $, T $) { 1 }
p6eval std 28796: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature; couldn't find final ')' at /tmp/6s3nerMRGm line 1:␤------> [32mmulti wins( Int[33m⏏[31m|Num|Str ::T $, T $) { 1 }[0m␤ expecting any of:␤ constraint␤ param_sep␤ parameter␤ trait␤
..type_constraint␤ whitespace␤FAILED 00:0…
moritz_ lanny: I think junctive types aren't supported in Perl 6
PerlJam Hmm. should constraints on ::T work? 15:26
lanny Odd. I thought I saw something on those.
moritz_ but you can of course say subset MyGame of Any where { Rock|Paper|Scissors };
lanny: yes, but they were removed
lanny true
ah
moritz_ std: multi a(Int ::T $x) { }
p6eval std 28796: OUTPUT«ok 00:01 108m␤»
lanny My last really solid read of the specs was when I was working on pugs. :/ It's a lot like coming back to the town you grew up in and wondering what happened to the burger place and where that Walmart came from. 15:27
moritz_ from the US, probably :-)
lanny well, yeah. :)
std: subset MyGame of Any where { Rock|Paper|Scissors }; multi wins( MyGame ::T $, T $) { 1 }; 15:28
p6eval std 28796: OUTPUT«Undeclared names:␤ Paper used at line 1␤ Rock used at line 1␤ Scissors used at line 1␤ok 00:02 112m␤»
PerlJam std: multi foo(::T where { $_ ~~ Int } $x) { }
I was thinking something more like that.
p6eval std 28796: OUTPUT«ok 00:02 111m␤»
dalek ok: 12e0ec5 | moritz++ | src/multi-dispatch.pod:
[MMD] actually call multi wins()
lanny std: class Rock {}; class Paper {}; class Scissors {}; subset MyGame of Any where { Rock|Paper|Scissors }; multi wins( MyGame ::T $, T $) { 1 }; 15:29
p6eval std 28796: OUTPUT«ok 00:02 112m␤»
lanny So is it correct that arrays of item context expand to arrays of list context into subs but not by assignment? That seems unexpected. 15:33
moritz_ that's because argument passing is really a form of binding, not of assignment
lanny rakudo: sub foo(@xs, @ys) { @xs.elems.say; }; my $x = [1,2,3]; my @y = [4,5,6]; foo($x, @y); 15:34
p6eval rakudo d5a2ee: OUTPUT«3␤»
lanny Ah. That makes sense.
rakudo: sub foo(@xs, @ys) { @xs.elems.say; }; my $x = [1,2,3]; my @y = [4,5,6]; foo(($x,), @y);
And easy enough to work around.
p6eval rakudo d5a2ee: OUTPUT«1␤»
lanny rakudo: sub foo(@xs is copy, @ys) { @xs.elems.say; }; my $x = [1,2,3]; my @y = [4,5,6]; foo($x, @y); 15:35
p6eval rakudo d5a2ee: OUTPUT«3␤» 15:36
masak rakudo: class Scissors {}; class Paper {}; multi wins(Scissors $, Paper $) {}; multi wins($, $) {}; wins(Scissors, Paper) 15:40
p6eval rakudo d5a2ee: OUTPUT«Parameter type check failed; expected Scissors, but got Paper for $ in call to wins␤in sub wins (file <unknown>, line <unknown>)␤called from Main (file /tmp/xFj0WmgXLS, line 0)␤»
masak rakudo: class Scissors {}; class Paper {}; multi wins(Scissors $a, Paper $a) {}; multi wins($, $) {}; wins(Scissors, Paper)
p6eval rakudo d5a2ee: OUTPUT«Parameter type check failed; expected Scissors, but got Paper for $a in call to wins␤in sub wins (file <unknown>, line <unknown>)␤called from Main (file /tmp/pcVjjJ7ARu, line 0)␤»
Infinoid moritz_: Not a bad idea. Please keep bugging me until I do it :) 15:41
15:41 p6eval joined
moritz_ Infinoid: feel bugged then :-) 15:41
15:44 infrared joined
masak swimming & 15:50
lanny std: class FCF {}; our Order multi sub cmp (Ordering $by = &infix:<cmp>, FCF $a, FCF $b) { 1 }; # from spec (optional pre positional) 15:56
p6eval std 28796: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put required parameter after optional parameters at /tmp/otb4hBq7Sw line 1:␤------> [32mcmp (Ordering $by = &infix:<cmp>, FCF $a[33m⏏[31m, FCF $b) { 1 }; # from spec (optional p[0m␤ expecting any of:␤ constraint␤ parameter␤
..trait␤ whitesp…
lanny std: class FCF {}; our Order multi sub cmp (FCF $a, FCF $b, Ordering $by = &infix:<cmp>) { 1 }; # broked
p6eval std 28796: OUTPUT«ok 00:03 135m␤»
lanny ooh. or not. self-face 15:57
rakudo: class FCF {}; our Order multi sub cmp (FCF $a, FCF $b, Ordering $by = &infix:<cmp>) { 1 }; # broked
p6eval rakudo d5a2ee: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ", Ordering"␤in Main (file <unknown>, line <unknown>)␤»
dalek ok: d610b86 | moritz++ | src/multi-dispatch.pod:
[MMD] reference RT #69798
moritz_ it doesn't know about type Ordering, I suppose
rakudo: Ordering
p6eval rakudo d5a2ee: OUTPUT«Could not find non-existent sub Ordering␤in Main (file src/gen_setting.pm, line 206)␤»
15:58 meppl joined
moritz_ std: sub a(::T, T) { } 15:59
p6eval std 28796: OUTPUT«ok 00:02 107m␤»
moritz_ rakudo: sub a(::T, T) { }
p6eval rakudo d5a2ee: ( no output )
moritz_ rakudo: sub a(::T, T) { }; a(3, 5); say 'alive';
p6eval rakudo d5a2ee: OUTPUT«alive␤»
moritz_ rakudo: sub a(::T, T) { }; a(3, '5'); say 'alive'; 16:00
p6eval rakudo d5a2ee: OUTPUT«Parameter type check failed; expected Object, but got Str for ::TYPE_CAPTURE19 in call to a␤in sub a (file <unknown>, line <unknown>)␤called from Main (file /tmp/ccqXoeu2wr, line 0)␤»
moritz_ that's LTA
rakudo: sub a(::T $x, T $y) { }; a(3, '5'); say 'alive';
p6eval rakudo d5a2ee: OUTPUT«Parameter type check failed; expected Any, but got Str for $y in call to a␤in sub a (file <unknown>, line <unknown>)␤called from Main (file /tmp/IFpOuXzCso, line 0)␤»
lanny std: class A {}; multi sub cmp(A $a, A $b) of Order { Order::Same }; (A.new() cmp A.new()).say; 16:08
p6eval std 28796: OUTPUT«ok 00:02 114m␤»
lanny rakudo: class A {}; multi sub cmp(A $a, A $b) of Order { Order::Same }; (A.new() cmp A.new()).say;
p6eval rakudo d5a2ee: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file src/gen_setting.pm, line 206)␤»
lanny What does PP->I mean?
quietfanatic lanny: I believe that's a Parrot signature, that takes two PMCs and returns an Int. 16:11
lanny Thanks.
quietfanatic masak: yes state does make more sense. I guess I was still in p5 mode. 16:12
Oh deah. 16:14
I didn't check sample-libcrypt.pl for runningness
Woodi do tie is implemented in p6 now ? 16:18
lanny ugh. Just too many missing parts to do a continued fraction implementation.
Woodi many many ? 16:19
moritz_ there's no tie in Perl 6 16:22
Woodi so it will be module/package ? 16:24
moritz_ there'll probably be container types 16:25
16:27 Confield joined
Woodi k, will read about. thank you 16:27
moritz_ if you find any good documentation, please let me know
pmichaud look for Tieable, STORE, and FETCH
that part of the spec is still a little fuzzy, though. 16:28
quietfanatic Container types will be necessary to write assignment-style mutator methods like $obj.attr = 4 16:30
moritz_ interesting... in the resig branch RT #69798 is fixed, but it gives a wrong answer for a different example 16:32
Woodi thanx pmichaud 16:35
Woodi decided to writr dictionary/jargon file for p6. just for education :) 16:37
vivifications, postcircomfixes, junctions....
moritz_ Woodi: see docs/BootstrappingContributors.pod and docs/IRCchannelLexicon.pod in the pugs repo for a start 16:38
Woodi oops :)
moritz_ well, it's only a start, and needs your contribution rather badly
Woodi let me learn something first pls... 16:39
moritz_ Woodi: you can also write a list of terms you'd like explained in that file, and maybe somebody will do add these terms 16:40
Woodi k, I will look into pugs 16:41
dalek p-rx: fbb15ef | pmichaud++ | src/Regex/Cursor.pir:
Add lang argument to Cursor.!cursor_start.
16:43
p-rx: fb80e2d | pmichaud++ | src/Regex/P6Grammar (2 files):
[p6grammar]: Action methods to automatically create grammar object.
p-rx: 8cd492a | pmichaud++ | src/Regex/P6Grammar/Actions.pm:
[p6grammar]: Add ability to declare a parent grammar.
pugs_svn r28797 | moritz++ | [docs] SVN props, line endings 16:46
16:47 cdarroch joined, stephenlb joined 16:49 justatheory joined 17:11 kst joined
pugs_svn r28798 | moritz++ | [t/spec] tests for RT #69798 17:20
17:22 NorwayGeek joined 17:23 pmurias joined
pugs_svn r28799 | colomon++ | [spec/t] Add tests for overloaded operators and = forms. 17:26
17:35 am0c joined
dalek p-rx: 07b5fef | pmichaud++ | src/Regex/P6 (2 files):
Add node (line+file) annotations to P6Regex generation.
17:41
17:50 NorwayGeek joined 18:00 Bucciarati joined 18:06 kst joined 18:07 rfordinal joined 18:15 hercynium joined 18:54 synth joined, Jedai joined 19:03 kst joined 19:05 ShaneC joined 19:08 desertm4x joined
dalek p-rx: 40101f8 | pmichaud++ | src/PAST/Compiler-Regex.pir:
Optimize quantification of common character classes like \\s, \\d, \\w, etc.
19:13
19:31 eMaX joined 19:48 lichtkind joined 19:51 zamolxes joined 19:58 SmokeMachine joined 20:05 nihiliad joined 20:09 Limbic_Region joined
lichtkind the rss feed of rakudo.org seems broken 20:10
moritz_ it is 20:12
20:16 Su-Shee left 20:25 linguini joined 20:45 mspaulding joined 20:53 kst joined 20:56 zloyrusskiy joined
pmichaud I'm thinking of using ¶ in NQP as a metachar to indicate PIR opcodes 20:57
i.e.
my $i := ¶index "abcd", $x
PerlJam pmichaud: how do you type that? :)
pmichaud on my keyboard, it's right-alt+P-P
er
right-alt+P+P
in vi, it's ctrl-k+P+I 20:58
PerlJam wonders if he's going to have to learn how to conifgure his keys so that he can do that in padre.
pmichaud well, I'm open for other suggestions.
It needs to be something that isn't likely to conflict with Perl 6. 20:59
moritz_ ¥
don't know if that's easier to type, though ;-)
PerlJam It fine by me, I just want to be able to type it :)
s/It/It's/
moritz_ compose = Y
pmichaud well, perhaps I should just go with "PIR_*" 21:00
as in PIR_index
moritz_ that might be easier for the Unicode challenged
PerlJam but that's 5 keystrokes.
moritz_ BTW I CAN HAZ BLOGGED: perlgeek.de/blog-en/perl-6/an-entry...omers.html
pmichaud I'm not worried too much about keystrokes or challenge to type. Its use should be rare. 21:01
I'm more interested in making sure that it remains valid Perl 6 syntax.
so the PIR_ form seems to like that
or perhaps I just grab a valid Unicode letter
moritz_ if you use a word characters it's a valid identifier 21:02
pmichaud right 21:03
thus "valid Unicode letter" :-)
maybe thorn ? 21:04
moritz_ I was about to suggest that
it looks a bit like a P
Tene pmichaud: I like ¶
PerlJam I think I preferred ¶
pmichaud yes, but then it's not a valid identifier :-| 21:05
moritz_ but sufficiently distinct
and it's Latin-1
21:06 rfordinal left
pmichaud thorn is latin-1 also :) 21:06
21:06 nihiliad joined
pmichaud my $i := þindex "abcd", $x 21:06
moritz_ I was talking about thorn ;-) 21:07
PerlJam How do you pronounce "þindex"?
moritz_ PIR index
Tene PerlJam: "thindex" of course 21:08
PerlJam Tene: clearly you and I think alike :)
pmichaud my $i := Þindex "abcd", $x # capital thorn
Tene ITYM þink alike
pmichaud oh, another possibility might be to create a pseudo-namespace 21:09
PerlJam heh
pmichaud my $i := PIR::index "abcd", $x
PerlJam pmichaud: that's the one I'd go with!
moritz_ +1
PerlJam (If I had thought of it)
Tene pmichaud: what was wrong with pir: ?
pmichaud it ends up conflicting with Perl 6 syntactic categories such as infix:, circumfix:, etc. 21:10
moritz_ std: pir:index 3, 5
p6eval std 28799: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/yqLD0FgDvM line 1:␤------> [32mpir:index [33m⏏[31m3, 5[0m␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤Undeclared routine:␤ pir used at line
..1␤FAILED 00:01 …
Tene ah, I think I get it.
pmichaud for the price of an extra colon, we get something that parses as very straightforward Perl 6.
Tene can it be pir:: instead? 21:11
pmichaud I'd be fine with pir::, but I kind of like the analogue to Q:PIR (uppercased PIR)
moritz_ I think capitcal PIR:: would be consistent with Q:PIR
pmichaud in some sense I want it to stand out as being "whoa! this isn't really Perl 6 here!"
PerlJam Perl has a history of grabbing ALLCAPS things for itself
Tene Sure, okay. I can live with that.
pmichaud that's why I went with Q:PIR instead of Q:pir, also 21:12
uppercase meaning the compiler is doing something a bit special there.
21:12 quietfanatic joined
Tene hi quietfanatic 21:12
pmichaud PIR:: it is, thanks everyone for suggestions.
I'm much happier with that choice than anything else I've managed to come up with. 21:13
quietfanatic hi Tene
21:13 patrickas joined
patrickas hello, i just checked rakudo.de and there is a HUGE upward spike in the specktest progress! Is that a glitch in the stats ? or did somethign huge happen ? 21:14
pmichaud lots of trig spectests were added
I need to write a blog post. Maybe I'll steal some time away from nqp-rx this evening and write that 21:15
patrickas Oh ok .. so no new features ... just new test :-) 21:16
pmichaud some new features, but mostly new tests
patrickas Cause I did not see any blog posts / info about it on the planet(s) so I was surprized! 21:17
anyways, thank pmichaud and keep up the great work.
Tene Why are there SO MANY trig tests, btw?
PerlJam Tene: trig is *hard* ;)
pmichaud I think they're mostly generated tests
so they test every trig function against all of the different types (int/num/rat/complex) and with variations on calling arguments 21:18
Tene Okay, sounds reasonable.
moritz_ because it's a lot of functions with a lot of inverse functions and a lot of ways to call it with a lot of types
pmichaud but that's a guess, I haven't looked at the tests themselves.
PerlJam idly wonders about rakudo's code coverage
moritz_ would love to see code coverage reports 21:19
PerlJam we don't have a good way to measure that yet, do we?
Tene I wonder if we could get parrot to report the HLL annotations for everything it executes...
then just aggregate them, and see what's covered and what's missing. 21:20
21:28 yahooooo joined
colomon pmichaud: you've got it on the trig tests. every function is tested against int / num / rat / complex and degrees / radians / gradians / revolutions, etc. 21:37
moritz_ and in every quadrant 21:39
colomon and there are 25 trig functions 21:40
21:40 charsbar_ joined
colomon and the worse part is, I need to add some more tests once we get the proper trig base specification system running. 21:40
I'm thinking I may drop a couple of the different angles tested from the list to compensate. 21:41
moritz_ why more tests? can't we just use the old ones, but replace the strings by the Enum values?
colomon you can set the base value in your scope instead of per function. 21:42
once that functionality is in, I mean.
$!TRIGBASE = Radians;
moritz_ ok, so one more test per trig function
=> 25 more tests - that we can handle ;-) 21:43
colomon we will certainly replace the strings by the Enum values when they are ready! it's an easy change for the tests.
moritz_ or maybe 2 per function, if we want to be sure that it's reset in the outer scope
colomon we can let it fall into the next default case to test the reset in outer scope bit. 21:45
21:45 kst joined
colomon but I think we might want more than one test per trig function. 21:45
moritz_ that's fine; I just don't think we need 20 per trig function for this matter 21:50
Tene colomon: better might be to have the test check that *all* of the angles pass. 21:51
so one test per 20 angles.
colomon Tene: do you mean one test per 20 degrees? 21:56
moritz_: so really, I wanted to talk about your blog post... 21:58
moritz_ \\o/
21:58 snearch joined
Tene colomon: I mean, instead of having one test for each angle, just put all the angles for a given set of (trig function, base, method, etc) into one test, if people want to reduce the number of trig tests. 21:59
colomon ah, I see, I think.
Tene instead of ok(sin(1)), ok(sin(2)), ...; do ok(sin(1) & sin(2) & ...) 22:00
not literally like that, of course.
I don't know if reducing the number of trig tests is anyone's priority.
moritz_ certainly not mine 22:01
considering that if do put them together, you have to take special care to get good diagnostics
Tene Sure.
It looks a little bit weird for half of our tests to be trig, maybe.
colomon That means we just need to write more non-trig tests! 22:02
Tene I don't mind it.
hehe
moritz_ what colomon said ;-)
colomon (which is what I've been working on rather than cleaning up the trig tests.)
it's why every other day or so I post here going, "Do we have tests for X?"
moritz_ then then I answer with "ask ack" ;-) 22:03
colomon though my progress at getting said tests actually written has been slow.
(eight more today so far, I think.)
moritz_: on the blog post thing: 22:04
seems like maybe perl6.org needs an overview section? 22:05
moritz_ the front page is supposed to be the overview 22:06
and from my analysis it seemed to fullfill that function in 3 of 5 categories 22:07
colomon front page gives lots of useful links, but there's no direction to it.
moritz_ right
so maybe a "getting started" page?
colomon maybe? 22:09
it's hard to imagine what it would look like arriving there with no clear idea what is going on.
(for me, anyway.)
moritz_ or do you have a good idea how to give the front page direciton?
lichtkind moritz_: when the november pages are in shape we could link there from perl6.org to
colomon nope.
lichtkind moritz_: its supposed to be an beginners intro into world of perl 6 22:10
moritz_ lichtkind: that's a nice idea 22:11
lichtkind moritz_: good i give you a sign when im done there
colomon moritz_: If I had a brilliant idea for how perl6.org should look, I'd just change it myself. :) 22:12
lichtkind moritz_: november has the advantage to say btw all you read was served to you by perl 6
moritz_: i geban some moth ago but had do stall but talked with masak in november we will make more effort for november :) 22:13
s/geban/began/
22:13 quietfanatic joined
cognominal lichtkind, some moth ago? the camelia bug went there apparently :) 22:16
lichtkind cognominal: i speak about november-wiki.org 22:17
cognominal that was just a stupid joke 22:18
lichtkind cognominal: so i was too sleepy to get it 22:20
22:21 goksie joined 22:22 justatheory joined 22:29 KyleHa joined
lichtkind night folks 22:30
22:30 mikehh joined 22:34 gbarr joined 22:41 goksie left
jnthn Mmmmm....nice relaxing evening off with sufficient pivo. :-) 22:51
22:55 wknight8111 joined 23:01 kst joined 23:04 s1n_mini joined 23:06 meppl joined
colomon moritz_: son now asleep in lap, can type again (slowly) 23:07
23:08 __ash__ joined
__ash__ is there a place in the spec where they talk about how use lib works 23:09
colomon I'd guess S10 or S11? 23:10
jnthn If it's gonna be in the spec, those are the places I'd look too. 23:12
__ash__ should i be using use or import to se the folder my library stuff is in?
okay, that didn't make sense 23:13
i set the path with use lib('path'); then do i actually import with use or import?
colomon use
(admittedly don't know what import does. but for instance "use Test;" to get Test.pm) 23:15
__ash__ yeah, thats what I am trying to do, I have a set of library functions (Heap.pm), trying to write some tests in a separate file so its not 1 huge file, sadly this is the first time i have had to do this and don't know the right way to 23:16
s1n_mini does rakudo support use lib yet?
jnthn Not as far as I know. 23:17
__ash__: You probably wnat use. 23:18
__ash__ i thought it did, but maybe not, i thought i saw someone elses example doing use lib('./lib');
colomon do you want to make it a proper proto module? 23:19
there is some boilerplate you can use...
__ash__ i guess i should do BEGIN { @*INC.push: 'lib', '../lib' }; ? (stealing that from moritz's svg-plot stuff
colomon lastofthecarelessmen.blogspot.com/2...efile.html 23:20
s1n_mini could just put that in the setting?
__ash__ *shamefully doesn't know any of the advanced things about makefiles*
i can get the gcc to compile my C homework but you ask me to do much else and i say, ummm well here is a ruby script that does that... 23:21
s1n_mini painfully does
colomon pretty sure that post doesn't involve anything advanced
or at least the magic is all hidden away in masak's files 23:22
__ash__ who's blog is that? just curious (book marking all the perl6 ones i have been finding) 23:23
s1n_mini colomon: masak wrote a Makefile filter, which is the Configure script
colomon __ash__: it's anonymous 23:24
__ash__ ah, k
ah, one last question, whats everyones favorite part of perl6, i am giving a little presentation on Perl 6 for my ACM group, just wanted to touch on all the key parts 23:27
s1n_mini it cures cancer :)
__ash__ lol
s1n_mini takes bets for quickest answer of "junctions" 23:29
colomon I've been loving the hyper-operators lately. Being able to say something like @angles>>.sin to generate a new array of the sines of @angles is really nice....
s1n_mini seriously, the grammar engine is my favorite
jnthn Multi-dispatch is kinda powerful. 23:30
colomon I remember being all excited about junctions back before pugs, but have only used the the tiniest bit so far
__ash__ yeah, i was going to be sure to talk about grammars, i don't know them that well yet, but i am trying to go over at least S2-14 and learn the key parts of each, they seem to cover the main just of things 23:31
s1n_mini jnthn is biased :)
jnthn :P
__ash__ multi-dispatch is great too, now that i started using it more every time i go back to other languages i am like, man, so many optional paramters that i need to check,
s1n_mini real method signatures are nice 23:32
(slurpy, named parameters, etc)
jnthn s1n_mini: Again, I'm biased 'cus it's what I'm hacking on at the moment, but I'm also really looking forward to seeing what people can use nested signatures for. 23:33
Both for unpacking data structures and also when combined with multi-dispatch.
colomon nested?
s1n_mini i'm looking forward to just abusing every feature to its logical conclusion 23:34
23:34 FOAD_ joined
colomon s1n_mini: :) 23:34
jnthn colomon: If you take a parameter in a signature, you can then bind it against another signature.
__ash__ multi-methods are cool for the fact that you can manage each verison of the function independantly without changing everything else, its either multi-methods or double-dispatch, then you have to make sure every object has its own version of whatever it needs to do, and that just seems like more work
jnthn colomon: Once it's implemented, I'll be sure to blog some examples :-) 23:36
colomon jnthn: great. :)
s1n_mini first class object model is nice, no more wheel reinvention :) 23:37
quietfanatic Is there a way in Rakudo to access arbitrary memory locations via pointers?
jnthn s1n_mini: Aye. Also, custom meta-classes (not in Rakudo yet) will be also cool. Even less wheel reinvention. :-)
s1n_mini best feature about perl6, hands down: rakudo 23:38
jnthn Oh, Rakudo has much way to go yet. :-) 23:39
s1n_mini but the perfect is the enemy of the good :)
quietfanatic Actually, most of what I like the best in Perl 6 is the small things, like not having to put parens around conditions.
and using . instead of -> 23:40
Oh yes: named arguments. I love named arguments. 23:41
__ash__ i'll be sure to talk about things to come (Like lazy lists that aren't in rakudo) and things that are working, like the new regex stuff, and object system
23:41 justatheory joined
__ash__ lazy lists still aren't in rakudo right? i am not just making that on up? 23:41
cognominal quietfanatic, yes, perl 6 can be seen as a better perl 5. That's ok
colomon __ash__: right, still no lazy 23:42
quietfanatic cognominal: your tone suggests disappointment. :)
s1n_mini cognominal: i'd hope so, that was the original goal anyways
__ash__ so, fundumentally whats the difference between a package and a module, i still am a bit fuzy on that one...
cognominal quietfanatic, not at all, it is important for acceptance by the perl 5 crowd.
jnthn s1n_mini: Oh, I think there's a nice balance to be had between recognizing what's possible some day and also delivering something good enough in the meantime. 23:43
s1n_mini __ash__: sugar
__ash__ and in ranges, why don't you just say 1 ..^ 3 = 1, 2 ? i remember there being a big discussion on the mailing list about that, it simplyfies things a lot if you look at it from that perspective, IMO...
quietfanatic __ash__: you can say 1.5 ~~ 1..^3 and it'll return True; not so for 1, 2 23:44
__ash__ well, i should clarify, 1..^3.max = 2 23:45
jnthn __ash__: What is it about "1..^3 = 1,2" that you feel doesn't work that way now? 23:46
rakudo: for 1..^3 { .say }
p6eval rakudo d5a2ee: OUTPUT«1␤2␤»
s1n_mini rakudo: 1..^3 ~~ 1..2
p6eval rakudo d5a2ee: ( no output )
s1n_mini rakudo say 1..^3 ~~ 1..2
err
__ash__ rakudo: say (1..^3).max 23:47
p6eval rakudo d5a2ee: OUTPUT«3␤»
__ash__ that surprized me
s1n_mini rakudo: say 1..^3 ~~ 1..2
p6eval rakudo d5a2ee: OUTPUT«0␤»
__ash__ its the min, max stuff that confused me
jnthn __ash__: Hmm. It surprises me a bit too.
__ash__ you'd think if you say not to include it (hence the ^ ) it wouldn't be the max...
just caught me off guard, thats all, i can deal with it though, just confused me 23:48
colomon I thought 1..3 was now the range of numbers fr
jnthn rakudo: say ?Range.^can('max')
colomon om 1 ti 3
sorry, son interfering with typing.
p6eval rakudo d5a2ee: OUTPUT«1␤»
jnthn rakudo: say (1..^3).list.max
colomon rakudo: say 2.9 ~~ (1..^3)
p6eval rakudo d5a2ee: OUTPUT«2␤» 23:49
rakudo d5a2ee: OUTPUT«1␤»
colomon rakudo: say 2.9 ~~ (1..2);
p6eval rakudo d5a2ee: OUTPUT«0␤»
jnthn __ash__: OK, so Range defines a max method of its own, that behaves differently than if you flatten the range out into a list and call .max on that.
s1n_mini out, class over 23:50
__ash__ jnthn: yeah, it does, they talked about it in the mailing list a bit a few weeks ago
Range has it's own max and min
jnthn __ash__: Ah, OK. I was probably wondering around some Japanese city and admiring the pretty lanterns rather than reading p6l a few weeks ago. :-)
I suspect I could justify it both ways. 23:51
__ash__ also it defines a exclude_min/max i think, to see if it should be included
jnthn Trouble is that there probaly isn't a way to represent the max of an exclusive range...
__ash__ or maybe they renamed those 23:52
jnthn Since it's 2.99999999999999999999999999999999999999999<more> in this case. :-)
__ash__ rakudo: say (1..^3).from_exclusive;
p6eval rakudo d5a2ee: OUTPUT«0␤»
23:52 tak11 joined
__ash__ rakudo: say (1..^3).to_exclusive; 23:52
p6eval rakudo d5a2ee: OUTPUT«1␤»
__ash__ thats it, its from/to_excclusive to check if it should include min/max 23:53
jnthn Hmm. 23:54
I think we're running into people's desire for ranges to both act in a discrete and a continuous way.
23:55 lumi joined
quietfanatic rakudo: say max (2..^4, 3) 23:56
p6eval rakudo d5a2ee: OUTPUT«No applicable candidates found to dispatch to for 'max'␤in Main (file src/gen_setting.pm, line 206)␤»
__ash__ www.mail-archive.com/perl6-all@perl...86754.html is the one where they talked about it, and i think added the to_exclusive/from_exclusive
quietfanatic rakudo: say 2..^4 max 3
p6eval rakudo d5a2ee: OUTPUT«3␤»
quietfanatic ...
rakudo: say +(2..^4) 23:57
That
p6eval rakudo d5a2ee: OUTPUT«2␤»
quietfanatic 's why
__ash__ rakudo: say [+] 2..^5;
p6eval rakudo d5a2ee: OUTPUT«9␤»
__ash__ is that what you mean to do?
quietfanatic no
+ converts to a number, and the number in this case is the number of elements in (2, 3) 23:58
cognominal hum, unlie physics Larry has an arrow of time : Insofar as Lists are lazy, they're really only partially immutable, in the sense that the past is fixed but the future is not.
quietfanatic which is smaller than 3, hence 2..^4 max 3 returning 3
cognominal probably phycisians did not get that God is lazy
or physicists? 23:59
I a always confused
quietfanatic It's the latter
A physician is a doctor.
cognominal indeed