»ö« 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!
Set by sorear on 4 February 2011.
mdrc eventually requireing to jump, only within the current scope 00:03
also adjacent error code doesn't belong amoungst the nice 00:07
(no matter what automatic profilers would suggest) 00:09
00:15 donri left
[Coke] mdrc: perlcabal.org/syn/S04.html#The_goto_statement 00:17
mdrc nice 00:18
00:19 thou left 00:20 thou joined
arnsholt I suspect there are more idiomatic ways to handle that though 00:21
Like a LEAVE phaser in the appropriate place 00:22
mdrc "unthrown exceptions", which should be "unthrown exceptions," which -- though 00:23
with the comma inside the quotation
arnsholt Only if you use the wrong quotation style =) 00:24
mdrc no that's proper
writing style
arnsholt That depends, actually. I know the US convention is inside, but outside is common in Europe 00:25
(IIRC its often called Oxford comma or something like that)
mdrc oh really, i didn't read european book lately
arnsholt "Logical punctuation" is another name
Right, Oxford comma is something else (comma before and, not this one) 00:26
mdrc english / uk has the comma within
and american
arnsholt Right. At any rate, outside is a different convention. Reasonably common as well I think 00:27
mdrc i haven't seen it
only in errors
clkao win 22 00:28
arnsholt en.wikipedia.org/wiki/Quotation_mar...iderations has a fairly thorough discussion
Essentially, punctuation belongs inside the quotes only when it's actually part of the quotation IMO
00:29 Sarten-X left 00:30 takadonet1 left
mdrc im also a bit of a caret or whatever 00:30
arnsholt Caret?
lue I personally treat quotation marks as actual quoting (e.g. unless someone ended their sentence in a comma, I don't write "Hello world," he said.)
mdrc you know like to point out the little mistakes
you should 00:31
imo
seems nicer like that
oh, and ). there 00:32
i.e. when the parenthesis itself is no full sentence 00:34
lue I'm pretty sure I'm going to annoy my English teacher this coming school year due to my logical (i.e. programmer's) approach to writing... 00:36
mdrc sounds interesting 00:37
00:37 thou left 00:38 thou joined
lue At least I don't end my sentences in semicolons (yet). That'd be really annoying :) . 00:40
00:40 thou left
mdrc sometimes they're the only logical choice 00:41
for on-going sequence points or whatever
00:55 Sarten-X joined 00:59 am0c left
pmichaud loliblogged: rakudo.org/2011/08/19/rakudo-2011-0...se-status/ 01:09
colomon \o/ 01:12
[Coke] pmichaud++ 01:18
pmichaud time to head to the airport 01:19
[Coke] PerlJam: there's perl code now, if this helps: github.com/coke/famflags 01:21
pmichaud afk from riga 01:23
colomon safe home 01:25
[Coke] get ready for the heat!
01:27 uasi joined 01:29 orphu joined, tokuhirom left 01:30 woosley joined 01:35 odoacre joined 01:37 LimitSupremum joined 01:43 whiteknight left 01:47 mdrc left 02:07 risou is now known as risou_awy, risou_awy left 02:10 LimitSupremum left 02:54 _jaldhar joined 02:55 _jaldhar left 03:07 jaldhar joined 03:11 abercrombie left 03:12 thowe left 03:13 colomon left 03:14 thowe joined 03:22 jaldhar left 03:24 Su-Shee_ joined 03:27 wooden joined, Su-Shee left 03:34 jaldhar joined 03:41 satyavvd joined 03:42 molaf joined, LimitSupremum joined 03:45 Trashlord left 03:49 Trashlord joined 03:51 birdwindupbird joined 04:09 molaf left 04:11 masak joined
masak morning, #perl6 04:11
lue hello masak o/
sorear Hi masak! 04:12
masak so, who will be the first to write a little-animal-farm AI? :) 04:16
here's how you do it: gist.github.com/1154298 04:19
(now with slightly more details filled in)
TimToady us --> RIX 04:26
thowe I just read the docs for Acme::Meow 04:28
I don't know how to feel about that 04:29
04:35 gabiruh left
[Coke] .u check 04:36
phenny U+2713 CHECK MARK (✓)
masak .u cheque 04:38
phenny masak: Sorry, no results for 'cheque'.
04:40 bbkr left 04:41 bbkr joined 04:42 bbkr_ left 04:43 gabiruh joined
lue farm looks like an interesting game. (I have an oh-so-sneaking suspicion it doesn't work on nom) 04:45
04:45 cotto left 04:46 bbkr_ joined 04:47 [particle] left 04:48 [particle] joined 04:55 soh_cah_toa left
masak lue: let's find out. 04:57
05:02 kaare_ joined 05:04 daniel-s joined
masak wow. saying that it takes forever to compile the setting is an exaggeration, but not a very strong one. :/ 05:11
it seems to definitely hit the swapping roof here. that's probably why. 2 GB. 05:14
well, the compilation only takes 1.3 GB, and the rest is other stuff on the system.
[Coke] finally gets around to ordering the chinese books that... moritz++ recommended. (crap, was it masak++ ?) 05:15
[Coke] asks masak for feedback on github.com/coke/famflags/ 05:16
masak looks 05:17
setting compilation complete. took 19 minutes.
[Coke]: cool. don't know what more feedback you want. :) 05:18
lue: your suspicion is correct. 05:19
Method 'rxtype' not found for invocant of class 'PAST;Regex'
are we beginning to recognize this error yet? :)
masak golfs it 05:20
[Coke] masak: that's sufficient, I suppose. ;)
danke.
lue Ah. I was updating nom to make sure and see if it was solved in the latest version.
masak yeah, no. this is bleeding edge. 05:22
05:25 aloha left
masak ok, removing the first two MAINs (and making the last one 'sub' instead of 'multi', not sure that step was necessary) produced this result: it parsed for a long time, took up almost 1 GB of memory, and then parsefailed with 'maximum recursion depth exceeded'. 05:26
no, nom is not ready for prime time yet :/
note: parsefailed. I'm presuming that's what the '===SORRY!===' means. 05:27
05:28 aloha joined
lue How hard would it be to implement native types in nom? I assume I'd have to do a lot of nqp stuff, but that isn't much of a problem. 05:38
masak lue: it definitely would go beyond nqp stuff. 05:39
moritz some native types are already implemented in nom
lue
.oO(PIR? ... PBC‽)
moritz C 05:40
lue figures. (not C++? I'll learn either, considering I only have a tiny, _tiny_ amount of knowledge concerning C++) 05:42
masak ok, here's what the error in farm.pl golfs down to: 05:44
nom: my regex a { a }; my regex b { <&a> }
p6eval nom: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
masak pmichaud: ^
but note that once we fix that, there's still the infinite recursion parsefail to fix, too. 05:45
05:45 uasi left 05:48 uasi joined
moritz in nom, "===SORRY!===" currently means "compilation error", not necessarily "parse error" 05:49
masak ah; thanks. 05:50
06:00 kaare_ left 06:02 wtw joined, cotto joined
lue wonders where those native types are implemented in rakudo... 06:10
moritz which part of them?
sorear nom supports all the native types
but it runs on a very feature-poor VM which only supports four types 06:11
moritz sorear: no, just int,str,num
sorear surely it makes no sense to emulate native types not provided by the underlying platform
they're *native* types
06:13 Su-Shee_ is now known as Su-Shee
moritz sorear: well, I'm pretty sure my processor offers uint32 and uint64, even if parrot does not 06:14
sorear: "native" always implies "native to something", and that something might not need to be parrot
mberends good * all 06:17
06:18 uniejo_in_riga joined
mberends these types would be native one turtle down, for example native in C (for Parrot) or C#. 06:18
lue I actually just want uint32 so I can make a clearer (and more right) implementation of the SHA-1 algorithm. So I'm willing to try and implement them myself. 06:19
moritz sorear: if I understand the specs correctly, a Perl 6 compiler has to offer all the specced "native" types, even if emulated
sorear moritz: is there any way to emulate a native type using Perl 6 code? 06:21
moritz sorear: I don't have the slightest idea
sorear it would be awesome if it were possible to define, say, 64-bit floating-slash numbers with "native type" semantics.
06:22 Bzek left
mberends sorear: by "floating-slash" do you mean Rat64? 06:23
sorear mberends: no 06:24
a 64-bit floating-slash number might have a 6 bit "numerator size" field N, then N bits of numerator, then 60-N bits of denom 06:25
mberends: using C types for Parrot is two turtles down. You know Parrot will be moved off C soon, right? 06:26
masak \o/ 06:27
lue ...to what? (low-level assembler? Parrot itself?)
06:28 koban joined
sorear lue: they're in the process of creating a new low-level language called Mole 06:29
mberends sorear: thanks I see now. I know Parrot has been planning to move off C, but I did not expect it to happen soon. 06:30
sorear "soon" is relative
TimToady Maybe they should create a low-level language called Go :P
TimToady is at RIX 06:31
06:32 orphu left
sorear ??RIX 06:33
TimToady: nih :p
lue I don't know why, but implementing a virtual machine on top of a custom low-level language seems to me to be... not quite right. (I'm not sure why I feel this, perhaps it's the fact that there is a whole other level now)
mberends sorear: 58-N bits of denom, unless we upgrade to 66-bit processors iiuc. 06:34
lue: I share your concerns 06:35
sorear mberends: I specified 64-bits, I just can't subtract
lue: this is a very good sign
06:35 cotto left
lue is Mole going to JIT (which IIUC means 'interpreted, but caches interpreted code for when it's used again'), just like Parrot? 06:43
06:44 HarryS left
sorear your last statement contains at least three misunderstandings 06:44
first off, interpreters don't generate code.
a JIT (Just in time (translator)) is a program which runs code by converting it into another form when needed 06:45
and Parrot does not use a JIT yet
TimToady (anymore) 06:46
mberends are there Mole docs anywhere? I've seen only blogs and irclogs.
sorear mberends: talk to cotto 06:47
06:49 HarryS joined
lue IMO, creating a brand-new platform to put Parrot on means that 1) There is a problem with Parrot, and 2) the solution seems to be to create *another* virtual platform to put it on. 06:53
mberends aye, and 1) smells like 'poor workmen blaming tools' 06:54
06:54 mj41 joined
lue Not that I'm going to fight all day about something I honestly don't care too much about. I just think it sounds like a bad direction (whether or not it actually is I do not know) 06:57
06:58 cotto joined
mberends we care about the resulting reliability and efficiency 06:59
07:00 xinming left
lue Indeed. 07:00
mberends cotto: can you point us to some docs about Mole or Parrot's M0?
07:02 xinming joined
cotto mberends, sure. checkout out docs/pdd/drafts/pdd32-m0.pod in the m0-spec branch. 07:03
mberends cotto: thanks
cotto mberends, my plan for the next few days is to make it closer to an actual assembly language (especially in terms of # of ops). I'm not sure how much more the spec will change.
I don't suspect it'll be too drastic other than an increase in the number of ops and possibly a different view of registers. 07:04
mberends a few ops don't matter much. There should always be room for more anyway. 07:05
cotto mberends, we're trying to keep the number down within reason. I'd expect something in the range of 100-ish, though it's hard to say atm. 07:07
mberends cotto: that's sensible, JVM is similar
lue: straight to the M0 spec: github.com/parrot/parrot/blob/m0-s...d32_m0.pod 07:09
lue reading...
mberends reading too 07:12
cotto mberends and lue: very little is set in stone. Comments are most welcome. 07:13
mberends it seems that the motivation for M0 is Parrot's CPS colliding with C's stack. 07:14
masak cotto! \o/ 07:15
cotto: it was great to meet you at YAPC::EU. thanks for taking the trouble to cross the pond for meeting up with us European hippies.
TimToady maybe they should start with Go and turn it into Mo :
:) even 07:17
cotto masak, it was pretty awesome. 07:20
I'm glad I finally got to meet you and jnthn. 07:21
mberends lue: as with so many languages (C included), M0 defines bit shifting but not rotating, because the number of bits would need to be specified (back to your uint32 wish).
07:22 LimitSupremum left
lue I know. I think my current (extremely messy) SHA-1 implementation would be much better if I could use uint32, :2($a), and possibly Bufs 07:22
07:22 rafl joined
masak rakudo: role Mood[$name] { method name { $name } }; role Mood[$modifier, Mood $m] { method name { "$modifier $m.name()" } }; say "it was ", Mood["pretty", Mood["awesome"]].new.name 07:23
p6eval rakudo a55346: OUTPUT«it was pretty awesome␤»
masak \o/
mberends cotto: in parrot.org/dev the 'Git Web Interface' link is misnamed and broken 07:24
lue ooh, square brackets. Does that introduce a different meaning than Mood($name) ?
masak lue: yes, parens are for signatures. brackets are for role poly.
(well, what's in them is a signature too, but that's just a nice unification)
07:25 Trashlord left
cotto mberends, not for long 07:27
mberends cotto: if M0 has special 'print' ops to stdout it seems unfair not to also have 'printerr' ops to stderr. 07:29
satyavvd do we have Vim regex equiant of equiant of \%[ ] to match A sequence of optionally matched atoms in perl6 ? 07:30
cotto mberends, Hmmm. I thought we did. 07:31
07:31 wamba joined
masak satyavvd: well, there's <*xyz>, but I don't know if that's what you mean. 07:32
satyavvd in vim i can match all of these words fun func funct functi functio function with a single regex /\<fu\%[nction]\>
masak : how can i do the same in perl6 ? 07:35
masak yes, then I guessed right.
/ <*function> /
or maybe
07:35 Mowah joined
moritz rakudo: say 'fun' ~~ / <*function> / 07:35
masak / fun <*ction> /
satyavvd oh ok that is what i need..
p6eval rakudo a55346: OUTPUT«===SORRY!===␤Confused at line 22, near "say 'fun' "␤»
moritz alpha: say 'fun' ~~ / <*function> /
masak note that it's NYI.
p6eval alpha : OUTPUT«Confused at line 10, near "> /"␤in Main (file <unknown>, line <unknown>)␤»
moritz niecza: say 'fun' ~~ / <*function> /
masak it's a fairly new S05 spec patch. 07:36
p6eval niecza v8-52-g3afe236: OUTPUT«===SORRY!===␤␤Action method assertion:sym<*> not yet implemented at /tmp/u0V1ughKj2 line 1:␤------> say 'fun' ~~ / <*function⏏> /␤␤Unhandled exception: Unable to resolve method oplift in class Str␤ at /home/p6eval/niecz…
moritz masak: and by "fairly new" you mean "just two years old" or so?
masak do we have a table entry for this functionality? :)
moritz: yes :)
moritz masak: it's at least from 2008 07:37
masak: 'git blame' shows that it's present in pmichaud++'s "Move synopses to their new home." commit from 2008-11-26 07:38
masak oh!
it... felt newer :) 07:39
07:39 tyatpi joined
mberends cotto: 'List of ops' alludes to gripe and say, but they are not assigned opcodes. (a spello is 'conerned' 2 paras down) 07:41
masak 'gripe' is cute. 07:42
07:43 cotto left 07:45 envi joined 07:47 donri joined, envi left 07:49 Kivutarrr joined 07:50 envi joined
lue
.oO( if all(@else_fails) { gripe "Oh come on! Why won't you work‽"; } )
07:51
mux cute indeed 07:53
mberends "Division by zero will make the the M0 interpreter sad." 07:54
lue The gripe command wouldn't do anything user-visible, as its intention is to bug the compiler.
07:55 am0c joined
mberends griping would make the the interpreter annoyed with the program 07:57
masak bye for now, #perl6
see you in Estonia! o/
mberends o/
07:57 masak left
mux "Every time you divide by 0, the interpreter kills a virtual kitten." 07:58
mberends lol
moritz "and marks its death in the EINVALIDOP flag" 07:59
lue
.oO(Are mult_i and mult_n supposed to ignore $2 ?)
I almost want to create a language that harnesses the awesome power of dividing by zero, instead of fearing its might and immediately keeping it from doing any harm. 08:00
mberends that would be useful to program the infinite improbability drive 08:01
lue
.oO(C/++'s null escape character "\0" is just dividing by zero with funny syntax. Since \0 is null, it's obvious that x/0 == Mu , where x is (in Perl 6) of type Mu.)
08:03
mberends obvious :) 08:07
08:12 alim joined, am0c left
lue Well, don't Mu and null both mean nothing? [In P6, Mu also means everything, which proves /0 's awesome powers. QED] 08:13
.oO(Perhaps I should write a formal-looking paper the proves this..._
08:14
mberends to solve a problem, reduce it to nothing. then the solution is also nothing. no problem. 08:21
lue I can't help it. I'm writing up a proof based on the logic I have presented here. 08:22
sorear who's going to Estonia? 08:26
08:29 am0c joined 08:40 im2ee joined 08:47 dual left 08:50 tyatpi left
tadzik good morning #perl6 08:52
moritz good morning tadzik
tadzik: are you back at $home?
tadzik moritz: yes 08:54
more like any(@home), but yes :)
moritz :-)
moritz just realized that "no such file or directory" error messages absolutely should include the current working directory 08:55
mberends :) 08:58
09:00 Trashlord joined
tadzik looks at the gsoc roadmap 09:00
okay, so I either invent some workaround for exposing Pod::Parser or poke the crazy formattingcodes :) 09:01
moritz somehow the former sounds more worthwhile right now 09:04
though other explorations in Podspace would be fine by me too, even if they deviate from the gsoc roadmap 09:06
tadzik ouch, stealing colonpair token from the Perl 6 grammar seems like a crazy idea
well, technically this is a spec
practically, even the spec doesn't use it
09:08 Mowah left, anbz joined, anbz left
felher nom: sub sayit($x) { say $x.perl}; sayit( all(1,2,3,4) ); {say $^x.perl}( all(1,2,3,4) ); 09:10
p6eval nom: OUTPUT«1␤2␤3␤4␤all(1, 2, 3, 4)␤» 09:11
felher rakudo: sub sayit($x) { say $x.perl}; sayit( all(1,2,3,4) ); {say $^x.perl}( all(1,2,3,4) );
p6eval rakudo a55346: OUTPUT«1␤2␤3␤4␤all(1, 2, 3, 4)␤»
felher Should the latter be the same as 'sub sayit...'?
flussence mornin', *
tadzik hi flussence
felher perl6: sub sayit($x) { say $x.perl}; sayit( all(1,2,3,4) ); {say $^x.perl}( all(1,2,3,4) );
o/
p6eval rakudo a55346: OUTPUT«1␤2␤3␤4␤all(1, 2, 3, 4)␤»
..pugs: OUTPUT«\2␤\3␤\4␤\1␤\1␤\2␤\3␤\4␤»
..niecza v8-52-g3afe236: OUTPUT«1␤2␤3␤4␤1␤2␤3␤4␤»
flussence tadzik: seen this yet? :) github.com/perl6/Pod-To-HTML/commit/0e2cd077 09:12
moritz nom: { $^x }.signature.perl
p6eval nom: ( no output )
moritz nom: say { $^x }.signature.perl
p6eval nom: OUTPUT«:(Mu $x)␤»
moritz nom: say (sub f($x) { }).signature.perl
p6eval nom: OUTPUT«:(Any $x)␤» 09:13
moritz that's the difference
lue tadzik: you mean using the colonpair rule in the Grammar for Pod? I did that :)
tadzik flussence: oh, that looks cool
lue ("rule" being used in its general sense, not its P6 Grammar sense neccessarily)
tadzik lue: oh, nice 09:14
felher moritz: oh, interesting. Is this intended by spec?
tadzik but I think I'll stumble on the same problem as ususal, ie "I can't use Perl6::Grammar in Perl 6 code"
moritz felher: I have no idea
nom: say Perl6::Grammar
p6eval nom: OUTPUT«Could not find symbol 'Perl6::&Grammar'␤ in sub die at src/gen/CORE.setting:365␤ in mu <anon> at /tmp/HFl8GYQEcW:1␤ in mu <anon> at /tmp/HFl8GYQEcW:1␤␤»
09:15 uniejo_in_riga left
lue Won't match the key => 1 kind of stuff, but it works for most of the possibilities. 09:15
moritz because it's not a *colon*pair 09:16
lue of course. I don't think I ever expected it to. 09:17
felher moritz++: K, thnx. :) 09:19
Maybe it's because of "Note that placeholder variables syntactically cannot have type constraints."
09:19 uniejo_in_riga joined
tadzik nqp: say(":allow<B> " ~~ /':' \w+ /) 09:27
p6eval nqp: OUTPUT«:allow␤»
tadzik nqp: say(":allow<B> " ~~ /':' \w+ [ '<' \w+ '>']?/) 09:28
p6eval nqp: OUTPUT«:allow<B>␤»
tadzik that's one cheaty colonpair :)
09:30 koban left
moritz do you have an <identifier> rule you could use instead? 09:30
:allow-bold<really!>
09:30 koban joined
tadzik hmm, I do have, yes 09:32
09:32 SHODAN joined
tadzik it's stolen already 09:32
okay, blockers again: protoregexes not yet implemented at line 11, near "token pod_" 09:33
moritz then I'd suggest to stall that task
tadzik hmm 09:35
moritz the effort to work around that isn't justified, IMHO 09:36
tadzik yes
moritz especially since it will be reduced in the near future 09:37
tadzik closed then
moritz still waits for the big regex thing
tadzik so the only remaining thing is the Crazy Formattingcodes, if we want to implement that 09:38
moritz is that the blocks-inside-formatting-codes?
tadzik yes
moritz -1
rather make V<C<foo>> DTRT
tadzik in Pod::To::Text you mean?
moritz what AST does it produce right now? 09:39
tadzik I don't think it's worth specialcasing in the parser itself
moritz maybe not in the parser, but in the AST generation
tadzik FOrmattingcode('V', FormattingCode('C', 'foo'))
or something like this
moritz I'd expect it return Formattingcode('V', 'C<foo>')
felher Hm, no, according to S02, Any is the default routine parameter type. I can not find anything that states otherwise for placeholders, so i guess that should be changed. 09:40
moritz felher: { $^X } is not a routine, but a block
tadzik moritz: I'd read through Formatting Codes list once again and look for special cases like this one 09:41
but now, breakfast
moritz ok
felher moritz: i see, thanks again. :)
moritz guten Appetit tadzik :-)
tadzik Danke Schon, moritz :)
I must improve my schlecht Deutsch until the next YAPC::EU 09:42
moritz had the rest of a Dutch breakfast loaf today, by courtesy of mberends++
forgot the exact name 09:43
tadzik Stroppwafel maybe? :)
moritz no, I know that one :-)
tadzik booking brought those to yapceu, mmm
I'm hungry
moritz it was like a loaf of bread, but it tasted like almond bisuit
sweet-ish 09:44
tadzik mmm
dalek ast: 8ebec7e | moritz++ | S02-names_and_variables/varnames.t:
fudge varnames.t for rakudo
09:45
09:47 Mowah joined
dalek ast: 309defc | moritz++ | S03-metaops/cross.t:
remove a bogus test

