»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
tony-o .tell timotimo here is a more concise gist of the problem: gist.github.com/tony-o/ad52076865a21edec940 00:08
yoleaux tony-o: I'll pass your message to timotimo.
tony-o thanks yoleaux
00:17 Ben_Goldberg joined 00:20 BenGoldberg left 00:23 laouji joined 00:38 laouji left 00:39 laouji joined 00:43 laouji left 00:47 jack_rabbit left 00:48 laouji joined 01:07 khisanth_ is now known as Khisanth 01:22 gfldex left 01:24 Ben_Goldberg is now known as BenGoldberg
eli-se haha 01:38
I made someone believe comments have runtime cost in C++.
BenGoldberg You're an evil person. 01:42
01:46 tinyblak joined
BenGoldberg m: "Just another Unocide hacker,".trans( "\x20..\x7f" => "\xff00..\xff7f" ).say; 01:47
camelia rakudo-moar 143f62: OUTPUT«Just＀another＀Unocide＀hacker,␤»
colomon I’ve felt like committing Unocide at times.... 01:51
01:51 tinyblak left
BenGoldberg Umm, freudian slip? 01:56
BenGoldberg is still giggling, though
tony-o looks intentional :-)
ah
01:57 tinyblak joined
BenGoldberg Not intentional when I typed it, but I did see it and choose not to fix it when I copied/pasted from where I'm chatting with camelia 01:57
geekosaur see also: wtf8 02:00
colomon Just googled, so I know what wtf8 really is, but it feels like my reaction to discovering that Microsoft had its own, incompatiable set of multibyte encodings. 02:04
02:12 noganex_ joined
TimToady m: say grep Whatever, 1,2,3; 02:13
camelia rakudo-moar 143f62: OUTPUT«␤»
TimToady m: say grep *, 1,2,3;
camelia rakudo-moar 143f62: OUTPUT«1 2 3␤»
TimToady m: say (Whatever + 3)(10) 02:14
camelia rakudo-moar 143f62: OUTPUT«13␤»
TimToady that...should fail
I think I have a fix, by accident
eli-se I just noticed my interpreter is copyable, so I can trivially implement backtracking of arbitrary code!
02:15 noganex left
TimToady trivial for you :) 02:15
eli-se At least, within a single stack frame. 02:16
time to sleep, bye! 02:17
02:17 eli-se left 02:26 tinyblak left 02:43 tinyblak joined 02:45 tinyblak_ joined 02:48 tinyblak left 02:55 davido_ left 02:56 davido_ joined, jack_rabbit joined 02:57 Zoffix joined
dalek c: d971ef5 | skids++ | lib/Language/syntax.pod:
Typo fix.
02:58
03:00 hobbs left 03:16 hobbs joined 03:34 adu joined
dalek c: abf90a7 | skids++ | lib/Language/setbagmix.pod:
Fix description of (>+) and (<+) "arguments" -> "elements" and order of $a,$b
03:47
TimToady >+ ? 03:53
03:53 skids left
TimToady oh, bag ops 03:54
04:04 FROGGS__ joined 04:06 Sqirrel left
dalek kudo/nom: 292ef66 | TimToady++ | src/Perl6/Actions.nqp:
allow ~~ to autoprime on * but not on WhateverCode

Also, prevent Whatever and WhateverCode type objects from being used as autoprimers.
04:06
kudo/nom: d76ea82 | TimToady++ | src/Perl6/Actions.nqp:
add a few commatraps
ast: 4faae07 | TimToady++ | S0 (2 files):
check revised semantics for Whatever vs ~~
04:07
04:07 FROGGS_ left
dalek ecs: 6074ad5 | TimToady++ | S02-bits.pod:
revised semantics for ~~ wrt Whatever

