»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:00 _28_ria joined
japhb The more I work on sample programs for Terminal::Print, the more I realize we need a lot more people recreating the 20th century's greatest hits so we can flesh out all the bits we've glossed over in our APIs. 00:01
00:03 cyphase joined 00:10 dugword left 00:16 _28_ria left 00:18 _28_ria joined, _28_ria left
japhb .tell jnthn Sorry, to be clear I want to avoid doing *combiner* handling on $*IN. I still want to pass on any above-ASCII characters I receive, I just want every input character to be passed on immediately, even if that means that I could end up with isolated combiners. 00:19
yoleaux japhb: I'll pass your message to jnthn.
00:23 benji joined 00:24 benji is now known as Guest30283
Guest30283 How do I make sure a string follows the format of a url, 'https:// *' or 'http:// *' 00:24
00:26 AlexDaniel joined 00:32 BenGoldberg joined
AlexDaniel m: say ‘ ~~ /^ https? ‘://’ / 00:34
camelia rakudo-moar e195e5: OUTPUT«「」␤»
AlexDaniel m: if '' ~~ /^ https? '://' / { say ‘yeah!’ } 00:35
camelia rakudo-moar e195e5: OUTPUT«yeah!␤»
00:35 Guest30283 left
AlexDaniel you're welcome! 00:36
too bad adding a space between http and s will give a warning…
Geth oc: 705cc7de6f | (Samantha McVey)++ | highlights/package.json
Add some more info to npm package.json

Will suppress some warnings of a missing repository
00:45
oc: d6a7645a3e | (Samantha McVey)++ | util/compile-sass.sh
Make sure we check more than if the sass command just exists before falling back

