»ö« 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.
SmokeMachine m: bla { KEEP .say; 42 }; bla 00:12
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
bla used at line 1
SmokeMachine m: sub bla { KEEP .say; 42 }; bla
camelia (Any)
SmokeMachine should it print 42?
Zoffix SmokeMachine: it's a bug github.com/rakudo/rakudo/issues/1290 00:25
In other news: CaR Grant is good to go :) news.perlfoundation.org/2018/04/mar...votes.html
timotimo oh, was it important that it's not 2000 dollars? 00:26
SmokeMachine Zoffix: thanks 00:26
Zoffix I design marketing materials for a living.... I can't help it :) 00:27
timotimo but why not 95 cents? 00:28
Zoffix Because then the number looks longer (and bigger) :)
timotimo right, you want it to seem smaller than it is 00:30
because it's a cost to others 00:31
Zoffix Another trick is to show a large number before the price (or show larger price first) to make smaller sums feels smaller than they are because our brains are wired to see stuff relative to each other. 00:35
timotimo mhm, mhm
Zoffix So the title of my next grant will be "200000000000000000000e-20 Pieces of Work on [...]" :)
timotimo :D 00:36
MasterDuke huh, my comment on the proposal never showed up
(it was just a +1)
but anyway, Zoffix++
Zoffix :) 00:36
parsonsNose m: sub bar() { my Int $*global = 4 } ; bar() ; say $*global 00:41
camelia Dynamic variable $*global not found
in block <unit> at <tmp> line 1
parsonsNose what did I misunderstand about $* ? 00:42
any fule no that you can declare a variable in a higher-level lexical scope and assign later. Cool. But, I thought with the $* stuff we could assign _and_ instantiate from an inner lexical scope :/ 00:44
timotimo it will only be available in things called by bar in your example
parsonsNose ahhh
timotimo i.e. it looks up the call stack
parsonsNose so it doesn't need to be passed explicitly, but it won't propogate out?
thankee
makes sense now
Dunno how I misread that so badly :joy: 00:45
Geth doc: W4anD0eR96 self-assigned Document S05 treatment of alternations as atoms for ratchet github.com/perl6/doc/issues/1962
JJ self-assigned Put tests in some order github.com/perl6/doc/issues/1966