We now allow Whatever to autoprime a ~~, but not WhateverCode.
04:09
04:17 jack_rabbit left
TimToady m: say (1,1e0).map: * ~~ Int 04:20
camelia rakudo-moar 143f62: OUTPUT«No such method 'count' for invocant of type 'Bool'␤ in method reify at src/gen/m-CORE.setting:9586␤ in block at src/gen/m-CORE.setting:9494␤ in method reify at src/gen/m-CORE.setting:9469␤ in block at src/gen/m-CORE.setting:9494␤ in method…»
04:21 hobbs left
TimToady m: say (1,1e0).map: * ~~ Int 04:21
camelia rakudo-moar d76ea8: OUTPUT«True False␤»
04:22 jack_rabbit joined 04:23 adu left 04:25 hobbs joined
TimToady .tell lucasb Fixed it for ya: irclog.perlgeek.de/perl6/2015-04-06#i_10393460 04:25
yoleaux TimToady: I'll pass your message to lucasb.
TimToady m: say (Whatever + 3)(10) 04:27
camelia rakudo-moar d76ea8: OUTPUT«use of uninitialized value of type Whatever in numeric context in block <unit> at /tmp/rnDB6qw0qD:1␤␤Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/rnDB6qw0qD:1␤␤»
TimToady fixed that for me :)
04:51 hobbs left 04:52 hobbs joined 05:07 Sqirrel joined 05:13 kaare_ joined 05:43 BenGoldberg left 06:36 kurahaupo1 left 06:45 risou is now known as risou_awy, risou_awy is now known as risou 06:55 andreoss joined
andreoss is there still a chance to see a video of TimToady's talk at fosdem or it's gone missing completely ? 06:58
06:59 jack_rabbit left
vendethiel computer, message. 07:08
yoleaux 5 Apr 2015 22:07Z <eli-se> vendethiel: I implemented sleep with Boost.Asio!
vendethiel grats, eli-se
07:27 andreoss left 07:32 risou is now known as risou_awy, risou_awy is now known as risou 07:46 jferrero left
timotimo o/ 07:46
yoleaux 00:08Z <tony-o> timotimo: here is a more concise gist of the problem: gist.github.com/tony-o/ad52076865a21edec940
timotimo .botsnack
yoleaux :D
07:49 Ven joined 07:59 jack_rabbit joined, RabidGravy joined
Ven m: say grep *, 0, 1, 2, 3; 08:06
camelia rakudo-moar d76ea8: OUTPUT«0 1 2 3␤»
08:06 jack_rabbit left 08:19 jferrero joined 08:21 fishpig joined 08:22 fishpig left 08:25 fishpig joined, fishpig left 08:28 rindolf joined 08:31 darutoko joined 08:32 Ven left
[Tux] Inline::Perl5 till broken 08:35
still
08:36 andreoss joined
nwc10 jnthn: for NFG, I'm wonder if a viable "hybrid" approach is to implement >1 "global" NFG table. So, when comparing two strings, if they share the same table, memcmp() and be done 08:45
08:45 KCL_ joined
nwc10 and only actually use 2 or 3 if the first table is heavily used 08:46
but, as we found with Perl 5 hashing, attempting to build something that reacts when it detects that it's "under attack" actually gives new things to attack 08:47
jnthn nwc10: Trouble is that makes every string a pointer bigger, to point to the table.
nwc10 yes, I sort of realised that as I was typing. At least "will need a pointer, so that we know when to GC the common tables" 08:48
jnthn But generally, we should make this work first in the easiest way possible so we can assemble a decent test suite, before we go on to smarter schemes.
nwc10 "simplest thing that could possibly work"
[then you typed that]
"simplest thing that could possibly work" is a global table
08:48 KCL left
jnthn Right, which is hwy I'm starting there 08:49
timotimo i'm still aching to have something in place that reduces the number of duplicate MVMString instances ...
jnthn Also, we could cap the number of allowed combiners.
There's precedent for that in the Unicode standard.
nwc10 the *other* thing about attacks, is to figure out theoretical attacks that would take out a single table, but would be successfully mitigated by something more sophisticated
timotimo which can also lead to faster comparisons, as MVMString tries pointer compare first
nwc10 IIRC it's 32
timotimo my lord ... the combinatorics ... 08:50
nwc10 at least, for one of the specified interchance formats
jnthn Well, the actual answer is that Unicode itself doesn't spec a limit, but the safe text streaming thing in the annex about normalization forms picked 30.
nwc10 but, I think that there are enough permutaitons of "1 base character" and "1 combining thingybob" to get you well beyond 8G
ah 30, not 32 08:51
timotimo right, 1+1 already gives you a metric ton of combinations :S
nwc10 but if $num_base_chars * $num_single_combining_things is a metric ton of pain
jnthn I suspect 30 'cus 32 bytes is a conveneient computer size, and for normalization you need the base char, the combiners, and the next base char...
nwc10 then the 30 limit doesn't hlep you
jnthn Well, we don't have to pick as high as 30.
:)
nwc10 but we're not allowed zero? 08:52
jnthn m: uniint
camelia rakudo-moar d76ea8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LLHkVqVAw1␤Undeclared routine:␤ uniint used at line 1. Did you mean 'unlink'?␤␤»
jnthn m: unival
camelia rakudo-moar d76ea8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lRIvWktrYh␤Calling unival() will never work with any of these multi signatures:␤ (Str $str) ␤ (Int $code)␤at /tmp/lRIvWktrYh:1␤------> 3<BOL>7⏏5unival␤»
jnthn m: uniprop
camelia rakudo-moar d76ea8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4yMX_OK4G8␤Calling uniprop() will never work with any of these multi signatures:␤ (Str $str, Any |c) ␤ (Int $code, Stringy $propname = { ... })␤at /tmp/4yMX_OK4G8:1␤------> 3<BOL>7⏏5uniprop…»
jnthn m: uniprop(65, 'Canonical_Combining_Class')
camelia ( no output )
jnthn m: uniprop(65, 'Canonical_Combining_Class').say
camelia rakudo-moar d76ea8: OUTPUT«0␤»
jnthn m: (^0x10FFFF).grep({ uniprop($_, 'Canonical_Combining_Class') }).elems.say 08:53
camelia rakudo-moar d76ea8: OUTPUT«(timeout)» 08:54
jnthn aww!
m: (^0xFFFF).grep({ uniprop($_, 'Canonical_Combining_Class') }).elems.say
camelia rakudo-moar d76ea8: OUTPUT«2661␤»
jnthn m: (^0x2FFFF).grep({ uniprop($_, 'Canonical_Combining_Class') }).elems.say
camelia rakudo-moar d76ea8: OUTPUT«8993␤»
jnthn wow 08:55
m: (^0x1FFFF).grep({ uniprop($_, 'Canonical_Combining_Class') }).elems.say
camelia rakudo-moar d76ea8: OUTPUT«8993␤»
jnthn m: (0xE0000..0xEFFFF).grep({ uniprop($_, 'Canonical_Combining_Class') }).elems.say
camelia rakudo-moar d76ea8: OUTPUT«337␤»
jnthn m: say 8993 + 337
camelia rakudo-moar d76ea8: OUTPUT«9330␤»
08:56 Ven joined
jnthn That's how many combiners there are, but that doesn't mean the calculation is anyting like 9330 ** 30 08:56
Because you have to do a partial sort as part of NFD.
nwc10 m: 2**34 / 9330 08:57
camelia ( no output )
nwc10 m: say 2**34 / 9330
jnthn But I dunno how to do an easy calculation to figure out how much that guts it down :)
camelia rakudo-moar d76ea8: OUTPUT«1841357.897535␤»
nwc10 how many things are there that they can combine with? 08:58
jnthn The rest :)
nwc10 it's going to be less than 1841357.897535
you can do things like stick a combiner on a han character?
jnthn m: say 0x2FFFF + 0xFFFF # guesstimate based on assigned planes 08:59
camelia rakudo-moar d76ea8: OUTPUT«262142␤»
jnthn Yes, you can put them on anything.
nwc10 365 days a year? Not just on April 1st? :-( 09:00
This is making me think that I should put some beer in the fridge. Obviously, as much as will fit.
jnthn Well, I guess you could sanely put a Combining Enclosing Circle Backslash on a 友 which I guess is "no friends allowed" or something :P 09:03
m: say "友\x20E0" 09:04
camelia rakudo-moar d76ea8: OUTPUT«友⃠␤»
jnthn Aww
oh, or maybe my font is just clueless about that one
nwc10 m: say chr 0x53cb ~ chr 0x20E3 09:06
camelia rakudo-moar d76ea8: OUTPUT«Cannot convert string to number: trailing characters after number in '21451⏏⃣' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:15894␤ in method Int at src/gen/m-CORE.setting:7049␤ in sub chr at src/gen/m-CORE.setting:5931␤ in bl…»
nwc10 m: say chr(0x53cb) ~ chr(0x20E3)
camelia rakudo-moar d76ea8: OUTPUT«友⃣␤»
09:06 telex left
nwc10 m: say chr(78) ~ chr(0x20E3) 09:07
camelia rakudo-moar d76ea8: OUTPUT«N⃣␤»
nwc10 OK, my terminal doesn't like putting COMBINING ENCLOSING KEYCAP round the 友
but the IRC log in Firefox shows it
I hope "友" isn't rude
09:08 telex joined
nwc10 anyway, yes, this illustrates your point - "anything with anything" 09:08
09:09 gfldex joined
jnthn No, 友 just means "friend" :) 09:10
Today seems to be continued Easter relaxation; will some good tuits tomorrow and Wednesday :) 09:11
09:12 espadrine_ joined 09:14 Rounin joined
nwc10 We had snow. (And sunshine) 09:14
09:26 sirdancealot left 09:30 diana_olhovik joined 09:32 sirdancealot joined 09:44 mohij joined, Ven left 09:47 Ven joined
Ven o/, #perl6. 09:50
I'm still in the process of considering stuff to remove from the perl6 tutorial (because it's useless), and want to consider other things to add. I have a list of things I *could* be talking about: gist.github.com/vendethiel/5332f431236490f39ffa 09:51
I also really need to rewrite the intro to feel less "rushed", and be more like a tutorial. Maybe this'll be less fitting for learnxiny.com, but I love the code-as-documentation format... 09:52
(I'm really asking for feedback here, and say, examples of tutorials that just blew your mind because they were so good)
nwc10 we have more snow. 09:55
Zoffix Ven, I really liked the pace of JQuery Succinctly: www.syncfusion.com/resources/techpo...ry.org0513
(it's free to download; you just have to give them random info)
It doesn't bog you down with useless facts and info, yet gives enough material for you to understand what's going on. 09:56
09:57 Ven left 10:01 Ven joined
Ven Zoffix: will read, thanks 10:02
masak good noon, #perl6
Ven that's definitely an issue with perl/perl6. the "baby perl"
o/, masak
jnthn nwc10: Snow and sun sounds kinda fun...here mostly rain and cloud.
Ven you need to get a "simple enough" base language to build up from there :) can't throw some [Zeq] »xx». 10:03
nwc10 jnthn: it's also quite cold, particularly in the wind 10:04
10:04 eli-se joined
Ven (I already got feedback from tim bunce at apw14 that it was too dense, and I can definitely see where that's coming from). I've received a few issues on github that have pointed out very specific issue, twas good 10:04
nwc10 (I was getting a bit cold changing Andrea's mum's cars tyres yesterday. Summer tyres - I think that explains the snow)
jnthn Hah! So timing 10:09
nwc10 such snow 10:11
tyres!
jnthn lanch & 10:14
10:21 lancew joined
[Tux] masak, API is completely incompatible and you do not support ESCapes 10:22
masak [Tux]: I'm just saying I don't have a big affection for my CVS module.
[Tux] I *will* have a look. Some parts are already supported in what I created (:trim -> :allow-white-space) 10:24
:skip-header -> :skip=n 10:25
I like you :strict
r
masak I've forgotten all the details :) 10:26
lancew Hi all, has anyone had experience recently of installing Template::Mojo? I'm getting an install error ( pastebin.com/iHgPkRt1 ). 10:27
masak I think it's because github.com/tadzik/Template-Mojo/bl.../META.info should have a source-url 10:29
tadzik: `Panda::Project $bone` -- oh, you!
:D
10:31 espadrine_ left
dalek pan style="color: #395be5">perl6-examples: 197b08c | paultcochrane++ | / (3 files):
Remove category attr from Example() class

A Category containes Examples, it isn't necessary for the Examples to duplicate this information.
10:31
pan style="color: #395be5">perl6-examples: 9e92e09 | paultcochrane++ | lib/Pod/Htmlify.pm6:
Remove extra "categories/" prefix to example link path
pan style="color: #395be5">perl6-examples: 4c7ea1b | paultcochrane++ | / (2 files):
Create summary page of subcategories
masak tadzik: github.com/tadzik/Template-Mojo/pull/18
lancew: with the above pull request, Template::Mojo should install fine
nwc10 jnthn: "I heard you liked remotes so I baked you a patch at [email@hidden.address] 10:32
"Use the PROVE macro instead of a literal `prove` in the generated Makefiles."
lancew masak: Fantastic, thanks. I'm trying to test drive Bailador and Template::Mojo is a pre-requisite. :-)
nwc10 GitLab, whom I'd never heard of, bought Gitorious 10:33
masak lancew: if I were savvy enough with panda, I might even instruct you how to download Template::Mojo from github.com/masak/Template-Mojo , which has the patch already applied
(but I'm not that savvy. you might have some luck trying stuff yourself, though.) 10:34
lancew :-)
10:36 FROGGS__ is now known as FROGGS
FROGGS jnthn: as you might have (not) seen, I've merged the 'param is rw' stuff, also for jvm 10:37
jnthn: though we have both on moar and jvm problems with unsignedness
t/04-nativecall/15-rw-args.t has a todo test about that 10:38
10:38 eli-se left 10:43 diana_olhovik left
lancew masak: ==> Installing Template::Mojo ; ==> Successfully installed Template::Mojo 10:45
masak: thx
tadzik masak: a full bowl of puns :) 10:48
colomon lizmat++
11:07 eli-se joined 11:25 lancew left 11:26 Ven left 11:28 Ven joined 11:31 daxim left 11:33 risou is now known as risou_awy, risou_awy is now known as risou 11:47 root joined, root is now known as Guest46990 11:48 Guest46990 left, laouji left 11:53 sirdancealot left
RabidGravy are there any modules on the list that just provide roles? 12:08
psch RabidGravy: OO::Actors provides a declarator that creates classes that have a role mixed in 12:12
it's not quite only a role, but might fit whatever you're looking for 12:13
RabidGravy let's look
Ven (also OO::Monitor) 12:17
nwc10 jnthn: ^^ should be gitlab.com/nwc10/nqp.git 12:18
12:18 lichtkind joined
jnthn FROGGS: I get some fail in 15-rw-args.t but let be re-build latest stuffs before I pester you about that. :) 12:19
FROGGS: Hmm. "Native call expected argument that references a native integer, but got P6opaque" 12:21
I think I have latest everything but let me do clean builds
awwaiid "Substitution now supports assignment meta-op, e.g. s[\d+] += 2" *mindblown* 12:22
(catching up)
12:22 andreoss left
FROGGS jnthn: I have no local changes and it passes :/ 12:25
jnthn FROGGS: Oh, somehow an earlier nqp pull failed, so almost certianly false alarm. 12:30
tadzik RabidGravy: roles are pretty much core 12:36
RabidGravy it was more of a question is if one was to make something that provides a role or roles for user classes to consume is there a naming convention 12:38
tadzik ah, hmm 12:40
I don't think there's any; my github.com/tadzik/ClassX-StrictConstructor/ is a role and I had no complaints about it :)
12:41 tinyblak_ left
RabidGravy I guess these are things that will emerge as the ecosystem flourishes 12:42
psch i'm not sure what kind of convention there could be
if anything i'd say "if you're unsure call it FooRole"
RabidGravy well like Role::Foo or something
psch oh, a top level role namespace for the ecosystem 12:43
RabidGravy yeah perhaps, it might allow for some future organisation based on what kind of thing it provides 12:44
or is that too prescriptive for the time being
psch fwiw, i think the OO::Actors approach is great, exposing a declarator that always applies the role to the declared class makes it clear there's something special happening
FROGGS RabidGravy: since Roles are things one can *do*, they potentially should be verbs
psch of course it wouldn't work with anything that wants multiple roles applied, unless you create that declarator in-project 12:48
tadzik there's no naming convention for classes, I don't think there's a need to have one for roles
RabidGravy on the flip side having "class Foo does Role::Zub { .... }" seems somewhat redundant
tadzik oh, there's an idea to use different word types 12:49
so grammar makes sense, like 'class Dog does Wagging' or something
or Storable 12:50
or something
RabidGravy yeah verb-like for roles, noun-like for classes 12:52
jnthn FROGGS: Yeah, with latest NQP it works fine. Sorry for the false alarm :) 12:57
FROGGS jnthn: no problem :o) 12:58
13:01 tinyblak joined 13:14 raiph joined
jnthn fwiw, I'd rather we don't evolve a convention of putting Role in the name of roles. 13:18
It's annoying enough in .Net when exceptions get Exception on the end...
psch meant it more as a last resort
but i can see having it happen at all means people adopt it when it might be unneccessary 13:19
masak IMNSHO, roles should be named such that `does <rolename>` reads nicely. 13:20
jnthn +1 13:23
shoppin'
FROGGS aye, that is what I tried to say too 13:24
13:52 dustinm` left, tinyblak left, ilbot3 left, mattp__ left, |Tux| left, Exodist left, sunnavy left, japhb left, yeltzooo9 left, aindilis left, lestrrat left, lnr left, MilkmanDan left, nebuchadnezzar left, anocelot left, Guest72861 left, Timbus left, go|dfish left, ashleydev left, apejens left, hobbs left, colomon left, [Tux] left, kst left, pnu left, dalek left, Hor|zon left, Juerd left, sergot left, bcode left, geekosaur left, charsbar_ left, Ulti left, cibs left, raiph left, Akagi201_ left, camelia left, Foxcool left, gfldex left, RabidGravy left, breinbaas left, gcole left 13:53 tbrowder left, rhr_ left, KCL_ left, Sqirrel left, davido_ left, Vlavv_ left, eiro left, ASQRD left, kodok left, yoleaux left, Peter__R left, [ptc] left, petercommand left, ugexe left, larks left, rjbs left, ruoso left, DrForr left, d^_^b left, mathw left, cosimo left, BooK left, mst left, leedo left, cursork left, kaare_ left, rivarun left, molaf left, pecastro left, haroldwu left, pmichaud left, zoosha left, vytas left, PerlJam left, sivoais left, Rounin left, jferrero left, Zoffix left, cdc left, ggherdov left, xxx left, ingy left, slavik left, egrep left, simcop2387 left, tadzik left, mephinet left, retupmoca left, awwaiid left, avalenn left, fernando___ left, oetiker left, lichtkind left, mohij left, btyler left, coffee` left, isacloud left, danaj left, renormalist left, Grrrr left, itz left, psch left, bartolin_ left, Bucciarati left, moritz left, krunen left, integral left, jnthn left, prammer left, timotimo left, telex left, dj_goku left, pierrot left, f3ew left, robinsmidsrod left, [particle] left, Woodi left, sftp left, broquaint left, nwc10 left, rudi_s left, _sri_ left, kshannon left, SHODAN left, eli-se left, xiaomiao left, vendethiel left, Possum left, huf left, ponbiki left, Maddingue left, yakudza left, jercos left, FROGGS left, Khisanth left, rmgk left, wtw left, baest_ left, atta left, silug left, labster left, TimToady left, [Coke] left, estrabd left, Util left, risou left, tinita_ left, jschulz left, vike left, hahainternet left, burnersk left, danstoner left, woshty left, Humbedooh left, osfameron left, DarthGandalf left, profan left, nine_ left, literal left, avar left, ab5tract left, jfried left, rindolf left, jantore left, Patterner left, yvan1 left, esaym153 left, hoelzro left, flussence left, Mouq left, nbrown left, JimmyZ left, ribasushi left, masak left, arnsholt left, b2gills left, Gothmog_ left, shinohai left, krakan left, felher left, El_Che left, mls left, sorear left, Spot__ left, stux|RC-only left, BinGOs left, yogan left, skarn left, clkao left, pRiVi left, smi1er left, Ven left, torbjorn left, pochi left, xinming left, Alina-malina left, ShimmerFairy left, revdiablo left, iv left, Celelibi left, agentzh left, jdv79 left, eternaleye left 13:57 lucasb joined, Sqirrel joined, Ulti joined, charsbar_ joined, geekosaur joined, bcode joined, sergot joined, Juerd joined, Hor|zon joined, dalek joined, pnu joined, kst joined, [Tux] joined, colomon joined, hobbs joined, tinyblak joined, Celelibi joined, eternaleye joined, muraiki joined, raiph joined, lichtkind joined, eli-se joined, mohij joined, Rounin joined, gfldex joined, telex joined, KCL_ joined, rindolf joined, jferrero joined, RabidGravy joined, kaare_ joined, FROGGS joined, Zoffix joined, davido_ joined, rivarun joined, xiaomiao joined, dj_goku joined, Khisanth joined, btyler joined, vendethiel joined, Patterner joined, molaf joined, rmgk joined, wtw joined, Akagi201_ joined, pierrot joined, baest_ joined, card.freenode.net sets mode: +v dalek, yvan1 joined, coffee` joined, camelia joined, esaym153 joined, Vlavv_ joined, eiro joined, vytas joined, cdc joined, breinbaas joined, Possum joined, gcole joined, ASQRD joined, Foxcool joined, isacloud joined, ggherdov joined, tbrowder joined, xxx joined, ingy joined, huf joined, pecastro joined, hoelzro joined, f3ew joined, rhr_ joined, robinsmidsrod joined, haroldwu joined, [particle] joined, slavik joined, danaj joined, Woodi joined, flussence joined, egrep joined, shinohai joined, pmichaud joined, atta joined, silug joined, zoosha joined, Mouq joined, nbrown joined, sftp joined, rudi_s joined, JimmyZ joined, labster joined, ribasushi joined, TimToady joined, [Coke] joined, broquaint joined, estrabd joined, card.freenode.net sets mode: +v camelia, renormalist joined, Grrrr joined, itz joined, simcop2387 joined, kodok joined, Util joined, PerlJam joined, psch joined, masak joined, yoleaux joined, BooK joined, cosimo joined, mathw joined, d^_^b joined, DrForr joined, ruoso joined, rjbs joined, ugexe joined, petercommand joined, larks joined, [ptc] joined, Peter__R joined, nwc10 joined, bartolin_ joined, leedo joined, mst joined, cursork joined, risou joined, arnsholt joined, tinita_ joined, tadzik joined, mephinet joined, sivoais joined, ponbiki joined, retupmoca joined, awwaiid joined, avalenn joined, jschulz joined, Bucciarati joined, b2gills joined, vike joined, moritz joined, hahainternet joined, burnersk joined, Gothmog_ joined, krunen joined, danstoner joined, card.freenode.net sets mode: +v yoleaux, Maddingue joined, _sri_ joined, fernando___ joined, integral joined, krakan joined, jantore joined, yakudza joined, felher joined, woshty joined, jercos joined, oetiker joined, El_Che joined, Humbedooh joined, kshannon joined, jnthn joined, SHODAN joined, BinGOs joined, mls joined, prammer joined, timotimo joined, yogan joined, sorear joined, osfameron joined, skarn joined, DarthGandalf joined, clkao joined, Spot__ joined, pRiVi joined, smi1er joined, literal joined, stux|RC-only joined, profan joined, nine_ joined, avar joined, ab5tract joined, jfried joined 13:58 lnr joined, isacloud left, dustinm` joined, ilbot3 joined, mattp__ joined, |Tux| joined, Exodist joined, sunnavy joined, japhb joined, yeltzooo9 joined, aindilis joined, lestrrat joined, MilkmanDan joined, nebuchadnezzar joined, anocelot joined, Guest72861 joined, Timbus joined, go|dfish joined, ashleydev joined, apejens joined, cibs joined, Ven joined, torbjorn joined, pochi joined, xinming joined, Alina-malina joined, ShimmerFairy joined, revdiablo joined, iv joined, agentzh joined, jdv79 joined
lucasb Network problems? 13:59
geekosaur freenode burped
14:00 dustinm` left
RabidGravy is it possible to use panda to install from a local directory? 14:01
14:01 dustinm` joined
psch RabidGravy: panda install can take at least '.' as argument afair. i don't know if it understands absolute or relative paths though 14:02
14:02 sirdancealot joined, isacloud joined
RabidGravy psch, perfect 14:02
14:07 Ven left, mr-foobar joined 14:15 skids joined
masak found a bug. gist.github.com/masak/3a8ab0dc74d6c6c25287 14:18
reporting it now, unless someone says it's already in RT. 14:19
14:28 Ven joined
hoelzro o/ #perl6 14:33
psch hoelzro \o 14:35
14:43 pyrimidine joined
lucasb m: $_ = '42'; s/(\d+)/<$0>/; .say 14:44
camelia rakudo-moar d76ea8: OUTPUT«<42>␤»
lucasb echo 42 | perl6 -pe 's/(\d+)/<$0>/' #=> "<>"
colomon masak: not disagreeing that it’s a bug, but that syntax (which I do vaguely remember) seems terribly unfortunate in this example
lucasb masak: ^^ $0 doesn't get assigned the value?
14:48 mr-foobar left 14:49 mr-foobar joined 14:51 molaf_ joined 14:54 molaf left 14:55 araujo joined, araujo left, araujo joined
lucasb m: $_ = 42; say "numba: $0" if /(\d+)/ 14:56
camelia rakudo-moar d76ea8: OUTPUT«numba: 42␤»
14:56 espadrine_ joined
lucasb m: $_ = 42; s/\d+/xxx/ 14:56
camelia rakudo-moar d76ea8: OUTPUT«use of uninitialized value of type Any in string context in block <unit> at /tmp/0koduqGXwI:1␤␤Error while creating error string: No exception handler located for warn␤»
lucasb I get a different error on my console: "Cannot call 'subst-mutate'; none of these signatures match ..." 14:57
I mean, plain match can coerce to string, but substitution can't coerce to string. 14:58
14:58 raiph left, rurban_ joined
lucasb Maybe it makes sense; you can't substitute a substring inside something that is not a string. The compiler would have to change the type of the variable. 14:59
15:01 Rounin left
psch m: say 42.subst(/\d+/, "xxx") 15:07
camelia rakudo-moar d76ea8: OUTPUT«xxx␤»
psch lucasb: something seems inconsistent here. to me, s/// is mostly an operator form of .subst (or the other way around)
except s/// is the op form of subst-mutate, to be explicit 15:08
s/// dying on numeric input complains about not having a dispatch candidate for Int when run with --ll-exception, although the proto is with Cool 15:09
maybe "we don't mutate" is enough reason, although i don't buy the "[it] would have to change the type" argument 15:11
because we don't need to change the type to mutate, we need to change it to match in the first place 15:12
15:13 diana_olhovik joined 15:14 Ven left 15:15 raiph joined
psch oh, now i see lucasb++ saw the dispatch failure too 15:17
TimToady surely the mutating form should be trying to replace the contents of the variable, not fiddling with what's inside the variable 15:18
s:g/variable/container/ 15:19
15:32 Ven joined
TimToady fwiw, subst-mutate is the only method in core that attempts to declare $self is rw: 15:35
15:36 ggoebel joined 15:37 kinslayer joined
TimToady but it's in the Str class, so doesn't know how to dispatch Int 15:38
TimToady will play with moving subst-mutate to Cool
15:41 Ven left
lucasb psch, TimToady: Thanks for taking a look at it. (I was away) 15:43
TimToady now fails deep in find_best_dispatchee when trying to match Junctions, but I think it doesn't try that unless the naïve binding has already failed 15:49
15:49 eli-se left
TimToady (and that's a failure trying to compile the setting, so maybe a circularity issue) 15:50
15:51 KCL_ left, telex left 15:52 telex joined, noganex_ left 15:53 KCL_ joined 15:59 Ven joined
Ulti the new multi line REPL doesn't play so well with my slang it gets stuck forever waiting for a statement to end :( 15:59
16:01 sirdancealot left
psch Ulti: what's your slang? 16:02
Ulti github.com/MattOates/BioInfo/blob/...ioInfo.pm6 16:03
psch BioInfo is on panda? 16:07
hm, BioPerl6 is, but that's apparently something different 16:08
Ulti: if the problem is where i'd expect it you can terminate a statement with ')', '}' or ']' 16:09
but that's obviously bogus
and shouldn't be like it
i'm thinking i should pull what i merged for moreinput from nom again, 'cause i keep running into walls trying to get it further 16:10
16:12 eli-se joined
psch and it's of limited usefulness in the current state anyway :/ 16:14
if it even breaks stuff it maybe should actually leave again 16:19
maybe just hide it behind a RAKUDO_EXPERIMENTAL_MULTILINE_REPL env var? 16:23
16:24 raiph left
[Coke] news.perlfoundation.org/2015/04/wen...-to-n.html lizmat++ 16:25
PerlJam woolfy++ too 16:26
pmichaud good morning, #perl6 16:29
TimToady likewise
PerlJam buenos dias pmichaud
16:34 Sqirrel left 16:39 Sqirrel joined
dalek kudo/nom: 4c1f570 | TimToady++ | src/core/Cool.pm:
Cool.subst-mutate wrapper to handle coercion

