»ö« 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! | YAPC::NA talk submissions due end of Month. Have you submitted your talk? Set by toddr_ on 18 March 2013. |
|||
00:06
census_ joined
00:09
census left
00:17
census_ left,
census joined
00:26
grondilu left
|
|||
dalek | pan style="color: #395be5">perl6-examples: 5f8c099 | grondilu++ | rosalind/grondilu-mmch.pl: Update grondilu-mmch.pl style |
00:34 | |
00:52
awwaiid left
00:59
awwaiid joined
01:23
gtodd left
01:27
colomon left
01:42
colomon joined
01:44
FROGGS_ joined
01:45
drbean left
01:47
drbean joined
01:48
FROGGS left
01:52
anant joined
01:57
orafu left
01:58
orafu joined
02:10
awwaiid left
02:16
awwaiid joined
02:20
fgomez left,
xenoterracide left
02:29
census left
|
|||
dalek | kudo/extend-dump: 09a04e3 | (Geoffrey Broadwell)++ | src/core/Mu.pm: Remove some commented-out debug output and an unneeded trailing semicolon from DUMP code in Mu |
02:35 | |
kudo/extend-dump: 92f888a | (Geoffrey Broadwell)++ | src/core/Mu.pm: Fix container handling in sub DUMP(), which also fixes uninitialized value warnings caused by %ctx{$where} being set for the container instead of the contents |
|||
02:40
xenoterracide joined
02:41
fgomez joined
|
|||
dalek | kudo/extend-dump: c134bd1 | (Geoffrey Broadwell)++ | src/core/Mu.pm: Don't DUMP defined booleans as =Bool<obj_num> -- we expect them to be singletons, but want to see their value anyway. |
02:52 | |
02:53
spider-mario joined
02:54
leprevost joined
02:55
orafu left,
orafu joined
|
|||
diakopter | r: say .DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP # crying | 02:57 | |
p6eval | rakudo ffe441: OUTPUT«(timeout)» | ||
diakopter | *sobs* | ||
02:59
preflex left,
preflex_ joined
03:00
preflex_ is now known as preflex
03:05
toddr_ joined
03:09
Bzek left
03:15
census joined
03:20
spider-mario left,
anant left
03:41
census left
03:54
kurahaupo left,
thou_ left
04:15
pnu_ joined,
takesako___ joined
04:16
sdgvf_ joined,
pnu left,
takesako__ left,
cooper left,
renormalist left,
sdgvf left,
LoRe left
04:17
LoRe joined
04:19
cooper joined
04:20
kurahaupo joined
|
|||
japhb | diakopter, why do you sob and cry? | 04:33 | |
The branch isn't merged yet ... | |||
diakopter | hee | 04:34 | |
so what does it do in your branch | 04:35 | ||
04:36
raiph left
|
|||
japhb_ | Oh dear lord. Exponential backslash explosion. | 04:39 | |
diakopter | geometric, probably | ||
04:40
perigrin left
|
|||
japhb_ | Hmmm. | 04:41 | |
diakopter | r: $_.=DUMP | ||
p6eval | rakudo ffe441: ( no output ) | ||
diakopter | r: ($_.=DUMP for ^10) | ||
04:41
perigrin joined
|
|||
p6eval | rakudo ffe441: OUTPUT«Cannot assign to a readonly variable or a valuecurrent instr.: 'dispatch:<.=>' pc 165425 (src/gen/CORE.setting.pir:72359) (src/gen/CORE.setting:1014)called from Sub '' pc 126 ((file unknown):173829336) (/tmp/MFB9k4e3hW:1)called from Sub '' pc 274014 (src/gen/COR… | 04:41 | |
diakopter | eh? | 04:42 | |
if I can do it once, why can't I do it tensies | |||
japhb_ | diakopter, same difference for this case. | ||
(re: geometric) | |||
diakopter | i c | 04:43 | |
r: $_.=DUMP; $_.=DUMP | 04:44 | ||
p6eval | rakudo ffe441: ( no output ) | ||
diakopter | r: $_.=DUMP; $_.=DUMP; $_.=DUMP | ||
p6eval | rakudo ffe441: ( no output ) | ||
diakopter | go dump yourself! | ||
geekosaur | r: ($_.=DUMP for ^2) | ||
p6eval | rakudo ffe441: OUTPUT«Cannot assign to a readonly variable or a valuecurrent instr.: 'dispatch:<.=>' pc 165425 (src/gen/CORE.setting.pir:72359) (src/gen/CORE.setting:1014)called from Sub '' pc 126 ((file unknown):173251800) (/tmp/lcAehBUuDP:1)called from Sub '' pc 274014 (src/gen/COR… | ||
diakopter | r: ($_.=DUMP for ^1) | 04:45 | |
p6eval | rakudo ffe441: OUTPUT«Cannot assign to a readonly variable or a valuecurrent instr.: 'dispatch:<.=>' pc 165425 (src/gen/CORE.setting.pir:72359) (src/gen/CORE.setting:1014)called from Sub '' pc 126 ((file unknown):181312728) (/tmp/EWmiqRTccQ:1)called from Sub '' pc 274014 (src/gen/COR… | ||
diakopter | r: ($_.=DUMP for 1) | ||
p6eval | rakudo ffe441: OUTPUT«Cannot assign to a readonly variable or a valuecurrent instr.: 'dispatch:<.=>' pc 165425 (src/gen/CORE.setting.pir:72359) (src/gen/CORE.setting:1014)called from Sub '' pc 126 ((file unknown):175339200) (/tmp/_cVmIqkvTp:1)called from Sub '' pc 274014 (src/gen/COR… | ||
diakopter | _)_) | ||
japhb_ | The problem is, this is actually "correct" behavior, because Str.DUMP === Str.perl, and the first iteration of Str.perl adds quotation marks, which then get escaped -- and the escapes escaped -- for every iteration thereafter. | 04:46 | |
So it's a DIHWIDT, I think. | |||
diakopter | n: ($_.=perl for 1) | 04:47 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Writing to readonly scalar at /tmp/66HEhJX9UB line 1 (ANON @ 2)  at <unknown> line 0 (KERNEL map @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 363 (Any.map @ 4)  at /tmp/66HEhJX9UB line 1 (mainline @ 4)  at /home/p6eval/… | ||
diakopter | oh. | 04:48 | |
rn: say (($_ := $_.perl) for ^30) | 04:49 | ||
p6eval | rakudo ffe441, niecza v24-35-g5c06e28: OUTPUT«0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29» | ||
diakopter | *headdesk* | ||
rn: say (($_ := $_.perl) for ^30).WHAT | 04:50 | ||
p6eval | rakudo ffe441, niecza v24-35-g5c06e28: OUTPUT«(List)» | 04:51 | |
diakopter | wtf | ||
ok, I'm completely missing something [x12] here | |||
04:52
leprevost left
04:57
raiph joined
05:21
rindolf joined
05:31
SamuraiJack joined
05:32
betterwo1ld joined
05:34
snuffles_ joined
05:35
lestaway joined
05:37
nyuszika1 joined
05:38
betterworld left,
snuffles left,
Bucciarati left,
lestaway is now known as lestrrat
05:39
yves_ joined
05:40
nyuszika1 is now known as nyuszika7h
05:41
Bucciarati joined
05:47
ikrs joined
05:50
dmol joined
|
|||
tadzik | FROGGS_: oh! www.quickmeme.com/meme/3tooqv/ | 05:57 | |
06:07
DarthGandalf left
06:12
domidumont joined
06:17
erkan left
06:18
DarthGandalf joined
06:19
raiph left
06:23
domidumont left
06:30
raiph joined
06:34
rindolf left
06:35
rindolf joined
06:36
toddr_ left
06:37
awwaiid left
06:40
frdmn joined
06:42
domidumont joined,
rindolf left
06:43
rindolf joined
06:44
awwaiid joined
06:52
Rix left
06:56
rindolf left,
rindolf joined
06:59
kaleem joined
07:04
kingbeast joined,
anant joined
07:05
FROGGS_ left
07:07
domidumont left,
rindolf left
07:08
rindolf joined,
domidumont joined
07:09
kurahaupo left
07:16
rindolf left
07:17
rindolf joined
07:21
FROGGS joined,
Rix joined
07:28
wtw_ joined
07:35
x2 joined
07:38
vaelxon left
07:53
fhelmberger joined
07:54
shamendra joined
07:57
raiph left,
sqirrel joined
07:59
anant left
08:00
x2 left
08:05
daxim joined,
SamuraiJack_ joined
08:06
SamuraiJack left
08:07
_ilbot left,
_ilbot joined
08:09
anant joined
08:14
atroxaper joined
08:16
atroxaper left,
atroxaper joined
|
|||
masak | good forenoon, #perl6 | 08:19 | |
moritz | good forenoon, masak | 08:20 | |
timotimo | oh, it's the two people who are almost the same person! | ||
moritz | does anybody happen to have a copy of the HPMoR .epub somewhere? | 08:21 | |
I can't download it from the source, I get a connection time out | |||
08:22
kingbeast left
08:23
anant left,
dakkar joined
|
|||
FROGGS | moritz: no, I'm sorry | 08:23 | |
morning @all | |||
FROGGS .oO( undeclared variable @all used at morning @all⏏ ) | 08:24 | ||
masak | you can't just do an ∀ quantification without specifying your universe of discourse -- that's not well-founded! | 08:27 | |
:) | 08:28 | ||
FROGGS | bah :P | 08:31 | |
moritz | open source FTW. I found the code on github that generates the .epub file | 08:32 | |
I had to fake up the missing cover image | |||
but it did generate an .epub file for me | 08:33 | ||
masak | \o/ | ||
moritz | I've put it on moritz.faui2k3.org/tmp/rationality.epub in case anybody else wants/needs it | 08:36 | |
08:38
tgt joined
08:44
ikrs left
08:45
tgt left
08:50
Bucciarati left
|
|||
labster downloads it, puts it in the fanfic folder, loads it up on the epub->web interface he wrote. | 08:51 | ||
08:51
Gothmog_ left,
Gothmog_ joined
|
|||
moritz | labster: you can read it on the web at hpmor.com/ | 08:51 | |
labster | well yes, naturally, but it's another test for my own software | 08:52 | |
masak | is it in Perl 6? :) | 08:53 | |
08:54
Bzek joined
08:55
Bucciarati joined
|
|||
labster | sadly no. I ought to take a look at Web.pm or something and see if I can port it. | 08:56 | |
masak encourages this thinking | 08:57 | ||
labster | The idea was to make it easy to read comics and things stored in the .cbr/.cbz/.cb7 format (really .rar/.zip/.7z) on my iPhone, by using my desktop as a server. And then I started reading fanfic and ebooks, so .epub and .txt got added. Text because the default MobileSafari rendering doesn't seem to be able handle 72 column text, and because I can save my place in long documents. | 09:01 | |
masak | labster++ # I want to model you | 09:02 | |
labster | This is why I wanted lib7zip bindings, but honestly I have no idea what I'm looking at when I pull up C code. | 09:05 | |
On your Perl 6 is my MMO page, can we add Bard? Because I definitely have the jack of all trades, master of none thing going on. | 09:07 | ||
timotimo | i wonder how big lib7zip is | ||
labster | not big itself, but it's a wrapper around 7z.so which is ~2.3M compiled here. | 09:09 | |
FROGGS | I believe "big" is more about the needed functions | 09:10 | |
timotimo | oh, yes, i did mean that | 09:11 | |
especially how easily it translates to zavolaj. i don't really know much about how it handles buffers and all that | |||
09:11
drbean left
|
|||
masak | labster: heh :) | 09:11 | |
labster: feel free to write your own "Bard" blog post. ;) | |||
09:13
drbean joined
|
|||
labster | honestly, not sure. I know the 7z utility handles zip, tar, rar, etc types, but I don't know about the internals that much. That's what I was hoping for -- a lot of bang for the buck. (...Though it is slower) | 09:15 | |
09:16
atroxaper left
|
|||
timotimo | oh? lib7z also does all the other formats that the 7z utility will do? | 09:18 | |
that's interesting | |||
labster | lib7zip: a library using 7z.dll to handle different archive types: code.google.com/p/lib7zip/source/browse/ | 09:20 | |
timotimo | that's neat | ||
oh, it's c++ | 09:21 | ||
i don't think zavolaj does c++ | |||
arnsholt | Zavolaj can't do C++, really | 09:22 | |
Are you familiar with name mangling? | 09:23 | ||
labster | .mangle name | ||
yoleaux | Name | ||
arnsholt | The problem is that executables only have a single, flat namespace. This includes libraries, which just dump their symbols into the global namespace | 09:24 | |
Now the question is, since C++ lets you have functions with the same name but different argument signatures, how do you store those in a namespace that only allows a single function per name (and no type info)? | 09:25 | ||
The solution is name mangling: the real function's (the one stored in the executable) name isn't the one given in the code, but that name augmented with type information (and things like namespaces and stuff, which C++ has as well) | 09:26 | ||
tadzik | . o O ( pir::add__iiI() ) | 09:27 | |
arnsholt | The C++ standard encourages different compilers to use different mangling schemes, since different C++ compilers can't be expected to be interoperable | ||
This is why you need to compile your C++ code with the same compiler as compiled the library, whereas different C compilers are a lot more interoperable | 09:28 | ||
And of course, the reason Zavolaj won't and can't interface with C++ libraries (and why most shared libraries expose a C interface) | |||
labster | Oh well. :/ | 09:31 | |
tadzik | just write the C api for the C++ api :) | 09:32 | |
labster | so you can write the perl api. | ||
09:36
atroxaper joined
09:38
jlaire left
|
|||
labster | Okay, easier question: how magical should IO::Path be? In particular, should IO::Path.new('foo/bar/./').basename return "" (like old File::Spec.splitdir), "." (like basename), or "bar" (actual folder in question)? | 09:39 | |
atroxaper | I think, bar. Isn't it? | 09:41 | |
labster | Well, it could be. All of these are potentially valid answers, depending on what we set .directory to. | 09:43 | |
daxim | should be '.' | 09:44 | |
should be 'bar' only after an explicit resolve/cleanup call | |||
atroxaper | perl6: say 3; | 09:46 | |
p6eval | rakudo ffe441, niecza v24-35-g5c06e28: OUTPUT«3» | ||
09:48
Heather joined
|
|||
Heather | Hello ! | 09:48 | |
labster | o/ | ||
atroxaper | Hello ! | 09:49 | |
Heather | allowed unicode characters in F# compiler inspired by perl6 XD | ||
blogged here -> heather.cynede.net/ =) | 09:50 | ||
masak | atroxaper: hi! welcome. | 09:56 | |
Heather! \o/ | |||
Heather | masak hi! | 09:57 | |
atroxaper | masak: Hello. Many thanks! | 09:58 | |
09:58
jlaire joined
|
|||
atroxaper | masak, you have a good avatar ;) | 09:58 | |
10:00
erkan joined,
erkan left,
erkan joined
|
|||
Heather | agreed | 10:00 | |
labster | Hi Heather. Why "akuma"? | ||
masak | atroxaper: oh, the picture with the towel? | 10:01 | |
atroxaper | Yes. In small size you looks like perl-terrorist xD | 10:02 | |
10:03
jlaire left
|
|||
masak | it's unusual for me to sport towel headwear. but that was a very memorable weekend. | 10:04 | |
labster | daxim: naturally, you choose the hardest option for me, off to edit File::Spec now. :) | ||
10:05
jlaire joined
|
|||
atroxaper | labster: gl hf! | 10:05 | |
10:09
jlaire left
|
|||
atroxaper | Heather, i think your Beauty-and-Freedom Style looks like python. | 10:10 | |
Heather | atroxaper I hate python -_-' | 10:11 | |
really | |||
atroxaper | That's why I was surprised. | 10:12 | |
Heather | python is creepy, take a look: str(Popen(x.split(' '), stdout=PIPE).communicate()[0]) - what do you think about that? | ||
pretty understandable but I still can't say how does it work | 10:13 | ||
atroxaper and I hate haskell... because I always becoming nervous when trying use / learn it | |||
atroxaper I think ML style syntax is my favorite. | 10:14 | ||
10:15
jlaire joined,
anant joined
|
|||
atroxaper | Sorry but i have remembered cool picture: 2lx.ru/uploads/2011/01/pex_d4cef951.jpg | 10:15 | |
Heather | atroxaper well... I'm neither of them, I hate python :D | 10:16 | |
even variable declaration in python is killing me when I see it | 10:17 | ||
atroxaper | Actually i'm too. | 10:18 | |
Heather | I always see something alike x = "hi" and think WHAT THE HELL IS x ? | ||
C# is beauty language, python - NO :) | 10:19 | ||
atroxaper | But any way, how do you all think what need to be done to make perl6 more popular? | ||
Heather | atroxaper ok, back to topic... | ||
atroxaper I think we need more parrot developers... | 10:20 | ||
much much more | |||
billions of them | |||
10:21
shamendra left
|
|||
tadzik | uh | 10:21 | |
Heather | tadzik hi. | ||
10:21
shamen joined
|
|||
masak | tadzik! \o/ | 10:21 | |
Heather | I can't say about language but perl6 is my favorite | 10:22 | |
irc channel | |||
tadzik | Heather! masak! | ||
masak | Heather: in Soviet Russia, the #perl6 IRC channel favorites YOU! | ||
Heather | =) | 10:24 | |
atroxaper | Is it right that racudo works like: (perl6+NPQ)->(QAST)->(PIR)->calc. Or that chain is shorter? | 10:25 | |
tadzik | www.fileformat.info/info/unicode/bl...s/list.htm is so crazy I don't even | ||
masak | atroxaper: it's "Rakudo". and yes, that looks about right. | ||
Heather | tadzik reading my blog? :) | 10:26 | |
atroxaper | Is Soviet Russia is synonym ща chuck norris?)) I'm from USSR) | ||
tadzik | Heather: not right now, no. Why? | ||
Heather | tadzik I used that site in as link in last post | 10:27 | |
tadzik | do you also have WOMAN AT INFORMATION DESK over there? :) | ||
atroxaper | Sorry. Yes "rakudo". It was my typo | ||
10:27
jlaire_ joined
|
|||
masak | tadzik: "right, what's the next minority alphabet on the list?" -- "apparently, it's, uh, CRAZY WEATHER SYMBOLS AND ANIMALS AND CLOTHES" | 10:27 | |
the Unicode consortium are all right, but boy do they not know when to stop. | 10:28 | ||
10:28
jlaire left
|
|||
tadzik | masak: I completely lost it at GREEN BOOK (U+1F4D7), BLUE BOOK (U+1F4D8) and ORANGE BOOK (U+1F4D9) | 10:29 | |
masak | it's like those guys are, I don't know, building on the prior success of their endeavour and creating a big, unmaintainable Quest for Everything with no hope of real-world compliance. as a #perl6 denizen, I am appalled. | ||
:P | |||
tadzik | guise, wat r u doing | 10:30 | |
guise, stahp | |||
masak | nothing can undo the damage already caused by GREEN BOOK (U+1F4D7), BLUE BOOK (U+1F4D8) and ORANGE BOOK (U+1F4D9) | 10:31 | |
10:35
labster left
|
|||
Heather | I failed in colorblindness test :( | 10:37 | |
atroxaper | And now all of us looks on the pictures! | ||
Heather | time for cats? | 10:38 | |
bbkr | ANGER SYMBOL (U+1F4A2) :) | 10:39 | |
Heather | bbkr link please ) | ||
bbkr | www.fileformat.info/info/unicode/ch.../index.htm | 10:40 | |
Heather | bbkr COOL ! | ||
bbkr | perfect for replacing X:: in exceptions | 10:41 | |
Heather | ++ | ||
atroxaper | Yes! It is not symmetric. It kills my perfectionism! | ||
Heather | bbkr I want water drop symbol also for ... warning maybe ) | 10:42 | |
tadzik | atroxaper: that's the point | 10:44 | |
that's why it's the anger symbol | |||
should be comic sans too | |||
timotimo | m) | 10:45 | |
Heather | As I said it's all about manga! | 10:46 | |
10:46
tgt joined
10:48
atroxaper left
10:49
jlaire_ left,
try joined
10:50
tgt left,
try left
|
|||
timotimo | oh, neat, comb ..., :match gives a list of match objects for the regex | 10:50 | |
10:51
jlaire joined
|
|||
Heather | ♥ | 10:54 | |
10:56
woolfy joined
10:58
xinming left
10:59
xinming joined
11:30
bbkr left
11:36
bbkr joined
|
|||
lizmat | rn: sub a () { temp $foo= 1 } | 11:48 | |
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Variable '$foo' is not declaredat /tmp/W4ZYkaPQwl:1------> sub a () { temp $foo⏏= 1 } expecting any of: postfix» | ||
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Variable $foo is not predeclared at /tmp/G9nMGf44gm line 1:------> sub a () { temp ⏏$foo= 1 }Potential difficulties: &a is declared but not used at /tmp/G9nMGf44gm line 1:------> sub a ⏏[3… | |||
lizmat | rn: sub a () { temp $foo= 1 } a | ||
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Variable '$foo' is not declaredat /tmp/kqoTdoNrdJ:1------> sub a () { temp $foo⏏= 1 } a expecting any of: postfix» | ||
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Variable $foo is not predeclared at /tmp/jAEWsJ5oZJ line 1:------> sub a () { temp ⏏$foo= 1 } aStrange text after block (missing comma, semicolon, comment marker?) at /tmp/jAEWsJ5oZJ line 1:------> [3… | |||
lizmat | rn: sub a () { temp $foo= 1 }; a | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Variable $foo is not predeclared at /tmp/B1JRbSTACF line 1:------> sub a () { temp ⏏$foo= 1 }; aUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  a… | ||
..rakudo ffe441: OUTPUT«===SORRY!===Variable '$foo' is not declaredat /tmp/Ulv4cYnzWZ:1------> sub a () { temp $foo⏏= 1 }; a expecting any of: postfix» | |||
11:49
colomon left
|
|||
lizmat | very much unlike local() in p5 then | 11:50 | |
Heather | lizmat temp? | ||
lizmat is trying to make sense of S02 and is halfway | 11:51 | ||
Heather | lizmat spec? | ||
lizmat | S02L2889 | 11:52 | |
11:52
xinming left
11:54
odoacre left
11:55
xinming joined
11:56
atroxaper joined
12:04
atroxaper left
|
|||
masak | lizmat: yes, if you want local(), you want something more like $*foo variables (dynamicals). but 'temp' works pretty well with those. | 12:06 | |
lizmat | so what is wrong with: | 12:07 | |
rn: sub a () { temp $foo= 1 }; a | |||
p6eval | niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Variable $foo is not predeclared at /tmp/ci4f3I4wFs line 1:------> sub a () { temp ⏏$foo= 1 }; aUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  a… | ||
..rakudo ffe441: OUTPUT«===SORRY!===Variable '$foo' is not declaredat /tmp/qaQZt3Tsv2:1------> sub a () { temp $foo⏏= 1 }; a expecting any of: postfix» | |||
lizmat | so temp is not a declaration? | ||
not like my or our ? | |||
masak | ding! correct. | 12:09 | |
lizmat attempt to adjust mental image | |||
*s | |||
masak | S03 classifies them as 'named unary operators', not as declarators. | 12:10 | |
12:10
skids left
|
|||
masak | eh, "them" being 'temp' and 'let' | 12:10 | |
12:10
xinming left
|
|||
timotimo | perl6 has let? | 12:11 | |
masak | it's like 'temp', but it rolls back on failure. | 12:12 | |
timotimo | neat | ||
and temp rolls back when the scope is left, right? | |||
12:12
xinming joined
|
|||
masak | right. | 12:12 | |
12:12
rindolf left
|
|||
masak | r: my $a = 42; sub foo { temp $a = 5; say $a; fail }; foo; say $a | 12:12 | |
p6eval | rakudo ffe441: OUTPUT«5 in method sink at src/gen/CORE.setting:10630 in block at /tmp/0WL7eA3xvO:1» | ||
timotimo | so an exception thrown in let will not cause the exception to propagate outwards, just to let the assignment fail? | 12:13 | |
whoops | |||
masak | r: my $a = 42; sub foo { temp $a = 5; say $a; fail }; foo or say "oh well"; say $a | ||
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Undeclared routine: or used at line 1» | ||
masak | r: my $a = 42; sub foo { temp $a = 5; say $a; fail }; foo() or say "oh well"; say $a | ||
p6eval | rakudo ffe441: OUTPUT«5oh well42» | ||
masak | r: my $a = 42; sub foo { let $a = 5; say $a; fail }; foo() or say "oh well"; say $a | ||
p6eval | rakudo ffe441: OUTPUT«5oh well42» | ||
masak | r: my $a = 42; sub foo { let $a = 5; say $a }; foo() or say "oh well"; say $a | ||
p6eval | rakudo ffe441: OUTPUT«55» | ||
masak | \o/ | ||
timotimo | oh, that's neat to have! | ||
masak | I think 'let' will be neatest to have in conjunction with code inside grammars. | 12:14 | |
timotimo | ooooooooooooooh | ||
masak | it's like a speculative assignment, which auto-unsets on backtracking. | ||
timotimo | hm, will it record a "previous value" when executed and do a new assignment when the block is left? | 12:18 | |
masak | yeah. using the UNDO phaser. | ||
timotimo | so if i have it in a lazy gather/take and update the value between gimme calls will that undo any other assignments in the meantime as well? | ||
12:20
kshamen joined
|
|||
lizmat | rn: say $?VM | 12:22 | |
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Variable '$?VM' is not declaredat /tmp/occV6E7Hdp:1------> say $?VM⏏<EOL> expecting any of: postfix» | ||
..niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file… | |||
lizmat | I guess a matter of NYI, right? | ||
anant | rn: say $*VM | 12:24 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«(Any)» | ||
..rakudo ffe441: OUTPUT«("name" => "parrot", "config" => {"git_describe" => "RELEASE_4_10_0", "sha1" => "08a70fe50d07fc932b5505b13f09fa74b01622e9", "a" => ".a", "ar" => "ar", "ar_extra" => "", "ar_out" => "", "archname" => "i486-linux-gnu-thread-multi-64int", "arflags" => "cr", "as" => "a… | |||
lizmat | so, does that mean S02L3014 is in error ? | 12:26 | |
anant | don't know .. I just remembered this discussion: irclog.perlgeek.de/perl6/2013-03-30#i_6647436 :) | 12:27 | |
moritz | lizmat: if you format it as S02:3014, the IR Clogs will automatically turn it into a link | ||
lizmat | (ack) | 12:28 | |
tadzik | we need a bot | ||
written in Perl 6 | |||
anant | r: my @a = (1.. 10); say 'match' if 4 ~~ @a; | ||
p6eval | rakudo ffe441: ( no output ) | ||
anant | r: my $a = (1 .. 10); say 'match' if 4 ~~ $a; | 12:29 | |
p6eval | rakudo ffe441: OUTPUT«match» | ||
anant | why? | ||
tadzik | r: my @a = (1..10); my $b = (1..10); @a.perl.say; $b.perl.say | 12:30 | |
p6eval | rakudo ffe441: OUTPUT«Array.new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)1..10» | ||
tadzik | @a does not have 4 elements, but 4 is in range 1..10 | ||
when you assign a range to an array container, it becomes a list of elements | |||
masak | anant: smartmatching against an array != smartmatching against a range | 12:31 | |
anant: see the table in S03. | |||
12:31
shamen left
|
|||
anant | ok. thanks! tadzik++ masak++ | 12:36 | |
Heather | Heather++ | 12:37 | |
Heather is egoist | |||
12:39
fgomez left
|
|||
masak | Heather: karma bots usually don't count self-incrementing. | 12:41 | |
Heather | damn it | 12:44 | |
r: say "Heather++" | 12:45 | ||
p6eval | rakudo ffe441: OUTPUT«Heather++» | ||
12:46
xinming left
|
|||
masak | heh :) | 12:46 | |
Heather++ | 12:47 | ||
Heather | masak++ | 12:48 | |
12:48
xinming joined
|
|||
Heather | masak can I check someones karma? | 12:48 | |
tadzik | karma Heather | 12:49 | |
:( | |||
12:49
tgt joined
|
|||
Heather | it's useless when I can't check it :( | 12:49 | |
masak .oO( if a karma is ++'d in the woods, and no-one is there to hear it... ) | 12:50 | ||
daxim | the universe does not tell your karma status, either! be a good *-ist, do what's right because it's right and not because of a reward | ||
Heather | daxim well it's boring motivation | 12:52 | |
time to run for me, see you tomorrow maybe | 12:55 | ||
12:56
Heather left
|
|||
anant | masak: What is meant by "lists are comparable"? Same type and number of elements? | 13:01 | |
masak | r: say (1, 2, 3, 4, 5) ~~ (1, *, 5) | 13:02 | |
p6eval | rakudo ffe441: OUTPUT«False» | ||
masak | r: say (1, 2, 3, 4, 5) ~~ (1, *, *, *, 5) | ||
p6eval | rakudo ffe441: OUTPUT«False» | ||
masak | huh. | ||
ISTR there was something about whatevers there... | |||
anant | r: my @a = (1..10); my @b = (91..100); say 'match' if @a ~~ @b | 13:03 | |
p6eval | rakudo ffe441: ( no output ) | ||
masak | (not that I much miss that feature, but still) | ||
anant | r: my @a = (1..10); my @b = (1..10); say 'match' if @a ~~ @b | ||
p6eval | rakudo ffe441: OUTPUT«match» | ||
FROGGS | .karma Heather | ||
.help | |||
yoleaux | FROGGS: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide. | ||
FROGGS | .commands | 13:04 | |
yoleaux | Commands are divided into categories: general, services, admin, api, demos. Use .commands <category> to get a list of the commands in each. | ||
FROGGS | .commands services | ||
yoleaux | Commands in services: acronym, add-command, beats, bitcoin, cat, command-help, del-command, dety, flip, geo, google, lastfm, leo, meow, moon, ngrams, nokiageo, nownext, o, oed, rb, republical, rot13, scm, shipping, suggest, swhack, thesaurus, ud, weather, yi, youtube. Use .help to get information about them. | ||
tadzik | .meow | ||
yoleaux | edgecats.net/cats/boop_sg.gif | ||
tadzik | best bot ever | 13:05 | |
13:06
PacoAir joined
|
|||
jnthn | .moon | 13:07 | |
yoleaux | Last Quarter (0.795) | ||
masak | yoleaux! | 13:09 | |
yoleaux | masak! | ||
masak | \o/ | ||
.botsnack | |||
yoleaux | :D | ||
masak | :D | ||
.ping | |||
yoleaux | There is no ping command; nor can this be construed as a response. | ||
masak | I see. | ||
yoleaux: I *like* you. | |||
jnthn | ... | ||
phew :) | |||
masak | .pick masak, moritz, mst | 13:10 | |
yoleaux | moritz | ||
masak | dang. :) | ||
jnthn | .thesaurus thesaurus | ||
yoleaux | thesaurus — synonyms: dictionary, synonymicon | ||
13:10
bluescreen10 joined,
tgt left
|
|||
jnthn | synonymicon :D | 13:10 | |
masak is a synonymiconoclast | 13:11 | ||
13:26
PacoAir left
|
|||
tadzik | I don's see why one would name a dictionary after a dynosaur | 13:26 | |
13:26
PacoAir joined
13:27
ggoebel joined
13:28
SamuraiJack_ left
13:30
PacoLinux joined
13:32
kaleem left
13:33
SamuraiJack joined
13:37
kaare_ joined
13:39
census joined
13:44
skids joined
13:49
jokar joined
13:50
bbkr_ joined,
bbkr left
|
|||
FROGGS | jnthn: you had a chance to look at my comment? github.com/rakudo/rakudo/commit/ff...nt-2938579 | 13:53 | |
13:54
jokar left,
PacoLinux left
|
|||
FROGGS | .help general | 13:55 | |
yoleaux | FROGGS: Sorry, no help is available for general. | ||
FROGGS | .commands general | ||
yoleaux | Commands in general: ask, at, botsnack, buck, bytes, choose, in, msg, on, pick, ping, seen, supercombiner, t, tell, to. Use .help to get information about them. | ||
FROGGS | hmmm, somebody should add karmacounting :o) | 13:56 | |
13:58
anant left
|
|||
masak | .help buck | 13:59 | |
13:59
colomon joined
|
|||
yoleaux | Is it BUCK yet? | 13:59 | |
masak | I... I don't know. you tell me. | ||
arnsholt | What happened to phenny? | 14:00 | |
tadzik | she only lived once | 14:01 | |
masak | classical rookie mistake. | 14:02 | |
colomon | but... but... Ian Fleming told me you only live twice! | 14:04 | |
masak | in retrospect, that may have been a slight exaggeration. | 14:06 | |
most people only live once. | |||
some, not even once. | |||
14:07
PacoLinux joined,
PacoLinux left
|
|||
masak | (if those reincarnation fellas turn out to be right, I'll make sure to come back and let you know) | 14:07 | |
14:11
M_o_C joined
14:15
seq99` left
|
|||
colomon | masak: actually, in the book there is a poem explaining the phrase: "You only live twice / Once when you are born / And once when you look death in the face." (from memory, may not be exact.) | 14:17 | |
14:17
ilbot6 left
|
|||
masak | nice. | 14:17 | |
that makes a whole lot more sense than being ejected from a boat in a coffin which subsequently turns into a water scooter. | 14:18 | ||
jnthn | FROGGS: Doing the wrong thing in a different wrong way doesn't make it less wrong :P | 14:19 | |
14:19
drbean left
|
|||
jnthn | FROGGS: To fix up package stuff we really need to take the current $*PACKAGE.WHO and install soemthing into it | 14:19 | |
colomon | masak: I believe it was supposed to be a haiku in the "original" Japanese. (as far as I know, Fleming made it up) | ||
jnthn | I know why the change helps, but it doesn't actually solve the underlying problem. | 14:20 | |
masak | damn you architects with your underlying problems :P | 14:21 | |
14:22
drbean joined
|
|||
FROGGS | jnthn: oaky | 14:25 | |
14:26
anant joined,
Patterner left
14:28
Psyche^ joined,
Psyche^ is now known as Patterner
14:31
drbean left
14:32
drbean joined
14:39
raiph joined,
atroxaper joined
14:43
frdmn left
14:44
spider-mario joined
14:49
awwaiid left
14:52
M_o_C left
14:55
awwaiid joined,
census left
14:57
FROGGS left
14:58
census joined
15:15
colomon left
15:18
colomon joined
15:20
colomon left
15:24
colomon joined
15:31
colomon left,
anant left
15:32
jlaire left
15:35
anant joined
15:38
fhelmberger left
15:43
rindolf joined,
anant left
|
|||
pmichaud | is anyone able to reach rakudo.org ? | 15:45 | |
xinming | pmichaud: Down here. | 15:46 | |
spider-mario | I can’t | ||
15:46
frdmn joined
|
|||
xinming | I mean, I can't here | 15:46 | |
pmichaud | okay, looks like my server's down for some reason. | ||
spider-mario | isup.me/rakudo.org | ||
I mean isup.me/rakudo.org | |||
arnsholt | pmichaud: mtr fails at a node belonging to defenderhosting.com | 15:47 | |
From Norway | |||
spider-mario | same from France | ||
15:49
jlaire joined
15:52
domidumont left
15:54
jlaire left,
toddr joined
15:55
jlaire joined,
colomon joined,
daxim left
15:56
census left
16:04
FROGGS joined
16:14
SamuraiJack left
|
|||
FROGGS | std: use v5; say "abc".ord("A") | 16:15 | |
p6eval | std 86b102f: OUTPUT«ok 00:01 53m» | ||
[Coke] | .u dquo | 16:19 | |
yoleaux | No characters found | ||
pmichaud | rakudo.org should be reachable again | 16:20 | |
[Coke] | .u U+1234 | ||
yoleaux | U+1234 ETHIOPIC SYLLABLE SEE [Lo] (ሴ) | ||
[Coke] | .u ⁂ | 16:21 | |
yoleaux | U+2042 ASTERISM [Po] (⁂) | ||
[Coke] | there's a hyperwhatever for you. :P | 16:22 | |
.u U+2614 | 16:23 | ||
yoleaux | U+2614 UMBRELLA WITH RAIN DROPS [So] (☔) | ||
colomon | that's what we need today, nothing but rain, rain, rain on I-75. | 16:27 | |
colomon is wondering how a non-degenerate torus get singularities.... stupid $work | 16:30 | ||
16:33
Chillance joined
|
|||
masak .oO( Obelism fell into three cauldrons of magic potion when he was a baby ) | 16:36 | ||
16:38
colomon left,
domidumont joined
|
|||
japhb_ | Is there an easy way to take a variable that you suspect is a native int, num, or str ... but might be something else like a Coro or Sub ... and check if it is one of those primitive types? I first thought of using nqp::objprimspec, but that wants a real type, and I'm not sure how to get the type directly from a native variable (since pir::typeof__SP just gives you a string) | 16:39 | |
16:40
colomon joined
|
|||
japhb_ is considering special casing "Integer", "String", and "Float", but that's really ucky, and non-portable. | 16:40 | ||
16:40
colomon left
16:47
rindolf left
16:50
colomon joined
|
|||
japhb_ listens intently to the sound of silence | 16:50 | ||
16:51
alester left
|
|||
[Coke] | r: my int $x = 3; say $x.WHAT; | 16:54 | |
p6eval | rakudo ffe441: OUTPUT«(Int)» | ||
[Coke] | r: my int $x = 3; say nqp::typeof($x); | ||
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Error while compiling op typeof: No registered operation handler for 'typeof'» | ||
[Coke] | r: my int $x = 3; say nqp::typecheck($x); | 16:55 | |
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Error while compiling op typecheck: No registered operation handler for 'typecheck'» | ||
[Coke] | nqp: my $x := 3; say(nqp::typecheck($x)); | ||
p6eval | nqp: OUTPUT«Error while compiling block : Error while compiling op call: Error while compiling op typecheck: No registered operation handler for 'typecheck'current instr.: '' pc 46249 (src/stage2/QAST.pir:16990) (src/stage2/QAST.nqp:2794)» | ||
[Coke] | nqp: my $x := 3; say(nqp::isa($x,int)); | 16:56 | |
p6eval | nqp: OUTPUT«Error while compiling block : Error while compiling op call: Error while compiling op isa: No registered operation handler for 'isa'current instr.: '' pc 46249 (src/stage2/QAST.pir:16990) (src/stage2/QAST.nqp:2794)» | ||
[Coke] | ok, I give up. ;) | ||
16:57
atroxaper left
|
|||
moritz | nqp::istype iirc | 16:58 | |
japhb_ | moritz, that lets you see if something is a particular type -- but how do you even refer to the native types as far as nqp::istype is concerned? It's the same problem nqp::objprimspec has | 16:59 | |
17:03
dakkar left
|
|||
diakopter | r: say .DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.DUMP.chars | 17:05 | |
p6eval | rakudo ffe441: OUTPUT«(timeout)» | ||
diakopter | should be only 2**19 | 17:06 | |
+1 | |||
moritz | japhb_: it seems that the "is something a primitive type" is the exact opposite of asking "is something a 6model object"? | 17:09 | |
hm, not quite | |||
timotimo | is there some low hanging rakudo fruit i could sink my teeth into this fine evening? | 17:11 | |
17:11
SamuraiJack joined
17:12
jnthn joined
|
|||
diakopter | wb | 17:12 | |
masak | jnthn! \o/ | ||
jnthn ain't sure whether to blame screen or irssi... | |||
japhb_ | moritz, yeah, that tiny difference is the one I have to deal with. :-) | 17:13 | |
japhb_ is currently in the strange situation that a primitive type that appears as an object attribute will DUMP just fine, because I can get the type I need from Attribute.type, but I can't reliably detect a primitive typed *variable* right now | 17:14 | ||
jnthn | Where are you getting it from? | 17:15 | |
Generally, stuff auto-boxes... | |||
japhb_ | my int $var; ... DUMP($var) | 17:16 | |
In order to be able to show nulls, RPAs, and such, DUMP() has a *very* raw view of what it receives. | |||
jnthn | What's the signature of DUMP? | ||
Oh... | 17:17 | ||
Are you using the apture nqp:: ops? | |||
japhb_ | Right now the above would get you: Integer<1>(...) | ||
jnthn | *capture | ||
japhb_ | Yes, have to. | ||
(Well, as far as I understand things, anyway.) | |||
jnthn | You're aware there's a captureprimspec? | ||
Or something like that... | |||
japhb_ | No I wasn't! | ||
jnthn | There is ;) | ||
japhb_ | Damn, I should have thought to look for more capture* ops, duh. | 17:18 | |
jnthn | I'm pretty sure there is anyway... | ||
As think I needed it for the multi-dispatcher... | |||
japhb_ | Ooh, 'git grep nqp::capture' turned up some interesting matches | 17:19 | |
nqp::captureposprimspec | |||
jnthn | That one | ||
japhb_ | And there are others that I like for other nefarious purposes, like nqp::captureexistsnamed. ;-) | ||
Thanks, jnthn++ ! | 17:20 | ||
17:31
anant joined
|
|||
arnsholt | japhb_: If it's any consolation, I'm hoping that RPAs will go away soon-ish =) | 17:31 | |
17:31
djanatyn left,
djanatyn joined
|
|||
japhb_ | arnsholt, just when I get RPA and QRPA handled, you throw another into the mix, eh? ;-) | 17:32 | |
arnsholt | Well, I'm replacing them with sixmodel objects, so hopefully it won't be too bad =) | 17:33 | |
17:34
asogani joined
17:37
djanatyn left,
fgomez joined,
djanatyn joined
|
|||
japhb_ | arnsholt, ah, good. :-) | 17:47 | |
17:49
colomon left
|
|||
dalek | rl6-roast-data: e45f765 | coke++ | / (3 files): today (automated commit) |
18:03 | |
18:04
colomon joined
|
|||
raiph | speakerdeck.com/djerius/perl-and-p...modern-era # notes for tadzik et al | 18:13 | |
18:18
dvj joined
18:23
SamuraiJack left
18:36
census joined
|
|||
dalek | ast: fdb3d68 | dagurval++ | S02-names-vars/perl.t: Added test for Buf |
18:59 | |
[Coke] | rpn: my Buf $a = "asdf".encode(); eval($a.perl).decode("ascii"); | 19:06 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: No value for parameter '$enc' in 'Str.encode' at /home/p6eval/niecza/lib/CORE.setting line 0 (Str.encode @ 1)  at /tmp/8w88P0SY0P line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)  at /home/p6e… | ||
..rakudo ffe441: ( no output ) | |||
..pugs: OUTPUT«*** No such method in class Str: "&encode" at /tmp/35cTcuyr1v line 1, column 8-28» | |||
[Coke] | rpn: my Buf $a = "asdf".encode(); say eval($a.perl).decode("ascii"); | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: No value for parameter '$enc' in 'Str.encode' at /home/p6eval/niecza/lib/CORE.setting line 0 (Str.encode @ 1)  at /tmp/3UcJNXloxf line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)  at /home/p6e… | ||
..pugs: OUTPUT«*** No such method in class Str: "&encode" at /tmp/bm1eAaqyab line 1, column 8-28» | |||
..rakudo ffe441: OUTPUT«» | |||
[Coke] | is dagurval on #perl6 | ||
? | 19:07 | ||
dvj o/ | |||
It's me | |||
[Coke] | looks like that test fails in rakudo, niecza, and pugs. Can you fudge it so it won't break the daily test run? | ||
masak | dvj: oh hai | ||
[Coke] | (skip on niecza & pugs, todo on rakudo) | ||
dvj | ok, I'll try :) | 19:08 | |
masak: hello! | |||
moritz | r: my Buf $a = "asdf".encode(); say $a.perl | ||
p6eval | rakudo ffe441: OUTPUT«Buf.new()» | ||
moritz | oh, I see why that'd fail :-) | ||
dvj | should i fudge with "todo" on rakudo, and skip on pugs and niecza? | 19:12 | |
(since rakudo doesn't "fail", bug gives wrong result) | 19:13 | ||
[Coke] | Yes. always use todo when possible. | 19:14 | |
(otherwise makes it hard to know when we start passing.) | |||
dalek | ast: 8d535a2 | dagurval++ | S02-names-vars/perl.t: fudge |
19:17 | |
[Coke] | dvj++ #perfect. | 19:18 | |
dvj | yay! | ||
19:20
renormalist joined
19:21
M_o_C joined
19:22
domidumont left
19:27
colomon left
19:28
johnjohn101 joined
|
|||
moritz | $ ./perl6 -e 'say eval("asdf".encode().perl).decode' | 19:28 | |
asdf | |||
r: say Buf | 19:29 | ||
p6eval | rakudo ffe441: OUTPUT«Cannot look up attributes in a type object in method list at src/gen/CORE.setting:7410 in method gist at src/gen/CORE.setting:7420 in sub say at src/gen/CORE.setting:7646 in block at /tmp/UOCPL8gYJO:1» | ||
moritz | and my commit fixes this one too :-) | ||
but the test still fails | 19:30 | ||
because asdf ne adsf :-) | 19:31 | ||
I'm going to fix the test too | |||
dalek | kudo/nom: 983efea | moritz++ | src/Perl6/Actions.pm: make for-loops eager again lazy for-loops violated too many expectations, and I do not see the point in having it lazy, and then jumping through many hoops just to make it eager again in 98% of all cases. If you want a lazy loop, please use map. |
||
kudo/nom: 5871a49 | moritz++ | / (2 files): Merge branch 'nom' of git://github.com/rakudo/rakudo into nom |
|||
[Coke] | moritz++ | ||
kudo/nom: 9f98590 | moritz++ | src/core/Any.pm: give sub item an explicit proto |
|||
[Coke] bets moritz didn't mean to do that! | 19:32 | ||
dalek | ast: ea0bc1d | moritz++ | S02-names-vars/perl.t: fix Buf.perl test, and unfudge for rakudo |
||
PerlJam | moritz++ | ||
tadzik | moritz++ | ||
PerlJam | [Coke]: there's always a little chaos when you're making progress :) | 19:33 | |
moritz | forgiveness > permission | 19:35 | |
19:37
anant left,
asogani left
19:39
M_o_C left
|
|||
masak | moritz++ # eager for | 19:40 | |
19:40
fgomez left
|
|||
masak | now I don't have to hate the "Cannot return from already returned-from routine anymore" :D | 19:40 | |
s/ anymore"/" error message anymore/ | |||
timotimo | bah | 19:42 | |
a parse is "ok" without perl6-debug, but "not ok" with perl6-debug | |||
(relating to an ast, it seems) | |||
japhb | moritz, is it possible to specify 'lazy for' and have it work? | 19:47 | |
[Coke] | p: say say say "what you want?" | ||
p6eval | pugs: OUTPUT«what you want?11» | ||
moritz | japhb: not yet, but it's certainly possible to make it work | 19:48 | |
at least if me make 'lazy' a statement prefix | 19:49 | ||
r: say lazy 1 | |||
p6eval | rakudo ffe441: OUTPUT«===SORRY!===Undeclared routine: lazy used at line 1» | ||
moritz | which it is, in STD.pm6 | 19:50 | |
19:50
johnjohn101 left
|
|||
moritz tests a patch which does that | 19:53 | ||
v6asns.ripe.net/v/6?s=_ALL;s=_EU # not as bad as thought | 19:54 | ||
[Coke] reads a quote about the book _Trial of the Clone_ "As an added bonus, "nearly all the proper names in the book are dirty words in Czech." | 19:55 | ||
" | |||
[Coke] imagines that would go over well with this crowd. | |||
19:55
asogani joined
|
|||
moritz looks at jnthn, masak and tadzik | 19:55 | ||
japhb | [Coke], that's pretty awesome. :-) | 19:56 | |
[Coke] | it's a choose your own adventure RPG game, to start with. | ||
19:57
asogani_ joined
|
|||
japhb | moritz, gah, if you add United States to that graph, it's darned near a reflection of the EU around the All Countries average. | 19:58 | |
Depressing, that. | |||
tadzik looks back at moritz | 19:59 | ||
lazy for, eh? | 20:00 | ||
pmichaud | good afternoon, #perl6 | ||
tadzik | Maybe I'm missing something, but I don't see where you'd want a lazy for | ||
good evening pmichaud | |||
moritz | tadzik: and dirty words in Czech | ||
tadzik | oh, I don't know those :) | ||
moritz | good pm, pm | ||
tadzik | except when jnthn dares me to say "I'm looking for something to drink" in Polish, because it's dirty in Slovak :P | 20:01 | |
jnthn | Dirty words in Czech? Hm, I know some Slovak ones... | ||
tadzik: hahaha! | |||
o/ pmichaud | |||
japhb | o/ pmichaud | ||
masak | o/ pmichaud | 20:02 | |
pmichaud | o/ self | ||
20:06
woolfy left,
rindolf joined
|
|||
japhb_ | r: sub foo(|) { my Mu $arg := nqp::captureposarg(nqp::usecapture(), 0); say nqp::p6box_i($arg); }; my int $i = 42; foo($i); | 20:06 | |
20:06
pupoque joined
|
|||
p6eval | rakudo ffe441: OUTPUT«Can only use repr_unbox_int on a SixModelObject in sub foo at /tmp/CyfQ_8BXXa:1 in block at /tmp/CyfQ_8BXXa:1» | 20:06 | |
japhb_ | r: sub foo(|) { my Mu $arg := nqp::captureposarg(nqp::usecapture(), 0); say nqp::p6box_n($arg); }; my num $n = 12345e0; foo($n); | 20:07 | |
p6eval | rakudo ffe441: OUTPUT«12345» | ||
japhb_ | r: sub foo(|) { my Mu $arg := nqp::captureposarg(nqp::usecapture(), 0); say nqp::p6box_s($arg); }; my str $s = "a string"; foo($s); | ||
p6eval | rakudo ffe441: OUTPUT«a string» | ||
japhb_ | OK, so why the funny business for int's, jnthn? :-) | ||
japhb_ is trying to imagine where the repr_unbox_int is happening up there. | 20:08 | ||
r: sub foo(|) { my Mu $arg := nqp::captureposarg(nqp::usecapture(), 0); say 'Still OK here'; say nqp::p6box_i($arg); }; my int $i = 42; foo($i); | |||
p6eval | rakudo ffe441: OUTPUT«Still OK hereCan only use repr_unbox_int on a SixModelObject in sub foo at /tmp/7K_Pmo9ASq:1 in block at /tmp/7K_Pmo9ASq:1» | ||
japhb_ | *sigh* | ||
jnthn | japhb_: If you have a native int, you should use nqp::captureposarg_i or so | 20:09 | |
japhb_ | jnthn, OK, fair enough ... but why does only the int case fail in the above, and where is the unbox happening? | ||
jnthn | Good question. They're all "wrong" in some sense, I suspect you're getting lucky/unlucky out of Parrot v-table stuff clashing with 6model stuff. | 20:11 | |
None of them woulda worked out for you on the JVM. | |||
japhb | Oh, interesting. | ||
OK, fair enough. | |||
jnthn | Or all of them. | ||
japhb | Getting DUMP to work on the JVM is going to be very enlightening. :-) | ||
jnthn | The 6model stuff very clearly separates coercion (a HLL thing) from boxing/unboxing (a REPR thing) | 20:12 | |
Parrot's vtables confuse/conflate the two. | |||
japhb | nodnod | ||
jnthn | captureposarg on the JVM will, iirc, whine if you use the incorrect op | 20:13 | |
On Parrot it tries to coerce it, but probably winds up coercing it to a Parrot Integer or so. | |||
timotimo | jnthn: any clue about this? 'make' seems to not work in perl6-debugger | ||
jnthn | Well, box... | ||
timotimo: perl6-debugger? | |||
japhb | Do you say nqp::p6box_i(nqp::captureposarg_i($capture, $arg_num)), or is the outer box then redundant? | 20:14 | |
jnthn | I think these days it will do the right thing without the outer box, provided you're in Perl 6 code. | ||
'cus Perl 6 overrides the boxing operations for QAST::Compiler with its own idea of how boxing works. | 20:15 | ||
20:15
kaare_ left
|
|||
japhb | OK, I'll try it both ways and check for sure. :-) | 20:17 | |
timotimo | jnthn: indeed. | ||
jnthn | timotimo: rakudo-debugger? Anyway, not sure why it wouldn't work | 20:19 | |
japhb_ | timotimo, what error are you getting? | ||
20:20
fgomez joined
|
|||
timotimo | i was accessing an .ast from a submatch and in the debugger i get "invalid use of thingie in numeric context" | 20:21 | |
or something | |||
(but without the debugger i get a proper value there) | |||
so maybe "make" isn't working correctly? | 20:22 | ||
hm. inside a rule, there should be backtracking, no? | |||
20:22
spider-mario left
20:23
kurahaupo joined
|
|||
moritz | except if stuff forces backtracking | 20:23 | |
like minimal quantifiers (.+?) | |||
timotimo | you mean "forbids", no? | ||
moritz | no | ||
timotimo | oh, i see | ||
i guess i'll just quickly paste my stuff | 20:24 | ||
paste.ee/p/TmPMu - i'm doing ipv6 grammar just for practice and learning | 20:25 | ||
and what happens is this: it likes parsing the first part of an ipv4 part as a "partial" ipv6 thing and then doesn't think to backtrack and match it using the ipv4 regex instead | 20:26 | ||
maybe i need a negative lookahead for "." in the ipv6 thing. | |||
pmichaud | rule implies token implies no backtracking | 20:27 | |
timotimo | oooh! | ||
dalek | kudo/extend-dump: 1d11ea8 | (Geoffrey Broadwell)++ | src/core/Mu.pm: DUMP() native primitive types |
||
timotimo | oh yes, now it backtracks lots! :) | ||
pmichaud | you can use ! to force backtracking, though. | 20:28 | |
also, unless you're expecting addresses to contain valid spaces, you might want 'token' instead of 'rule' | 20:29 | ||
japhb | .oO( My kingdom for a faster setting compile ) |
||
pmichaud | japhb: augment can be your friend :-) | 20:30 | |
20:30
araujo left
|
|||
japhb | pmichaud, the DUMP stuff runs into so many edge cases as it is, I don't want to add that into the mix. Besides, I'm not sure it would actually work in the first place, what with methods and subs calling each other mutually recursively. | 20:32 | |
timotimo | pmichaud: can you tell me where exactly an ! is allowed? | 20:33 | |
can i write <foo>! and it will backtrack over the invocation of <foo> if needed? | |||
japhb | augment sure was a help when developing Str.Numeric though .... | ||
pmichaud | timotimo: it's a modifier, like ? | ||
so yes, <foo>! means we can backtrack over <foo> | |||
oh, wait, it's :! | 20:34 | ||
as in <foo>:! | |||
see "Backtracking control" in S05 | 20:35 | ||
japhb | Though frankly, I think I want a faster setting compile even more than I normally would for just the current pain, because making setting compile faster would probably mean Rakudo was just faster in general; it exercises quite a bit. | ||
dalek | kudo/extend-dump: 76e1719 | (Geoffrey Broadwell)++ | src/core/Mu.pm: The previous commit's native primitive DUMP handling doesn't need the p6box_* operations |
20:38 | |
20:38
yx left
|
|||
timotimo | thanks :) | 20:39 | |
20:42
vaelxon joined
20:43
labster joined
|
|||
labster | good postnoon, #perl6 | 20:43 | |
20:43
robinsmidsrod left
|
|||
timotimo | my backtracking isn't working though | 20:44 | |
i should look at the docs | |||
20:45
robinsmidsrod joined
|
|||
sorear | o/ labster | 20:49 | |
masak | labster! \o/ | ||
timotimo | <after \:> should only succeed if there is a : before the current cursor position, isn't that right? | 20:51 | |
masak | timotimo: why not <?after \:> ? | 20:52 | |
timotimo | because i don't know :) | ||
20:52
yx joined
|
|||
moritz | but yes, that's what after does | 20:53 | |
20:53
kshamen left
|
|||
timotimo | in that case i'm very confused about the behavior of the grammar | 20:53 | |
ooooooh, now i get it | 20:54 | ||
20:55
asogani left
|
|||
timotimo | the lookahead assertion i added to make backtracking faster bit me in the butt | 20:55 | |
20:55
yx left,
yx joined
|
|||
labster | \\o/ sorear and masak | 20:56 | |
masak | \o// | ||
dalek | rakudo/extend-dump: 983efea | moritz++ | src/Perl6/Actions.pm: | 20:57 | |
rakudo/extend-dump: make for-loops eager again | |||
rakudo/extend-dump: | |||
rakudo/extend-dump: lazy for-loops violated too many expectations, and I do not see the point | |||
rakudo/extend-dump: in having it lazy, and then jumping through many hoops just to make it | |||
20:57
dalek left
|
|||
labster | r: say '/foo/bar/baz/' ~~ m/^ [ $<dirname>=(.* '/'+)? ]? $<basename>= (<-[\/]>+) '/'* $ / | 20:58 | |
20:58
dalek joined,
ChanServ sets mode: +v dalek
|
|||
p6eval | rakudo 99e27f: OUTPUT«「/foo/bar/baz/」 dirname => 「/foo/bar/baz/」 dirname => 「/foo/bar/」 basename => 「baz」» | 20:58 | |
20:58
SHODAN left
|
|||
labster | okay, why do I get two copies of dirname when the match only succeeds once? | 20:58 | |
20:59
skids left,
asogani_ left
|
|||
masak | huuhhnn. | 21:00 | |
wut. | |||
21:00
Shozan joined
|
|||
masak | I suspect a backtracking-related glitch. | 21:00 | |
21:01
census left
|
|||
timotimo | strange. the next character is a :, and one of the LTM alterations i have starts with ':', but it just jumps into the one matching only $ instead and then backtracks back to the beginning happily | 21:02 | |
timotimo tries || instead of | | |||
that does work :| | 21:03 | ||
japhb | Anyone object to me merging extend-dump at this point? It needs more tests, and I haven't run through the entire set of Perl 6 standard classes looking for anomalies yet, but I'd be happy to trade code for failing tests. I'd like to get more eyes on this .... | ||
masak submits labster's rakudobug | 21:04 | ||
r: say ('/foo/bar/baz/' ~~ m/^ $<dirname>=(.* '/'+)? $<basename>=(<-[\/]>+) '/'* $ /).keys | |||
p6eval | rakudo 99e27f: OUTPUT«dirname basename» | ||
timotimo | only one more failing test for my grammar \o/ | ||
and then i'll just have to write it a bit prettier | 21:05 | ||
masak | labster: .gist shows double 'dirname' keys, but .keys and .perl don't | ||
japhb: what does extend-dump do? | 21:08 | ||
21:08
census joined
|
|||
[Coke] wonders why FROGGS github comment came through as misformatted HTML. | 21:09 | ||
moritz | masak: there's a .DUMP method that helps to debug lazy lists; the branch extends it. | 21:10 | |
japhb | masak: Makes DUMP() handle a lot more cases, including arbitrary object classes, native primitives, native non-primitives (Coro, for example), circular data structures, aliased objects, etc. | 21:11 | |
labster | r: say ('/foo/bar/baz/' ~~ m/^ $<dirname>=(.* '/'+)? $<basename>=(<-[\/]>+) '/'* $ /)<dirname>.perl #but this is dirname with two items still | ||
p6eval | rakudo 99e27f: OUTPUT«(Match.new(orig => "/foo/bar/baz/", from => 0, to => 13, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "/foo/bar/baz/", from => 0, to => 9, ast => Any, list => ().list, hash => EnumMap.new()))» | ||
timotimo | $<values>=[ 0 | <[1..9]><[0..9]> ** 0..2 ] ** 4 % '.' - this part gives me this $/.perl: Match.new(orig => "::ffff:192.168.255.256", from => 7, to => 22, ast => Any, list => ().list, hash => EnumMap.new()) | ||
why is the list ().list and not [192, 168, 255, 256]? | 21:12 | ||
masak | japhb: sounds great. you have my lack of objection to merge. :) | ||
timotimo: because List != Array ? | |||
timotimo | okay, then why isn't it (192, 168, 255, 256).list? | 21:13 | |
oooh, i did $<values>.list>>.Str and got the values i wanted out of it | 21:14 | ||
moritz | timotimo: becaues you don't have any positional captures in the regex that would produce values in .list | ||
maybe try ( ) instead [ ] around the RHS? | |||
dalek | Heuristic branch merge: pushed 31 commits to rakudo/nom by japhb | 21:15 | |
japhb_ | masak: Your explicit lack of objection, plus everyone else just plain not objecting means it's now merged. :-) | 21:17 | |
masak | japhb_: I'll be around, providing more lack of services, should you need them. | 21:18 | |
japhb_ | EXCELLENT. | ||
I feel wonderfully underserved. | |||
masak | I live to not serve. | ||
21:19
dmol left
|
|||
japhb_ | BTW, current (literal and native primitive only) tests are in t/02-rakudo/dump.t, should anyone wish to engage in the previously mentioned code-for-failing-tests transaction. | 21:20 | |
timotimo | moritz: thanks for the suggestion the () did it :) | 21:27 | |
21:37
araujo joined,
araujo left,
araujo joined
21:42
erkan left
|
|||
timotimo | is there a good reason to not call >>. "double dash dot"? | 21:43 | |
tadzik | > is not a dash, ^ is | 21:44 | |
timotimo | oh? | 21:45 | |
tadzik | or so I think | ||
timotimo | well, technically i know - as dash | ||
huf | ^ is hat | ||
> is waka | |||
tadzik | > > eh eh | ||
timotimo | hehe. | ||
this is africa~ | |||
masak | ^ is a caret, I think. | 21:46 | |
huf | if you want to be posh, sure | ||
masak | you can call it a hat, if you want :) | ||
japhb_ | caret is correct, and yes, I've heard hat. | 21:48 | |
timotimo, - is a hyphen. The thing you get from — in HTML is a dash. | |||
In pure ASCII, a dash is generally rendered -- | 21:49 | ||
huf | and yet, the lyrics go "kill dash nine" | ||
everything is everything | |||
21:50
PacoAir left
|
|||
japhb_ | huf, I will freely admit that when speaking shell, people generally use 'dash' when 'hyphen' is correct; though I suppose you could see - as being an n-dash (narrow or 'n'-width dash) | 21:50 | |
I say 'hippity-hop' for http:// | |||
and 'dub dub dub' for 'www.' | 21:51 | ||
Just easier that way. :-) | |||
timotimo | huf: yes, kill dash nine is how i remember 15 from 9. | ||
masak | 'hippity-hop'. how lovely. | ||
masak adopts that | |||
huf | :) | 21:52 | |
timotimo | i like hippity-hop dub dub dub | 21:53 | |
22:00
bluescreen10 left
|
|||
tadzik | I thought ^ is a dash because is't like "daszek" | 22:02 | |
yolo: "daszek"? | |||
er | |||
yoleaux: "daszek"? | |||
ah, * | 22:03 | ||
japhb_ | * is 'asterisk' or colloquially 'splat' | ||
tadzik | masak: why not "hot potato", and "hot potatoes" for https? :) | ||
japhb_ | tadzik, would you include the :// in that definition? | 22:04 | |
masak | tadzik: because 'hippity-hop dub dub dub' :) | ||
tadzik | japhb_: I don't know :// | 22:06 | |
and hippity-hops :P | |||
time to sleep & g'night | 22:07 | ||
japhb_ | tadzik, g'night! | ||
masak | 'night, tadziku | 22:08 | |
felher | o/ tadzik | ||
22:12
erkan joined,
erkan left,
erkan joined
22:15
rindolf left
22:18
census left
22:20
skids joined
22:25
census joined
|
|||
japhb_ | .mangle "This is a test." | 22:27 | |
yoleaux | "Thank you, Director . " | ||
japhb_ | OK, that qualifies, all right. | ||
22:27
tgt joined
|
|||
japhb_ | .privacy | 22:32 | |
yoleaux | japhb_: This channel is public. When I am asked when I last saw you, I may repeat things you say and what time it was when you said them. | ||
masak | .mangle "Good night, #perl6." | 22:33 | |
yoleaux | " Good night # perl6 . " | 22:34 | |
masak | 'night, #perl6 :) | ||
22:34
census left
22:36
census joined
|
|||
japhb | 'night, masak | 22:39 | |
pmichaud | what's the story with DUMP, ooc? | 22:52 | |
japhb | pmichaud, story in what sense? | ||
pmichaud | I didn't mind so much when it was in a branch, but moving it to nom means a lot of my debugging tools for List stuff has now gone away. | ||
japhb | pmichaud, there should be nothing that you used to have that is not there now -- it was intended as purely an expansion of power. | 22:53 | |
What is missing? | |||
pmichaud | I didn't see the WHERE stuff in the initial review... but now I see it. | ||
I think I would (have) prefer(red) to have a new DUMP method stream done, rather than modify the existing one. None of it is spec anyway (which is why it's all-caps) | 22:54 | ||
i.e., could have a DUMP2 or something like that sit alongside the existing DUMP chain, then migrate over when the new one is complete | 22:55 | ||
japhb | Yeah, the major thing that changed there is that instead of handing you arbitrary (signed decimal!) addresses, it keeps a map of short integers to addresses, and uses them to notice when something has gone circular (like List <-> ListIter), as well as to produce easy to read, repeatable, testable output | ||
22:55
tgt left
|
|||
japhb | pmichaud, I did not create something new because A) it had bitrotted a bit, and B) if it was a pure enhancemet, I didn't see the issue. | 22:56 | |
I feel like I missed something that you want, but don't have now, and I don't know what it is. | |||
pmichaud | it's the same sort of reason that masak++ doesn't want us moving from RT to github issues :) | 22:57 | |
japhb | Ah! Familiarity with existing output! | ||
pmichaud | whenever I get back to working on list stuff, I'll now have to figure out how the new one works, instead of being able to rely on what I knew of the old one. | ||
22:57
pupoque left
|
|||
pmichaud | but, no problem, I can do that. | 22:57 | |
japhb | I think you'll find it pretty similar to the old one -- just with added smarts. | ||
pmichaud | yeah, I'll just be prepared that I may have some additional re-acquaintance time. | 22:58 | |
22:58
tgt joined
|
|||
pmichaud | I also wonder if the better pattern would be to have something that can do dump by pure external inspection, rather than having to instrument all of the base classes with it. | 22:59 | |
(I built things using a DUMP method in the base classes because the introspection facilities weren't all present at the time I started.) | 23:00 | ||
japhb | pmichaud, next time you build, try: perl6 -e 'my $map := (1 ... *).map: 2 + *; say DUMP($map);' I would be very interested to know if you find this problematic. | ||
(and exactly what bothers you) | |||
pmichaud, it's doing a lot of introspection now. | |||
pmichaud | I'm only bothered by having things shift out from under me unexpectedly. I can't say whether the new one will be adequate or not (and can't say anytime soon) | 23:01 | |
japhb | Only six classes have non-trivial changes: Mu (which does almost all the work), Parcel (circularity saw, though I may have made that unneeded very recently), List, ListIter, MapIter, GatherIter (to give more readable output than default introspection). | ||
The other classes (Bool, Str, Numeric, as I recall), are there to turn *off* the introspection, because otherwise you get deep details about the implementation of a number that you don't care about most of the time. | 23:02 | ||
pmichaud | as I said, it's much like masak++ and RT vs GitHub issues. | 23:03 | |
japhb | I totally get that. | ||
pmichaud | I'm not saying the implementation is bad or inadequate. | ||
japhb | I feel bad that I moved your cheese; I wasn't intending to. :-) | ||
pmichaud | I'm saying don't feel bad and keep moving. | ||
japhb | roger that. | 23:04 | |
pmichaud | I definitely don't want progress blocking on me these days :) | ||
and what you're describing sounds like very good progress. | |||
japhb | I can say that I learned *a lot* while writing it. :-) | ||
pmichaud | if I run into issues, I'm sure we can figure out ways to deal with them. | ||
japhb | Do let me know, and I'll try to help as well. | 23:05 | |
pmichaud | look for me again in a few weeks :) | ||
japhb | :-) | ||
[Coke] | pmichaud: ~~ | 23:22 | |
labster | pmichaud: Since you replied to the bug masak reported for me, can you tell me if this works according to spec? | 23:24 | |
r: '/foo/bar/baz/' ~~ m/^ $<dirname>=(.* '/'+)? $<basename>=(<-[\/]>+) '/'* $ /; say $/<dirname>.WHAT; say $/<basename>.WHAT | |||
p6eval | rakudo 604986: OUTPUT«(Parcel)(Match)» | ||
labster | and $/<dirname>.elems there is 2. If there's backtracking, is it supposed to provide all the things it tried, or only the group that makes the whole match succeed? | 23:26 | |
japhb | r: '/foo/bar/baz/' ~~ m/^ $<dirname>=(.* '/'+)? $<basename>=(<-[\/]>+) '/'* $ /; say DUMP($<dirname>); | 23:30 | |
p6eval | rakudo 604986: OUTPUT«No such method 'package' for invocant of type 'NQPAttribute' in block at src/gen/CORE.setting:939 in method reify at src/gen/CORE.setting:5723 in method reify at src/gen/CORE.setting:5618 in method gimme at src/gen/CORE.setting:6039 in method eager at sr… | ||
japhb | Ooooh, | ||
There's a whole world I didn't even start on: purely NQP objects | 23:31 | ||
japhb wonders what introspection is available at that level of object attribute | |||
labster | glad to be of service :) | ||
23:34
DarthGandalf left
23:35
DarthGandalf joined
|
|||
dalek | kudo/nom: 3ff2762 | coke++ | tools/autounfudge.pl: document --jobs option |
23:38 | |
23:40
huf left
23:57
Chillance left
|