5e4e1960f1 | (JJ Merelo)++ | doc/Language/traps.pod6 Adds documentation for trap closes #1869
00:47
parsonsNose m: sub bar() { $*G = 4; foo } ; sub foo() { say $*G } ; bar(); 00:49
camelia Dynamic variable $*G not found
in sub bar at <tmp> line 1
in block <unit> at <tmp> line 1
parsonsNose ... yeah
I'm still not getting it 00:50
oops
m: sub bar() { my $*G = 4; foo } ; sub foo() { say $*G } ; bar();
camelia 4
parsonsNose nah, we're all good here. Thanks again
parsonsNose m: sub bar() { my Int $*G = 4; now < 10 ?? foo() !! baz } ; sub foo() { $*G = 'I will never work' } ; sub baz() { say $*G } ; bar 00:58
camelia 4
parsonsNose Is there no static typechecker at all? 00:59
timotimo there is, but not for many things
m: sub takes-a-string(Str $a) { say $a }; takes-a-string 99e0
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling takes-a-string(Num) will never work with declared signature (Str $a)
at <tmp>:1
------> 3sub takes-a-string(Str $a) { say $a }; 7⏏5takes-a-string 99e0
lookatme m: sub bar() { my Int $*G = 4; foo; baz; } ; sub foo() { $*G = 'I will never work' } ; sub baz() { say $*G } ; bar 01:00
camelia Type check failed in assignment to $*G; expected Int but got Str ("I will never work")
in sub foo at <tmp> line 1
in sub bar at <tmp> line 1
in block <unit> at <tmp> line 1
parsonsNose ahh
guess that's a tradeoff we have to make for the gradual typing system 01:01
lookatme m: sub takes-a-string(Str $a) { say $a }; 1 < 0 ?? takes-a-string 99e0 !! say "Hi";
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling takes-a-string(Num) will never work with declared signature (Str $a)
at <tmp>:1
------> 3s-a-string(Str $a) { say $a }; 1 < 0 ?? 7⏏5takes-a-string 99e0 !! say "Hi";
lookatme m: sub takes-a-string(Str $a) { say $a }; 1 < 0 ?? (takes-a-string 99e0) !! (say "Hi");
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling takes-a-string(Num) will never work with declared signature (Str $a)
at <tmp>:1
------> 3-a-string(Str $a) { say $a }; 1 < 0 ?? (7⏏5takes-a-string 99e0) !! (say "Hi");
timotimo well, dynamic variables are dynamic, which is the opposite of static :)
parsonsNose to allow us to define something that can be 'typed properly at runtime'
yeah, fair. I'm just experimenting with them today :)
and coming from scala 01:02
slightly... different approach :D
timotimo any given sub can be called from 10 different subs that define the same name with different types
parsonsNose yeah
fair enough TBH
timotimo m: sub AssignsTheThing { $*G = 99 }; sub NeedsAnInt { my Int $*G; AssignsTheThing; say $*G }; sub NeedsAString { my Str $*G; AssignsTheThing; say $*G }; NeedsAnInt(); 01:03
camelia 99
timotimo m: sub AssignsTheThing { $*G = 99 }; sub NeedsAnInt { my Int $*G; AssignsTheThing; say $*G }; sub NeedsAString { my Str $*G; AssignsTheThing; say $*G }; NeedsAString();
camelia Type check failed in assignment to $*G; expected Str but got Int (99)
in sub AssignsTheThing at <tmp> line 1
in sub NeedsAString at <tmp> line 1
in block <unit> at <tmp> line 1
parsonsNose oooh
b2gills Perl 6 is a static language that tries to be a dynamic one, and it does it to such an extent that some static things become harder
lookatme scala ? the Perl 8 ?
parsonsNose scala is one of the best 3 languages on the JVM if you count perl6 ;) 01:04
the other being clojure, Java sucks
but i'm surprised by that last output
that's actually kinda impressive 01:05
timotimo that was purely runtime, though 01:06
parsonsNose .... I can't read the errors at all yet, can I?
b2gills m: sub foo () { my $*G = 99; bar; say $*G }; sub bar () { let $*G = 42; fail if Bool.pick }; foo xx 5
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
xx used at line 1
parsonsNose ahh 01:06
lookatme assignment seems like always check in runtime :)
b2gills m: sub foo () { my $*G = 99; bar; say $*G }; sub bar () { let $*G = 42; fail if Bool.pick }; foo() xx 5
camelia 99
99
99
99
99
lookatme m: sub f(Int) { }; sub z() { my Str $tr = 123; }; f(12)
camelia ( no output )
timotimo they are rather not as easy to read on irc compared to the terminal where you have real newlines
parsonsNose Error while compiling vs something else
welp, i'm stupes.
timotimo compile time errors usually have "===SORRY!==" in them= 01:07
b2gills m: sub foo () { my $*G = 99; bar; say $*G }; sub bar () { let $*G = 42; Bool.pick && Nil }; foo() xx 5 01:08
camelia 99
42
99
42
42
ParsonsNose m: sub bar() { say $*In ; sleep 1 ; say $*In };sub foo($assignation) { my $*In = $assignation ; start bar };my $A = foo('A');my $B = foo('B');await $A, $B 01:50
camelia A
B
A
B
ParsonsNose tbf
that's pretty much rocking my socks right now
There are whole libraries in java/scala using aspectJ magic all to basically emulate that functionality 01:51
So. Cool. Yay 01:52
Herby \o 02:26
yoleaux 10 Oct 2017 01:26Z <AlexDaniel_> Herby: normally Gumbo ( github.com/Skarsnik/perl6-gumbo ), but see RT #131003
synopsebot RT#131003 [open]: rt.perl.org/Ticket/Display.html?id=131003 [SEVERE][SEGV] Heap corruption when using Gumbo
Kaiepi how would i be able to get the traits of a class? 04:32
synopsebot Link: doc.perl6.org/language/traps
stmuk I think this is "new" (I thought the video was supposed to be lost) 07:16
www.youtube.com/watch?v=FP1IfvAUJnI
arggg it's 50secs not mins 07:17
:)
El_Che stmuk: good find, although short :) 07:29
stmuk its just a pity its not the standing ovation of 1000s at the end :) 07:30
Geth doc/master: 5 commits pushed by (Luca Ferrari)++ 09:18
El_Che "This type cannot unbox to a native string: P6opaque, Failure" <-- weirdest error so far (no line nr, nothing) 09:31
jnthn Compile time error, or? 09:33
jnthn Also, --ll-exception should give a stack trace 09:33
El_Che looking at it, it comes from a class consuming a role (while an other loads fine)
El_Che .. it's gone, whut why 09:35
Geth museum-items: a27a0af314 | (Zoffix Znet)++ (committed using GitHub Web editor) | 2015/Perl-6-release-announcement.md
Add Larry's P6 release announcement vid
11:04
jkramer Can the consumer of a Supply somehow tell the Supplier that it's done and it should stop supplying stuff? 11:48
moritz you can cancle the tap 11:51
jkramer But the supplier won't know about that, right? 11:55
I mean it won't know there's no one listening
I have a supplier in a thread with an infinite loop, I'd like to make it stop somehow from the Supply end when I'm done with its output 11:56
jmerelo Hi y'all. My university has just published a call for applications for a sabbatical program 12:13
so, I was wondering.
Anyone would want to host me, be it in a company, university, research center or whatnot for some time starting Jan 2019? 12:14
Zoffix Do we have docs on core Numeric types? 12:39
Like, I guess /language docs, not just the type method reference 12:40
Zoffix
.oO( wonder if every issue being labeled with "JJ TPF Grant: To label issues JJ will be working on during TPF grant" actually discourages other people fixing those issues )
12:44
jkramer Zoffix: BTW maybe you want to update your cpan6 guide for beginners. :) The bit "select Perl6 in the select input" doesn't work for first-timers, as there's no select box until you've entered "Perl6" in the input box manually once 12:53
Not a big issue but it slightly confused me the first time :)
Zoffix There was when I wrote it :( 12:58
You could submit a PR to fix it: github.com/zoffixznet/perl6.party/...Is-Here.md
(personally, I recognize that trying to keep old blog posts up-to-date is a futile effort)
Zoffix What was the docs Issue number for the indexing breakage? Or was that resolved... 13:02
D#1894 13:03
synopsebot D#1894 [open]: github.com/perl6/doc/issues/1894 [JJ TPF Grant][big][search] Some pages are not indexed.
Geth ¦ doc: zoffixznet self-assigned Some pages are not indexed. github.com/perl6/doc/issues/1894
Herby_ \o 13:19
comborico1611 Hello 13:20
Geth doc/fix-indexing: 8a6207a3d8 | (Zoffix Znet)++ | assets/sass/style.scss
Fix typo in property name
13:21
doc/fix-indexing: 1913294142 | (Zoffix Znet)++ | assets/sass/style.scss
Fix incorrect property value
13:23
Geth doc/fix-indexing: 32e15f6c33 | (Zoffix Znet)++ | template/search_template.js
Smartify method name search detection

Fixes missing results for all ops that start with a dot.
13:30
comborico1611_ I'm wondering why there is a space here ( if) control flow with orwith without§ 13:37
docs.perl6.org/syntax/with%20orwith%20without 13:38
Or is it just a typo?
Geth doc: ee2f3cd9d8 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/control.pod6
Remove unwanted space

  irclog.perlgeek.de/perl6/2018-04-27#i_16102496
13:40
synopsebot Link: doc.perl6.org/language/control
Zoffix (probably fixes that)
El_Che hi 14:07
jkramer gist.github.com/jkramer/cd9492abf2...2d0f04e9e6
jkramer Any ideas how I can solve that supply problem here? I want a way to stop the thread/loop in read-keys from the outside so it can recover the original termios flags and stop reading from $*IN 14:08
A completely different approach would be fine too :) 14:09
moritz the obvious thing to do would be to replace the loop { ... } with a while $should-read { ... } 14:12
jnthn Well, `return $supplier.Supply.on-close({ ...code here... });` gives you a way to run a callback when the supply is closed
moritz and then set $should-read = 0 if you want it to stop
jnthn Uh, tap is closed
The `done` automatically cuases all taps to be closed 14:13
Then combine that with what moritz said :)
jkramer jnthn: Oh I think I misunderstood on-close then. I thought it's executed when the Supplier is closed 14:14
jnthn There's no such thing as a Supplier being closed 14:15
What get closed is a tap on the Supply
Thus why the .on-close comes after the .Supply
jkramer Woah, works perfectly! :) Thanks moritz & jnthn 14:17
jnthn Now, can anybody explain why it works perfectly? :-) 14:20
jkramer I already moved on to other problems ¯\_(ツ)_/¯ 14:22
What's nicer? 'whenever read-keys', 'whenever key-press' or 'whenever key-pressed'? 14:24
I think it should be one of the latter two, but can't decide :)
Zoffix 'cause the on-close callback that closed over $should-read var changes it to not read it anymore when done is called (and tap is closed) and the thing ends
jnthn Events are things that have undisputably happened, so past tense makes most sense to me
(key-pressed)
jkramer Yup, agreed
jnthn Zoffix: Yes; also `emit` runs the code in the downstream `whenever`, which calls `done`, which will `close`, which in turn means that it's false reliably before that loop test runs again :) 14:26
Zoffix :) 14:27
mcmillhj Can someone explain to me why this: gist.github.com/mcmillhj/57a4e81cf...bcf4563da1 returns a Seq and not a List? I expected it to return a List 14:28
yoleaux 26 Apr 2018 20:34Z <Zoffix> mcmillhj: You can use Arrays for hash keys, but it's likely to be pain, since they're not value types (so you'd have to use the same Array object to do the lookup, not one that just has the same values). Also, you need to place it into a Scalar container to tell the compiler you want to treat it as one item (the key) instead of a list of keys. Lastly, by default hashes stringigfy keys, so you'll need to
26 Apr 2018 20:34Z <Zoffix> mcmillhj: use object hashes: m: my @a = <a b c>; (my %h{Array}){$@a} = 42; %h{$@a}.say
Zoffix mcmillhj: because reverse returns a Seq 14:29
jkramer m: 'ẞ'.codes.say
camelia 1
jkramer m: say 'ß'.uc; say 'ẞ'.lc
camelia SS
ß
Zoffix mcmillhj: @path.reverse.List.return
jkramer What 14:30
Zoffix jkramer: that's what the uppercase of that letter is
Zoffix m: say 'ß'.fc 14:30
camelia ss
Zoffix ^ use that if you need to compare it case insensitvely
jkramer m: say 'ẞ'.fc
camelia ss
jkramer Shouldn't uppercase ß be ẞ? 14:31
I know it's quite new but still
jnthn Not according to Unicode :)
jkramer :( I like that character
Zoffix u: ßẞ
unicodable6 Zoffix, U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
Zoffix, U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ)
jnthn m: say "Unicode ist scheiße".uc
camelia UNICODE IST SCHEISSE
jnthn :P
Zoffix :)
jkramer Oh well I guess there's a difference between "uppercase" and "capital" 14:32
Since uppercase ß doesn't exist in the wild, just as capital in titles or whatever
mcmillhj Zoffix: oooh, that will teach me not to look at reverse's signature. :\ Thanks 14:33
jnthn Things that can lazily produce the result will tend to return a Seq. In this case, it means `for @million-element-thing.reverse { }` doesn't need to create a second million-element thing in memory to iterate in reverse, and can just go through the existing thing backwards. 14:37
El_Che f* perl6. I am writing ~ all over the place in perl 5 :) 14:55
Zoffix / is writing `-` all over instead of `_` 14:56
Zoffix is writing `-` all over instead of `_`
jnthn Ah, the 5/6 switching fun :) 14:59
mcmillhj jnthn: how does that work with things like infinite lists? 15:00
jnthn I managed to write . for concat in Perl 6 a few times earlier this week :)
jnthn I noticed pretty quick though...was dogfooding Comma and it stuck a nice red underline under it for me. :) 15:01
Zoffix mcmillhj: it doesn't :)
m: (1…Inf).reverse
camelia Cannot reverse a lazy list
in block <unit> at <tmp> line 1
Zoffix jnthn: nice :)
mcmillhj Zoffix: reverse 1..* returns an infinite list
FROGGS jnthn: and I'll be able to buy comma next week? 15:02
mcmillhj Zoffix: I figured, was just wondering
Zoffix mcmillhj: in that case, the source is a Range, so it knows how to produce the reverse of it 15:02
Range object, I mean
TimToady yoleaux: .botsnack
yoleaux 26 Apr 2018 13:50Z <Zoffix> TimToady: are language mutations supposed to propagate to EVAL (e.g. sub infix:<♥> { say $^a + $^b }; 'say 2 ♥ 42'.EVAL) ? I see &EVAL tries to find LANG, but dumping it even at begin time seems to always show Nil: github.com/rakudo/rakudo/blob/29b0...m6#L54-L66
mcmillhj ah I see, the result is similarly not useful though :) 15:03
jnthn FROGGS: Not quite that soon, but "sometime in May" is still looking good.
FROGGS awww
TimToady Zoffix: yes, EVAL is supposed to use the current language 15:04
comborico1611_ I'm finding perl6intro.com to be exactly what I needed. Someone tell hankache he needs to write a Perl6 book!
jnthn I thought `EVAL` did use the current language in the past :S
FROGGS jnthn: because if when I'm quite happy with the IDEs I use, it kinda sucks when they see a .y method call and format it like P5's y///
jnthn I'm sure I did the stuff to make that work even
TimToady /metoo
FROGGS which means it takes whatever comes after the .y as delim -.- 15:05
jnthn (Poke stuff into %?LANG)
FROGGS: argh, yes
TimToady well, we use $?LANG now, but yes
jnthn should keep up :)
Zoffix uhh 15:06
TimToady the braid is now internal to the current language object
Zoffix m: sub infix:<♥> { say $^a + $^b }; q|say 2 ♥ 42|.EVAL
camelia 44
True
Zoffix ... seems to work now :/
m: sub infix:<♥> { say $^a + $^b }; 'say 2 ♥ 42'.EVAL
camelia 44
True
15:07
Zoffix m: sub put(|) { say "no say for you!" }; try q|put 42|.EVAL; say $!.^name;
camelia no say for you!
Any
TimToady "O see, can you say, by the dawn's early light..." 15:08
well, it's still early here, but maybe not in Canada 15:09
Zoffix Don't see any bugs in the original log either, so I guess that was just a brainfart :)
TimToady I'd think a whole bunch of tests would fail if that brake 15:12
operator-overloading.t uses plenty of EVALs 15:13
that's not to say we might not have spots where we still lose track of the current language, but I doubt it's pervasive 15:14
Zoffix comborico1611_: you can tell yourself. Just use the .tell bot command (or twitter) 15:15
comborico1611_ I don't follow. 15:16
Zoffix .tell comborico1611_ Use the bot, Luke!
yoleaux Zoffix: I'll pass your message to comborico1611_.
comborico1611_ Heh. Why would I need to tell myself?
yoleaux 15:16Z <Zoffix> comborico1611_: Use the bot, Luke!
Zoffix and twitter.com/hankache
comborico1611_ No Twitter account. 15:17
Zoffix comborico1611_: that was in response to "comborico1+│ I'm finding perl6intro.com to be exactly what I needed. Someone tell hankache he needs to write a Perl6 book!"
TimToady he meant "you can tell him yourself", but he accidentally a word
comborico1611_ I see.
But I don't have much influence. 15:18
.tell hankache I'm finding perl6intro.com to be exactly what I needed. You need to write a Perl6 book!"
yoleaux comborico1611_: I'll pass your message to hankache.
comborico1611_ TimToady: Top 5 most readable programming languages? Please reserve only one slot for snide remark. 15:19
Just curious on your opinion. Readable doesn't take into account unknowledgeable. As in, this is the easiest to read if a person doesn't actually know the coding system. 15:20
TimToady you just contradicted yourself :) 15:21
comborico1611_ I don't think so. Perl people consider to not be readable, but it is readable to those who know it.
TimToady oh, I read "doesn't take into account" the other way 15:22
comborico1611_ Perl -- people consider..
Zoffix Same with python
mcmillhj I find it difficult to read most things I don't know :)
Zoffix Compare this Python to the Perl 6 version below :) en.wikipedia.org/wiki/C3_lineariza..._in_Python 15:23
TimToady I'd say there are languages that have the reputation of being readable because they're made more out of words, but that just means the misunderstandings are misunderstood more :)
comborico1611_ mcmillhj: Of the coding systems (languages) you do know, which are the easiest to read?
TimToady just people people think they know what a word means doesn't mean that they actually know what the word means to the computer
so in some sense it's more deceptive
Zoffix Yeah, and would still need to look up: arguments, return types, special cases
TimToady (to have misleading words) 15:24
jnthn Curiously, Perl is easiest on my (not very good) eyes, because differnet things look different, rather than being a wall of words. :)
comborico1611_ Yes, when I was studying Common Lisp recently, I opted to put $ sigil before parameters and variables, because everything is a word in CL.
TimToady well, that's one of our design principles, but people seem to like words even when they are getting fooled
*some people
whereas we think that if you don't understand something, it should look like you don't understand it :) 15:25
El_Che today was a fun day. Writing snippets in a language you don't really know. Trial and error to the max (Jenkins pipeline in a DSL as subset of groovy) 16:02
jmerelo groovy looks like a groovy language 16:03
El_Che it's a java beverages with grinded rubies at the bottom (they don't say on top) 16:04
-s
thing is that when you program-by-stackoverflow you end up adding groovy stuff that the DSL doesn't allow (it's a sandbox as well) 16:05
jmerelo I bet rubies don't make java beverages any better
El_Che you get a sexy voice
that must count for something
jmerelo El_Che: :-)
El_Che Bonnie Tyler-husky points 16:06
besides that Ubuntu 18.04 came out and it discourages my implemented type of home encryption 16:07
backup home, reinstall, rinse it looks like :) 16:08
jmerelo I am for LTS. Still running 14.04 here.
"Optimized for machine learning" What's that even supposed to mean? 16:09
El_Che jmerelo: it was written by an AI 16:10
it knows what it writes about :)
I like more blood on my desktops
jmerelo El_Che: "You know AI? I KNOW AI!" 16:11
You start to type and Ubuntu 18.04 goes: whoa, whoa, you know what cher doin'? Let me finish that for you...
[Coke] /win 3 16:19
buggable [Coke], Thank you for entering Accidental /win Lottery! The next draw will happen in 3 days, 7 hours, 40 minutes, and 22 seconds
jmerelo Slow evening, so let's year your opinion on this issue github.com/perl6/doc/issues/1970 raised by Zoffix 17:17
And while you're at that, take a look at this github.com/perl6/doc/issues/1966 proposed by YT 17:18
Geth doc: JJ self-assigned /language/contributors hasn't been updated in ages github.com/perl6/doc/issues/1970
9dfce1096b | (JJ Merelo)++ | 3 files