We should fall back if we get an error-code running the program
00:47 raschipi joined 00:53 lep-delete left 00:55 lep-delete joined
TimToady japhb: currently for single char input I use a trick like: repeat { $buf ~= $TTY.read(1) } until try my $s = $buf.decode; 00:59
yoleaux 22 Jan 2017 14:33Z <raiph> TimToady: Would you agree that, in P6, "all object types are option types" (where option type is as per en.wikipedia.org/wiki/Option_type)
TimToady 'course the tty has to be set up first with stty, which is non-portable 01:00
01:00 astj_ joined
japhb TimToady: Oh nice, that's a cleaner version of an idea that was rattling around my head 01:02
TimToady then I do @INPUT ~= $s.comb so I can do my own escape recognition 01:03
and all my other input routines just recognize and pull stuff out of @INPUT
japhb TimToady: Won't you fall out of that repeat...until before you have the full escape?
geekosaur this can actually be done "portably" via libuv if moar sets up fd-s that are isatty() as uv_tty_t streams 01:04
see the ticket I linked earlier, which was about the node.js folks finding a bug in windows 8.1 and later console support when trying to switch the mode via libuv
TimToady well, my switch is 'when "\e"' and then I get more
japhb TimToady: Ah, gotcha. 01:05
TimToady: Do you have this abstracted into a module yet?
TimToady nope
japhb No reason for me to do so if you're already 90% there ....
japhb is slowly gearing up to build a terminal widget library, but having to invent mortar before being able to place the bricks 01:06
01:08 travis-ci joined
travis-ci Doc build failed. Samantha McVey 'Make sure we check more than if the sass command just exists before falling back 01:08
travis-ci.org/perl6/doc/builds/194334178 github.com/perl6/doc/compare/ffb02...a7645a3e67
01:08 travis-ci left
TimToady .tell raiph Yes, I think of them as "maybe" types, but that's the same thing. 01:09
yoleaux TimToady: I'll pass your message to raiph.
BenGoldberg Unless they've got a :D attached.
MasterDuke TimToady: fyi, i left a robo-message for you in -dev 01:10
Geth oc: 93ffee0855 | (Samantha McVey)++ | util/compile-sass.sh
Try and fix travis build
01:11
01:11 kaare_ left
BenGoldberg .tell raiph If an object type has either :D or :U attached to it, then it probably can't be considered an option type. :) 01:15
yoleaux BenGoldberg: I'll pass your message to raiph.
01:15 aborazmeh joined, aborazmeh left, aborazmeh joined, telex left 01:17 telex joined
BenGoldberg m: my $x; dd $x.?y.?z; 01:23
camelia rakudo-moar e195e5: OUTPUT«Nil␤»
BenGoldberg wonders why Nil instead of Mu. 01:24
m: my $x = Nil; dd $x;
camelia rakudo-moar e195e5: OUTPUT«Any $x = Any␤»
BenGoldberg m: my $x = Mu; dd $x; 01:25
camelia rakudo-moar e195e5: OUTPUT«Mu $x = Mu␤»
BenGoldberg m: my $x = Any; dd $x;
camelia rakudo-moar e195e5: OUTPUT«Any $x = Any␤»
raschipi Nil is the absence of a value.
BenGoldberg And neither Mu nor Any nor slip() would be suitable? Note that I'm not objecting, just curious. 01:26
raschipi If returned .? (Any), that's a fine something, hypotetically, for a method to return.
01:26 agentzh left
raschipi An empty slip is also an acceptable value to return and you couldn't tell the method wasn't actually there. 01:27
It has to return something loopy enough so the programmer can tell for sure what happened. 01:28
loony*
TimToady note that a slip has many more methods defined on it than Nil does 01:29
raschipi It would be useful if it returned a Failure telling more about what happened. 01:31
TimToady a Failure is supposed to throw whenever you try to use it as a real value 01:32
because lazy exceptions
but that would be too lazy
raschipi And Nil doesn't. So this makes easier on the programmer if he wants to just ignore it. 01:33
TimToady this is one of those situations where we treat Nil as the most benign form of Failure
raschipi Returning a Failure would force people to deal with the case that the method isn't there.
If I call an inexisting method, would I get a Failure or an Exception? 01:34
Without the '?'. 01:35
TimToady m: say 42.foo.WHAT
camelia rakudo-moar e195e5: OUTPUT«No such method 'foo' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
01:36 travis-ci joined
travis-ci Doc build passed. Samantha McVey 'Try and fix travis build' 01:36
travis-ci.org/perl6/doc/builds/194337433 github.com/perl6/doc/compare/d6a76...ffee085509
01:36 travis-ci left
TimToady it throws immediately, it would appear 01:36
raschipi BenGoldberg: Does that answer your question? 01:38
m: say 42.foo.WHAT; CATCH { default { say "gotcha!" } } 01:41
camelia rakudo-moar e195e5: OUTPUT«gotcha!␤»
01:42 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg, pisa joined 01:43 mr_ron joined, BenGoldberg left 01:44 BenGoldberg joined, mr_ron left, zacts joined, dugword joined
pisa hi, i want dump mbc for perl6 programs, and execute : perl6 --target=mbc example.pl , but it prompt "Cannot dump this object; no dump method" 01:50
and perl6 --starget=parse example.pl it works
brokenchicken What's mbc? 01:51
pisa MoarVM byte code
brokenchicken Ah
pisa the rakudo doc says it can dump some stages of the perl6 programs 01:52
github.com/rakudo/rakudo/blob/nom/...unning.pod
raschipi BenGoldberg: :D and :U types are still maybe/option types in Perl6 because a Function can still return Nil or Failure even when :D is present. They're the only undefined types that can be returned when there's a :D. 01:54
01:55 kaare_ joined
BenGoldberg hadn't thought of that. 01:55
raschipi There's no way to declare a type that isn't maybe/option in Perl6, because a function/method can always return Failure/Nil. 01:56
BenGoldberg .tell raiph nvmnd raschipi++ informed me that even types with :D on them can get Nil/Failure in them. :) 01:59
yoleaux BenGoldberg: I'll pass your message to raiph.
01:59 ccakes joined
raschipi BenGoldberg: Well, they can't. This is only valid for checks on return types. Asigning it will blow up. 02:00
BenGoldberg m: sub foo() --> Int:D { Nil }; dd foo(); 02:01
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3sub foo()7⏏5 --> Int:D { Nil }; dd foo();␤ expecting any of:␤ new name to be defined␤»
BenGoldberg m: sub foo(--> Int:D) { Nil }; dd foo();
camelia rakudo-moar e195e5: OUTPUT«Nil␤»
BenGoldberg m: sub foo(--> Int:D) { Nil }; my Int:D $bar = 42;
camelia ( no output )
BenGoldberg m: sub foo(--> Int:D) { Nil }; my Int:D $bar = foo; 02:02
camelia rakudo-moar e195e5: OUTPUT«Type check failed in assignment to $bar; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg m: sub foo(--> Int:D) { Nil }; my Int:D $bar = foo();
camelia rakudo-moar e195e5: OUTPUT«Type check failed in assignment to $bar; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel this new error message is pretty nice by the way
brokenchicken Nil bypasses return type constraint (and Failure is Nil)
m: class Meows is Nil {}; --> Int:D { Meows }().WHAT.say 02:03
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Prefix -- requires an argument, but no valid term found␤at <tmp>:1␤------> 3class Meows is Nil {}; --7⏏5> Int:D { Meows }().WHAT.say␤ expecting any of:␤ prefix␤»
brokenchicken m: class Meows is Nil {}; -> --> Int:D { Meows }().WHAT.say
camelia rakudo-moar e195e5: OUTPUT«Nil␤»
brokenchicken m: class Meows is Nil {}; -> --> Int:D { Meows }().^name.say
camelia rakudo-moar e195e5: OUTPUT«Meows␤»
BenGoldberg "cannot be itself" is slightly strange wording ;)
raschipi You should see what we had before: "type Int:D cannot be Int:D". That was really confusing. 02:05
AlexDaniel skids++ 02:06
(0a1d93253)
raschipi: actually…
c: 0a1d9325^ sub foo(--> Int:D) { Nil }; my Int:D $bar = foo(); 02:07
committable6 AlexDaniel, ¦«0a1d9325^»: Type check failed in assignment to $bar; expected Int:D but got Int:D␤ in block <unit> at /tmp/u6AZdSjAAw line 1␤ «exit code = 1»
AlexDaniel ah, indeed
c: 0a1d9325~200 sub foo(--> Int:D) { Nil }; my Int:D $bar = foo();
committable6 AlexDaniel, ¦«0a1d9325~200»:
raschipi m: sub foo(--> Int:D) { Nil }; my Int:D $bar is default 42 = foo();
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3Int:D) { Nil }; my Int:D $bar is default7⏏5 42 = foo();␤ expecting any of:␤ constraint␤ infix␤ infix stopper␤ postfix…»
AlexDaniel raschipi: “expected Int:D but got Int:D” is not worse than that ↑
BenGoldberg I'd have prefered something like "expected value type $t1 cannot assign to container type $t2"
raschipi Yes, it was even worse than I remebered. 02:08
Something like: "expected value type Int:D cannot assign to container type Int:D"? 02:10
skids Problem is "container" has a different shade of meaning. 02:11
raschipi "expected value type Int:D cannot assign to Int:D", then? 02:12
skids Well, it's "type object" usually, but that takes a while to sink in wen first learning the language. 02:13
02:13 z8 joined
skids And saying it's an "open set" might be to mathy. 02:14
too
02:15 _28_ria joined, z8 left, pisa left
TimToady it's really more of a linguistic idea, just common generic nouns 02:16
like "man" in "Socrates is a man."
we tend to lowercase our proper nouns, and uppercase our common nouns, in that sense 02:17
skids Maybe "Expected instance of type Int:D, but got a type object instead."
02:18 kalkin- left, kalkin- joined
raschipi BenGoldberg: What do you think? Would that be more digestible wording? 02:18
skids But I don't know if maybe we can find something future-proofed vs smiley additions.
raschipi Uuuuu, smiley adittions :D 02:19
skids (I think there was mulling over an opimization-friendly smiley that means "This class exactly, not a subclass")
brokenchicken
.oO( but what color is the bikeshed?.... )
02:20
raschipi "Expected instance of type Int:D, but got an undefined object instead."
brokenchicken: Let we have fun.
02:20 rmusial left 02:21 abruanese left
brokenchicken Is Int:D even a type? 02:21
02:21 Ben_Goldberg joined 02:22 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg, kaare_ left 02:24 kaare_ joined
raschipi brokenchicken: How can it be defined when Int isn't real? 02:25
brokenchicken raschipi: what do you mean? 02:26
raschipi brokenchicken: twitter.com/officialjaden/status/3...04?lang=pt 02:27
02:27 rmusial joined
TimToady m: say Int ~~ Real; # :-) 02:27
camelia rakudo-moar e195e5: OUTPUT«True␤»
brokenchicken ...
raschipi: fuck you too 02:28
TEttinger it's a meme
02:28 abruanese joined, yqt left 02:29 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
raschipi brokenchicken: Sorry for offending you, it was meant as a joke. 02:32
samcv can someone help me out with this error i'm seeing gist.github.com/13a1b7175588374df2...35f33e23c4 02:36
gist.github.com/13a1b7175588374df2...35f33e23c4
says it's on line 19
AlexDaniel дрикр еххох мессаге? :) 02:38
which error message? :)
AlexDaniel did it again
TimToady samcv: you gave the same link twice, if the first was meant to be the message
samcv oops looks like it did paste twice 02:39
Cannot resolve caller infix:<+>(Mu, Int); none of these signatures match:
02:39 mr-foobar left
TimToady might need to use --ll-exception to figure out where it's throwing from 02:40
brokenchicken m: my %h; %h<foo><bar> + 1
camelia rakudo-moar e195e5: OUTPUT«WARNINGS for <tmp>:␤Useless use of "+" in expression "<bar> + 1" in sink context (line 1)␤Use of uninitialized value of type Any in numeric context␤ in block <unit> at <tmp> line 1␤»
kalkin- I have a module lib/Foo.pm6 & and a class lib/Foo/Bar.pm6. In module Foo i have a sub, how do I access it in the class Foo::Bar, without doing use Foo at the top? 02:41
brokenchicken It's coming from %range-nos{$range-no}<last> being Mu somehow
kalkin- I thought Foo::Bar is a sub scope of Foo, so it should have access to all stuff in Foo?
brokenchicken And changing that elsif to elsif %range-nos{$range-no}<last> andthen %range-nos{$range-no}<last> + 1 == $point { crashes with a QAST error :S
raschipi kalkin-: Doesn't work that way. 02:42
brokenchicken m: dd Nil<meows> 02:43
camelia rakudo-moar e195e5: OUTPUT«Nil␤»
kalkin- m: module Foo { sub f { say "Asd" } class Bar { method new { f() } } }; Foo::Bar.new 02:44
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3module Foo { sub f { say "Asd" }7⏏5 class Bar { method new { f() } } }; Foo␤ expecting any of:␤ infix␤ …»
kalkin- m: module Foo { sub f { say "Asd" }; class Bar { method new { f() } } }; Foo::Bar.new 02:45
camelia rakudo-moar e195e5: OUTPUT«Asd␤»
02:45 ilbot3 left
kalkin- raschipi: but why does the scoping work in the example above? 02:45
brokenchicken m: my %h = 0 => 'a' => Nil; dd %h{0}<z>
camelia rakudo-moar e195e5: OUTPUT«Mu␤»
brokenchicken kalkin-: because Bar is inside Foo 02:46
m: dd (:42a)<foo> 02:47
camelia rakudo-moar e195e5: OUTPUT«Mu␤»
kalkin- k, so why did you guys decide in perl6 that if the scopes are spited up in files, it behaves differently?
brokenchicken samcv: ^ cause of issue
samcv reading
kalkin- there must be some logic behind this which I don't understand yet
02:47 ilbot3 joined
samcv ok thanks brokenchicken 02:49
brokenchicken wonder if Nil or Any is a better choice there
m: my %h; dd %h<blah>
camelia rakudo-moar e195e5: OUTPUT«Any %h = Any␤»
TimToady kalkin-: that looks buggy to me; Bar shouldn't be findable inside Foo 02:50
oh, wait, I misread 02:51
class Bar is inside of Foo 02:52
kalkin- TimToady: yes
TimToady but brokenchicken++ said that already; should learn to read
brokenchicken kalkin-: when they're in separate files, Bar is no longer inside Foo 02:53
raschipi kalkin-: It's on purpose. Say you release a module called Acme::Forsure. Someone else might have released a module called Acme. The fact that Acme exists should be irrelevant for your mudule unless you ask for it.
kalkin- i see 02:55
This confuses me a little bit, because as a programmer reading some code I have no simple way to find out if Foo::Bar is defined inside Foo or if it an own module 02:56
samcv i'm not sure why this isn't working though gist.github.com/6493f4a0c49fc7515b...2444708e92 02:57
i moved the code all into file scope and used my. doesn't work using our either
Unexpected named argument 'exists' passed
i haven't had this issue before with nonhashes and such 02:58
brokenchicken kalkin-: why do you need a simple way for that?
samcv: precedence, you're passing :exists to ! 02:59
m: my %h; say !$h<foo>:exists
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$h' is not declared. Did you mean '%h'?␤at <tmp>:1␤------> 3my %h; say !7⏏5$h<foo>:exists␤»
brokenchicken m: my %h; say !%h<foo>:exists
camelia rakudo-moar e195e5: OUTPUT«Unexpected named argument 'exists' passed␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: my %h; say !(%h<foo>:exists)
camelia rakudo-moar e195e5: OUTPUT«True␤»
samcv ah ok
brokenchicken m: my %h; say %h<foo>:!exists
camelia rakudo-moar e195e5: OUTPUT«True␤»
brokenchicken m: my %h; say %h<foo>:exists.not
camelia rakudo-moar e195e5: OUTPUT«True␤»
kalkin- brokenchicken: may be you are right and there is no reason for it. It just confuses me a little bit, but I think I will get used to it 03:00
03:00 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
raschipi kalkin-: In Perl6, a Class and a Module are as different as a Method is from a Function, I would say. They are very similar concepts. 03:01
03:02 labster left
brokenchicken kalkin-: I don't get what namespaces are about either. Foo::.keys gives `Bar` regardless of whether it's declared inside or not 03:03
kalkin-: and I gess Foo::Bar in a separate file just affects the namespace stuff but not scoping
kalkin- I thing I understand why you don't want lib/Foo/Bar.pm6 inherit the scope of lib/Foo.pm6, but why can I access Foo::Bar if it's defined inside Foo? Which purpose does it serve? 03:05
03:05 cyphase left
kalkin- It's two different concepts which are intermixed and hard to keep apart, when learning 03:05
brokenchicken kalkin-: same as how you can access Foo::some-routine() 03:06
kalkin-: without importing it (and pollutting the nasmespace into which you'd export it)
And you won't be able to access it if you stick a `my` before it
03:06 aborazmeh left
brokenchicken m: module Foo { sub f { say "Asd" }; my class Bar { method new { } } }; Foo::.keys.say 03:07
camelia rakudo-moar e195e5: OUTPUT«()␤»
brokenchicken m: module Foo { sub f { say "Asd" }; my class Bar { method new { } } }; Foo::Bar
camelia rakudo-moar e195e5: OUTPUT«Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
kalkin- brokenchicken: I see the usefulness of it, but why haven't you chosen i.e another separator for differentiating between scopes and module naming. So for nested Bar you would do Foo—Bar while for modules you would do Foo::Bar.
BenGoldberg m: module Foo { sub Bar { say 42 } }; my class Foo::Bar { }; dd Foo::Bar 03:08
camelia rakudo-moar e195e5: OUTPUT«Foo::Bar␤»
BenGoldberg m: module Foo { sub Bar { say 42 } }; my class Foo::Bar { }; dd Foo::Bar()
camelia rakudo-moar e195e5: OUTPUT«Foo::Bar(Any)␤»
brokenchicken m: module Foo { sub Bar { say 42 } }; my class Bar { }; dd Foo::Bar 03:09
camelia rakudo-moar e195e5: OUTPUT«Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: module Foo { our sub Bar { say 42 } }; my class Bar { }; dd Foo::Bar
camelia rakudo-moar e195e5: OUTPUT«42␤Bool::True␤»
brokenchicken kalkin-: Because Bar is in Foo's namespace, I guess. 03:10
BenGoldberg There seem to be two separate Foo namespaces, unless I'm confused.
03:11 cyphase joined
brokenchicken kalkin-: scopes are governed by files and blocks; not by naming. That I guess is the crux of any confusion here. 03:11
BenGoldberg: Foo::Bar() is a coercer, innit?
kalkin- brokenchicken: ohh that's a very good summary!
it makes it easier to remember 03:12
brokenchicken BenGoldberg: oh
m: module Foo { our sub Bar { say 42 } }; my class Foo::Bar { }; dd Foo::Bar 03:13
camelia rakudo-moar e195e5: OUTPUT«Foo::Bar␤»
03:13 jdmmmmm joined
brokenchicken m: module Foo { our sub Bar { say 42 } }; my class Foo::Bar { }; dd Foo::Bar() 03:13
camelia rakudo-moar e195e5: OUTPUT«Foo::Bar(Any)␤»
brokenchicken hehe
m: module Foo { our sub Bar { say 42 } }; my class Foo::Bar { }; dd &Foo::Bar() 03:14
camelia rakudo-moar e195e5: OUTPUT«42␤Bool::True␤»
brokenchicken m: module Foo { our sub Bar { say 42 } }; sub Foo::Bar { say "meow" }; &Foo::Bar()
camelia rakudo-moar e195e5: OUTPUT«42␤»
brokenchicken m: module Foo { our sub Bar { say 42 } }; sub Foo::Bar { say "meow" }; Foo::Bar()
camelia rakudo-moar e195e5: OUTPUT«42␤»
brokenchicken m: module Foo { our sub Baz { say 42 } }; sub Foo::Bar { say "meow" }; Foo::Bar()
camelia rakudo-moar e195e5: OUTPUT«Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken hmm, mkay 03:15
BenGoldberg m: dd sub Foo::Bar { };
camelia rakudo-moar e195e5: OUTPUT«Sub Foo::Bar = sub Foo::Bar () { #`(Sub|47526504) ... }␤»
BenGoldberg m: dd sub Foo::Bar { 42 }; dd Foo::Bar();
camelia rakudo-moar e195e5: OUTPUT«Sub Foo::Bar = sub Foo::Bar () { #`(Sub|63320808) ... }␤Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg m: dd sub Foo::Bar { 42 }; dd &Foo::Bar();
camelia rakudo-moar e195e5: OUTPUT«Sub Foo::Bar = sub Foo::Bar () { #`(Sub|75346712) ... }␤Cannot find method 'Any' on object of type List␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg headscratches. 03:16
m: module Foo { }; module Foo { sub Bar { 42 } }; Foo::Bar(); 03:17
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol 'Foo'␤at <tmp>:1␤------> 3module Foo { }; module Foo7⏏5 { sub Bar { 42 } }; Foo::Bar();␤ expecting any of:␤ generic role␤»
03:17 xtreak joined
BenGoldberg m: module Foo { }; use 'MONKEY-TYPING'; module Foo { sub Bar { 42 } }; Foo::Bar(); 03:17
camelia rakudo-moar e195e5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol 'Foo'␤at <tmp>:1␤------> 3Foo { }; use 'MONKEY-TYPING'; module Foo7⏏5 { sub Bar { 42 } }; Foo::Bar();␤ expecting any of:␤ generic role␤»
BenGoldberg I wonder if declaring/defining a subroutine in a namespace not our own is a perl5-ish thing, which is only legal by accident. 03:19
raschipi BenGoldberg: We even have the MOP to do it. 03:20
Perl6 doesn't enforce hygiene. 03:22
BenGoldberg m: sub Foo::Bar { 42 }; say Foo::Bar();
camelia rakudo-moar e195e5: OUTPUT«Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg So it that ^ a bug?
raschipi m: our sub Foo::Bar { 42 }; say Foo::Bar(); 03:25
camelia rakudo-moar e195e5: OUTPUT«Could not find symbol '&Bar'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken There's a ticket on the topic: rt.perl.org/Ticket/Display.html?id...et-history
BenGoldberg brokenchicken++ 03:28
I was about to file a rakudobug :)
japhb How do you tell a Supply to stop producing values? I don't mean closing taps, I mean I want something I can detect within a supply { } block to know I should stop generating new emits in the first place. 03:29
03:30 kyan left
raschipi japhb: Use a semaphore. 03:31
japhb raschipi: I'm not sure that works for my use case. Can you expand on that suggestion a bit? 03:32
raschipi Have a shared variable and check it's value before suppling something. When you don't want more things, change the value. 03:35
japhb (Right now I'm imagining that you're saying "Keep a semaphore for each Supply, signal the semaphore when you want to tell the Supply to stop" ... but I'm talking about when you are just passing the Supply around, not with another piece of data (the semaphore))
raschipi: Yeah, that's roughly what I thought you meant.
03:35 labster joined
raschipi Put both in a class and pass the class around. 03:35
03:35 hartenfels left
japhb That's a workaround, but I'm asking if you can do something equivalent to: my $supply = supply { loop { DONE { last }; ... emit ... } }; $supply.done; 03:35
Hmmm, that might work a little better.
raschipi It's not builtin, no.
03:36 bhm left
japhb dang, I was hoping I was just missing something obvious. 03:36
03:36 bhm joined
brokenchicken m: react whenever supply { loop { CONTROL { when CX::Done { last } }; emit rand } } { .say; done if $++ > 10 } 03:39
camelia rakudo-moar 9728c4: OUTPUT«MoarVM panic: Trying to unwind over wrong handler␤»
03:42 abruanese left 03:43 rmusial left, cale2 joined, dugword left 03:48 noganex_ joined 03:49 rmusial joined
raschipi night people 03:50
03:50 raschipi left 03:52 noganex left 03:55 rmusial left 03:58 dugword joined 04:00 abruanese joined 04:05 abruanese left
ingy can panda install from a module repo clone dir? 04:09
geekosaur I think it's panda install /path/to/dir ? 04:10
ingy I'll try it
geekosaur: worked perfectly. cheers! 04:12
fwiw I did: cd /path/to/module; panda install --prefix=... . 04:13
04:18 cale2 left
AlexDaniel m: say “\c[male facepalming]” 04:24
camelia rakudo-moar 9728c4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name male facepalming␤at <tmp>:1␤------> 3say “\c[male facepalming7⏏5]”␤»
AlexDaniel what was it…
m: say “\c[man facepalming]” 04:25
camelia rakudo-moar 9728c4: OUTPUT«🤦‍♂️␤»
TimToady now that we have lowercase char names, we could probably use at least a colon after "character name" 04:26
samcv use a colon? 04:30
TimToady in the error message
04:30 BenGoldberg left
samcv ah 04:30
TimToady it's LTA
samcv where did you want a colon? 04:31
oh, unrecognized character name: male facepalming
^ like that?
TimToady yup
samcv we could use a comma. since commas denote different characters already 04:32
and can't exist in the names. (i need to strip commas from the unicode emoji names fyi)
those cannot be accessed because of that
04:32 BenGoldberg joined
samcv but yeah even if names aren't case sensitive people can still enter in lowercase, so a comma there would be good 04:33
TimToady well, colon is slightly more correct, English-wise
samcv true 04:34
but we can be sure commas will never appear in a name
since there are colons that are in names
TimToady but by then you've switched into name reading mode so it's not terribly ambiguous, unless you read your sentences right to left :) 04:35
AlexDaniel what about quotes…
samcv m: say "\c[abc, xyz]"
camelia rakudo-moar 9728c4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name abc␤at <tmp>:1␤------> 3say "\c[abc7⏏5, xyz]"␤»
samcv yeah quotes would be fine
TimToady mostly I tend to get rid of quotes in error messages where the token is clear (especially if there's a sigil), but we could use quotes here 04:36
AlexDaniel m: say “\c[family: man, boy]”
camelia rakudo-moar 9728c4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name family: man␤at <tmp>:1␤------> 3say “\c[family: man7⏏5, boy]”␤»
samcv yeah i need to fix that to have no comma :\
AlexDaniel “Unrecognized character name: family: man” would be crazy 04:37
samcv hahaha
AlexDaniel oh, it would be “Unrecognized character name: family: man, boy”
TimToady Unrecognized character name: "family: man" would be okay
or use square brackets even 04:38
Unrecognized character name: [family: man, boy]
since people are used to seeing squares anyway after \c
samcv could do squares I guess hmm 04:41
though if somebody does \c[BOY, MAN]
m: "\c[BOYMAN]"
camelia rakudo-moar 9728c4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name BOYMAN␤at <tmp>:1␤------> 3"\c[BOYMAN7⏏5]"␤»
samcv m: "\c[BOYMAN, MANBOY]"
camelia rakudo-moar 9728c4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name BOYMAN␤at <tmp>:1␤------> 3"\c[BOYMAN7⏏5, MANBOY]"␤»
04:44 khw left, agentzh joined 04:48 agentzh left 04:49 rmusial joined 04:53 Mer joined, Mer left 05:00 rmusial left 05:02 wamba joined
brokenchicken ah, dammit... still stopping to receive updates even with those ssh opts :( 05:03
samcv does this look fine to people a.uguu.se/zz7huLeRoR8l.png 05:04
05:06 rmusial joined
japhb finally found an idiom that worked for a cancelable supply 05:07
brokenchicken hm, actually it may be ServerAliveInterval in .ssh/config I added while hacking oN Geth
japhb: what is it?
geekosaur command line should override though
japhb sub mksupply { my $done = False; supply { until $done { ... emit ... } } does role { method done { $done = True } } }; my $supply = mksupply; $supply.act: -> $v { ...; $supply.done } 05:09
brokenchicken ah
japhb So essentially carrying that flag around, but instead of doing it by class, I did it with a closure. That was the easy bit. The hard part was remembering I could add a method to the supply returned by a supply { } block using 'does role { ... }' 05:10
TimToady samcv: it's pretty okay
japhb That combined with a (very) mildly enhanced version of TimToady's idiom to do raw terminal input gets me a sub that takes a readable IO::Handle and produces a raw per-character Supply of its input. 05:12
(With the ability to stop the input loop, which was the key thing I needed.) 05:13
AlexDaniel samcv: side-by-side comparison with quotes? 05:14
05:15 rmusial left, jdmmmmm left
samcv here's with quotes a.uguu.se/CeMBkSrPlG1u.png 05:16
05:18 Actualeyes left
AlexDaniel 🤷 05:19
to me [] feel a bit unnatural 05:20
who cares though, let's try [] 05:21
samcv AlexDaniel, it has been done 05:26
05:30 CIAvash joined 05:33 rmusial joined 05:38 Actualeyes joined
japhb TimToady: with your idiom of reading a byte at a time and trying to decode the buffer after each byte added, is it even possible to decode more than one character at that point? Why do $s.comb after '... until try my $s = $buf.decode'? 05:46
05:47 skids left
TimToady it might be superstitious 05:49
or a holdover from when I had a larger number in the read 05:51
japhb Yeah, seems likely 05:52
06:13 wamba left 06:19 wamba joined 06:21 dugword left 06:26 BenGoldberg left 06:28 wamba left
japhb .tell jnthn I've found a workaround for now. 06:33
yoleaux japhb: I'll pass your message to jnthn.
06:34 bjz joined
ingy waves 06:42
06:42 bjz left 06:43 bjz joined 06:50 labster left, labster joined, labster left
ingy how come I can't mv a p6 install directory? 06:50
Is that to make p6 be consistent with p5 annoyances? ;) 06:51
06:52 RabidGravy joined
ingy channels TheGoodTrollOfTheWest™ 06:53
06:54 bjz left 06:55 telex left 06:56 telex joined 06:58 domidumont joined 07:06 curt__ joined 07:07 bjz joined 07:09 curt_ left
ingy the good troll sleeps & 07:11
07:15 domidumont left 07:17 pecastro left 07:19 cibs left 07:20 wamba joined 07:21 cibs joined 07:23 parv joined
AlexDaniel ingy: it is not movable indeed 07:28
ingy: I think timotimo had some progress with this issue
07:29 xtreak left 07:32 xtreak joined 07:39 darutoko joined 07:40 aindilis joined 07:56 Woodi joined 08:01 salva joined 08:03 bob777 joined 08:04 bob777 left
AlexDaniel .tell lizmat ok, but what about this: mch: $_ = ‘this is a test’; my @a := m:g:c/\w+{say ‘ok’}/; say @a[0] # 00003955 08:11
yoleaux AlexDaniel: I'll pass your message to lizmat.
timotimo i ran into the same brick wall someone else recently ran into before me 08:12
AlexDaniel timotimo: which is? 08:16
timotimo hm, was it loading the core setting or something? that violently exploded? 08:17
08:18 z8 joined 08:19 domidumont joined, zakharyas joined, rindolf joined 08:21 abraxxa joined, dugword joined 08:23 domidumont left 08:24 domidumont joined 08:25 Guest35314 left, mr-foobar joined, z8 left, xtreak left, z8 joined, dugword left 08:26 xtreak joined 08:33 dogbert17 left, giraffe joined 08:34 giraffe is now known as Guest54596, domidumont left 08:37 koki joined, koki left 08:38 z8 left 08:39 koki joined 08:40 mr-foobar left 08:45 koki left, koki joined, Actualeyes left 08:46 koki left, koki joined 08:47 koki1 joined, koki1 left 08:48 Actualeyes joined 08:51 koki left, koki joined
AlexDaniel m: grammar A { token TOP { <so> }; token so { foo } }; say A.parse('foo') 08:57
camelia rakudo-moar 582260: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in any !reduce at /home/camelia/rakudo-m-inst-1/share/nqp/lib/QRegex.moarvm line 1␤ in any !cursor_pass at /home/camelia/rakudo-m-inst-1/share/nqp/lib/QRegex.moarvm line 1␤ in regex so at…»
AlexDaniel m: grammar A { token TOP { <so1> }; token so1 { foo } }; say A.parse('foo')
camelia rakudo-moar 582260: OUTPUT«「foo」␤ so1 => 「foo」␤»
08:58 ChoHag joined, raiph left, raiph joined 09:01 jonas1 joined 09:02 rumble joined, grumble left, rumble is now known as grumble 09:03 parv left 09:04 bjz_ joined
timotimo it's just calling the so method that everything has? 09:06
m: grammar A {}; say A.so
camelia rakudo-moar 582260: OUTPUT«False␤»
09:06 bjz left
timotimo 0: 09:08
b. 09:09
sk7bhk7g8
sk 09:10
Dβ 
apologies, l
apologies, cleaning the keyboard
09:14 espadrine_ joined 09:16 mr-foobar joined 09:23 dakkar joined
moritz uses his screen lock when cleaning keyboard :-) 09:23
09:23 araujo left
moritz if I accidentally type my password while cleaning, I know it's too weak :-) 09:23
AlexDaniel help! 09:28
mch: class C { method defined { True } }; say ?C
committable6 AlexDaniel, ¦«2015.12»: True␤¦«HEAD»: False
AlexDaniel is it supposed to work?
bisect: class C { method defined { True } }; say ?C
bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=5822605) because on both starting points the exit code is 0
AlexDaniel, bisect log: gist.github.com/c0e3dbde17a7e23a65...fc871fb99d
AlexDaniel, (2016-03-18) github.com/rakudo/rakudo/commit/24...8bc884d682
AlexDaniel ok, looking at this commit message I'd say “yes”, but still unsure 09:29
wait, but that's a type object 09:30
that doesn't matter 09:31
ok
timotimo good point, moritz 09:32
but it was kind of an emergency cleaning thing :)
turns out when you compress a juicebox to throw it away in a more compact shape, the straw can act like a firehose if there is even the tiniest bit of content left in said juicebox
09:37 araujo joined, araujo left, araujo joined
moritz juicehose :-) 09:37
timotimo yup 09:43
09:45 xtreak left 09:52 azawawi joined
azawawi hi 09:52
samcv 9.95 -> 9.5444583 seconds ( finding the index of a word located at the very end of a 7000000 character string)
azawawi just found a windows build error for rakudo
samcv optimizing some things
azawawi ci.appveyor.com/project/azawawi/pe...2egle#L148
c:\users\appveyor\rakudobrew\moar-nom\nqp\moarvm\src\core/frame.h(196) : error C2375: 'MVM_frame_destroy' : redefinition; different linkage 09:53
09:53 shun_ joined
committable6 azawawi, ¦«\users\appveyor\rakudobrew\moar-nom\nqp\moarvm\src\core/frame.h(196)»: Cannot find this revision (did you mean “2016.08.1”?) 09:53
09:53 shun_ left
azawawi maybe related to it github.com/MoarVM/MoarVM/commit/39...efb3abdebb ? 09:54
samcv this was using .match, not testing the nqp op change in speed
AlexDaniel haha committable6 09:56
samcv++
mch: [[97, 98], [99, 100, [101, 102, 103]]].chrs.say 09:57
committable6 AlexDaniel, ¦«2015.12»: a bc d e f g␤¦«HEAD»: Type check failed in converting element #0 to .chr; expected Int but got Array ($[97, 98])␤ in block <unit> at /tmp/VkHqITB_8M line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/VkHqITB_8M line 1␤ «exit code = 1»
AlexDaniel ↑ pfft, .chrs was doing » in 2015.12
10:00 tam_ joined, tam_ left
samcv hmm only seems to make long haystacks faster 10:02
really short ones it does slow down
by about the same much as the other speedup
10:03 azawawi left
samcv though i've seen this: www.codeproject.com/Articles/25056...x4167485xx 10:04
this guy has made loads of different versions of string search algorithms, says his is free software, we could ask him if he could license it Artistic 2.0 10:05
let me find a place where you can actually get the zip files
oh I can login with my github accuont on this site at least 10:06
shows 4-6x faster than GCC memmem which is about as fast as ours is atm 10:08
10:09 ChoHag left, xtreak joined 10:11 bjz_ left, bjz joined 10:23 araujo left 10:25 bjz left 10:34 bjz joined
lizmat .tell AlexDaniel This is a consequence of how the iterator works: special casing the first pull would slow down things a lot 10:34
yoleaux 08:11Z <AlexDaniel> lizmat: ok, but what about this: mch: $_ = ‘this is a test’; my @a := m:g:c/\w+{say ‘ok’}/; say @a[0] # 00003955
lizmat: I'll pass your message to AlexDaniel.
lizmat .tell AlexDaniel so I'd rather not change that unless jnthn TimToady think it should be changed 10:35
yoleaux lizmat: I'll pass your message to AlexDaniel.
AlexDaniel .
yoleaux 10:34Z <lizmat> AlexDaniel: This is a consequence of how the iterator works: special casing the first pull would slow down things a lot
10:35Z <lizmat> AlexDaniel: so I'd rather not change that unless jnthn TimToady think it should be changed
10:35 ChoHag joined 10:40 luiz_lha joined, xtreak left, espadrine_ left 10:43 xtreak joined 10:45 abraxxa left 10:46 xtreak left, abraxxa joined 10:48 xtreak joined 10:52 raschipi joined, wamba left 10:54 abraxxa left 10:55 abraxxa joined 10:56 astj_ left 10:58 astj joined
kalkin- m: sub trait_mod:<is>(Sub $s, :$sasl-mechanism) { say $sasl-mechanism }; sub f() is sasl-mechanism('PLAIN') {} 11:09
camelia rakudo-moar 582260: OUTPUT«PLAIN␤»
11:09 Actualeyes left
kalkin- m: sub trait_mod:<is>(Sub $s, :$sasl-mechanism) { say $sasl-mechanism }; sub f($a, $b --> Bool) is sasl-mechanism('PLAIN') {} 11:09
camelia rakudo-moar 582260: OUTPUT«PLAIN␤»
kalkin- wtf, why doesn't it work in my code? in my code “I get unexpected named argument 'onlystar' passed” at some random line 11:10
timotimo you want :$sasl-mechanism!
or else your own trait mod will be called for anything and everything
also, must me "multi sub"
kalkin- timotimo: Thanks! 11:11
11:11 TEttinger left
kalkin- I tried before with ! 11:11
my issue was if i use sub instead of multi the error is LTA. it says: “Required named parameter 'sasl-mechanism' is not passed” 11:12
timotimo that's exactly what happens, though
11:12 xtreak left
timotimo we could probably output other named parameters that get passed i guess? 11:12
or the whole call capture? (with only types instead of values)
kalkin- timotimo: may be just add: “You probably wanted to define multi trait_mod instead of sub?” at the end of the error message? 11:13
timotimo hm. how about this 11:14
we look in outer scopes if there's a multi defined with the same name
kalkin- ^ doesn't imply how I fix the error 11:19
*how I can fix the error (lost a verb) 11:21
timotimo right 11:22
the important step was missing
if there's already a multi with that name in the outer scopes we can check if any of their candidates would accept the arguments
then we can say almost for sure that putting a multi there would fix things
kalkin- yeah I think this could fit 11:24
arnsholt For generating the error, I hope 11:29
timotimo of course
arnsholt 'Cause that'd cause spurious warnings in the case where you *do* want to shadow a symbol in an outer scope
Good, good
Just had to make sure =)
timotimo of course
though you can put "only" in front for those cases :)
arnsholt Troo, troo 11:30
timotimo but still 11:31
we definitely want to teach perl6-fixit (or what it's called) to understand that error message ;)
samcv ok. i just made it 10x faster 11:33
\\o//
timotimo oh yeah!! 11:34
samcv running nqp::index. may make other things a bunch faster too, need to check those as well
for ah uh
the needle is only 5 characters
have not tested for large needles but it's going to be crazy
11:35 ChoHag left
DrForr Hrm, looks like I need to revitalize my local perl6-Just-F-ing-Fix-It :) 11:35
timotimo yeah, what's the proper name of that tool again, DrForr? 11:36
DrForr Uh, just that, I haven't uploaded it to github :) 11:37
arnsholt samcv: Sounds promising! 11:38
What did you implement?
samcv well it starts at the last character of the needle, and only falls back to the method it does now (grapheme by grapheme), in case there's a match 11:39
what does .match usually use to search for things? index? 11:41
moritz regexes, iirc 11:44
11:44 azawawi joined
azawawi hi 11:44
samcv andrewalker, in index
azawawi any reason ^add_method is not ^add-method?
samcv the moarvm op that's behind nqp::index
lizmat azawawi: because :-) 11:45
11:45 sena_kun joined
samcv lizmat, in perl 6, what does like .match use? 11:45
i have a 10x speedup in nqp::index but not seeing much gains in perl 6 lang with using .match
azawawi lizmat: ? :)
lizmat azawawi: there is no particular reason, I think, except it being there before kebab-case became available 11:46
azawawi found a usecase for add_method github.com/azawawi/perl6-odoo-clie...t.pm6#L128 :)
lizmat samcv: not understanding your question precisely
timotimo samcv: did you also optimize rindex?
samcv no I didn't
does match use more of rindex?
timotimo we can only emit a nqp::index if we have a non-greedy scan followed by a literal 11:47
azawawi lizmat: fair enough? change? :)
timotimo - QAST::Regex(:rxtype(scan) :subtype())
- hello world
^- this is what it looks like if the optimizer has figured out there's a literal we can scan for 11:48
in --target=optimize
lizmat azawawi: my understanding is that jnthn is mildly against it
timotimo hm. we might want to have a pass that turns .*? at the beginning of a regex into nothing if there's already a scan in front
samcv i still am not sure what the answer is. so it isn't using nqp::index very much? 11:49
timotimo yeah
but i was wrong about one thing 11:50
samcv what is it doing?
or can we use index more?
timotimo scan + literal turns into index, not into rindex
samcv also note that needle's have to be >=2 chars to get an improvement
timotimo the regex optimizer is not very good yet. not at all.
azawawi lizmat: fair enough. Thanks for the explanation :)
samcv so is it still doing a lot of rindex?
timotimo no, the only optimization we have uses index, not rindex 11:51
samcv can you make me a regex which _will_ use index? 11:52
i'd like to be able to check some measurable improvement on the perl 6 side
azawawi lizmat: but is it meant for public consumption? since I did not see any example on docs.perl6.org/routine/add_method
timotimo /foobar/ should use index 11:53
samcv timotimo, so i want to do perl6 --target=optimize? and check for index?
timotimo what regexes were you testing?
no, it will not show "index"
lizmat azawawi: good question: I think it's fair to say that any change there will break a lot
timotimo you want to look for nodes with rxtype(scan) that contain a string directly as their first child
lizmat azawawi: don't we have some documentation about the MOP ?
azawawi lizmat: aha docs.perl6.org/type/Metamodel$COLO...dContainer . My bad 11:54
samcv oh hey
9x faster 11:55
awesome!!!!
timotimo neato
samcv huggable, release
huggable samcv, nothing found
timotimo NeuralAnomaly: status
NeuralAnomaly timotimo, [✘] Next release will be in 3 weeks and 5 days. Since last release, there are 12 new still-open tickets (12 unreviewed and 0 blockers) and 31 unreviewed commits. See perl6.fail/release/stats for details
samcv uhm what other tests should i do, like needle lengths
timotimo tests, as in, stuff to measure how well your code does? 11:56
samcv yes
11:57 azawawi left
timotimo good question 11:57
samcv i have only tested on one document and one needle which is only 5 chars long
my $var = slurp "BidiCharacterTest.txt"; my $t1 = now; for ^100 { $var.match(/'# EOF'/) }; say now - $t1;
fyi it will search for the letter F and find plenty of those
in this file, 7.6MB big 11:58
12:00 zakharyas left
timotimo mhm 12:02
you also generate a proper skip table?
samcv no 12:03
so it can still be faster, but it's a very good improvement for now :) 12:04
timotimo um, but if you don't generate the proper skip table, how do you know how far to advance?
i.e. won't you miss needles in the middle sometimes? 12:05
12:05 mxco86 joined
samcv oh yeah. that is true. and NYI 12:05
timotimo ok, if it's only NYI that's fine 12:06
samcv somehow it seems to find them all though 12:07
well. probably not ALL
but most of them
timotimo but depending on the needle and the haystack you may not get any performance improvement at all
12:10 domidumont joined 12:15 ggoebel left
lizmat samcv: maybe the implementation of Str.split(@needles) can be an inspiration ? 12:19
arnsholt samcv++ # String improvement of all kinds! 12:24
*s
12:26 domidumont left 12:27 domidumont joined 12:40 raschipi left
samcv hmm i could always make searching for a set of repeated characters faster for now? 12:41
idk how much the time to check it would be
could only trigger for long haystacks or something 12:42
DrForr Oh, cool, I just segfaulted perl6. (It's not up-to-date though.) 12:44
Been a while. 12:46
lizmat 💭 up-to-date perl6 has new, improved segfaults 💭
DrForr I'll rebuild and see what happens.
lizmat .u 💭
yoleaux U+1F4AD THOUGHT BALLOON [So] (💭)
samcv nice
12:48 fugue_ joined
fugue_ Hi #perl6. I've just installed Rakudo Star on my Win10 machine and it's working fine. However trying to install any module with panda results in "Failed cloning git repository". What can I do to analyze/resolve this problem? 12:50
lizmat feels like a firewall issue 12:51
AlexDaniel fyi, zef is preferred over panda
El_Che AlexDaniel: is it?
AlexDaniel I think so
DrForr Segfault goes away after rebuilt, whew. 12:52
*rebuild 12:55
El_Che AlexDaniel: if so, it should be clarified. Pretty confusing to newbies, imho. For the record, I like both projects 12:56
AlexDaniel El_Che: it already is: github.com/perl6/doc/commit/4a2ebf...90210232c2 12:58
12:59 fugue_ left
AlexDaniel this thread has some justification 13:00
www.reddit.com/r/perl6/comments/55babx
El_Che AlexDaniel: I'll have a look later. Thx for the links! 13:02
13:09 ggoebel joined 13:12 domidumont left, domidumont joined 13:21 AlexDaniel left 13:22 zakharyas joined, dugword joined 13:27 dugword left 13:40 bjz left
SmokeMachine I wanna write a module that starts a single promise, and if I use that module again (on a different block) it do not start that promise again... is it possible? 13:52
something like a singleton but survives to different module loads... 13:53
moritz if you use an outer lexical as the state var for the singleton, does that not work? 13:57
jnthn Just store it in a lexical in the module mainline (or in a bare block in the module mainline) and export a sub that returns it 13:59
yoleaux 22 Jan 2017 23:59Z <japhb> jnthn: is there a way to stop doing encoding handling on $*IN? I want to get truly raw .getc (one character at a time, as soon as the keypress happens), without the delay loop that comes from looking for combining characters ....
00:19Z <japhb> jnthn: Sorry, to be clear I want to avoid doing *combiner* handling on $*IN. I still want to pass on any above-ASCII characters I receive, I just want every input character to be passed on immediately, even if that means that I could end up with isolated combiners.
06:33Z <japhb> jnthn: I've found a workaround for now.
jnthn .tell japhb Probably setting the encoding to ASCII might do it too. Otherwise, use .read(1) - after all, you're after bytes, not chars. 14:01
yoleaux jnthn: I'll pass your message to japhb.
jdv79 HTML::Entity is broken. is there an alternative? 14:07
or does anyone get what's broken about it?
Geth oc: Altai-man++ created pull request #1155:
Two minor fixes
14:16
14:22 charsbar joined 14:30 nicq20 joined 14:31 eliasr joined
nicq20 Hello \o 14:31
So, what is an IO::ArgFiles?
sena_kun >For windows compatibility, .p6 is the preferred extension for cross-platform scripts. 14:33
[Coke] drinks YA coffee. 14:34
sena_kun What exactly does it mean?
arnsholt Coffee with homeopathic quantities of coffee, possibly? =) 14:35
mst yet another coffee, I would presume
given Young Adult Coffee doesn't make a lot of sense 14:36
sena_kun arnsholt, nice spotted, but windows-related phrase was point of my interest. ;)
14:36 araujo joined
DrForr Irish coffee with homeopathic dose of coffee, especially today. 14:36
[Coke] (pull dead modules from the ecosystem) do we have a way to mark them as "invalid" or something?
Geth oc: 2d68aa0a20 | Altai-man++ | template/search_template.js
Limit search results to 50
14:39
oc: 9f8c5f619b | Altai-man++ | doc/Language/modules.pod6
Make META6.json searchable
oc: 841ac539e4 | Altai-man++ | 2 files
Merge pull request #1155 from Altai-man/master

