»ö« 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.
timotimo where did i see someone complain about the unbox error message for native nums? 00:04
AlexDaniel timotimo: here? github.com/perl6/6.d-prep/issues/4...-365767761 00:12
ok not that particular comment but that thread
timotimo ah, that must be it 00:14
is there some way to "reply to" a specific comment? 00:15
AlexDaniel timotimo: you can select some text and press R
timotimo i'll try that the next time, thanks! 00:16
Herby_ o/ 00:53
Geth doc: c5ae6ef62f | (JJ Merelo)++ | doc/Type/Signature.pod6
Trying to fix the example

Which reflects the intent of the section (explaining how to smart match signatures), and actually uses $sig and does so correctly. Thanks to @jimav for the feedback, this closes #1777 again and feel free to comment or reopen if needed.
06:38
synopsebot Link: doc.perl6.org/type/Signature
travis-ci Doc build passed. JJ Merelo 'Trying to fix the example 06:55
travis-ci.org/perl6/doc/builds/341758895 github.com/perl6/doc/compare/c15d3...ae6ef62f04
Xliff m: my token EQ { 'EQ' || '=' }; say 'EQ' ~~ EQ; 08:25
camelia Too few positionals passed; expected 1 argument but got 0
in regex EQ at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my token EQ { [ 'EQ' || '=' ] }; say 'EQ' ~~ EQ;
camelia Too few positionals passed; expected 1 argument but got 0
in regex EQ at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my regex EQ { [ 'EQ' || '=' ] }; say 'EQ' ~~ EQ;
camelia Too few positionals passed; expected 1 argument but got 0
in regex EQ at <tmp> line 1
in block <unit> at <tmp> line 1
ZzZombo m: say my token {''}() 08:52
camelia Too few positionals passed; expected 1 argument but got 0
in regex at <tmp> line 1
in block <unit> at <tmp> line 1
ZzZombo m: say my token {''}
camelia token {''}
ZzZombo ^
psch m: my token EQ { [ 'EQ' || '=' ] }; say 'EQ' ~~ /<&EQ>/ 08:53
camelia 「EQ」
psch m: my token EQ { [ 'EQ' || '=' ] }; say 'EQ' ~~ &EQ 08:54
camelia 「EQ」
lizmat . 09:41
moritz \o lizmat 10:05
scimon Hi lizmat 10:24
scimon So my work Perl6 coding dojo is going to look at doing Proc::InvokeEditor for Perl6 starting today. 10:46
Long term plan replicate and then add an async promise option. :) 10:47
When we've got *some* code I'll add a WIP link.
scimon Tonight I might acutally install Perl6 on my Windows gaming box. (Coding in Windows, what a novel idea). 11:30
DrForr scimon: I'm not going to discourage you as we need additional Windows love, but I've recently switched to a console-only VM and ssh'ing into it from Cygwin. 11:36
(just saying, if you're doing it for benefit to the P6 community I'm all *for* it! But if you're just playing, then a simpler way might be a headless VirtualBox setup.) 11:37
scimon Personally I hate the idea. But I also hate the idea of leaving a job half done and if I'm going to get Proc::InvokeEditor working I am going to need to look at getting it working in Windows.
DrForr That sounds intriguing. 11:38
scimon As I've got Windows running at home (because there are some games that won't run in a real OS) I might as well install it there.
Basically I'm running a "Lets learn Perl6 thing at work" we've had a few weeks of playing about and I said "Right lets do a project... what shall we do?" 11:39
And we decided on porting a module.
We took a look at the p5 most wanted list to try and pick something we could do and Proc::InvokeEditor seemed doable.
scimon Once we've got the vanilla P5 version working (in Linux at least) we'll look at a new bit to do it async. 11:40
DrForr Didn't even know there was a p5 module by that name...
scimon Nor did I. 11:41
But it does look useful for a few things.
scimon I'll look at the Windows version once I'm happy the Linux one is working. 11:42
DrForr Neat. How's the enthusiasm level? 11:43
scimon Well it's a small group right now. But I'm working on growing it. And mine has ups and downs. :) (Right now after watching the video of my talk from LPW my main enthusiasm is spend more time in the gym) :) 11:46
But I'm hoping we'll have something in place after lunch.
Geth doc: aluaces++ created pull request #1779:
Correct small typo: "suck like".
11:47
DrForr I really should watch my own videos more; I'm kind of waiting to see what happens with OSCON. 11:50
Aaaaah, Skype in the background was apparently f*cking with my YT video. 11:51
scimon I try and watch them to get some idea of how I'm doing. I've only done two talks so far and I've got a lot to learn. 11:52
Geth doc: 9bb3d4242e | (Alberto Luaces)++ (committed using GitHub Web editor) | doc/Language/variables.pod6
Correct small typo: "suck like"