And some exceptions in the author tests that referenced it. Closes #1970
17:33
Geth doc/fix-indexing: fa7985ffc5 | (Zoffix Znet)++ | htmlify.p6
Get rid of fatal error silencers

  - Get rid of all Promise.alloffs
  - Catch the error that currently kills indexing
   and make it spew full details (likely can remove the
   catcher in later commits; catching right now to not abort
   the build and weed out all the things that make it throw)
17:46
doc/fix-indexing: db44916e95 | (Zoffix Znet)++ | htmlify.p6
Don't crash on empty X<> text

In many places we insert an invisible indexing marker, for which
  .content[0] is an Any and it crashes when we try to stick that
Any into a place that expects a Str:D
17:49
jmerelo Wow, that's big 17:50
Zoffix++ 17:51
.tell zoffix to remember and refer to the different htmlify.p6 issues when merging 17:52
yoleaux jmerelo: I'll pass your message to zoffix.
jmerelo .tell zoffix also that [Coke] is working on that same file on coke/build. Far as I can tell, not touching the same lines, but better be aware of that. 17:56
yoleaux jmerelo: I'll pass your message to zoffix.
Geth doc/fix-indexing: 35dd2eec16 | (Zoffix Znet)++ | htmlify.p6
Use more robust X<> unpacker