Two minor fixes
rindolf jdv79: hi, how are you? 14:45
[Coke] is just cog in great $dayjob machine. Best cog, great cog, fantastic gears. 14:46
nine nicq20: IO::ArgFiles is for automagically processing files passed on the command line. 14:48
nicq20 nine: Huh, ok. Thakn you! 14:49
*thank
nine nicq20: it's e.g. behind the lines() function. That's equivalent to IO::ArgFiles.lines. I.e. it processes STDIN if you don't pass any files or the files you give it on the command line 14:50
14:51 hchienjo joined 14:52 skids joined 14:54 hchienjo left
nicq20 nine: Is IO::ArgFiles only for command line stuff then? 14:54
nine nicq20: that's a fair characterization, yes
nicq20 nine: Thanks, I saw it mentioned in some of the docs, but there is no doc for it. 14:57
nine nicq20: you could help the next one by submitting a doc patch :) Feel free to just re-use my answer 14:59
15:00 Tonik joined
nicq20 nine: Ok, I'll try. Never made a new page before, so I'll try to follow the pattern of other pages. 15:00
15:01 wamba joined 15:04 sammers left
nicq20 Well, looks like there IS a page for IO::ArgFiles, but the web site just will not show it. 15:10
nine huh? 15:11
nicq20 nine: github.com/perl6/doc/blob/master/d...rgFiles.pm 15:12
nine: docs.perl6.org/type/IO$COLON$COLONArgFiles
15:13 zakharyas left
nicq20 nine: Unless I misunderstand how this works, doc.perl6.org is missing the page. 15:14
ugexe weird, IO::ArgFiles is included in the type graph and links to that url (but it is indeed 404)
15:15 jonas1 left, haxmeister joined
[Coke] moritz++ # book 15:15
nine doesn't know too much about doc.perl6.org
15:16 sammers joined 15:17 cdg joined 15:20 alimon joined, zakharyas joined
dalek href="https://modules.perl6.org:">modules.perl6.org: 78e5e79 | [email@hidden.address] | templates/root/index.html.ep:
Replace panda by zef following github.com/perl6/doc/commit/4a2ebf...90210232c2
15:24
href="https://modules.perl6.org:">modules.perl6.org: 18279ad | nxadm++ | templates/root/index.html.ep:
Merge pull request #66 from nxadm/master

