»ö« 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
eli-se haha 01:38
I made someone believe comments have runtime cost in C++.
BenGoldberg You're an evil person. 01:42
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
BenGoldberg Umm, freudian slip? 01:56
BenGoldberg is still giggling, though
tony-o looks intentional :-)
ah
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
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!
TimToady trivial for you :) 02:15
eli-se At least, within a single stack frame. 02:16
time to sleep, bye! 02:17
dalek c: d971ef5 | skids++ | lib/Language/syntax.pod:
Typo fix.
02:58
dalek c: abf90a7 | skids++ | lib/Language/setbagmix.pod:
Fix description of (>+) and (<+) "arguments" -> "elements" and order of $a,$b
03:47
TimToady >+ ? 03:53
TimToady oh, bag ops 03:54
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
dalek ecs: 6074ad5 | TimToady++ | S02-bits.pod:
revised semantics for ~~ wrt Whatever

We now allow Whatever to autoprime a ~~, but not WhateverCode.
04:09
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…»
TimToady m: say (1,1e0).map: * ~~ Int 04:21
camelia rakudo-moar d76ea8: OUTPUT«True False␤»
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 :)
andreoss is there still a chance to see a video of TimToady's talk at fosdem or it's gone missing completely ? 06:58
vendethiel computer, message. 07:08
yoleaux 5 Apr 2015 22:07Z <eli-se> vendethiel: I implemented sleep with Boost.Asio!
vendethiel grats, eli-se
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
Ven m: say grep *, 0, 1, 2, 3; 08:06
camelia rakudo-moar d76ea8: OUTPUT«0 1 2 3␤»
[Tux] Inline::Perl5 till broken 08:35
still
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
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
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␤»
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«友⃣␤»
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
nwc10 anyway, yes, this illustrates your point - "anything with anything" 09:08
jnthn No, 友 just means "friend" :) 09:10
Today seems to be continued Easter relaxation; will some good tuits tomorrow and Wednesday :) 09:11
nwc10 We had snow. (And sunshine) 09:14
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
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
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
[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
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 :-)
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
lancew masak: ==> Installing Template::Mojo ; ==> Successfully installed Template::Mojo 10:45
masak: thx
tadzik masak: a full bowl of puns :) 10:48
colomon lizmat++
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
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)
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 :)
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
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
lucasb Network problems? 13:59
geekosaur freenode burped
RabidGravy is it possible to use panda to install from a local directory? 14:01
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
RabidGravy psch, perfect 14:02
masak found a bug. gist.github.com/masak/3a8ab0dc74d6c6c25287 14:18
reporting it now, unless someone says it's already in RT. 14:19
hoelzro o/ #perl6 14:33
psch hoelzro \o 14:35
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?
lucasb m: $_ = 42; say "numba: $0" if /(\d+)/ 14:56
camelia rakudo-moar d76ea8: OUTPUT«numba: 42␤»
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
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
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
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
TimToady fwiw, subst-mutate is the only method in core that attempts to declare $self is rw: 15:35
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
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
TimToady (and that's a failure trying to compile the setting, so maybe a circularity issue) 15:50
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
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
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
[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
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
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
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?
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
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
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++)
FROGGS nine_: it seems to be a precomp issue :S 17:38
nine_ FROGGS: sounds like not fun 17:42
FROGGS yeah, trying to hunt it down now 17:43
Hyer I was going to learn a little P6 by porting my scrabble-cheating program 17:48
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
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」␤»
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
RabidGravy now back to the, er, non-trivial ones I'm procrastinating 18:16
masak .oO( nonnoddy ) 18:19
RabidGravy big earsy 18:21
PerlJam
.oO( bugs? thumper? )
18:23
nine_ FROGGS: works again :) Thanks!
RabidGravy noddy != big ears
FROGGS \o/
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
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
[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
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
FROGGS ugexe: yeah, nine_++ already guessed that... but nice to get a confirmation on that :o) 19:06
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
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
[Tux] nine_, FROGGS, will the performance also return? 19:42
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
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
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
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
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
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?
japhb skids: Not a bad idea, that. 20:19
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
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
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
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
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
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
ugexe $@VAR is the proper way to pass an array as a reference right? 22:38
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
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
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
tony-o timotimo: did you watch it intertwined with the tarantino part of the series? 23:08
TimToady m: $_ = 42; s/\d+/xxx/; .say 23:10
camelia rakudo-moar ae6863: OUTPUT«xxx␤»
timotimo tony-o: please be more precise?
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
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
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…»
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