We might have nested pod codes inside; don't assume it's just text
18:16
jmerelo The last remaining http testing site, httpbin, now redirects to HTTPS. Here's a request for help stackoverflow.com/questions/441316...requestbin 18:18
Geth doc/fix-indexing: 147536af82 | (Zoffix Znet)++ | htmlify.p6
Don't assume we'll always have meta text in X<>
18:21
doc/fix-indexing: fbf0c0af38 | (Zoffix Znet)++ | htmlify.p6
Use more robust textifier in one more branch
18:22
rindolf hi all
jmerelo hi! 18:23
rindolf jmerelo: sup?
jmerelo Well, httpbin has moved to https-only and we're dealing with the fallout in modules testing here. Just your average Friday evening.
rindolf jmerelo: ah 18:24
El_Che everything I open github I see a notification with pod6 problems. Maybe time to move to md
El_Che ducks
jmerelo El_Che: and use only vim for edits.
El_Che: man, that error in your travis... error: pathspec '2018.05' did not match any file(s) known to git. 18:25
El_Che jmerelo: any capable editor/ide in the planet has good md support
rindolf El_Che: heh
El_Che jmerelo: found the workaround
jmerelo El_Che: you werere future-proofing your stuff, right?
rindolf El_Che: i have a hate/love relationship with markdown
El_Che jmerelo: it's not for me, but for rakudo's release manager. A canary
jmerelo El_Che: nice birds. 18:26
El_Che rindolf: the only format I seem to like is yaml :)
but documenting code in pod[56] is a pain
El_Che I can understand java and code documentation just above a method, that's nice 18:27
in Perl you get to right a book
and it breaks the code flow for me
so it ends in an other file
jmerelo That's literate programming. Haskell has it. We have to do one better. 18:27
El_Che and since it's in an other file, it can be md
jmerelo: you don't need to document haskell 18:28
the code represent the natural state of all things
what was, what is, what will e
be
jmerelo El_Che: :-) 18:29
jmerelo But I don't see you panicking nearly enough. LWP::Simple is going to have to be installed using --force all over again 18:33
That will break every single test in perl6/doc. Luckily we have the docker and package working 18:34
El_Che is it broken? 18:35
jmerelo travis-ci.org/perl6/doc/jobs/372146999 18:36
El_Che IO::Socket::SSL 18:37
jmerelo That's not the problem. The tests were changed to http-only. But now httpbin redirects to httpbin
El_Che looks like a missing dep?
(or a broken test that tests it anyway while it knows it's missing?) 18:38
jmerelo you look at the code, it's http. It's changed, well, a couple of hours ago.
El_Che pinning versions is maybe a good idea 18:39
jmerelo El_Che: we did that a few days ago, after tests were changed, if you mean lwp::Simple versions.
El_Che I mean can lw::simple version be pinned 18:40
and do this include tests
(not very clear on how perl6 pinning works)
(my impression: badly)
jmerelo El_Che: it was pinned by me and unpinned later on. It works well, but that's not the problem. We simply need to use another server for testing. And I'm not sure there is any server with HTTP only left 18:43
El_Che jmerelo: start one on localhost? 18:44
jmerelo That will have to be the thing, probably. 18:45
El_Che cro may have a one liner
El_Che - nohup $cro_onliner & 18:45
jmerelo El_Che: for a full REST server?
El_Che jmerelo: a rest service can be put in 1 file 18:46
it is nice
jmerelo El_Che: there's this modules.perl6.org/dist/PowerNap:cpan:SAMGWISE
El_Che if you don't want the deps, we could drop a go program as well 18:47
jmerelo El_Che: not really.
kt__ I made my first real submission to: rosettacode.org/wiki/Distributed_pr...ing#Perl_6
jmerelo kt__: congrats!
El_Che jmerelo: if we package Cro in the deb, it's not a biggie anyway 18:48
kt__++
lizmat kt__ : I would have used elsif's for the second/third if
jmerelo El_Che: it's probably the best if we just add something like this github.com/perl6/perl6-lwp-simple/...-unsized.t to the rest of the http tests 18:49
lizmat kt__ ++ # good work !
El_Che jmerelo: nice
lizmat kt__: OOC, why "resonse" instead of "response" ?
kt__ lizmat: becasue I cannot spell, and should have uses case and added a delete command 18:51
lizmat :-)
Geth Pod-To-HTML: zoffixznet self-assigned Crash when using node2html with L<> github.com/perl6/Pod-To-HTML/issues/37
1ef6aa072e | (Zoffix Znet)++ | 3 files

