»ö« 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«1234all(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«1234all(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«1234all(1, 2, 3, 4)» | ||
..pugs: OUTPUT«\2\3\4\1\1\2\3\4» | |||
..niecza v8-52-g3afe236: OUTPUT«12341234» | |||
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 contextUse 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)3711151923273135394347515559636771757983879195991031071111151191231271311351391431471511551591631671711751791831871911951992032072112152192232272312352392432472512552592632672712752792832872 | 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
|