Left as "such like" for consistency with the rest of the text.
11:56
synopsebot Link: doc.perl6.org/language/variables
Geth doc: f676756b86 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | doc/Language/variables.pod6
Merge pull request #1779 from aluaces/patch-1

Correct small typo: "suck like".
DrForr I'm just lazy. Too lazy, maybe, given FOSDEM.
Ulti scimon: I watched your latest vid want me to PM a couple of things I noticed? 11:58
scimon Sure. Though I already know that junctions are not threaded (probably should comment that in the notes). Feel free to comment on the video :) 12:03
Hope it wasn't *too* bad.
scimon (I just popped the slides for the talk up on the video too) 12:09
moritz FYI, I just rebooted www.p6c.org because it was unreachable 13:04
no idea what went wrong though
Geth doc: c532a3bb11 | (Will "Coke" Coleda)++ | 7 files
fix typos
13:37
doc: 9b99292292 | (Will "Coke" Coleda)++ | doc/Type/Signature.pod6
prefer space after comma
synopsebot Link: doc.perl6.org/type/Signature
scimon Well that went well. Early steps but we're learnig stuff. 13:58
DrForr Yay, encouraging signs. 14:04
scimon We got the basic concept working with a test script and Proc::Async :) 14:10
One wrinkle is the original module uses wantarray to return a string or array. 14:12
lizmat perhaps you could return a List with a custom .Str ? 14:13
m: my $l = (1,2,3) but "foo"; say $l; put $l 14:15
camelia (1 2 3)
foo
scimon That's a thought. 14:20
Or a Str with a but List on it. 14:21
teatime continues thinking about how to duplicate the functionality of gulp.js in perl6 14:23
rab26 Hello, I'm on Mint 18.1 and have rakudo installed but am unable to install Zef. Does anybody know how to solve this? I get "Undeclared names" for JSONException and Supplier
sorry in advance if this is the wrong place to ask 14:24
scimon What does perl6 -v return? 14:25
[Coke] Should be fine; how are you trying to install zef? what version of perl6 do you have? (perl6 --version)
lizmat scimon: internally, usually .list is called to get something listy, or ~~ Iterable is done 14:27
scimon: feels easier to cover all of the str coercions than vice-versa 14:28
scimon Point. :)
rab26 "This is perl6 version 2015.11 built on MoarVM version 2015.11" - I'm using the version on the Mint repo, and trying to install Zef via git. Looking at the version now I feel quite silly though, as this is very old - I'll try installing rakudo from git :) 14:30
moritz rab26++
[Coke] good plan. 14:31
jast silly distros, always using ancient versions
scimon lizmat: I'm still trying to work out the use case for the list version. More when you're going to want the returned data in a list. Anyway. It's all early stages. 14:32
DrForr scimon: If it's preventing you from making progress, then maybe create a wrapper method to return the scalar versio, and modify the tests temporarily? 14:34
Once you know what it's doing in Perl 5 it might not even be neede for p6, or have been a mistake 14:35
scimon It's fine :) partly it's just discuss the best way to do it in the team.
DrForr Gotcha. My memory says I mostly did that so the scalar was the first item, rather than the last item in the array so I didn't have to create a scratch list or ()[-1]. 14:38
ER, ()[0]
scimon Side note. Proc::Async is all shades of awesome :) 14:43
moritz it is! 14:46
Ulti .win 4 14:56
erk
Eyoson Hello, can anyone tell me if R* optimizes tail recursion 15:24
jnthn No 15:26
(uh, "no it doesn't", not "nobody can tell you" :))
Eyoson alright, thanks m8 15:27
moritz m4 is half a m8, right? :-) 15:28
Eyoson lol 15:38
jkramer m: (.=succ xx 4 with my $x = 'm4')[*-1] 15:45
camelia ( no output )
jkramer m: say (.=succ xx 4 with my $x = 'm4')[*-1]
camelia m8
jkramer m: my $x = 'm4'; say --$x 15:46
camelia m3
jkramer m: say 'm4'--
camelia Cannot resolve caller postfix:<-->(Str); the following candidates
match the type but require mutable arguments:
(Mu:D $a is rw)

