»ö« 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. |
|||
00:02
armitage81 left
00:03
whooguy left
|
|||
lue feels he should remove Exceptions from the depgraph generator. 1) They're obviously needed everywhere in src/core 2) The complete depgraph of src/core he just generated is a monster with exceptions. | 00:05 | ||
00:08
armitage81 joined
00:09
armitage81 left
|
|||
masak | indeed, it might be more informative to generate the thing without exceptions. | 00:15 | |
in a sense, they're orthogonal to the rest of the type system. | |||
'night, #perl6 | |||
sorear | knight masak | 00:17 | |
00:28
whiteknight joined
|
|||
sorear | o/ whiteknight | 00:29 | |
00:51
ifim left
|
|||
whiteknight | hello sorear | 00:58 | |
01:06
cognominal joined
01:07
imarcusthis left
01:09
imarcusthis joined
01:25
whooguy joined
01:27
imarcusthis left
01:38
wamba left
01:51
daniel-s__ joined
01:53
pmurias left
01:55
daniel-s_ left
02:20
Targen_ left
02:22
FROGGS_ joined
02:26
xilo_ joined,
FROGGS left
02:30
cognominal left
02:33
xilo_ left
02:43
sivoais left
02:49
sivoais joined
02:54
whooguy left
03:04
fgomez left
03:06
rurban_ joined
|
|||
flussence | is there a FAQ for how LTM/TTIAR works, anywhere? www.reddit.com/r/programming/commen...?context=3 | 03:07 | |
03:08
jaldhar joined
03:09
noggle_ joined
03:12
noggle left
|
|||
xenoterracide | bleh | 03:18 | |
03:19
ircmouser joined
|
|||
xenoterracide | anyone tried using Dist::Zilla for Perl6? | 03:21 | |
03:22
whiteknight left
03:27
fgomez joined
|
|||
xenoterracide | privatepaste.com/f68cda11fe I could swear this worked whenever I was here last | 03:29 | |
privatepaste.com/e178c9e2b8 errors | 03:31 | ||
03:35
ircmouser left
03:37
orafu left
03:38
orafu joined,
tokuhiro_ left,
tokuhiro_ joined
|
|||
skids | xenoterracide: well, it should not work AFAICT. You can't override a multi signature like you can an only; it just adds another candidate, which is ambiguous with a single positional parameter. | 03:40 | |
xenoterracide | oh how frustrating | 03:49 | |
I give up on full interface support | |||
skids | You can use the signature to accomplish it. | ||
xenoterracide | how do you figure | ||
skids | depending on how deep you need to go, either put a type restriction of ::?CLASS on the invocant, or use a where clause. | 03:50 | |
xenoterracide | all I really want is to require certain signatures be provided by an implementation | 03:51 | |
03:53
ircmouser joined
|
|||
skids | Oh. Not quite sure of that... I think protos are just dispatchers? | 03:53 | |
sorear | I still don't like the idea of an interface role trying to dictate such implementation details | 03:54 | |
I'm sure you can do it with a metaclass override | |||
skids | I suppose maybe there might be a use case in ORBA/ABI type stuff. | 03:57 | |
sorear | maybe, but it's an awkward fit | 03:58 | |
04:00
tokuhiro_ left,
Gryllida joined,
tokuhiro_ joined,
tokuhiro_ left
04:01
tokuhiro_ joined
|
|||
xenoterracide | sorear: I don't see it as dictating implementation details, just required interface... must provide 1 method that takes a string (or perhaps I should have said Stringy?) and another that takes an IO Handle | 04:05 | |
sorear | xenoterracide: what if I provide a single method that takes either? | 04:06 | |
xenoterracide | hmmm.... | 04:07 | |
sorear | also, roles are allowed to provide default implementations; there ought to be a default implementation of the IO version in terms of the Buf version | ||
Digesting a Str is not a well-defined operation since Perl 6 does not spec an encoding | 04:08 | ||
xenoterracide | idk, though I don't like the idea of doing if ( Str ) { ... } elsif ( IO ) { ... } all the time | ||
that's the whole point of multi methods to me, is not doing that | |||
sorear | xenoterracide: multi dispatch in niecza is pretty slow and I'm the wrong kind of lazy, so I tend to write if chains instead of optimizing MMD | ||
xenoterracide | sorear: ah, sorry | 04:09 | |
sorear | digesting a Str should start by encoding the string using UTF-EBCDIC | 04:10 | |
xenoterracide | I'm using rakudo for now, though it's probably slow there too | ||
sorear | or UTF-7 with odd parity | 04:11 | |
xenoterracide | UTF-7? why's that? | ||
I'll be honest, Digest just looked like something interesting to work on so I kind of have no idea what I'm doing | 04:12 | ||
sorear | xenoterracide: snarkiness aside, the signatures should be (Buf) and (IO) | ||
xenoterracide | it is a good excuse to learn too much about unicode | ||
sorear | a deliberate feature of Perl 6 is that it almost never does implicit coercion between Buf and Str | 04:13 | |
because a large category of bugs in Perl 5 come about when you lose track of whether a given string contains octets or characters | |||
skids | xenoterracid: the strategy I used in Sum:: was not to even try to get different algs to all look alike, and write roles you can mix into the algs as appropriate to the underlying alg, to present the API you want for your application. | 04:14 | |
the individual alg modules expect arguments optimal to what they are underneath, and doc what they expect in the manpage. | 04:15 | ||
04:18
rurban_ left
|
|||
xenoterracide | skids: is Sum PP ? | 04:18 | |
skids | PP? | ||
xenoterracide | Pure Perl | ||
skids | In fact yes, but not in principle. | 04:19 | |
I do have some working Zavolaj code for libmhash, but have not comitted it yet. | |||
(Some of the algs are not usable yet due to speed/memory concerns -- Sum assumes laziness that isn't quite there yet so lists tend not to pipeline like it thinks they should.) | 04:20 | ||
xenoterracide | skids: I was thinking of just using NativeCode and building on glibc/openssl for now | 04:22 | |
however the things that I'm trying to do is make it so that the client code can look the same (or close to) regardless of algorithm | 04:23 | ||
maybe you have to pass some things to the initial constructor | |||
but after that most of these things seem to do the same things | |||
but I'm not an expert in this area | 04:24 | ||
skids | Eventually I plan to offer prefab classes with the appropraite marshalling roles mixed in that behave consistently across the algs. | ||
xenoterracide | skids: why did you call it Sum::? | 04:25 | |
04:26
rurban_ joined
|
|||
skids | Because it covers digests, checksums, and eventually things like rolling hashes. | 04:26 | |
xenoterracide | is not at all the thing that comes to mind when I think Sum:: | 04:27 | |
skids | So Sum left more vernacular room. | ||
it's fairly common to refer to digests/hashes as "sum"s. i.e. sha*sum cmdline names. | 04:29 | ||
xenoterracide | yeah I just think math though when I think sum Hash:: would be appropriate if perl didn't use it to mean Dictionary | ||
just curious | 04:30 | ||
skids | I avoided Hash very purposefully just because of that :-) | ||
xenoterracide | I figured | ||
for all of the less than satisfactory interfaces in perl 5, I've never had any complaints about Digest, and so I figured getting that with at least a NativeCode implementation of SHA based on OpenSSL is worthy. | 04:32 | ||
Digest is mostly an interface not an implementation though | 04:33 | ||
skids | I think there will be plenty of P5 coders coming in wanting a feel-alike, yes. | 04:34 | |
xenoterracide | I mean if there's really a better idea I'd love to understand it | ||
sorear: why can't you ask strings what encoding they are? and why isn't the default UTF-8 | 04:35 | ||
04:36
Psyche^ joined
|
|||
sorear | xenoterracide: a string doesn't have an encoding, it's just a list of integers 0-0x10FFF | 04:36 | |
10FFFF rather | 04:37 | ||
04:38
araujo left
04:40
Patterner left,
Psyche^ is now known as Patterner
|
|||
skids | So have you managed to tame Zavolaj in your impl yet? I could paste you what I had to do. It is not fast to get the data over to the C api within Zavolaj's current limitations. | 04:40 | |
xenoterracide | me, no, I've not even begun to experiment | 04:41 | |
well with zavolaj, I've mostly been experimenting with Perl6 | 04:42 | ||
04:42
bluescreen100 joined
|
|||
xenoterracide | also why is it called Zavolaj, when it's 'use NativeCall;' | 04:43 | |
sorear: so will that make Unicode hard or easy in p6? | 04:44 | ||
04:45
bluescreen10 left
|
|||
skids | jnthn++ gets to name anything he writes as he sees fit :-) | 04:45 | |
sorear | skids: was that to me? | 04:46 | |
xenoterracide: easy | |||
skids | no. explaining "Zavolaj" | ||
xenoterracide | skids: is what you had to do in your Sum Repo? I don't really expect anything to be /fast/ at this point | ||
sorear | skids: 20:40 < skids> So have you managed to tame Zavolaj in your impl yet? I could paste you what I had to do. It is not fast to get the data over to the C api within Zavolaj's current limitations. | 04:47 | |
skids | no, I'll try to remember how to github branch, and push some semi-working files up. | ||
sorear | skids: is "your impl" = niecza? | ||
skids | Oh, no I was asking about Digest:: | ||
xenoterracide | yeah I haven't really implemented anything yet | ||
skids | In niecza most everything I want to write blocks on Failure | ||
xenoterracide | I was mostly trying to find a way to make algorithms conform to an interface | 04:48 | |
and then I burned out | |||
and played video games | |||
a lot | |||
and there will probably be more of that | 04:49 | ||
skids has been resisting the borderlands2 temptation all night. | |||
xenoterracide | skids: I have to play borderlands 1 first | ||
I have years of back gaming to catch up on | 04:50 | ||
starting with Mass Effect | |||
04:50
PacoAir left
|
|||
rurban_ | rakudo and nap pass their test suites with parrot/threads. Just samples which use threads do not work yet, because of nqplexpad with proxies lexicals. | 04:55 | |
skids | xenoterracide: I pushed some code to branch "NativeCall" in perl6sum. Have no idea as to whether I left it in any kind of working state. | 05:00 | |
xenoterracide | skids: alright, I'll check it out | 05:01 | |
skids | It's in lib/Sum/Zavolaj.pm6 and lib/Sum/MHash.pm6 The Adler.pm6 file uses it as a test case. | ||
It is very ugly :-) | |||
05:12
REPLeffect left
05:13
REPLeffect joined
05:14
telex left
05:17
Chillance left
05:20
raiph joined
|
|||
skids | rurban_++ I know it's a while off but I'm actually eagerly looking forward to spending evenings lost in rakudo threading mysteries. | 05:21 | |
rurban_ | see the nqp/gh67-threads branch | 05:22 | |
05:27
rurban left,
rurban_ is now known as rurban,
fgomez left
|
|||
felher | good morning, #perl6 | 05:33 | |
05:35
jaldhar left,
jaldhar joined
05:40
telex joined
05:46
fgomez joined
05:50
rurban left
05:56
raiph left
06:07
araujo joined
06:18
ircmouser left
07:10
SamuraiJack joined
07:25
skids left
07:28
daniel-s__ left
07:29
daniel-s__ joined
07:30
SamuraiJack_ joined
07:34
SamuraiJack left
07:39
SamuraiJack__ joined
07:42
SamuraiJack_ left
07:44
SamuraiJack joined
07:47
SamuraiJack__ left
07:50
wamba joined
07:56
Bzek joined
08:01
replore_ joined
08:02
GlitchMr joined
08:03
popl left
|
|||
FROGGS_ | good morning | 08:13 | |
08:14
FROGGS_ is now known as FROGGS
08:16
Kharec joined
08:27
kaare__ joined
08:29
ircmouser joined
|
|||
sorear | o/ FROGGS | 08:43 | |
08:43
tokuhiro_ left
|
|||
FROGGS | hi | 08:43 | |
08:43
tokuhiro_ joined
|
|||
moritz | \o | 08:44 | |
08:52
ircmouser left
08:53
ircmouser joined
09:03
cognominal joined
09:13
noggle_ is now known as noggle
09:25
erkan left
09:33
replore_ left
09:36
gootle joined,
imarcusthis joined
09:37
imarcusthis- joined
09:41
imarcusthis left
09:45
bapa left,
chee left,
ServerSage left,
Tene left,
bonsaikitten left,
s1n left,
sorear left,
crazedpsyc left,
ggoebel left,
tadzik left,
quietfanatic left,
szbalint left,
smash left,
Hor|zon left
09:47
am0c left
09:48
bapa joined,
chee joined,
ServerSage joined,
Tene joined,
bonsaikitten joined,
s1n joined,
sorear joined,
crazedpsyc joined,
ggoebel joined,
tadzik joined,
Hor|zon joined,
quietfanatic joined,
szbalint joined,
smash joined,
bapa left,
RandalSchwartz left
09:49
bapa joined
09:57
ircmouser left
10:08
ircmouser joined
10:12
zby_home_ joined
10:19
cedrvint joined
|
|||
cedrvint | hello #perl6 | 10:19 | |
sorear: does Niecza support :bytes in regexp? | 10:21 | ||
sorear | no | 10:22 | |
cedrvint | any roadmap about that? | ||
moritz doesn't think :bytes makes much sense | |||
sorear | cedrvint: it will probably be removed from the spec | ||
moritz | consider / ^ [:bytes . ] \w / | ||
cedrvint | moritz: how could I parse binary format then? | 10:23 | |
sorear | since perl 6 is encoding agnostic, it doesn't make much sense to mix :bytes and :!bytes | ||
moritz | what if the first character in $_ is a multi-byte character? | ||
sorear | rx:bytes // makes some sense though | ||
moritz | then \w would have to try to match the left-over continuation bytes, but that doesn't make any sense at character level | ||
sorear | but that's not :bytes *in* regexp :D | ||
presumably rx:bytes regexps would be unmixable with non-bytes regexps | 10:24 | ||
moritz | cedrvint: you could decode as latin-1, and then match against the Str | ||
sorear | and a 'use re :bytes' pragma could be used to force :bytes mode, e.g. in a grammar for binary data | ||
sorear ponders how viable this is | 10:25 | ||
cedrvint | sorear: it sounds great to me :) | 10:26 | |
sorear | I wish I could find a source of motivation proportionate to the ideas | 10:40 | |
cedrvint | sorear: Hachoir in Perl 6 ? bitbucket.org/haypo/hachoir/wiki/Home | 10:44 | |
and reverse engineering tools in Perl 6 | 10:45 | ||
sorear | sleep& | 10:51 | |
10:52
cognominal left
11:00
cognominal joined
11:02
FROGGS_ joined
11:05
Su-Shee_ joined
11:08
Su-Shee_ left
11:09
Su-Shee left
|
|||
masak | g'day, #perl6 | 11:15 | |
11:16
cognominal left
|
|||
FROGGS_ | hi masak | 11:19 | |
masak | yay, I got Parsec working locally! \o/ | 11:21 | |
time to write a Parsec parser... :D | |||
FROGGS needs to google Parsec | 11:22 | ||
masak | it's a Haskell parser combinator library. | ||
FROGGS | and I guess that sounds like fun? | 11:24 | |
masak | excellent Saturday recreation, yes. | 11:25 | |
11:32
FROGGS_ left
|
|||
masak | rn: sub infix:<o o o o>($a, $b, $c, $d, $e) { say "$a took $b down to $c to $d a full $e" }; "I" o "dog" o "the vet" o "conduct" o "examination"; | 11:33 | |
p6eval | rakudo 0bfba1: OUTPUT«===SORRY!===Confusedat /tmp/NMW9_PZyA7:1» | ||
..niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Unable to parse infix:sym<o o o o> at /tmp/g4x6DAKzrc line 1:------> }; "I" o "dog" o "the vet" o "conduct" ⏏o "examination";Couldn't find final 'o o o'; gave up at /tmp/g4x6DAKzrc line 1 (EOF):------>… | |||
FROGGS | my goal for today is to get my fileserver up and running, but that's my goal weeks now :/ | ||
masak | awww | ||
11:33
replore_ joined
11:37
MayDaniel joined
|
|||
masak | who wants Tuesday in github.com/perl6/mu/blob/master/mi...2/schedule ? | 11:38 | |
after we fill slot 4, we're good until December 12th. | |||
11:39
am0c joined
11:41
MayDaniel_ joined
11:42
MayDaniel left
|
|||
FROGGS | I would if I could | 11:50 | |
moritz | why can't you? | ||
GlitchMr | Perhaps if I would have ideas | 11:51 | |
moritz | there are lots of ideas in the topic-brainstormin file | ||
masak | write about something Perl 6-related that you would like to tell the world about. | ||
FROGGS | because I dont know what to write and when thinking of stuff that is interesting I believe I'm not good enough for it | ||
moritz | just try it, and let us preview the post. Maybe it's good enough after all. | 11:52 | |
and if you want help, just ask | |||
remeber, hybris is a virtue :-) | |||
GlitchMr | Perhaps I could try making something about panda package manager | ||
FROGGS | ;o) | 11:53 | |
GlitchMr | It wasn't described before, was it? | ||
FROGGS | well, I'll think about it | ||
moritz | GlitchMr: no, just mentioned briefly, I think | ||
11:54
spider-mario joined
|
|||
FROGGS | packaging is important since we just have a bunch of modules | 11:54 | |
would be cool if more ppl start porting their stuff to Perl 6 | 11:55 | ||
GlitchMr | I'll try making post about panda package manager and I will show it on this channel today, ok? | 11:58 | |
moritz | GlitchMr: that would be great, yes | 12:00 | |
masak | ++GlitchMr | 12:01 | |
GlitchMr | I also would like somebody to proofread it, as I'm not native English speaker, but that after it will be done ;-) | ||
masak | oh, no problem. I volunteer to proof it. | 12:04 | |
12:05
cedrvint left
|
|||
GlitchMr | Thanks | 12:05 | |
12:16
dayangkun joined
12:17
replore_ left,
erkan joined
12:27
replore joined
|
|||
moritz | ++masak | 12:33 | |
12:33
cedrvint joined
|
|||
cedrvint | moritz: I agree with you, | 12:33 | |
\w doesn't make sense with :bytes | 12:34 | ||
maybe :bytes would forbid such subrules (encoding related) ? | 12:35 | ||
because latin-1 encoding seems to be an error-prone workaround | 12:36 | ||
Woodi | hallo # | 12:43 | |
std: while( my $a = now ) { say $a; } | |||
p6eval | std a8bc48f: OUTPUT«===SORRY!===Word 'while' interpreted as 'while()' function call; please use whitespace instead of parens at /tmp/DYMX5B7zxe line 1:------> while⏏( my $a = now ) { say $a; }Unexpected block in infix position (two terms in a row… | ||
Woodi | ehmm, adding () realy need to be syntax error ? | 12:44 | |
moritz | Woodi: no, it's only a warning | 12:48 | |
Woodi: the syntax error is that you use two terms in a row | |||
because while() is a call to a subroutine | |||
so the block after it is misplaced | |||
GlitchMr | std: while(42); # this is fine | 12:49 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Undeclared routine: 'while' used at line 1Check failedFAILED 00:00 41m» | ||
GlitchMr | std: sub while {}; while(42); # this is fine | ||
moritz | std: sub while($) { }; while(42); | ||
p6eval | std a8bc48f: OUTPUT«ok 00:00 42m» | ||
std a8bc48f: OUTPUT«ok 00:00 44m» | |||
GlitchMr | std: sub while {}; while(42) {}; # this is not | ||
p6eval | std a8bc48f: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/23eFOFO1qo line 1:------> sub while {}; while(42) ⏏{}; # this is not expecting infix or meta-infixParse f… | 12:50 | |
Woodi | but execution of script halts with: ===SORRY!=== Confused at t/some.t:1 so works like error | 12:52 | |
masak | Rakudo doesn't do warnings yet. | 12:57 | |
moritz | at least not compile-time warnings | 13:03 | |
13:14
kaare__ left
|
|||
masak | right. I was unclear. | 13:18 | |
13:22
replore left
|
|||
masak | "I find the best attitude is to treat programming like demon summoning: the | 13:23 | |
target is at least as smart as you, must obey the letter of your commands, | |||
and hates you. Code accordingly." | |||
it's from www.trout.me.uk/quotes.txt | |||
which appears to be full of great quotes. | |||
moritz likes it | |||
masak | I could easily plug this into fortune and my .bashrc | 13:25 | |
masak does it | |||
13:27
cedrvint left
|
|||
masak | heh, I also implemented fortune. :) | 13:28 | |
nom -e 'my $quotes = slurp("quotes.txt"); say $quotes.split(/\n\%\n/).roll' | |||
13:28
tokuhiro_ left
|
|||
masak | hm, nom -e 'say slurp("quotes.txt").split(/\n\%\n/).roll' is slightly shorter. | 13:29 | |
13:29
tokuhiro_ joined
|
|||
masak | yay, it works! :) | 13:31 | |
13:32
fgomez left
13:37
lasse joined
|
|||
masak | * sri remembers autrijus crying for help on irc after he locked himself in a room at Leopold Toetsch's house :) | 13:38 | |
...wow. | |||
13:39
Su-Shee joined
13:40
replore joined
|
|||
masak | traces of ancient history. Leo was doing Parrot and au was doing Perl 6, apparently from within a locked room ;) | 13:40 | |
GlitchMr | Asked to remove 4 spaces, but the shortest indent is 0 spaces in block at config:18 | 13:41 | |
Is it compile time warning? | |||
masak | looks like something out of the .indent() method. | 13:43 | |
r: say "foo".indent(-4) | |||
p6eval | rakudo 0bfba1: OUTPUT«Asked to remove 4 spaces, but the shortest indent is 0 spaces in block at /tmp/LpGuZ3AqSd:1foo» | ||
GlitchMr | masak: gist.github.com/4182308 | ||
This is the code I'm getting this | |||
Any idea why? | 13:44 | ||
masak | yeah, 'cus of line 15. | ||
arguably that shouldn't warn, though. | 13:45 | ||
13:45
whiteknight joined
|
|||
masak | (because empty lines should stay empty after indent/outdent) | 13:45 | |
I don't believe the spec mentions that, but I believe that's a sensible rule. | |||
moritz | it is | ||
masak | anyone disagree? | ||
GlitchMr | Just wondering, can the exception for empty lines be done? | ||
masak | I'll happily patch the spec. | 13:46 | |
GlitchMr: yes, I think that makes a whole lot of sense. | |||
I'm just wondering if there's a target market for "indent even empty lines", meaning we should have a named parameter too. I'm provisionally leaning towards "no". | 13:47 | ||
GlitchMr++ # discovering this | |||
this is *exactly* why API design is hard. | |||
GlitchMr | Also, I've tried removing that empty line, but it still doesn't work. It seems to outdent after interpolating $ini variable. | ||
masak | someone comes and uses your function in a perfectly sensible way, and it turns out there's a case you hadn't thought of. | ||
GlitchMr | That contains new line character. | ||
It's probably Rakudo bug, but still | 13:48 | ||
masak | $ini variable looks good to me. | ||
please try to golf your warning. | |||
GlitchMr | ok | ||
masak | I'll patch the spec in the meantime. | ||
r: say " 1\n\n 2".indent(*) | 13:49 | ||
p6eval | rakudo 0bfba1: OUTPUT« 1 2» | ||
masak | r: say " 1\n\n 2".indent(-4) | ||
p6eval | rakudo 0bfba1: OUTPUT«Asked to remove 4 spaces, but the shortest indent is 0 spaces in block at /tmp/c_rDhiU448:112» | ||
masak | yeah, this should definitely ignore empty lines. | ||
GlitchMr | Sure | ||
print qq:to 'END' | |||
{"TE\nST\n"} | |||
END | |||
masak | there's precedent. vim ignores empty lines. | ||
GlitchMr | "TE\nST\n" is expanded before parsing heredoc | 13:50 | |
Causing warnings | |||
moritz | masak: vim outdents blindly as many times as you tell it to | ||
masak | GlitchMr: that's... interesting. | ||
and arguably not a bug. | |||
masak thinks real hard | |||
GlitchMr | But sometimes I would like to interpolate multiline variables in heredoc. | 13:51 | |
masak | I see a case being made for "no, the interpolation should be made after the outdenting". | ||
it could even be a strong case. | |||
because anything else is wildly surprising and counterintuitive. | |||
GlitchMr | Besides, isn't heredoc compile time construct | ||
Or at least, it should be | 13:52 | ||
masak | yeah. | ||
that's probably the rationale: outdenting should be compile-time, and interpolation runtime. | |||
13:54
telex left
|
|||
GlitchMr | That problem also exists in Ruby | 13:55 | |
13:56
telex joined
13:57
not_gerd joined
|
|||
not_gerd | hello, #perl6 | 13:57 | |
masak | not_gerd! \o/ | ||
not_gerd | FROGGS: File::Spec is broken on my Rakudo 2012.10-126-g0961b71 | 13:58 | |
not_gerd tries to use Inline::C | |||
13:59
am0c left
|
|||
FROGGS | not_gerd: damn it, can you give me the output? | 13:59 | |
Inline::C won't work, there is a bug in rakudo | 14:00 | ||
not_gerd | FROGGS: gist.github.com/4182415 | 14:01 | |
hmm... so I'll have to look at NativeCall | 14:02 | ||
14:03
am0c joined
|
|||
moritz | r: say min(1, 2, 4) | 14:05 | |
p6eval | rakudo 0bfba1: OUTPUT«1» | ||
FROGGS | not_gerd: I'll have a look later today, I guess I can at least fix File::Spec, maybe Inline::C works too, I think its just that its impossible to use Inline::C and NativeCall together right now | 14:06 | |
14:09
daxim left
|
|||
moritz | I think I have a fix for Str.indent | 14:13 | |
masak | oh, I forgot to push my spec commit. | 14:21 | |
masak does so | |||
dalek | ecs: 749445a | masak++ | S32-setting-library/Str.pod: [S32/Str] make .indent not care about empty lines |
14:22 | |
masak | nice article about a seemingly nice book about BASIC and labyrinths. www.slate.com/articles/technology/b...iewed.html | ||
here's a Perl 6 program that does the same: | 14:24 | ||
perl6 -e 'sub MAIN($width, $height) { for ^$height { say <\\ />.roll($width).join } }' 10 10 | |||
14:25
rurban joined
|
|||
masak | though this is much nicer, and perhaps closer in intent to the original: say ("\x2571", "\x2572").roll($width).join | 14:26 | |
14:26
am0c left
|
|||
masak | actually, let's just go with perl6 -e 'loop { print ("\x2571", "\x2572").roll }' | 14:27 | |
masak starts it and stares, transfixed | 14:28 | ||
felher | this is kind of hypnotic ... | 14:30 | |
masak | :) | ||
masak supplies 'loop { print <9585 9586>>>.chr.roll }' to the HN thread | |||
felher | HN ? | 14:32 | |
masak | Hacker News. | ||
actually, shoulda done 'loop { print <9585 9586>.roll.chr }' :) | |||
news.ycombinator.com/item?id=4856207 | |||
felher | ah, nice :) | 14:33 | |
masak | 'loop { print <╱ ╲>.roll }' works too, at least if your terminal is set up right ;) | 14:34 | |
14:35
spider-mario left
|
|||
felher | Seems like it is :) | 14:35 | |
14:35
spider-mario joined
14:37
pmurias joined
|
|||
pmurias | hi | 14:43 | |
felher | o/ | 14:44 | |
moritz | seems I can't push to github | ||
ssh_exchange_identification: Connection closed by remote host | |||
masak | :( | 14:45 | |
dalek | kudo/nom: 8444e8d | moritz++ | src/core/Str.pm: [Str.indent] ignore empty lines for outdenting |
14:46 | |
masak | should also ignore empty lines for indenting... :) | 14:53 | |
basically, empty lines should just pass through .indent unchanged. | |||
moritz | r: say "a\n\nb".indent(2).perl | 14:54 | |
p6eval | rakudo 0bfba1: OUTPUT«" a\n \n b"» | ||
15:01
spider-mario left
15:07
spider-mario joined
|
|||
pmurias | moritz: your ast dumper for nqp can handle all ast nodes? | 15:08 | |
15:09
PacoAir joined
15:11
bowtie joined,
wamba left
15:13
replore left
15:14
replore_ joined
15:17
Wtr joined
15:19
Pleiades` left
15:24
Pleiades` joined
|
|||
dalek | : 2180627 | gerdr++ | misc/perl6advent-2012/schedule: [p6advent] claim day 4 Intends to show that Rakudo is 'fast enough' for Project Euler |
15:25 | |
not_gerd | the article is mostly written, will probably finish later today | 15:26 | |
15:30
wamba joined
|
|||
masak | not_gerd++ | 15:30 | |
masak should start writing on his article for tomorrow | 15:31 | ||
15:35
am0c joined
15:36
Pleiades` left
15:40
Pleiades` joined
15:46
am0c left,
am0c joined
15:51
Kharec left
15:54
dayangkun left
|
|||
felher | moritz++ # first post :) | 16:04 | |
16:07
birdwindupbird joined
16:11
shachaf left,
ingy left,
ingy joined,
shachaf joined,
gugod left
16:12
gugod joined
16:14
replore_ left
|
|||
moritz | pmurias: yes, but it doesn't output all information from all node types | 16:15 | |
not_gerd: please /msg me your email address so that I can invite you to the wordpress site | |||
dalek | kudo/nom: 3ffbec7 | moritz++ | src/core/Str.pm: do not indent empty lines |
16:17 | |
16:17
hash_table joined
|
|||
masak | moritz++ | 16:23 | |
16:26
SamuraiJack left
16:27
fgomez joined
16:29
whiteknight left,
kaare__ joined
16:32
SamuraiJack joined
|
|||
not_gerd | if anyone wants to take a short trip into the future, that's how my advent post will look like: gist.github.com/73e4f265c2c0b500b568 | 16:33 | |
moritz | not_gerd: since you talk about performance at the start of the post, it might make sense to include rough run times | 16:34 | |
not_gerd | should all be <1s, but that's worth mentioning, yes | 16:35 | |
masak | not_gerd: '(with exclusive end)' sounds a bit confusing. maybe '(excluding the right endpoint)'. | 16:36 | |
and I agree about benchmarks. | |||
not_gerd: might be worth mentioning under problem 3 that infix:<div>, as opposed to infix:</>, preserves the original type of the number, and so rounds the integers down. | 16:37 | ||
16:38
sizz joined,
SamuraiJack left
|
|||
not_gerd | ok, <1s was a bit optimistic - the slowest one took ~5s | 16:38 | |
masak | "Problem 009" -- should that be "Problem 9" to be consistent with the other numbering? | ||
not_gerd | masak: yes, thanks | 16:39 | |
masak | under Problem 47, I would really like to see the C code ;) | 16:40 | |
finished reading. that is a nice post. | 16:41 | ||
not_gerd++ | |||
not_gerd | masak: the C code needs some cleanup - that's the main thing still missing | ||
I'll probably add the Perl6 code as well that takes $forever | 16:42 | ||
masak | :) | ||
moritz | but yes, overall a nice post. not_gerd++ | ||
16:45
SamuraiJack joined
|
|||
not_gerd is building an up-to-date Parrot/NQP/Rakudo | 16:45 | ||
16:46
hash_table left
16:50
replore_ joined
|
|||
dalek | ast: 912d361 | moritz++ | S32-str/indent.t: Str.indent tests with empty lines |
16:52 | |
not_gerd needs to log out | |||
feel free to leave more comments on the gist | |||
bye, #perl6 | 16:53 | ||
16:53
not_gerd left
|
|||
moritz | \o | 16:53 | |
16:53
SamuraiJack left
|
|||
GlitchMr | I'm doing a spellchecking on my perl6advent article | 16:54 | |
But I've found a spelling error. | |||
'Succesfully installed Config::INI' | |||
It should be "Successfully". | |||
But that's error in Panda | 16:55 | ||
FROGGS | well, fork & fix & push ;o) | 16:57 | |
dalek | nda: 21ce4bf | moritz++ | lib/Panda.pm: fix spelling error. GlitchMr++ |
||
GlitchMr | I was too late :-P | 16:58 | |
FROGGS | hehe | ||
17:05
replore_ left
17:12
fgomez left
17:14
fgomez joined
|
|||
GlitchMr | %*CUSTOM_LIB<perl> is checked before %*CUSTOM_LIB<site>? Why? | 17:15 | |
This makes it impossible to update core modules | |||
17:17
am0c left
17:19
noggle left
|
|||
dalek | kudo/nom: da6569f | moritz++ | src/core/Str.pm: fix "".indent(*) |
17:20 | |
17:21
replore joined
17:24
birdwindupbird left
|
|||
dalek | : ce4e17c | (Konrad Borowski)++ | misc/perl6advent-2012/schedule: Claim day 12 |
17:25 | |
ast: ec94b1d | moritz++ | S32-str/indent.t: re-add rakudo skip that I accidentally removed |
17:28 | ||
GlitchMr | Cannot call 'indent'; none of these signatures match: | 17:31 | |
:(Str : Int $steps, Mu *%_) | |||
:(Str : $steps, Mu *%_) | |||
17:31
Wtr left
|
|||
GlitchMr | Huh? | 17:31 | |
Shouldn't the third signature match indent? | |||
Even when used with Str | |||
moritz | there's a constraint which Signature.perl ignores | 17:33 | |
GlitchMr | masak: gist.github.com/4183370 | ||
rurban | I hate wordpress formatting. I tried my best at reiniurban.wordpress.com/ but still annoying. Don't they support markdown? | 17:36 | |
GlitchMr | No | ||
They don't support MarkDown | |||
I just have used Markdown in my article to have some human-readable language to work with. | 17:37 | ||
(and because I use Markdown on my blog) | |||
moritz | rurban: the best you can do is to produce HTML, and then remove newlines from the HTML | 17:40 | |
GlitchMr | I don't know why Perl6advent uses Wordpress.com, but it's probably too late to change that. | 17:41 | |
moritz | GlitchMr: it's not perfect, but it works and is pretty reliable | ||
and it survived links from the frontpages from slashdot, reddit and hackernews | |||
GlitchMr | Right | 17:42 | |
btw, moritz, what do you think about gist.github.com/4183370 | 17:43 | ||
moritz | GlitchMr: needs some language polishing, but otherwise quite nice | 17:44 | |
GlitchMr: maybe worth mentioning that panda can install into user's home directories | 17:45 | ||
GlitchMr | I know | ||
moritz | even perl 5's toolchain hasn't supported this for long | ||
GlitchMr | I'm still working on it | ||
Also, I think I've mentioned that | 17:46 | ||
But it isn't really noticeable, so I don't know | |||
"Panda installs modules globally when you have write access to installation directory, locally otherwise, so you can use panda even when Perl 6 is installed globally without installing modules like local::lib you had to install in Perl 5." | |||
moritz | something like that, but add a bit of punctuation | 17:47 | |
English is well suited for short sentences. | |||
GlitchMr | I will try ;-) | ||
I'm really bad at English. | |||
17:47
whooguy joined
|
|||
masak | GlitchMr++ # nice! | 17:48 | |
tadzik++ # panda looks so nice, too | |||
GlitchMr | moritz: gist.github.com/4183370 | ||
I have put a dot. | |||
masak | GlitchMr: should I send corrections here, or over privmsg? | 17:49 | |
GlitchMr | I don't care, really | ||
masak privmsgs | 17:50 | ||
17:52
whooguy left
17:54
noggle joined
17:58
replore left
|
|||
masak | so, who wants slot #13? :) | 18:10 | |
(only five slots left! grab them while they still last!) | 18:11 | ||
GlitchMr | wow, only 5 slots left | ||
masak | though slot 24 should probably be something special... | ||
like a TimToady post or something. | |||
18:11
whooguy joined
|
|||
masak | hi, whooguy | 18:12 | |
GlitchMr | Previous year we had multi subs. | ||
For 24th day | |||
18:12
replore joined
|
|||
GlitchMr | Actually, I think that "Idiomatic Perl 6" was more interesting. | 18:13 | |
18:14
whooguy left
|
|||
masak | r: my $squarer3 = { my $x = shift @_; $x * $x }; say $squarer3(11) | 18:15 | |
p6eval | rakudo da6569: OUTPUT«121» | ||
masak | nice. | ||
18:19
cognominal joined
18:24
popl joined
18:28
RandalSchwartz joined,
RandalSchwartz left,
RandalSchwartz joined
18:30
rurban left
18:38
rindolf joined
18:39
whooguy joined
18:54
am0c joined
19:00
am0c left
19:01
am0c joined
19:03
replore left
19:04
whooguy left,
raiph joined
19:08
cognominal left
19:15
cognominal joined
19:19
Su-Shee left,
Su-Shee joined
19:24
whooguy joined
19:32
Rotwang joined
19:37
rurban joined
19:41
am0c left,
am0c joined
19:54
cedrvint joined
|
|||
cedrvint | GlitchMr: are you sure Signature.ACCEPT was included in the latest R*? | 19:55 | |
19:55
kaare__ left
|
|||
sorear | good * #perl6 | 19:58 | |
GlitchMr | It isn't? | 20:00 | |
20:00
whooguy left
|
|||
cedrvint | I'm not sure. | 20:00 | |
cedrvint makes some tests | 20:01 | ||
dalek | nch-scripts: 45e025b | GlitchMr++ | dice.pl: Fix #1 by conditional roll subroutine. |
20:02 | |
cedrvint | star: :() ~~ :() | ||
p6eval | star 2012.10: ( no output ) | ||
cedrvint | rn: :() ~~ :() | 20:03 | |
p6eval | rakudo da6569: ( no output ) | ||
..niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Action method fakesignature not yet implemented at /tmp/BhfDGR2GkK line 1:------> :(⏏) ~~ :()Action method sigterm not yet implemented at /tmp/BhfDGR2GkK line 1:------> :()⏏ ~~ :()… | |||
GlitchMr | This is star 2012.10 | ||
Newest version is 2012.11 | |||
Also, finally closed that pull request that was in this repository for... two years! | |||
20:04
bluescreen100 left
|
|||
cedrvint | GlitchMr: how I can test Signature.ACCEPTS (my test looks wrong)? | 20:04 | |
dalek | : f370bcf | (Konrad Borowski)++ | misc/perl6advent-2012/topic-brainstorming: Claim Panda |
20:05 | |
GlitchMr | signature-signature.t | ||
In roast | |||
Looks like you're right | 20:06 | ||
Fixing | |||
cedrvint | r: say :(Str) ~~ :(Str) | ||
p6eval | rakudo da6569: OUTPUT«True» | ||
cedrvint | r: say :() ~~ :() | ||
p6eval | rakudo da6569: OUTPUT«True» | ||
cedrvint | star: say :() ~~ :() | ||
p6eval | star 2012.10: OUTPUT«False» | ||
cedrvint | OK, "say" was missing from the test | 20:07 | |
masak | folks -- December 2 advent post draft is now written. | ||
GlitchMr | star: say :(Str) ~~ :(Int) | ||
p6eval | star 2012.10: OUTPUT«False» | ||
GlitchMr | r: say :(Str) ~~ :(Int) | ||
p6eval | rakudo da6569: OUTPUT«False» | ||
masak | it can be perused over at perl6advent for those with editor privileges. | ||
feel free to review and supply feedback. | |||
I've set -- successfully, I hope -- auto-publishing to one minute past midnight on the 2nd. | 20:08 | ||
GlitchMr | Can I get editor privileges too? | 20:09 | |
dalek | ast: 84c7682 | GlitchMr++ | S03-smartmatch/signature-signature.t: Revert "Remove useless block.". I wasn't aware it was used for documentation generation. This reverts commit 5249f858db28764a9ee6f989782bf6a6cd319089. |
||
flussence | rpn: say ?&undefined-sub | 20:10 | |
p6eval | niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Undeclared routine: 'undefined-sub' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) … | ||
..rakudo da6569: OUTPUT«False» | |||
..pugs: OUTPUT«*** No such subroutine: "&undefined-sub" at /tmp/a5c4Uy3CLL line 1, column 1 - line 2, column 1» | |||
flussence | is rakudo right there? | ||
GlitchMr | flussence: It's known | 20:11 | |
cedrvint | masak: in a way, callbacks are anonymous functions in C ;) | ||
GlitchMr | flussence: rakudo.org/2012/11/28/rakudo-star-2...-released/ - check deprecations | ||
flussence | ok, better question, how do I sanely work around things that are NYI in half of the active implementations? | 20:12 | |
cedrvint | masak: sometimes you can even create the code on the fly (JIT compilers, typically) | ||
flussence | (or how do I implement workarounds that test for a sub not existing?) | ||
cedrvint advocates for C, just for fun ;) | 20:13 | ||
flussence | (i.e. I need a &fork, and all I've got is a screwdriver) | 20:14 | |
masak | cedrvint: troo. and clang and gcc even give you closure semantics. | ||
20:14
raiph left
|
|||
flussence | oh wait, this might work | 20:15 | |
rpn: say ?(try { fork }) | |||
p6eval | rakudo da6569: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&fork' called (line 1)» | ||
..niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Undeclared routine: 'fork' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /hom… | |||
..pugs: OUTPUT«» | |||
flussence | rpn: say ?(try { &fork }) | ||
p6eval | pugs: OUTPUT«1» | ||
..niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Undeclared routine: 'fork' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /hom… | |||
..rakudo da6569: OUTPUT«False» | |||
dalek | ecs: ea745ba | root++ | S10-packages.pod: Caution that prefix<::> in declarative scenarios is different |
||
ecs: ea4ee96 | bri++ | S (6 files): Merge branch 'update' |
|||
ecs: 9bef5dc | skids++ | S (10 files): Merge remote-tracking branch 'perl6' |
|||
ecs: 8e6b864 | skids++ | S06-routines.pod: Do not use positional params as named in code example |
|||
ecs: b6a63bf | skids++ | S12-objects.pod: When talking about native types, use lowercase enum in example. |
|||
ecs: fc0e3bd | (Konrad Borowski)++ | S (3 files): Merge pull request #10 from skids/master Clarify when prefix<::> can be used as in-place predeclarator |
|||
20:17
am0c left
20:18
am0c joined
|
|||
cedrvint | masak: great post! | 20:19 | |
masak | \o/ | ||
flussence | rpn: say ?(try eval '&fork') | ||
p6eval | rakudo da6569, niecza v22-44-g0247fe5: OUTPUT«False» | ||
..pugs: OUTPUT«» | |||
20:20
rurban left
|
|||
cedrvint | masak: one minor comment before I leave: your "surprise" would be more impressive (to me) if it is open later by a caller (foo -> bar -> make_surprise, unwind up to foo -> surprise !). I don't known how to do that actually. | 20:21 | |
20:22
cedrvint left
|
|||
dalek | ast: 20eeb9d | amire80++ | S32-io/IO-Socket-INET.pl: Remove a temporary flag file Put the file name into a variable, because it's used several times. Added unlink after every check for file's existence. As far as I understand, at that point the file is not needed any more. |
20:25 | |
20:31
rurban joined
|
|||
masak | cedrvint: hm. | 20:43 | |
r: sub foo { my $surprise = bar(); $surprise() }; sub bar { return make_surprise("Finn") }; sub make_surprise($name) { return { say "Surprise, $name!" } }; foo | 20:46 | ||
p6eval | rakudo da6569: OUTPUT«Surprise, Finn!» | ||
masak | I'm not sure I see the difference in impressiveness :) | ||
maybe I'm missing the point of what you're saying. | |||
20:54
cedrvint joined
|
|||
cedrvint | masak: my point was: unlike in C, unwinding the call stack doesn't clobber variables | 20:58 | |
20:58
rurban left,
GlitchMr left
|
|||
cedrvint | masak: but that's not really important here, I guess | 20:58 | |
r: sub foo { my $surprise = bar(); $surprise() }; sub bar { my $string = 'test'; return make_surprise($string) }; sub make_surprise($name) { return { say "Surprise, $name!" } }; foo | 21:00 | ||
p6eval | rakudo da6569: OUTPUT«Surprise, test!» | ||
cedrvint | masak: $string is still "alive" | ||
huf | that's what closures do, no? | 21:02 | |
cedrvint | (well, this test works in C because "test" is stored in a RO data segment) | ||
masak | I can almost see what you're getting at. | 21:04 | |
cedrvint | huf: in C, bar's stackframe won't survive on C<return>, thus everything allocated in its stack could be overwritten | ||
masak | and I can also sort of see why C doesn't allow closures by default. | ||
cedrvint | masak: but I don't want to introduce noise in your post. | ||
huf | well yes, c doesnt have closures | ||
masak | because it would necessitate an automatic memory management policy above what C already provides. | 21:05 | |
cedrvint | huf: only nested functions ;) | ||
huf | only as a nonstandard extension, no? | ||
cedrvint | masak: yes | ||
huf: you're right: its a GCC extension | |||
huf | yes, and that of course doesnt do much magic | ||
since the outer function is still running, its stack is still there | |||
cedrvint | exactly | 21:06 | |
huf | i'm just saying, this difference can be summed up as "blocks are also closures" | ||
if i read that bit of code right | |||
cedrvint | I agree | ||
huf | how do blocks know when to self-call? | 21:07 | |
cedrvint | what's self-call ? | 21:08 | |
huf | well i assume a block on its own will just run | ||
21:08
rurban joined
|
|||
huf | but return BLOCK seems to return a callable | 21:09 | |
pmurias | yes | ||
cedrvint | huf: like C<for "OK" { .say }> ? | 21:10 | |
huf | pmurias: so how does it decide who calls that callable? | 21:11 | |
cedrvint | "for", "if", ... I guess | ||
huf | if a block is in void context, it runs itself? | ||
pmurias | yes | 21:14 | |
cedrvint | std: my $truthiness = { "Colbert".say }; if Tree $truthiness; | 21:15 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Missing block (apparently gobbled by undeclared routine?) at /tmp/EoFt2iA0f_ line 1:------> = { "Colbert".say }; if Tree $truthiness⏏; expecting any of: desigilname twigilUndeclared name: 'Tree' used at line | ||
..… | |||
pmurias | huf: S03:190 | 21:16 | |
cedrvint | std: my $truthiness = { "Colbert".say }; if True $truthiness; | ||
p6eval | std a8bc48f: OUTPUT«===SORRY!===Missing block at /tmp/TZ7IRnHW1A line 1:------> truthiness = { "Colbert".say }; if True ⏏$truthiness; expecting any of: infix or meta-infix infixed functionParse failedFAILED 00:00 44m» | ||
pmurias | huf: it's a syntactic destinction | 21:17 | |
masak | huf: an earlier advent post summarized it as "it runs if not used as an rvalue". which I guess is tantamount to "it runs if in void context". | ||
cedrvint doesn't have the truthiness :-/ | 21:19 | ||
masak | cedrvint: 'if' requires braces. | 21:20 | |
it's not enough for the braces to be around a block stored in a variable. | 21:21 | ||
they have to be there syntactically. | |||
'if True $truthiness' is two terms in a row. so is 'if True { ... }', of course, but it gets a special exemption, because 'if' is a syntactic form. | 21:22 | ||
21:22
fgomez left
|
|||
pmurias | rakudo: my $foo=sub foo {{say "hi"}}; | 21:22 | |
p6eval | rakudo da6569: ( no output ) | ||
pmurias | rakudo: my $foo=sub foo {{say "hi"}};$foo(); | ||
p6eval | rakudo da6569: OUTPUT«hi» | ||
21:23
Targen joined
|
|||
cedrvint | ah, OK | 21:25 | |
21:27
armitage81 joined
21:28
armitage81 left,
armitage81 joined
|
|||
masak | though it's an intriguing idea to make something like 'if True $truthiness' work. feels like it should in a language like Smalltalk or Io. :) | 21:29 | |
21:29
am0c left
21:30
am0c joined
|
|||
cedrvint | sometimes I want to write: C<my $foo = given $bar { when Real { 1 } when Str { 2 } }> but it seems I have to write: | 21:32 | |
r: my $bar = 'test'; my $foo0 = { given $bar { when Real { 1 } when Str { 2 } } }; my $foo = $foo0(); | 21:33 | ||
p6eval | rakudo da6569: ( no output ) | ||
cedrvint | r: my $bar = 'test'; my $foo0 = { given $bar { when Real { 1 } when Str { 2 } } }; $foo0().say; | ||
p6eval | rakudo da6569: OUTPUT«2» | ||
cedrvint | that is, it requires one more indirection | 21:34 | |
am i right? | |||
masak | or use 'do'. | 21:35 | |
r: my $bar = 'test'; my $foo0 = do given $bar { when Real { 1 }; when Str { 2 } }; say $foo0 | |||
p6eval | rakudo da6569: OUTPUT«2» | ||
cedrvint | masak++ | ||
masak | also, I'm surprised Rakudo doesn't complain about the lack of semicolon between your 'when's. | 21:36 | |
that's quite possibly a bug. | |||
std: given 1 { when Real { 1 } when Str { 2 } } | |||
cedrvint | std: my $bar = 'test'; my $foo0 = { given $bar { when Real { 1 } when Str { 2 } } } | ||
p6eval | std a8bc48f: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/C8ZKP99tRu line 1:------> given 1 { when Real { 1 }⏏ when Str { 2 } } expecting horizontal whitespaceParse failedFAILED 00:00 42m»… | ||
std a8bc48f: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/bA7tZmd2b0 line 1:------> y $foo0 = { given $bar { when Real { 1 }⏏ when Str { 2 } } } expecting horizontal whitespaceParse failedFAI… | |||
masak submits rakudobug | |||
cedrvint | don't! :) | ||
it would break my code ;) | 21:37 | ||
masak | ;) | ||
sorry, I simply have to. | |||
cedrvint | n: my $bar = 'test'; my $foo0 = { given $bar { when Real { 1 } when Str { 2 } } }; $foo0().say; | 21:39 | |
p6eval | niecza v22-44-g0247fe5: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/ybbRlLlHp7 line 1:------> y $foo0 = { given $bar { when Real { 1 }⏏ when Str { 2 } } }; $foo0().say;Parse failed»… | 21:40 | |
21:40
Rotwang left
|
|||
cedrvint has to fix advent #3, then. | 21:43 | ||
moritz | it's likely fine when you have a newline after the } | ||
21:44
fgomez joined
|
|||
cedrvint | that explains why advent #3 works with Niecza | 21:44 | |
(before "fix") | |||
dalek | p: 7ce401e | rurban++ | 3rdparty/dyncall/ (3 files): fix darwin with macports libtool the gnu/macports libtool does not understand -static. Force to use darwin special /usr/bin/libtool |
21:52 | |
p: 4a3fb26 | rurban++ | src/pmc/ (5 files): Mark UNUSED pmc parameters as such Fixes -Wunused-parameter warnings |
|||
masak | oh yes, newline works just as fine as semicolon. | 21:54 | |
forgot to say that. | |||
dalek | p/gh67-threads: 0cc73af | rurban++ | src/pmc/nqplexpad.pmc: [GH #67] Use rurban/gh870-pmc_class nqp_group.h information pmc2c from rurban/gh870-pmc_class exports the dynpmc types, which we use to check for NQPLexInfo in NQPLexPad, to discriminate for Proxy. Proxy info is read-only. This does not work yet |
21:56 | |
p/gh67-threads: 25ddb12 | rurban++ | src/pmc/nqplexpad.pmc: [parrot #870] rename pmc_class_ to dynpmc_class_ |
|||
p/gh67-threads: b7d9acd | rurban++ | / (2 files): add t/nqp/67-threads.t, fix .gitignore for /nqp |
|||
cedrvint | std: if True { say '1' } if True { say '2' } | 21:58 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/xdH_ezHQrr line 1:------> if True { say '1' }⏏ if True { say '2' } expecting any of: horizontal whitespace statement_controlParse fa… | ||
cedrvint | r: if True { say '1' } if True { say '2' } | ||
p6eval | rakudo da6569: OUTPUT«12» | ||
cedrvint | same problem here | 21:59 | |
moritz | r: if 1 { } 2 | ||
p6eval | rakudo da6569: OUTPUT«===SORRY!===Confusedat /tmp/weRSw8oYDG:1» | ||
moritz | r: if 1 { } if 1 { } | ||
p6eval | rakudo da6569: ( no output ) | ||
moritz | r: { } if 1 { } | 22:00 | |
p6eval | rakudo da6569: OUTPUT«===SORRY!===Confusedat /tmp/GC2CpTgOO8:1» | ||
FROGGS | weird | ||
cedrvint | does it mean the semicolon isn't useful in that case ? (no possible ambiguity) | 22:02 | |
FROGGS | r: if False { say '1' } if True { say '2' } | ||
p6eval | rakudo da6569: OUTPUT«2» | ||
cedrvint | and it could be removed from STD ? | ||
moritz | no, it's simply a bug in rakudo's parser | ||
the rule is simple: you need a semicolon between two statements, unless the first ends with }\n | 22:03 | ||
and rakudo sometimes allows } without \n, and that's a bug | |||
cedrvint | it makes sense | ||
r: if True { say '1' }if True { say '2' } | 22:04 | ||
p6eval | rakudo da6569: OUTPUT«12» | ||
cedrvint | (without space between '}' and 'if') | ||
22:11
cognominal left
22:12
robins joined
22:16
armitage81 left
|
|||
masak | I like the semicolon-or-newline rule a lot. I think it's one of the sanest design decisions of Perl 6. | 22:19 | |
FROGGS | and it fits larry's name | 22:23 | |
22:37
MayDaniel_ left
22:44
lichtkind joined,
cedrvint left
|
|||
lichtkind | im here to dicuss possible perl 6 advent calendar topic | 22:45 | |
22:45
FROGGS left
|
|||
lichtkind | because i did the re talk i suggest i take a re feature | 22:45 | |
22:46
lasse left
|
|||
masak | 're'? | 22:46 | |
lichtkind | yes i mean rx | ||
as in rx// or use re ....; | 22:47 | ||
masak | feel free. | 22:48 | |
22:49
bowtie left
|
|||
sorear | hello lichtkind | 22:57 | |
22:59
SmokeMachine joined
|
|||
lichtkind | hej sorear | 22:59 | |
23:01
am0c left
|
|||
lue | hello o/ | 23:29 | |
23:29
spider-mario left
|
|||
lue | [backlogging] is that why lines such as " when 1 { \n <snip> \n } when 2 { \n" broke in my code? | 23:30 | |
r: given 1 {when 1 {say "1";} when 2 { say "not 1";}} | 23:31 | ||
23:31
lichtkind left
|
|||
p6eval | rakudo da6569: OUTPUT«1» | 23:31 | |
lue | r: given 1 {when 1 {say "1";} default { say "not 1";}} | ||
p6eval | rakudo da6569: OUTPUT«===SORRY!===Unable to parse expression in block; couldn't find final '}' at line 3, near "when 1 {\ns"» | ||
lue | That's a bug, isn't it? | 23:32 | |
r: given 1 {when 1 {say "1";} default { say "not 1";}} | 23:33 | ||
p6eval | rakudo da6569: OUTPUT«1» | ||
23:33
SmokeMachine left
23:38
SmokeMachine joined
23:42
SmokeMachine left
23:45
SmokeMachine joined,
SmokeMachine left
23:47
Chillance joined
23:51
erkan left
23:53
erkan joined
23:58
_jaldhar joined,
jaldhar left
|