It assumed that >> and << hyper ops do not recurse into nested data structures, which deviates from current thinking
09:47
moritz nom: my ($foo, $bar); $bar := $foo; 09:49
p6eval nom: OUTPUT«===SORRY!===␤Cannot use bind operator with this LHS at line 1, near " $foo;"␤»
moritz uhm, why not?
nom: my $foo; my $bar; $bar := $foo; 09:50
p6eval nom: ( no output )
moritz bug!
mathw bug!
moritz mathw!
mathw hi
moritz that's from t/spec/S03-operators/identity.t
tests++
mathw tests are good 09:51
in my new job I intend to get test-first development in if at all possible
anybody know any good resources on test-first for GUIs? 09:52
is it even possible?
mathw sponges off the wisdom of #perl6 without contributing, again
09:53 am0c left 09:54 woosley left
moritz mathw: I don't have any experience with GUI testing. My previous thoughts on that matter were to make the GUI code as lean as possible, and try to test the backend as much as possible 09:54
09:54 woosley joined
moritz ideally, each GUI operation should boil down to just one method call on a backend object 09:55
and you can test that backend object without any GUI
mathw yes, tests are easier without side effects, and the GUI is a really big side effect
moritz Perl 5 has Win32::GuiTest, which has a rather good reputation 09:56
not sure about cross-platform or linux GUI testing
mathw it's Windows, so that might be worth a look
although we should probably stick to .NET tools if we can since that's our development platform
not that learning Perl wouldn't be good for my new colleagues... 09:57
mberends noms Bavarian Blue cheese for lunch, courtesy of moritz++ 09:58
09:58 Mowah_ joined 10:00 Alias joined
moritz mathw: might be of interest, if a bit dated: www.testingfaqs.org/t-gui.html 10:01
mathw hmm it seems that makes our proxy explode. 10:07
mathw saves it for later
10:12 Kivutarrr left 10:14 dual joined 10:15 huf left
bbkr_ what is the replacement of __END__ in p6? 10:17
moritz =END or so? 10:18
dalek ast: ba20490 | moritz++ | S05-capture/match-object.t:
add test file for checking methods on Match objects
10:19
bbkr_ =END works :)
moritz niecza: say Match ~~ Capture
p6eval niecza v8-52-g3afe236: OUTPUT«Bool::False␤» 10:20
10:20 huf joined
tadzik delayed status report sent 10:25
moritz: ^
Note, however that the V<> code only changes the way its contents are parsed, not the way they are rendered. That is, the contents are still wrapped and formatted like plain text, and the effects of any formatting codes surrounding the V<> code are still applied to its contents 10:31
makes sense
definitely parse time then
dalek kudo/nom: 82849a2 | moritz++ | / (2 files):
implement Match.{pre,post}match, run three more test files
10:32
lue goodnight all o/ 10:33
tadzik lue: o/ 10:35
ingy nom: say "hi" 10:39
p6eval nom: OUTPUT«hi␤»
10:47 kaare_ joined 10:58 colomon joined 11:02 lue left
flussence tadzik: is there (currently) any other way to invoke the pod parser than using a POD block and --doc? 11:02
11:03 masak joined
flussence o/ 11:03
masak lol hi from a bus somewhere in the Baltics!
11:04 mj41 left, mj41 joined 11:06 pernatiy joined
masak sorear: jnthn and I are going to Estonia. also, a bunch of people on the bus that I don't know. 11:07
I'm surrounded by Chinese people, but I don't understand a word.
I hope it's because they're speaking Cantonese.
11:12 masak left 11:24 oyse joined
oyse Hi, are there any editors that support Perl 6 syntax highlighting. I have some problems getting it to work in Padre even if I have installed Padre::Plugin::Perl6 11:25
flussence vim does 11:26
moritz uses vim too
11:26 uniejo_in_riga left, uniejo__ joined
oyse I had hoped I could use something other than vim :) My vim knowledge is not that good. Is it hard to install the vim extension? 11:28
moritz oyse: not at all, the syntax file is even included in the newer vim releases 11:29
oyse mortiz: How recently was it added? I am sitting on a Ubuntu Lucid machine for the moment. 11:31
moritz: with vim 7.2.330
11:31 colomon left
flussence 7.3 11:31
moritz get it from github.com/petdance/vim-perl and run 'make install' 11:32
11:33 colomon joined
oyse mortiz: what file extension should I use for vim to automatically recognize a file as Perl 6? 11:39
moritz oyse: I use .pl, and add a # vim: ft=perl6 modeline to the end 11:40
TiMBuS i use gedit with perl highlighting. and put comments on lines where the syntax decides to run away
TiMBuS shrug
moritz nom: multi f() { }; multi f() { } ; say &f.Str 11:41
p6eval nom: OUTPUT«AUTOGEN-PROTO␤»
11:41 colomon left, colomon joined 11:43 satyavvd left 11:44 im2ee left 11:45 MayDaniel joined 11:46 Trashlord left 12:00 masak joined
tadzik flussence: nope 12:01
masak more thoughts on macros: gist.github.com/1156662 12:05
12:05 im2ee joined
moritz nice 12:07
masak it's eerie how events come creeping into everything nowadays ;) 12:08
moritz discovers a XSS vulnerability in one of Germany's largest web communities
masak jnthn: "The Web sucks" :)
12:09 nine left, mathw left, nine joined, mathw joined
dalek kudo/nom: 305e251 | moritz++ | src/Perl6/Actions.pm:
make auto-generated protos have the same short name as the candidadates

  jnthn, please protest/revert if the old behavior had a good reason