Replace panda by zef following github.com/perl6/doc/commit/4a…
Geth oc: nicqrocks++ created pull request #1158:
Fix the extension so it can be read
15:33
oc: e6aa2b7a14 | Nic++ | 2 files
Fix the extension so it can be read
oc: 03431cd798 | Altai-man++ | 2 files
Merge pull request #1158 from nicqrocks/patch-1

Fix the extension so it can be read
nicq20 The file extension was .pm instead of .pod6
sena_kun nicq20++ 15:34
15:37 cschwenz joined
cschwenz Given that docs.perl6.org/language/5to6-perlv..._Variables states 'To quote the Perl 6 docs, "$! is the error variable." That's it. All the error variables appear to have been eaten by $!.', what _is_ the Perl 6 equivalent of Perl 5's "$!"? 15:38
moritz $! 15:40
nicq20 cschwenz: docs.perl6.org/syntax/$DOLLAR_SIGN! 15:41
moritz except that it also takes the function of p5's $@
cschwenz ah, thanks. english parsing fail on my part. :-( 15:49
my google-fu is failing me, is there a Perl 6 equivalent to Perl 5's ">&STDOUT"? 15:54
16:01 cschwenz left 16:04 jdmmmmm joined 16:07 domidumont left 16:12 jdmmmmm left
ugexe $*OUT = class :: { method print (*@args) { $do-something-with-args }; method flush { } } 16:16
16:17 nicq20 left
moritz there's also IO::String in the ecosystem 16:23
brokenchicken And IO::MiddleMan 16:24
brokenchicken has no idea what ">&STDOUT" is
mst opens another filehandle pointing at stdout, which I don't honestly see why you'd need to 16:25
but he left before I noticed the question
brokenchicken oh
16:27 TimToady left 16:29 TimToady joined
Geth oc: Altai-man++ created pull request #1159:
Fix broken examples, a couple of signatures and one table
16:42
16:45 ChoHag joined 16:49 cibs left 16:50 cibs joined 16:52 jdmmmmm joined
Geth oc: 84c8e02d73 | Altai-man++ | 10 files
Fix broken examples, a couple of signatures and one table

Here are mostly 'add semicolon'-like fixes
16:59
oc: c1df4572d8 | (Jonathan Stowe)++ | 10 files
Merge pull request #1159 from Altai-man/master

Fix broken examples, a couple of signatures and one table
17:00 luiz_lha left 17:01 zakharyas left 17:05 nicq20 joined, cdg left 17:06 cdg joined 17:09 sena_kun left
nicq20 So I think I missed it. Is 'Geth' the new 'dalek'? 17:09
moritz yes 17:10
17:15 sena_kun joined
nicq20 Cool. I like the name 'dalek' better though. :) 17:18
[Coke] we didn't own dalek, so we had to pick a new name. 17:21
moritz we didn't? 17:22
[Coke] didn't we?
SmokeMachine moritz: like this? www.irccloud.com/pastebin/FmJCJSvN/
[Coke] Or: the person who rewrote it got to pick.
kalkin- hmm, handles is missing documentation, what does it do? 17:25
ohh no wrong handles lookup
why are handles, fiddly & iffy part of the Glossary when they don't even have documentation? Should the be removed? 17:26
17:26 jdmmmmm left
brokenchicken The person who rewrote it got to pick :) 17:27
moritz handles should be documented
kalkin- the handles trait is documented, i just mixed it up with the handles entry in Glossary
17:27 FROGGS joined
kalkin- Should I make a PR to doc to remove the Glossary entries for fiddly iffy and handles? 17:28
[Coke] kalkin-: sure, although there is a huge "clean up glossary" ticket, smaller closable ones are good. 17:30
brokenchicken nicq20: Geth is more appropriate though :) Tools created to serve their masters...
[Coke] assign it to me, I'm happy to rip things out. :)
nicq20 brokenchicken: Oh, I get it! (Sorry, had to look it up. Never played Mass Effect. >_<) 17:34
17:34 raschipi joined
brokenchicken :o 17:35
17:36 zakharyas joined
kalkin- Coke: according to #728 fiddly & iffy are the reasons for the glossary to exists. “If only there was a definition.” :) 17:36
for handles there is only a questionmark
brokenchicken nicq20: that's like saying you never heard the Moonlight Sonata. 17:37
sena_kun It is better to document empty entries than just remove them, imho. And we decided to just clean up, not remove Glossary entirely, didn't we? 17:38
kalkin- My English isn't great, but my interpretation of iffy would be: ”Suboptimal code” & for fiddly: “Brittle and complicated code”? 17:39
But I seriosly don't know what handles should be for, besides the obvious dictionary definition 17:40
s/be for/stand for/g
nicq20 brokenchicken: Well it seems to have had a Mass Affect! :D 17:42
wow that was bad.
17:51 alimon left 17:53 dakkar left, cibs left 17:54 hchienjo joined 17:55 cibs joined 17:59 hchienjo left
[Coke] fiddly and iffy appear in the source for rakudo, so presumbably mean something specific. 18:01
18:01 Cabanossi joined 18:06 cdg left 18:09 mawkish__ joined 18:11 nicq20 left
brokenchicken Yeah, they're showing in some error messages 18:12
*shown
TimToady fiddly means "too complicated to apply a metaop to"
brokenchicken m: say 1 R?? 2 !! 3
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot reverse the args of ?? because conditional operators are too fiddly␤at <tmp>:1␤------> 3say 1 R?? 2 !!7⏏5 3␤»
brokenchicken m: say 42 !+ 42
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot negate + because additive operators are not iffy enough␤at <tmp>:1␤------> 3say 42 !7⏏5+ 42␤ expecting any of:␤ infix␤ infix stopper␤»
TimToady and iffy means it's often used as a boolean value 18:13
so even though && isn't strictly returning a boolean, we think of it that way
kalkin- TimToady: I will add your explanation to #728 18:14
TimToady m: say [.] 'a', 'b'
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call␤at <tmp>:1␤------> 3say [.7⏏5] 'a', 'b'␤»
ilmari it's not often you get complaints that something isn't iffy _enough_ ;)
TimToady m: say [.=] 'a', 'b'
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot reduce with .= because dotty infix operators are too fiddly␤at <tmp>:1␤------> 3say [.=]7⏏5 'a', 'b'␤»
TimToady m: say [ff] 'a', 'b' 18:15
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot reduce with ff because conditional operators are too fiddly␤at <tmp>:1␤------> 3say [ff]7⏏5 'a', 'b'␤»
timotimo m: sub infix:<??>($a, $b) { }; 1 R?? 2
camelia rakudo-moar 2f69be: OUTPUT«Potential difficulties:␤ Useless use of R?? in sink context␤ at <tmp>:1␤ ------> 3sub infix:<??>($a, $b) { }; 1 7⏏5R?? 2␤»
timotimo neat.
18:16 webstrand left, Cabanossi left
kalkin- TimToady: do you also know how the “handles” entry in Glossary should be defined? 18:16
brokenchicken
.oO( toss it... )
18:17
m: sub infix:<??>($a, $b) { $a }; say 1 ?? 2
camelia rakudo-moar 2f69be: OUTPUT«1␤»
brokenchicken m: sub infix:<??>($a, $b) { $a }; say 1 R?? 2
camelia rakudo-moar 2f69be: OUTPUT«2␤»
brokenchicken m: sub infix:<??>($a, $b) { $a }; sub infix:<!!> { @_ }; say 1 R?? 2 !! 42 18:18
camelia rakudo-moar 2f69be: OUTPUT«[2 42]␤»
TimToady there's also "diffy", which means the type of the operator result is sufficiently different from its arguments that op= makes little sense
brokenchicken m: sub infix:<??>($a, $b) { $a }; sub infix:<!!> { @_ }; say 1 ?? 2 !! 42
camelia rakudo-moar 2f69be: OUTPUT«[1 42]␤»
brokenchicken m: sub infix:<?> { @_ }; sub infix:<:> { @_ }; say 1 ? 2 : 42
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of ? and : for the ternary conditional operator; in Perl 6 please use ?? and !!␤at <tmp>:1␤------> 3?> { @_ }; sub infix:<:> { @_ }; say 1 ?7⏏5 2 : 42␤»
18:19 Cabanossi joined
TimToady kalkin-: handles should at least mention that it is the way we specify delegation between classes 18:19
kalkin- TimToady: and may be link to trait handles? 18:20
TimToady delegation means "pretend a part of me is the whole me"
well, I don't think we need to talk about the implementation of handles there much
to most users, handles is just syntax
gfldex .oO( It's Perl. You can tell by the error messages. ) 18:21
TimToady m: .oO( It's Perl. You can tell by the error messages. )
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3.oO( It's Perl. You7⏏5 can tell by the error messages. )␤ expecting any of:␤ infix␤ …»
18:21 z8 joined
TimToady m: .oO( "It's Perl. You can tell by the error messages." ) 18:22
camelia rakudo-moar 2f69be: OUTPUT«No such method 'oO' for invocant of type 'Any'␤ in block <unit> at <tmp> line 1␤␤»
gfldex at least I wasn't misquoted :->
18:22 mawkish__ left
TimToady m: .oO( It's Perl: You can tell by the error messages. ) 18:23
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at <tmp>:1␤------> 3rl: You can tell by the error messages. 7⏏5)␤»
kalkin- [Coke]: I added all the explanations TimToady provided to the issue.
18:23 kyan joined 18:24 Cabanossi left
TimToady m: .oO( It's Perl: You can tell by the error messages? ) 18:24
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3Perl: You can tell by the error messages7⏏5? )␤ expecting any of:␤ infix␤ infix stop…»
kalkin- [Coke]: do you want to be assigned the whole issue, or should i open one for this three entries and assign it to you?
TimToady m: .oO( It's Perl: You can tell by the error messages... ) 18:25
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing required term after infix␤at <tmp>:1␤------> 3: You can tell by the error messages... 7⏏5)␤ expecting any of:␤ prefix␤ term␤»
TimToady m: .oO( It's Perl: You can tell by the error messages...... )
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5===␤Undeclared name:␤ You used at line 1␤Undeclared routines:␤ by used at line 1␤ can used at line 1. Did you mean 'tan', 'cas'?␤ error used at line 1␤ messages used at line 1␤ tell used at line 1␤ the …»
TimToady that's......LTA......
I guess it means I'm a user? 18:26
18:26 Cabanossi joined
TimToady it seems really conf-used 18:26
gfldex I'm often confused by my own thoughts, so I wouldn't blame Rakudo for being LTA. 18:28
TimToady oh, it's complaining about "by" there :)
raschipi Need more quotes 18:29
TimToady or &
18:29 z8 left
raschipi Quotes are more useful for a begginer 18:29
TimToady most of the time the quotes are just clutter though 18:30
also, shouldn't it say "Undeclared names" if there's more than one?
part of the confusion is not seeing the newlines, which would line up the undeclared names and make it much more obvious what's going on 18:31
Oh, no, there's only one "name", and the rest are "routines", so that's okay 18:32
raschipi Soon you'll be like Tank looking at the Matrix, won't see the ␤, it will look like a real new line to you.
TimToady one place where we assume lowercase are routines, and uppercase are not
anyway, I'm fine with leaving the message as is 18:33
18:34 mawkish__ joined
gfldex m: do not "fear" and do not die; 18:38
camelia rakudo-moar 2f69be: OUTPUT«WARNINGS for <tmp>:␤Useless use of "not " in expression "not die" in sink context (line 1)␤»
TimToady wow 18:39
now how 'bout as good a one for taxes?
gfldex Thinking about it, that error message sounds a little bit suicidal. 18:40
TimToady m: do not die 18:41
camelia rakudo-moar 2f69be: OUTPUT«WARNINGS for <tmp>:␤Useless use of "not " in expression "not die" in sink context (line 1)␤Died␤ in block <unit> at <tmp> line 1␤␤»
TimToady sort of the opposite of an "easter" egg...
gfldex m: say so canabis
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ canabis used at line 1␤␤»
gfldex there we go
TimToady wonders what '"canabis" used' would mean...fake weed? 18:42
*nn I suspect 18:43
anyway, I'm fine with leaving it ambiguous for the entertainment value :)
[Coke] kalkin-: if it's on the big issue, no need to assign it, thanks. 18:44
mspo TimToady: resurrection jokes in January? 18:49
18:51 ggoebel left 18:52 wamba left 18:57 ggoebel joined 18:58 CIAvash left, jdmmmmm joined 18:59 pyrimidine joined 19:00 raiph left
jdv79 i feel like XML might be able to do better than die "could not parse XML"; 19:01
19:02 diakopter left 19:03 raiph joined, Tonik left 19:04 felher left 19:05 xyz__ joined
xyz__ :m sub f(Int @a, Int @b) {}; f([1,2,3], [4,5,6]) 19:05
:rakudo sub f(Int @a, Int @b) {}; f([1,2,3], [4,5,6]) 19:06
sena_kun m: sub f(Int @a, Int @b) {}; f([1,2,3], [4,5,6])
camelia rakudo-moar 2f69be: OUTPUT«Type check failed in binding to @a; expected Positional[Int] but got Array ($[1, 2, 3])␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
xyz__ rakudo: sub f(Int @a, Int @b) {}; f([1,2,3], [4,5,6])
camelia rakudo-moar 2f69be: OUTPUT«Type check failed in binding to @a; expected Positional[Int] but got Array ($[1, 2, 3])␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
xyz__ How do I get array parameters to work?
TimToady leave off the Int, or create your arguments to actually have that type 19:07
it's not going to intuit that 1,2,3 are all Int for you; we do nominal typing at that level
CIAvash[m] xyz__: docs.perl6.org/language/traps#Type...parameters 19:08
19:08 zakharyas left 19:10 Cabanossi left 19:11 Cabanossi joined
xyz__ I see. However this will get the subroutine "f" difficult to use for the users. A user calling this function would need to create a real Array[Int]. Does that mean if I want the user to be able to write "f([1,2,3],[4,5,6])" my only choice is prototype "f" as "(@a, @b)"? 19:11
TimToady well, you could redefine circumfix:<[ ]> if you don't mind it running tons slower 19:13
well, I suppose it wouldn't run slower if you simply assumed they're integers, but that's also a bit antisocial 19:14
I suppose at some point we might allow a declaration of Int() @a to coerce to an integer array, but that would also entail overhead 19:15
gfldex m: sub f(*@a where .all ~~ Int){ say 'ohai!' }; f 1,2,3; f 1,"two",3;
camelia rakudo-moar 2f69be: OUTPUT«ohai!␤Constraint type check failed for parameter '@a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
gfldex xyz__: ^^^ 19:16
19:16 lukaramu joined
xyz__ gfldex: My subroutine needs two array parameters. 19:16
TimToady you can do the same in subsigs for each arg 19:17
gfldex m: sub f(@a where .all ~~ Int, @b where .all ~~ Int){ say 'ohai!' }; f [1,2,3], [4,5,6];
camelia rakudo-moar 2f69be: OUTPUT«ohai!␤»
xyz__ Would "@a where .all ~~ Int" be slower than "Int @a" at runtime, or in both cases the compiler can check at compiling time? 19:19
gfldex m: subset IntArray of Array where .all ~~ Int; sub f(IntArray \a, IntArray \b){ say "I haz {a} and {b}" }; f [1,2,3], [4,5,6];
camelia rakudo-moar 2f69be: OUTPUT«I haz 1 2 3 and 4 5 6␤»
19:19 mawkish__ left
TimToady xyz__: both of those are checked at run time, but the Int will be faster because it's a nominal check 19:20
but then you must pass in Array[Int] as the nominal type 19:21
one could write a small type inferencer and poke it into circumfix:<[ ]>, but that would also have to run at run time unless all the args were literals
xyz__ Is there a general rule on what kinds of type checkings can be done at compile time? 19:22
gfldex you don't have to do the type check in the sig. It can make sense to do it when you iterate over the values so you can short circuit.
19:22 mawkish__ joined
gfldex all type checks are run time right now. Type checks on literals may become possible in a possible future. 19:22
TimToady note however, that once you have multiple dispatch, you only have to do the check for the dispatch, not for validation 19:23
gfldex m: my $T = Int; say 42 ~~ $T; 19:24
camelia rakudo-moar 2f69be: OUTPUT«True␤»
TimToady in some cases the dispatch can even be deduced at compile time
xyz__ m: sub f(@a, @b) { say @a[0] ~ @b[0] }; &f.signature
camelia ( no output )
gfldex xyz__: ^^^ you can create type objects at runtime
xyz__ m: sub f(@a, @b) { say @a[0] ~ @b[0] }; say &f.signature.perl
camelia rakudo-moar 2f69be: OUTPUT«:(@a, @b)␤»
gfldex so it would be pretty hard for the compiler to to type checks at compile time 19:25
After all Perl 6 is a dynamic dynamic language.
19:25 darutoko left
raschipi It isn't possible at compile time, but the optimizer will be able to use this information. 19:26
moritz Perl 6: making the hard possible since 2016
El_Che inserts a hardly possible joke 19:27
TimToady Perl 6 uses type information for multiple dispatch and for optimization. Strong typing for strong typing's sake comes in a distant 3rd.
xyz__ gfldex: I agree it's super dynamic!
[Coke] moritz++ # book
brokenchicken "all type checks are run time right now." I don't think that's true
[Coke] TimToady: and we aren't doing all the opts we could, eh?
brokenchicken m: say "hiiiiii"; sub foo(Int) {}; foo 42e0 19:28
camelia rakudo-moar 2f69be: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling foo(Num) will never work with declared signature (Int)␤at <tmp>:1␤------> 3say "hiiiiii"; sub foo(Int) {}; 7⏏5foo 42e0␤»
brokenchicken ^ that's a compile time error
gfldex Dynamic dynamic also means it is not dynamic at some places.
TimToady [Coke]: of course we aren't
moritz [Coke]: thanks
Geth oc: 2e5d1e3bdb | (Will "Coke" Coleda)++ | 2 files
move true/false/boolean glossary items to Bool

Part of #728
TimToady we'd do a lot more compile time opts if some of them weren't better done in a JIT
and for some apps we'd like much better AOP optimization where jitting is too heavy or late 19:29
all in good time
[Coke] github.com/perl6/doc/pull/1131 - anyone aside from AlexDaniel have feedback on whether or not we can drop generation of .pngs for the doc site? 19:30
gfldex A language for the next 100 years is better not rushed. :->
moritz m: grammar A { token TOP { <.foo('bla')> }; method foo($x) { say $x } }; A.parse('blerg')
camelia rakudo-moar 2f69be: OUTPUT«bla␤P6opaque: no such attribute '$!pos' in type Cursor when trying to get a value␤ in regex TOP at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
moritz how can I access the current cursor position or match or anything relevant in method foo? 19:31
19:32 Geth left 19:33 Geth joined, ChanServ sets mode: +v Geth
gfldex I'm likely wrong but believe to remeber that grammar stuff is deep in nqp-land, hence the lack of introspection. 19:33
TimToady m: grammar A { token TOP { <.foo('bla')> }; method foo($x) { say $x; return self } }; A.parse('blerg') 19:34
camelia rakudo-moar 2f69be: OUTPUT«bla␤»
[Coke] DrForr: why does Readline depend on panda?
Doesn't seem to require it except insofar as you need panda or zef to install it.
TimToady m: grammar A { token TOP { <.foo('bla')> }; method foo($x) { say $x; say self.pos; return self } }; A.parse('blerg') 19:35
camelia rakudo-moar 2f69be: OUTPUT«bla␤0␤»
19:35 pmurias joined
[Coke] DrForr: github.com/drforr/perl6-readline/issues/16 19:39
moritz TimToady: but I can't seem to access .t^H^Hself.to or self.pos in there 19:40
19:41 felher_ joined
moritz m: grammar A { token TOP { <.foo('bla')> }; method foo($x) { say self.pos; self } }; A.parse('blerg') 19:41
camelia rakudo-moar 2f69be: OUTPUT«0␤»
moritz huh
m: grammar A { token TOP { . <.foo('bla')> }; method foo($x) { say self.pos; self } }; A.parse('blerg') 19:42
camelia rakudo-moar 2f69be: OUTPUT«1␤»
moritz m: grammar A { token TOP { . <.foo('bla')> }; method foo($x) { say self.pos; self.to } }; A.parse('blerg')
camelia rakudo-moar 2f69be: OUTPUT«1␤No such method 'to' for invocant of type 'A'␤ in method foo at <tmp> line 1␤ in regex TOP at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
moritz oh, the error related from $!pos was from trying to return a non-Cursor 19:43
but since I want this for error handling, that's fine (I'll throw an exception anyway) 19:44
brokenchicken [Coke]: +1 on dropping PNGs. Considering they can be made from svgs with a single bash command, I find the "could be useful to some" argument weak. Especially since those pngs aren't even used on the site as far as I can see.
Ah, I now notice the link to raster at the bottom. Meh. Browser supported SVGs for ages now. 19:45
gfldex how about mobile devices? 19:46
moritz fwiw I originally was in favor of using PNG when embedding SVG into HTML was very unreliable 19:48
19:49 ocbtec joined
moritz s/embedding/usingi in <img> tags/ 19:49
now we can drop it if you want
brokenchicken moritz: that's already dropped. The question is whether to remove the tiny link under type graphs and the png file it points to 19:50
[Coke] .seen samcv
yoleaux I saw samcv 12:46Z in #perl6: <samcv> nice
brokenchicken gfldex: same difference
samcv hola
moritz brokenchicken: I understand that; that#s what I'm talking about :-)
que tal?
samcv [Coke], you pinged? 19:51
[Coke] samcv: syntax highlighting on doc site borked. guessing update to highlighter code in npm to blame?
gfldex i don't got a mobile phone. So somebody else has to check. :)
[Coke] (since I don't see anything obviously wrong in util/ or recently changed in assets/)
samcv :I saw the discussion. so you can still see the css tags on the page right?
xyz__ Supposing I'm using a grammar to parse a multi-line string, is there a way to get the number of a match object in the result?
raschipi It's borked for me.
samcv let me check. but i think it's probably css not applying
[Coke] samcv: <span>role</span></span><span>&nbsp;</span><span class="syntax--entity syntax--name syntax--type syntax--class syntax--perl6fe"><span>Canine</span> 19:52
samcv yeah it's tagging the text fine
[Coke] I don't see those classes anywhere in the generated style sheet.
samcv oh 19:53
i think.
i know what is happening
moritz gfldex: I just checked with Firefox Mobile on Android, the inline SVG displays fine
brokenchicken Right, why do those classes have "syntax--" tacked on to them?
[Coke] ah, found an entry here: highlights/atom-language-perl6/styles/styles.less
moritz even the Android "Internet" browser displays them 19:54
brokenchicken [Coke]: that's not used by doc site though 19:55
This is the highlights file: github.com/perl6/doc/blob/master/a...ights.scss
It ain't got the "syntax--" on classes cause there used to be none
samcv yeah the version of highlights changed 19:57
they changed shit
so it's seperated from the rest of Atom's scoping so this happened
i actually had to do the reverse, after i converted some atom theme to css 19:58
gfldex do they know there is a downstream?
samcv since it was between api's
i didn't think they would do it for highlights though, would only do it for atom
Geth oc: b1d51f1f5b | (Samantha McVey)++ | assets/sass/_highlights.scss
Maybe fix CSS not applying
19:59
samcv i did a search and replace. let's see if this fixes some of them
ok it went from 1.4.1 to 2.0.1 3 days ago 20:00
20:00 labster joined
samcv gonna see the whole changelog 20:00
what. their changelog is shit github.com/atom/highlights/blob/v2...ANGELOG.md 20:01
20:01 khw joined, bjz joined
moritz "stuff changed. Deal with it!" 20:02
samcv how can they just not put that change in the changelog?
Bug Fixes
remove iojs and 0.10 as they are no longer supported
^ as if
forgot the incompatibility changes...
maybe I should yell at them 20:03
gfldex telling them softly that they got downstream may work better
20:03 Actualeyes joined
samcv "All notable changes to this project will be documented in this file." # lol 20:03
yeah 20:04
moritz open an issue?
samcv once we have docs.perl6.org working again i will open an issue
20:05 pyrimidine left
brokenchicken Adobe takes the cake on changelogs.... "bugfixed and experience improvements". Literally: twitter.com/zoffix/status/794556225866317824 20:05
lizmat starts with the P6W, any news ?
20:05 pyrimidine joined
brokenchicken lizmat: bartolin++ and ugexe++ are core members now (Yeah, you prolly know already :)) 20:05
El_Che lizmat: market p6@fosdem
moritz according to twitter analytics, @perl6org had over 50k impressions over the last 4 weeks 20:09
lizmat moritz: link ?
20:10 pyrimidine left
moritz lizmat: twitter.com/perl6org/status/823624262690963456 20:12
lizmat :-)
oki
moritz
.oO( we're being meta here )
Geth oc: 58b702f5e8 | (Moritz Lenz)++ | doc/Type/Cursor.pod6
Document some Cursor methods
20:13
gfldex hits on my blog went up quite a bit since the beginning of the year and I posted a lot less then I used to. 20:15
gfldex.files.wordpress.com/2017/01....png?w=901
20:16 raschipi left 20:17 leah2 left 20:24 xyz__ left
[Coke] ... oh, there's another reason to fix my wordpress install... 20:24
20:24 mr-foobar left 20:27 espadrine_ joined, dataf3l joined
dataf3l hey guys 20:27
20:27 krakan joined
dataf3l when I try to compile my program on my digital ocean 1GB Ram machine it doesn’t compile and also it doesn’t send any error message at all 20:28
this is my version:
This is Rakudo version 2016.10 built on MoarVM version 2016.10
implementing Perl 6.c.
this is my command line:
perl6 --ll-exception --stagestats -I. -Icontroller -Imodel serve3.p6 --port=8080
this is the (sad) result
pastebin.com/HY5TPhMM 20:29
20:30 pyrimidine joined
dataf3l what I don’t understand, is why there is no error message whatsoever, this is very cryptic to me as a user of the system 20:30
20:30 jdmmmmm left
gfldex dataf3l: did you check the syslog for OOM killer? 20:31
dataf3l how do I check the syslog for the OOM killer ?
perlpilot dataf3l: what gfldex said. It's likely that something external to rakudo/moarvm did the killing
[Coke] Do we have a recommend amount of memory for building moar? 20:32
er, rakudo-m
DrForr Should be in /var/log/messages - you probably need sudo access.
20:32 mr-foobar joined
perlpilot dataf3l: also btw, not that it will necessarily help but, there are newer versions of Rakudo if you're going to build it yourself. 20:32
moritz [Coke]: 1.5GB last I experimented with it; maybe 2GB these days
dataf3l moritz, is that the minimum system requirement? 20:33
I’ll check
brokenchicken dataf3l: that's to build rakudo; not to run a program
dataf3l: and that dump suggests to a module you use is not found 20:35
20:35 dataf3l left
kalkin- Where can I find the code for rakudo-js? I found only very stale code on github 20:35
brokenchicken dataf3l: try without all those extra flags tacked on. And what's -Icontroller? -Imodule? Are those actual paths to module?
20:36 dataf3l joined
El_Che dataf3l's irc client ran out of memory :) 20:36
brokenchicken kalkin-: rakudo/rakudo in `js` branch
dataf3l: and that dump suggests to a module you use is not found
dataf3l: try without all those extra flags tacked on. And what's -Icontroller? -Imodule? Are those actual paths to module?
El_Che dataf3l: I built debs/rpms for my cloud machines: github.com/nxadm/rakudo-pkg/releas...ag/2017.01
dataf3l I already built rakudo
I’m just trying to build a program
these are paths to folders with pm6 files
El_Che dataf3l: it's rakudo + zef + panda
[Coke] "build a program?" 20:37
dataf3l run a program
[Coke] which program?
dataf3l my program
it serves on port 8080 and does simple postgresql insertion stuff
nothing fancy
kalkin- Hmm, do I understand it right, that I need moarvm/jvm + nqp + rakudo-js to transpile perl6 to JS?
moritz kalkin-: I don't think you need JVM
dataf3l El_Che thanks! that will come in handy in the future for sure! 20:38
kalkin- moritz: well I meant one of the already supported VMs for NQP
dataf3l however, rigth now it’s not the problem.
brokenchicken kalkin-: AFAIK no.
[Coke] dataf3l: I thought you just said it -was- the problem. :)
brokenchicken kalkin-: you do know JS backend is a baby, right? It managed to compile hello world just a week ago.
dataf3l no perl6 is already built 20:39
it’s just my program
brokenchicken, how do you know from the log it’s a missing module!?
kalkin- brokenchicken: I'm actually interested in the backend itself. It doesn't matter how mature it is. Just wanted to have a look at it 20:40
[Coke] dataf3l: we can give better (any?) help if you show us the code, the command line you used, etc.
perlpilot dataf3l: probably all those calls to try-load, need, load_module, etc
dataf3l I’m going to try to verify if brokenchicken’s suggestion of a missing module first
I’ll be quick
brokenchicken dataf3l: from the stacktrace. 20:41
backtrace whatver
El_Che dataf3l: ah ok, your problem is different than building then, but anyway, as you say it may be handy in the future
dataf3l oh 20:42
brokenchicken dataf3l: but without any code we can be playing the guessing game here for hours.
dataf3l I tried to tell my boss to let me open source the code
however
they haven’t given me still any response on that one
I don’t want to waste anybody’s time 20:43
you guys have been amazing so far
Geth oc/master: 20 commits pushed by jonathanstowe++
review: github.com/perl6/doc/compare/58b70...22ffd98413
20:44
20:44 wamba joined 20:45 alimon joined
brokenchicken ohh 20:45
dataf3l: are you doing this on Windows?
dataf3l: 'cause 2016.10 release had a precomp bug in it on windows 20:47
TimToady curt__: END should not run in precomp (nor should INIT, only BEGIN/CHECK should run); please rakudobug it
brokenchicken dataf3l: You could build the 2017.01 compiler release (rakudo.org/downloads/rakudo/ ) or at least the 2016.11 star (rakudo.org/downloads/star/ )
dataf3l that makes sense 20:48
however I don’t feel it’s quite the problem
I’m finding ways to get more memory
do newer versions (2016.11,2017.1) use less memory ??
brokenchicken not really
perlpilot dataf3l: eventually that statement may be true :) 20:49
lizmat TimToady: what's the rationale for not running END in a precomp ?
brokenchicken dataf3l: are you certain it's the memory that's the problem? 20:50
perlpilot lizmat: that's not "at runtime" nor as late as possible. Right?
brokenchicken dataf3l: try sticking `no precompilation` at the top of all your modules.
dataf3l may I know what that does? 20:51
lizmat perlpilot: END blocks are by definition at runtime, no ?
dataf3l but I like precompilation!, isn’t precomp good??
brokenchicken dataf3l: it tells the compiler to avoid precompilation of your modules.
lizmat dataf3l: precomp is good
perlpilot lizmat: aye. Maybe I'm mental, but I tend to think of precomp as "before runtime"
lizmat perlpilot: that's really an optimization 20:52
I mean, if a module hasn't been precomped already, it will get precomped automatically
20:52 jferrero left
lizmat unless you inhibit that 20:52
20:53 girafe left
brokenchicken dataf3l: well, on your release precompilation is broken. You can like it all you want with a script that doesn't run, I guess. 20:54
20:54 leah2 joined
dataf3l I’m not certain memory is the problem, to be honest 20:55
OK
it works now
I had to kill a few processes though
so it *was* memory
brokenchicken dataf3l: how much does it need?
dataf3l so apparently, initialization of a perl program takes a small spike of about 300-400mb of memory 20:56
DrForr Watching top(1) during the process can give you a clue.
dataf3l this is just to run a small daemon
however, once it runs, it takes less memory
20:57 Tonik joined
dataf3l 18558 root 20 0 344568 159312 25928 S 0.0 15.7 0:03.10 moar 20:57
20:57 alimon left 20:58 alimon1 joined
dataf3l moar takes about 344568 VIRT, 159312 RES, 25928 of Shared memory on ubuntu 64 bits 20:58
and it’s not even doing any work yet! :)
20:58 alimon1 left
dataf3l anyways guys, thank you so much for the help the OOM suggestion by gfldex was spot on 20:59
20:59 cale2 joined
cale2 Hey 21:00
[Coke] Ho
cale2 what would the perl6 version of this website look like? www.arewewebyet.org/
I'm thinking of translating a golang book about web development to perl6, but I'm not sure if all of the necessary libraries exist yet
moritz if use of Inline::Perl5 or Inline::Python is allowed, we're web! :-) 21:01
if not, dunno 21:02
[Coke] (docs) we should make sure giant merges pass 'make xtest'
DrForr cale2: Bailador in native Perl 6, Inline::Perl5 lets you use perl5 web modules.
moritz ugexe.com/hello-web-with-puree-perl-6/ another native option 21:03
tadzik puree <3 21:04
[Coke] (doc) xt/return-type.t complains about 'returns Int', but doesn't actually show the desired usage. 21:05
Geth cosystem: 0b713702a5 | (David Warring)++ | META.list
s/META.info/META6.json/
21:06 alimon joined
[Coke] DrForr: you see my Readline question? 21:06
21:06 Tonik left 21:07 bjz left
DrForr Haven't read my email today, will do that but it's ~bedtime out here. 21:08
Geth oc/master: 4 commits pushed by coke++ 21:09
21:10 pmurias left
[Coke] DrForr: short version: readline requires panda but shouldn't. 21:10
sena_kun [Coke]++
[Coke] sena_kun: for doc stuff? danke
sena_kun sure. docs need more love nowadays. 21:11
21:12 pmurias_ joined
DrForr Ah, thanks. 21:12
Fixed and pushed. 21:14
cale2 moritz: I mean, say you're doing everything without a framework. All of the bare bones tools are there, right?
maybe not form processing, idk 21:15
This is the book I'm thinking about translating: github.com/astaxie/build-web-appli...preface.md
21:16 agentzh joined
cale2 Well, that book, or this one: thewhitetulip.gitbooks.io/webapp-w...k/content/ 21:16
21:17 cdg joined, TEttinger joined
cale2 moritz: That puree blog post talks about Hiker. So what is Puree exactly? lol 21:18
21:21 bjz joined 21:26 grondilu joined
grondilu m: my @ = 1, 0; 21:26
camelia ( no output )
grondilu m: my @ = 1, |0 xx 2;
camelia ( no output )
grondilu m: my UInt @ = 1, |0 xx 2;
camelia rakudo-moar 6dd542: OUTPUT«Type check failed in assignment to @; expected UInt but got List ($(0, 0))␤ in block <unit> at <tmp> line 1␤␤»
grondilu ^looks wrong to me
m: my UInt @ = 1, 0, 0;
camelia ( no output )
21:27 bjz left
grondilu m: my UInt @ = flat 1, 0 xx 2; 21:27
camelia ( no output )
Geth oc: 00b15d7b21 | (Samantha McVey)++ | htmlify.p6
Speed up build by 25%, almost totally remove duplicated path errors
21:29
21:31 dataf3l left, dataf3l_ joined
grondilu m: my Int @ = 1, |0 xx 2; 21:32
camelia rakudo-moar 6dd542: OUTPUT«Type check failed in assignment to @; expected Int but got List ($(0, 0))␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: say my @ = 1, |0 xx 2; 21:33
camelia rakudo-moar 6dd542: OUTPUT«[1 (0 0)]␤»
grondilu hum
m: say .perl given my @ = 1, |0 xx 2;
camelia rakudo-moar 6dd542: OUTPUT«[1, (0, 0)]␤»
grondilu m: say .elems given my @ = 1, |0 xx 2; 21:34
camelia rakudo-moar 6dd542: OUTPUT«2␤»
grondilu I would have bet this used to work. 21:35
[Coke] ugexe: 'zef update' fails locally.
grondilu m: say .elems given my @ = 1, slip 0 xx 2;
camelia rakudo-moar 6dd542: OUTPUT«3␤»
rindolf (Samantha McVey)++ # speed up docs build
21:35 FROGGS left
grondilu m: say .elems given my @ = 1, |rand xx 2; 21:36
camelia rakudo-moar 6dd542: OUTPUT«2␤»
21:37 girafe joined
grondilu m: say my @ = +!$++ xx 3 21:38
camelia rakudo-moar 6dd542: OUTPUT«[1 0 0]␤»
rindolf github.com/perl6/doc/commit/00b15d...c86235R965 - can't one limit the seen-temps to the numbers instead of the whole file or am I missing something?
grondilu lol that's a neat way to do it
m: say my @ = +!$++ xx 20 21:39
camelia rakudo-moar 6dd542: OUTPUT«[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]␤»
Geth cosystem: dc9a04b7c0 | (Jonathan Stowe)++ | META.list
Adopt some orphaned modules
21:40
[Coke] rindolf: doesn't matter because that should be using File::temp
RabidGravy moritz, there ^
[Coke] github.com/perl6/doc/issues/1062 21:41
RabidGravy they at least somewhat build and install no
w
rindolf [Coke]: ah, ok
Geth oc: 0193f3e4dc | (Samantha McVey)++ | assets/sass/_highlights.scss
Revert "Maybe fix CSS not applying"