The following do not match for other reasons:
(Bool:D $a is rw)
(Bool:U $a is rw)
(Int:D $a …
jkramer m: say 'm4'-1
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5m4' (indicated by ⏏)
in block <unit> at <tmp> line 1
Geth doc: 87f1ed20db | (JJ Merelo)++ | doc/Language/objects.pod6
Adds accessor overriding example

I'm using the same wording mentioned in the first comment by
  @ronaldxs (get well soon :-) ) and including an example that overrides
mutator and accessor, not using `Proxy` but just using multi methods.
I hope it's OK, so this closes #136, phew, but obviously if anyone has anything to object please feel free to re-open and make suggestions and/or pull requests.
17:26
synopsebot Link: doc.perl6.org/language/objects
Xliff How can you get the name of the current method? 17:40
moritz m: class A { method b() { say &?ROUTINE.name } }; A.b 17:41
camelia b
Xliff moritz++
[Coke] JJ - notes like that don't belong in the commit message; they belong in the ticket. IMO 17:43
the commit message is about the change you made.
Geth doc: 53c012a66b | (JJ Merelo)++ | doc/Language/objects.pod6
Changes tab to spaces

The program actually returned tabs, you know... But point taken. Closes #1780.
17:49
synopsebot Link: doc.perl6.org/language/objects
[Coke] again, comments like that don't belong in the commit message, IMO 17:52
Xliff Is there a way to link to a github gist comment? 17:53
Ah. Found it. 17:54
gist.github.com/Xliff/5b8f8a7bd2ca...nt-2352640 # moritz++ and DrForr++ 17:55
AlexDaniel [Coke]: I don't think JJ is reading this?
yoleaux 13:48Z <tbrowder> AlexDaniel: My nqp PR #414 is now passing all checks after a second commit. Ready for merge if it satisfies you.
[Coke] AlexDaniel: Yup, moved it to the ticket. 17:56
Xliff: yah, I think you have to cheat. 17:57
Xliff Well, now I am at the dreaded <simple_expr> point in DDL. 18:03
Whomever told me that would be fun.... LIED.
Geth doc: 598d950fb1 | (JJ Merelo)++ | doc/Language/objects.pod6
Modifies example to use only spaces