12:10
masak jnthn says it's fine :) 12:11
it was just an oversight.
moritz great, thought so 12:13
that was the failure in S06-multi/syntax.rakudo
I was about to fudge the test because that single failure annoyed me, but I thought a fix would be preferable :-) 12:14
12:14 odoacre left, bbkr left 12:15 bbkr joined
dalek ast: 8ffd0b1 | moritz++ | S05-capture/match-object.t:
add more match object tests
12:16
12:18 [Coke] left
masak I think I will be able to start writing macro spectests during the weekend. 12:19
12:20 [Coke] joined
masak rakudo: class C { has $.self-reference = self }; given C.new { say $_; say .self-reference } 12:22
p6eval rakudo a55346: OUTPUT«C()<0x4bd5f08>␤C()<0x4bd5f08>␤»
masak \o/
that one can't be written that nicely in Moose. as far as I know. 12:23
moritz it doesn't have $self available in default closures? 12:26
masak it probably does. 12:31
but even with default closures, you're already in The Land of Not As Nicely.
moritz then you can say default => sub { shift }, lazy => 1;
masak my point rests.
moritz nom: sub a(:$g) { say $g }; sub f { a(:$^g) }; f :g<10> 12:32
p6eval nom: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in sub f at /tmp/Iy_cbUtUld:1␤ in mu <anon> at /tmp/Iy_cbUtUld:1␤ in mu <anon> at /tmp/Iy_cbUtUld:1␤␤»
masak bug.
moritz indeed
tested in named-parameters.t
arnsholt masak: I'm excited by your discussions of macros
masak arnsholt: :)
arnsholt It'll be a cool feature to play with
masak it will. 12:33
arnsholt I've been hacking in Common Lisp lately, and really come to like its loop() macro
masak nom: sub foo($x, $y?, $z?) { say ($x, $y, $z).perl }; foo :z, 42
p6eval nom: OUTPUT«Unexpected named parameter 'z' passed␤ in sub foo at /tmp/wauYcHk69v:1␤ in mu <anon> at /tmp/wauYcHk69v:1␤ in mu <anon> at /tmp/wauYcHk69v:1␤␤»
arnsholt Would be fun to have something like that in Perl 6 as well
masak arnsholt: so far the impression I have of the loop macro is that it gives imperativeness to people with imperativeness withdrawal syndrome in the relatively functional Lisp environment. 12:35
in fact, a bit like Haskell's monadic DSL.
tadzik moritz: what do you think about a Book chapter about Pod? 12:36
moritz tadzik: +$high_number
masak arnsholt: but maybe I'm less than fully informed in that matter.
arnsholt Yeah, it's definitely a treatment against imperative withdrawal. But it's really a quite concise way of describing loops as well
masak arnsholt: ok, nice. 12:37
tadzik moritz: I'll start a branch then
masak tadzik: just put it in master, IMO.
tadzik masak: ok
masak the resources for the book are few and far between.
arnsholt The hyper-spec reference for loop() is essentially just a mass of BNF. There's almost a full chapter solely about loop() =) 12:38
masak having things centralized is more important than not stepping on each others' toes.
arnsholt: that... doesn't sound very appealing.
arnsholt Hehe, I suppose in a way. Most of it is pretty managable, it can just do many things 12:39
dalek ast: 326dc0c | moritz++ | S06-signature/named-parameters.t:
fix and fudge named-parameters.t

