»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
masak "Perl 6: May the »ö« be with you." 00:00
00:00 Patterner left, Psyche^ is now known as Patterner 00:01 zorgnax left 00:02 rv2733 left
au|irc masak: well, to be fair, I eventually saw (and agreed with) chromatic's viewpoint. Pugs 6.0.x and 6.2.x was probably the best thing ever, but forcing Pugs 6.28.x on a hs platform that wasn't ready for it -- that made collaboration much harder and affected the flow of fun (which already made folks migrate to #moose). so a clean break from the "Perl 6 as a variant/addon of Perl 5" mentality in the form of rakudo was indeed great. 00:03
masak huh. I had never connected Rakudo with that mentality before. 00:04
but I guess it's true, in a sense.
and I don't know enough about the details of 6.28.x -- though I might have sensed the decrease of -Ofun flow, not sure. 00:06
au|irc it's like turning the much larger GHC/Hackage gear using a much smaller Pugs gear... not the easiest leverage, physically speaking 00:07
masak it's possible that Rakudo might have happened at approximately the same time it did even without Pugs. but if so, it would have happened with a less mature spec. 00:08
so either way, Pugs was a net win for Perl 6.
au|irc woot :)
masak wow, is it ever difficult to log off tonight. but it's 2 o'clock here, and I need to be up early tomorrow. 00:09
au|irc: thanks for the feedback.
I'll post sometime tomorrow.
au|irc np at all. I'll probably remain in this channel :)
so sleep well!
masak \o/
00:10 masak left
jnthn phenny: tell masak s/One the one 00:14
phenny jnthn: I'll pass that on when masak is around.
jnthn gah
phenny: tell masak s/One the one hand/On the one hand/ # and sorry I can't even use a message bot competently :-)
phenny jnthn: I'll pass that on when masak is around.
sorear au|irc: so that's why moose is so far ahead of us now. 00:16
au|irc well, moose took the 6.2.x spirit and made it production worthy 00:17
that is the runtime OO system
but it didn't really do much for grammars...
so it's asymptotic convergent evolution again, I guess
Moose had to be compatible with perl5 because it, well, it implemented on perl5 :) that liberated perl6 to innovate more on grammars, as people who really need production use today (like yours truly) has a safe fallback 00:19
sorear rakudo is my go-to tool for advanced text processing in the shell these days 00:20
au|irc ++
sorear especially involving $*IN.slurp.comb(//)
au|irc *nod* perl6 sets the golf standard for text processing. 00:22
er, I mean gold standard.
00:26 synth] left 00:31 synth joined
dalek ecza: 9ed2aaf | sorear++ | (7 files):
TimToady says methods don't need to be cloned. Simplify accordingly.
00:37
au|irc sorear: may I get a niecza commit bit, or do you prefer me sending patches? :) 00:45
s/patches/pull requests/
tylercurtis Oh my, a reportedly scarily productive Perl 6 implementor from the past working on the implementation of the recently scarily productive Perl 6 implementor. 00:47
au|irc (it's a very small thing, namely this fresh ubuntu lucid installation has no /usr/local/bin/perl, and I had to change it to /usr/bin/env perl)
tylercurtis: well, I'm just this noob trying out a new project like any other, y'know? *smile* 00:49
TimToady au|irc: welcome, are you sure you want a commit bit? :) 00:50
au|irc TimToady: hey. I missed ya :)
TimToady yeah, likewise, just a bit, from time to time... :) 00:51
thanks for dragging me kicking and screaming onto irc, anyhoo
au|irc hope you're not still keen on the speech synthesis-broadcast-irc-to-living-room plan anymore :) 00:52
I tried that, it's dangerous to one's health...
TimToady will be glad to take your word for it 00:53
TimToady doesn't have time to learn from experience anymore, and must mostly learn from others now :)
au|irc ah. ever the Wu-Li master of Wu-Way 00:54
or was that wu-wei :)
sorear au|irc: you already have a commit bit for that. 00:56
au|irc why yes, yes I do.
sorear au|irc: the /usr/local/bin/perl part is in src/perl6 in the *gasp* pugs repo
au|irc just figured that out, yeah
...and in the wuwei spirit I've just ln'd /usr/bin/perl locally to /usr/local/bin/perl... 00:57
sorear Though... you'll still probably need to bump STD_REVISION
sorear tries to figure out how to add a commit bit 00:58
looks like Dashboard -> niecza -> Admin -> Collaborators -> Add?
tylercurtis sorear: yes. 00:59
au|irc github.com/sorear/niecza/edit#collab_buckete
sorear audreyt?
au|irc aye
00:59 tedv joined
sorear done. don't abuse it. :) 01:00
au|irc struggles to remember what it means to abuse a commit bit 01:01
au|irc fails utterly :)
TimToady it's when someone thinks they have to forgive you for doing something right. :) 01:04
au|irc deep. may I quote you. :) 01:05
TimToady I try never to say anything unquotable, and sometimes succeed. :) 01:06
family calls
au|irc ditto, in fact
TimToady have the (in)appropriate amount of fun.
au|irc have fun unquoting - I hear it's the same as interpolation - sometimes :) 01:07
TimToady how gnostic.
&
sorear thinks about how to implement packages now
'package' and 'our' are pretty important.
knowing that they aren't cloned makes some things easier 01:08
01:08 azert0x left 01:10 synth left 01:12 synth joined 01:16 synth left
ingy hi au|irc 01:18
pugssvn r31741 | audreyt++ | * Change /usr/local/bin/perl to the perl in PATH.
sorear How deep is the aliasing of an our?
my $f; package P { our $x = 2; $f = sub () { say $f }; }; #`( XXX ); $f() # notional harness 01:19
would $P::x = 3 have an effect?
would $P::x := 3 have an effect?
au|irc ingy: hi. :) I need to drive back to tamsui for weekly family gathering in, like, 10mins; so just saying hi :) glad to see you here!
sorear would P::<x> :delete have an effect?
dalek ecza: a33aa22 | autrijus++ | STD_REVISION:
* Bump STD_REVISION to 31741 for the "/usr/bin/env perl" change.
sorear would ::P := anon package {}; have an effect? 01:20
01:21 synth joined 01:26 au|irc is now known as au|afk 01:29 stepnem joined
sorear std: package Foo {}; package Foo {} 01:54
p6eval std 31741: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/gp5o8Xda5G line 1:␤------> package Foo {}; package Foo ⏏{}␤Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/gp5o8Xda5G line 1:␤------> package Foo
..…
sorear I thought the point of packages was that they could be merged.
jnthn rakudo: package Foo {}; package Foo {} # just curious 01:55
p6eval rakudo dd8d5d: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'Foo'␤»
01:57 ruoso left 01:59 patspam joined
jnthn std: 0777 02:15
p6eval std 31741: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6 at /tmp/ERAbZHc0JM line 1:␤------> 0777⏏<EOL>␤ok 00:01 111m␤»
jnthn Awww! I wanted the error to tell me what the syntax was so I didn't ahve to go look it up. :P
std: 0o777
p6eval std 31741: OUTPUT«ok 00:01 111m␤» 02:16
jnthn rakudo: say 0o777
p6eval rakudo dd8d5d: OUTPUT«511␤»
02:25 aubreyja left 02:27 jferrero left 02:32 snarkyboojum joined 02:34 patspam left
tylercurtis rakudo: say: 5; 02:35
p6eval rakudo dd8d5d: OUTPUT«===SORRY!===␤Confused at line 20, near "say: 5;"␤»
02:37 Trashlord left 02:45 Trashlord joined 02:49 snarkyboojum left
ingy builds latest rakudo 02:53
jnthn Just in time to avoid my 5am patch. :P 02:55
02:58 snarkyboojum joined
dalek kudo: 6878372 | jonathan++ | src/Perl6/Actions.pm:
First very basic cut of the ==> and <== feed operators.
03:02
jnthn loliblag: 6guts.wordpress.com/2010/07/18/fixes-and-feeds/ 03:03
jnthn afk 03:10
tylercurtis jnthn++
03:14 synth left
pugssvn r31742 | lwall++ | [STD] report new octal format in warning as requested by jnthn++ 03:27
03:28 gbacon joined
TimToady sorear: assuming you meant say $x there...the aliasing is very shallow, and only the name is in the lexical scope 03:31
I think the name is an alias to the container, on the assumption that you won't rebind the variable or destroy the package 03:34
hmm, in p5 it's an alias to the GV, iirc, so it would see a rebind via glob assignment 03:35
03:36 sftp left
TimToady so only clobbering the package itself or deleting the entire typeglob would have broken the connection 03:38
typeglob was post name lookup however, and I don't know if we can make a ref that is post name-lookup but pre container-lookup
packages are much less important to keeping things running in P6, and package vars don't have to be so effecient 03:39
so maybe it's best to just keep a link to the package hash and look up the name every time, if we want to keep remote rebindings visible to the our alias 03:40
not sure what the use case is though
it might be one of those things that depends on an 'is rebindable' trait
I guess that could work both ways--our $x; $x := new_thing; $P::x; # does this change? 03:42
I can argue it both ways, alas.
after all, you could conceivably say OUR::<$x> := new_thing to do the rebinding in the package, but then it would be really counter-intuitive that the our $x not change along with it 03:43
since packages are supposed to reflect some of the more dynamic aspects of Perl 6, unlike in Perl 5 where they had to do double-duty as static repositories, I'd vote for keeping it a named lookup in the package 03:44
03:44 nrf joined 03:45 nrf left 03:46 jaldhar joined
TimToady perhaps there's some way at least to keep the bvalue of the package so that ::P := is visible to any users of P 03:46
I can see some use cases for swapping out an entire package temporarily and putting it back later
I can also that it's too dynamic to live, and global packages should generally stay put, which is more the P5 view 03:48
s/also/also argue/
excellent questions though 03:49
wish I knew enough to be less waffly.
otoh maybe waffling is my best skill... :) 03:50
I will try to leave it bubbling in my subconscience, though it's currently in panic mode about my oscon speech on thursday... 03:52
TimToady wanders off again 03:54
04:08 Sarten-X left 04:16 gbacon left 04:28 supernovus joined
snarkyboojum phenny: tell masak, enjoyed your draft blog post @ gist.github.com/479846 and noticed a typo at "The RFCs were either accepted with different amounds of caveats, or rejected." 04:29
phenny snarkyboojum: I'll pass that on when masak is around.
supernovus In the current Rakudo are use statements with named export tags supported? 04:30
ingy supernovus: try? 04:32
rakudo: use Test 'plan'; say "ok"
p6eval rakudo dd8d5d: OUTPUT«===SORRY!===␤Confused at line 20, near "use Test '"␤»
04:32 cbk joined
ingy looks not 04:32
supernovus When I try to load one, I get a "Confused at line 2, near "use Perlit" error. So, I'm assuming they are currently broken. 04:33
ingy supernovus: sounds like a good assumption :)
std: use Test 'plan'; say "ok"
p6eval std 31742: OUTPUT«Compiled ./lib/Test.pm6␤ok 00:01 113m␤»
04:33 xinming joined
supernovus I'm porting my "content management system" (if you can call it that) from 'alpha' to 'master' and trying to work out the gotyas. 04:34
ingy nod
supernovus Hey, I guess the evil hack I had to build regexes from strings isn't needed anymore! Yay for string interpolation in regexes! 04:35
ingy rakudo: { die "foo"; CATCH { say $! } } 04:37
p6eval rakudo dd8d5d: OUTPUT«foo␤»
ingy rakudo: { die "foo"; { CATCH { say $! } }; } 04:38
p6eval rakudo dd8d5d: OUTPUT«foo␤ in main program body at line 20:/tmp/VHS4Zy25UR␤»
ingy rakudo: { die "foo"; { CATCH { say $! } } }
p6eval rakudo dd8d5d: OUTPUT«foo␤ in main program body at line 20:/tmp/IoAf0u6ez9␤»
ingy rakudo: { die "foo"; { CATCH { say ">> $!" } } }
p6eval rakudo dd8d5d: OUTPUT«foo␤ in main program body at line 20:/tmp/HNl7MmExWn␤»
04:38 snarkyboojum left 05:20 molaf joined 05:21 snarkyboojum joined 05:24 skids joined 05:32 ashleydev joined 05:36 molaf left 05:45 Sarten-X joined
ingy rakudo: sub foo { say $_ }; { foo("HAI") } 05:47
p6eval rakudo 687837: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'foo' at line 20:/tmp/yUIekayymb␤ in main program body at line 20:/tmp/yUIekayymb␤»
ingy rakudo: sub foo($s) { say $s }; { foo("HAI") }
p6eval rakudo 687837: OUTPUT«HAI␤»
ingy rakudo: sub foo($s) { say $s }; { foo("HAI") CATCH {} }
p6eval rakudo 687837: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 20␤» 05:48
ingy rakudo: sub foo($s) { say $s }; { foo("HAI"); CATCH {} }
p6eval rakudo 687837: OUTPUT«HAI␤Null PMC access in setprop()␤ in main program body at line 20:/tmp/IlmcA0fTDv␤»
ingy wtf?
rakudo: sub foo($s) { say $s }; { say "HO; CATCH {} }
p6eval rakudo 687837: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 20␤»
ingy rakudo: sub foo($s) { say $s }; { say "HO"; CATCH {} } 05:49
p6eval rakudo 687837: OUTPUT«HO␤Null PMC access in setprop()␤ in main program body at line 20:/tmp/cXWd8PlhLH␤»
ingy rakudo: { say "HO"; CATCH {} }
p6eval rakudo 687837: OUTPUT«HO␤Null PMC access in setprop()␤ in main program body at line 20:/tmp/03Unn_EZpt␤»
ingy CATCH is completely busted?
rakudo: { say "HO"; CATCH { say "XXX"; } } 05:50
p6eval rakudo 687837: OUTPUT«HO␤Null PMC access in setprop()␤ in main program body at line 20:/tmp/MD9St6CLMC␤»
ingy jnthn: you about?
std: { say "HO"; CATCH { say "XXX"; } } 05:51
p6eval std 31742: OUTPUT«ok 00:01 113m␤»
ingy std: { say "HO"; CATCH {} }
p6eval std 31742: OUTPUT«ok 00:01 113m␤»
ingy rakudo: say "HO"; CATCH { say "XXX"; }
p6eval rakudo 687837: OUTPUT«HO␤»
ingy rakudo: try { say "HO"; CATCH { say "XXX"; } } 05:52
p6eval rakudo 687837: OUTPUT«HO␤»
ingy phenny: tell jnthn CATCH is bareblock appears to be hosed. try: rakudo: { say "HO"; CATCH {} } 05:53
phenny ingy: I'll pass that on when jnthn is around.
ingy phenny: tell jnthn *in 05:54
phenny ingy: I'll pass that on when jnthn is around.
snarkyboojum rakudo: 3,0,8 ==> map { $_ ** 2 } ==> sort ==> reverse 05:56
p6eval rakudo 687837: ( no output )
snarkyboojum rakudo: 3,0,8 ==> map { $_ ** 2 } ==> sort ==> reverse ==> my @a; say @a.join(',') #w00t 05:59
p6eval rakudo 687837: OUTPUT«64,9,0␤»
supernovus Hmm, 'is rw' doesn't work anymore? 06:12
sorear TimToady: I'll do bvalue sharing for now. 06:13
supernovus hmm, never mind, my function is using 'is rw' when it should be using 'is copy'. 06:15
sorear package Foo { }; # What sort of thing is ::Foo? 06:16
The synopses talk about a hierarchy of types of packagey things, Package, Module, Class, Grammar 06:21
06:21 masonkramer left
sorear The synopses also say that after class Foo {}, Foo isa Foo 06:21
which contradicts :(
supernovus rakudo: my regex woot { ^ ( .*?) \: }; if "hello:" ~~ /:s <woot> / { say "yes" } 06:23
p6eval rakudo 687837: OUTPUT«Method 'woot' not found for invocant of class 'Cursor'␤ in <anon> at line 20:/tmp/xBxSYRJKxH␤ in 'Cool::match' at line 2345:CORE.setting␤ in 'Regex::ACCEPTS' at line 5416:CORE.setting␤ in 'infix:<~~>' at line 401:CORE.setting␤ in main program body at line
..20:/tmp/xBxSYRJKxH␤»
supernovus I think that be a problem. 06:24
sorear you need to use <&woot> to call a lexical regex 06:25
06:25 ashleydev left
sorear <woot> is only for grammar rules 06:25
06:25 tylercurtis left
sorear also, you're using sigspace before ^. don't do that. 06:25
ingy w00t!!! 06:27
testml-pm6 is finally completely ported and passing the entire testml-tml test suite.
now I will sleep!
supernovus sorear: Yeah, I'll kill the sigspace. I didn't see the part about prefixing lexical regexes with & in the synopsis. I just found it now. There are still examples in there using <rulename> syntax... 06:28
sorear supernovus: it's actually optional in the synopsis, but rakudo doesn't handle the optionality yet 06:29
ingy sorear: that Q/t problem was due to me thinking a \t was a tab in a certain context... :\ 06:30
supernovus sorear: Ah, okay. Another of those gotyas when porting from alpha. I hope to have ww6 ported soon.
sorear ww6? 06:31
sorear isn't sure he understands the distinction between WHO and HOW
supernovus My sort-of content management system. It eventually will replace ww5 which powers my websites. The previous version of ww6 only worked with the 'alpha' branch. 06:32
06:44 tedv left
sorear grr. jnthn, moving the bar ;) 06:51
dalek ecza: d38b860 | sorear++ | (2 files):
Implement parsing for package, module, grammar, role
07:16
ecza: b1f1f63 | sorear++ | Niecza/Actions.pm:
Suppress not used warnings if low-level code is used in the scope
07:19 supernovus left 07:21 envi^home joined 07:22 justatheory left 07:24 meppl joined
sorear is lost in a maze of confusing postfix operator syntax rules 07:27
07:29 synth joined 08:08 molaf joined
sorear If type objects are members of the type they describe, what is the logic behind Regex.ACCEPTS() and regex { foo }.ACCEPTS() being completely unrelated? 08:18
sorear has trouble reconciling type objects are types with type objects are objects sometimes 08:26
it seems as though Regex and regex { foo } are so different that they shouldn't share any type more specific than Any 08:27
rakudo: my Regex $rx; #`(forget to init); say "foo" ~~ $rx
p6eval rakudo 687837: OUTPUT«0␤»
sorear rakudo: my Regex $rx; #`(forget to init); say /2/ ~~ $rx
p6eval rakudo 687837: OUTPUT«1␤»
08:29 snarkyboojum left
dalek ecza: 2dc1686 | sorear++ | (3 files):
Implement .^ meta-calls
08:35
ecza: f23f3aa | sorear++ | (4 files):
Implement ClassHOW.isa and ClassHOW.does
08:43 tadzik joined 08:49 snarkyboojum joined
sorear I beleive at this point I'm mostly blocking on a sensible conception of lists 08:59
Are there any list experts not on vacation now? 09:00
09:09 timbunce joined
timbunce Which of the docs linked to on perl6.org/documentation/ would be a good (and reasonably upto date) book/tutorial-like way to learn perl6? 09:15
moritz_ back 09:29
sorear the R* book? dunno if it's linked
09:29 ab5tract joined
moritz_ timbunce: get the latest PDF from github.com/perl6/book/downloads 09:29
timbunce moritz_: thanks! 09:30
I also found www.LearningPerl6.com but svn co svn.lohutok.net/learning_perl/trunk/llama6 says "Could not resolve hostname `svn.lohutok.net': Host not found" Has the hostname changed?
moritz_ it hasn't been updated in years 09:31
timbunce ah, ok. thanks.
09:32 Mowah left
timbunce Any other docs linked to on perl6.org/documentation/ you can recommend as a good (and reasonably upto date) book/tutorial-like way to learn perl6? 09:33
tadzik perl 6 advent calendar maybe?
09:34 ab5tract left
timbunce en.wikibooks.org/wiki/Perl_6_Programming seems to have decent content as first glance 09:35
got to go now, I've a plane to catch, and not I've a PDF to read on the flight :) thanks
09:35 timbunce left 09:38 Alias_ joined, Alias left 09:41 payload joined 09:46 plobsing left
sorear What is sandbox.rakudo.de? 09:56
(other than "a vhost on feather2 with exactly the same DocumentRoot as perl6.org")
cognominal rakudo: my @a = 1..2; my @b := @a; @a = 'a'..'b'; say @b 10:01
p6eval rakudo 687837: OUTPUT«ab␤»
sorear moritz_: do you know who runs planet6 and can chase jnthn's move? 10:02
cognominal What if want to bind @b to the initial value of @a?
*if I
sorear then you would use =, not := 10:03
cognominal but if I want to avoid a copy? 10:04
sorear @a = 'a'..'b' is an in place operation
it destroys the old value of @a
you cannot avoid a copy if you are going to say @a = 'a'..'b' later 10:05
if you want to avoid copying, you will need to use := consistently
moritz_ sorear: [Coke] is the man
cognominal rakudo: my @a = 1..2; my @b ::= @a; @a = 'a'..'b'; say @b 10:06
p6eval rakudo 687837: OUTPUT«ab␤»
moritz_ [Coke]: jnthn's blog moved, the new feed is at 6guts.wordpress.com/feed/ - could you please update the planetsix config?
10:09 jhuni joined, jhuni left
TiMBuS cognominal, so you want like a lazy copy on write? 10:09
10:09 jhuni joined
TiMBuS thing 10:10
sorear out. 10:12
TiMBuS rakudo: my @a = 1..2; my @b := @a; @a := 'a'..'b'; say @b
p6eval rakudo 687837: OUTPUT«ab␤»
TiMBuS didnt think so 10:14
cognominal rakudo: my @a = 1..3; my @b := @a; @a[1]=4 @a = 'a'..'b'; say @b.perl # well I want to bind to the original array and would want to get the later change _in the array as well [1,4, 3]. That it is orignally a range even makes the things more complicated 10:16
p6eval rakudo 687837: OUTPUT«===SORRY!===␤Confused at line 20, near "@a[1]=4 "␤»
cognominal oops
rakudo: my @a = [1, 2, 3]; my @b := @a; @a[1]=4; @a = ['a','b','c'] ; say @b.perl # well I want to bind to the original array and would want to get the later change _in the array as well [1,4, 3]. That it is orignally a range even makes the things more complicated 10:17
p6eval rakudo 687837: OUTPUT«[["a", "b", "c"]]␤»
sorear cognominal: you cannot change a range 10:21
the = operator makes a copy of an array. -always- 10:22
I think this is what you want
rakudo: my @a := [ 1..3 ] #`( [] makes copy ) ; my @b := @a; @a[1] = 4; @a := [ 'a' .. 'b' ]; say @b.perl 10:23
p6eval rakudo 687837: OUTPUT«["a", "b"]␤»
sorear rakudo is violating the spec here 10:24
pugs: my @a := [ 1..3 ] #`( [] makes copy ) ; my @b := @a; @a[1] = 4; @a := [ 'a' .. 'b' ]; say @b.perl
p6eval pugs: ( no output )
sorear pugs: my @a := [ 1..3 ]; my @b := @a; @a[1] = 4; @a := [ 'a' .. 'b' ]; say @b.perl
p6eval pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/57f7xyjFFO line 1, column 34-43␤»
cognominal sorear, forget about the range. I can convert to an array beforehand. I just want to track the change in an array even if the original variable bound to it is bound to another value.
sorear cognominal: rakudo binding is broken in exactly that case 10:25
rakudo: my $a = 1; my $b := $a; $a := 2; say $b
p6eval rakudo 687837: OUTPUT«2␤»
sorear pugs: my $a = 1; my $b := $a; $a := 2; say $b
p6eval pugs: OUTPUT«1␤»
sorear niecza: my $a = 1; my $b := $a; $a := 2; say $b 10:26
p6eval niecza: OUTPUT«1␤»
cognominal Apparently @a := @b is supposed to make @a and @b synonymous. That's what it does by that's not what I want.
sorear no
@a := @b is supposed to act like $a = $b 10:27
cognominal I don't say there is no use for :=. I say that's not what I want.
sorear right now in rakudo, binding a variable to which other things are bound is not working
it propagates 10:28
it shouldn't
sorear out for real.
10:31 jhuni left 10:38 Trashlord left 10:40 Trashlord joined
TiMBuS oh cool, so my attempt should've worked. that makes more sense to me then 10:41
pugs: my @a = 1..2; my @b := @a; @a := 'a'..'b'; say @b 10:42
p6eval pugs: OUTPUT«12␤»
TiMBuS cool
10:45 ab5tract joined, ab5tract left 10:48 Maddingue left 10:49 whiteknight joined 10:52 ab5tract joined 10:53 HarryS left, BinGOs left, jnthn left, meteorjay left, cono left, lue left, Lorn left, proller left, pmichaud left, gabiruh left, Juerd left, ingy left, lestrrat left, Woody2143 left, wolverian left, frodwith left, cxreg left, m6locks left, phenny left 10:54 meteorjay joined, HarryS joined, cono joined, lue joined, Lorn joined, proller joined, pmichaud joined, BinGOs joined, gabiruh joined, Juerd joined, m6locks joined, phenny joined, cxreg joined, frodwith joined, wolverian joined, Woody2143 joined, lestrrat joined, ingy joined, jnthn joined, card.freenode.net sets mode: +ovoo pmichaud phenny ingy jnthn, HarryS left 10:55 HarryS joined 10:56 Trashlord left 10:57 Trashlord joined 10:58 rokoteko left 10:59 rokoteko joined 11:04 bb__ joined
bb__ oi 11:04
hello
can anyone help? 11:05
tadzik well, you'll have to describe your problem first 11:06
bb__ can anyone explain what's PERL?
what advantage this language ?
for what was created? 11:07
11:07 gbacon joined
tadzik long time ago it was for text manipulation I believe, now it's fairly everywhere 11:07
11:09 lestrrat is now known as lest_away
bb__ why it is used in data centers? 11:09
tadzik what is the advantage? Well, it's _very_ flexible. And there are loads of modules available, but for Perl 5 so fa 11:10
no idea. Maybe because of excellent database support 11:11
bb__ is a language-oriented web ?
tadzik you mean a web-oriented language?
bb__ yes 11:14
tadzik I wouldn't say so. It's one of its uses, and is used quite widely in the web, but it definitely isn't the only use, and the language isn't designed to be web-oriented 11:16
bb__ hummm 11:20
ok
thank you tadzik
11:20 bb__ left
TiMBuS i always enjoy these random visits 11:44
11:44 snarkyboojum left 11:47 whiteknight left
pugssvn r31743 | moritz++ | [t/spec] unfudge two passing tests for rakudo 11:52
11:52 masak joined
masak oh hai, #perl6! 11:52
phenny masak: 00:14Z <jnthn> tell masak s/One the one
masak: 00:14Z <jnthn> tell masak s/One the one hand/On the one hand/ # and sorry I can't even use a message bot competently :-)
masak: 04:29Z <snarkyboojum> tell masak enjoyed your draft blog post @ gist.github.com/479846 and noticed a typo at "The RFCs were either accepted with different amounds of caveats, or rejected." 11:53
masak jnthn: thanks; fixing.
moritz_ \o/ it's masak
masak snarky: thanks; fixing.
moritz_: \o/
moritz_ enjoyed a very good concert by Mark Knopfler yesterday night
pugssvn r31744 | moritz++ | [t/spec] tests for RT #74236, &Class::method access 11:57
11:59 mantovani left 12:00 mantovani joined
pugssvn r31745 | moritz++ | [t/spec] tests for RT #69676, delegating .new to self.Mu::new 12:04
masak should $*ARGFILES.slurp work? 12:05
rakudo: say $*ARGFILES.slurp
p6eval rakudo 687837: OUTPUT«Method 'readall' not found for invocant of class ''␤ in 'IO::slurp' at line 4943:CORE.setting␤ in main program body at line 20:/tmp/_4li0Z8qWO␤»
moritz_ yes, IMHO
masak submits rakudobug
rakudo: say $*ARGFILES.WHAT 12:06
p6eval rakudo 687837: OUTPUT«IO::ArgFiles()␤»
masak rakudo: say $*ARGFILES ~~ IO
p6eval rakudo 687837: OUTPUT«1␤» 12:07
moritz_ rakudo: say slurp('/etc/passwd/')
p6eval rakudo 687837: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/QLtK2NLECa␤ in main program body at line 20:/tmp/QLtK2NLECa␤»
12:11 Mowah joined
moritz_ TimToady: why has S12-methods/multi.t line 191 an '#OK not used' annotation? the method *is* used later on 12:13
masak does the spec mention #OK ? 12:14
moritz_ no 12:15
masak er, the non-STD spec, I mean. :)
moritz_ except the STD.pm6 part of... right :-)
12:16 azert0x joined
pugssvn r31746 | moritz++ | [t/spec] tests for RT #75872, awesome error message when multi method dispatch finds no matching candidate 12:17
r31746 |
r31746 | Moritz ows jnthn++ a beer.
masak ows?
moritz_ owes
moritz_ can't type
masak ohw!
moritz_ can't spell either 12:18
he gets a beer, OK? :-)
masak :)
szbalint let's find an irish pub at YAPC::EU
masak \o/
moritz_ erm, I meant #OK? :-)
masak d'OwK!
moritz_ rakudo: class A { method x { say "in x" } }; A.new ~~ :x 12:23
p6eval rakudo 687837: OUTPUT«in x␤»
moritz_ tries to implement $str.IO ~~ :e
masak when I release the blog post (in a little while), I thought I'd tweet about it being "Perl 6 10th birthday". is anyone against this? 12:27
the 19th of July is the date of the announcement of Perl 6, but the 18th is the date of the mug breakage.
moritz_ rakudo: say ('README' ~~ :d).defined 12:33
p6eval rakudo 687837: OUTPUT«1␤»
moritz_ rakudo: say ('nonexistant' ~~ :d).defined
p6eval rakudo 687837: OUTPUT«1␤»
moritz_ masak: I'm going to break ufo, proto and pls :-) 12:36
masak moritz_: go right ahead.
moritz_ compiling...
masak rakudo: .trans("a" => "b") for "a\nb".split("\n"); say "alive" 12:38
p6eval rakudo 687837: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in main program body at line 20:/tmp/d9YVABba2y␤»
masak this one is on file, right? 'cause it's pretty annoying.
moritz_ no idea 12:39
but I know where the tests go :-) 12:40
integration/real-strings.t
masak rakudo: (~$_).trans("a" => "b") for "a\nb".split("\n"); say "alive"
p6eval rakudo 687837: OUTPUT«alive␤»
masak submits rakudobug, Justin Case 12:41
"- why does Rakudo Star give this error message? - because there's a leak in the object model somewhere; sorry :/"
12:43 rv2733 joined
masak is unexpectedly called away 12:44
I've fixed all reported typos etc so far in the blog post, and the latest version is at gist.github.com/479846 -- will post in just a couple of hours. 12:45
12:45 Mowah left 12:46 masak left 12:55 rv2733 left 12:56 masonkramer joined 12:58 tylercurtis joined 13:07 jferrero joined
moritz_ prefix:<not> has loser precedence than infix:<,>, corrrect? 13:20
so tests like ok not "t".IO ~~ :f, "~~:f returns false on directories"; are wrong
13:25 sftp joined
tylercurtis moritz: it looks like according to viv, "not 5, 6" parses as infix:<,>(prefix:<not>(5), 6). 13:26
moritz_ hum, ok
tylercurtis moritz_: S03 agrees: perlcabal.org/syn/S03.html#Operator_precedence 13:27
not and so are loose unary precedence
13:28 tadzik left
tylercurtis , and ; are comma operator precedence. They're looser. 13:28
Although, why not use &nok?That would eliminate any potential for confusion. 13:29
moritz_ yes, that's what I do now 13:30
jnthn o/ 13:40
phenny jnthn: 05:53Z <ingy> tell jnthn CATCH is bareblock appears to be hosed. try: rakudo: { say "HO"; CATCH {} }
jnthn: 05:54Z <ingy> tell jnthn *in
moritz_ rakudo: { say "HO"; CATCH {} } 13:41
p6eval rakudo 687837: OUTPUT«HO␤Null PMC access in setprop()␤ in main program body at line 20:/tmp/C6wGnqae_T␤»
moritz_ and try.t has one failure
\o jnthn
13:42 tadzik joined
jnthn o/ moritz_ 13:42
See you've been following behind my RT ticket fixes with tests. \o/
moritz_ 5 or so left 13:43
jnthn I'll try and make it more
13:43 Maddingue joined
jnthn ;-) 13:43
moritz_ and I have .IO form of file tests ready to commit... just running one final test
(I've thought that twice before :-)
jnthn :-) 13:44
moritz_ phenny: tell masak re your blog draft, it somehow reads as if audreyt++'s gender change was in direct relation to her leaving #perl6. I know it's not meant that way; IMHO you should keep a bit of linguistic distance between the two events 13:45
phenny moritz_: I'll pass that on when masak is around.
13:46 au|afk is now known as au|irc
au|irc yeah, well, in fact there is a 12month distance :) 13:47
# irclog.perlgeek.de/perl6/2005-12-10#i_-402368
moritz_ au|irc: I know
jnthn moritz_: I was about to ask you if you were the right person to ask about updating planetsix with my new blog, but I see in the backlog you already passed the update request along to the right person. Thanks! 13:48
moritz_ jnthn: you're welcome 13:49
in a brief flash of nostalgia I found that my first patch to Rakudo as applied in May 2008
commit 7d2219f1327ce503c95641c3a0f76762785c14ba 13:50
jnthn moritz_: I went and found mine a while back.
It added the Junction class. :-)
moritz_ git++ # for making nostalgia so easy :-) 13:52
jnthn rakudo: 1..10 ==> map { $_ ** 2 } ==> sort { $^b <=> $^a } ==> my @foo; say @foo.perl
p6eval rakudo 687837: OUTPUT«[100, 81, 64, 49, 36, 25, 16, 9, 4, 1]␤»
jnthn \o/
moritz_ jnthn++ 13:53
rakudo: 1..10 ==> map { $_ ** 2 } ==> sort { $^b <=> $^a } ==>> my @foo; say @foo.perl
jnthn moritz_: I didn't add any tests though.
p6eval rakudo 687837: OUTPUT«===SORRY!===␤Sorry, the ==>> feed operator is not yet implemented at line 20, near " my @foo; "␤»
jnthn moritz_: It was kinda > 5am :_) 13:54
moritz_ jnthn: you're excused :-)
pugssvn r31747 | moritz++ | [t/spec] switch to .IO form of file tests
r31747 |
r31747 | refudge filetest.t for rakudo
moritz_ jnthn: hey, your implementaiton passes the first 7 tests in feed.t 13:57
jnthn moritz_: whee
tadzik github.com/rakudo/rakudo/tree/1b6cb...b00fde04c0 is that the first Rakudo ever happened? When more-less was the birth of the project?
dalek kudo: 36c5464 | moritz++ | (6 files):
switch file tests to $filename.IO ~~ :e; implement IO.z
13:58
pugssvn r31748 | moritz++ | [t/spec] fudge feed.t for rakudo 14:00
r31749 | moritz++ | [t/spec] rename feed.t to S03-feeds/basic.t 14:02
jnthn tadzik: Looks along those lines. And wow: github.com/rakudo/rakudo/blob/1b6cb.../grammar.g
Quite different from today's Grammar.pm
tadzik quite 14:03
moritz_ but still readable
jnthn Yes.
moritz_ I guess :w is now :s? 14:04
tadzik are backticks working in rakudo? 14:05
jnthn moritz_: That's my guess too
moritz_: But it's in a rule
So I don't quite grok why it'd be needed there
moritz_ maybe rules weren't quite understood back then :-)
au|irc phenny: tell masak s/lower-numered/lower-numbered/ too :) I'll readjust the zh translation based on the final posted version tomorrow. thx again for writing this. :) 14:06
phenny au|irc: I'll pass that on when masak is around.
au|irc waves g'nite...
14:06 au|irc is now known as au|zzz
moritz_ o/ 14:06
jnthn nite o/
pugssvn r31750 | Kodi++ | [t/spec/S32-temporal] Fixed smart links. 14:07
dalek kudo: e3ba686 | moritz++ | t/spectest.data:
run first feed test file
14:09
kudo: a787329 | (Timothy Totten)++ | (2 files):
Added %z to DateTime::strftime.
14:11 TiMBuS left 14:14 TiMBuS joined
moritz_ jnthn: rt.perl.org/rt3/Ticket/Display.html?id=76486 (just look at the last message) seems to be a pretty interesting bug 14:19
jnthn: in particular, if you remove the multi sub a([]) candidate, you get a working dispatch 14:20
but withouth removing it, you get a "No applicable candidates found"
jnthn moritz_: yes, that's one of the ones that I currently have open in my browser.
moritz_ ah
jnthn It's a decided wtf.
My suspicion is it'll turn out to be a silly mistake that'll take me a decent bit of debugging to find.
moritz_ I guess I'm carrying coals to Newcastle :-) 14:21
jnthn Oar man, I guess you are like! 14:22
</geordie> # well, bad impression of :-) 14:23
pugssvn r31751 | moritz++ | [t/spec] test for RT #76476, monkey-typed method new is not called 14:29
moritz_ rakudo: sub foo { my $y; our sub bar { say $y } }; bar 14:30
p6eval rakudo 687837: OUTPUT«Null PMC access in type()␤ in 'bar' at line 20:/tmp/rkrE5IWFBI␤ in main program body at line 20:/tmp/rkrE5IWFBI␤»
pugssvn r31752 | moritz++ | [t/spec] test for RT #76466# 14:33
14:37 Kodi joined, envi_home2 joined
Kodi moritz_: I've sent a patch to [email@hidden.address] twice and I can't find it on rt.perl.org. Are submissions not posted automatically? 14:38
moritz_ Kodi: they go through a manual spam filter, so it can take some time
mberends phenny, tell masak excellent "10th Birthday of Perl 6" blog post. It is beautifully written :-) 14:39
phenny mberends: I'll pass that on when masak is around.
Kodi moritz_: Okay.
pugssvn r31753 | moritz++ | [t/spec] test for RT #76452, list assignment in function call 14:40
14:41 envi^home left
jnthn turing^Wchurch & 14:43
moritz_ rt.perl.org/rt3/Ticket/Display.html?id=76448 is strange indeed 14:46
and the title is a bit misleading 14:47
rakudo: say defined("a" => 3).Int
p6eval rakudo 687837: OUTPUT«Method 'Int' not found for invocant of class 'Pair'␤ in main program body at line 20:/tmp/P1CNHmIjwj␤»
tylercurtis rakudo: say abs("a" => 3).Int 14:49
p6eval rakudo a78732: OUTPUT«Method 'Int' not found for invocant of class 'Pair'␤ in main program body at line 20:/tmp/62BpIQF1ko␤»
tylercurtis rakudo: say abs("a" => 3) 14:50
p6eval rakudo a78732: OUTPUT«Method 'Num' not found for invocant of class 'Pair'␤ in 'Cool::Numeric' at line 1707:CORE.setting␤ in 'Cool::Numeric' at line 1708:CORE.setting␤ in 'Cool::abs' at line 6248:CORE.setting␤ in 'prefix:<abs>' at line 1882:CORE.setting␤ in main program body at line
..20:/tmp/YEvOfaYm…
14:50 masonkramer left
moritz_ rakudo: say defined("a" => 3) 14:50
p6eval rakudo a78732: OUTPUT«1␤»
moritz_ you see, it seems to work for pairs
14:50 JimmyZ joined
ab5tract mberends, where is this post? i don't see it on masak's use.perl.org feed 14:51
tylercurtis rakudo: class Foo { }; say defined(Foo.new).Int
moritz_ it's not yet published... masak posted a gist URL somewhere today
p6eval rakudo a78732: OUTPUT«Method 'Int' not found for invocant of class 'Foo'␤ in main program body at line 20:/tmp/xCFwPreF9Q␤»
moritz_ ab5tract: you can find it in the IRC logs
tadzik gist.github.com/479846
ab5tract thanks :)
moritz_ tadzik++
tadzik :) 14:52
ab5tract while im asking questions
does anyone have a link to TimToady's presentation in which he talks about 'ballistic' aproach to programming?
i believe i received the link here last year (or year before) when i was asking about state of the onions
(or i should just use irc logs..) 14:54
tylercurtis moritz: I think that's parsing as defined(("a" => 3).Int).
s/moritz/moritz_/ 14:55
moritz_ tylercurtis: yes
JimmyZ rakudo: (5,2,6,3) ==> sort ==> my @a; say @a;
p6eval rakudo a78732: OUTPUT«2356␤»
JimmyZ It works! jnthn++
moritz_ ab5tract: I remember that the talk was recorded somewhere on video, but the video wasn't linked on the announcement page or something
TimToady moritz_: it's the parameter $z that isn't used 14:56
tylercurtis rakudo: (5, 2, 6, 3) ==> sort ==> say;
p6eval rakudo a78732: OUTPUT«2356␤»
tylercurtis JimmyZ: you can feed to &say, too. :)
rakudo: (5, 2, 6, 3) ==> sort ==> my @a ==> say; say @a; 14:57
p6eval rakudo a78732: OUTPUT«2356␤2356␤»
moritz_ TimToady: is 'defined' supposed to be a prefix?
TiMBuS perl6 -e 'my @a <== 1..Inf; @a[2..4] ==> say'
345
JimmyZ tylercurtis: aye 14:58
TiMBuS i replaced 'push' with &infix:<:=>
in make_feed
TimToady moritz_: it's not in STD
moritz_ TiMBuS: then try: my @a <== 1..Inf; @a[2..4] ==> say; @a.push: 5; say @a; 14:59
TimToady it's just a method/function, unless we decide it's worth being an exception, which is dubious
well, I'm dubious, it's dubitable
TiMBuS my thunder..
D: 15:00
TimToady bbl &
moritz_ TimToady: then 'abs' shouldn't be a prefix either, no?
JimmyZ night all
15:00 JimmyZ left, ashleydev joined 15:01 JimmyZ joined 15:02 payload left
tylercurtis moritz_: STD appears to parse both abs and defined as tighter than .Int 15:02
15:02 JimmyZ left
moritz_ std: not(1) 15:05
p6eval std 31753: OUTPUT«ok 00:01 112m␤»
moritz_ I don't understand this 15:06
15:06 amkrankruleuen joined
tylercurtis moritz_: Which is consistent with S03, since some-ident(some-args) is always a function call and thus a term. 15:06
moritz_ but why doesn't it complain about not finding a sub &not?
std: foo(1) 15:07
p6eval std 31753: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 112m␤»
moritz_ std: not(1)
p6eval std 31753: OUTPUT«ok 00:01 112m␤»
amkrankruleuen hi
moritz_ ho
tylercurtis moritz_: because STD's CORE.setting declares a proto for not. 15:08
moritz_ huh 15:09
so we have both a prefix and a sub with the same name?
15:09 Kodi left
tylercurtis moritz_: we have abs, don't we? 15:09
moritz_ rakudo: say abs 5 15:10
p6eval rakudo a78732: OUTPUT«5␤»
moritz_ rakudo: say abs(5)
p6eval rakudo a78732: OUTPUT«5␤»
tylercurtis Hmm... S29 says that abs isn't in the default namespace anymore, but S32-Numeric says that it's exported. 15:11
moritz_ screw S29 then :-)
tylercurtis although S32-Basics doesn't say that not is exported. 15:12
pugssvn r31754 | moritz++ | [S29] remove fossile noted by tylercurtis++ 15:13
tylercurtis rakudo: (sin(-30)).abs.say 15:15
p6eval rakudo a78732: OUTPUT«0.988031624092862␤»
tylercurtis rakudo: sin(-30).abs.say
p6eval rakudo a78732: OUTPUT«0.988031624092862␤»
tylercurtis rakudo: say &prefix:<abs> 15:16
p6eval rakudo a78732: OUTPUT«prefix:<abs>␤»
tylercurtis rakudo: say &prefix:<sin>
p6eval rakudo a78732: OUTPUT«Could not find sub &prefix:<sin>␤ in main program body at line 20:/tmp/xO_VkAQcH9␤»
15:17 gbacon left
tylercurtis rakudo: say abs -5, -6; 15:17
p6eval rakudo a78732: OUTPUT«5-6␤» 15:18
tylercurtis rakudo: say sin -5, -6;
p6eval rakudo a78732: OUTPUT«Method 'Bridge' not found for invocant of class 'Failure'␤ in 'infix:<*>' at line 3370:CORE.setting␤ in 'to-radians' at line 2906:CORE.setting␤ in 'Num::sin' at line 3566:CORE.setting␤ in 'sin' at line 3225:CORE.setting␤ in 'sin' at line 1897:CORE.setting␤ in main
..program bod…
tylercurtis moritz_: am I correct in understanding perlcabal.org/syn/S03.html#Named_un...precedence as implying that all unary functions can be used as a named unary prefix operator? 15:20
moritz_ tylercurtis: not sure... that section seems a bit unclear to me 15:22
TiMBuS moritz_, how is @list := <thing> meant to work? '@list := {}; @list.WHAT' gives Hash. should := call '.list' for me? or fail? or just not care?
tylercurtis std: foo 5; 15:23
p6eval std 31753: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 112m␤»
moritz_ TiMBuS: it should fail
tylercurtis std: sub foo ($x) { $x; } foo 5;
p6eval std 31753: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/gOyip4DeWi line 1:␤------> sub foo ($x) { $x; }⏏ foo 5;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse
..failed␤F…
tylercurtis std: sub foo ($x) { $x; }; foo 5;
p6eval std 31753: OUTPUT«ok 00:01 115m␤»
moritz_ TiMBuS: the @ sigil in @list implies Positional. Hash !~~ Positional, so the binding should die
tylercurtis: that just parses as a listop 15:24
more interesting is if foo 5, 6; parses as foo(5), 6; or as as foo(5, 6)
(I suspect the latter)
tylercurtis checks. 15:25
moritz_, you are correct.
15:28 skids left, skids joined
tylercurtis std: sub foo (*@args) is lvalue { 1; }; foo 1,2,3 = 2; 15:28
p6eval std 31753: OUTPUT«Potential difficulties:␤ @args is declared but not used at /tmp/s1Nk6rHDju line 1:␤------> sub foo (*⏏@args) is lvalue { 1; }; foo 1,2,3 = 2;␤ok 00:01 117m␤»
TiMBuS moritz_, well the example you gave before.. "my @a <== 1..Inf; @a.push: 5; say @a;" dies because push isnt part of range. but 15:29
my @a <== (1..Inf).list; @a.push: 5; say @a;
works 15:30
tylercurtis rakudo: my @a <== (1..Inf).list; @a.push: 5; say @a;
TiMBuS locally
p6eval rakudo a78732: ( no output )
moritz_ TiMBuS: yes, but I think that's now how it's supposed to work 15:32
TiMBuS: you could look at how my @a = 1..*; is implemented. It's lazy, and returns an array 15:33
there was also some speculation about .lazypush or so 15:34
which would be the right thing for <<==, and <== could just by @lhs (); @lhs.lazypush(...) 15:35
TiMBuS that would probably be a more complete solution 15:36
moritz_ rakudo: my ($foo, $bar = "baz") = <a>; say "$foo $bar"
p6eval rakudo a78732: OUTPUT«a Any()␤»
moritz_ rakudo: subset Foo of Array where { .elems == 5 }; sub bar(Foo $_) {}; bar([1,2,3]) 15:37
p6eval rakudo a78732: OUTPUT«Nominal type check failed for parameter '$_'; expected Array but got Array instead␤ in 'bar' at line 20:/tmp/u1YrvOGIpH␤ in main program body at line 20:/tmp/u1YrvOGIpH␤»
[Coke] phenny: tell jnthn I just saw his blog post, and added the new blog to 6perl.
phenny [Coke]: I'll pass that on when jnthn is around.
moritz_ rakudo: "foo" ~~ /(foo)/; say "$0a" 15:38
p6eval rakudo a78732: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'Undef'␤»
dalek kudo: 9d73a3e | moritz++ | src/Perl6/Grammar.pm:
Steal series-after-comma warning from STD.pm, TimToady++
15:42
kudo: cd64dd0 | moritz++ | docs/ROADMAP:
add ticket numbers to "improved error modes"
ab5tract moritz_, indeed, i cannot seem to find the video anywhere 15:48
but would like to incorporate the meaphor into my thesis :)
i'll search irc logs later tonight
15:49 ab5tract left 15:54 nbrown joined 15:58 amkrankruleuen left 15:59 Mowah joined, Mowah left 16:08 jedai joined 16:13 stepnem left 16:21 Alias_ left, Alias joined, ashleydev left 16:27 masak joined
masak o/ 16:27
phenny masak: 13:45Z <moritz_> tell masak re your blog draft, it somehow reads as if audreyt++'s gender change was in direct relation to her leaving #perl6. I know it's not meant that way; IMHO you should keep a bit of linguistic distance between the two events
masak: 14:06Z <au|irc> tell masak s/lower-numered/lower-numbered/ too :) I'll readjust the zh translation based on the final posted version tomorrow. thx again for writing this. :)
masak: 14:39Z <mberends> tell masak excellent "10th Birthday of Perl 6" blog post. It is beautifully written :-)
masak moritz_: yes; you're right, it reads that way. I'll tweak it somehow. 16:28
mberends: thank you.
I'm now in publishing mode, by the way. I'm finishing up the script that'll turn this into use.perl syntax.
reading through the post, I'm asking myself whether I really linger on "why I think Jon Orwant's broken mug kicked off one of the coolest projects in modern programming language history." -- I'm basically telling the story as it was, but I'm not sure the great aspects of the language, the community, and the atmosphere carries through enough in the post. 16:32
16:32 PZt left
masak comments and suggestions welcome. :) 16:32
16:32 molaf left
diakopter url? 16:34
fond it 16:35
found it
masak gist.github.com/479846 -- just in case someone else is looking, too.
16:36 _mpu left 16:37 rgrau_ joined 16:39 Mowah joined 16:40 justatheory joined
TimToady moritz_: abs falls into the category of operators that mathematicians expect to be unary, unlike defined 16:42
though I'd be more inclined to make defined a unary than to relax abs to a listop 16:47
16:48 _mpu joined
ingy greetings 16:50
diakopter HOW 16:51
ingy I think I just made a huge discovery 16:52
16:56 rokoteko left, rokoteko joined 16:59 masonkramer joined
tylercurtis ingy: *.WHAT.say 17:00
ingy tylercurtis: I'm written a parser grammar system built on regexp that is curiously close to p6rules 17:02
and used it on a couple perl and python projects
cdent and testml, to be specific
now that I've done a full project in p6rules... 17:03
I am going to go back to the other stuff and make it more like p6rules
and probably abstract it into its own acmeist parsing framework 17:04
(this is still lead up to the discovery...)
so my other stuff takes little regexp bits and combinates them into bigger rules
but the combination is pretty much hand driven 17:05
I'll find and example...
github.com/ingydotnet/cdent/blob/ma...atoms.yaml is the regexp atoms for cdent 17:06
they get combinated in an obvious way into github.com/ingydotnet/cdent/blob/ma...cript.yaml (a grammar for cdent-javascript) 17:07
as I was waking up (the only time that truly good ideas arrive) I realized that unless a rule has an action (by the same name in an action class) it can likely be combinated. 17:08
'combination' is turning several smaller regexps/rules into a bigger one 17:09
in theory, the whole grammar could be combinated into one big (and fast!) regexp 17:10
but that would be not so useful for grabbing parsed parts
in my recent testml-pm6 implementation... 17:12
17:12 gbacon joined
ingy I have over a hundred rules 17:12
but only 16 actions
so it would be nice, if under the hood, I there were only 16 regexps 17:13
</discovery>
time to hack and play with this hypothesis
my hope is to bring most of the goodness of p6rules to all programming languages... 17:22
(with 100 times the speed!)
;)
17:27 szabgab left, szabgab joined
ingy tylercurtis: kwim? 17:31
masak ingy: your discovery sounds a fair bit like LTM to me. 17:34
ingy masak: Last Twelve Months? 17:35
masak ingy: my, are you in for a treat. :) Longest-Token Matching. 17:36
tylercurtis ingy: yes. Sorry. I got distracted reading perl monks and blog posts and such and forgot to check IRC. Sounds like an interesting idea. Although now that masak mentions LTM, I think that there are plans to compile the declarative prefix of rules to automata, which would be pretty similar to your idea.
ingy thing is, I will have this all working by dinner using pcre!
masak LTM is a name for a bunch of strategies for combining the academic view of regexes with the computer engineering view of regexes, getting the best out of both. 17:37
ingy: if you're interested in LTM, I can recommend TimToady's Google Talk. it outlines the basic ideas.
tylercurtis I don't know if any implementations actually do that yet(I'd guess not), but an implementation that did that would be even better than your idea because it would take the parts of even rules with actions that are declarative and automatizes them. 17:38
ingy url?
masak looks
www.youtube.com/watch?v=JzIWdJVP-wo
ingy masak: I'll take a look after I convert testml-pm5 to everything I've learned on my p6 journey 17:39
masak ingy: are you familiar with this page? swtch.com/~rsc/regexp/regexp1.html 17:40
ingy I've actually been doing this p5 combination stuff for over a year
it's great. but p6rules is helping me polish it
ingy looks
masak: very cool 17:41
masak ingy: I'm still not sure how related the Thompson NFA and LTM are idea-wise.
ingy: but I'm totally sold on the former, which I grok completely. I think one of the coolest experiments that can be done to GGE would be adorning it with a Thompson engine. 17:42
ingy masak: btw, I think do a p6rules parser for yaml with you would be great 17:43
masak ingy: me too. let's do that sometime.
ingy now that I know I can backport it acmeistly
masak schedule a few days, and just hack away.
ingy yeah, soon 17:44
17:44 envi_home2 left
masak I doubt I'll have the peace of mind before YAPC::EU. 17:44
ingy: are you coming to that one?
ingy ok
sadly no
masak ~~ Sad
ingy masak: I'll check the flights... 17:49
masak yay
ingy masak: what airport?
masak ingy: Pisa or Bologna, depending. 17:50
YAPC::EU is in Pisa, but not all airlines go there.
17:52 rv2733 joined
ingy masak: next year! 17:54
masak heh. 17:55
pmichaud hugme: tweet rakudoperl Rakudo now supports feed operators: 6guts.wordpress.com/2010/07/18/fixes-and-feeds/ 18:04
hugme hugs pmichaud; tweet delivered
masak pmichaud: oh hai -- great that you're here. do you have time to read the anniversary post before I publish it. 18:05
I'd love to hear your feedback in general and on the early Rakudo history in particular.
hm, I seem to forget to put question marks on my questions lately. :/ 18:09
diakopter so when's the Bronze Age? ;) 18:11
masak let's not get ahead of ourselves :) 18:12
pmichaud masak: url?
(I just popped in, haven't read backscroll yet)
masak gist.github.com/479846 18:13
pmichaud: I plan to publish it in about 15 minutes, but I'm willing to wait for your comments, if you have the time.
18:14 [synth] joined
masak I've already had excellent comments from au|zzz, moritz_, mberends, tylercurtis and diakopter. 18:14
pmichaud reading 18:15
masak adds a link to pmichaud's R* post at the end
jnthn++ # feed ops! nice! 18:16
18:16 synth left
pmichaud "Many of the lower-numbered 18:17
ones are fairly stable these days; a lot of the higher-numbered ones are still
drafts."
I'm not sure I can agree with that. :-)
masak maybe I should just scrap that one.
18:17 rv2733 left
masak it's an oversimplification, to be sure. 18:17
pmichaud Perhaps
diakopter reference S01...
18:17 Mowah left
diakopter (or quote it) 18:18
masak pmichaud: is it the "fairly stable" part that you disagree with? :)
pmichaud masak: yes. S07 and S08 have to be considered wrongish
masak because I would classify S03, S05 and S06 as "fairly stable".
pmichaud but even S03 and S04 get their share of deep changes still
masak ok. removing sentence. 18:19
pmichaud I'd rephrase it
I think there's important information there
(rephrasing)
masak later in the text, I do mention the "whirlpool design/development".
18:19 macroron joined
pmichaud "In general, synopses 2 through 6 and 12 through 14 tend to be fairly stable, although changes still occur. The remainder of the synopses are still drafts for the most part, awaiting more feedback from implementations." 18:21
or something like that 18:22
(hard to compose at the moment -- cousins and aunts and uncles talking in background. I'll be free in about 15 mins)
masak I'll see if I can work that into the text. thanks.
pmichaud or you can just delete it.
masak it's deleted, and now I'm seeing if I can add something like your version back. :) 18:23
pmichaud I do think it's worth noting somewhere that the synopses are neither static nor complete
masak I have "kept up-to-date" in there. 18:24
that implies not static.
18:25 rgrau__ joined 18:26 araujo left
masak pmichaud: there. I adopted the rephrase more or less wholesale. the updated gist.github.com/479846 also has R* links at the end. 18:27
18:27 rgrau_ left
pmichaud back again 18:31
paula is reading the article now too :-)
masak \o/
pmichaud I don't know how to improve the text in any way on this point -- but truthfully I've been working on Rakudo since 2005. 18:35
whereas the article makes it sound as though it started in 2008.
masak let's fix that.
I think I wrote somewhere that Rakudo came about as the result of many year's groundwork. 18:36
pmichaud yes, that part is there.
masak but I want that to be extra clear, so let me just review that part again.
pmichaud pugs did garner all of the press in 2005 and 2006 (rightfully so)
masak pmichaud: "since that time" -> "since 2005". will that make it better?
pmichaud yes. 18:37
masak "[...] Rakudo took off in 2008 only because Patrick Michaud had spent a significant amount of effort since 2005, building the toolchain to make his vision of Perl-6-on-Parrot a reality."
pmichaud and it wasn't just my vision :-)
truthfully, my vision has always been to have a working Perl 6.
"on Parrot" was just because that's the direction the core Perl 6 team had aimed me initially :) 18:38
so perhaps "the vision" is better than "his vision"
masak right.
oki
tadzik hmm. Is there a chance that Rakudo Star would be able to fully separate compilation and running? Now it can output PIR, but Parrot can't run this PIR anyway 18:39
pmichaud tadzik: I might be able to clean that up before Star.
tadzik yay!
pmichaud tadzik: it does do separate compilation for modules.
masak pmichaud: when I wrote it, I thought about the previous attempt at Perl 6 on Parrot, and pictured you taking over and saying "now let's try this way of doing things".
pmichaud masak: closer to the truth would be that the core team looked at the previous attempt and said "this isn't working out", then cast about for a new "compiler pumpking" and handed me the job. :-) 18:40
masak tadzik: to the extent compilation and running are separate... :) BEGIN and &eval intentionally confuses the two, each in one direction.
pmichaud: sure, sure, but you obviously came in with the idea of starting at the grammar engine level, something no-one had done before. 18:41
pmichaud correct
masak that's what I'm trying to convey in the text.
pmichaud After looking at the spec and the design of Perl 6, I basically said "in order for any of this to work, we have to have a working grammar engine first." 18:42
masak the fact that Rakudo was really PGE -> PCT -> Rakudo, hence the work in the shadows 2005-2007.
pmichaud so that's where I started. :-)
there's also 18:43
www.mail-archive.com/perl6-internal...23429.html
and
www.mail-archive.com/perl6-internal...23564.html
masak I'll link in the second one as a source to starting at the PGE end. 18:44
pmichaud wfm
masak pmichaud++
18:45 macroron left, macroron joined
pmichaud instead of "Perl 6 has landed", I think I'd rather go with a meme of "Perl 6 takes off" 18:47
or something that indicates we're entering the next phase of development, instead of marking a destination.
masak agreed. changing.
pmichaud I'm not entirely sure about that yet. But since I sometimes refer to "Star" as "a phase of development" like the Mercury-Gemini-Apollo phases, "has landed" carries too much of a sense of "mission accomplished" 18:48
masak nodnodnod
pmichaud although perhaps I should get a picture of myself on an aircraft carrier with a big banner tha...... never mind. 18:49
masak :P
scary, I actually know enough of the US to soak up that reference.
pmichaud podlogs.com/thirdtime/files/2010/05...lished.jpg
masak aye. 18:50
pmichaud :-)
maybe I should work that image into my "Rakudo Star" talk for YAPC::EU :-P
masak yes, please do! :)
pmichaud although perhaps the parallels aren't good ones to draw 18:51
(quagmire, incompetence, etc.)
might have to finesse it a bit too much to make it work
masak perhaps. 18:52
ok, going into publishing mode.
pmichaud let me see if paula had any comments
masak sure.
I will also fashion a catchy tweet to go with this post. 18:54
I never did get ahold of Mr. Orwant. maybe he doesn't log into Twitter very often. 18:55
oh, and snarkyboojum also found a typo. forgot to credit him earlier. 18:57
rakudo: sub foo { say $_ }; { foo("HAI") } 18:59
p6eval rakudo cd64dd: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'foo' at line 20:/tmp/_dJIMaf0CG␤ in main program body at line 20:/tmp/_dJIMaf0CG␤»
masak did I just dream that, or didn't we default to some *@_ signature at some point or other?
moritz_ back
masak: the default signature was *@_, *%_
ie when no signature was provided
masak moritz_: above, no signature is provided. 19:00
pmichaud masak: actually, I'm wondering if the second paragraph about "Rakudo" needs some changing.
masak pmichaud: I was hoping you'd say that. 19:01
it doesn't feel 100% yet.
pmichaud it makes it sound as though Rakudo is post-Pugs, when in fact the two were being developed simultaneously
masak ...which is explained in the third paragraph. 19:02
but I can point it out in the second, too.
cxreg masak: www.spidereyeballs.com/os5/images/s...6_9705.jpg
pmichaud yeah, I'm trying to see how I'd word it
masak cxreg: yes?
cxreg masak: wasnt sure if you'd seen that picture :) 19:03
masak cxreg: the TimToady quote at the top about the mug throwing is from the same page :)
I do hope I put a link in there somewhere, too...
cxreg oh ok :)
masak yes, I did. 19:04
19:04 cono left
masak pmichaud: the history is told from my perspective. I honestly didn't pay attention to Rakudo before it got its name "Rakudo". 19:05
cxreg right, sorry
pmichaud masak: sure, I understand that :-)
masak: and in many ways, your perspective is the public one :)
masak cxreg: no need to be sorry. thanks. :)
pmichaud i.e., the one that most people have about Perl 6
I'm just trying to clarify the history a bit :)
19:05 cono joined
masak pmichaud: do you think it's insufficiently clarified in paragraph 3? if not, I'm tempted to leave it as it is. 19:06
pmichaud I think p3 is okay, but p2 sets an incorrect tone leading into p3
masak ok, I'll re-read it and try to see that.
pmichaud: when I said "I was hoping you'd say that." above, I was under the impression that you had some comments on the final section of the post. :) no-one has commented on it yet. am I doing all I can to pull attention toward R* there? 19:07
pmichaud I think part of what reads wrongly is "Pugs contender"
(drafting)
masak oh, ok.
pmichaud put another way, I agree that P3 clarifies P2, but I'd rather it not read as a clarification. I'd rather what comes next to be correct without needing clarification :) 19:08
19:08 ashleydev joined
ingy masak: ping me when you are done with your current task 19:08
masak well, recall that when Pugs went dark in 2007, we were left with exactly one big project that implemented Perl 6. it was only gradually from early 2008 up until, well, now, that I've felt Rakudo to step into Pugs' shoes. 19:09
19:09 whiteknight joined
pmichaud I totally agree with that. 19:09
masak pmichaud: P3 doesn't contratict P2. it just fills in details.
I don't really see what I could change.
pmichaud (working)
masak afk & 19:10
19:10 araujo joined 19:12 ashleydev left, pmurias joined
masak back 19:12
pmichaud masak: how important is it to mention the abandoned Perl 6 on Parrot? 19:13
19:13 gbacon left
masak not extremely. I have it there mostly for completeness, since I mention Topaz, Sapphire and Ponie. 19:14
pmichaud I think it should be moved out of the Rakudo section. I have a new draft coming together -- should be ready in about 3 min
cxreg pmichaud: it reminds me of when mozilla was pre-1.0 and they abandoned the Netscape code. for a while, Mozilla was the butt of everyone's jokes, and held up as some alleged example of why "open sourcing" stuff is not the great idea it was made out to be
19:14 masonkramer left
cxreg most people dont remember those days 19:14
masak does
cxreg: it's also one of Joel Spolsky's examples of why you shouldn't rewrite things from scratch. Perl 6 seems to be his other one. 19:15
tadzik where in Rakudo source is the part which is in charge of reacting on perl6 -e 'say "something"'?
cxreg masak: he's a chump :)
tadzik I wonder how hard would it be to implement things like -n, -p, -l or -M 19:16
moritz_ tadzik: that's somwhere in PCT, not in the Rakudo source
masak tadzik: I like the way you're thinking. :)
tadzik masak: what do you mean?
moritz_: so where am I to look?
pmurias cxreg: is mozilla based on netscape code?
cxreg pmurias: very little of it still remains 19:17
masak tadzik: I've had the same thought many times, and felt that it shouldn't be so hard to add -n, -p et al.
moritz_ tadzik: in parrot, pct/src/PCT/HLLCompiler.pir
cxreg pmurias: but that was the origins, of course
moritz_ compilers/pct/src/... actually
tadzik oh gosh. perl6 -e is handled by parrot? :/
masak tadzik: now you see why I actually never got around to it... :/ 19:18
it also leaves S19 in a slightly awkward position.
pmichaud masak: how about something like gist.github.com/480634
masak looks
moritz_ likes 19:19
pmichaud after that, you can add the part that Jonathan joined the effort in 2007, and we've been adding feature after feature since 2008.
masak pmichaud: that replaces P2, but also makes much of P3 unnecessary. should I just scratch P3? 19:20
pmichaud masak: yes, it's designed to be a replacement P2+P3
or really
replace P2 and first part of P3
masak pmichaud: I like the later parts of P3.
pmichaud right
masak right, good.
we has an agree.
pmichaud you can also fit in somewhere that you didn't pay much attention before it got the name "Rakudo"
masak removing P3 up until "Patrick had a vision..." :) 19:21
oki
pmichaud anyway, I like this better --it makes it clearer that Parrot and p6-on-parrot weren't abandoned during pugs, just that they were slower in coming
masak aye. 19:22
updated. gist.github.com/479846
pmichaud also, perhaps in a later paragraph you can identify a point where Rakudo became a Pugs contender
I agree it wasn't one until at least the latter part of 08
masak new paragraphs start on line 331. 19:23
I don't feel a need to add "Pugs contender" now. people may draw their own conclusions in comparing apples and oranges. :)
pmichaud tbh, I don't feel as though I recruited jnthn++. I just finally got the system to the point where it was possible for others to participate, and jnthn++ showed up. :) 19:24
masak s/recruited/bumped into/ ? :)
tadzik Stage 'past': 3.69548797607422e-05 sec
looks long, what is in it? 19:25
moritz_ rakudo: say 3e-05
p6eval rakudo cd64dd: OUTPUT«3e-05␤»
masak Rakudo++
moritz_ rakudo: say (3e-05).Rat
p6eval rakudo cd64dd: OUTPUT«3.0000300003e-05␤»
moritz_ tadzik: it's 0.3ms
tadzik oh
pmichaud it's more like "Jonathan Worthington saw the work that Patrick was doing with the Perl 6 implementation, and jumped in implementing junctions (and along the way added multi-dispatch, the type system, the O-O metamodel...) 19:26
moritz_ PAST is one of the intermediate formats
tadzik hides
19:26 whiteknight left
moritz_ tadzik: perlgeek.de/blog-en/perl-6/rakudo-overview.html might interest you 19:26
masak pmichaud: dang, then I lose "intrepid" :P
moritz_ you can still get it in there 19:27
pmichaud "...with the Perl 6 implementation, and being the intrepid guy that he is, Jonathan jumped in ...."
tadzik I remember looking at this today :)
masak pmichaud: is it untrue that jnthn had promised to take a look at junctions?
tadzik still I don't really get it: why perl6 -e is the Parrot thing?
pmichaud it's not untrue
masak then I think I'll leave it in, and just scratch the "recruited" part. 19:28
pmichaud wfm
tadzik is perl6 really something like parrot -something perl6.pbc <code>?
pmichaud tadzik: -e is common to many languages, not just Perl 6
tadzik: so Parrot's HLLCompiler object implements a -e option that can be used by compilers
tadzik so rakudo does not parse perl6 switches itself?
pmichaud tadzik: individual compilers can override the -e implementation if they wish
tadzik I see 19:29
pmichaud tadzik: so far Rakudo hasn't needed to do that
19:29 stepnem joined
pmichaud s/hasn't needed .*/hasn't done that yet/ 19:29
moritz_ pmichaud: how would rakudo do that?
tadzik So implementing -lpnM won't be as easy as I thought :)
moritz_ is there an example somwhere?
tadzik (I thought -e is something like compile_and_run($ARGV[1]))
pmichaud tadzik: -p and -n require implementation of custom settings
in truth, the entire command line argument processing system needs revision, because HLL::Compiler really wants to do S19-like processing. 19:30
moritz_ tadzik: rakudo needs to do that itself at some point anywway, so I'm willing to try to explore command line parsing at some point
pmichaud i.e., I'd like nqp to have an argument processor built in to the HLL::Compiler object
(and this is what particle++'s hague grant is supposed to provide)
moritz_ is kinda confused by that fact that PCT and NQP-rx seem to overlap in quite some places 19:33
and then I don't know which part rakudo uses, and what to change
pmichaud rakudo uses nqp-rx. end of story
some parts of nqp-rx come from PCT
moritz_ identifying those parts isn't alwys easy 19:34
pmichaud moritz_: agreed
in many ways it's a problem of ENOTUITS
I expect much of what is currently in PCT:: to eventually be part of nqp-rx
but I haven't always had time to do that migration
tadzik I sense a lie: wklej.org/id/366095/
masak blog post is now live. use.perl.org/~masak/journal/40451 19:35
moritz_ masak++
masak thanks to everyone for their comments and help.
pmichaud tadzik: runtime
tadzik so it's not included?
Stage 'evalpmc', what's this?
pmichaud tadzik: it's not considered a compilation "stage"
evalpmc is the part that converts pir into bytecode
it's not the execution of the bytecode 19:36
tadzik ah, ok
pmichaud (each stage is named for what it produces, not what it does)
moritz_ hugme: tweet rakudoperl Happy 10th anniversary, #perl6: use.perl.org/~masak/journal/40451 19:39
hugme hugs moritz_; tweet delivered
masak moritz_++
moritz_ I've submitted it here: www.reddit.com/r/programming/commen..._personal/ 19:42
masak woot 19:43
19:43 plobsing joined
moritz_ maybe somebody wants to submit it to r/perl/ too, but I'm inclined to shout out of the echo chamber 19:43
masak absolutely. 19:44
more enlightening comments that way, too.
moritz_ fsvo "enlightening"
if you want a serious discussion, submit it to hackernews 19:45
tadzik moritz_: on r/perl/ it would be alike, probably with less comments, less upvotes and less trolling :)
moritz_ but so far I didn't seem to have found titles that the hackernews guys find sufficiently interesting
masak @obra++ retweet. yay. 19:47
19:48 whiteknight joined
moritz_ just implemented 'yesterday' in IR clog URLs 20:00
masak \o/
moritz_: only 'tomorrow' left.
moritz_ masak: I wait for a time-travelling logger :-) 20:01
masak we could really use one of those. 20:02
think of the implications!
moritz_ better not, my brain would melt
masak bah, strange loops aren't dangerous, just weird. :P 20:03
avar++ posted blog post to Hacker News. news.ycombinator.com/item?id=1526575 20:06
moritz_ and currently on the second item of the front page 20:07
these are the times when I pity the fact that use.perl.org doesn't offer visitor stats
masak should move to another blogging platform 20:08
frettled masak: something written with Web.pm, perhaps? :)
masak frettled: yeah, ideally. 20:09
frettled Blog.pm
masak we started two or three projects called Yarn at one point.
frettled hmm 20:10
moritz_ masak: if you want to withstand reddit or slashdot, you need to generate static pages :-) 20:11
masak I've been leaning to such ideas lately.
feels more on the level of what Rakudo can handle at this point anyway.
frettled It's also sensible if you want to avoid the mistakes of WordPress et al, which have had bunches of security vulnerabilities in their history. 20:12
moritz_ I'm not sure that's directly related
frettled moritz_: It seems to have an extremely high correlation with it. 20:13
…but only if you read security bulletins, surely. 20:14
moritz_ frettled: has blosxom a similar security record?
it also generates all pages on-the-fly by default
frettled moritz_: which version?
Let's see. XSS in 2008 for 2.x, at least. 20:15
unpatched XSS in 1.x 20:16
That's from less than 80 seconds of searching on secunia.com.
tadzik Hmm. One can do my $squares = gather for 0..Inf { take $_ * $_}; Why exactly won't it work with @squares? 20:20
moritz_ list assignment is special, and too eager today 20:21
masak tadzik: list assignment is eager.
mathw masak: You wrote the best blog post of the $timeperiod
masak mathw: thanks :)
mathw: took about that long, too. :)
tadzik moritz_: today, so it might change? 20:22
masak tadzik: use binding if you want lazy behaviour.
mathw masak: and I'm in one of your IRC quotes, I'm having a bit of a 'whoa' moment :)
masak :)
mathw updates Rakudo 20:25
moritz_ tadzik: it should change, IMHO 20:29
jnthn back
phenny jnthn: 15:37Z <[Coke]> tell jnthn I just saw his blog post, and added the new blog to 6perl.
jnthn [Coke]: Thanks!! :-) 20:30
masak I don't like the comment on news.ycombinator.com/item?id=1526575 -- but for now I'm refraining from replying. not sure I'd be able to reach the fellow in question anyway.
jnthn found a pub in Lund that serves German Weissbier! o/ o/
masak jnthn: congratulations :)
jnthn :-) 20:31
ingy rakudo: grammar G { rule x { 'x' } }; say G.parse('x').perl
p6eval rakudo cd64dd: OUTPUT«Method 'TOP' not found for invocant of class ''␤ in 'Grammar::parse' at line 5490:CORE.setting␤ in main program body at line 20:/tmp/gM8whqOHJl␤»
ingy can you tell a grammar what rule to use as 'TOP'? 20:32
moritz_ ingy: you can use indirection in TOP
ingy moritz_: ?
masak ISTR there's a named param you can send to .parse, as well.
moritz_ ingy: method TOP { <x> } 20:33
ingy I want to be able to use the same grammar for multiple parses
20:33 Trashlord left
tadzik by the way, are backticks expected to work til Rakudo Star? 20:33
ingy moritz_: sure. but not what I need
moritz_ tadzik: backticks are not part of the Perl 6 spec
masak tadzik: backticks are reserved for user-defined sublangs. 20:34
tadzik oh
masak tadzik: if you want run() or qx[], that's there already.
moritz_ and qx/qqx are implemented
tadzik ah, great
20:34 Trashlord joined
tadzik run() is like P5's system()? 20:34
jnthn masak: heh, can't believe the ASCII YMCA made it into your post :P
moritz_ rakudo: say qx/echo hi/
p6eval rakudo cd64dd: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/nBizWZLoC_␤ in main program body at line 20:/tmp/nBizWZLoC_␤»
tadzik :)
ingy jnthn: can you tell a grammar what rule to use as 'TOP'?
moritz_ masak: I replied on hackernews... don't know if that was a good idea :-) 20:35
masak jnthn: it was harder to find a quote representative of our current culture than I initially thought. in the end, I just went to April 1 this year and took the first funny thing I could find. :P
moritz_: :)
moritz_ rakudo: grammar G { rule x { 'x' } }; say G.parse('x', :rule<x>).perl
p6eval rakudo cd64dd: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ from => 0,␤ orig => "x",␤ to => 1,␤)␤»
moritz_ ingy: better?
:-)
ingy moritz_: perfect, thanks 20:36
masak moritz_++
ingy I really do have a good reason for this :)
moritz_++
moritz_ now let's make sure it's spec...
tylercurtis moritz_: I replied in a more serious manner to that. :) 20:37
ingy I want to generate my testml p6rules grammar from the canonical yaml grammar
masak I don't say this often enough. y'all rock. rock on, #perl6.
20:37 masonkramer joined
tylercurtis On the plus side, if they're quoting the post to make snarky comments, at least they had to read at least part of it. 20:38
ingy right now my p6 grammar (which is actually two grammars) is 2 separate grammar classes that inherit common parts
tmtowtdi 20:39
20:39 mkula joined
ingy std: grammar G { rule x { 'x' } }; say G.parse('x', :rule<x>).perl 20:40
p6eval std 31754: OUTPUT«ok 00:01 117m␤»
masak tylercurtis: you get extra points for honesty for that comment. prepare for further snide replies.
pugssvn r31755 | moritz++ | [S05] specifiy that .parse can invoke other subrules than TOP by name
ingy \o/ 20:41
masak seen on Twitter: "looks like it'll be *this* Christmas" :)
moritz_ for some "it", yes
jnthn moritz_: (use.perl.org visitor stats) It's been kinda crazy moving to Wordpress just now and having htose. 20:42
*those
moritz_ (at least on reddit I can downvote non-sensical comments) 20:43
jnthn moritz_: 258 pageviews after just one post on there isn't at all bad going.
masak here's someone who gets it. news.ycombinator.com/item?id=1526674 20:44
20:45 mkula left, mac joined
mac Hi 20:45
masak mac: hello!
mac: happy 10th anniversary!
mac Yay, I know ;) same wishes to you 20:46
mathw \o/ 20:47
jnthn pmichaud: (I expect much of what is currently in PCT:: to eventually be part of nqp-rx) +1. In fact, I'd been meaning to ask you about that. :-) 20:48
mac I have question about "magic star", can some1 explain me quicksort from wikipedia? Because it's emberassing to me so much. I understand it mostly, except 1 thing: we have 2 args: $pivot and *@rest, but our sub expects just one, how it's possible? We make quicksort(@arr), and all's fine, how's it going?
jnthn mac: It's using sub-signatures. (more) 20:49
20:49 tomaw left
jnthn mac: You can take one parameter, and then treat that parameter as if it was an argument list itself, and use a signature to match against it. 20:49
20:49 snarkyboojum joined
masak mac: the secret is in the [] in [$pivot, *@rest] 20:49
jnthn mac: So in the case of an array, it just treats each element as if it was a parameter. So all it's doing is taking the first element of the array into $pivot, and leaving the rest in @rest 20:50
20:50 awwaiid joined
jnthn masak: Yes, exactly. :-) 20:50
20:50 tomaw joined
pmichaud jnthn: (PCT -> nqp) it's been my plan for a long time to move a lot of the PCT:: stuff to be written in nqp; but ENOTUITS 20:50
jnthn mac: The thing is that the multi-dispatcher knows about these sub-signatrues, so it can look at the parameter that's been passed and say "OK, does it have at least one element?"
masak and that example... will need a 'proto quicksort' declaration eventually. ewww! 20:51
jnthn pmichaud: You expect to write it in NQP too?
pmichaud: +10 ;-)
pmichaud jnthn: much of it already is (sorear++)
at least the HLL::Compiler object is
jnthn pmichaud: Aye. PAST::Node and PAST::Compiler probably should also be.
pmichaud and iirc, bacek++ is writing POST->pbc using nqp-ish stuff (might be wrong there)
jnthn pmichaud: OK, great. 20:52
mac hmm... so if I put arg @array into [ and ], I will get (in sub) every element like a separately argument?
So... if it goes that way, what does "*" stands for "@rest"? 20:53
tylercurtis pmichaud: kinda. He has his own new version of POST that isn't so stringy, so PCT would have to be moved over to compiling from PAST -> POST.
jnthn pmichaud: Reason being that I hope to be able to compile attribute accesses and method calls from nqp very efficiently in the common case.
tylercurtis pmichaud: from PAST -> oldPOST to PAST -> newPOST, rather.
jnthn pmichaud: But have no intentions of inventing a PIR way to do it that is anything like as neat.
masak mac: it stands for "slurpy", as in "slurp up all of the rest of the elements of the [] array into @rest" 20:54
mathw masak: ufo seems to be broken
pmichaud tylercurtis: yes, you are correct. I'm fine with moving PAST::Compiler to produce newPOST
masak mathw: ok. moritz_ said earlier today he'd break it. maybe he succeeded.
pmichaud actually, that just becomes another compiler :-)
masak rebuilds Rakudo and tries ufo
tadzik rakudo: sub foo ([$a, $b]) { say "$a and $b" }; my @arr = 1, 5; foo @arr
p6eval rakudo cd64dd: OUTPUT«1 and 5␤»
mathw masak: it's something in Enum::ACCEPTS
and by the way
those Perl 6 backtraces are AWESOME
was that you jnthn? 20:55
masak :)
jnthn Huh, what...I'm innocent!
masak it was. jnthn++
tadzik rakudo: sub foo ([$a, *b]) { say "$a and $b" }; my @arr = 1, 2, 3, 5; foo @arr
mathw jnthn++
tylercurtis pmichaud: inline nodes will probably be tricky, though.
p6eval rakudo cd64dd: OUTPUT«===SORRY!===␤Malformed parameter at line 20, near "*b]) { say"␤»
tadzik rakudo: sub foo ([$a, *$b]) { say "$a and $b" }; my @arr = 1, 2, 3, 5; foo @arr
p6eval rakudo cd64dd: OUTPUT«Too many positional parameters passed; got 4 but expected 2 in sub-signature␤ in 'foo' at line 20:/tmp/EYSmJAr_wx␤ in main program body at line 20:/tmp/EYSmJAr_wx␤»
pmichaud tylercurtis: well, at some point I hope we can eliminate inline nodes
tadzik there we go, sub-signatures
pmichaud "inline" is almost by definition "we're cheating here because we don't have something better" 20:56
jnthn Woo, it even tells you in the error it was in a sub-signature. :-)
pmichaud in a lot of places we now have better options, like pir::
tadzik that's probably another thing I think of "I'd probably never use it anyway" and I'll probably use it every single time once I understand it
jnthn I guess awesomer would be to say which parameter we were unpacking.
masak jnthn: it would. but I realize that's hard, both to implement and to decipher. 20:57
jnthn tadzik: Once you understand it, you can use it outside of multi-dispatch and sub/emthod sigs too.
mac hmm, masak could you show me any other example of using it? That star in this context always means put the rest into what_stands_after_star?
masak mac: sure thing. let me put together an example or two.
tadzik gosh, the amount of trolling on reddit is overwhelming 20:58
tylercurtis mac: *%foo is a slurpy hash; it takes all the named arguments. *@bar is a slurpy list parameter; it takes all the positional arguments.
jnthn tadzik: You can smart-match a data structure against a literal signature anywhere in your code.
tylercurtis mac: and.... let me check what *$foo does.
jnthn %foo ~~ :(:$foo!, :$bar!) # the hash %foo must have keys foo and bar and no others 20:59
tadzik jnthn: nice
masak rakudo: sub f($a, $b, *@c) { say $a; say $b; say @c.perl }; f(1, 2, 3, 4, 5)
p6eval rakudo cd64dd: OUTPUT«1␤2␤[3, 4, 5]␤»
tylercurtis mac: here's an example of slurpy scalars:
masak mac: does that help?
jnthn tylercurtis: danger danger unimplemented :-)
tadzik :D 21:00
mathw oh dear
jnthn should get around to that.
tylercurtis mac: oh, well, I guess Rakudo doesn't have slurpy scalars yet.
mathw new weirdnesses in the Form tests
what's the status of modules exporting subs at the moment?
mac Ye, looks better now ;) So there are rules what exactly means *@ and *% between [], ok, it's clear now ;)
tylercurtis mac: but when it does: "sub head (*$h, *@t) { $h; }" should return the first element of its argument list. 21:01
tadzik I'd love to see a cheatsheet with uses of *
tylercurtis mac: Slurpy params can be used in the main argument list, as well.
masak "After reading that, it seems like Perl has rather nice community. If Python has engineers and Ruby rockstars, then I'd say that Perl has hackers." -- from Hacker News \o/
mac Sorry for my dumby question, I know I'm little annoying, but it's fascinating me and I really want to know how it's going on. I torture tadzik very often, but today he told me to join here, and ask you guys ;)
masak mac: you're not in the least annoying. :) 21:02
mac: ask more questions! :P
mac tylercurtis: don't you need [] in this case?
tylercurtis mac: it depends on how you want the function to be called.
mac what do you mean by this?
tadzik [] will be if you were passing an array, no?
tylercurtis mac: if you want to use head(1, 2, 3, 4, 5), then you don't need [].
mac: if you want to do head([1,2,3,4,5]), you do. 21:03
tadzik sub head (*@_) { shift }; head(3, 4, 1, 2);
sub head (*@_) { shift }; say head(3, 4, 1, 2);
aw
rakudo: sub head (*@_) { shift }; say head(3, 4, 1, 2);
p6eval rakudo cd64dd: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in 'shift' at line 2810:CORE.setting␤ in 'head' at line 20:/tmp/DpyKFQjyXT␤ in main program body at line 20:/tmp/DpyKFQjyXT␤» 21:04
mac in the wikipedia's example of quicksort we use quicksort(@before),$pivot,quicksort(@after) without [], so why [] in prototype?
pmichaud rakudo: sub head(*@_) { @_.shift }; say head(3,4,1,2);
p6eval rakudo cd64dd: OUTPUT«3␤»
tadzik mac: [] creates an array
tylercurtis mac: because @before and @after are arrays.
tadzik quicksort expectes an array
mac ah, ok
tadzik so you need [] in prototype, but not when passing the actuall array to it
21:04 ashleydev joined
tylercurtis mac: in my head(1,2,3,4,5) example, you're just passing it a number of arguments. 21:04
masak rakudo: sub foo { say @_.perl }; foo 1, 2, 3, 4, 5
tadzik pmichaud: shift doesn't use @_ by default?
p6eval rakudo cd64dd: OUTPUT«[1, 2, 3, 4, 5]␤»
masak \o/
mac yup, ok now it's clearified (surely more than before ;) ) 21:05
masak tadzik: correct. it doesn't.
tadzik: generally, "magical" default have gone away in Perl 6.
s/default/defaults/
mac masak: thanks for your tolerance ;)
tadzik so what was wrong in my snippet?
ah, it doesn't
pmichaud tadzik: shift expects an argument 21:06
tadzik I see
pmichaud (the thing you want shifted)
tylercurtis tadzik: ".foo" replaces most of the implicit $_ and @_ default argument stuff in Perl 6.
pmichaud rakudo: sub head(*@_) { shift @_ }; say head(3,4,1,2);
p6eval rakudo cd64dd: OUTPUT«3␤»
tadzik so there should be {.shift}?
pmichaud well, .shift would work on $_, not @_
but even easier:
oh, nm.
(my "even easier" would not have worked in general) 21:07
masak rakudo: sub foo { given @_ { say .shift } }; foo 1, 2, 3
p6eval rakudo cd64dd: OUTPUT«1␤»
masak :)
tadzik sub foo (Array $_) { .shift }; foo [3, 1, 4];
rakudo: sub foo (Array $_) { .shift }; foo [3, 1, 4];
p6eval rakudo cd64dd: ( no output ) 21:08
pmichaud ENOSAY
tadzik ah, whatever
I got used to the REPL
pmichaud yes
I wish we could get p6eval to act similarly :-)
masak we did that once.
didn't end well. :/
tadzik that is he place where -p would be nice :)
mathw okay so the backtraces aren't perfect... 21:09
masak tadzik: would -p in p6eval process each utterance on #perl6 and print something in response? because, and I tell you this now to save you possible work, I would not like that. :P
tadzik ;)
masak pmichaud: the grammar.g file at github.com/rakudo/rakudo/blob/1b6cb.../grammar.g makes me feel so much better about Yapsi. :) 21:12
mberends :) 21:13
o/ masak. commute nl->uk 21:14
pmichaud masak: yes -- I consider that file to be the genesis of STD.pm :-P
21:14 mberends left, ashleydev left
masak mberends: have the appropriate amount of commuting! 21:15
tylercurtis I've decided on my preferred new way of explaining Perl 6's syntactic extensibility: "Common Lisp reader macros that play well together, but so easy that even I can write." 21:17
masak look at the Blue Collar Creed in TimToady SoTO 2003 talk at www.perl.com/lpt/a/760 -- reading that feels so right just now, and makes a wonderful contrast to mean comments on HN and Reddit.
mathw man, Form.pm is really broken
masak s/TimToady/TimToday's/
mac tylercurtis: in your example... "sub head (*$h, *@t) { $h; }" what will happen when you erase first star? I mean code like this: "sub head($h,*@t) { $h; }". When I run it under p6, with various args passed to head(), the result is the same as on your code
What's the difference?
tylercurtis rakudo: sub head ($h, *@t) { $h; }; say head(); 21:18
p6eval rakudo cd64dd: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤ in 'head' at line 20:/tmp/aHMugc0Kit␤ in main program body at line 20:/tmp/aHMugc0Kit␤»
mac rakudo: sub head (*$h, *@t) { $h; }; say head();
p6eval rakudo cd64dd: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤ in 'head' at line 20:/tmp/2zbhrYtA7P␤ in main program body at line 20:/tmp/2zbhrYtA7P␤» 21:19
tylercurtis mac: the difference is that without the star or some other indicating of optional-ness, $h is a required parameter.
mac: rakudo doesn't seem to do slurpy scalars right yet.
21:19 shakesoda joined
tylercurtis rakudo: sub head ($h?, *@t) { $h; }; say head(); # not really sure if this works 21:19
mac uhm, but it'll work as you said, yes?
p6eval rakudo cd64dd: OUTPUT«Any()␤»
tylercurtis rakudo: sub head ($h?, *@t) { $h; }; say head(1, 2, 3); # not really sure if this works
p6eval rakudo cd64dd: OUTPUT«1␤»
masak tylercurtis: it works. the order is requireds-optionals-slurpy. 21:20
mathw Okay, who changed/broke/fixed accessing classes defined in other modules? 21:21
tylercurtis masak: Are you sure? jnthn said "danger danger unimplemented" when I started talking about it.
jnthn *$x is NYI.
masak tylercurtis: what's unimpl is... what jnthn said.
jnthn Unless somebody is a ninja signature binder hacker. :-)
And sneaked the patch in without me noticing it.
Which would be awesome. :-)
masak jnthn: you mean "somebody else" :)
jnthn masak: I lost my ninja status when somebody photographed me hacking on binder guts at a conference. :-) 21:22
mac tylercurtis: what stands for *@t in your sample? Is it somehow useful?
jnthn mac: Without it, the signature would fail to bind because there's nothing to suck up the extra arguments. 21:23
tylercurtis mac: what jnthn++ said.
mathw rakudo: module M::A; our class B { }; module Main; M::A::B.new; # <- known?
p6eval rakudo cd64dd: OUTPUT«Can not find sub M::A::B␤ in main program body at line 1␤»
mathw (or possibly just wrong anyway)
21:23 ashleydev joined
mac Uhm... So *$h will slurp any scalars, *@t any arrays, yes? 21:23
masak mathw: yes, known. reported.
pmichaud *$h slurps a scalar from a flattened list
masak mathw: see, um, S10. 21:24
mathw masak: good, it broke Form :(
masak mathw: you're not allowed to do the semicolon module syntax twice in one file, though.
mathw: you do it once, and it's valid to the end of that file.
mathw I'm not trying to
pmichaud here's the difference between slurpy scalar and normal scalar: 21:25
shakesoda waves
mathw That just happens to exhibit the same error I get with actual files
jnthn slurpy scalar is life we form the *@foo, and the @foo.shift
And bind what we shaft to the scalar.
masak mathw: ok. just pointing out that it shouldn't even compile.
jnthn *shifted
pmichaud sub abc(*$h, *@a) { say $h.perl; }; foo @array; # $h gets the first element of @array, @a the rest of @array
sub def($h, *@a) { say $h.perl; }; def @array; # $h gets all of @array, @a is empty
(s/foo/abc/ above)
jnthn *like 21:26
tylercurtis mac: Here's how S06 describes the slurpy scalar: "Slurpy scalar parameters capture what would otherwise be the first elements of the variadic array"
mathw right
mathw -> bed
jnthn night, mathw 21:27
tadzik so in def() nothing will ever get into @a? 21:28
tylercurtis tadizk: iiuc, it would if you did "def @array, $some, $more, $arguments"
tadzik mhm 21:29
masak moritz_: I figured out how you broke ufo. it's about time. moritz_++
moritz_ :-) 21:30
tylercurtis tadzik: sorry about the name typo, by the way. "def @array" would also put stuff in the @a argument if there were more than element in @array.
masak moritz_: and .IO is the way to turn a string filename to an IO? as in, it works in Rakudo? or do I use some workaround for now? 21:31
21:31 Limbic_Region joined, PZt joined
moritz_ rakudo: say 'README'.IO ~~ :e 21:32
p6eval rakudo cd64dd: OUTPUT«0␤»
jnthn masak: I didn't read the patch yet but I'm sure moritz_ patched that in today.
masak \o/
jnthn er, moritz_++ that is
:-)
moritz_ rakudo: say '/home/p6eval/rakudo/README'.IO ~~ :e
masak moritz_++
p6eval rakudo cd64dd: OUTPUT«0␤»
masak er.
pmichaud no, "def @array, 3, 4, 5" would put stuff into the @a argument
moritz_ hum.
tylercurtis rakudo: say '/'.IO ~~ :e
masak hold that karma. :)
p6eval rakudo cd64dd: OUTPUT«1␤»
pmichaud with
sub def($h, *@a) { say $h.perl; }; def @array; # $h gets all of @array, @a is empty
the first argument goes into $h, and the rest of the arguments go into @a
moritz_ rakudo: say '/home/p6eval/niecza'.IO ~~ :d 21:33
tylercurtis oops... I meant to say "def |@array"
p6eval rakudo cd64dd: OUTPUT«1␤»
moritz_ rakudo: say '/home/p6eval/niecza'.IO ~~ :e
p6eval rakudo cd64dd: OUTPUT«1␤»
tylercurtis pmichaud: thanks for catching my mistake.
Limbic_Region masak - thanks for your 10 year anniversary blog post. Life hasn't allowed me to follow parrot/perl 6 for a couple of years - even as a voyeur but it is nice to see well written blog posts every now and then
jnthn++ # for the same reason
tylercurtis tadzik: I meant to say that "def |@array" would work for @array longer than 1 element. 21:34
moritz_ huh. There is no README in the rakudo checkout on the p6eval box.
rakudo: say '/home/p6eval/rakudo/README'.IO ~~ :e
tadzik tylercurtis: |@array?
p6eval rakudo cd64dd: OUTPUT«1␤»
moritz_ restored.
jnthn rakudo: unlink '/home/p6eval/rakudo/README'
pmichaud tadzik: |@array means to treat the values of @array as individual arguments to the function being invoked
p6eval rakudo cd64dd: ( no output )
masak Limbic_Region: you're welcome. and thanks. I remember you from quite early on. 21:35
jnthn rakudo: say '/home/p6eval/rakudo/README'.IO ~~ :e
p6eval rakudo cd64dd: OUTPUT«0␤»
jnthn moritz_: uh, sorry
:-)
moritz_: Seems Safe is not quite Safe yet ;-)
pmichaud jnthn: not sure Safe would ever be Safe from you :)
jnthn moritz_: Anyway, that's probably how it disappeared.
masak phenny: tell mathw that ufo is now fixed. thank you for reporting. mathw++
phenny masak: I'll pass that on when mathw is around.
jnthn :) 21:36
moritz_ rakudo: print ~dir('/')
p6eval rakudo cd64dd: OUTPUT«. .. emul var usr bin boot dev etc home lib mnt proc root sbin tmp sys lib64 selinux srv opt media lib32»
pmichaud wonders how long it will be before the "10 years old" thread produces a DNF reference. 21:37
pugssvn r31756 | moritz++ | [evalbot] disallow unlink() and dir() in rakudo
21:37 p6eval left, p6eval joined
moritz_ rakudo: unlink('/home/p6eval/rakudo/README') 21:38
p6eval rakudo cd64dd: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/gss0PgUbWE␤ in main program body at line 22:/tmp/gss0PgUbWE␤»
[Coke] pmichaud: that's hardly fair. after all, DNF produced several game trailers.
pmichaud [Coke]: what's unfair about my comment? 21:39
[Coke] a fair *comparison 21:40
jnthn
.oO( sneaking in dir was a great way to shift the DOS/UNIX balance back a little ;-) )
masak pmichaud: Twitter produced one 15 minutes ago. twitter.com/satefan/status/18865258727
pmichaud [Coke]: I'm not intending a comparison. I'm wondering how long it will be (15 mins ago, apparently) before someone else makes the comparison.
masak pmichaud: I hate it how Perl 6 has no releases. :P 21:41
pmichaud masak: yes, me also.
masak we should totally make some. like, once a month or something.
pmichaud I'm this -> <- tempted to reply tweet "Release #31 is on Thursday." 21:42
moritz_ hates it how people just pour out bullshit
masak pmichaud: chromatic used to do that. haven't seen him do it for a while. I did it for a while too.
pmichaud: some people bite, usually to the effect of "yeah, but yaknowwhaddamean a REAL release, yaknow" 21:43
pmichaud replies.
tylercurtis It's so terrible that I can't open up my shell right now and type "perl6"
moritz_ pmichaud: speaking of Thursday, could you please try to get in lexical lookup of <foo> rules? Otherwise I have to rewrite 80% of the examples of the regex chapter in the book
pmichaud moritz_: will do it.
tylercurtis Then "our multi sub postfix:<!> ($n) { [*] 1..$n; }" and then "5!" and have it say 120 for me.
pmichaud my response is likely to be "if you meant 'no REAL release', then please say that." 21:44
there's a huge difference between "no release" and "no real release".
masak pmichaud: they meant 'no REAL Scotsman'.
speaking of the book, I'll try to see what we'd need for Thursday wrt enums for making the Poker Hand chapter turn out nice, and whether I have a chance at implementing it. 21:45
jnthn doesn't see a problem with not releasing Scotsmen
;-)
21:46 avar joined 21:48 ashleydev left
Juerd I'm going to move feather[123] to a new box, and decommission feather0 21:49
masak Juerd++ # thanks for the feathers! 21:50
Juerd This will cause downtime, of course :(
masak ==> $bed
moritz_ Juerd: after you're done, I'm toying with the idea of installing an selinux enabled debian on feather3
21:50 masak left
moritz_ so that sandbox stuff gets easier... 21:51
Juerd Easier? Are you mad? :)
selinux is all but easy
moritz_ "possible"
better? :-)
Juerd Hardly...
tylercurtis Is anyone here familiar enough with Camlp4 to compare it to Perl 6's grammar extension mechanisms?
Juerd moritz_: In any case, you're welcome to do it as long as it doesn't hinder the ease of deploying new projects 21:52
moritz_ Juerd: do you have better ides for sandboxing (besides being on a separate box already)?
Juerd moritz_: Feather[13] should be about experimental stuff, not about security. We have backups, in case things go horribly wrong. 21:53
moritz_: Running as non-root, in a chroot ought to suffice.
moritz_ Juerd: ok 21:54
Juerd Oh, with ulimits :)
moritz_ (that's what p6eval does, and I'm not really comfortable with it)
Juerd What kind of attack do you fear?
moritz_ mindless vandalism, mostly
Juerd How is that avoided with selinux? 21:55
moritz_ I'm not quite sure, haven't done much with it 21:56
Juerd Anyway, I'll start with feather3 today and will probably move 2 and 1 over tomorrow
moritz_ but the internet is full of tutorials for sandboxing with selinux, and in lack of better ideas I thought I'd try it 21:57
Juerd IMO, selinux is a pain in the ass that's mostly useful on systems where sandboxing with chroots is not possible.
It's all about fine-tuned access control, which is kind of irrelevant if there's nothing left to access. 21:58
moritz_ well, there always is
if we offer a web shell for rakudo, all the rakudo processes will run with the same user ID 21:59
Juerd Yes, but damage caused by that can be repaired
moritz_ so the very least somebody can do is kill all processes from other sessions
tadzik hmm. wklej.org/id/366159/ we'll have to add 'is copy' for it to work (or is rw), but couldn't the compiler notice that we're messing with it, and assume 'is copy'?
moritz_ tadzik: no. Adding "is copy" and declaring it an error are equally good choices, depending on context 22:00
moritz_ goes to sleep 22:01
pmichaud the safer default is ro
afk, walk
tadzik but shouldn't it be complaining just after defining a function? Why does it crash only when the function is called? 22:02
22:03 pugssvn left 22:05 pmurias left, ashleydev joined 22:09 tedv joined
Juerd tadzik: Because it doesn't know you're assigning until you're actually doing so. Such analysis could be added. I don't know if that's planned. 22:10
mac thanks for help everybody, see you tomorrow, I hope :) 22:11
22:11 mac left 22:12 Grrrr joined 22:16 tomaw left 22:17 tomaw joined
tylercurtis moritz_: are you still working on working on trying out optimization using PAST::Pattern? 22:18
jnthn Juerd: I'd like to get some analysis in for that at some point.
22:18 felliott joined 22:19 nbrown left
Juerd Dumping feather3's filesystem went really slow 22:25
So I was stracing it to see what's going on
Apparently there's a lot of ccache files around :P 22:26
du is still running on /home/tene/.ccache
Ah, it's done. 1 GB of cache files :)
Juerd removes it
That's only 332512 files :P 22:27
22:28 tomaw left
Juerd And 475 MB in ~infinoid/.ccache, 3406 files 22:29
22:30 tomaw joined 22:31 LionMade0fLions left 22:36 awwaiid left 22:42 masonkramer left
dalek rakudo: f55fb01 | pmichaud++ | docs/spectest-progress.csv: 22:52
rakudo: spectest-progress.csv update: 518 files, 23415 (112.8% of 20749) pass, 83 fail
rakudo: Failure summary:
rakudo: S02-magicals/args.t passed 3 unplanned test(s)
rakudo: S05-interpolation/regex-in-variable.rakudo aborted 1 test(s)
rakudo: S05-match/capturing-contexts.rakudo passed 22 unplanned test(s)
rakudo: S06-operator-overloading/methods.t aborted 2 test(s)
rakudo: S06-other/main-usage.t aborted 8 test(s)
rakudo: S10-packages/basic.rakudo 47 - can "use" a class inside a module
rakudo: S10-packages/basic.rakudo 48 - can "use" a class inside a class
rakudo: S10-packages/use-with-class.t aborted 1 test(s)
rakudo: S12-construction/BUILD.rakudo aborted 1 test(s)
rakudo: S16-filehandles/filetest.rakudo aborted 8 test(s)
rakudo: S16-filehandles/io.rakudo passed 84 unplanned test(s)
rakudo: S16-filehandles/open.t aborted 2 test(s)
rakudo: S16-io/say-and-ref.t aborted 2 test(s)
rakudo: S29-context/die.rakudo aborted 3 test(s)
rakudo: S29-context/exit.rakudo aborted 3 test(s)
rakudo: S32-io/IO-Socket-INET.rakudo 2 - echo server and client
rakudo: S32-io/IO-Socket-INET.rakudo 4 - received first 7 characters
rakudo: S32-io/IO-Socket-INET.rakudo 5 - received next 3 characters
rakudo: S32-io/IO-Socket-INET.rakudo 6 - remaining 26 were buffered
22:52 dalek left, dalek joined 22:54 sorear sets mode: +v dalek 23:00 skangas left
tadzik gnite 23:00
23:00 tadzik left
sorear pmichaud: Hi! 23:01
pmichaud: I'm looking for help understanding and implementing actual lists (not list context, I've got that already) 23:03
1. [+] 0, *+1 ... 10000 # How does this run in constant space? 23:04
ingy sorear: what things are you working on (in general) these days? 23:16
sorear regexes, packages, and roles 23:17
all blocked on a sensible handling of lists
ingy sorear: up a level 23:18
23:18 felliott left
sorear niecza? 23:18
ingy sorear: what's that again?
tylercurtis niecza: say "Hi." 23:19
sorear my perl 6 static optimizing compiler for .NET sandbox
p6eval niecza: OUTPUT«Hi.␤»
ingy :)
neat!
snarkyboojum github.com/sorear/niecza :)
ingy looks 23:20
sorear: let me know if you get YAML::XS bugs 23:21
I'll fasttrack them for you
(not sure what that means exactly :) 23:22
ingy is enjoying a few minutes of Python 23:28
sorear all I'm actually, directly using YAML::XS for is debugging 23:30
STD.pm6 uses it for quite a bit more
23:30 jferrero left 23:36 snarkyboojum left
jnthn pmichaud: We pass 112.8% of the test suite?! :-) 23:50
jnthn suspects some calculation is a little off there. :-)
Juerd While feather3's data was being copied, the destination box crashed. 23:56
There's some nasty deadlock in the kernel, something with mdraid and dm.
23:56 Psyche^ joined
Juerd You'll have to do without feather3 for now because I am too tired to restart the migration and wait for it to finish. 23:57
23:57 s1n left 23:58 macroron left, s1n joined