And, just maybe, closes 1780
18:04
synopsebot Link: doc.perl6.org/language/objects
Geth doc: 881d17d195 | (JJ Merelo)++ | doc/Language/objects.pod6
Closes #1780, my bad before
18:07
Zoffix Is it just me or are all these weird variables (e.g. $ⲧ, $þing, $^þ) being added to examples in docs are kinda distracting? These are English docs and these aren't the variable names a typical English-speaking programmer would use in their code, which makes the reader question why these special symbols were used. 18:18
Zoffix Especially if they're coming from sigil-less languages; it's easy to assume `$þ` is the sigil. 18:30
Zoffix Guess tis just me :) 18:39
[Coke] No, it's not just you. 18:42
[Coke] I think it's a stylistic choice that we should decide on and enforce, and I'm not a fan of the non-english ones as well. examples should focus on showing you the one thing, and "cool variable names" isn't something that's part of "here's a for loop" 18:43
Juerd +1 18:44
[Coke] and sorry, not 'non-english', but mainly 'non-ASCII', I guess. Again, if it's a stylistic thing across the board, that's fine, but I suspect the concensus is not to do that.
Juerd Examples that try to show off too many features at once really bother me
In fact, I'd really prefer if everything but the main point of the example would be so simple that people coming from practically any language can follow it 18:45
[Coke] I think that's the platonic ideal here, yes. 18:50
mienaikage A JSON::Fast bug bit me, it doesn't seem to like \u and \n together in the same string at the moment :( 18:57
AlexDani` timotimo: ↑? 19:04
timotimo mienaikage: oh crap! thanks, can you give me the json that reroduces the bug? 19:05
mienaikage I've added a comment in github.com/timo/json_fast/issues/35 19:06
El_Che [Coke]: I get annoyed with the atom utf8 symbol in code 19:07
mienaikage The json I'd been using when the bug hit me was from exercism.io/api/v1/submissions/f73d...ce392ba5f5 19:08
timotimo damn it, i didn't notice that ticket at all
that happens when your github notifications show as "1823 unread" 19:10
mienaikage Heh, my email inbox is in a similar state :P 19:15
timotimo writing that json module has been exhausting and taught me to hate json with a passion 19:20
robertle is there a way to use/require a module and call something in it, conditionally on that module being present? if the module is not present, just don't call stuff from it? without EVAL or similar evil? 19:23
I can do "try require", but I don't understand how I can skip calling stuff in that module without making that a compile-time problem... 19:26
timotimo well, with a "try require" you get the symbols but if the stuff wasn't available it'll just be empty 19:28
rakudo.org/2017/03/18/lexical-requi...rade-info/ - robertle 19:29
psch i'm surprised that a PackageHOW seems generally falsey
m: require Test; say so Test
camelia False
psch m: require Test; say Test::.keys
camelia (&todo_output EXPORT &failure_output &output)
psch m: say so CORE
camelia False
psch 'cause that was my intuition -- e.g. try require Foo; if Foo { #`[ we did load it ] } else { #`[ didn't ] } 19:30
robertle psch: yeah, but how do I call a method in Foo in the
"we did load it"Acase? 19:31
psch robertle: i'd still import there :) doesn't matter though, that snippet doesn't do what you want 19:31
robertle Test::.keys looks good, but I don't get my exported sub in my keys list, will investigate that route some more
psch robertle: you should read timotimo++'s link i think 19:32
AlexDaniel mienaikage: I have 16663 unread messages in my mail. I don't think you can beat that? :D 19:33
psch knows how to use "mark all as read" :) 19:35
mienaikage Not with my work address, my personal one is currently 19979 though lol
robertle psch, timotimo: totally, that 19:36
did the trick! nad sorry for the
noise, keyboard is flaky
AlexDaniel psch: I still want to know which ones I've read, especially when I come back to some email that I must have read but didn't 19:37
psch AlexDaniel: oh, yeah, i'm being snarky. i do use gmails starring feature for "get back to this" instead
skids had 200k or so last he looked. 20:06
b2gills codegolf.stackexchange.com/a/155896/1147 20:45
m: .put for [Z~] ((' Aa','a A','Aa ')».ords «+»^26)».chr # I just found a use for matrix addition in a Code Golf entry 20:46
camelia bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ
psch m: ([Z~] ((' Aa','a A','Aa ')».ords «+»^26)».chr)>>.put 20:48
camelia bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ
psch ...still don't have compose set up here :/
b2gills: i think postfix hyper method put gives you 2 chars? 20:49
b2gills While that currently works, it might print them in a different order in the future.
psch oh right 20:50
duh
i also discovered that we can't chain reduce
ooh wait
i think i got confused actually... hold on
b2gills m: [Z~](((' Aa','a A','Aa ')».ords «+»^26)».chr)>>.put # also [Z~](…) works btw 20:51
camelia bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ
psch yeah, i'm a bit insecure with some bits of methodop precedence :) 20:52
psch m: quietly [[&put]] [Z~] ((' Aa','a A','Aa ')».ords «+»^26)».chr 20:54
camelia bC#eF&hI)kL,nO/qR2tU5wX8zA!cD$fG'iJ*lM-oP0rS3uV6xY9
TrueaB"dE%gH(jK+mN.pQ1sT4vW7yZ
psch if one would ditch the quietly..?
i added it for clarity
psch m: say ".put for".chars - "[[&put]]".chars 20:55
camelia 0
psch eh vOv
lizmat b2gills: |<1 2 0> # one char less ?
psch it seems unfortunate that we don't have a shortname for .combinations wrt this golf :) 20:58
wait no, i want .rotor anyway..? 20:59
psch & 21:00
psch ...actually 21:05
m: quietly [[&put]] [Z~]((' Aa','a A','Aa ')».ords «+»^26)».chr
camelia chr codepoint 329867351017038104734110776441107947113825011685531198856122 (0x348D07D6CF57DC2F0E42B09F2873E68A8536E9387341029BBA) is too large
in block <unit> at <tmp> line 1
b2gills For a second lizmat had me thinking that |<1 2 0> was for the second golf (I generally put several up at the same time, and only count the last one)
I had tried several ways of shortening the first one till I gave up, and tried another algorithm
psch "chr codepoint is too large" sounds internal-ish 21:06
b2gills `[Z~](…)».chr` =:= `( [Z~] … )».chr` so the `».chr` happens too late 21:18
psch see, that's *exactly* the methodop precedence i mentioned earlier... >_> 21:19
Zoffix b2gills: you can save 2 chars by using «» for the three strings 21:27
m: [Z~]((«' Aa''a A''Aa '»».ords «+»^26)».chr)».put
camelia bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ
Zoffix m: dd «' Aa''a A''Aa '»
camelia (" Aa", "a A", "Aa ")
b2gills Unfortunately it saves 0 bytes, which is what actually matters on that website 21:30
lucasb m: 0x110000.chr 21:36
camelia ( no output )
lucasb m: 0x110000.chr.say
camelia Error encoding UTF-8 string: could not encode codepoint 1114112 (0x110000), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
in block <unit> at <tmp> line 1
psch that seems less internals 21:37
lucasb++
b2gills m: .put for [Z~] (<!Bb b!B Bb!>».ords «+»(^26-1))».chr
camelia bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ
lucasb the first eval should die too, right?
psch probably something about the int/Int boundary that gets us the internals message?
lucasb: i'm not sure, actually. if it *is* a HLL Exception it should throw on sink
lucasb: this probably means yours is on the internal side too, actually 21:38
b2gills m: 0x110000.chr.^name.say 21:39
camelia Str
psch aha 21:40
"codepoint is too large" *is* an X::AdHoc
m: try 0x35832858181828512858128581285.chr; say $!.WHAT
camelia (AdHoc)
psch m: try 0x110000.chr; say $!.WHAT
camelia (Any)
psch m: try say 0x110000.chr; say $!.WHAT 21:41
camelia (AdHoc)
psch that's a relief, they're both already HLLish enough :)
b2gills It is also happening because of Str.encode() (or related) rather than &chr
psch might want them typed, maybe even the same type, but i'm not touching unicode stuff :)
...i'm also not touching "do we encode on &chr or on &say" vOv 21:44
Xliff Are there grammar checkers for Perl6? 21:45
I want something that will check to see if all of the rules have been defined. 21:46
psch Xliff: something like "for Grammar.^methods { say $_.^name ~ " isn't implemented" if .yada }" i think? 21:55
m: sub a { ... }; sub b { 1 }; say a.yada; say b.yada
camelia Stub code executed
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
psch m: sub a { ... }; sub b { 1 }; say &a.yada; say &b.yada # & nouns verbs :l 21:55
camelia True
False
psch m: class A { method b { ... } }; say A::b.yada 21:57
camelia Could not find symbol '&b'
in block <unit> at <tmp> line 1
psch m: class A { method b { ... } }; say A.^lookup('b').yada 21:58
camelia True
b2gills m: role Bar { method baz {...} }; grammar Foo does Bar { }
psch m: grammar G { token TOP { ... } }; G.^lookup('TOP').yada.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Method 'baz' must be implemented by Foo because it is required by roles: Bar.
at <tmp>:1
False
psch hmm, or not
too many magicks in grammars :( 21:59
jnthn ... matches any 3 chars :)
psch oh duh
of course...
there has been a palm to forehead contact on this side of my screen just now :p 22:00
huh, do we have stubbed rules?
onlystar is proto-specific, isn't it?
b2gills It could be made to work with "\c[HORIZONTAL ELLIPSIS]" 22:01
m: grammar G { token TOP { … } }
camelia 5===SORRY!5===
Unrecognized regex metacharacter … (must be quoted to match literally)
at <tmp>:1
------> 3grammar G { token TOP {7⏏5 … } }
Unrecognized regex metacharacter (must be quoted to match literally)
at <tmp>:1
----…
jnthn Since a token is just a kind of method, then you can always method TOP { ... } :)
psch jnthn++
jnthn I think the original question is probably more about if there's anything that will look at all the rule *calls* in a grammar and say if they map to a declared token 22:02
psch i'm gonna actually step away from the thinky-stuff for today
jnthn Which I'm not aware of there being at present
lucasb Here on my 32-bit machine, I'm getting different results when I test (2**31-1).chr and when I type the literal value 0x7FFFFFFF.chr 22:08
Both values are the same, but the one with exponentiantion dies and the literal one doesn't
but I can't reproduce it here on 64-bit camelia 22:09
:/
moritz lucasb: the result of 2**31-1 might be stored as a bigint internally, while the other isn't 22:24
lucasb moritz: thanks 22:30
doing (my int $ = 2**31-1) made both behave the same
lucasb or... (my Int $ = 0x7FFFFFFF + 1 - 1).chr 22:32
Xliff jnthn++: That's exactly what I am looking for. 22:36
Map to a declared token or rule, really. 22:37
I really don't want to have to write another script to parse the DDL parser I am writing. :P :D
Xliff m: my token _rule { '<' \w+ '>' }; my $a = "<bar>aaa<ber>;;;<foo>^&&&"; say ($a ~~ &_rule); 23:09
camelia 「<bar>」
Xliff Is there any way to get the above to catch all of "bar", "ber" and "foo"? 23:10
Hopefully without changing the token _rule.
Xliff m: my token _rule { '<' \w+ '>' [ .+? <_rule> ]? }; my $a = "<bar>aaa<ber>;;;<foo>^&&&"; say ($a ~~ &_rule); 23:14
camelia No such method '_rule' for invocant of type 'Match'. Did you mean 'prune'?
in regex _rule at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff ^^ Recursive token doesn't seem to work. Was hoping there was a way to do m//g, but with tokens or rules. 23:15
Thanks
Xliff Dur. Overthinking. This is better done with a regexp. 23:17
timotimo you can call tokens and regexes from inside a regex :) 23:21
Herby_ \o 23:21
o/ 23:22
AlexDaniel anyone seeing any issues on HEAD? 23:26
.oO( if you're not using rakudo on HEAD, can you please shoot yourself in the foot by upgrading? )
23:27
Xliff m: <aa aa bb ee dd cc cc ee 1>.unique.say 23:32
camelia (aa bb ee dd cc 1)
Xliff Hah! This seems to do the trick. 23:40
gist.github.com/Xliff/7ec03064abe5...e5d4c26a7d
AlexDaniel more speficifally: zef install Pastebin::Gist 23:56
for me that hangs when running tests 23:57
buuut I think the actual problem is in HTTP::UserAgent maybe…
and the question is whether this is the result of the latest bump or it's this change: github.com/sergot/http-useragent/pull/187 23:58
MasterDuke: maybe if you have a minute ↑ 23:59