Fixes github.com/perl6/Pod-To-HTML/issues/37
Otherwise, if the user uses one of the exported routines but never calls pod2html, we end up with Callable:U in the &url which causes an explosion.
Geth doc/fix-indexing: 128a5f4924 | (Zoffix Znet)++ | htmlify.p6
Remove helper exception catcher
18:59
El_Che 19:04
Geth doc/fix-indexing: a7fe99b861 | (Zoffix Znet)++ | htmlify.p6
Fix more explosions with nested formatting codes
19:05
kt__ lizmat: I fixed the spelling error, thanks 19:20
lizmat kt_++
lizmat ++Zoffix # news.perlfoundation.org/2018/04/mar...votes.html 19:36
lizmat kt_++ # two questions though 20:01
kt__: in the case of 'dump', shouldn't that also have a 'status' field ? This now gets eradicated 20:02
Geth doc/fix-indexing: 8cf19ccff7 | (Zoffix Znet)++ | htmlify.p6
Textify, not HTMLify X<> guts

The rendered stuff still appears to be HTML, but this avoids sticking escaped HTML tags into search box
lizmat kt_: $msg<function> is more idiomatic Perl 6 than $msg{'function'} 20:03
Geth doc: da36e4f71d | (Elizabeth Mattijsen)++ | doc/Language/5to6-perlfunc.pod6
Some more P5 to P6 hints

  - got to pos