This reverts commit b1d51f1f5bd05abd059ca9727ddcb768c3277d66.
21:42
oc: 9525968e78 | (Samantha McVey)++ | highlights/package.json
Make sure we use highlights <2.0, to fix recent changes to highlights

The scopes of all items in CSS changed their scope as of version 2, but this was not listed in the changelog on the projects page.
samcv Github--
[Coke] samcv: if that works, please close out github.com/perl6/doc/issues/1156 21:45
samcv yea
[Coke] also, please checkout github.com/perl6/doc/issues/1152 if you get a sec.
samcv want to investigate what to do, because I don't like --syntax everywhere, makes the pages bigger for no reason
[Coke] Guessing it was an untest change to the non-async path.
b2gills [Coke]: `--> Int:D` goes inside of the signature
samcv yeah 21:46
21:46 bjz joined
samcv i did $proc ~~ Proc::Async or something right? i forget 21:46
[Coke] b2gills: whoops. we probably need a test for actual code validation to avoid that sort of dumb mistake.
samcv i'm gonna try running with --no-proc-async 21:47
[Coke] b2gills: so, method origin(Cursor:D: --> Any) ?
ugexe [Coke]: I cant reproduce, and the travis build from last night passed. Possibly network issue? 21:48
[Coke] ugexe: Yes, I'm very sure it's not dealing with my network at work properly. :)
missing an http proxy maybe?
b2gills m: method c (Cursor:D: --> Any) {}
camelia rakudo-moar 6dd542: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my method c'?)␤ at <tmp>:1␤ ------> 3method7⏏5 c (Cursor:D: --> Any) {}␤»
b2gills m: my method c (Cursor:D: --> Any) {} 21:49
camelia ( no output )
[Coke] so, yes. ok. fix coming.
[Coke] makes sure his proxy really is set. :(
dammit. ugexe++ # zef JFW. :) 21:50
21:50 bjz left
Geth oc: e3ca965b8f | (Will "Coke" Coleda)++ | doc/Type/Cursor.pod6
fix return signatures (b2gills++)
21:50
21:57 travis-ci joined
travis-ci Doc build failed. Samantha McVey 'Maybe fix CSS not applying' 21:57
travis-ci.org/perl6/doc/builds/194589662 github.com/perl6/doc/compare/2e5d1...d51f1f5bd0
21:57 travis-ci left
samcv wow travis is S L O W today 21:58
made that commit 2 hours ago 21:59
21:59 eliasr left
RabidGravy it's been like that for days 22:00
geekosaur ^ 22:01
SmokeMachine is that expected?
22:01 agentzh left
SmokeMachine m: class C { has IO::Path $a .= new: "."} 22:01
camelia rakudo-moar 6dd542: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol IO::Path␤»
geekosaur the free travis service is basically commercial travis infra being used for free stuff when it'd otherwise be idle. get enough free software projects doing that, and enough commercial users also using the infra, and yes things will suddenly slow down for us 22:02
22:02 pyrimidine left
SmokeMachine m: my IO::Path $a .= new: "." 22:02
camelia rakudo-moar 6dd542: OUTPUT«Type check failed in binding to mutate; expected Any but got IO::Path (IO::Path)␤ in block <unit> at <tmp> line 1␤␤»
22:02 pyrimidine joined
SmokeMachine 2 different errors... 22:03
m: constant Path = IO::Path; class C { has IO::Path $a .= new: "."} 22:04
camelia rakudo-moar 6dd542: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol IO::Path␤»
SmokeMachine m: constant Path = IO::Path; class C { has Path $a .= new: "."}
camelia ( no output )
SmokeMachine ?
[Coke] doesn't help that we're doing a full rakudo build all the time.
22:04 grondilu left 22:05 skids left
RabidGravy right that's me done 22:06
22:07 cdg left, pyrimidine left, cdg joined
brokenchicken Seems recent. I don't get that on 2017.01-1-g0c89292 22:08
bisect: m: my IO::Path $a .= new: "." 22:09
bisectable6 brokenchicken, Bisecting by output (old=2015.12 new=6dd542f) because on both starting points the exit code is 1
brokenchicken, bisect log: gist.github.com/f347668dcccd90597b...6f027a81a4
brokenchicken, (2016-02-18) github.com/rakudo/rakudo/commit/99...4283b48d0a
brokenchicken bisect: old=2017.01 new=HEAD my IO::Path $a .= new: "." 22:10
bisectable6 brokenchicken, Cannot find revision “2017.01”
22:10 RabidGravy left
brokenchicken bisect: old=0c89292 new=HEAD my IO::Path $a .= new: "." 22:10
bisectable6 brokenchicken, On both starting points (old=0c89292 new=6dd542f) the exit code is 1 and the output is identical as well
brokenchicken, Output on both points: Type check failed in binding to mutate; expected Any but got IO::Path (IO::Path)␤ in block <unit> at /tmp/QxGbRENWzj line 1␤
brokenchicken Oh 22:11
ugexe isnt that expected?
m: my $a = IO::Path.new
camelia rakudo-moar 6dd542: OUTPUT«IO::Path is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken SmokeMachine: both camelia and bisectable run restricted setting in which IO::Path is not the real IO path
SmokeMachine brokenchicken: but thats happening on my local perl6 too...
22:11 AlexDaniel joined
brokenchicken SmokeMachine: "thats" being what? 22:12
ugexe its like `(my $a = IO::Path.new) .= "."`
SmokeMachine brockenchicken: www.irccloud.com/pastebin/Vy0lgzqE/
brokenchicken ugexe: no, it's like my IO::Path $a = IO::Path.new: "." 22:13
SmokeMachine when I use a constant, like it it works...
m: constant Path = IO::Path; class C { has Path $a .= new: "."} 22:14
camelia ( no output )
22:14 jdmmmmm joined
brokenchicken SmokeMachine: there the `=` specifies the default and not a random stick-anything-there part. I don't think it's meant to work. 22:14
The error is LTA tho
hm
OK
SmokeMachine brokenchicken: but why does that work with the constant?
brokenchicken 'cause I'm wrong. 22:15
SmokeMachine :)
m: constant Path = IO::Path; class C { has Path $a .= new: "."}; C.new.a.say 22:16
camelia rakudo-moar 6dd542: OUTPUT«IO::Path is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in method at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine ok, it really worked...
brokenchicken Guess it's a bug. 22:17
SmokeMachine m: class Bla::Bee {} class C { has Bla::Ble $a .= new} 22:18
camelia rakudo-moar 6dd542: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3class Bla::Bee {}7⏏5 class C { has Bla::Ble $a .= new}␤ expecting any of:␤ infix␤ infix stopper␤ …»
SmokeMachine I think its happening with anything with "more than one name"...
brokenchicken yeah
SmokeMachine m: class Bla::Ble {} class C { has Bla::Ble $a .= new}
camelia rakudo-moar 6dd542: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3class Bla::Ble {}7⏏5 class C { has Bla::Ble $a .= new}␤ expecting any of:␤ infix␤ infix stopper␤ …»
brokenchicken m: class C { has Supplier::Preserving $a .= new} 22:19
camelia rakudo-moar 6dd542: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol Supplier::Preserving␤»
brokenchicken m: class C { has Supplier $a .= new}
camelia ( no output )
22:19 mawkish__ left
brokenchicken Ahhhh 22:20
22:20 mawkish__ joined
brokenchicken I think I see the bug 22:20
SmokeMachine where?
brokenchicken Here: github.com/rakudo/rakudo/blob/nom/....nqp#L2898
The $*OFTYPE needs to be split up on `::` 22:21
SmokeMachine the if shouldn't do something similar? 22:22
brokenchicken hm? the if? 22:23
SmokeMachine brokenchicken:
brokenchicken: github.com/rakudo/rakudo/blob/nom/....nqp#L2892
22:23 mawkish__ left
SmokeMachine brokenchicken: I mean: why aren't both doing something similar? 22:24
one for = and the other for .=
brokenchicken: Ill try ro read that better!
brokenchicken: nevermind... 22:25
brokenchicken yup, fix worked. 22:26
SmokeMachine :)
rindolf Hi all! I'm getting a segfault - paste.debian.net/910211/ 22:27
[Coke] rindolf: what version of rakudo, what version of docs? 22:28
rindolf [Coke]: what is docs?
[Coke] (what version of modules installed?)
rindolf: ... the repository you're building? 22:29
rindolf [Coke]: ah
[Coke]: paste.debian.net/910212/ 22:30
[Coke] that version is relatively old, and there have been segfault fixes in the last quarter of 2016
please try again with 2017.01 22:31
(of rakudo)
rindolf [Coke]: ok 22:32
22:39 kyan left
brokenchicken SmokeMachine: fix shipped 22:43
SmokeMachine brokenchicken: thanks!
m: class Bla::Ble {} class C { has Bla::Ble $a .= new}
camelia rakudo-moar 6dd542: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3class Bla::Ble {}7⏏5 class C { has Bla::Ble $a .= new}␤ expecting any of:␤ infix␤ infix stopper␤ …»
SmokeMachine m: class Bla::Ble {}; class C { has Bla::Ble $a .= new} 22:44
camelia rakudo-moar 6dd542: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol Bla::Ble␤»
brokenchicken *just* shipped :) Bot hasn't updated yet 22:45
22:45 espadrine_ left
brokenchicken huggable: camelia 22:45
huggable brokenchicken, Camelia updates every 20m at 8, 28, and 48 minutes of the hour
brokenchicken so in 2 minutes or so 22:46
22:47 travis-ci joined
travis-ci Doc build failed. Jonathan Stowe 'Merge pull request #1154 from antquinonez/master 22:47
travis-ci.org/perl6/doc/builds/194603246 github.com/perl6/doc/compare/58b70...ffd9841336
22:47 travis-ci left 22:50 lukaramu left
brokenchicken m: class Bla::Ble {}; class C { has Bla::Ble $a .= new} 22:51
camelia ( no output )
brokenchicken m: class Bla::Ble {}; class C { has Bla::Ble $a .= new}.new.a.^name.say
camelia rakudo-moar 700a07: OUTPUT«No such method 'a' for invocant of type 'C'␤ in block <unit> at <tmp> line 1␤␤»
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/01/23/...4-welcome/
brokenchicken m: class Bla::Ble {}; class C { has Bla::Ble $.a .= new}.new.a.^name.say
camelia rakudo-moar 700a07: OUTPUT«Bla::Ble␤»
22:51 haxmeister left
brokenchicken .tell raiph to avoid user confusion, we purposely restrict release announcements to Rakudo Star only. 22:52
yoleaux brokenchicken: I'll pass your message to raiph.
22:53 jameslenz joined
raiph thanks for tip brokenchicken++ 22:54
yoleaux 01:09Z <TimToady> raiph: Yes, I think of them as "maybe" types, but that's the same thing.
01:15Z <BenGoldberg> raiph: If an object type has either :D or :U attached to it, then it probably can't be considered an option type. :)
01:59Z <BenGoldberg> raiph: nvmnd raschipi++ informed me that even types with :D on them can get Nil/Failure in them. :)
22:52Z <brokenchicken> raiph: to avoid user confusion, we purposely restrict release announcements to Rakudo Star only.
brokenchicken lizmat++ good weekly. Though you gave yourself too little credit. Across three commits ([78edbbb][b5293c2][c64aeb3]), .permutation because 2x to 24x faster, depending on args 22:55
s/because/became/; 22:56
lizmat ah, :-)
brokenchicken++ # updated 22:57
23:00 zakaria joined
zakaria hi 23:01
i am trying to build panda via rakudobrew and i am failing to do it 23:03
cale2 zakaria: I had issues trying to build zef with rakudobrew, but I also have an old version of OSX, so I let it go 23:05
zakaria i am getting this first error message that telling me that pathspec 'nom' did not match any file(s) known to git
23:05 perlawhirl joined
zakaria anyone have an idea of how to fix that? 23:05
perlawhirl bisect: two novels and several short stories, and his debut novel 'The 23:06
zakaria cale2: actually i built zef without problem
bisectable6 perlawhirl, On both starting points (old=2015.12 new=700a077) the exit code is 1 and the output is identical as well
perlawhirl, gist.github.com/be50e7c73bb6a26a45...29654ad97d
perlawhirl oops
bisect: say <one two>.categorize({ ( m:g/<[aeiou]>/ )».Str })
bisectable6 perlawhirl, Bisecting by output (old=2015.12 new=700a077) because on both starting points the exit code is 0
perlawhirl, bisect log: gist.github.com/0e83a714dbb7b0f54a...f5075bb1c7 23:07
perlawhirl, (2016-04-05) github.com/rakudo/rakudo/commit/6a...822dac090b
perlawhirl bisect: say <one two>.classify({ ( m:g/<[aeiou]>/ )».Str })
bisectable6 perlawhirl, Bisecting by output (old=2015.12 new=700a077) because on both starting points the exit code is 1
perlawhirl, bisect log: gist.github.com/e2bfa23c63593a9893...02567e1577 23:08
perlawhirl, (2016-05-12) github.com/rakudo/rakudo/commit/33...d4efe221de
23:09 pyrimidine joined
perlawhirl bisect: old=2016.01 new=2016.10 <one two>.classify({ ( m:g/<[aeiou]>/ )».Str }) 23:09
bisectable6 perlawhirl, Bisecting by output (old=2016.01 new=2016.10) because on both starting points the exit code is 1
23:09 wamba left
bisectable6 perlawhirl, bisect log: gist.github.com/3f66d84e19be00ff21...00e2f3d108 23:10
perlawhirl, (2016-05-12) github.com/rakudo/rakudo/commit/33...d4efe221de
perlawhirl msg bisectable6
bisect: old=2016.01 new=2016.12 say <one two>.classify({ ( m:g/<[aeiou]>/ )».Str }) 23:11
bisectable6 perlawhirl, Bisecting by output (old=2016.01 new=2016.12) because on both starting points the exit code is 1
23:12 cpage_ left
zakaria Is there any way of installing Task::Star without using zef or panda? 23:13
[Coke] no, those are our installers. 23:14
23:14 pyrimidine left, sena_kun left
zakaria Coke: panda failed to build with rakudobrew, zef is stuck on fetching OpenSSL for a wile 23:15
cale2 where can I see docs on the perl6 command line app? 23:16
like what does perl6 -Ilib mean?
gfldex cale2: docs.perl6.org/programs/00-running 23:18
23:18 dataf3l_ left
perlawhirl cale2: This is also a pretty good reference on perl6 one-liners: github.com/dnmfarrell/Perl6-One-Liners 23:19
which covers use of some of the cmdline flags with example
23:21 travis-ci joined
travis-ci Doc build failed. Will "Coke" Coleda 'update return type declaration' 23:21
travis-ci.org/perl6/doc/builds/194610877 github.com/perl6/doc/compare/22ffd...8bc268b58e
23:21 travis-ci left
brokenchicken zakaria: you don't need Task::Star. Install just the modules you actually need. 23:24
23:30 bisectable6 joined, ChanServ sets mode: +v bisectable6
AlexDaniel say <one two>.classify({ ( m:g/<[aeiou]>/ )».Str }) 23:31
01:07:54 <bisectable6> perlawhirl, Bisecting by output (old=2015.12 new=700a077) because on both starting points the exit code is 1
01:08:03 <bisectable6> perlawhirl, bisect log: gist.github.com/e2bfa23c63593a9893...02567e1577
01:08:04 <bisectable6> perlawhirl, (2016-05-12) github.com/rakudo/rakudo/commit/33...d4efe221de
01:09:25 *** pyrimidine (~pyrimidin@cjfields-imac.igb.illinois.edu) has joined channel #perl6
01:09:50 <perlawhirl> bisect: old=2016.01 new=2016.10 <one two>.classify({ ( m:g/<[aeiou]>/ )».Str })
23:31 AlexDaniel left 23:32 AlexDaniel joined
AlexDaniel shit 23:32
6c: say <one two>.classify({ ( m:g/<[aeiou]>/ )».Str }) 23:33
committable6 AlexDaniel, gist.github.com/0c205f14ed25787912...df0e771f50
23:33 kyan joined
perlawhirl AlexDaniel: it works with categorize _now_, but i'm had old code with classify and it's throwing an error 23:34
so expected output is this
m: say <one two>.categorize({ ( m:g/<[aeiou]>/ )».Str })
camelia rakudo-moar 700a07: OUTPUT«{e => [one], o => [one two]}␤»
23:34 rindolf left
perlawhirl i'm sure that used to work with .classify, but... as always, willing to admit i'm mistaken. but why would i have old code lying around that used classify 23:35
23:37 pyrimidine joined
AlexDaniel well we can always check 23:39
commit: all say <one two>.classify({ ( m:g/<[aeiou]>/ )».Str })
committable6 AlexDaniel, gist.github.com/b8ee78044f6d63dea8...45e9452ddf
AlexDaniel well, unless it worked before 2014.01… no :P 23:40
perlawhirl hmmm... ok. nvm... changing my code to .categorize()
23:40 zakaria left 23:42 cpage_ joined, pyrimidine left
AlexDaniel stares at that “printf” inside .map on www.learningperl6.com/2017/01/17/b...in-perl-6/ 23:45
cale2 So I'm getting an error with perl6 -e 'say "Hello World"' 23:46
did the quotes for one liners change? 23:47
AlexDaniel what's the error?
cale2 Unable to parse expression in single quotes; couldn't find final "'"
It works when I do perl6 -e "say 'Hello World'" 23:48
brokenchicken Are you on Windows?
cale2 Yes, in command prompt
brokenchicken Well, there's your problem. 23:49
AlexDaniel e: printf "%04x %s\n", .ord, .uniname for $*IN.comb(/\N/)
evalable6 AlexDaniel, rakudo-moar 700a077: OUTPUT«2665 BLACK HEART SUIT␤1f98b BUTTERFLY␤0020 SPACE␤a49b YI RADICAL BBUT␤33b2 SQUARE MU S␤208a SU…»
AlexDaniel, Full output: gist.github.com/a77f658bedead8bbc2...59b459fbf5
perlawhirl brokenchicken: is Windows the problem... or Command prompt ?
cale2 brokenchicken: what is the issue exactly?
brokenchicken You use `"` instead of `'` on Windows 23:50
cale2 what are the " vs ' rules in perl6 then?
how will that effect your perl6 one liners?
oops github.com/WildYorkies/Perl6-One-L...or-windows I'm dumb 23:51
perlawhirl so it's basically and unfortunate hassle due to the way Windows shell handles quotes 23:53
geekosaur ^
TimToady suggests curly quotes inside
23:53 agentzh joined
geekosaur well, actually not even windows shell; on Windows, this is pushed down into the program runtime before invocation of main or WinMain 23:54
23:55 cdg left
cale2 Yeah, that explanation in the github is great. talks about using qq// instead 23:55
23:56 perlawhirl left 23:57 girafe left