Some of the tests still assumed that you can fill positionals by name, another one did not respect the scoping rules of subs and eval
arnsholt Things like whether you want the variables you're iterating over to be set serially or in parallel
masak that reminds me. 12:41
someone should fix the error in the Perl 6 Wikipedia article.
dalek ast: ad5052d | moritz++ | S06-signature/type-capture.t:
fudge type-capture.t for nom
masak it says something preposterous like "you loop in parallel in Perl 6 by doing 'for all(@a) { ... }'" 12:42
moritz I tried it once, and got scared because there were too many weird things 12:43
masak :/ 12:46
dalek kudo/nom: 7930348 | tadzik++ | / (2 files):
Treat V<> blocks specially
tadzik might be worth to regenerate S26 now
12:47 JimmyZ joined
masak right, here's the place: en.wikipedia.org/wiki/Perl_6#Autothreading 12:47
it's a shame for something that wrong to sit there in the article.
moritz tries to fix it 12:48
oyse What type of information is available through introspection of subroutines? For instance can I annotate a method in some way and retrieve that annotation at runtime? For instance to have an annotation that tells a web framework that the method is expose to GET requests?
moritz oyse: that would be done with traits
tadzik oyse: take a look at LolDispatch in Web.pm
ohh, it may be fixable in nom 12:49
moritz oyse: something like method foo($x) is dispatch('/') { body of routine }
tadzik I also had these ideas for an App::Cmd module
moritz oyse: where there's a role named 'dispatch' that's mixed into the method
dalek Heuristic branch merge: pushed 235 commits to rakudo/nom-buf by tadzik 12:50
tadzik oo
masak 'is dispatched', perhaps. 12:51
oyse So I can make my own traits? Tried to read the S06, but it was not the most accessible.
I will take a look at LolDispatch
12:51 Holy_Cow joined
masak yes, you can make your own traits. 12:52
just overload trait_mod:<is>, for example. 12:53
moritz oyse: try src/core/traits.pm in rakudo/nom 12:54
dalek atures: 82d1c90 | moritz++ | features.json:
formulate parallelization item a bit more broadly
12:54 Holy_Cow left
moritz prepares his sources for the wikipedia entry :-) 12:54
tadzik multi trait_mod:<is>(Routine:D $sub, $cmd, :$command!) { say 'ok' }; sub foo is command('asd') {} 12:55
nom: multi trait_mod:<is>(Routine:D $sub, $cmd, :$command!) { say 'ok' }; sub foo is command('asd') {}
p6eval nom: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any $rw)␤:(Parameter $param,…
moritz tadzik: I think you need to define a role first
tadzik a role?
moritz probably not 12:56
tadzik ok, that's funny
12:57 donri left
tadzik multi trait_mod:<is>(Routine:D $sub, :$command!) { say 'ok' }; sub foo is command {} 12:57
e
nom: multi trait_mod:<is>(Routine:D $sub, :$command!) { say 'ok' }; sub foo is command {}
p6eval nom: OUTPUT«===SORRY!===␤Lexical '$sub' not found␤»
masak huh? 12:58
12:59 colomon left 13:01 [particle] left
moritz huh. 13:01
ask jnthn :-) 13:02
flussence shouldn't that be "$sub:" ?
tadzik should it?
flussence dunno
moritz flussence: nope
only methods have an invocant 13:03
masak nom: class A { has $.x; method foo(A $o) { $o!x = 42 } }; my $a = A.new; A.foo($a); say $a.x
p6eval nom: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Mu'␤ in mu <anon> at src/gen/Metamodel.pm:2708␤ in method dispatch:<!> at src/gen/CORE.setting:593␤ in method dispatch:<!> at src/gen/CORE.setting:605␤ in method foo at /tmp/6ew4hN0Rkx:1␤ in mu <anon> at /tmp…
moritz masak: en.wikipedia.org/wiki/Perl_6#Autothreading fixed, sort of
masak moritz++
13:04 donri joined
masak moritz: the links don't come out as source links, though. 13:04
they're inlined into the text. 13:05
rakudo: Int.new(42)
p6eval rakudo a55346: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/5HkA7lsDE0␤»
moritz masak: do you see what's wrong in the source?
masak looks
ugh. slow connection. 13:06
no, can't say I do. 13:07
dalek atures: bbb91ac | moritz++ | template.html:
add section anchors
13:11
masak if I had macros, I could implement DLX more efficiently in Perl 6, without creating classes for the Node objects. 13:12
it could all be a pretzel hash. :)
perl6: my %h; %h<foo> := %h; say "alive" 13:13
p6eval pugs, rakudo a55346, niecza v8-52-g3afe236: OUTPUT«alive␤»
masak \o/
dalek atures: c1604ac | moritz++ | template.html:
the name= anchors did not work, try id= instead
13:17
13:18 PacoLinux joined
masak heh. I hope Perl 6 becomes mainstream at some point, because I really like debugging Perl 6 code. and I seem to not entirely suck at it, too. :) 13:19
correction: I like debugging *my own* Perl 6 code. it might not carry over to other people's code :P 13:20
13:20 orafu left, orafu joined 13:22 hanekomu left 13:24 Kivutarrr joined
oyse Where can I find the best documentation of traits? I tried to understand LolDispatch.pm, but I don't understand anything that have to do with the trait definition. 13:24
13:24 Trashlord joined
mux LolDispatch.pm? how cute :) 13:25
masak Tene++
donri oyse: as i understand it it's an operator overload for 'is' 13:28
tadzik oyse: I don't think they're documented anywhere, and it seems that they're broken right now, at least my attempts to use a custom one have failed. Let's wait for jnthn to appear :)
donri: not really
moritz well, in some sense they are
but they have different calling conventions than normal operators
tadzik but I see why you would understand them this way
true 13:29
donri the main point being that it's not a behavior of the role itself, but an overload-of-sorts to a multi-dispatching operator with a pattern match for the http-handler role 13:30
masak donri: they're not actual operators because they appear outside of ordinary expressions.
donri aye but it's similar yea?
oyse tadzik: will it work on the previous rakudo star release? 13:32
masak donri: well, maybe you could see it as all being one single trait_mod operator...
no, wait. that's not the analogy. 13:33
it actually is an operator, it's just not an infix one.
oyse So what is the significance of 'trait_auxiliary'? 13:36
Does that mean the it is a subroutine trait instead of a parameter trait? 13:37
moritz masak: FWIW it was a missing <ref>...</ref> around the {{cite}} that caused the problem 13:39
donri my guess would be that trait_auxiliary:<is> is the name of that "operator" similar to infix:<+> etc? 13:40
masak moritz: ah!
moritz++
13:40 MayDaniel left
masak donri: yeah. 13:40
donri but apparently it's not really an infix op
tadzik oyse: I think it was working, but bugged :P 13:41
oyse donri: ok. That makes sense
moritz tinita++ in #perlde found out
13:43 abercrombie joined
oyse So just to see if I understand the line ' multi trait_auxiliary:<is>(http-handler $trait, $block, $arg)' correctly. It overrides the operator called 'trait_auxilliary:<is>'. This operator always three arguments, the first is the Role that is applied to the subroutine, the second is the block that the traits is applied to and the third is a list of all the arguments supplied to the trait? Is this more or less correct? 13:44
tadzik hmm 13:45
oyse: look at github.com/rakudo/rakudo/blob/nom/...its.pm#L64 13:46
that adds a new 'is' trait
$docee is the left side of the 'is', and it's Mu:Defined in this case 13:47
$doc is the argument for this operation
13:47 woosley left
tadzik and :$docs! is the, hmm keyword of some sort 13:47
so you use it like: $foo is docs("foo") 13:48
and $doc becomes "foo" in the sub
does that make some sort of sense to you?
oyse tadzik: sort of :) I just started looking at Perl 6 so there are a lot of concepts that are a bit fuzzy 13:50
masak 3
tadzik oyse: you just chose the wrong concept :)
masak :)
tadzik that one is a bit tricky I suppose
oyse: want to write a webapp? 13:51
oyse oyse: Sort of. I just need some place to start to get into Perl 6 and that seemed like a good starting point. 13:52
tadzik do you know Dancer?
13:52 drbean left
oyse tadzik: I have heard of it and looked briefly at it, but I havent used it 13:52
Are there any plans for porting it to Perl 6?
tadzik I wrote a sort-of-port for it 13:53
masak there are many plans for porting it.
it's still a bit of a wild west out here, I'm afraid.
tadzik oyse: see ttjjss.wordpress.com/2011/01/10/bailamos/
13:54 uniejo__ left
oyse Anyone that has a Github repo or similar for a port? 13:54
tadzik I think it's linked in the post 13:55
or not
github.com/tadzik/bailador
13:56 masak left
oyse tadzik: Thanks. I will take a look at it later. 13:56
I have to go now. Thanks for all the help!
tadzik oyse: see you soon! 13:57
13:57 oyse left
tadzik nom: class A { method say(*@a) { say(|@a) } }; A.say("foo", "bar") 13:58
p6eval nom: OUTPUT«foobar␤»
tadzik nom: class A { multi method say(*@a) { say(|@a) } }; A.say("foo", "bar")
p6eval nom: OUTPUT«===SORRY!===␤Could not find a proto for multi 'say' in package 'A' (it may exist, but an only is hiding it if so)␤»
tadzik eek
13:59 renormalist joined 14:02 JimmyZ left
ingy ll 14:03
14:04 JimmyZ joined, renormalist left
tadzik heo 14:05
14:05 koban left
donri tadzik: hows that match the path info on the whole env hash? 14:08
14:08 renormalist joined
tadzik donri: sorry, I don't understand the question 14:09
nom: "foo".split( /\s/ )
p6eval nom: ( no output )
14:10 wtw left
tadzik oh 14:10
BEGIN { /\s/ } 14:11
nom: BEGIN { /\s/ }
p6eval nom: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 29775789␤␤»
tadzik yeah, shit
14:13 mtk left
tadzik nom: role A { $!a }; class B does A { method x { $!a = 5 } }; 14:13
p6eval nom: OUTPUT«===SORRY!===␤Attribute $!a not declared in role A at line 1, near " }; class "␤» 14:14
tadzik is that correct?
niecza: role A { $!a }; class B does A { method x { $!a = 5 } };
p6eval niecza v8-52-g3afe236: OUTPUT«===SORRY!===␤␤Variable $!a used where no 'self' is available at /tmp/mdspA0gPRS line 1:␤------> role A { ⏏$!a }; class B does A { method x { $!a =␤␤Action method trait_mod:does not yet implemented at /tmp/mdspA0gPRS line…
14:19 mtk joined, Trashlord left 14:20 Trashlord joined 14:22 mtk left
donri tadzik: if $env ~~ $r.key hows that match the %ENV<PATH_INFO>? 14:25
14:26 mtk joined, colomon joined
tadzik donri: I see if $env<REQUEST_URI> ~~ $r.key { 14:28
something must've stripped ~~html_tags for you 14:29
donri nope it's missing in the blog post
i see it on github though yea 14:30
tadzik oh, I see 14:38
will look into that, thanks
14:39 uniejo_in_riga joined
felher What are the cases where nom is slower than master? Because for a little program here, nom takes twice as longs a master. (latest 'nom' branch against latest 'master') 14:41
14:41 birdwindupbird left
moritz felher: for one, startup time in nom is much larger 14:41
so any short-running program is slower
secondly we've discovered a rather large memory leak in nom, until it's fixed all bets are off 14:42
felher moritz: okay, its definitively not startup (18 vs ~~30 seconds). Maybe it's the memory leak. Will try again as soon as thats fixed. ty 14:43
14:44 perlhack joined, jedai left 14:45 uniejo_in_riga left, uniejo_in_riga joined 14:48 Mowah_ left, eiro joined
eiro hello guys 14:48
14:53 jedai joined
cognominal quel est l'équivalent perl5 de ruby markabby ou coffeescript coffeekup? 14:58
*markaby
14:58 uasi left
cognominal franck sait peut-être 14:58
oops sorry 14:59
I was seeing eiro and thought I was on #perlfr
15:01 perlhack left
eiro :) 15:03
15:07 dual_ joined
cognominal context is everything except when you make decisions on insufficient context. 15:08
15:08 mj41 left, dual left, dual_ is now known as dual 15:09 Trashlord left 15:16 alim left 15:19 TSa joined 15:23 hanekomu joined
JimmyZ evening, #perl6 15:23
15:26 jaldhar left 15:29 thou joined
abercrombie Hi #perl6, could anyone tell me in which part of SYN I can find the use of "[]" like in "$a = [1, 2, 3];" ? 15:31
bbkr_ abercrombie: you have to be more specific, do you mean declaration, iteration, flattening rules, available methods on Array class? 15:37
15:37 JimmyZ left 15:38 kaare_ left 15:39 thowe left
abercrombie Actually I just want to know the difference between $a=(1,2,3) and $a=[1,2,3]. I read the perl 5 to 6 articles by moritz and there is a sentence "Finally you should know that both [..] and {...} (occurring directly after a term) are just method calls with a special syntax, not something tied to arrays and hashes" 15:40
15:41 saaki left
tadzik nom: my $a=(1,2,3); say $a.WHAT 15:43
bbkr_ (1,2,3) is Parcel type, while [1,2,3] Array type.
p6eval nom: OUTPUT«Parcel()␤»
tadzik nom: my $a=[1,2,3]; say $a.WHAT
p6eval nom: OUTPUT«Array()␤»
PerlJam tadzik++ I was just about to do that. :)
bbkr_ exactly :)
15:44 JimmyZ joined
abercrombie So in perl5 $a=[..] is to create an anonymous reference. What's the according syntax for perl6? 15:44
PerlJam abercrombie: same 15:46
ish
tadzik abercrombie: stop thinking of references 15:47
bbkr_ In p6 you rarely need references because sigils are fixed
and more OO approach works in background
15:48 [particle] joined
PerlJam abercrombie: if you remove the word "reference" from your vocabulary, many perl 5 things are "the same" in perl 6. 15:48
abercrombie But I read that "dereferencing forms are now $(...), @(...), %(...)" so I can't help thinking reference.. 15:49
tadzik where do you read that? 15:52
bbkr_ abercrombie: think this way - any sigil is reference now. let me give you an example....
tadzik it's not about dereferencing, it's about making (...) act as if it's stolen in a scalar container
bbkr_ rakudo: sub foo ( @a ) { @a.push( 3 ) }; my @x = 1,2; foo( @x ); @x.perl.say 15:53
15:53 JimmyZ left
p6eval rakudo a55346: OUTPUT«[1, 2, 3]␤» 15:53
bbkr_ abercrombie: see? @a works like "old reference" 15:54
abercrombie bbkr_: Yes, I see. So what I need to do is to forget the old "reference" concept? 15:56
tadzik: I will find out the article I just read.
15:57 icwiener joined
abercrombie tadzik: perlcabal.org/syn/S03.html "Changes to Perl 5 operators" 15:58
PerlJam perhaps we still need better explanations of $(), @(), and %() though. I coudln't think of or find a spot in the synopses that I could point abercrombie at.
tadzik oh 15:59
15:59 pernatiy left
bbkr_ abercrombie: Yes, forget old references. In Perl 6 every $, @, % sigil points to an object, so everything is an reference. Dereferencing @() you mentioned is so rarely needed that I cannot even find any good example for them. 16:01
16:03 ZaphrodZenovka left 16:04 Kivutarrr left
Su-Shee "it's there in cas of an emergency when the power fails and you have to get candles" ;) 16:04
+e
16:04 bluescreen10 joined
abercrombie bbkr_: I will try. Thanks for your and others' explanation. 16:07
16:10 saaki joined, Trashlord joined
bbkr_ abercrombie: you're welcome 16:11
16:13 bluescreen10 left 16:14 REPLeffect joined 16:19 Mowah_ joined, PacoLinux left 16:20 PacoLinux joined 16:23 Trashlord left 16:25 bluescreen10 joined 16:28 Alias left, alester joined 16:34 Bucciarati left 16:35 Bucciarati joined 16:36 Trashlord joined 16:37 bluescreen10 left 16:49 rdesfo joined, rdesfo left 16:50 MayDaniel joined 16:51 icwiener left 16:57 icwiener joined 16:59 kboga joined 17:04 siddy joined, Trashlord is now known as Guest81044, Guest81044 left 17:05 siddy is now known as Trashlord 17:06 Trashlord left, Trashlord joined, coregateFX joined 17:10 janosik joined 17:11 coregateFX left 17:14 Trashlord left 17:15 Trashlord joined, wolfman2000 left
moritz PerlJam: I think the new and accurate explanation is that list-ish objects and hashes have a .flattens flag 17:16
PerlJam: and $() removes that flag (which is roughly the same as turning it into an scalar holding the data structure)
@() sets the flag to True, and coerces to List if necessary 17:17
%() also sets .flattens to True, and coerces to Hash if necessary
or maybe s/Hash/EnumMap/
17:20 awwaiid_ is now known as awwaiid 17:23 MayDaniel left 17:24 colomon left 17:27 PacoLinux left 17:33 icwiener left
dalek kudo/nom: a058d5f | Coke++ | t/spectest.data:
run 2 more tests!
17:33
moritz [Coke]++ 17:36
I fudged those test earlier, but seems I forgot to commit
17:40 zby_home joined
[Coke] moritz: heh. didn't mean to step on your toes. 17:44
I check that spectest.data is failing as expected every so often, happy to find tests passing.
only 161 more tests to fudge.
... until we have to start looking at other spectest files. 17:45
moritz [Coke]: you didn't step on my toes 17:46
which is why you got the ++ :-) 17:47
17:50 TSa left, siddy joined, uniejo_in_riga left 17:51 uniejo_in_riga joined, cotto joined, Trashlord left
dalek kudo/nom: ca7e354 | Coke++ | t/spectest.data:
track failure modes
17:59
[Coke] the "needs fudging" i've not done yet just because it'd mean skipping passing tests. 18:01
18:06 alim joined, Chillance joined 18:09 im2ee left 18:15 uniejo_in_riga left, janosik left 18:16 cotto left 18:21 cotto joined 18:30 shachaf_ joined, d4l3k_ joined 18:31 george_z0rwell joined, [particle]1 joined 18:32 nsh joined 18:33 JodaZ_ joined, tadzik1 joined, orevdiabl joined 18:34 yath_ joined, awwaiid_ joined, PacoLinux__ joined, donri_ joined, pmichaud_ joined, llabthgi1 joined
tadzik1 Files=454, Tests=14875, 2657 wallclock secs ( 9.03 usr 1.97 sys + 2537.13 cusr 91.61 csys = 2639.74 CPU) 18:37
Result: PASS
18:38 [particle] left, mtk left, donri left, wamba left, jferrero left, Reaganomicon left, aindilis` left, takadonet left, awwaiid left, JodaZ left, hugme left, jamessalty left, tadzik left, pmichaud left, revdiablo left, yath left, shachaf left, dalek left, PacoLinux_ left, llabthgie left, [particle]1 is now known as [particle], d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 18:40 siddy left 18:41 tadzik1 is now known as tadzik
tadzik that's almost 15k :) 18:42
18:42 kboga left
moritz about 1k fudged tests, I think 18:42
18:43 Trashlord joined
sorear good * #perl6 18:43
moritz good * sorear 18:44
tadzik hello sorear 18:45
18:45 mtk joined 18:46 takesako joined, jamessalty joined, jferrero joined 18:47 takadonet joined 18:56 Trashlord left 18:59 szr left 19:00 Trashlord joined 19:01 birdwindupbird joined, mj41 joined 19:11 rdesfo joined 19:13 Trashlord left 19:15 im2ee joined 19:17 mj41 left 19:20 Trashlord joined 19:24 envi left
PerlJam perl6++ (I made a nice one-liner to answer a question about some things that my wife and I were talking about) 19:27
19:27 xinming left 19:31 xinming joined 19:42 cotto left 19:47 mj41 joined 19:54 Vlavv_ left
[Coke] here's the test summary output for nom: 19:59
"total", 13158, 8, 542, 1647, 15355, 36260
"Synopsis", "pass","fail","todo","skip","plan","spec"
tadzik oh, there are fails? 20:00
[Coke] I cleverly did not save the output.
tadzik I've had full pass 90 minutes ago 20:01
[Coke] then I would assume it's just me. 20:02
tadzik or uncommited stuff
[Coke] nope. 20:03
(nor unpushed)
20:03 Trashlord left 20:07 Moukeddar joined, Moukeddar left, Vlavv_ joined 20:11 birdwindupbird left 20:12 wamba joined 20:13 cotto joined 20:14 zby_home left 20:16 nbrown left 20:21 mj41 left, woosley joined 20:38 xinming left 20:39 xinming joined 20:45 SHODAN left 20:48 woosley left 20:49 Mowah left 21:09 lue joined
lue hello world o/ 21:09
tadzik hello lue!
abercrombie Hi #perl, I got another question. S08 says a Capture will not keep the positional information for the named arguments, for example: foo(1,:a<b>,2) 21:14
tadzik that sounds correct
abercrombie what does it mean? I can still do sub foo($a){say $a[1]} to get :a<b>
tadzik that probably means that the order of named arguments is lost, as in hashes 21:15
abercrombie Now $a[0] is 1, $a[1] is :a<b>; $a[2] is 2. Do you mean this order is not fixed? 21:16
So some day I can expect $a[1] is not :a<b> ?
tadzik nom: sub foo($a){say $a[1]}; foo(5, :a<b>)
p6eval nom: OUTPUT«Unexpected named parameter 'a' passed␤ in sub foo at /tmp/JZEzH8Lr54:1␤ in mu <anon> at /tmp/JZEzH8Lr54:1␤ in mu <anon> at /tmp/JZEzH8Lr54:1␤␤»
tadzik I do not follow your examples 21:17
or I'm just quite sleepy :)
abercrombie nom: sub foo($a){say $a[1]}; foo((5, :a<b>)) 21:20
p6eval nom: OUTPUT«"a" => "b"␤»
abercrombie So this one is not capture?
It's just parcel? 21:21
sorear correct, that passes a Parcel to foo.
niecza: sub foo($a) { say $a[1] }; foo(\(5, :a<b>, 6))
that passes a Capture
p6eval niecza v8-52-g3afe236: OUTPUT«(timeout)»
sorear niecza: say 2 + 2 21:22
p6eval niecza v8-52-g3afe236: OUTPUT«4␤»
sorear niecza: sub foo($a) { say $a[1] }; foo(\(5, :a<b>, 6))
p6eval niecza v8-52-g3afe236: OUTPUT«Stacktrace:␤␤Segmentation fault␤»
sorear what.
benabik mono segfaulted?
sorear benabik: apparently! 21:23
abercrombie :) I got it. Thank you guys.
benabik That's awesome.
Takes effort. 21:24
abercrombie nom: my @a=1..10000; my @b=1..10000; @a»+«@b 21:25
21:25 wolfman2000 joined
p6eval nom: OUTPUT«(timeout)» 21:25
abercrombie why does it take so long?
benabik It's probably being eager where it shouldn't.
sorear benabik: this wouldn't be the first or second bug I've discovered in mono ... niecza is doing a great service
niecza: my $a = times[0]; my @a = 1..10000; my @b = 1..10000; @a »+« @b; say times[0] - $a 21:26
p6eval niecza v8-52-g3afe236: OUTPUT«1.596099␤»
benabik times?
sorear perldoc -f times
benabik Hm. perldoc -f That's handy.
abercrombie Does it mean nom currently cannot handle >>+<< very well?
tadzik nom: my @a = 1, 2; my @b = 3, 4; say @a »+« @b 21:27
p6eval nom: OUTPUT«4 6␤»
eiro what are | in sub foo (|$x) signatures ? 21:28
benabik nom: my @a = 1..1000; my @b=1..1000; say @a »+« @b
sorear eiro: gets the raw argument list as a Capture object
p6eval nom: OUTPUT«2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 …
sorear sub foo(|$x) { say $x.perl }; foo(1, 2, foo => 'bar', 3)
niecza: sub foo(|$x) { say $x.perl }; foo(1, 2, foo => 'bar', 3)
p6eval niecza v8-52-g3afe236: OUTPUT«\(1, 2, 3, |{"foo" => "bar"})␤» 21:29
abercrombie tadzik: I know it works. I just wonder why for 10000 numbers it will take such a long time
sorear abercrombie: rakudo is slow
eiro oohhh
ok thanks
is niecza faster ?
benabik sorear: Is niecza lazy with »«?
sorear benabik: no 21:30
abercrombie sorear: so is the speed issue due to parrot?
21:31 donri_ is now known as donri
sorear abercrombie: part of it can be blamed on parrot, but I think it's mostly just an issue of priorities 21:31
benabik abercrombie: Also, rakudo hasn't been much optimized for speed. They attack some of the worst bits, but the priority is correctness first.
sorear rakudo has always been pushing the boundaries of the spec, implementing hard things without concern for efficiency
abercrombie even for nom? 21:32
benabik nom is about getting even more things right.
abercrombie It's said nom is almost a completely reimplementation of rakudo, and it's much faster than the previous rakudo branch. 21:33
[Coke] faster != fast, of course. 21:34
abercrombie I admit that. Well, I don't know the bottom implementation of the hyper operator. But it indeed a little slow out of my expectation. Pardon me. 21:37
sorear abercrombie: I started my own implementation project because I thought not enough attention was being payed to speed 21:39
benabik nom: my @a = 1..10000; my @b = 1..10000; for @a, @b -> $a, $b { say $a + $b }
p6eval nom: OUTPUT«(timeout)3␤7␤11␤15␤19␤23␤27␤31␤35␤39␤43␤47␤51␤55␤59␤63␤67␤71␤75␤79␤83␤87␤91␤95␤99␤103␤107␤111␤115␤119␤123␤127␤131␤135␤139␤143␤147␤151␤155␤159␤163␤167␤171␤175␤179␤183␤187␤191␤195␤199␤203␤207␤211␤215␤219␤223␤227␤231␤235␤239␤243␤247␤251␤255␤259␤263␤267␤271␤275␤279␤283␤287␤2 21:40
sorear abercrombie: if you think rakudo is too slow for you, join me :>. 21:41
abercrombie sorear: I see that niecza also already implemented most features. So what's niecza's disadvantage? 21:42
sorear well, not *all* features 21:43
yesterday masak tried to run LAF on niecza, but niecza doesn't have MAIN or attributive parameters yet
abercrombie Do those things affect speed a lots? 21:44
21:45 Psyche^ joined
sorear no 21:46
21:47 shachaf_ is now known as shachaf
abercrombie Then I don't much get "implementing hard things without concern for efficiency" 21:48
What are those things affect rakudo's speed that niecza doesn't have? 21:49
21:49 Patterner left, Psyche^ is now known as Patterner, alim left
flussence sorear: can I prod you into adding m:p// and/or &dir? Either of those would get niecza running more of Text-Tabs-Wrap/t/*.t than nom currently does :) 21:50
sorear abercrombie: rakudo people spend 100% of their mental energy making complicated stuff like roles work at all 21:51
abercrombie Yes, that's really a complicated one. I just cannot figure out what will affect the hyper operator. It seems there is a 10x+ speed difference on that one. 21:52
sorear abercrombie: take an inefficient implementation of hyperoperators on an inefficient implementation of lazy lists with inefficient looping and inefficient sub calls, the penalties are multiplicative 21:55
abercrombie that sounds pretty inefficient :) 21:56
sorear flussence: hmm, what's m:p? 21:57
found it
22:00 Trashlord joined 22:03 Chillance left 22:04 drbean joined 22:05 Trashlord left, Chillance joined 22:11 rdesfo left 22:14 wamba left 22:29 alester left 22:30 im2ee left 23:14 jaldhar joined 23:17 whiteknight joined 23:30 jaldhar left 23:31 jaldhar joined, daniel-s left 23:36 Moukeddar joined 23:40 ponbiki joined 23:49 orphu joined 23:56 orphu left