20:04
synopsebot Link: doc.perl6.org/language/5to6-perlfunc
buggable New CPAN upload: P5push-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 20:06
Geth doc/fix-indexing: bf6523614a | (Zoffix Znet)++ | doc/Language/operators.pod6
Add subst ops to index
20:12
Geth doc: d3db402005 | (Zoffix Znet)++ | 4 files
Fix search indexer

Fixes github.com/perl6/doc/issues/1894 D#1894 Fixes github.com/perl6/doc/issues/1959 D#1959 Fixes github.com/perl6/doc/issues/1936 D#1936 Fixes github.com/perl6/doc/issues/1922 D#1922 Fixes github.com/perl6/doc/issues/1893 D#1893 ... (10 more lines)
20:15
synopsebot D#1894 [closed]: github.com/perl6/doc/issues/1894 [JJ TPF Grant][big][search] Some pages are not indexed.
D#1959 [closed]: github.com/perl6/doc/issues/1959 [JJ TPF Grant][bug] S/// not indexed
synopsebot D#1936 [closed]: github.com/perl6/doc/issues/1936 [JJ TPF Grant][bug][build] Z operator not found with search
D#1922 [closed]: github.com/perl6/doc/issues/1922 [JJ TPF Grant][docs][search] bitwise operators are hard to find, have no examples
D#1893 [closed]: github.com/perl6/doc/issues/1893 [JJ TPF Grant][search] 'andthen', 'orelse', defined-or (//) missing from search
doc: 452aba1d37 | (Zoffix Znet)++ | app-start
Make dev app watch for changes in search.js
20:16
comborico1611 Can someone explain to me what is the purpose of restricting return types to either defined or undefined. Does this mean the variable the sub returns me always have been defined? 20:17
...the sub returns *must* always have previous been defined.
El_Che my Str $var 20:18
lizmat m: sub a(--> Int:D) { 42 }; a # ok
camelia ( no output )
El_Che it's not defined yet
lizmat m: sub a(--> Int:D) { Int }; a # ok
camelia Type check failed for return value; expected return type Int cannot be itself (perhaps returning a :D type object?)
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat m: sub a(--> Int:D) { Int }; a # NOT ok
camelia Type check failed for return value; expected return type Int cannot be itself (perhaps returning a :D type object?)
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
El_Che lizmat: while you're at it
lizmat m: sub a(--> Int:D) { my Int $a }; a # also NOT ok
camelia Type check failed for return value; expected return type Int cannot be itself (perhaps returning a :D type object?)
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
El_Che can you return a typed List ? 20:19
lizmat El_Che: at what ?
El_Che explaining stuff :)
lizmat El_Che: I seem to recall that's in NYI / not working correctly area 20:20
moritz m: sub a(--> List[Int]) { my Int @a = (1, 2, 3) }; say a()
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while parameterizing List
at <tmp>:1
Exception details:
5===SORRY!5=== Error while compiling <tmp>
List cannot be parameterized
at <tmp>:1
------> 3sub a(-…
lizmat yeah, that's what I tried :-)
moritz m: sub a(--> Array[Int]) { my Int @a = (1, 2, 3) }; say a()
camelia [1 2 3]
lizmat ok, but that's not technically a List :-) 20:21
comborico1611 lizmat: Is there a difference between 2nd and 3rd one? 20:21
timotimo hm, are we going to have typed lists at all?
lizmat well, one begs to wonder :-)
not sure what overhead that would bring 20:22
timotimo it'll be especially fun when you lazily iterate over a list and suddenly the type check fails inside the iterator and the exception just happens Right There
comborico1611 Let me ask this, is it rare to use :D :U features?
kt__ lizmat: I do miss bare words for hash keys. I'm still getting used to the <bareword> for barewords and {$key} for keys. 20:22
Zoffix comborico1611: it's nit "defined" it's "DEFINITE", i.e an object instance rather than a type object.
yoleaux 17:52Z <jmerelo> Zoffix: to remember and refer to the different htmlify.p6 issues when merging
17:56Z <jmerelo> Zoffix: also that [Coke] is working on that same file on coke/build. Far as I can tell, not touching the same lines, but better be aware of that.
Zoffix s/nit/not/ 20:23
comborico1611 Zoffix: Thanks! 20:24
lizmat kt__: once you get used to it, you never wanna go back :-)
especially when you realize you can also use it for slices
m: my %h = foo => 42, bar => 666; dd %h<foo bar>
camelia (42, 666)
kt__ lizmat: yes in proper protocal the {"status":""} would be the only required response. I will soon have to make a repo for this rapidly evolving nosql database server. next it will need save and read from disk. push and pop functions 20:27
jnthn Nice in github.com/perl6/doc/commit/d3db40...8dbc79fe24 how the fix was to delete code - that is, the shorter thing is the more correct one. :-) 20:29
Zoffix++
lizmat m: my %h = a => 42; my %b = b => 666; %h ,= %b; dd %h # kt_ merging 2 hashes
camelia Hash %h = {:a(42), :b(666)}
kt__ and I put an excessive amount of #'s to document the code ;) 20:31
El_Che lizmat: sorry, I was away
lizmat m: sub a(--> Array[Int]) { my Int @a = (1, 2, 3) }; say a() # moritz answer, alas, no parameterizable Lists 20:32
camelia [1 2 3]
El_Che so returning a typed array would do?
it looks too specific (I remember that from java) 20:33
always return a Generic type
lizmat m: sub a(--> Array[Int]) { [1, 2, 3] }; say a()
camelia Type check failed for return value; expected Array[Int] but got Array ($[1, 2, 3])
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat yeah, but you would have to parameterize the Array
El_Che I ask because I have multisubs where the the one accepting and returning a List is not type and the one accepting an scalar is (The List one dispatch everything to the scalar one, so everything is type, but not reflected on the signature) 20:35
lizmat El_Che: not sure I'm following, show us the code :-) 20:41
El_Che lizmat: I am upgrading 3 pc's to the latest ubuntu 20:42
including this one
not a lot is responsive :)
lizmat :-) no pb
skids ,,,, ,»ö«n Have a good weekend all! 20:54
comborico1611 skids: You, too! 21:01
Herby_ o/ 21:18
buggable New CPAN upload: P5readlink-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 21:46
guifa Hi everyone. I had a question about using promises. Is there any reason that a promise could permanently stall a program, if when not using them code runs fine? 22:12
The promises are made in a function that is recursive, so maybe that could be part of the problem, but I'm not entirely sure. 22:13
timotimo you may want to "use v6.d.PREVIEW" to opt in to your code being switched around between threads 22:14
otherwise every task (i.e. something start-ed) that is awaiting something else would block a "real" thread
the ThreadPoolScheduler can spawn new threads, if it thinks no progress is being made 22:16
it does have a limit, iirc
guifa Is there prebuilt version of the 6.d? Or will I need to install from source for that? 22:17
timotimo you don't need to do anything, just put that line in the very beginning of your code
asking for the preview version of 6.d is supported for the last bunch of releases, not sure when it started, but maybe half a year ago?
guifa I figured as much but it kicked back "No compiler available for Perl v6.d.PREVIEW" 22:19
timotimo oh, can you run perl6 --version please?
guifa Oh, oops. I just realized I'm an idiot and hadn't updated it on this machine in a while =P (I'm at the office and have been doing most work on my home computer) 22:20
timotimo well, that's good news :)
better than a nasty bug hiding somewhere
Zoffix releases: m: use v6.d.PREVIEW; await ^100 .map: { start { await ^100 .map: { start { Promise.in: 1 } } } }; say "done"
timotimo Zoffix: wouldn't that still take about 100 seconds? isn't that longer than the timeout? 22:21
committable6 Zoffix, gist.github.com/643ed693d4d41e2398...6ffda74045
Zoffix It'd take 100 seconds
err
1 second
timotimo i missed a word in the code %)
OK, so it's actually been available for more than a year, nice. 22:22
guifa Gah. My office computer apparently hates me. "This type cannot unbox to a native string: P6opaque, Failure" 22:24
timotimo you can try passing --ll-exception to perl6 if you don't get a backtrace for that 22:25
Zoffix Also what perl6 version are you using and what's the code that's causing that error? 22:27
guifa Zoffix: I just installed now a fresh copy of p6. This is the trace timotimo mentioned: pastebin.com/92zX9nVb 22:30
timotimo oh, that's curious. perhaps the compunit repo is stumbling over an incompatible, older format? though i thought it's versioned
Zoffix guifa: but which version? 22:31
guifa 2018.01 22:32
Zoffix guifa: are you on Windows by any chance? 22:35
timotimo than looks like osx
Zoffix yeah, just noticed the paths.
timotimo the paths to the truths
Zoffix :)
guifa OS X 10.13.3
Zoffix has no idea about the problem
Maybe try nuking precomp... the lib/.precomp or ~/.precomp dir if you have one 22:36
Zoffix &
guifa ding ding ding, we have a winner from Zoffix 22:37
guifa notes to clean out precomp when upgrading
guifa So when running it without promises (a) dang it sped up by a lot compared to 2017.01, and (b) it now dies with the error "Segmentation fault: 11" 22:43
the (b) is when using promises 22:44
timotimo you may be accessing arrays or hashes from multiple threads at the same time without locking
buggable New CPAN upload: P5seek-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 22:46
MasterDuke i could have sworn there was a recent change to print a link to the web page instead of the tar.gz 22:47
MasterDuke guifa: you shouldn't have to clean out your .precomp anymore, i believe needing to do that was fixed in the past year or so 22:48
kt_: this is just a nitpick, but you can probably do `$conn.say <...>` instead of `$conn.print <...> ~ "\n"` 22:50
guifa Hm, each new promise gets its own fresh Array to work with. The only thing that could be accessed by all the threads is my progress indicators. I'll try to commenting out all that and see it runs on sans updates. Is there a quick way to set them up to autolock/unlock? 22:51
timotimo no, but maybe you'd be interested in atomic compare-and-swap or increment instead
well, there is OO::Monitors, which give you classes that lock and unlock around method calls + more nice magic
but that's a bit much
i mean it's not a light-weight approach 22:52
guifa Alright, so I killed any access to variables across threads. Now there's no segmentation faults, but it just stalls out (moar drops suddenly from 370+% CPU to <3) 22:58
timotimo gist.github.com/jnthn/25349dee44f2...dbe504c39e - you can drop this code in your code (you'll have to install OO::Monitors with zef for this, however) 22:59
lizmat sleep&
timotimo that'll show you what "await" pieces don't seem to progress
guifa It shows up quite a few pieces but that's somewhat expected (each promise spawns two more promises, which in turn spawns two more...) 23:08
When I finally killed it, it was showing 44 pieces 23:09
timotimo hmm 23:15
guifa Actually, I think it was just accumulating previous ones
So I changed the note line to note "There are {@bts.elems} `await`s with age greater than 5 seconds:"; and it went for 44 seconds with one thread, and then made it two seconds with 3 23:16
And then Segmentation faulted
MasterDuke guifa: can you share the code somewhere so we can try it? 23:18
timotimo btw, we should all push the binder stuff more 23:19
MasterDuke binder stuff? 23:20
timotimo basically hosting for jupiter notebooks 23:21
with perl6 support by using bduggan's excellent stuff
just look for the perl6 jupyter kernel
on github
there's a little icon fro "binder" or something
there is so much potential in there
also find his talk about this on youtube
guifa Yes. No judging the the uncleanliness of it, though. One sec and I'll zip it up 23:22
kt_ MasterDuke: sockets do not have a 'say' method. $conn.write or $conn.print often \n is expected at the end of a message. The print method takes a string so had to use ~ as comma does not work. 23:30
guifa drive.google.com/open?id=1geIhsPdZ...tSEcX2Q_Nv 23:31
MasterDuke kt_: huh, i would have expected a say method 23:32
guifa The main script is called "compare.p6". The problematic parallel methods are at the bottom of lib/DiplDiff.pm6, in diff-bisect-split() 23:35
MasterDuke it ran for a while with 1 awaits longer than 5 sec, then 3, then 7, then 8, then 14, then 23, then 42, and now it's been 63 for a while 23:38
guifa It seems to want to go up to 46 for me but then it hangs there 23:41
Is it possible that it's exhausted a thread count and won't create any new threads, and since each previous one relies on newer ones, it's just caught in an intractable waiting period? 23:42
timotimo you can get debug output for that
MasterDuke maybe, it's not using any cpu
timotimo: how? 23:43
timotimo RAKUDO_SCHEDULER_DEBUG and if you want really much spam also set RAKUDO_SCHEDULER_DEBUG_STATUS
MasterDuke [SCHEDULER 6138] Will not add extra worker; hit 64 thread limit [branch with 0 total completed] 23:47
guifa Hm, guess that's what it is then. 23:49
MasterDuke same with v6.d.PREVIEW 23:50
but i haven't had a segv yet 23:51
guifa The seg faults have been sporadic for me, sometimes I get them, sometimes it just hangs. 23:52
Perhaps I can put in a promise limit for that block, and only spawn new ones so long as it's well below the max amount of threads 23:56