»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:11 jferrero left 00:20 Limbic_Region joined
dalek ecza/master: dc83727 | sorear++ | src/ (2 files):
Regexes capture returns
00:23
ecza/master: 8c6552e | sorear++ | v6/STD.pm6:
[STD] Depend less on Nil semantics
ecza/master: 0644834 | sorear++ | / (4 files):
Allow list-valued constants
ecza/master: 6d9e43e | sorear++ | / (4 files):
() is now Nil, a constant
00:28
00:37 Italian_Plumber joined 00:55 prettyrobots joined
prettyrobots perl6: say 3 00:55
p6eval pugs, rakudo 46b2c5: OUTPUT«3␤»
01:05 dukeleto left 01:08 dukeleto joined 01:20 Eevee_ is now known as Eevee 01:22 silug joined 01:27 Schwern joined 01:31 QinGW joined, QinGW left 01:36 QinGW joined 01:50 hudnix left 01:52 silug left 01:54 envi left 01:57 colomon_ joined, colomon left, colomon_ is now known as colomon 01:58 justatheory joined 02:06 nymacro joined 02:10 risou joined, Italian_Plumber left 02:18 lue joined 02:20 risou left 02:30 lichtkind left 02:36 Schwern left 02:42 Schwern joined 03:03 agentzh joined 03:09 ironcamel joined
ironcamel is this right? my @list = 0,2,4 ... *; 03:10
i am trying the examples on slide 80 www.slideshare.net/mfollett/perl-6-talk 03:12
oops, i needed := instead of = 03:13
Tene Unfortunately. 03:14
TimToady eventually = will notice the * and give up 03:18
phenny TimToady: 10 Oct 15:59Z <diakopter> tell TimToady sorear> hmm, there's a STD bug which causes role Foo[$x] { ... }; Foo[2] to be misparsed
TimToady: 10 Oct 16:00Z <diakopter> tell TimToady sorear> ::Foo[2] is handled as a syntactic special case but Foo[2] winds up an ordinary postcircumfix call
TimToady done with my talk, so might get my brane back soon
03:23 Limbic_Region left 03:33 meppl left 03:38 sftp left 03:52 satyavvd joined 03:55 nymacro left 03:59 nymacro joined 04:00 silug joined 04:12 alester left 04:15 meppl joined 04:44 justatheory left 04:53 _kaare joined 05:19 nymacro left 05:23 nymacro joined 05:24 tinhead joined 05:27 cotto left, cotto joined 05:34 tinhead left 05:40 araujo joined
sorear good * #perl6 05:40
heey TimToady pinged out :/ 05:45
05:53 araujo left 05:58 orafu left 05:59 pythonian4000 is now known as pythonian4000afk 06:04 PZt left 06:06 _twitch joined 06:09 PZt joined
moritz_ good morning 06:19
06:19 envi joined
sorear good morning moritz_ 06:19
moritz_ sorear: (backlog) () shouldn't be Nil 06:20
rakudo: say ().defined, Nil,defined
p6eval rakudo 46b2c5: OUTPUT«===SORRY!===␤Confused at line 22, near "say ().def"␤»
moritz_ rakudo: say ().defined, Nil.defined
p6eval rakudo 46b2c5: OUTPUT«Bool::TrueBool::False␤»
sorear niecza still follows the old standard, Nil is the unique empty parcel 06:21
moritz_ just thought I'd mention it, in case you missed the change 06:23
06:23 mavrc joined
sorear so what does () do now? 06:23
same as &infix:<,>() ?
moritz_ just an empty Parcel
sorear that feels wrong 06:24
rakudo: sub foo { }; say foo.defined
p6eval rakudo 46b2c5: OUTPUT«Bool::False␤»
sorear rakudo: say (().defined)
p6eval rakudo 46b2c5: OUTPUT«Bool::True␤»
sorear () is simply an empty list of statements
moritz_ rakudo: sub foo { () }; say foo.defined
sorear rakudo: say ({ }.().defined)
p6eval rakudo 46b2c5: OUTPUT«Bool::True␤» 06:25
rakudo 46b2c5: OUTPUT«invoke() not implemented in class ''␤ in main program body at line 22:/tmp/8AacyDUxec␤»
sorear () should return Nil because the empty list of statements returns Nil
06:35 kjeldahl joined 06:54 kjeldahl left 07:01 mavrc left 07:06 baux joined 07:08 mavrc joined
dalek kudo: 79f754a | moritz++ | / (2 files):
use parrot's String.reverse for Str.flip

