»ö« | 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.pm6ok 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«HAINull 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«HONull PMC access in setprop() in main program body at line 20:/tmp/cXWd8PlhLH» | ||
ingy | rakudo: { say "HO"; CATCH {} } | ||
p6eval | rakudo 687837: OUTPUT«HONull 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«HONull 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«HONull 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«23562356» | ||
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 ¬? | ||
std: foo(1) | 15:07 | ||
p6eval | std 31753: OUTPUT«===SORRY!===Undeclared routine: 'foo' used at line 1Check failedFAILED 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 1Check failedFAILED 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 loopParse | ||
..failedF… | |||
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«12[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
|