We can't simultaneously maintain coercion and 'rw' on the invocant to Str.subst-mutate. So we do the two-step shimmy instead.
16:40
psch anyway, one problem with moreinput as-is seems to happen because statementlist doesn't match correctly, which i'm not sure i can unravel 16:41
input like «if 0 { 0 }\nelse { 1 }» complains about "Undeclared routine: else", and from looking at target parse that's because the it doesn't get the else in the same statement (or statementlist) as the if 16:43
16:44 raiph joined, virtualsue joined
japhb WenZPerl++ # All the white camel-icious behavior 16:47
ugexe is a lot of nativecall stuff not working currently? for instance, openssl gives a cannot unbox nativeref errors. I just want to make sure i havne't screwed something else up 16:48
16:49 baest_ is now known as baest 16:51 mohij left
dalek ast: 6f63ff8 | TimToady++ | S05-substitution/subst.t:
add test for s/// on non-string
16:54
kinslayer hi 16:59
RabidGravy m: sub foo( Any:T $foo ) { say $foo }; foo("bar");
camelia rakudo-moar d76ea8: OUTPUT«bar␤»
RabidGravy Am I missing something or shouldn't that be a fail because not a type object
kinslayer I tried to get some json into a hash with JSON::Tiny but it didnt wonna work, or I couldn't figure out how to query what I got. Any suggestions on what I could do instead 17:00
pmichaud ":T" ? Shouldn't that be ":U" ?
m: sub foo ( Any:U $foo ) { say $foo }; foo("bar") 17:01
camelia rakudo-moar d76ea8: OUTPUT«Parameter '$foo' requires a type object, but an object instance was passed␤ in sub foo at /tmp/nmbNQi4EYQ:1␤ in block <unit> at /tmp/nmbNQi4EYQ:1␤␤»
ugexe kinslayer: no one knows what you did in the first place
kinslayer I used from-json in JSON::Tiny but I dont know how that works for queries 17:02
RabidGravy pmichaud, I was just going by what it suggested in S06
pmichaud RabidGravy: looking
RabidGravy: Oh. I think :T is not yet implemented 17:03
RabidGravy kinslayer, what you mean by "queries"?
kinslayer I try to get part os the object with something like object{'room'}
but it returns (Any)
PerlJam kinslayer: can you show us the code (and data) ? 17:04
RabidGravy pmichaud, I'll go with :U until that time. I just want literally foo(Str) and not allow foo(Str.new) e.g.
TimToady don't paste here, use a site like gist.github.com and paste the URL here
pmichaud :U should work for that.
RabidGravy yeah it does 17:05
pmichaud might be worth filing a rakudobug for :T
(if one doesn't already exist)
kinslayer lpaste.net/130251
PerlJam kinslayer: it's best if you show us all of the code. 17:06
kinslayer: or at least the bits that don't work like you expect
TimToady like, how you're actually trying to access the structure 17:07
FROGGS RabidGravy: btw, :U currently does what :T should do
kinslayer lpaste.net/130251 17:08
RabidGravy FROGGS, yeah I gathered that from the message :)
kinslayer that should be all of the code I used JSON::Tiny
ugexe 'rooms' isnt a hash key
its 'room'
next time, try %json.perl to see the data structure 17:09
FROGGS RabidGravy: and :U should do a little bit more than what it does today, calling .defined on the object in question
TimToady ugexe: ooh, a fishing rod :) 17:10
kinslayer ugexe: I was pretty sure I wrote rooms but seems I messed that up, but I might have other problems
TimToady kinslayer: this is programming; other problems are almost guaranteed :) 17:11
RabidGravy :)
kinslayer timtoady: yeah but not in this case now it just works so just a typo.
PerlJam kinslayer: btw, are you a "kin slayer" or just a "kins layer" ? 17:12
FROGGS m: my uint8 $a = 200; say $a
camelia rakudo-moar d76ea8: OUTPUT«-56␤»
kinslayer kinslayer is from Wheel of Time
PerlJam: so prob. kin slayer :D 17:13
TimToady
.oO("Will kith not slay their kin for me?" --Guinevere)
RabidGravy or 'kin slayer for those not-heavy metal fans 17:14
skids \m/ 17:15
TimToady is that hair over your face?
17:15 raiph left
PerlJam skids is doing a cousin it impersonation? 17:16
[Coke] why not zoidberg? 17:17
TimToady could just be facing the other way
kinslayer I started programming in perl and did stuff in other langs but perl 6 is really awesome :D
PerlJam kinslayer: we like to think so too :)
TimToady but we're known to be prejudiced in the matter
skids Mètāl Sâlüte 17:18
PerlJam [Coke]: zoidberg would need an em with an extra leg.
kinslayer PerlJam: I like the idea of "better is better" :D
PerlJam (which I'm sure is available in unicode *somewhere* ;) 17:19
17:19 ggoebel left
PerlJam [Coke]: though also ... if zoidberg, where did his eyes go? 17:20
[Coke] can't umlaut an m, sadly. :) 17:21
TimToady well, you could chop off ㎜ 17:22
17:23 inokenty joined
psch m: say "m\x0308" 17:24
camelia rakudo-moar 4c1f57: OUTPUT«m̈␤»
nine_ FROGGS: nqp commit 7533c6bd870167cc89a9a5eb3cb0aebc945c23ed broke Inline::Perl5 and I cannot see how Inline::Perl5 may be at fault. 17:25
FROGGS nine_: how can I reproduce the failure? 17:26
skids ꖶꖶ 17:29
mm
nine_ FROGGS: just trying to install Inline::Perl5 is enough.
FROGGS k
nine_ FROGGS: I suspect that it's the same cause like < ugexe> is a lot of nativecall stuff not working currently? for instance, openssl gives a cannot unbox nativeref errors. I just want to make sure i havne't screwed something else up 17:30
FROGGS hmmm
lemme see
[Coke] \m̈/ . o O (ah, just can't do it on my mac keyboard easily. psch++)
17:31 rurban_ left 17:35 gargamel left 17:36 Psyche^ joined
FROGGS nine_: it seems to be a precomp issue :S 17:38
17:40 Patterner left
nine_ FROGGS: sounds like not fun 17:42
FROGGS yeah, trying to hunt it down now 17:43
17:45 virtualsue_ joined 17:46 virtualsue left, virtualsue_ is now known as virtualsue 17:48 Hyer joined
Hyer I was going to learn a little P6 by porting my scrabble-cheating program 17:48
17:48 Ven left
japhb So I see a change to coercing multi candidates in the Rakudo git log. Can someone point to the discussion, or summarize the change/reasoning? 17:48
17:49 Ven joined
Hyer I can't find any definitive documentation on how, given a user-input pattern $p, I can find strings matching the contents of $p interpreted as a pattern 17:49
when I try /<$pat>/, Rakudo fails if $pat contains character classes, maybe because of their "<" delimiters 17:51
but I cannot verify whether this is a problem with Rakudo, or with my P6 code
dalek p: b52f49a | FROGGS++ | tools/build/MOAR_REVISION:
bump moar rev to unbreak Inline::Perl5
Hyer anyone want to take a stab at this? I'd appreciate any help
PerlJam Hyer: show the code :) 17:52
dalek kudo/nom: c314f4f | FROGGS++ | tools/build/NQP_REVISION:
bump nqp/moar rev to unbreak Inline::Perl5
FROGGS nine_: ^^
psch m: my $pat = '<[abc]>'; say "a" ~~ $pat
camelia rakudo-moar 4c1f57: OUTPUT«False␤»
psch m: my $pat = '<[abc]>'; say "a" ~~ /$pat/
camelia rakudo-moar 4c1f57: OUTPUT«Nil␤»
Hyer sure, let me simplify a bit and then paste
japhb Looks like a good time to rebuild-all, thanks FROGGS++
psch m: my $pat = '<[abc]>'; say "a" ~~ /<$pat>/
camelia rakudo-moar 4c1f57: OUTPUT«「a」␤»
17:53 Ven left
Hyer Code incoming ------------------------------------- 17:55
use v6;
FROGGS O.o 17:56
Hyer my $dictfile = "C:/Users/Tom/Downloads/corncob_lowercase.txt";
PerlJam Hyer: please use a paste site like gist.github.com
FROGGS Hyer: don't paste here
Hyer OK
dalek osystem: 74ebc9e | (Jonathan Stowe)++ | META.list:
add EventEmitter to the modules list
18:00
osystem: 2c69578 | (Zoffix Znet)++ | META.list:
Merge pull request #41 from jonathanstowe/master

add EventEmitter to the modules list
masak colomon: re "syntax seems unfortunate" -- the code was golfed from a bigger one-liner where that choice of syntax made more sense
Hyer: if you want to show more than two lines of code, please put it in gist.github.com or similar, then paste the URL 18:01
RabidGravy ^ totally noddy module but more of a challenge to others to improve upon it ;-) 18:04
masak for non-Brits: "noddy" = "trivial" ;) 18:11
18:12 awwaiid left
RabidGravy now back to the, er, non-trivial ones I'm procrastinating 18:16
masak .oO( nonnoddy ) 18:19
RabidGravy big earsy 18:21
18:23 awwaiid joined
PerlJam
.oO( bugs? thumper? )
18:23
nine_ FROGGS: works again :) Thanks!
RabidGravy noddy != big ears
FROGGS \o/
18:24 kinslayer left
nine_ .tell |Tux| FROGGS++ fixed the MoarVM regression that affected Inline::Perl5 18:24
yoleaux nine_: I'll pass your message to |Tux|.
RabidGravy en.wikipedia.org/wiki/Big_Ears_(character)
Hyer psch: I am trying 18:26
my $in="<[be]>*"; my $pat = '^'~$in~'$'; say so "ebb" ~~ /$pat$/;
psch m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say so "ebb" ~~ /<$pat>/ 18:27
camelia rakudo-moar c314f4: OUTPUT«True␤»
psch Hyer: you've missed interpolating your variable inside the pattern 18:28
or rather "inside the regex quote operator" 18:29
18:29 ggoebel joined
masak Hyer: in Perl 6, strings don't accidentally interpolate as regexes. they interpolate as literal strings by default. this is for your own safety. 18:29
PerlJam was interested in seeing code that illustrated ... <Hyer> when I try /<$pat>/, Rakudo fails if $pat contains character classes 18:30
Hyer My best understanding was that /<$pat>/ would cause variable interpolation of $pat 18:32
PerlJam ... as part of the regex and not just a literal string 18:33
masak Hyer: that's a correct understanding.
FROGGS well, variables are interpolated in any case... 18:34
the <...> just tell whether you want to interpolate to regex rules or to a literal string
s/literal//
psch m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say so "ebb" ~~ /<$pat>/; say "^<[be]>*$" ~~ /$pat/ 18:35
camelia rakudo-moar c314f4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FmAW3PByOG␤Non-variable $ must be backslashed␤at /tmp/FmAW3PByOG:1␤------> 3 say so "ebb" ~~ /<$pat>/; say "^<[be]>*7⏏5$" ~~ /$pat/␤ expecting any of:␤ argument list␤ double q…»
psch m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say so "ebb" ~~ /<$pat>/; say '^<[be]>*$' ~~ /$pat/
camelia rakudo-moar c314f4: OUTPUT«True␤「^<[be]>*$」␤»
nwc10 t/spec/S05-substitution/subst.rakudo.moar is made of sin (and one more test than it planned) 18:37
Hyer psch: trying your last m: in recent Rakudo gives error 'Non-variable $ must be backslashed'
psch Hyer: in my last i replaced " with ', because " interpolates 18:38
Hyer ah, I see that now
I will try to see how my code is different, just don't have the Perl Eye anymore 18:40
psch -- change "ebb" to "seb" in your example -- still says it matches 18:44
18:45 zakharyas joined
[Tux] rebuilds ... 18:45
[Tux] finds it increasingly difficult to choose between finishing Text::CSV and writing sheets for the presentation about it 18:46
hoelzro we have an official docker image now: registry.hub.docker.com/_/rakudo-star/
psch m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say "seb" ~~ /<$pat>/; 18:47
camelia rakudo-moar c314f4: OUTPUT«「eb」␤»
psch hm, the anchors don't take?
jnthn std: class T{}; class S is T{} 18:48
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unable to parse class definition at /tmp/dHaATxS2mM line 1 (EOF):␤------> 3class T{}; class S is T{}7⏏5<EOL>␤Parse failed␤FAILED 00:01 136m␤»
Hyer looks like the start anchor doesn't take, the end does, but I'm not 100% sure 18:49
18:52 zakharyas left
PerlJam m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say "sebo" ~~ /<$pat>/; 18:52
camelia rakudo-moar c314f4: OUTPUT«Nil␤»
PerlJam m: my $in = "<[be]>*"; my $pat = '^' ~ $in ~ '$'; say "ebo" ~~ /<$pat>/;
camelia rakudo-moar c314f4: OUTPUT«Nil␤»
PerlJam Aye, looks like 18:53
Hyer psch, PerlJam: thanks for your time and patience
dalek ast: 8d44426 | jnthn++ | S32-exceptions/misc.t:
Test for RT #71034.
18:54
RabidGravy hoelzro, I'd better get on with what I'm doing so I can start the Docker client on my TODO list then ;-) 18:55
hoelzro RabidGravy: docker client? 18:56
RabidGravy yeah like e.g fig but in p6 18:57
masak jnthn: re irclog.perlgeek.de/moarvm/2015-04-06#i_10397602 -- I confess I didn't consider the metaclass in this. if there's no safe way to say "no funny metaclass has been applied", then I agree we cannot throw this error. 18:58
jnthn: my thinking was that yes, method calls are generally too late-bound, but a method call to a type object would be more predictable, and for all intents and purposes more like a sub call (and therefore analyzable like one) 18:59
jnthn masak: Well, it's going to be non-trivial to implement, and thanks to the cross-compilation unit limintation rather less useful than one may hope.
masak: I'd rather we try and make the error you get in the general case be more meaningful. 19:00
masak I did consider the cross-compilation unit angle, and decided that's fine. even within one compilation unit (which is likely to be the normal case), it's a useful error to get.
anyway, feel free to reject the ticket. 19:01
jnthn Will sleep on it and maybe do so tomorrow :) 19:02
jnthn mebbe bbl, otherwise tomorrow (with tuits! :)) 19:03
masak maybe 'night, jnthn
skids m: say ( "sebb" ~~ /<after s>ebb/ ); $/<after>.perl.say; 19:04
camelia rakudo-moar c314f4: OUTPUT«「ebb」␤ after #<failed match>␤Match.new(orig => "sebb", from => 3, to => 1, ast => Any, list => (), hash => EnumMap.new())␤»
masak .oO( Maybe[Night] )
ugexe FROGGS: your last commit fixed the problem i was having installing other nativecall modules as well 19:05
19:05 spider-mario joined
FROGGS ugexe: yeah, nine_++ already guessed that... but nice to get a confirmation on that :o) 19:06
19:09 sirdancealot joined
dalek p: 35c589e | FROGGS++ | tools/build/MOAR_REVISION:
bump moar for fix for RT #124185
19:20
kudo/nom: ae68631 | FROGGS++ | tools/build/NQP_REVISION:
bump moar for fix for RT #124185
japhb Ackpth! perl6-m is now taking ~3x longer to start (locally).
Can anyone else confirm?
RabidGravy dunno, the one macine with latest is a celeron, the one with older is an i7 wouldn't be a fair comparison 19:24
19:25 eternaleye left 19:26 eternaleye joined 19:31 Sqirrel left
japhb RabidGravy: Yeah, understood. 19:34
torbjorn jnthn: regarding the OSDC, would you be fine with doing *all* your posted stuff? :) 19:35
RabidGravy :)
japhb I went from ~200-300ms (depending on exact build, whether lazy serialization was working, and so on) to ~610-635ms.
FROGGS japhb: and there are no dangling processes currently? 19:36
japhb Not that I can see, but I am getting some VM pressure from Chrome. Let me shoot that process and see if it's just a matter of an unhappy memory manager
19:37 Sqirrel joined, beastd joined
[Tux] nine_, FROGGS, will the performance also return? 19:42
19:43 kaare_ left
FROGGS [Tux]: I... don't think I've todo something with a performance loss... 19:43
japhb OK, cleared out a boatload of RAM, trying again ... 19:44
[Tux] neither do I, but it is sad to see performance loss where other parts are said to speed up
FROGGS hmmm
japhb Yeah, best I can get right now for 'time perl6-m -e 0' is .602s
[Tux] drop happened between 20150223 and 20150305 19:45
FROGGS februrary? O.o
[Tux] bedtime. we had a 20 km hike today. tired now
japhb [Tux]: The startup time problem is more recent.
Like in the last week or less, I think
[Tux] japhb, it is not startup time that dropped
japhb Ah, is this the lexicalref performance loss? 19:46
FROGGS [Tux]: then please report some code that was faster back then when you get a chance
[Tux] github.com/Tux/CSV/blob/master/README <= code did not change
japhb FROGGS: I thought there was a known drop, which timotimo++ had tried to fix, but got stuck, and jnthn had not had time yet to figure out the problem. Mind you, I could have missed where it was resolved. 19:47
[Tux] github.com/Tux/CSV/blob/master/csv-ip5xs.pl <= that is all the code
$ time perl6 csv-ip5xs.pl </tmp/hello.csv 19:48
went from 6 seconds to 15
anyway. really bedtime now
FROGGS japhb: ahh, the native ref introduction wrt lexical something... that rings a bell
[Tux]: gnight
japhb I'm weirded out by the sudden startup slowdown though. That just doesn't make a ton of sense to me. 19:51
Could it be that with panda/eleven merged, we're following startup CUR paths we didn't hit before, that are in need of some TLC?
FROGGS japhb: I'm at 0.315s on a core i5 laptop 19:52
japhb: the CUR::Installation stuff only gets involved when you actually load a module you installed via panda
japhb FROGGS: What did you get with 2015.03? And have you installed a few modules with panda/eleven in your latest build?
FROGGS let me install something... 19:53
19:54 lichtkind left
timotimo japhb: the known drop would probably not be that visible in startup speed, i think 19:54
timotimo visited the local zoo today
japhb Ah, gotcha 19:55
Good zoo?
japhb has been to too many bad zoos, and not enough really good ones.
timotimo i'm not sure what makes a good or bad zoo
i haven't been to many zoos in my adult life 19:56
japhb timotimo: Takes good care of the animals, gives them lots of space and time off from constant humans, separates predators and prey enough not to scare the bejeesus out of the prey, and so on.
timotimo ah
in that case, it's a ... medium zoo? 19:57
japhb Fair enough./
timotimo there's a very visible size difference between old cages/areas and new ones
the predators and prey animals are properly separated as far as i could tell
19:58 darutoko left
timotimo i couldn't see any indication of not good caring 19:59
two of the three polar bears were sort of stuck in an infinite loop of behavior, which scared me
but instead of worrying too much about something i can't do anything about, i was able to distract myself by looking at the cute animals they had there 20:00
FROGGS japhb: confirmed, the startup time increases the module module I install into a CUR::Installation repo :/
japhb: and tbh, I expected penalties like that
20:01 spider-mario left
timotimo you mean "the more modules you install"? 20:01
so it could be json parse time?
FROGGS I'll think about a solution
timotimo: aye and aye
timotimo we have basically JSON::Tiny in there, right?
because that thing is sort of ... slow 20:02
FROGGS correct
timotimo dreadfully so :(
skids Aren't the dep md5s stored in the binary compunit? Why is json being parsed for other-than-panda purposes? 20:03
*sha256s
FROGGS it could also be about IO::Path stuff, because IMO it absolutifies paths to the installed files
20:03 spider-mario joined
FROGGS skids: to locate a comp unit by dist name, author and version 20:03
skids I thought that was done during precomp and cached in the CU by sha256? 20:04
FROGGS but your script does not get precompiled, so you have at least one entry point 20:05
skids ah.
japhb Why aren't scripts precompiled?
skids Well, they are if you do it by hand. 20:06
FROGGS japhb: for one because we don't have automatic precompilation
japhb Sigh.
FROGGS and we can only load precompiled modules as of now
japhb mentally increments the number of times he's wanted precomp -> caching
FROGGS I mean, you can precompile a script but then you have to load it as: perl6 -Mmyscript -e1 20:07
japhb Gotcha.
OK, so that's back to the question of why we're parsing JSON at startup. This feels like the kind of thing that wants to be something (much) faster. 20:08
FROGGS aye
the solution we are aiming for is to a) not output json but a perl 6 hash, and b) precompile that hash and load it as long the precomped file is valid 20:09
with a fallback to the hash's source file
20:11 Hyer left
japhb Hmmm 20:11
Is that likely to land before 2015.04? 20:12
FROGGS hmmm, the chances are good I think 20:13
japhb Ah, that's good at least. 20:14
skids Could we just throw the parse-to-json-objects in a BEGIN statement in a surrogate module and constant-fold it? 20:16
timotimo how much moreinput do we actually have?
20:19 mohij joined
japhb skids: Not a bad idea, that. 20:19
20:24 ggoebel left
ugexe in the future, will module uninstallation be handled by CompUnits as well? 20:25
we already have some manifest/uninstall stuff, but not sure if its something we should bother with further 20:26
skids ugexe: what you're too good for rm /share/perl6/site/?? ? :-)
psch timotimo: the state of moreinput in nom is "it should work if it's one block that gets broken up by newlines", more or less 20:27
FROGGS ugexe: since CUR's handle installation they should also handle uninstallation if that is possible for that CUR
ugexe well its hard to know i need to delet '/share/perl6/site/37' if i want to unisntall panda
skids agrees 20:28
ugexe and usage messages like: /home/nickl/.rakudobrew/moar-nom/install/share/perl6/site/37 [--notests] [--nodeps] install [<modules> ...] -- Install the specified modules 20:29
FROGGS deleting such a file would not be enough anyway... you need to unregister it as well
psch timotimo: i'm stuck, because it's still a bit of a mystery to me how exactly statementlist keeps track of nesting 20:30
ugexe right
timotimo ah 20:32
psch (at least i think that's why i'm stuck. it's a bit hard to tell with these things sometimes...) 20:35
timotimo oh, crap, installation busts usage messages? i thought we had wrapper scripts for that, but it could very well be that those just exec a new perl6 perhaps?
AFK for a bit 20:36
skids Wait, where is panda installing the uncompiled source nowadays? 20:37
japhb Oh, as a further push to "we should land a performance fix for the startup problem before 2015.04" -- I just realized that startup increasing based on number of modules installed is going to make startup after installing Task::Star rather painful.
FROGGS skids: also to site/ 20:38
skids: look at site/MANIFEST
20:39 diana_olhovik left
skids Wait ouch the souce is in decimal file names as well? 20:39
I guess with auths you have to but.
FROGGS well, the idea is that storing things is up to the used CUR 20:43
RabidGravy on a rough test startup is only a tad slower than a week ago 20:46
japhb RabidGravy: Highly dependent on how many modules you have installed.
FROGGS RabidGravy: well, without any module installed it is at 0.315s, and with 27 dists (116 files) it is at 0.485s 20:47
RabidGravy with the same modules 20:48
japhb I also wonder if this is defeating lazy deserialization again (pulling in too many lazy dynvars)
TimToady what's a lazy dynvar? 20:51
FROGGS a dynamic variable that's initialized on first use 20:52
we have proxies in rakudo that replace themself 20:53
TimToady if these proxies are themselves dynamic, could be be replacing them over and over in different dynamic scopes? or are they primarily in PROCESS or GLOBAL? 20:54
*could we be
FROGGS they live in PROCESS or GLOBAL 20:55
japhb TimToady: See 'git grep INITIALIZE_DYNAMIC' for a list
(That doesn't say where the are, just which dynamics we're doing this to.) 20:56
TimToady I wonder if maybe we're overusing the one-per-frame cache
japhb TimToady: one-per-frame cache? 20:57
TimToady see try_cache_dynlex in frame.c 20:58
20:59 rindolf left
TimToady at one point we were looking things up 20 frames deep on average, and that cache reduced it (at one time) to about 5 frames average 20:59
but I'm sure we can do better
especially if we're filling up the caches with the "wrong" dynvars
21:01 tbrowder left
TimToady we really only need to station a (larger) cache at each frame that actually sets a dynvar, and the rest of the frames could just pass along a pointer to that frame's cache 21:01
so you'd only ever visit the frames that actually set a dynvar
and there would "always" be room to cache any dynvar there 21:02
so it might scale a lot better with heavy dynvar use
japhb Yeah, agreed. With only one dynvar cache slot per frame, I can easily see that getting full along fairly deep frame stacks real darn quick. 21:04
TimToady and if the names are authoritative enough, you never even have to look into lexpads, you just follow each cache to the next one till you find the dynvar, hoist it to the top-level cache if you decide it's "hot"
japhb (Where by 'deep' I mean two-digit depth)
TimToady anyway, that's one of my lines in my personal todo file 21:06
21:08 skids left 21:14 dolmen joined 21:34 dolmen left 21:41 noganex joined, kjs_ joined 21:43 fhelmberger joined 21:47 adu joined 21:48 fhelmberger left, adu left 21:54 tinyblak left 21:55 kjs_ left 21:59 hobbs left 22:03 hobbs joined, hobbs left, hobbs joined 22:05 mohij left 22:15 RabidGravy left 22:19 virtualsue_ joined 22:21 virtualsue left, virtualsue_ is now known as virtualsue
masak m: my @a = 1, 2, 3; say @a.perl 22:24
camelia rakudo-moar ae6863: OUTPUT«[1, 2, 3]<>␤»
masak I don't backlog so carefully these days. I saw the commit go by that added '<>'. I didn't get why.
to me, when I .perl @a above, I totally expect `[1, 2, 3]`. the `<>` looks like added nit-picking to me. 22:25
22:27 espadrine_ left
masak though I guess this is the same "I don't see why we have to distinguish so much" argument that I put forth the other day... 22:28
ugexe m: my $paths = "zef/lib".IO; say $paths.perl; say @$paths.perl 22:29
camelia rakudo-moar ae6863: OUTPUT«q|zef/lib|.IO(:SPEC(IO::Spec::Unix),:CWD</home/camelia>)␤(q|zef/lib|.IO(:SPEC(IO::Spec::Unix),:CWD</home/camelia>),)␤»
ugexe is that correct? the trailing comma at the end?
im tracking down a problem with CREATE-INCLUDE-SPEC and CompUnit.precomp which takes an array reference 22:30
masak guess it's there because there's only one element.
m: say (1).^name; say (1,).^name
camelia rakudo-moar ae6863: OUTPUT«Int␤Parcel␤»
masak 'night, #perl6 22:31
22:34 telex left 22:36 telex joined
ugexe $@VAR is the proper way to pass an array as a reference right? 22:38
22:40 eli-se left
TimToady well, or just bind it to something that already has a $ 22:40
psch m: sub f($a) { say $a.perl }; my @a = ^5; f @a 22:41
camelia rakudo-moar ae6863: OUTPUT«[0, 1, 2, 3, 4]␤»
TimToady like that
@ only flattens if bound to a slurpy parameter
psch next i'd have asked what "as a reference" means here
TimToady the rest of the time, it effectively already is a reference
P6 doesn't have references like P5 does 22:42
22:42 Zoffix left
TimToady on the flip side, every object is already a reference 22:42
ugexe github.com/rakudo/rakudo/blob/2cd9...it.pm#L110 | :$INC = @*INC... and later CREATE-INCLUDE-SPEC(@$INC)
i guess is confusing me 22:43
22:43 beastd left 22:44 virtualsue left
TimToady the @ is unnecessary in the CREATE-INCLUDE-SPEC(@$INC), since the sig for that routine is (@INC), which is not a slurpy, so you can perfectly well bind $INC directly to @INC 22:45
likewise the first $INC just takes @*INC as a reference already for you 22:46
ugexe hmmm. something funny is going on. inside create-include-spec, that nqp::istype($_, CompUnitRepo::Locally) is returning true when it shouldnt be (and thus calling .short-id which doesnt exists for the values i passed to CompUnit.precomp(:INC("some/path")) 22:47
but at least i know its not that now 22:48
TimToady sneaky derivation chain to CompUnitRepo::Locally maybe? istype is not testing === 22:49
ugexe well im testing the :@INC im passing by iterating each value and doing that nqp check. they return false for all items
it happens after passing to CompUnit.precomp(:@INC) 22:50
No such method 'short-id' for invocant of type 'Str' (or 'IO::Path' depending on what ive tried)
TimToady are you suggesting that precomp is clobbering @INC?
ugexe im not sure im smart enough to know what im suggsting :) but if i explicitly pass in an empty array it doesn't happen 22:52
and the error changes between 'Str' and 'IO::Path' depending on what i populate the array with
TimToady hmm, I don't understand the :$INC = @*INC, line in the call 22:53
looks like there's a missing -> before the argument list 22:54
ugexe there are no tests/roasts for that afaik
TimToady so I have no idea what it thinks it's doing with the --> outside a signature
I think you should add a -> before the :$INC = @*INCline 22:55
ugexe the --> Bool is inside the signature though? doesnt that mean it returns a boolean? 22:56
TimToady I don't see a -> in your gist
but I have no idea how it could even parse without one 22:57
ugexe correct, just the -->... you said outside a signature i thought you meant you thought the --> was not inside the signature
s/...//
TimToady I don't see a signature there, if there's no ->
it's parsing the --> as a negated lambda - -> Bool { 22:58
m: my $foo; :$foo = 42; say $foo.perl 22:59
camelia rakudo-moar ae6863: OUTPUT«Cannot modify an immutable Pair␤ in block <unit> at /tmp/mp0buXJiRQ:1␤␤»
TimToady line 109, that currently reads "$out = self.precomp-path,", probably needs to be "$out = self.precomp-path, ->" instead 23:00
timotimo wow. i just watched "Grindhouse: Planet Terror" with three friends. it was quite amazing 23:01
TimToady otherwise lines 110,111, and part of 112 are not in a sinature
*sig
timotimo and now the weekly blog post is going to be "a bit" late again
ugexe i see. ill give that a shot 23:02
23:04 pecastro left
tony-o timotimo: did you watch it intertwined with the tarantino part of the series? 23:08
23:08 kbenson joined
TimToady m: $_ = 42; s/\d+/xxx/; .say 23:10
camelia rakudo-moar ae6863: OUTPUT«xxx␤»
timotimo tony-o: please be more precise?
23:10 vendethiel left
tony-o timotimo: grindhouse has two movies, one by tarantino and one by rodriguez - when they played in the theaters the movies played in a way that a little bit played from one, switched to the other and played a bit there, until both were done 23:12
timotimo oh 23:13
i didn't know
we only watched the rodriguez part
but tarantino had a role in it again and it was also nice
and of course there were the "fake" previews for other videos
movies*
tony-o the other one is called death proof
they're both pretty good though ^^ 23:14
timotimo we're now watching Mystery Science Theater 3000 (the movie) 23:16
ugexe -> gave me X::Syntax::Malformed :( 23:26
gist.github.com/ugexe/471a878e3b85be9d2446
timotimo can you show more context? 23:27
ugexe as in, more of the build log? or the piece of code i changed
23:28 skids joined
timotimo the resulting m-CORE.setting 23:29
close to the problematic line
lucasb method precomp(CompUnit:D: $out = self.precomp-path, :$INC = @*INC, :$force, --> Bool) { ... } 23:31
^^ The signature is this one, isn't it?
ugexe yes 23:32
except with the '->' added after $out = self.precomp-path
(updated the gist to include)
lucasb to me, it looks like a valid signature *without* the "->" 23:33
ugexe eh me too. timtoady thought it didnt look valid and suggested adding the '->' 23:34
timotimo a ->? 23:35
how can you have a -> without a { }
ugexe < TimToady> line 109, that currently reads "$out = self.precomp-path,", probably needs to be "$out = self.precomp-path, ->" instead 23:36
timotimo i'm a bit confused 23:37
well, --> needs to be inside the ( ... ), but why would it be -> instead? 23:38
ugexe --> *is* inside the ( ... )
timotimo where can i see the code? 23:39
more than just a few bytes?
ugexe gist.github.com/ugexe/c9222be48783...e1-txt-L29 23:41
timotimo i don't see a method precomp at all 23:42
ugexe CompUnit.precomp passes that :@INC to CREATE-INCLUDE-SPEC, but CREATE-INCLUDE-SPEC incorrectly returns true for nqp::istype($_,CompUnitRepo::Locally); and thus incorrectly calls .short-id on a Str (or IO::Path)
$cu.precomp line 29?
timotimo it's a use, not a declare
i have no idea what's even ... 23:43
ugexe its calling the .precomp method on a CompUnit object
timotimo i thought there was a syntax error? 23:44
23:44 BenGoldberg joined
ugexe oh i thought you meant the code that led to the discussion between me and timtoady 23:44
github.com/rakudo/rakudo/blob/2cd9...it.pm#L109 23:45
timotimo maybe i'm not in a state to make sense of the whole situation
ugexe all i did was add the '->' as suggested
BenGoldberg What am I doing wrong here? : 23:46
m: my Array[Int] @test; @test[0][0] = 1; say 'ok';
camelia rakudo-moar ae6863: OUTPUT«Cannot look up attributes in a type object␤ in method AT-POS at src/gen/m-CORE.setting:10992␤ in method ASSIGN-POS at src/gen/m-CORE.setting:2197␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3426␤ in block <unit> at /tmp/cnURkN06rr:1…»
23:47 tinyblak joined, gfldex left 23:48 lucasb left
BenGoldberg Or to put it another way, how can I declare that @test is an Array of Array of Int? 23:48
timotimo hmm, something isn't autovivify ing properly? 23:49
BenGoldberg m: my @test; @test[0][0] = 1; say 'ok'; 23:50
camelia rakudo-moar ae6863: OUTPUT«ok␤»
BenGoldberg m: my Int $anint; say $anint;
camelia rakudo-moar ae6863: OUTPUT«(Int)␤»
geekosaur m: my Array[Array[Int]] @test; @test[0][0] = 1; say 'alive';
camelia rakudo-moar ae6863: OUTPUT«Cannot look up attributes in a type object␤ in method AT-POS at src/gen/m-CORE.setting:10992␤ in method ASSIGN-POS at src/gen/m-CORE.setting:2197␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3426␤ in block <unit> at /tmp/eF0QCb0GKI:1…»
geekosaur autovivify of array elements seems b0rk? 23:51
BenGoldberg m: my Array[Int] @test; my Int $anint; $anint = @test[0][0];
camelia rakudo-moar ae6863: OUTPUT«Cannot look up attributes in a type object␤ in method AT-POS at src/gen/m-CORE.setting:10992␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3423␤ in block <unit> at /tmp/GiZgWGP_S3:1␤␤»
BenGoldberg m: my @test; my Int $anint; $anint = @test[0][0];
camelia rakudo-moar ae6863: OUTPUT«Type check failed in assignment to '$anint'; expected 'Int' but got 'Any'␤ in block <unit> at /tmp/oJfg8Ch07l:1␤␤»
BenGoldberg I'm tempted to not declare types, if that's what's going to happen. 23:52
23:54 Zoffix joined 23:57 Sqirrel left