also bumps PARROT_REVISION
This speeds up a small benchmark (which reverse a 1200 char 10 times) from 14s to 0.7s (close to startup time). cotto++ cotto++ cotto++
07:20
07:44 Mowah joined, envi_ joined 07:48 envi left 08:02 nymacro left 08:08 christine left, christine joined
sorear std: sub foo($*) {} 08:15
p6eval std 263c207: OUTPUT«===SORRY!===␤Unable to parse signature at /tmp/5Kp6x0wo41 line 1:␤------> sub foo⏏($*) {}␤Couldn't find final ')'; gave up at /tmp/5Kp6x0wo41 line 1:␤------> sub foo($⏏*) {}␤ expecting any of:␤ constraint␤
..param_sep␤ parame…
08:15 ChanServ sets mode: +o sorear, sorear sets mode: -b pothos!*@* 08:16 sorear sets mode: -o sorear
sorear (oops) 08:16
08:28 Mowah left 08:29 Mowah joined 08:32 dakkar joined 08:38 cjk101011 joined 08:43 nymacro joined 08:57 zby_home_ joined
sorear What does [1, 2; 3, 4] do? 09:13
[Sec] rakudo: my $x="foo"x 99;$x.substr(70)="";$x.say
p6eval rakudo 79f754: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/v3YBt3EnwC␤»
sorear rakudo: say [1,2;3,4].perl 09:14
p6eval rakudo 79f754: OUTPUT«[3, 4]␤»
[Sec] Hm. how can I elegantly trucate a string in perl6?
09:14 timbunce joined
moritz_ rakudo: my $x = "foo" x 99; $x.=substr(0, 70); $x.say 09:15
p6eval rakudo 79f754: OUTPUT«foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoof␤»
moritz_ [Sec]: (mostly unrelated) I strongly recommend the use of whitespace around infix operators 09:16
[Sec] oh. .= -- nasty %)
sorear .=substr is a postfix operator though 09:17
[Sec] thats breking my perl5 assumtions. Although i think i understand what it does now.
moritz_ it's the same as $x = $s.substr(...) 09:19
sorear the thing to realize about .= is that it really is a special case 09:20
don't try to think about it as derived from a metaoperator, because it isn't
it's just designed to be Strangely Consistant(tm)
moritz_ right; it's a postfixish or so :-)
[Sec] moritz_: but there is no way to just use substr as a lvalue? 09:21
moritz_ and .= exists as an infix, which is weird, because there's no infix .
[Sec]: I think it's specced, but not implemented
sorear std: my $x; $x .= foo;
p6eval std 263c207: OUTPUT«ok 00:01 117m␤»
moritz_ std: my $x; $x . foo; 09:22
p6eval std 263c207: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/BH_y6rgLr8 line 1:␤------> my $x; $x . ⏏foo;␤Parse failed␤FAILED 00:01 117m␤»
sorear out 09:24
09:27 BooK joined 09:34 daxim joined 09:46 kjeldahl joined 09:48 pythonian4000afk is now known as pythonian4000 09:54 mberends joined
mberends \o iz Ljubljane :-) 09:55
moritz_ o/
mberends is very happy to be key speaker for event.perlrussia.org/saintperl2/ 09:59
moritz_ mberends: what will you talk about? 10:00
mberends I haz a new talk idea: The Perl 6 Book of Records
10:00 Italian_Plumber joined
jnthn mberends: Enjoy! :-) 10:03
Have (a few) vodki for me. ;-)
10:03 QinGW left
jnthn finally may have managed to catch up on sleep 10:03
mberends thanks jnthn, although vodka is one drink I have never enjoyed, possibly due to a bad start as a newbie 10:08
jnthn Aww. 10:09
Yes, I've had one bad experience with it too.
There's good stuff and there's less good stuff. :-)
moritz_ just noticed that the linux and windows styles of finding executables resemble the difference between sub and method scoping/dispatch 10:11
the file associations on windows mean that if you registered a type with a certain executable, it doesn't ahve to be in scope/$PATH to be found - kinda like methods 10:12
whereas the classical UNIX model requires all executables (like subs) to be in $PATH (like scope), unless you specify the full path 10:13
mberends moritz_: I thought I had all these ideas neatly and separately pigeon-holed, and then you mix them together and make me feel confused ;-( 10:15
10:15 cjk101012 joined
moritz_ mberends: if you fear mixing of ideas, you should avoid a 100km safety zone around #perl6 :-) 10:17
mberends deploys a tinfoil hat 10:18
moritz_ builds a laser evaporater for reflecting hats
10:19 cjk101011 left 10:31 muixirt joined 10:39 Italian_Plumber left 10:44 Mowah left 10:45 pythonian4000 is now known as pythonian4000afk, pythonian4000afk is now known as pythonian4000 10:46 pythonian4000 is now known as pythonian4000afk 10:48 krakan left 10:49 krakan joined 10:55 Italian_Plumber joined 11:08 daxim left, daxim joined 11:16 imarcust1is left
muixirt hi moritz_ 11:17
11:20 masak joined
masak oh hai, #perl6 11:20
muixirt rakudo: my @r=[]; sub reg() { @r[@r-1] }; reg[1]=1; 11:21
p6eval rakudo 79f754: ( no output )
muixirt hi masak
the right man at the right time
masak muixirt: need to 'say' something.
muixirt can you explain what is going on in that snippet (i looked at yapsi) 11:22
masak oh! yapsi, indeed.
it looks a bit taken out of context, but...
the runtime has registers. the registers are stored in an array. 11:23
but if I recall correctly, the registers also need to be stashed/restored as we climb the call stack.
muixirt it relates to @register-stack, sub reg and the reg[$register]=something constructs
masak right, the register stack corresponds to the call stack. 11:24
any questions so far? :)
muixirt i need a more basic explanation, what that snippet does (how it works) 11:25
masak I think I need to look at the original code. hold on.
ok, so here's &reg: github.com/masak/yapsi/blob/96ca8f0...si.pm#L480 11:27
it's basically a local convenience sub.
it says, in words, "give me the topmost layer of registers".
since @register-stack is an array of arrays, &reg returns an array 11:28
I made &reg because at any given point of the runtime, we're only ever interested in the topmost layer of registers.
that's the one containing registers for the block we're in.
muixirt: am I making sense? 11:30
muixirt ok, so why is reg[$register]=something possible (again it's my lack of the basic understanding of perl6 contructs)
masak ah.
it just looks funny, but nothing funny is going on.
recall that &reg returns an array.
so 'reg[$ix] = $sth' just means 11:31
(1) call &reg
(2) assign $sth to the $ix index of the result
and that's it.
you wouldn't have balked at all if 'reg' was called '@reg', but that's basically what it is. 11:32
muixirt cool, what is that called in perl6 jargon?
masak "calling a sub and then indexing the result" :)
fwiw, I was confused the first time I saw it too.
but it's really not magic at all.
flussence Does p6 still have lvalue subs, or do objects obviate the need for that now? 11:33
masak compare it to 'reg()[$ix] = $sth', which means the same thing.
jnthn I muchly prefer it with reg()[$ix]
flussence: sub foo() is rw { ... }
masak jnthn: it adds one kind of clarity and subtracts another, IMHO.
jnthn But Rakudo is a bit hand-wavey on this stuff at the moment.
muixirt masak: thanks for the explanation
masak muixirt: my pleasure.
jnthn masak: I know what you're saying, but I think that it adds needed clarity.
masak jnthn: I agree. 11:34
jnthn: I see it as an abstraction. using just 'reg' allows me to think of &reg more like a "thing". using 'reg()', I keep thinking of it as a call. thinking of it as a thing has its merits. 11:35
jnthn: by an amazing coincidence, Guy Steele is up talking about the thing about associativity and parallelism that I mentioned in the car: twitter.com/mfollett/status/27381191594 11:37
(perhaps not so amazing; I got the original idea from one of his slides)
jnthn masak: I can totally buy that argument. I just tend to worry a little over constructs that make experienced Perl 6 folks like us do a double-take. The majority of folks are quite new to Perl 6 at the moment, so a little thoughtfulness for their understanding is nice. :-) 11:38
masak jnthn: embracing thoughtfulness for newcomers' understanding is very different to dumbing down one's code. 11:39
my goal is clarity often enough. but not always clarity for the newcomer. 11:40
11:40 mberends left 11:42 reqamst_ left 11:43 satyavvd left
masak <sorear> () should return Nil because the empty list of statements returns Nil 11:46
intriguing.
I have no counterargument to that; I just have a feeling that it won't work.
11:49 Intensity left
moritz_ well 11:52
if it were nil, () eqv @list.grep(False) wouldn't hold true
it's perl 5 think that list and statement list are the same thing, AFAICT
11:53 mberends joined 11:57 agentzh left 11:58 pythonian4000afk is now known as pythonian4000, krakan left
takadonet morning all 12:00
masak takadonet: \o 12:01
one of the more insightful comments on Perl 6 on Twitter: twitter.com/jimpick/status/27397727538
moritz_ seriously doubts that TimToady can kill Perl 5, even if he tried 12:02
masak :) 12:03
speaking of TimToady; whatever he's up to in YAPC::Asia, it's leaving ripples and waves on Twitter. 12:04
muixirt the 'Kaffe' Jim Pick ?
masak TimToady++
muixirt: quite likely.
takadonet masak: in a good or bad way?
masak I just replied to him: twitter.com/carlmasak/status/27434049287
takadonet: I'm not putting any such value into it. just talking about quantity.
but most of it seems expectant and awed, as usual. 12:05
things like this: twitter.com/ironcamel/status/27406491292 :)
it just goes to show how some things that we take for granted here are considered magic by some outsiders. 12:06
one doesn't even need the 8 :P
[Sec] 1,2,4 -- i would expect the next to be 7 %)
moritz_ why? 12:07
12:07 christine left, christine joined
masak $^last + ++$n, probably :) 12:08
12:09 pythonian4000 is now known as pythonian4000afk
moritz_ when faced with the question on how to resume a sequence, I usually answer with 42 12:09
masak 42: the metasyntactic integer constant. 12:12
12:12 krakan joined
masak it wouldn't surprise me if 42 is the most commongly occuring integer in the perl6 queue in RT. 12:13
moritz_ it would surprise me
I'd expect 0 or 1 to hold that position
especially considering that True and False have long stringified to 1 and 0 12:14
masak I can easily find out.
moritz_ masak: do you have a text dump of the perl6 RT queue, or something similar? 12:15
masak even better. I have a YAML dump :)
moritz_ \o/
how did you obtain it?
masak Perl 5 script. want it?
moritz_ yes please
masak gimme a minute.
12:17 MayDaniel joined
masak moritz_: github.com/masak/rt-statistics 12:19
man, I love github. :)
moritz_ too
masak moritz_: maybe you could even help me with a problem I have with the generated tickets.yaml file... 12:20
the 'message' fields are garbled in that they are missing all newlines. I'd like to have the newlines, too.
12:20 pythonian4000afk is now known as pythonian4000
masak the problem is on this line: github.com/masak/rt-statistics/blob...ollect#L20 12:21
I know I shouldn't do it like that, but I don't have a better idea.
moritz_ not familiar with Web::Scraper 12:22
masak ever since I learned about it, I've been using it everywhere.
I'm not yet a power user of it, though. maybe I should ask miyagawa. 12:23
moritz_ speaking of miyagawa, I just had the first failure trying to install a module with cpanm
but there's nothing he can do about it - XML::LibXML was missing the libxml2-dev package 12:24
12:24 pythonian4000 is now known as pythonian4000afk 12:26 pythonian4000afk is now known as pythonian4000 12:28 mavrc left, pythonian4000 is now known as pythonian4000afk
moritz_ huh. libxml2 comes only with a dynamic lib 12:29
masak I'm now switching my Github account plan to micro. I don't need it (yet), but I want to show them my support. 12:30
12:30 atomicstack joined
masak wow, that was easy. 12:31
github++
12:32 daxim left 12:34 pythonian4000afk is now known as pythonian4000 12:37 MayDaniel left, constant left, pythonian4000 is now known as pythonian4000afk 12:39 pythonian4000afk is now known as pythonian4000, constant joined, constant left, constant joined 12:41 pythonian4000 is now known as pythonian4000afk 12:44 mavrc joined 12:47 _kaare left 12:50 risou_ joined
Quadrescence Is there a proper name for the kind of regex matches where the parenthetical match is remembered 12:51
?
s/foo(.*)/foo$1.txt/ <-- name for the whole () $1 dealio
moritz_ "capture" 12:52
Quadrescence moritz_: tell me a regex joke.
moritz_ (though in Perl 6 it's $0 and not $1)
Quadrescence: ... now you have two problems!
jnthn Did you hear about the guy who dated a regex? 12:53
He met his Match!
Quadrescence ha ha ha ha 12:54
12:54 pythonian4000afk is now known as pythonian4000
masak jnthn: but only after a lot of backtracking. 12:54
moritz_ but was it a LT Match? :-) 12:55
masak token length is overrated :P
12:56 plainhao joined
masak moritz_: I'm programming in Java for $WORK, and finding that I'm constantly avoiding the use of protected and package-protected... 13:02
moritz_ masak: should I feel guilty? or confirmed? 13:03
masak moritz_: I'll get back to you on that. :)
moritz_: for what it's worth, I buy your argument.
13:03 wamba joined
masak one might call my current Java OO design style "Perl 6 infected". 13:04
moritz_ btw I there is one use case in java where it might be valid to use protected methods
masak oh?
moritz_ for methods which you have to derive in subclasses
where you'd just pass in closure in Perl instead :-)
(because last I looked, java didn't have any first class code objects) 13:05
masak not sure I follow. not sure I have that pattern in Java.
no, it doesn't.
moritz_ I guess the usual java approach is to use an Interface instead
masak right. method in anon class deriving some interface.
Huffman called, and he wants his excess keystrokes back. or something. 13:06
moritz_ Huffman called, and I want my excess keystrokes back :-) 13:07
masak I guess both I and Huffman want them back. 13:08
13:10 mavrc left, mavrc joined 13:20 Patterner left, tadzik joined
tadzik o/ 13:20
moritz_ \\o 13:21
masak \\\\o 13:22
masak is programming in Java
need to backwhack four times. :)
wow, I think one could do a talk just on that. how some programming languages seem to actively disregard syntax. 13:23
moritz_ imagines it's quite a backslashing hell if you write regexes in a language that doesn't have regex literals
masak just so.
moritz_ \\\\ for a single backslash, \\w for a simple char class...
flussence It's not so bad in PHP, the single-quoted strings are more or less the same semantics as P5's. 13:25
13:25 prettyrobots left
moritz_ says preg_match_all 13:25
flussence OTOH they have a pre-defined constant just for directory slash/backslash called "directory_separator"... 13:26
masak <linguification>"not so bad" and "PHP" in the same sentence? well I never!</linguification>
moritz_ which reminds me that I should give m:g/.../ another shot
masak ++moritz_
flussence the "not so bad" parts of PHP are where they've copied from p5 :)
masak :) 13:27
moritz_ it's something I'd neet to brainstorm with pmichaud
13:28 icwiener joined
moritz_ last time I tried, I nearly got there, but since rakudo doesn't have slice context, the return values from 'abc' ~~ m:g/(.)/ and 'abc' ~~ m/(.)+/ were identical 13:29
which is a problem for split(), for example
13:29 sftp joined
moritz_ so, I could have a 'has $.is-flat' attribute in Match for that 13:29
which is a cheat
or somebody[tm] could implement slice context (which I don't see happen any time soon) 13:30
13:30 Mowah joined
moritz_ or we could turn to m:g// relly returning a list of matches, not a single match 13:31
but what about $/ in that case?
13:31 Psyche^ joined, Psyche^ is now known as Patterner 13:32 Schwern left, orafu joined 13:33 prettyrobots_ joined, prettyrobots_ left 13:34 prettyrobots_ joined, prettyrobots_ left
masak good question. 13:36
flussence m:g returning a list does sound sensible to me, from a normal user viewpoint
masak moritz_: maybe create a Match that simply acts as an Array container for the list of matches?
moritz_ masak: then we end up with the problem I described above 13:37
masak oh, sorry. I'm not paying full attention. :/
I'm busy not using protected :)
so... tempted... 13:38
moritz_ currently m:attribs/foo/ compiles to $/ := $_.match(:attribs, rx/foo/)
which has the disadvantage of always returning a scalar
so I'd have to compile it to something like 13:39
($/ := $_.match(...); $return_list ?? @($/) !! $/ )
which has the disadvantage of duplicating the decision of wheter to return a list or not (once in the compiler, once in .match) 13:40
or maybe it's $/ ~~ List ?? $/.list !! $/ 13:41
but that sets $/ to a non-sensical value
hm, or maybe not...
$0 would still mean $/[0]
but $<foo> would give LTA errors 13:42
and half an hour later, masak++ would submit annoying bug reports :-)
masak you bet.
moritz_ was told not to gamble :-) 13:43
masak it's just an EXPR.
tadzik s/annoying/helpful/ # cough, cough
moritz_ tadzik: the two are not mutually exclusive 13:44
13:45 mblackmer left
tadzik sure 13:45
13:47 alester joined
masak "masak: annoyingly helpful" 13:48
13:54 rindolf joined
rindolf perl6: my %h = ('one' => "two"); say "%h" 13:54
p6eval pugs, rakudo 79f754: OUTPUT«%h␤»
masak rakudo: my %h = 'one' => 'two'; say "%h{}" 13:55
p6eval rakudo 79f754: OUTPUT«two␤»
masak rindolf: @ and % and & are only interpolated if their run ends with a () or [] or {} or <>, for safety (and other) reasons. 13:56
rindolf masak: ah.
masak see S02 for the whole scoop.
PerlJam rindolf: or you can say "...{%h}..." 13:57
rindolf PerlJam: OK.
13:58 rgrau_ joined
masak someone asking about the state of Perl 6: community.livejournal.com/ru_perl/374751.html 13:59
PerlJam masak: Texas! ;)
masak EWRONGTYPEOFSTATE :) 14:00
flussence rakudo: say <solid liquid gas plasma>.pick(1) 14:01
p6eval rakudo 79f754: OUTPUT«gas␤»
masak you're all being very helpful.
flussence I'd say it's more of a liquid at this point.
masak not according to most trolls out there... 14:02
14:03 prettyrobots joined
flussence maybe I should go write a "big" app in it just to prove them wrong :) 14:03
moritz_ please do! 14:04
14:04 araujo joined, kjeldahl left
PerlJam Perl 6 needs a "Lacuna Expanse" type thing to happen to it. Not necessarily a game or graphical, just something biggish and completely unexpected. 14:05
14:05 _kaare joined 14:06 pythonian4000 is now known as pythonian4000afk
masak PerlJam: agreed. a "killer app". 14:07
something for which the first impression is "wow, this rocks!" and the second is "by the way, this is all written in Perl 6".
moritz_ wonders if he should write a "killer's app" for April 1st 14:08
which help a killer to track his victims, payments etc.
PerlJam we've now gone down the dark side of pun 14:09
masak Assassination Management Software. interesting. 14:10
PerlJam It's got too much ass in it. 14:11
jnthn If you remove the ass it sounds like an Apple product. 14:15
iNation
14:17 MayDaniel joined
masak I'm sure we could make it tasteful enough for the Apple Store to approve it. 14:18
PerlJam jnthn: iNation sounds like something that would be right up your alley
jnthn If I did it, it'd only support nations that start with an 'S' though. :-) 14:23
14:25 timbunce_ joined 14:27 Schwern joined, timbunce left, timbunce_ is now known as timbunce 14:35 tadzik left 14:37 cjk101012 left 14:51 tadzik joined 14:53 rindolf left 14:56 uniejo joined 15:11 uniejo left
masak rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; $c.b.?a = A.new 15:15
p6eval rakudo 79f754: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/83kx8LOfBt␤»
masak I'm not 100% sure what I'm trying to do... 15:16
but I also don't see what's readonly here, and why.
flussence C.b ?
masak right. $c.b is readonly. does that matter? 15:17
jnthn masak: I think it's right. (more)
flussence that's the only thing I can see in there that might be responsible...
rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b is rw }; my $c = C.new; $c.b.?a = A.new
p6eval rakudo 79f754: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/NU_Jz6UX7D␤»
jnthn masak: $c.b gives back something that has no .a method
masak: So .? hands back Nil 15:18
flussence well scratch that...
masak jnthn: oh, ok.
jnthn Or maybe a Failure
masak yes, makes sense.
jnthn Anyway, something you cannot assign to.
if you want try
masak probably Nil, to be consistent with .*
jnthn ($c.b.?a // *) = A.new
masak rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; ($c.b.?a // *) = A.new 15:19
jnthn Since assigning to * throws away the value silently.
p6eval rakudo 79f754: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/Sm9PnTw3yz␤»
masak hm.
jnthn rakudo: * = 42;
p6eval rakudo 79f754: ( no output )
jnthn oh
rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; say ($c.b).WHAT
p6eval rakudo 79f754: OUTPUT«Any()␤»
jnthn rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; say ($c.b.?a).WHAT 15:20
p6eval rakudo 79f754: OUTPUT«␤»
jnthn rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; say ($c.b.?a).defined
p6eval rakudo 79f754: OUTPUT«Bool::False␤»
masak rakudo: say Nil.WHAT
p6eval rakudo 79f754: OUTPUT«␤»
jnthn rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; say pir::defined($c.b.?a)
p6eval rakudo 79f754: OUTPUT«0␤»
masak it's a Nil.
jnthn Aye
I think that's current spec.
masak aye.
jnthn I'm a tad curious why the // doesn't work here.
rakudo: class A {}; class B { has A $.a is rw }; class C { has B $.b }; my $c = C.new; say ($c.b.?a // *).WHAT 15:21
p6eval rakudo 79f754: OUTPUT«WhateverCode()␤»
jnthn Oh!!
It auto-curries.
:-)
So then you end up trying to assign to a closure.
15:21 tadzik left
jnthn Rakudo. It's smarter than me. 15:22
15:24 icwiener left, icwiener joined
jnthn masak: $c.b //= A.new; # wait, isn't this what you really want? 15:25
masak no...
that would try to assign an A object to an attr typed with B. 15:26
what I was fishing for was some kind of "conditional assignment", that only assigned if the whole method call chain made it to the end.
//= doesn't do that. in some ways, it does the opposite; assigns only if something didn't make it. 15:27
jnthn ah, ok 15:28
15:30 rhr left 15:31 s1n left
jnthn Feels like your'e trying to do introspection without introspecting :P 15:31
masak that wasn't my intent :) 15:32
flussence
.oO( "transactional assignment"? )
15:33
moritz_ "made it to the end" triggers my "use exceptions" brain cell
15:33 mdxi left
masak it's just that I kept writing Java code like 'if (a.b != null) { a.b.c = d }' and wondering if there was some shorter way in Perl 6. 15:34
15:34 jferrero joined 15:35 Schwern left 15:36 s1n joined
jnthn if $a.b -> { .c = d } # maybe? 15:36
moritz_ given a.b { $_ && .c = d }
rakudo: if 1 -> { say "alive" } 15:37
p6eval rakudo 79f754: OUTPUT«alive␤»
masak -> {} means "don't bind value to anything" 15:38
jnthn: you probably meant -> $_ {}
or we could create a given/if hybrid, "giffen" :P 15:39
jnthn oh, yes 15:41
That's what I get for writing Perl 6 while translating Java into C#...
masak :) 15:42
15:42 tadzik joined
masak today I've written two methods that sit in different classes but produce the same result, all the while maintaining the same inter-class invariant. 15:42
moritz_ sounds curious 15:43
masak things always get so tricky once references are bidirectional.
I like models like Git's where all references are one way only. 15:44
15:45 Schwern joined 15:46 mdxi joined 15:55 silug left 16:00 rhebus joined 16:02 justatheory joined 16:11 atomicstack left 16:12 atomicstack joined 16:15 whiteknight joined 16:20 atomicstack left 16:23 whiteknight left 16:29 baux left
masak lol, I blogged! strangelyconsistent.org/blog/a-sudden-insight 16:31
16:32 dual joined
jnthn Yes, calling and returning are a bit more symmetric in Perl 6 than in other langauges. 16:36
Well, s/ 6// I guess :-)
16:39 cdarroch joined, cdarroch left, cdarroch joined
masak nom & 16:42
16:42 masak left, rhr joined
takadonet trying to figure out what title for a reddit post would be for strangelyconsistent.org/blog/a-sudden-insight . Any suggestions? 16:51
16:55 prettyrobots left
flussence ouch, I went to that wikipedia link... they have some really bad code highlighting colours. 16:58
17:01 wamba left 17:03 justatheory left, prettyrobots joined 17:07 dakkar left 17:23 kjeldahl joined 17:36 prettyrobots left 17:42 jferrero left, justatheory joined 17:47 justatheory left 17:51 timbunce left 17:53 prettyrobots joined, rhebus left 17:54 orafu left, prettyrobots left, prettyrobots joined 17:55 prettyrobots left, justatheory joined, prettyrobots joined 17:56 prettyrobots left 17:57 timbunce joined
sorear good * #perl6 18:01
tadzik hello
18:02 silug joined
sorear moritz_: it's not perl 5 think - you can't even put statements in a () list in Perl 5 18:03
moritz_ sorear: scalar (2, 3, 4) treats (2, 3, 4) as a statement list
18:04 justatheory left, justatheory joined 18:06 _twitch left
sorear buubot: scalar (2, if (1) { print "x" }) # no, expression list 18:07
buubot sorear: Couldn't match input.
sorear buubot: eval scalar (2, if (1) { print "x" }) # no, expression list
buubot sorear: ERROR: syntax error at (eval 34) line 1, near ", if"
18:22 Italian_Plumber left, colomon left 18:27 colomon joined 18:29 colomon left
s1n i keep reading the threads thread (pun intended) on the ML and i wanted to throw out my 2cents 18:29
fibers, continuations, and green threads are great, but i think they miss the whole point (unless i miss understand how they work): the kernel isn't aware and thus you can't take advantage of hardware 18:30
event schedulers are nice, but i think true hardware threads are desirable 18:31
18:32 Schwern left
sorear s1n: don't listen to p6l, nobody else does 18:32
or at least, don't be concerned about it 18:33
PerlJam s1n: Perl is still slowing warming up to "threads".
sorear if someone there comes up with a genuinely good idea, by all means take it
s1n avoiding real threads would be an epic fail
PerlJam "real threads"? 18:34
sorear p6l is where we quarantine the dangerously disconnected from reality
s1n hardware threads
18:34 silug left
s1n 1:1 18:34
sorear: hope so, but _noone_ is expressing a voice of reason there
sorear nobody ever does
PerlJam s1n: you could be the first!
s1n PerlJam: guess i'll have to be 18:35
seems like a waste of time to provide something like continuations if it's still an N:1 model
PerlJam s1n: from a language perspective Perl 6 should paint itself into a corner that precludes hardware (or any other style) threads. that's about it. 18:36
s/should/shouldn't/ oops!
sorear incidentally, niecza has 1:1 threads
s1n when i write threads, i want my kernel to schedule it to take advantage of modern hardware 18:37
so if i write perl6 threaded code, if it doesn't, then i wrote write threaded code in perl6
18:38 timbunce left 18:39 Schwern joined
skids s1n: True hardware threads are absolutely needed for interfacing with blocking APIs. You could argue that could be done by the implementation for each use case, but not providing visibility into how things are coprocessed (and tuning) would kinda run in the face of Perl6's dedication to introspection/etc. 18:42
But we'll be in green-thread-ville for a while because parrot is stilljust green-threads and they need to overhaul a bit to start using green+hw threads. 18:43
s1n parrot is free to make all the mistakes they want
18:43 pjcj_ left
PerlJam parrot has threads? 18:44
s1n PerlJam: not really, they had a SoC to implement green threads
sorear s1n: please don't think Perl6 == Parrot
skids I don't see anyone over in parrotville questioning whether they need hw threading, just lamenting the chore.
s1n sorear: i know better
18:44 timbunce joined
skids sorear: no offence intended :-) 18:44
s1n i don't understand why people hate threading, if you think of it from the get-go, they're easy
if you try to graft on afterwards, it's usually a disaster 18:45
sorear niecza: use Threads; Thread.new({ say "Hello" }).join
p6eval niecza 6d9e43e: OUTPUT«Hello␤» 18:46
skids There's two types of coders. Those that love threads, because they actually have had to do something with time/latency sensitive interaction, and those who have never had to do that and so do not have an inkling just how essential they are to any complete language.
PerlJam skids: false.
sorear I'm in a "can't stand 'em, can't live without 'em" relationship with threads
PerlJam skids: I've had to do time sensitive interaction and I do not love threads. 18:47
skids OK, well, "love" may have been the wrong word.
18:47 [particle] left
s1n it's kinda hard to avoid threads nowadays 18:47
PerlJam I'm wary of threads.
ironcamel how do i write tests in perl6?
skids Threads can certainly be badly abused.
shortcircuit skids: Day job for me is time-sensitive interaction, and I'd much rather have a task dispatch model available.
ironcamel is there Test::More ?
PerlJam s1n: no it's not! We keep inventing new ways of avoiding them all the time!
sorear it's called Test now 18:48
ironcamel thanks sorear
s1n PerlJam: and all those ways suck
because my hardware has threads
and my kernel can schedule them well
anything else, is just slow and pointless
dalek ecza/master: 9615df7 | sorear++ | / (2 files):
Add a 'regex global state' object
ecza/master: 1e0987f | sorear++ | / (2 files):
Allow $*FOO as parameters
ecza/master: 22a529d | sorear++ | / (2 files):
Implement [ 1, 2, 3 ] syntax
skids shortcircuit: reread the above with a broader definition of "threads" :-)
shortcircuit skids: So, 'concurrency'? :)
tadzik s1n: so what is your point again? 18:49
PerlJam It's partly because fork() isn't as onerous as it used to be that threads haven't made it mainstream IMHO
sorear s1n: [1, 2, 3] »+« [10, 20, 30] # this is a way of avoiding Perl threads, but it can still map to OS threads
skids shortcircuit: concurrency that uses hardware threads, to be specific, regardless of whether the api looks like a threading api.
sorear Programmers should not use threads unless they absolutely have to
s1n no, threads aren't mainstream because people have a hardtime contemplating thinking of multiple threads executing the same line of code at the same time
sorear The *runtime* should use threads whenever possible 18:50
PerlJam sorear++
s1n they're also difficult to debug
too many developers rely on print statements 18:51
sorear The reason I don't like to write threads is the same reason I don't like to work with /dev/hda
they're just too low level
18:51 zostay left
s1n aww 18:51
i love the low level
sorear I build abstractions on top of both - data parallelism, file systems
moritz_ sorear: if you don't like low level, you shouldn't be writing a compiler *SCNR* :-)
s1n moritz_++
tadzik (that was a joke, wasn't it?) 18:52
moritz_ it was
18:52 zostay joined
sorear au contraire. If I *actually* liked low level, why would I be writing code to hide it? 18:53
:-)
skids High level abstractions above threads are great, and the less guts Perl6 users have to see to get needed concurrency the better, but no matter what high level API you put on top of it, there's still the shared data access problem. Unless all your threads never need to do more than pass messages, and once you get into messages, you lose all the benefits of perl6's kickass OO because you have to constantly pack/unpack stuff.
shortcircuit skids: Well, yes, software should take advantage of the underlying platform's scaling capabilities. 18:54
s1n i think a good perl6 interface over pthreads is possible
18:55 [particle] joined
s1n (not perl6/pthreads, but Perl6 threads that are analogous to pthreads) 18:55
shortcircuit s1n: I'm inclined to agree; in an N:1 or N:M model, punching the kernel scheduler wtr the kernels' idea of threads is likely to have nasty consequences. 18:56
*wrt
s1n i just want to write perl6 code that can be threaded to each code and hardware thread automatically with a nice perl6 interface. green threads won't get me there 18:57
shortcircuit (In other words, don't call out to a C API pthreads library. Don't call out to Win32's WaitForSingleObject, etc.)
skids I think there's a very interesting thing in Perl6's hyperops which is a mostly new issue -- not all hyperops are going to need an interpreter, some will be simple math, and folks will want OpenMP and cloud stuff to tie in seamlessly (maybe even oportunistically in some cases) 18:58
So is that a "thread" if it's not perl6 in the "thread"?
PerlJam skids: have you used PDL? 18:59
s1n i'm not sure what you're asking, but openmp typically abstracts the pthreads call with a nice #praga
shortcircuit s1n: I'm not sure what you're saying. I think you're saying either you want to know that you have an execution sequence in Perl6 to map 1:1 to a hardware thread, or you're saying want your code to transparently scale across available hardware processing units.
Ah. Transparent scaling.
skids I guess not, since I'm unsure what the acronym is, unless it's "parrot (something) language" in which case, maybe, in a fit of hacking, a bot. 19:00
s/bot/bit/
PerlJam skids: Perl Data Language.
skids No, I'll take a gander sometime.
19:00 timbunce_ joined
PerlJam skids: They talk about threading over matrices and such. That's the non-perl6 thread you just described. 19:00
s1n shortcircuit: well, yes, 1:1 mapping from a perl6 interface would seem to give me transparent scaling by both the perl6 interpreter and my kernel
19:01 timbunce left, timbunce_ is now known as timbunce
shortcircuit is totally confused. Back to focusing on work. 19:01
skids PerlJam: thanks, I've been lacking a good word for that.
ironcamel hi guys, so i'm doing a timed coding exercise at work ... and my and partner chose to do it in perl 6 ... so i'm going to be asking a lot of noob questions ... and i'm very rushed so will probably spell things wrong
PerlJam skids: pdl.perl.org :)
Tene ironcamel: Sounds fun! :) 19:02
ironcamel just want to import a module
jnthn use ModuleName;
ironcamel and i'm doing it perl5 way and it's not working
jnthn: ok, what is the first line of ModuleName.pm ?
PerlJam ironcamel: you're doing a perl5 thing in perl6?
jnthn Depends what's in it.
module ModuleName; # if it's a bunch of subs
use class if you're putting a class in there.
ironcamel PerlJam: no ... i only know perl 5 ... so i'm making noob mistakes
PerlJam okay 19:03
ironcamel jnthn: it's going to be a bunch of classes
tadzik jnthn: s/use //
?
moritz_ then class ModuleName { ... }
tadzik ah, no, nvm
PerlJam tadzik: the "use" there wasn't syntactic :)
tadzik PerlJam: yeah, noticed :)
ironcamel moritz_: there will be multiple classes in there
moritz_ ironcamel: that's OK 19:04
ironcamel i want to use Foo in my test file. i want module Foo to have classes Bar and Poo
and class Foo too maybe
so i make a Foo.pm file right?
PerlJam classes and modules occupy the same symbol-space IIRC
moritz_ ironcamel: right
ironcamel: and you add class Foo { ... }; class Foo::Bar { ... }; class Foo::Poo { ... } 19:05
ironcamel got it, it's working :)
any good quick tutorials on OOP for p6? 19:06
perlgeek.de/en/article/5-to-6
PerlJam ironcamel: perldoc Moose # ;-)
ironcamel is what i'm looking at
ok, i'm good with moose, so it shouldn't be too bad
PerlJam ironcamel: There's also some info in the perl 6 advent calendar
moritz_ ironcamel: github.com/downloads/perl6/book/201...df/qr_code 19:07
PerlJam ironcamel: perl6advent.wordpress.com/2009/12/0...-calendar/
ironcamel: perl6.org has all the links you'll ever need :) 19:08
skids s1n: just for fun you might want to read this very early whack at Perl6 thread-like concurrency constructs that Austin made way back when and everyone dutifullywww.nntp.perl.org/group/perl.perl6....14788.html ignored: 19:15
skids hates mouse-cursor-based pastes in terminal-like applications. 19:16
ironcamel how do i declare an attribute is an array/arrayref?
PerlJam has @array;
ironcamel i'm making a monopoly game object. it has players
moritz_ has @!thing;
PerlJam er, what moritz_ said
ironcamel ok cool
PerlJam my sigil got lost somewhere 19:17
er, twigil
ironcamel twigil is required right?
tadzik will Perl 7 have thrigils? :)
moritz_ actually I think you can omit it
ironcamel and how come say "hi @foo" doesn't work anymore
tadzik you mean @foo[]
PerlJam ironcamel: say "hi @foo[]"
ironcamel moritz_: it will default to public or private?
s1n tadzik: you will have to build them with sticks and stones though
moritz_ rakudo: class A { has @x = 1, 2; method foo { say @x } }; A.new.foo
flussence or "hi {@foo}"
moritz_ ironcamel: private
p6eval rakudo 79f754: OUTPUT«12␤»
tadzik s1n: what do you mean? 19:18
s1n tadzik: heard the expression "perl 7 will be fought with sticks and stones"
tadzik heh 19:19
ironcamel oh neat, so Foo.new( players => @players ) works ... so i don't have to do \@players any longer? 19:20
moritz_ right
you can even write Foo.new(:@players)
skids By perl7, OO objects very well may be tangible enough to poke someone's eye out.
19:20 zby_home__ joined 19:21 zby_home_ left
ironcamel does @players.shuffle() should work? 19:21
moritz_ @players.pick(*)
tadzik .=?
moritz_ (that returns the shuffled array, not inplace)
tadzik ah, nvm me
ironcamel moritz_: where can i find documentation for pick()
moritz_ ironcamel: S32/Containers 19:22
jnthn Slides from my OSDC.fr talks now up at www.jnthn.net/articles.shtml
ironcamel moritz_: where is that? 19:23
jnthn Sorry it took a whole week. exhaustion--
moritz_ ironcamel: linked from perlcabal.org/syn/
19:24 [particle] left
ironcamel is there a Test::Exception equivalent? 19:25
moritz_ ironcamel: Test.pm come with lives_ok and dies_ok
ironcamel cool
moritz_ and eval_{lives,dies}_ok
ironcamel is there a way to match on the exception?
moritz_ not yet
19:26 synth left 19:29 nymacro left
ironcamel something wrong with this? is $g.players => <horse car>, 'have 2 players'; 19:30
Tene ironcamel: did you declare the attribute as rw?
has $.players is rw; 19:31
or whatever
ironcamel @.players is rw
moritz_ ironcamel: => constructs a Pair
ironcamel: it's not just a comma anymore
Tene Ah, yes, I misread that as just '='. 19:32
ironcamel ah
Tene Yes, moritz is right, s/ =>/,/
ironcamel but => was so nice to associate pairs of things :)
tadzik it now assosiates a Pair of things :)
Pair.new, to be more specific :) 19:33
ironcamel so length of list/array how does that work now
scalar context is not working
sorear .elems
or numeric context
moritz_ ironcamel: => is also used for named arguments
Tene @foo.elems
or +@foo
sorear timtoady still hasn't pinged in :(
ironcamel .elems returns a count? 19:34
Tene yes
ironcamel what does +@foo mean?
moritz_ @foo in numeric context
returns the same as @foo.elems
tadzik like @foo.Num?
sorear like @foo.Numeric
moritz_ tadzik: .Numeric
tadzik ok
sorear .Num generally means 64-bit float... Numeric is a lot more general 19:35
19:38 plainhao left
ironcamel what is corresponding BUILD in p6? 19:40
moritz_ BUILD
tadzik submethod BUILD
moritz_ (roughly) 19:41
tadzik but now, you have to assign the parameters on your own, iirc
ironcamel or even better, i want to assert there are between 2 to 6 players when object is constructed
19:41 xivix joined
ironcamel has @.players is rw; 19:41
i want to die if it is not
is BUILD right place to do that?
tadzik I think so
xivix How's the next version coming?
ironcamel no easy way to add validation to the attribute? 19:42
moritz_ submethod BUILD(:@players) { die unless 2 <= @players <= 6 }
ironcamel submethod? why not method?
moritz_ ironcamel: there is, but it doesn't work well yet
tadzik xivix: great as always :) Are you asking about something specific?
moritz_ subset Players of Array where { 2 <= .elems <= 6 }
xivix Not really. Is the project aimed as a successor to Perl 5? 19:43
tadzik I think so
moritz_ or not, depending on whom you ask :-)
xivix I had thought so, but then I visited the website today, and it said something like, "sister language."
moritz_ xivix: in some sense it's a successor, but that doesn't mean it will obsolete Perl 5 19:44
tadzik It's not a drop-in replacement, as it's not backwards-compatibile, so it's not just another version of Perl
Tene xivix: Perl 5 is not going away, and people will still be using it for quite a long time.
moritz_ xivix: which is what many people falsly assume
xivix Is it going to have backwards-compatibility modules?
use legacy;
or someghing?
tadzik use v5
it's speced
ironcamel what does submethod mean? 19:45
xivix But that's as far as backwards-compatibility will go?
tadzik it doesn't get inherited
moritz_ ironcamel: it's a method that's not inherited
Tene xivix: It's specced, but not yet implemented, and Perl 5 is going to continue development.
sorear Perl 6 is being designed as a successor to Perl 5, in the sense that C++ is a successor to C
moritz_ xivix: you can also use perl 5 modules from Perl 6 (within certain limits)
xivix Why not Perl++?
tadzik we alredy evaluated that
sorear the relationship between the two languages will probably be similar to that
moritz_ xivix: because it's not an increment :-) 19:46
sorear although, the complexity differential is a lot smaller
moritz_ it's a huge step
xivix I was trying to come up with something more perl-y.
tadzik I think there are more important things than the numeration
sorear Perl 6 makes some things more complicated, but it also simplifies a great deal
xivix How can it be more complicated than anything in Perl already? 19:47
moritz_ ironcamel: perlgeek.de/blog-en/perl-6/object-c...ation.html might interest you
ironcamel thanks moritz_ ! 19:48
moritz_ xivix: a programming language can't make everything simple
xivix I kid. The language was much in need of a facelift, though.
ironcamel submethod BUILD { die unless 2 <= @.players.elems <= 6 }
something wrong with that?
moritz_ xivix: it's like a waterbed - if you press down in some places, others will start to rise
xivix It was beginning to reach its limits.
sorear the only reason Perl 5 was ever worth using was CPAN
we're trying to fix that with 6
xivix CPAN and the best regex support ever. 19:49
moritz_ ironcamel: you probably need submethod BUILD(:@!player) { ... } (for some strange reason I don't quite understand)
xivix: well, perl 6 regexes are even more powerful :-)
ironcamel has @.players is rw;
is my attribute
moritz_ ironcamel: I know, I know
xivix How?
moritz_ s/player/players/ in my example
tadzik xivix: as they're not regular, more like context-free
iirc
moritz_ xivix: you can name regexes, and call them by name 19:50
sorear Perl 5 regexes are wayyyy beyond regular too
xivix How is s/player/players/ special?
tadzik and iiuc
moritz_ xivix: and organize them in grammars, and inherit from them
tadzik xivix: that was for ironcamel
xivix Oh, okay.
I was all, "how...is...that...different...?"
tadzik take a look at the Regexes chapter in moritz_'s Perl 5 to 6 19:51
xivix So simple regex stuff will be pretty much the same, but now you can have regex inheritence and write whole parsers and stuff?
tadzik right 19:52
moritz_ right
tadzik yet regexes themselves are also a bit different
xivix Right on.
Implementation-wise?
sorear Perl 6 itself is expressed as a regex grammar
xivix Or in their use?
moritz_ both
tadzik not really. They have a different syntax, speced
moritz_ ironcamel: it's a limitation in Rakudo atm, as far as I understand 19:53
xivix Huh. So, it will be superpowerful in Perl 6 because it's pretty much the bedrock of the language?
moritz_ ironcamel: BUILD doesn't have access to attributes, unless you declare them as named arguments
xivix Or something like that.
tadzik xivix: the thing is, you can actually modify/extend the standard grammar, in your code 19:54
19:54 [particle] joined
moritz_ xivix: there's the old saying that you can't parse XML in with regexes -- that's not true anymore in Perl 6 19:54
xivix Oh, no way.
tadzik still, can you parse HTML? 19:55
xivix Yeah, I figured it might be practical with the inheritance thing.
HTML is almost regular sometimes.
moritz_ perlgeek.de/en/article/5-to-6#post_20
tadzik I mean, to a data structure? How would it treat things like <b><i>bla</b></i>
moritz_ tadzik: badly :-)
tadzik I thought so :) So tokenizing is the only way, like HTML::Parser does this?
xivix So you could have some module ``perl-to-java'', and then write Java code after that?
tadzik That sounds possible. That also sounds wrong :) 19:56
xivix That would be dumb. But would it be possible?
moritz_ tadzik: stringly speaking, <b><i>bla</b></i> is not HTML :-)
tadzik moritz_: isn't it? It's not XHTML, but isn't stuff like this HTML-ok?
xivix Yeah, but the fact that such a thing could be internal is mind-blowing.
moritz_ xivix: if somebody implement it...
xivix Right. Who would? Probably nobody. 19:57
tadzik there's a Java to Perl6 translator
xivix Nah, somebody will do something like that.
moritz_ tadzik: SGML has its quirks, but wrongly nested tags aren't allowed in SGML and HTML either
tadzik I see
xivix "Hey look, guys! I made Perl into Scheme!"
moritz_ well, mberends is working on a Java backend for Perl 6
for Rakudo, to be precise 19:58
tadzik Java, or JVM?
moritz_ Java atm
xivix So why was Parrot chosen?
dukeleto mumbles about wheels within wheels
xivix And not LLVM or another VM? 19:59
moritz_ xivix: it provides lots of stuff that Perl 6 needs - like a framework for multi dispatch
tadzik Parrot is more dynamic than most of the VMs around, I think
moritz_ and it's desgined for dynamic languages
dukeleto xivix: llvm is "low-level" hence the name. Parrot will begin to use LLVM in the near future.
moritz_ whereas JVM is for statically typed languages
xivix Oh, so Pure should be using Partot.
Huh. 20:00
tadzik Pure?
xivix Very much so, actually.
Pure is a newish functional language, written by a German music teacher.
It's based on term rewriting and has haskell-like syntax to a degree.
But the fact that is' based on term rewriting, though POWERFUL, is HELLA SLOW.
moritz_ how statically typed is it 20:01
?
20:01 zostay left
xivix The interpreter is written for LLVM, but it would make sense for it to be Parrot, if it's higher level. 20:01
It's one of LLVM's demo projects, actually.
tadzik if it's for LLVM, it's not an interpreter I think :) 20:02
20:02 zostay joined
xivix It's a compiler but it has a command line as well. 20:02
tadzik so does Rakudo 20:03
xivix Okay, so it JIT compiles the code when there's an input file.
When there's not an input file.
Whatever. It's slow on LLVM. 20:04
moritz_ that doesn't mean LLVM is to blame
rakudo is also slow on parrot
xivix I didn't say LLVM was to blame. 20:05
I was calling into question the choice of VM.
Tene xivix: Quite possibly. Parrot is quite a nice platform for some languages.
It's still in heavy development, and has some notable drawbacks and not-yet-implemented parts. 20:06
xivix Yeah, whereas LLVM is fairly mature. 20:07
tadzik it has less to do :)
sorear Parrot is the laughing stock of the VM community, sadly
muixirt Tene: could you please define "some languages"
xivix Like, Apple's linking cc to llvm-gcc in Xcode 4.
sorear ten years of political infighting in the steering committee have left it not significantly better off than it was in 2001
xivix So if it's good enough for Apple, it's...
jnthn Turns out Perl 6 is actually gradually typed. If I target Parrot, I gotta build the static bits I want. If I target the JVM, I gotta build the dynamic bits I want.
ironcamel say 10.rand.int ... what is the rigth way to do that 20:08
sorear there are signs that this might be improving soon, but I for one am not that patient
say 10.rand
.Int
Tene muixirt: Parrot seems to be pretty nice for some types of language research. I'm quite pleased with their compiler tools, for example.
xivix So I looked up Parrot on Wikipedia just now. 20:09
Turns out Parrot and LLVM both just reached 2.8.
Coincedince?
sorear Parrot does monthly releases 20:10
xivix CONSPIRACY!
sorear You can't assume 2.8 is better than 2.7, because that's not the release condition
xivix Nope. Usually, "stable again as far as we know."
sorear Parrot stable releases are 0 mod 3 20:11
not 2
2.9 will be the next stable release
xivix That's somewhat unusual.
So what are the current projects involving Perl 6? 20:13
Rakudo, ... 20:14
sorear Niecza ;) 20:16
there are a couple people using perl 6 for apps
xivix Niecza?
Oh, that's your compiler. 20:17
For Mono?
sorear yes 20:18
xivix Perl and Windows seems to be a contradiction.
sorear well the binaries will work fine on MS .NET
jnthn xivix: Er
sorear there is also a LLVM port in the works
20:18 Mowah left
xivix jnthn: ? 20:18
jnthn xivix: I'm one of the core Rakudo devs and I do pretty much all my development work on Windows. :-)
I assure you there's no contradiction. :-)
xivix There needs to be someone to make sure it works on the lesser platforms. :P 20:19
jnthn It works just fine there.
sorear People always look at me funny when I say I target the CLR.
jnthn Not lesser by install base. ;-)
xivix Average IQ of install base?
sorear There's so much hate against everything even tangentially associated with Microsoft. It's ridiculous.
jnthn sorear: Agree. 20:20
xivix I'm just kidding around.
I play my video games from time to time.
jnthn :P
sorear the CLR was not designed at Microsoft, was not initially implemented at Microsoft, was not created to run on Windows, and the implementation I use is completely independant 20:21
Tene I personally just don't know much about MS software. I assume by default that they must be doing *something* pretty well, as their software seems useful to quite a few people.
sorear the only thing associated with Microsoft about the CLR is the fact that Microsoft bought the company that made it
Tene I just haven't had any need or use for it. I don't seem to be their target market, or something.
xivix They were the first to be cross-platform and dirt-cheap.
sorear and somehow this taints Mono? WTF?
xivix I didn't say anything bad about your project! 20:22
sorear 15:17 < xivix> For Mono?
15:18 < sorear> yes
15:18 < xivix> Perl and Windows seems to be a contradiction.
This is a non sequiter
xivix I was joking!
Sheesh.
Don't be so defensive.
Tene xivix: We get a nontrivial number of trolls here, so some people are touchy about possible trolling from new nicks. 20:23
xivix Sorry, I didn't mean it, honest. 20:24
ironcamel has Int $.position is rw default 0;
Tene Joking and sarcasm often come across wrong on IRC, unfortunately. :(
ironcamel how do i do defaults?
xivix It's evident, though, that it's finally clicked for some of the folks at Microsoft that reinventing the wheel isn't the holy grail of design.
sorear ironcamel: = 0;
Tene ironcamel: = 0;
xivix With IE9, finally implementing standards, for example. 20:25
ironcamel thanks :)
xivix It's actually a REALLY NICE browser.
No foolin'.
ironcamel is there an easy way to mock methods?
moritz_ define "mock" 20:26
ironcamel $foo.bar() = { say 'hi' }
xivix Yeah, "Ha ha, you suck, print()!"
ironcamel just want to replace a method with my own
moritz_ $foo but role { method bar { say 'hi' } }
ironcamel that's awesome 20:27
jnthn I think you want does there
If you want to twiddle the object in place.
moritz_ erm, yes; I always mix up those two
ironcamel when do you use but?
jnthn ironcamel: When you want to make a copy and mix in to that.
xivix Are these new or am I just that bad at Perl?
20:27 eternaleye left
jnthn ironcamel: You'd use it when mixing into literals, for example 20:28
42 but role { method Str() { "the answer" } }
xivix: Yes, does and but are new operators in Perl 6.
xivix Whew.
20:29 eternaleye joined
sorear As are roles. 20:29
xivix Clearly.
That's pretty awesome.
20:30 _2easy joined, _2easy left, masak joined
masak ahojte! 20:30
tadzik hai masak!
ironcamel has %.board_names = { 7 => 'Chance' }; 20:31
is that right?
masak no need for the {}
tadzik yay, Monopoly
moritz_ and potentially harmfull, no?
masak rakudo: class A { has %.board_names = 7 => 'Chance' }; say A.new.board_names.perl
p6eval rakudo 79f754: OUTPUT«{"7" => "Chance"}␤» 20:32
ironcamel say $g.board_names{7}; is printing Any()
masak moritz_: no, it should work, I think.
rakudo: class A { has %.board_names = { 7 => 'Chance' } }; say A.new.board_names.perl
p6eval rakudo 79f754: OUTPUT«{"7" => "Chance"}␤»
moritz_ rakudo: my %h = { a => 1, b => 2}; say %h.perl
p6eval rakudo 79f754: OUTPUT«{"a" => 1, "b" => 2}␤»
20:32 eternaleye left
tadzik ironcamel: you mean either <7> or {'7'} 20:32
{} is not autoquoting anymore
masak right. with arrays, however, there's a difference.
sorear Is { "foo" => "bar" } a hash constructor?
masak tadzik: say what?
tadzik masak: say .WHAT?
sorear How about { $variable-which-happens-to-hold-a-pair } ?
masak tadzik: the hash keys still autoquote, just like in Perl 5. 20:33
tadzik masak: I meant you can't do %foo{bar}
ironcamel ints cant' be keys?
keys are only strings?
masak tadzik: oh, ah. hash indexing :)
tadzik bar being a string literal
20:33 eternaleye joined
Tene tadzik: no 20:33
masak tadzik: sorry, I thought you meant circumfix:<{ }>, not postcircumfix:<{ }>
Tene tadzik: if you want that, use explicit autoquoting, %foo<bar> 20:34
tadzik Tene: I know, I was telling that to ironcamel
ironcamel: that'll have to be string with numbers
Tene Oh, um, I reading comprehension failed.
tadzik ironcamel: or you just want an Array maybe?
masak tadzik: re <b><i>foo</b></i> and tokenizing; I once addressed that problem for November the wiki engine.
tadzik Tene: there's plenty of people shouting all over to each other
masak I said THE MUSIC IS TOO LOUD. 20:35
tadzik WHAT?
jnthn masak: oh yay, you used the plural form of the greeting! \o/
tadzik I CAN'T HEAR YOU, THE MUSIC IS TOO LOUD!
masak WHAT?
xivix DID SOMEBODY SAY SOMETHING?
masak :) 20:36
jnthn hands masak a type object
20:36 timbunce left
dalek kudo: 0647023 | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
20:36
xivix dalek?
tadzik dalek 20:37
xivix That's your GitHub bot's name?
Tene xivix: bot that reports commits to the repos
yes
xivix Superb.
Tene EXTERMINATE BUGS
masak xivix, ironcamel: I just want to extend a "welcome" to you both. welcome. :)
xivix Thanks! 20:38
masak how did you hear about this place?
xivix I was looking through my ports system and realized Perl wasn't there, then decided to check on Perl 6 because I'd heard it was in the works.
masak and so it is! :) 20:39
xivix Indeed!
Is anyone good at Irssi?
Tene many here use it 20:40
what do you need?
xivix I think I finally get the commands, and it's time to move on to making a configuration file.
sorear irssi sucks
I use it with hatred 20:41
tadzik everything sucks
xivix Until now, I'd been leaning on gui irc clients.
20:41 silug joined
xivix Do you recommend an alternative? 20:41
tadzik xivix: what kind of ports system does not have Perl?
moritz_ "software is hateful" -- Nicholas Clark
xivix Homebrew for Mac.
Tries not to duplicate OS X builtins, and Perl 5.12 isn't enough to warrant the upgrade from 5.10.
tadzik xivix: I like weechat personally
sorear xivix: irssi doesn't use configuration files of the handmade varity; when you type /save it creates config from current settings
variety 20:42
xivix do't wory aboet speling
Tene I've never bothered with learning the commands to deal with the config from in-client. I change my channels and networks sufficiently rarely that I just edit the config in an editor and then /reload 20:43
masak rakudo: sub roman { $^n >= 10 ?? "x" ~ roman $n-10 !! $n == 9 ?? "ix" !! $n >= 5 ?? "v" ~ roman $n-5 !! <i ii iii iv>[$n-1] }; say map { .&roman }, 14, 9
p6eval rakudo 79f754: OUTPUT«xivix␤»
masak \o/
xivix That sounds like a good solution.
20:45 timbunce joined
xivix Haha, just looking at WeeChat. 20:45
"We're multi-protocol! (supports IRC and Jabber)"
It's more than most IRC clients, to be sure. 20:46
But dual-protocol would be a better description.
moritz_ I for one welcome our new protcol droids 20:47
xivix :)
moritz_ -> sleep 20:48
masak moritz_: night!
xivix Nighty-nite.
20:49 justatheory left
diakopter xivix: Mono released v2.8 the same day as LLVM v2.8 20:50
xivix Oh my! How conspiratory. 20:51
Parrot, Mono, and LLVM. What could this mean?
Also, that was a while ago. Kudos for reading the chat log.
20:52 pythonian4000afk is now known as pythonian4000
masak rakudo: sub roman { my $pre = <v x xv xx xxv xxx xxxv>[($^n-4) / 5] // ""; $n % 5 == 4 ?? $pre.substr(0, -1) ~ "i" ~ $pre.substr(-1) !! $pre ~ "i" x ($n % 5) }; say roman($_) for 1..30 20:53
p6eval rakudo 79f754: OUTPUT«(timeout)»
20:53 jferrero joined
masak p6eval: you turtle! :) 20:53
rakudo: sub roman { my $pre = <v x xv xx xxv xxx xxxv>[($^n-4) / 5] // ""; $n % 5 == 4 ?? $pre.substr(0, -1) ~ "i" ~ $pre.substr(-1) !! $pre ~ "i" x ($n % 5) }; say roman($_) for 1..15 20:54
diakopter heh
p6eval rakudo 79f754: OUTPUT«i␤ii␤iii␤iv␤v␤vi␤vii␤viii␤ix␤x␤xi␤xii␤xiii␤xiv␤xv␤»
xivix Nice. What's the double slash?
masak xivix: defined-or
xivix: "use the lhs if it's defined, otherwise the rhs" 20:55
xivix Right, was that a necessary change?
masak xivix: lots more details in S03: perlcabal.org/syn/S03.html
xivix Like you couldn't use normal or for it?
masak xivix: I could've.
but I like being specific. adds clarity.
xivix Is that new syntax? 20:56
masak Perl 6 introduced it. Perl 5.10 "borrowed" it.
xivix Who would have guessed that adding forward slashes to Perl would add clarity?
Go figure.
masak well, you're right in that it's not necessary in this case. 20:57
I could have just used the normal || operator.
xivix I thought it was a side-effect of the changes in v6.
Like you had to do that now.
Also, what are those delimeters? I don't think they're showing right in my encoding.
masak not at all.
diakopter xivix: I think you mean the newlines 20:58
masak xivix: Unicode is your friend.
diakopter in p6eval's output
Tene xivix: I've plenty of times written: defined($foo) ? $foo : $other
xivix They're newlines. Gotcha.
Tene with //, that's just $foo // $other
masak xivix: here on #perl6, if you don't have your set calibrated for utf-8, you'r losing out.
xivix I think I'm using UTF-8.
Irssi must not be.
Tene using || would alternate on defined-but-false values like 0 and the empty string. 20:59
masak Tene: the Lisp world has a name for that kind of trouble.
xivix That's some good sugar.
masak Tene: I don't recall what, though.
jferrero xivix, what is $^n ? 21:01
huf semipredicate problem?
masak huf: yup, that sounds like it. huf++
xivix jferrero: What do you mean?
masak en.wikipedia.org/wiki/Semipredicate_problem 21:02
jferrero sorry, xivix , Is a question for masak :*)
masak Perl 6 should be mentioned in that article.
jferrero: $^n -- see S06.
jferrero: (it's a variable that declares itself as a parameter) 21:03
xivix jferrero: I thought you were testing me.
jferrero ah, Ok...
masak xivix: at any time, there might be a test. better stay alert! :P 21:04
xivix PERL N00BS: EVACUATE THE PREMISES
Yo, someone should write a PerlQuiz bot. 21:05
Not it.
masak xivix: I think you and lue++ might get along fine. 21:06
xivix Who?
21:06 _kaare left
masak oh, lue is just this guy, you know. :) 21:06
xivix Yeah, I see him in your commit logs. 21:07
masak he's the one who put in this error message: 21:10
rakudo: :2<OH HAI>
p6eval rakudo 064702: OUTPUT«===SORRY!===␤Malformed radix number at line 22, near "<OH HAI>"␤»
masak oh, not that one.
rakudo: my $foo = "OH HAI"; :2($foo)
p6eval rakudo 064702: OUTPUT«DON'T PANIC! Invalid character (O)! Please try again :) ␤ in main program body at line 1␤»
masak that one.
xivix Er, what was the error? 21:11
masak xivix: :2() only accepts the characters "0" and "1". 21:12
xivix Oh, duh.
My b.
masak no need to apologise :)
xivix I'd be pleasantly surprised if for a moment I forgot what binary was, though! 21:13
Though maybe a little lost.
And also, I discovered that my encoding is still not working.
αβγδ 21:14
How did that...? 21:15
sorear alpha beta gamma delta 21:16
xivix But the symbols, right?
masak the Greek letters. 21:17
sorear symbols? no, they're lowercase letters
xivix The symbols vs. the names.
masak sorear: letters are symbols :)
xivix 'f' is a symbol in the Latin alphabet, with the name "eff".
sorear masak: if I had a penny for every time somebody expected 'λ' ~~ /\W/ ... 21:18
masak 是, however, is a symbol but not a letter. actually, it's a 字 :)
xivix What's its name!
masak xivix: depends on where you're from.
sorear the hanzi have different names in each country that uses them 21:19
masak xivix: in the Mandarin-speaking parts, its name is SHI4.
xivix Touché.
masak TouSHI4. :)
sorear even the collective name differs; the Japanese call them kanji
masak and the Korean "hanja".
xivix I knew that last thing. 21:20
Because I took some Japanese once.
jnthn lol i blug: 6guts.wordpress.com/2010/10/15/slid...ymorphism/
xivix So, those symbols all showed up just fine, but the delimiters from rakudo didn't. :\
masak jnthn++ \o/
xivix The past tense? 21:21
masak xivix: probably your font not being l33t enough, then.
xivix Maybe not.
masak xivix: jnthn likes Indo-European languages, so he's toying with... ablaut, is it?
jnthn Yes, yes, I abaught inappropriately. :-) 21:22
*ablaught
masak *laul*
sorear xivix: the delimiters from p6eval are in very very few fonts
xivix Now I'm using Courier, so maybe it'll work. 21:23
masak jnthn: “but that usually will create another problem” 21:24
jnthn: that's not how I heard it.
jnthn: I heard it as "except the problem of too many levels of indirection", which is more of a punch line.
sorear TimToady is a linguist. It rubs off. 21:25
xivix Wait, what should the thing before "Welcome to Perl 6" look like?
sorear A butterfly. 21:26
xivix Oh, okay.
jnthn masak: en.wikiquote.org/wiki/Programming
masak: Was my source.
masak xivix: '>>' as one char, 'o' with two dots, '<<' as one char.
sorear Closing guillemot, o-umlaut, opening guillemot
xivix Okay, it's looked like that the whole time.
sorear aka "ISO-8859-1 Camelia"
jnthn masak: But I seem to remember it the way I have it too.
sorear our logo has an official character form 21:27
masak jnthn: here's my source: en.wikipedia.org/wiki/David_Wheeler...scientist)
21:27 colomon joined
masak quote just above "Publications". 21:27
jnthn Yeah
Maybe he said both. ;-)
Sadly, he's no longer around to ask. :-( 21:28
I'm pretty sure I stood in an elevator with him once though...
xivix *schoolgirl scream* 21:29
jnthn Those two comments weren't *that* related. :P
masak not a good idea to scream like a schoolgirl while in an elevator.
jnthn I didn't. I was more like "wait, is that..."
xivix masak: Apparently I need to re-evaluate my idea of what is socially appropriate. 21:30
rakudo: "encoding?" 21:32
p6eval rakudo 064702: ( no output )
masak rakudo: say $*ENC
p6eval rakudo 064702: ( no output )
masak :(
xivix rakudo: say "huh?" 21:33
p6eval rakudo 064702: OUTPUT«huh?␤»
xivix Nope. Still broked.
Er, unless it's supposed to look like N/L. 21:34
muixirt rakudo: my Buf @b=1,2,3,4; say @b[0]
xivix In which case that's just strange.
p6eval rakudo 064702: OUTPUT«maximum recursion depth exceeded␤ in 'at_pos' at line 1␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1697:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line
..1697:CORE.settin…
masak xivix: it's supposed to look like N/L.
xivix: think about it :) 21:35
xivix I get it.
But it looked like icky quotes and a right angle at size 11.
masak muixirt: that doesn't do what you think it does.
xivix I can read the characters now at size 13.
It was never broken in the first place. 21:36
xivix feels silly
masak muixirt: when you type an array, the type refers to the array's elements.
sorear I actually think a box is more readable than N/L so I haven't bothered to fix it
xivix So, can arrays have other arrays as elements in Perl 6? 21:37
masak xivix: sure.
xivix Thank God.
masak rakudo: my @a = [1, 2, 3], [4, 5, 6]; say @a.elems; say @a.perl
p6eval rakudo 064702: OUTPUT«2␤[[1, 2, 3], [4, 5, 6]]␤»
xivix That was SO NECESSARY. 21:38
masak xivix: erm. Perl 5 does that too.
xivix Have I been using v4?
Maybe using v4 docs.
21:39 pyrimidine left
xivix I thought it could only store the references. 21:39
masak that's all Perl 6 can do too.
no real difference.
Tene perl -E '@a = ([1,2],[3,4]); say scalar(@a)'
2
muixirt rakudo: my Buf @b=1,2,3,4; say @b.perl 21:40
p6eval rakudo 064702: OUTPUT«[1, 2, 3, 4]␤»
muixirt i don't get it
21:40 jferrero left
sorear muixirt: you just created a list of Buf objects, and stored 4 integers in it 21:41
it should have crashed, saying "1 cannot be stored in an array of Buf"
21:41 mavrc left
xivix Whoah, type checking? 21:41
muixirt so how do i get a Buf and fill it with integer values? 21:42
21:42 chturne joined
Tene rakudo: my Buf $b .= new(); say $b.WHAT; 21:44
p6eval rakudo 064702: OUTPUT«Buf()␤»
masak rakudo: my Buf $b .= new(65, 66, 67). say $b.decode 21:49
p6eval rakudo 064702: OUTPUT«===SORRY!===␤Confused at line 22, near "my Buf $b "␤»
xivix Yeah, so about the array thing.
masak rakudo: my Buf $b .= new(65, 66, 67); say $b.decode
jnthn masak: ;
p6eval rakudo 064702: OUTPUT«ABC␤»
xivix I'd been always putting in the addresses by hand.
21:50 envi_ left
muixirt and what is wrong with: my Buf $b .= new(); $b=1,2,3,4; 21:51
masak muixirt: the second assignment overwrites the first.
jnthn That's doing item assignment
It's like ($b=1),2,3,4
std: my Buf $b .= new(); $b=1,2,3,4; 21:52
Tene rakudo: my Buf $b .= new(); $b[0..4] = 120, 105, 118, 105, 120; say $b.decode;
p6eval std 263c207: OUTPUT«ok 00:01 119m␤»
rakudo 064702: OUTPUT«xivix␤»
jnthn ah, std ain't doing the useless warnings yet.
21:54 jferrero joined 21:55 timbunce left 22:02 timbunce joined 22:03 synth joined, Schwern left 22:04 icwiener left, Chillance left
dalek ecza/master: 2b2ac81 | sorear++ | / (4 files):
Implement hash constructors
22:05
xivix Where does dalek come from? 22:07
tadzik yay, Hashes in niecza! 22:08
masak sorear++
xivix Why the ++? 22:09
masak aloha: karma sorear
aloha masak: sorear has karma of 105.
masak sorear++
aloha: karma sorear
aloha masak: sorear has karma of 106.
22:09 wooden left
xivix Cool, and why? 22:10
masak social expectation to do good -> get karma.
xivix Right, but, what does it mean?
masak nothing. it's just a number. 22:11
22:11 wooden joined
xivix I'm a fan of meaningless fun things. 22:11
masak in other news, money are just paper and scraps of metal.
s/are/is/
xivix You should have p6eval edit your last message. 22:12
masak rakudo: $_ = "in other news, money are just paper and scraps of metal."; s/are/is/; .say 22:13
22:13 wooden left
p6eval rakudo 064702: OUTPUT«in other news, money is just paper and scraps of metal.␤» 22:13
masak p6eval++ rakudo++
xivix Haha.
Where's the source for the p6eval bot? It'd be fun to correct typos with s//.
22:14 alester left
xivix Anyway, I find it fairly surprising that nobody registered the nick "dalek" on freenode until perl6 needed a GitHub bot. 22:14
sorear xivix: daleks are the main lawful evil race in Dr Who 22:15
xivix sorear: My favorite doctors are 1, 4, and 9.
22:16 wooden joined, wooden left, wooden joined
xivix I'd just assume that the name would be registered rather quickly on a network as large as Freenode. 22:17
tadzik sorear: btw, where did the name "niecza" come from?
sorear tadzik: I asked masak to come up with a name for a Perl 6 implementation 22:18
tadzik masak: btw, where did the name "niecza" come from?
sorear you could say "butchered Polish", but "masak's mind" is probably a more apt description
czas = time, nie = no
tadzik niecza is like "nie trza", which is like "nie trzeba", which is like "isn't needed"
jnthn I think it was a polification of a misunderstanding of some Czech that was captioned as if it was Swedish. 22:19
tadzik ach, cza from czas
masak tadzik: yes, from czas.
22:19 timbunce left
jnthn o~ "...e kass..." 22:21
tadzik yapsi is like "apsik" 22:22
masak what does that mean?
"sneezy"? 22:23
tadzik "apsik" is an.., onomathopeia (is there an english word like this?) for... this activity you do when you get a cold
masak yes, onomatopoeia.
tadzik some people like to make their "apsik" really loud, so the whole district hears it and fells off their chairs 22:24
sorear We say "A-a-a-a-choo!!" here
tadzik yeah, that's it
"kichać
"
sorear What is your home language?
tadzik Polish
masak my office-mate only says the "CHOO!" sometimes, which tends to make me jump.
tadzik like a train 22:25
CHOO CHOO!
masak no, just once. and real loud.
xivix chugga chugga
tadzik I like saying "Achoo!" very loud, and then saying "thank you" even though no one says "bless you", being too stiffed
xivix And you then look around for who you might have responded to. 22:26
tadzik somewhat
22:28 Schwern joined 22:30 wooden left 22:33 wooden joined 22:35 justatheory joined 22:38 wooden_ joined 22:39 wooden left
tadzik sleepytime, g'night folks 22:41
masak tadzik: dobranoc!
tadzik branoc :) 22:42
22:42 tadzik left, cdarroch left
masak heh, look how p6 looked on p6l in 2003: www.nntp.perl.org/group/perl.perl6....15787.html 22:45
22:48 zby_home__ left, kjeldahl left
masak rakudo: use MONKEY_TYPING; augment grammar Perl6::Grammar { token package_declarator:sym<diagram> { <sym> :my $*PKGDECL := "diagram"; <package_def> } }; Perl6::Grammar!protoregex_generation(); eval(diagram Foo {}; say 42]); 23:00
p6eval rakudo 064702: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
jnthn Missed quotes in eval
masak argh. 23:01
rakudo: use MONKEY_TYPING; augment grammar Perl6::Grammar { token package_declarator:sym<diagram> { <sym> :my $*PKGDECL := "diagram"; <package_def> } }; Perl6::Grammar!protoregex_generation(); eval(q[diagram Foo {}; say 42]);
xivix argv.
p6eval rakudo 064702: ( no output )
masak rakudo: use MONKEY_TYPING; augment grammar Perl6::Grammar { token package_declarator:sym<diagram> { <sym> :my $*PKGDECL := "diagram"; <package_def> } }; Perl6::Grammar!protoregex_generation(); eval(q[diagram Foo {}; say 42]); say $!
p6eval rakudo 064702: OUTPUT«No HOW declared for package declarator diagram at line 1, near "{}; say 42"␤»
masak rakudo: use MONKEY_TYPING; augment grammar Perl6::Grammar { token package_declarator:sym<diagram> { <sym> :my $*PKGDECL := "grammar"; <package_def> } }; Perl6::Grammar!protoregex_generation(); eval(q[diagram Foo {}; say 42]); say $! 23:02
p6eval rakudo 064702: OUTPUT«Null PMC access in invoke()␤»
masak I... I hesitate to rakudobug this one :)
jnthn :-)
Tene jnthn: where's the 6model stuff online?
moritz_ github.com/jnthn/6model 23:03
jnthn Tene: See nom branch in nqp-rx repo for the on-Parrot impl so far
And...what moritz_ said for the CLR and JVM ones.
Tene That's extremely tempting to work on. 23:04
jnthn :-)
sorear No love for me. 23:05
:-)
jnthn Tene: I guess you have a commit bit for nqp-rx repo already, and let me know if you want one for 6model repo.
Tene jnthn: I'm all sorts of nonfunctional these days, so it's unlikely that I'll do anything. Would I need to work on anything in 6model to work on the nom branch in nqp-rx? 23:06
jnthn Tene: No
Tene I'm unlikely to work on CLR or JVM. 23:07
jnthn Tene: Generally my work flow is to do the first cut of things in 6model and then port it.
But that's not the case all the time.
Basically, "whatever's easiest"
It's fine to just hack on one, there's no "they must all remain consistent all the time" requirement. :-)
Tene 'k
23:13 pwnage- joined, MayDaniel left 23:18 envi joined 23:19 Chillance joined 23:24 masak left 23:25 pwnage- left 23:35 Trashlord left 23:37 Trashlord joined, risou_ left, eternaleye left 23:38 [particle] left 23:39 eternaleye joined 23:40 [particle] joined 23:42 eternaleye left 23:43 eternaleye joined 23:46 eternaleye left 23:49 eternaleye joined