»ö« 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 lizmat joined 00:07 lizmat left
Geth modules.perl6.org/cpan-support: 0a3fa9823c | (Zoffix Znet)++ | 5 files
Render markdown READMEs
00:09
Zoffix grrr.. that was positively unfun
Zoffix switches personal preference for Markdown over POD6 to prefer POD6 instead
Gotta be easier to manipulate
Well, I think the prototype is merge-ready. It's presentable and the rest can be polished on master 00:11
00:11 cdg joined 00:15 BenGoldberg joined 00:16 cdg left 00:23 hoffentlichja joined
Zoffix BTW, "expression" JIT backend got merged today. Over a year of work. Almost 500 commits. Will let us optimize more. github.com/MoarVM/MoarVM/pull/674 00:30
rakudo HEAD already using it
brrt++
skids wow. 00:31
hoffentlichja Zoffix: nice, I saw your tweet
will it being used by default or do you have to specify some flag to use the JIT?
be*
Zoffix JIT is used by default, unless you're on 32bit box 00:33
hoffentlichja will there be any difference felt in performance with he JIT enabled compared to previous versions? 00:34
I mean right now, before optimizations 00:35
dpk is there a formal definition somewhere of how Perl 6 matches character classes like \w and \d given that it works on graphemes not codepoints? 'word character' and 'digit character' are, in Unicode, properties of codepoints i believe 00:36
00:37 margeas left
Zoffix buggable: speed 10 :4 00:38
buggable Zoffix, ↑ dates: 2017-10-01–2017-10-03
Zoffix, ▄ █ range: 3.154s–3.579s
Zoffix, ▅█▃▇█▅ speed: 2% faster
Zoffix, ██████▃▁▄▆
TEttinger dpk: I don't think they are definitively defined in unicode, word character in particular has some weird behavior across platforms that seems very non-standardized
Zoffix hoffentlichja: I'd say it's within the noise and I think that was expected. I'm really a n00b with this stuff. You could try hunting down brrt on #moarvm. They're the ones who did all this work and would know more
dpk where the first codepoint of the grapheme is a word/digit character it seems to match, but there are Complications™ about the definition of a grapheme
TEttinger: well, right. how does Perl 6 definitively define it for Perl 6 purposes? 00:39
Zoffix The docs say "\w matches a single word character; i.e., a letter (Unicode category L), a digit or an underscore. " 00:40
hoffentlichja Zoffix: ok thanks, It's not so important, I was only curious
TEttinger it's a good question. I've seen some places allow a-zA-Z0-9_ only, others extend that to all Letter category and Number category codepoints plus either _ or the whole subcategory of connectors
so that sounds like L, Nd, and the single char _ 00:41
Zoffix In this section: docs.perl6.org/language/regexes#Ba...er_classes
TEttinger oh that's weird, N not Nd
dpk Zoffix: so any grapheme containing one of those codepoints will match? (which, given that limited definition, i think implies that it will be the first codepoint in the grapheme)
Zoffix m: say "༳" ~~ /\w/ 00:42
camelia Nil
Zoffix TEttinger: No don't seem to match
dpk there are, as i mentioned, complications
TEttinger m: say "༳" ~~ /\d/
camelia Nil
TEttinger docs seem wrong then
Zoffix dpk: no idea. I don't know this stuff, but I think a combiner would attain properties of the char its being applied on, so "7\x[308]" would match a \d and a \d
TEttinger "\d matches a single digit (Unicode property N)" 00:43
which seems empirically incorrect...
dpk yeah, that's what i've found in my experimentation so far
TEttinger m: say "1" ~~ /\d/
camelia 「1」
dpk m: say "1\x[300]23" ~~ /\d+/
camelia 「1̀23」
Zoffix Yeah. We should get moritz++ to rake through the docs and correct them once he's done with his grammar book :PO)
TEttinger uhhh 00:44
Zoffix Or samcv++ to rake through the docs and correct them, once she rested from the Unicode grant :D
TEttinger where's samcv when you need her unicode expertise...
samcv hey TEttinger
i have been summoned!
Zoffix \o/
TEttinger hallo!
do you know why 1 with a diacritic counts as a \d char?
dpk m: say "\x1100\x11A2" ~~ /\w/ 00:45
camelia 「ᄀᆢ」
dpk okay, so it handle Hangul correctly
TEttinger dinner for meeeee
dpk m: say "🇪🇺" ~~ /\w/ 00:46
camelia Nil
Zoffix TEttinger: because the resultant grapheme still has Nd property
dpk Zoffix: Nd isn't a property of graphemes though, is it? it's a property of codepoints
Zoffix It's a pain in the butt when you want to just match digits 00:47
dpk well then you can just say [0-9]
Zoffix Oh, no idea
dpk it explains that in the docs
Zoffix No, but I want all the digits
dpk m: say "1\x[300]23" ~~ /[0-9]+/
camelia 5===SORRY!5===
Unrecognized regex metacharacter - (must be quoted to match literally)
at <tmp>:1
------> 3say "1\x[300]23" ~~ /[07⏏5-9]+/
Unable to parse expression in metachar:sym<[ ]>; couldn't find final ']'
at <tmp>:1
------> 3…
Zoffix m: say "1\x[300]23" ~~ /<[0..9]>+/
camelia 「23」
samcv TEttinger, well because it matches the base character
which is a digit
Zoffix You basically have to hack (at the moment, I hope in the future we get better interface for this) 00:48
dpk m: say ("1" + 1)
camelia 2
dpk m: say ("①" + 1)
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5①' (indicated by ⏏)
in block <unit> at <tmp> line 1
samcv Zoffix, like something to say, nomark?
Zoffix `No` can only be used as literals. Use unival() to convert them from string
samcv: yeah
dpk m: say unival("①")
camelia 1
Zoffix so, say, `\d` matches just the base characters without any stuff on them
m: say ① + 2 00:49
camelia 3
dpk m: say unival("Ⅻ")
camelia 12
Zoffix m: say Ⅻ²
camelia 144
dpk m: say unival("1\x[300]23")
camelia 1
dpk that … seems like a potential security issue for some apps 00:50
Zoffix 6lang.party/post/Anguish--Invisibl...Data-Theft
00:50 Morfent joined
Zoffix Oh the unival carying only about the first char... 00:51
m: say unival("1\x[300]dasdsadsadsadsadasdsa")
camelia 1
Zoffix Yeah. /me files
dpk m: say ("h\x[300]" ~~ /<:M>/)
camelia Nil
dpk so the grapheme only has the properties of its base character, in other words
m: say ("\x[300]" ~~ /<:M>/)
camelia 「̀」
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=132217 00:52
dpk 'base character' not being particularly well defined, but i think all the cases of graphemes that aren't (U+xxxx + Mn) happen to have the same properties for all characters in the grapheme. probably. i think 00:53
oh no, wait, ZWJ definitely doesn't have the properties of the characters it joins
Zoffix: thanks! 00:54
samcv also Zoffix if someone can tell me how to add new options for regex that would be nice 00:55
like on the nqp side
also not sure the code that messes up ignoremark for variables :( 00:56
Zoffix m: say ~("1\x[300]23" ~~ /[ (\d+) <?{$0.tail.ord.chr eq $0.tail}> ]+/)
camelia 23
dpk m: say "🇪🇺" ~~ /<:So>/
camelia 「🇪🇺」
Zoffix samcv: maybe moritz would know?
dpk m: say "🇪\x[300]" ~~ /<:So>/
camelia 「🇪̀」
samcv lemme see if i have an rt
Zoffix k, I turned off modules.perl6.org cron job while I update stuff.... mentioning in case I forget to turn it back on again, like last time. 00:59
dpk m: say "👨‍👨‍👦".codepoints 01:00
camelia No such method 'codepoints' for invocant of type 'Str'
in block <unit> at <tmp> line 1
dpk m: say "👨‍👨‍👦".codes
camelia 5
Zoffix One benefit of CPAN storage is it's a hellalot faster to process than p6c dists
dpk m: say "👨‍👨‍👦" ~~ /<:So>/
camelia 「👨‍👨‍👦」
dpk m: say "👨‍👨‍👦" ~~ /\x200D/ 01:01
camelia Nil
01:01 khw joined
dpk is there any way to match a grapheme with a particular codepoint in it, then? 01:01
samcv hmm i can probably maake .codes faster. though idk if it's that important. i know i made it 2.5x faster by making a moarvm function for it. .codes used to be .NFC.elems
just thought of an optimization i can make 01:02
dpk i assumed NFG meant .codes was O(1)
no wait, that's the other one 01:03
samcv yes .codes is still O(1)
dpk cannot think straight at 3am
samcv but it no longer renormalizes it into an array and then gets the .elems
not sure if utf8-c8 synthetics should be counted as 1 or not with .codes. currently they are counted as many 01:05
01:05 mniip left
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').ords 01:06
camelia (20 20 1114109 120 65 70)
samcv i'm inclined to keep .ords and .codes always returning the same numbers though
recently i fixed it if you read, made sure string operations wouldn't "flatten" utf8-c8 synthetics
m: say Buf.new(20,20,1199).decode('utf8-c8')
camelia 􏿽xAF
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').graphs 01:07
camelia No such method 'graphs' for invocant of type 'Str'
in block <unit> at <tmp> line 1
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').Str.graphs
camelia No such method 'graphs' for invocant of type 'Str'
in block <unit> at <tmp> line 1
samcv m: say Buf.new(20,20,1199).encode('utf8-c8').Str.graphs
camelia No such method 'encode' for invocant of type 'Buf'. Did you mean 'decode'?
in block <unit> at <tmp> line 1
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').^WHAT
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use .^ on a non-identifier method call
at <tmp>:1
------> 3.new(20,20,1199).decode('utf8-c8').^WHAT7⏏5<EOL>
expecting any of:
method arguments
samcv weird
say Buf.new(20,20,1199).decode('utf8-c8').Str.graphs 01:08
No such method 'graphs' for invocant of type 'Str'
evalable6 (exit code 1) No such method 'graphs' for invocant of type 'Str'
in block <unit> at /tmp/3Kb6URnnbI line 1
samcv that… shouldn't happen
Zoffix m: say "".graphs
camelia No such method 'graphs' for invocant of type 'Str'
in block <unit> at <tmp> line 1
Zoffix It's not a method tho?
samcv oh
sorry i'm not thinking...
Zoffix :)
samcv i mean. at least thinking too hard on other bigger problems :p 01:09
dpk m: "\r\n\x[300]".chars
camelia ( no output )
dpk m: say "\r\n\x[300]".chars
camelia 2
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').chars
camelia 3
samcv m: say Buf.new(20,20,1199).decode('utf8-c8').codes
camelia 6
samcv but you guys think it's probably good that .ords and .codes are in sync? less suprising i think
Zoffix shrugs 01:10
samcv i would like utf8-c8 graphemes to count as 1 code. but. i mean
they're really bytes not codes
and it just counts the representation if you did want to write it out using the internal representation form. of <Plane 16 Private Use-10FFFD> + 'x' + hex 01:11
at least the docs tell you to count the bytes to use .Buf
01:16 troys is now known as troys_ 01:21 llfourn joined 01:29 zakharyas joined 01:36 cdg joined 01:41 cdg left, mr-foobar left 01:47 ilbot3 left 01:48 jeromelanteri joined
Geth modules.perl6.org: zoffixznet++ created pull request #83:
Cpan support
01:48
modules.perl6.org/master: 26 commits pushed by (Zoffix Znet)++
review: github.com/perl6/modules.perl6.org...e5f99b43af
01:49
01:55 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:58 Cabanossi left
Geth modules.perl6.org: 5dab433943 | (Zoffix Znet)++ | Build.PL
Add AssetPack's `recommends` as deps
01:58
01:59 Cabanossi joined
Zoffix ♩ ♪ ♫ ♬ *guitar solo* ♩ ♪ ♫ ♬ 02:00
w00t: modules.perl6.org/dist/Number::Deno...pan:ZOFFIX 02:01
50-100 github dists currently missing; got a lot of network errors during fresh rebuild; they'll come back on future runs
eco: from:cpan
buggable Zoffix, Found 26 results: Acme::Anguish, Acme::Meow, App::Mi6, Backtrace::AsHTML, Bailador. See modules.perl6.org/s/from%3Acpan
Zoffix \o/ /o/ \o\ |o| -o- \o\ 02:02
02:04 geekosaur left, grondilu_ joined
MasterDuke cool beans 02:06
Geth modules.perl6.org: 2977144ae7 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Root.pm
Hide core dists on `from:` or `author:` searches

Unless `from:` is from `core`
02:07
02:07 grondilu left
hoffentlichja is there a possibility that any breaking changes would occur in the future or is it all set and it's all about the implementation now? is it ok to write something more serious in perl6 without having to worry about it? 02:09
I know perl6 was officially released 2015 and that there's perl6 specifications that are implemented by rakudo and moar, but I want to make sure I understand what that means and what its state is 02:10
Geth modules.perl6.org: 0325ed4454 | (Zoffix Znet)++ | 3 files
Add search form to dist pages
02:12 geekosaur joined
Zoffix hoffentlichja: we try very hard not to add any changes that would break current 6.c-errata roast (spec) branch. Theoretically, no breaking changes would happen. Practically, there is a lot of behaviour that's undefined, so if you end up using it, it might break. Somewhere starting with next year, we'll release 6.d language and 6.c compiler will be somewhat (more) change-safe. So if you got `use v6.c` in your 02:13
code, it'll continue using 6.c compiler. So basically, we don't plan to break anything, but sometimes it happens
And it'll start happening less and less as time moves on and more and more stuff is covered by the spec and more and more code is polished 02:14
hoffentlichja Zoffix: that's understandable, but I was thinking in terms of the API 02:15
Zoffix I think it's stable and usable.
hoffentlichja that's great to hear 02:16
02:19 kerframil joined
Geth modules.perl6.org: 3e92008bf7 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder.pm
Move CPAN dists to be processed before p6c

They're MUCH faster to process, so it makes sense to chug through them first.
02:20
02:21 shadoxx left
Zoffix k, update is live; cron job is back in service. I backed up old db into ~/Oct-3-2017.modulesperl6.db.backup if needed. 02:22
Zoffix goes to bed
\o
hoffentlichja Zoffix: good night
02:23 shadoxx joined
hoffentlichja the morning is just arriving here 02:23
02:28 zakharyas left 02:33 mcmillhj joined 02:37 mcmillhj left 02:44 noganex_ joined, khw left 02:46 noganex left
Xliff Zoffix: Regarding your blog post on invisible chars, proper pre-commit hooks with sensible filtering would take care of that quite nicely. 02:47
Well, FEH
.tell Zoffix Regarding your blog post on invisible chars, proper pre-commit hooks with sensible filtering would take care of that quite nicely.
yoleaux Xliff: I'll pass your message to Zoffix.
02:51 yht joined
dpk m: say "héllo" ~~ /hello/ 03:00
camelia Nil
dpk m: say "héllo" ~~ /he<:M>llo/ 03:01
camelia Nil
hoffentlichja is there any difference between .. and ... in ranges like 1..10 ? 03:02
03:02 khw joined 03:04 wamba joined 03:05 shadoxx left, shadoxx_ joined
MasterDuke hoffentlichja: yes. ... will try to figure out sequences 03:08
hoffentlichja MasterDuke: what does that mean exactly? 03:10
m: for (1,4...20) { .say } 03:11
camelia 1
4
7
10
13
16
19
hoffentlichja I see this doesn't work with ..
03:11 yht left 03:13 abraxxa left
MasterDuke yeah. docs.perl6.org/language/operators#...e_operator has some more details 03:13
03:14 shadoxx_ left
hoffentlichja MasterDuke: ok thanks, I haven't gotten to that part yet 03:14
03:14 shadoxx joined 03:17 lizmat joined
MasterDuke the tldr is that .. creates a Range and ... creates a Seq. in the case of something simple like 1 .. 4 and 1 ... 4 they'll pretty much act the same, but for more complicated constructs they'll do different things 03:18
hoffentlichja I see
03:22 lizmat left 03:27 abraxxa joined 03:43 redhands joined 03:44 kyan joined
redhands tryperl6.org finally has an updated rakudo image but probably can't handle more than a handful of concurrent sessions *sad*, also could be cuter (like tryruby.org) 03:48
03:48 rba__ joined 03:51 rba_ left 03:56 Cabanossi left 03:58 weabot left, Cabanossi joined 04:02 weabot joined 04:03 weabot left 04:05 weabot joined 04:13 cdg joined 04:18 skids left, cdg left 04:20 Exodist left, Exodist joined 04:21 wamba left, nightfrog left 04:23 BenGoldberg left 04:25 weabot left 04:27 Ven`` joined 04:28 weabot joined 04:29 pilne left 04:49 quotable6 left, evalable6 left, committable6 left, unicodable6 left, coverable6 left, statisfiable6 left, bloatable6 left, greppable6 left, benchable6 left, nativecallable6 left, bisectable6 left, squashable6 left, releasable6 left, nativecallable6 joined, evalable6 joined, quotable6 joined, committable6 joined, bloatable6 joined, bisectable6 joined, unicodable6 joined, greppable6 joined, benchable6 joined, releasable6 joined, coverable6 joined, squashable6 joined, statisfiable6 joined, ChanServ sets mode: +v bloatable6, ChanServ sets mode: +v bisectable6, ChanServ sets mode: +v greppable6, ChanServ sets mode: +v benchable6, ChanServ sets mode: +v releasable6, ChanServ sets mode: +v coverable6 04:54 Todd joined
Todd Hi All, I need some syntax help with the following: 04:54
perl6 -e '( my $day, my $day-of-week ) = DateTime.now{.day, .day-of-week}; say "$day\n$day-of-week";'
What am I doing wrong? 04:55
04:56 Cabanossi left 04:58 Cabanossi joined 04:59 troys_ is now known as troys 05:00 ryn1x joined 05:12 ryn1x left 05:14 yht joined 05:16 rba_ joined 05:18 rba__ left 05:20 shadoxx left 05:21 shadoxx joined 05:26 ufobat joined 05:27 wamba joined, xtreak joined 05:30 xtreak left, xtreak joined 05:31 rba__ joined, domidumont joined, lowbro joined, lowbro left, lowbro joined, khw left 05:33 rba_ left 05:35 xtreak left
Todd okay an easier one. how do I say either a - or a + in this at the beginning `if ( $x ~~ /^"-"/ ) {} 05:35
05:37 domidumont left
hoffentlichja Todd: I think everybody is still asleep right now, the europeans will start being active soon :) 05:38
05:38 domidumont joined
Todd aw shucks! 05:38
05:38 xtreak joined
Todd I get "-7" and need to turn it into "-0700". -11 -> -1100, +5-> +0500. 05:39
05:42 shadoxx left 05:43 mcmillhj joined 05:46 shadoxx joined
Todd bye bey 05:46
05:47 Todd left, mcmillhj left 05:59 mcmillhj joined 06:03 nadim joined 06:04 mcmillhj left 06:17 Ven`` left, kerframil left, domidumont left 06:18 troys left 06:21 domidumont joined 06:30 daxim left 06:31 shadoxx left 06:32 leont_ joined, shadoxx joined 06:42 leont_ left 06:46 lizmat joined 06:52 redhands left, shadoxx left 06:53 shadoxx joined, kyan left 06:54 wamba left 06:57 Cabanossi left 06:58 Cabanossi joined 07:00 xtreak left 07:01 wamba joined 07:05 robertle left
u-ou why do I get 404 when I click IO::Socket::Async::SSL from modules.perl6.org? 07:08
07:09 xtreak joined 07:11 xtreak left 07:13 xtreak joined, xtreak left
Geth ecosystem: Tyil++ created pull request #371:
Add MPD::AutoQueue to META.list
07:14
07:18 xtreak joined, shadoxx left, shadoxx joined
eater u-ou: it's postfixing author fields 07:19
yoleaux 30 Sep 2017 01:18Z <MasterDuke> eater: some comments about the IPv6 io::socket::async test irclog.perlgeek.de/perl6-dev/2017-...i_15237813
eater u-ou: and some people have email addresses in there (which is only sane) and it's breaking on that apperently 07:21
u-ou ok :)
DrForr Wow. I could make a career out of correcting the English in Czech corporate training manuals. 07:23
jast if someone is willing to pay for those corrections, sure... :) 07:25
07:26 Cabanossi left 07:27 daxim joined 07:28 Cabanossi joined
DrForr Of course they're not, because the market isn't there. But good god, even Google does better... at least in some cases. 07:30
eater u-ou: github.com/perl6/modules.perl6.org/issues/84
DrForr "Click gradually on the blue frame with picture." for instance. 07:32
07:34 mr-foobar joined
u-ou eater: I see. 07:37
07:37 dj_goku_ left 07:39 shadoxx left, dj_goku joined, dj_goku left, dj_goku joined 07:40 okl joined, patrickz joined, shadoxx joined
El_Che DrForr: are you sure the market isn't there? 07:40
DrForr: and don't click like a brute on the button 07:41
DrForr Oh, I was *hammering* on that beast, nearly broke the switch twice :)
Geth ecosystem: 0eb645c113 | (Patrick Spek)++ | META.list
Add MPD::AutoQueue to META.list
07:42
ecosystem: 1b60519357 | Altai-man++ (committed using GitHub Web editor) | META.list
Merge pull request #371 from Tyil/master

Add MPD::AutoQueue to META.list
07:42 darutoko joined 08:02 evalable6 left 08:03 evalable6 joined 08:05 tony-o left 08:06 aindilis` joined, tony-o joined 08:07 aindilis left 08:13 alexk joined 08:14 cdg joined 08:15 SHODAN left
alexk m: class Foo { has $.bar }.^methods(:local) 08:15
camelia ( no output )
alexk m: say class Foo { has $.bar }.^methods(:local) 08:16
camelia (bar BUILDALL)
08:18 cdg left, nowan left
lizmat I was considering hiding 'BUILDALL' from .^methods, but it *is* introspection after all, and it *does* exist now 08:19
perhaps we need another flag to ^methods 08:20
afk&
08:20 lizmat left 08:21 xtreak left, nowan joined
AelxDnaiel squashable6: next 08:21
squashable6 AelxDnaiel, ⚠🍕 Next SQUASHathon in 2 days and ≈1 hour (2017-10-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
08:24 alexk left 08:26 yht left
AelxDnaiel where's the source code for tryperl6.org? 08:28
just tried 5 ÷ 2 there and it didn't work…
2 * π doesn't work…
79²¹ too… failed all tasks on the second screen :) 08:29
08:31 jeromelanteri left
DrForr Oof. 08:32
08:33 dakkar joined 08:42 yht joined 08:43 llfourn left, wamba left 08:48 Aaronepower left 08:52 Morfent left 08:53 epony left
AelxDnaiel OK I messaged the author 08:56
08:57 epony joined 08:58 wamba joined 09:00 jonas1 joined 09:01 TEttinger left 09:08 rba__ is now known as rba 09:09 imcsk8 left, imcsk8 joined, AelxDnaiel is now known as AlexDaniel 09:15 araraloren joined
araraloren evening 09:15
u-ou hey
09:16 rba is now known as rba_
araraloren o/ 09:18
09:18 rba_ is now known as rba
u-ou :) 09:19
09:20 xtreak joined 09:26 Cabanossi left 09:28 Cabanossi joined 09:34 scovit joined
scovit Hello, do any of you can give me an hint on how best to recover from a broken promise? I mean I can handle the exception with CATCH, but then I would like to resume just after the await 09:35
it is not super-important, but it feels like one of those cases where a goto would be the right thing to do 09:36
09:37 rindolf joined
scovit I found the solution, introducing a bogus scope 09:38
still feels like the goto is more elegant 09:39
jnthn You can also try await ...
And then check $!
scovit hi jnthn, what would $! contain?
jnthn The exception object, if any was thrown 09:40
If you want to ignore failures totally then you can just ignore it, of course :)
scovit sorry but I am a bit slow: if anything is thrown, doesn't the program die? 09:41
09:41 sproctor joined
scovit m: await start { fail "" } 09:43
camelia An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:

in block at <tmp> line 1
scovit m: await start { fail "" }; say "hello:", $!;
camelia An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:

in block at <tmp> line 1
sproctor Hey folks. So... at London PM last week I gave my 15 minute talk on Perl6 and reaons I think people should be thinking about using it in production. It seemed to go well and I'm going to be expanding on a bunch of it for the London Perl Workshop in November.
scovit m: await start { fail X::AdHoc.new("ciao") }; CATCH { default { } }; say "hello:", $!; 09:44
camelia ( no output )
scovit m: { await start { fail X::AdHoc.new("ciao") }; CATCH { default { } };}; say "hello:", $!;
camelia hello:An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:
Default constructor for 'X::AdHoc' only takes named arguments
in block at <tmp> line 1
scovit is it possible to avoid the extra scope?
sproctor I was planning in covering Unicode, Rats, Objects type and Roles and the threading stuff (and junctions... and loads of other bits I'll be sprinkling over the talk as I go along).... anyone got any thing you think I should mention? 09:45
ilmari[m] m: try await start { fail X::AdHoc.new("ciao") }; say "hello:", $!;
camelia hello:An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:
Default constructor for 'X::AdHoc' only takes named arguments
in block at <tmp> line 1
scovit Ah ok, "try". nice 09:46
ilmari[m] scovit: when jnthn said "try await" he literally meant that 09:47
scovit :D
09:48 mniip joined 09:50 astj left 09:51 astj joined 09:55 astj left
u-ou which operator should I overload for "sameness" 09:55
09:56 okl left
u-ou there are a few, like ==, ===, eq, eqv 09:56
09:57 Cabanossi left 09:58 Cabanossi joined
sproctor Surely sameness would be to get ~~ to work with your objects? 09:58
u-ou hmm. I think I need eqv.
ah 09:59
I think in this particular case it's eqv 10:00
which I wouldn't need to override
10:03 astj joined 10:07 astj left, Aaronepower joined 10:09 margeas joined, gregf_ joined 10:12 lichtkind left 10:13 dogbert2 joined
Zoffix , 10:19
yoleaux 02:47Z <Xliff> Zoffix: Regarding your blog post on invisible chars, proper pre-commit hooks with sensible filtering would take care of that quite nicely.
Zoffix u-ou: make your own op :) But... eqv is generally for "sameness". The rest aren't really: eq is string equality, == is numeric equality, === is object identity, and ~~ is RHS-dependant matching. 10:23
10:25 xtreak left, shadoxx left 10:26 Cabanossi left
u-ou what does RHS stand for? 10:26
10:26 lichtkind joined 10:27 shadoxx joined
Zoffix Right Hand Side 10:27
u-ou ah
Zoffix The thing ont he right hand side of the ~~ op dictates how the match is performed
10:28 xtreak joined, Cabanossi joined
u-ou cool 10:29
I'm going to sleep, nn!
Zoffix \o 10:30
10:31 traxex joined
Geth modules.perl6.org: 1f96bc6263 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Fix crash when dist contains "README" file with no extension
10:34
10:38 W4RL0RD joined
Geth modules.perl6.org: dd269a29fb | (Zoffix Znet)++ | 2 files
[REBUILD] Widen dist route placeholders

Since now dist name includes author names that contain all sorts of things in them.
Fixes #84
10:38
eater Zoffix++ 10:41
:D
Zoffix Gonna eventually swap the "author" portion to "auth" that's made from sanitized "author" field if "auth" is missing 10:42
Zoffix &
10:50 shadoxx left, shadoxx joined 10:51 astj joined 10:55 astj left 11:02 Aaronepower left 11:03 xtreak left 11:06 robertle joined 11:13 cdg joined, traxex left 11:17 Aaronepower joined 11:18 cdg left, xtreak joined 11:22 nightfrog joined 11:24 Aaronepower left 11:30 SourceBaby left 11:32 [Coke] left, [ptc] left, masak left, Util left, synopsebot left, dalek left, d4l3k_ joined, ChanServ sets mode: +v d4l3k_, synopsebot joined, ChanServ sets mode: +v synopsebot 11:33 moritz joined, d4l3k_ is now known as dalek
moritz my datacenter colleagues accidentally power-cycled the server on which hack, www and irc.p6c.org run 11:34
dpk m: say "Ü" ~~ /U<:M>/ 11:35
camelia Nil
dpk is there any way to match a given character plus any diacritics? 11:36
i.e. a regex that matches all of Ü, Ú, Ù, Û, etc 11:37
moritz m: say 'Ü' ~~ /:ignoremark U/
camelia 「Ü」
dpk ahh
11:37 mcsnolte left
dpk thanks 11:37
hoffentlichja that's pretty nice
hahainternet that is quite neat 11:38
one thing i feel is missing from a lot of languages, because it's supremely hard to do
is homoglyphs
it's mostly down to the render stage, but it'd be nice if a similar mechanism could be used to unify say cyrillic and latin chars etc 11:39
i think i've probably mentioned before, but it's a rarely understood attack that can have absurdly serious consequences
timotimo well, there's the compatibility normalizations
dpk unicode has a database of confusable characters
unicode.org/cldr/utility/confusables.jsp
11:40 Aaronepower joined
hahainternet ooh dpk i didn't know there was a canonical list 11:40
i never have enough time to dig into this stuff :(
timotimo oh, that's just 1 billion items
no problem, we'll just put them in with the rest of the unicode db ... 11:41
jast we should all use an RFC 5242-based character encoding ;)
timotimo let's just store all our text in SIXEL ansi escape sequences
jast (tldr: encode the character shapes)
dpk timotimo: no, that's 1 billion possible recursively-enumerated strings that are confusable with 'paypal'
hahainternet yeah timotimo i think you're being a bit aggressive there
timotimo haha :) 11:42
hahainternet this can actually be a serious issue
there have been many many sites i've used where it is trivial to impersonate "admin" or an individual user
timotimo i'm not sure i get which exact piece you're refering to
hahainternet and as soon as they're screenshotted or similar it is indistinguishable
timοtimο or timotimo .. which is you? 11:43
jast yeah, this homoglyph stuff is nasty, and one reason I prefer restricting to ASCII in identifiers
timotimo the one that doesn't have question marks instead of os
hahainternet they both have os to me
timotimo yeah, my terminal is b0rked
i'd have to restart weechat to fix it and i don't wanna :|
hahainternet i.imgur.com/KU0lhfG.png
timotimo it's getting more and more annoying though
hahainternet so if i made say a forum post like this
or a tweet like this
etc etc
timotimo or a website hostname/URL 11:44
Zoffix hm, modules.perl6.org is ded
hahainternet there's some special handling there already
jast let's all start substituting characters for look-alikes here in chat to help timotimo make the decision to restart ;)
hahainternet firefox and chrome both show the full domain when there's potential confusables
afaik
Zoffix if it was affected by the powercycle wonder why it didn't boot back up automagically
jast I think they just always show the punycode in all IDN cases 11:45
moritz Zoffix: I think there's a cron job that starts it, but it tries to process all modules first
hahainternet jast: i don't think that's true
Zoffix Ohhhhh
ok, I'll fix it in about 15m
hahainternet Since version 22 (2013), Firefox displays IDNs if either the TLD prevents homograph attacks by restricting which characters can be used in domain names or labels do not mix scripts for different languages. Otherwise IDNs are displayed in Punycode.[10][11]
Google Chrome uses an algorithm similar to the one used by Firefox since version 51. Previous versions display an IDN only if all of its characters belong to one (and only one) of the user's preferred languages.[17] 11:46
ok so i'm slightly inaccurate, but they do attempt to address this issue
dpk timotimo: www.unicode.org/Public/security/8.0...sables.txt is the actual database (WARNING: file is quite large)
hahainternet and imo i should be able to address it in perl6 with a single flag, function or what-have-you
timotimo oh it's much smaller than i thought
why did the confusables page say that there's one billion items? 11:47
moritz Zoffix: I've started modules.perl6.org now
dpk 13:41:43 <dpk> timotimo: no, that's 1 billion possible recursively-enumerated strings that are confusable with 'paypal'
timotimo oh, huh
Zoffix sweet
dpk put in a shorter string into the text box on that page and you'll see it lists them all
hahainternet timotimo: check the page again, there's an input at the top
11:47 pmurias joined
jast hahainternet: ah, it has changed since the last time I cared about this 11:48
hahainternet anyhow, perl6 should have an 'unconfuse' function or similar, soley because that name is excellent
timotimo pe?????6 pe???????? pe?????? pe????6 pe??????? pe??l?? pe??l6 pe??l??? pe??1?? pe??16 pe??1??? pe?????? pe????6 pe??????? pe???????? pe??????6 pe????????? pe?????? pe????6
does that come through as anything other than question marks? 11:49
hahainternet nope just question marks i'm afraid
jast yeah, there's a few ASCII characters in between ;)
hahainternet something is real broken with you
timotimo yeah
jast anyway, I don't think unconfuse works as a function because what would that even do
hahainternet normalise the characters to some consistent choice
but i agree it's not ideal
jast except maybe delete all your source code
hahainternet i just want something called 'unconfuse' :D
jast here's an implementation: 11:50
return ''
timotimo but 1 and l are in the same language already
jast yeah, those are tricky cases 11:51
hahainternet what's actually needed is the ability to compare two strings as to their confusability
jast same for, say, i and its various accented variations
hahainternet normalisation is doable, but dubious
jast okay, but what would you compare the string to?
timotimo so what does NFKC do for these things?
hahainternet existing user accounts, for example 11:52
jast detecting confusable things is a human intelligence task
hahainternet clearly not
jast you don't want to compare your potential new username to all user accounts on file if you have millions of them
hahainternet you already have to, that's what a unique constraint is
jast no, a unique constraint can use an index 11:53
hahainternet as could any comparison like this?
jast there are too many special considerations for this case for an index to be any help
11:53 piojo joined
hahainternet there's a list of characters per character 11:53
that is itself an index
i don't agree jast
jast not in the database sense
also a character-by-character approach isn't sufficient
hahainternet why not?
timotimo the confusables thing puts all characters into equivalence classes 11:54
jast e.g. you have to match "fl" vs" "fl ligature"
hahainternet jast: you already have to
timotimo you can just choose representatives for each group
if you do that consistently, you're basically done
jast well, ligatures make that difficult
you might also have situations in which two characters ab look quite similar to character cde
dpk m: say "fl" ~~ /:ignoremark fl/
camelia Nil
hahainternet you adopt a consistent form in your database
my point is, these problems are extant
jast there *is* no consistent form 11:55
hahainternet they are perhaps even common
jast there is *if* you assume one character exactly corresponds to one character in the same class of confusable strings
but that's false
dpk m: say "fl".NFKC ~~ /:ignoremark fl/
camelia 「fl」
hahainternet jast: i have no idea what you're saying now
there are consistent forms
and this is a problem all sites that have usernames already face
jast visual similarity is not a property of characters by necessity, it can be a property of sequences of characters, too
hahainternet they already search for duplicates in a database, and use the same strategies of early bailing out that all list searching does 11:56
jast or, to be more accurate, sequences of grapheme clusters
hahainternet jast: that may be true, but you can't do anything about how the final rendering is done
jast searching for duplicates on a collated index is straightforward, but I don't think confusability can be implemented as a collation
hahainternet in the examples i gave, it doesn't require an obscure grapheme cluster match
so there may be parts of this that are intractable 11:57
but comparing two strings with the confusability rules certainly isn't, it may just be ugly and/or more CPU time
11:58 scovit left
hahainternet i think in an ideal world this would be an option in postgresql, but i'd be happy with a perl6 trigger function ☺ 11:58
jast I think you're underestimating the cost
hahainternet i've said nothing about the cost
jast you literally just said "more CPU time" :) 11:59
hahainternet but how can that be an underestimate, as that's got no upper bound lol
jast personally I think the I/O impact in particular would be massive
(or RAM, take your pick)
hahainternet that's impossible to say at this juncture
and even if that's true
this should absolutely pale in comparison to the pkdbf for password hashing
which should take nearly a full second in an ideal world 12:00
so this whole argument is pretty academic
jast PBKDF has entirely different scaling properties, it's constant in each login
something that has to scan all existing accounts, if an index-based solution is untenable (which I suspect it is), scales polynomially in the number of users
hahainternet how would an index solution be 'untenable'
for every character, you have a list of characters 12:01
look each up in the index
even better, use an index that has these additional indexes adjacent
jast well darn, I've got a meeting, I'll be back in two hours or so :/
hahainternet i'm at home sick ☹
best of luck jast
and fwiw, this should not be polynomial or anything other than a straight up multiple
timotimo finding a confusable should be decomposable into smaller parts 12:02
hahainternet if every character has 9 confusables, that's 10 index lookups instead of 1 in the worst case
jast well, looks like the rest of the meeting hasn't assembled yet 12:03
hahainternet scheduled for 1pm? :)
jast no, that's not how it works
timotimo i still think the equivalence class approach should work, and work very fast
hahainternet timotimo: i'm not sure i know what your approach is, but i dn't think there are any severe computing challenges here 12:04
jast suppose your username is five characters long, then the number of index lookups with that kind of implementing would be 5**10
equivalence classes were my first thought, too
hahainternet no it would be 50
12:04 xtreak left
hahainternet not 5**10, 5*10 12:04
jast how?
hahainternet 5 characters, 10 lookups per character
jast with a standard index you have to check each *combination*
hahainternet 50 lookups
12:05 okl joined
hahainternet jast: oh i see what you're saying 12:05
yeah i'm wrong, in the worst case where each character HAS all 10 confusables in the database
by the end of the lookup it's scaled quite a lot
jast so in this case that's about 9 million index lookups
hahainternet but that's an absurdly niche case
timotimo hahainternet: which means your users will attack you with it :)
hahainternet timotimo: there are many more effective attacks
jast well, just the letter "p" has way more confusable characters, as does "i" and "l" 12:06
personally I think 10 is a low estimate
hahainternet you'd have to full the database to an absurd degree just to have this attack be feasible
timotimo anyway, if you immediately store a version of the user name with the confusables reduced to their representatives
jast you don't, because you have to do all of the index lookups anyway
timotimo then you can just do a single index lookup
jast which is why this this about equivalence classes came up
hahainternet jast: you bail out of any that don't match
jast meeting now
hahainternet timotimo: i agree but jast said that's impossible
jast that's not the way it works
you have to check them all to find out whether they match
I'll be back :) 12:07
hahainternet this is all rather academic anyway
because this is a real problem
it really exists
timotimo i'm not sure why that wouldn't work
hahainternet so debates about the complexity class of solutions
12:07 piojo left
hahainternet it needs fixing regardless, and p6 is not a database 12:07
so just supporting it in comparisons would be enough
and then people can implement solutions as they see fit
12:08 xtreak joined
hahainternet timotimo: i assume you're talking about picking a canonical representation from each group of confusables and storing using that representation, so you can normalise any input to using those representations and do a quicker index lookup? 12:08
timotimo yeah 12:09
hahainternet the only problem there would be groups intersecting, but they are by definition confusable in that case too
so i don't see that this would actually be an issue
12:09 okl left
hahainternet (ie l -> | and i -> l) 12:09
i wonder how good postgresql's unicode support is 12:10
would be neat to have an unconfusable_text type
timotimo oh, you can just do the equivalence class thing as a first step to throw out all the ones that are definitely different 12:13
like alice, bob, b0b, b06 - you'd be able to ignore alice immediately 12:14
hahainternet yeah it's a normal technique isn't it, to bail out as early as possible in comparisons 12:15
anyhow i would like to vote that some sort of confusability comparison is implemented, and i think your idea of reducing to a canonical representation is good 12:16
not sure if there's any way i can help
timotimo i'd say this belongs into module space 12:17
hahainternet well it's an official unicode thing
and it's rather vital
but i don't know what qualifies in p6 for modules/core/etc
Zoffix Everything is best first trialed as a module. 12:18
hahainternet well i am just saying i think it's an important feature, but i have no idea what category that'd be :D 12:19
Zoffix We get someone wanting something "rather vital" in core every week, but they're often the only ones who think it's "vital" and yet often can't be bothered to even implement a module for it
Not important at all for me.
Importants often depends on what type of programs you write.
hahainternet it's rather important for anyone who deals with presentable user input in any form
it's not like this is a niche obscure feature
it's just something that most people don't want to deal with, so they ignore
i very rarely write websites and the like, so i don't think it'd be that amazingly useful for me directly 12:20
Zoffix Just because we add extra maintenance burden to already overburdened core devs won't make people ignore it less :)
hahainternet shrugs, that's not really a great argument
people are indeed busy
Zoffix The argument is it won't make people ignore it less, not that someone is busy
hahainternet having an actual implementable solution to a problem does indeed make people ignore it less 12:21
honestly Zoffix i don't know what you're arguing here
Zoffix I'm responding to "well it's an official unicode thing and it's rather vital" that was given as response to "i'd say this belongs into module space" 12:22
hahainternet ah, you are ignoring my third line, which adds vital context
12:23 shadoxx left 12:24 Cokebot joined
Cokebot any other users of irc.p6c.org ? 12:25
(the reboot seems to have hosted my perlbrew, and also hosed re-installing perlbrew)
12:26 shadoxx joined
moritz Cokebot: can I help you? 12:26
Cokebot Trying to install perlbrew as me, I get (one sec) 12:27
ah, actually, simpler: run this: perl -MConfig -e1; 12:29
system perl is fubar'd.
Geth modules.perl6.org: 132cbf88d6 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Scrub `javascript:` URLs from <img> and <a>'s
12:30
12:31 astj joined 12:32 xtreak left 12:33 rba left, rba joined
moritz perlpunks.de/paste/show/59d4d528.5f24.270 12:33
Geth modules.perl6.org: ad4d8191b1 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Fix typo in JS URL scrubber
12:34 okl joined
pmurias hahainternet: I would guess comparing if strings look similiar to each others is something that should be in a module rather then in Perl 6 itself 12:35
12:36 rba left
hahainternet pmurias: i'm not particularly opposed, i don't know what the standards are for putting things in a module 12:36
12:36 Geth left
hahainternet my only contention was that it's an important feature people are happy to ignore, so it'd be nice to make it accessible and it would fix a lot of obscure issues 12:36
12:36 Geth joined
Geth modules.perl6.org: 2dd813e512 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Rewrite id=""s of title elemenents in rendered READMEs

To follow more closely the way GitHub does it, so in-document links that work on GitHub work here too
12:37
12:39 okl left 12:41 Cokebot left, rba joined
moritz where is Cokebot when you want to tell them the packages are fixed? 12:42
12:44 wamba left, ShalokShalom_ joined
Zoffix hm... The HTML scrubber on modules.perl6.org scrubs what would normally be a safely encoded codeblock. Most of the docs are missing: modules.perl6.org/dist/Acme::Anguish:cpan:ZOFFIX 12:47
12:47 ShalokShalom left
Zoffix Because one of the code lines has an opening `<` in it 12:47
timotimo i, too, have pairs of < > in my json::fast readme
that get thrown out completely
12:51 mcmillhj joined
Geth modules.perl6.org: b078a9e887 | (Zoffix Znet)++ | 2 files
Remove too-agressive HTML scrubber

  irclog.perlgeek.de/perl6/2017-10-04#i_15255589
12:55
modules.perl6.org: b68e6305aa | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Cleanup debug code
12:56
12:58 epony left 12:59 eliasr joined
Zoffix Added ~/start-modules.perl6.org-web-app script that just powers on the web app (without updating db) and replaced the old @reboot cronbjob with this one, so next time we reboot, teh site goes back on right away 12:59
12:59 Dawg1418 joined 13:03 wamba joined 13:12 Cabanossi left
pmurias hahainternet: modules are supposed to be easily accessible 13:13
13:13 Cabanossi joined
timotimo www.reddit.com/r/perl/comments/743...ugh_loops/ - can't help but think "this would be ridiculously easy to achieve in perl6" 13:15
13:21 jonas1 left
pmurias hahainternet: and modules are much better for stuff that we aren't 100% sure how it should work (confusability also depends on the fonts etc.) 13:22
13:28 Aaronepower left, yht left
Geth modules.perl6.org: 6da85e52bc | (Zoffix Znet)++ | 6 files
Add larger icons indicating dist source
13:28
13:29 holyghost joined
timotimo here's a post about "kotlin's greatest feature" which is "lambda with receiver", basically what you get when you $object.&mysub and giving mysub an invocant and using "self" 13:31
13:34 raujika joined
Geth modules.perl6.org: 4ee8a7d4b2 | (Zoffix Znet)++ | 2 files
Make info bar titles be shown with tooltip plugin

CSS selectors rewritten because the inserted tooltip makes them no longer select the right stuff, causing element wobbling when tooltips are shown
13:37
13:38 HoboWithAShotgun joined
HoboWithAShotgun is there something like c# partial keyword in p6? so that i can spread code of the same class across several files? 13:39
if not,should I use roles for that? 13:40
13:41 Dawg1418 left
timotimo roles sounds like a good idea, yeah 13:43
13:47 [ptc] joined 13:48 epony joined 13:53 abraxxa left 13:58 ShalokShalom_ left, wamba left 13:59 ShalokShalom joined 14:00 thou joined 14:01 rba_ joined 14:02 yoleaux left, lowbro left
dpk rip yoleaux 14:02
dpk attempts fix
14:03 rba left
Geth modules.perl6.org: a13c7f81c8 | (Zoffix Znet)++ | 3 files
Shave off 431b per dist in search results
14:07
14:07 yoleaux joined, ChanServ sets mode: +v yoleaux 14:10 skids joined
Zoffix well, that was a waste of time.... 14:11
14:11 cosimo_ left
Geth modules.perl6.org: 6493171f53 | (Zoffix Znet)++ | 3 files
Revert "Shave off 431b per dist in search results"

This reverts commit a13c7f81c886d171a19dd7381a85103dd7c265d3.
Reduces full-ecosystem display page by ~400KB, but overall rendering quality is about the same on first load and much worse on cached load.
14:12
14:12 zakharyas joined 14:15 cdg joined 14:26 Zoffix left, Cabanossi left 14:28 Cabanossi joined
atta load scripts/trackbar 14:31
ops. sorry
tyil allahu trackbar?
yoleaux 08:07Z <lizmat> tyil: the ghostbin seems to be out of order, so I have no idea what you mean :-(
14:35 raujika left
El_Che trackbar, best irssi plugin ever 14:36
atta El_Che: that's the one I was trying to load :) 14:40
14:44 mcmillhj left 14:45 mcmillhj joined 14:49 holyghost left 14:51 mr-foobar left 14:52 mr-foobar joined 14:56 Cabanossi left 14:58 Cabanossi joined 15:14 mayuresh joined
mayuresh hello. :) 15:14
in case any of you remember me, i want you to know that i tried my level 15:15
best to get going with building that perl6 interpreter (standalone).
failed, big time, now am tired, and am moving back to common-lisp.
apologies to anyone who's expectations were heightened. 15:16
hoffentlichja mayuresh: what are you talking about?
15:16 SourceBaby joined, ChanServ sets mode: +v SourceBaby
timotimo oh wait, dpk, you're yoleaux's owner? 15:16
dpk yes
mayuresh hffentlichja; i was working on "pxn" 15:17
couldn't understand 'mop' all that well.
utimately, fell in love with 'cl', again.
moving back to it.
i meant hoffentlichja* 15:18
hoffentlichja ok, well I'm sorry to hear that
mayuresh yeah
hoffentlichja mayuresh: did you try clojure? :)
mayuresh no, i hate those non-java languages running on the 'jvm'. ;)
i liked java, for a long time, and then i encountered the foundation libs 15:19
of objc
hoffentlichja yes, it's a disadvantage but it also has its advantages
clojure itself as a language is great, my opinion
mayuresh and then i realized that the java libs are a major mess
timotimo i was going to ask you if we can have yoleaux in the moarvm channel but it seems like it's already there
mayuresh true, i have heard a lot of good things about clojure
but, i really like straight and simple common-lisp. :) 15:20
along with the 'clos', i must say. :)
hoffentlichja I understand, many common lipsers feel that way
lispers*
racket is also nice, but a common lisp lover would probably not like it either
:)
mayuresh :D 15:21
actually, if you can, check out "zenlisp" at www.t3x.org/
it's in the "attic" section
15:21 zakharyas left
mayuresh alrighty, i gotta go 15:21
i have a whole lot of sleeping to do
after not having slept a while
hoffentlichja alright 15:22
mayuresh been unable to decide
finally did
and now am very relaxed
gotta get sleep
hoffentlichja you haven't said anything about your opinion of perl6 :)
mayuresh mr. wall sorry, hope you understand, a librans plight as being one yourself.
perl6 was so interesting to me that i actually learnt c89 to build the interpreter
15:23 cdg left
mayuresh but failed to understand 'mop' all that well. 15:23
from the perspective of attempting an implementation for p6
hoffentlichja I'm not sure I understand what you mean by that, my logical brain tells me you were trying to implement the perl6 specifications but I doubt that's what you meant
mayuresh i meant, i was implementing a standalone perl6 execution environment.
no compiling and then executing buisiness. ;) 15:24
15:24 deaninous joined
moritz mayuresh: Perl 6 stole many MOP ideas from common lisp :-) 15:24
mayuresh i called it the 'pxn' for "perl6 execution environment". :)
moritz, i knew, that's why i was so interested.
but i just simply couldn't figure out how to implement 'mop' using c89
+ p6 code 15:25
luckily, i wrote very little code.
timotimo rakudo implements mop in C and some p6 cod e:)
mayuresh :)
so it's a good thing. :)
hoffentlichja mayuresh: so why does that stop you from using perl6 with its current rakudo implementation?
mayuresh i wanted to learn. :) 15:26
hoffentlichja you still can
mayuresh how to implement the interpreter
hoffentlichja maybe it takes some time
mayuresh i have been trying for almost 4 years.
though was very unwell for 2 years in between. :(
alrighty, i really gotta go now, sleep needed. 15:27
hoffentlichja alright, good night
mayuresh thanks for the fantastic community support.
have a good time ahead. :)
15:27 Cabanossi left 15:28 mayuresh left, zakharyas joined, Cabanossi joined
hoffentlichja I've been meaning to implement my own lispy language for a while but haven't had the right mood to start it 15:31
mspo check out LFE 15:32
hoffentlichja Lisp Flavoured Erlang?
15:33 someuser joined
hoffentlichja I'm looking for something VM-free 15:33
moritz everything has a VM at some level 15:34
or some sort of supporting libraries linked in
the boundaries are fluid, really 15:35
hoffentlichja moritz: yes, by that I meant JVM / ErlangVM and the likes free
moritz: It would be ideal to be a compiled language
but I see no great path for what I would like it to be used for and how 15:36
jnthn Most things are eventually compiled languages today :)
hoffentlichja so my only option seems is to implement it in go, either write an interpreter or a compiler-to-go
jnthn: I know, by compiled I meant ahead of time, to binary 15:37
moritz go also comes with a GC 15:39
15:39 thou left
moritz it's just statically linked into the resulting binary 15:39
15:40 shadoxx left
hoffentlichja moritz: I know, the GC isn't an issue in this case 15:40
15:42 shadoxx joined
buggable New CPAN upload: Foo-Bar-Perl6-0.10.tar.gz by TBROWDER www.cpan.org/authors/id/T/TB/TBROW....10.tar.gz 15:45
New CPAN upload: Foo-Bar-Perl6-0.10.zip by TBROWDER www.cpan.org/authors/id/T/TB/TBROW...6-0.10.zip
New CPAN upload: Foo-Bar-Perl6-1.2.3.tar.gz by TBROWDER www.cpan.org/authors/id/T/TB/TBROW...2.3.tar.gz
New CPAN upload: Foo-Bar-Perl6-1.2.3.zip by TBROWDER www.cpan.org/authors/id/T/TB/TBROW...-1.2.3.zip
15:45 cdg joined 15:57 eroux joined, Cabanossi left, nadim left 15:58 Cabanossi joined, setty1 joined 16:03 SHODAN joined 16:09 robertle left 16:14 cdg left 16:15 cdg joined
AlexDaniel grrrrrr… Everything looks fine but there's no sound 16:17
is it you, PulseAudio?
AlexDaniel reboots 16:18
16:19 mcmillhj left 16:20 mr-foobar left
AlexDaniel whenever I have to reboot I feel like killing somebody 😠 16:21
works now… 16:22
16:23 mr-foobar joined 16:26 Cabanossi left 16:27 rba joined 16:28 Cabanossi joined 16:29 dakkar left 16:30 rba_ left 16:31 rba_ joined 16:32 buggable left, buggable joined, ChanServ sets mode: +v buggable, dataangel joined, sproctor left 16:33 rba left
deaninous I also have a no audio and no bluetooth problem 16:39
Have not been able to figure it out
I get audio on a non root account but not on root. 16:40
bluetooth just is not there
any suggestion? my google fu has failed me so far
ilmari why would you want audio as root?
deaninous makes sense. 16:41
HoboWithAShotgun can i have a subset of two types? so a value can say either Str or Int but nothing else
deaninous but blueblooth is my main issue
{*bluetooth 16:42
nothing scarier than a hobo with a shotgun requiring only str/int :) 16:43
jnthn HoboWithAShotgun: subset StrOrInt where Str|Int 16:45
16:46 rba joined 16:47 robertle joined
jnthn home time & 16:47
16:49 rba_ left 16:56 ChoHag left 16:58 dataangel left 16:59 wamba joined 17:01 steeznson joined, rba_ joined 17:03 steeznson left 17:04 rba left, ufobat left, patrickz left 17:05 zakharyas left 17:07 mcmillhj joined 17:12 Cabanossi left 17:13 Cabanossi joined 17:16 Ven`` joined, rba joined 17:18 lizmat joined 17:19 rba_ left 17:20 mr-foobar left 17:21 astj left, astj joined 17:22 mr-foobar joined 17:24 shadoxx left, shadoxx joined 17:25 mempko joined 17:26 astj left 17:28 Zoffix joined
Zoffix m: role Foo { ... }; role Foo is repr("VMArray") is array_type(int) {}; Foo.new 17:28
camelia P6opaque: missing attribute protocol in compose of Foo
in block <unit> at <tmp> line 1
Zoffix Is there some trick for the stub to not duplicate all of the `is blah` things?
m: role Foo [::T = uint8] does Positional[T] does Stringy is repr('VMArray') is array_type(T) { ... }; role Foo {}; Foo.new 17:30
camelia ( no output )
Zoffix takes that for a spin 17:31
17:32 rba_ joined
Zoffix It don't like it :( 17:33
17:34 rba left, epony left
Zoffix brrr freaking house of cards 17:37
AlexDaniel squashable6: status 17:38
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 1 day and ≈16 hours (2017-10-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
17:39 W4RL0RD left 17:40 andrzejku joined 17:47 rba joined 17:49 rba_ left 17:52 Aaronepower joined 17:56 domidumont left 17:58 lowbro joined, lowbro left, lowbro joined
tyil anyone who has any idea how to start troubleshooting travis-ci.org/moznion/p6-HTML-Esca...283247515? `zef test .` seems to fail 17:59
17:59 eliasr left
Xliff Zoffix: Are you talking about 'also'? 17:59
m: role Foo [::T = uint8] { also does Positional[t]; also does Stringy; also is array_type(int); }; Foo.new; 18:00
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
t used at line 1
Xliff m: role Foo [::T = uint8] { also does Positional[T]; also does Stringy; also is array_type(int); }; Foo.new;
camelia P6opaque: missing attribute protocol in compose of Foo
in block <unit> at <tmp> line 1
Xliff m: role Foo [::T = uint8] { also does Positional[T]; also does Stringy; also is array_type(T); }; Foo.new; 18:01
camelia P6opaque: missing attribute protocol in compose of Foo
in block <unit> at <tmp> line 1
Xliff Hrm.
18:01 holyghost joined
Zoffix tyil: try to see if there's a way to make zef show verbose TAP output; set it and run the travis job again so it shows what's actually wrong 18:07
tests don't fail for me on Debian on that rakudo commit
18:08 ufobat joined 18:10 Cabanossi left 18:12 deaninous left 18:13 Cabanossi joined 18:16 Morfent joined 18:20 mr-foobar left 18:21 shadoxx left, mr-foobar joined 18:22 shadoxx joined 18:28 darutoko left 18:29 pilne joined
tyil Zoffix: it fails locally as well for me with the same error, should I just add the --verbose to zef? 18:30
Zoffix tyil: try. I don't think that's the switch tho. A while back, there wasn't any switch, maybe now there is. Does it fail with `prove -e 'perl6 -Ilib' -vlr t` ? 18:31
If yes, what's the error?
tyil No plan in TAP output 18:32
I think I'm missing a plan
Zoffix That usually means it crashed during compilation. There should be verbose output with errors... 18:33
tyil adding `plan`s to all test files makes zef and prove happy
the "verbose" error was 18:34
t/01-basic.t (Wstat: 256 Tests: 0 Failed: 0)
Non-zero exit status: 1
Parse errors: No plan found in TAP output
Zoffix But there's stuff before that output innit?
tyil lemme paste the full output 18:35
the stuff before it is standard test output
Zoffix It should work fine without any plan; you have `done-testing` at the end
tyil cry.nu/p/yluy
done-testing is only on 1 test file
I added two new ones without done-testing and without plans
Zoffix huh... tyil those aren't the tests in the repo? github.com/moznion/p6-HTML-Escape/tree/master/t 18:36
Zoffix is confused
tyil oh, you're looking at master, not the PR I made 18:37
Zoffix ah, it's a PR
tyil yes, I added a sub to his library, because it seemed easy to implement and I could make use of it
was easier to extend his lib than make my own
Zoffix OK, now it makes sense :) Yes, those tests were missing a `plan` (or a `done-testing` at the end) 18:38
tyil indeed, I added plans and zef was happy
pushed it onto the PR, so now I just wait for travis to be happy
18:39 mr-foobar left 18:44 thou joined 18:47 zakharyas joined 18:51 shadoxx left 18:52 shadoxx joined 18:53 ChoHag joined 18:56 Cabanossi left 18:58 Cabanossi joined, shadoxx left 19:00 mulk[m] left 19:02 itaipu left 19:06 [Coke] joined
[Coke] waves. 19:06
moritz: finally able to try again, thanks, back in 19:07
tyil Zoffix: travis is ok with it too now, thanks for the assistance! 19:08
Zoffix \o/
tyil .hug Zoffix
huggable hugs Zoffix
19:14 ChoHag left
AlexDaniel awww somebody just kicked my ass in code golf 19:18
[Coke] moritz: wish I had realized the core problem before killing my perlbrew install. :) 19:19
tyil you mean "neat, someone just taught me some neat golfing tricks", AlexDaniel
AlexDaniel tyil: I don't see the solution, so had to figure it out on my own… but pretty much, yes
( code-golf.io/ ) 19:20
19:26 ChoHag joined
perlpilot AlexDaniel: on which problem? 19:29
AlexDaniel perlpilot: prime numbers
Zoffix All the golfers should go down our RT tickets and see who produces the golfiest example for a bug :) 19:31
AlexDaniel no! We'd much rather have more bugs so that we have more room for golfing! 19:32
19:33 Praise left
perlpilot I suck at golf ... I picked fibonacci thinking it would be easyish and I got 27 chars. Not seeing how you got down to 18. I mean just my fibo sequence without any output is 19 chars. 19:34
Zoffix Tag tickets with golf. Make a golfing site. People submit soltions. The person with the shortest golf gets $x of money when the ticket gets resolved :)
teatime important question: is $x an Int or a Num 19:35
perlpilot Zoffix: and most of the proceeds go towards P6 grants :)
teatime: was there some preamble I missed? Something with more information about $x?
Zoffix teatime: Num :) 19:36
teatime I was just wondering if we were talking dollars or cents :)
Zoffix 50cents a pop
teatime inb4 someone says "you should use a Rat for money"
Zoffix But mostly it's for fame
19:40 zakharyas left 19:48 itaipu joined 19:51 lowbro left
tyil teatime: you should use a Rat for money 19:52
AlexDaniel
.oO(or maybe FatRat?)
19:56
teatime t4.ftcdn.net/jpg/00/02/72/87/500_F...Gnt9OH.jpg 19:57
tyil lol
teatime AlexDaniel: I was gonna make that joke and use this image instead previews.123rf.com/images/rudall30...Vector.jpg 19:58
AlexDaniel somewhere deep inside I hate Rat 19:59
for its tendency to turn into a FatRat without my explicit approval
oops
to turn into Num*
20:01 mr-foobar joined 20:03 pecastro joined
Zoffix AlexDaniel: when does it do that? 20:07
20:09 epony joined
AlexDaniel m: my Rat $x = 1/3; $x *= $x for ^6 20:11
camelia Type check failed in assignment to $x; expected Rat but got Num (2.91232405875626e-31)
in block <unit> at <tmp> line 1
AlexDaniel when denominator does not fit in int64 or something like that, I don't remember
Zoffix ah 20:12
AlexDaniel so maybe it does not really matter for money, but I am not checking what values I have in denominators in all intermediate calculations…
and if you try to calculate π or 𝑒 beyond values provided in constants this jumps right at you 20:14
20:14 andrzejku left
AlexDaniel good thing is that FatRats are viral so you only have to introduce one FatRat somewhere and off you go 20:14
20:15 emeric joined 20:17 Praise- joined, Praise- left, Praise- joined
AlexDaniel Zoffix: I have a trick! 20:19
don't know if it's a bug or not, but look
20:19 Praise- is now known as Praise
AlexDaniel m: my $x = 3.14159265358979323846; say $x.WHAT 20:19
camelia (Rat)
AlexDaniel m: my $x = 3.14159265358979323846; say ($x*1).WHAT
camelia (Num)
20:20 someuser left
rindolf Hi all! zef test --all . gives me this - www.shlomifish.org/Files/files/text...output.txt - any way to make it more sane? 20:20
AlexDaniel rindolf: this does not answer your question, but zef --help looks better 20:21
rindolf AlexDaniel: thanks 20:24
Zoffix rindolf: yes, stop using rakudobrew 20:27
huggable: sauce 20:28
huggable Zoffix, Install untested latest development version of Rakudo from source: github.com/zoffixznet/r#table-of-contents
Zoffix rindolf: or submit a patch to it :)
20:29 rindolf left
Zoffix AlexDaniel: yeah, it's a bug. Currently slated to create a RatStr 20:29
insteqd of a Rat with messed up nu/de 20:30
20:30 eroux left
Zoffix I mean I'm working on it, but I'm taking a scenic route that takes care of uint bugs and swaps Rat to uint denums and probably adds a new nqp op 20:32
Also need to learn C first :}
20:33 setty1 left, hoffentlichja left
AlexDaniel I cannot come up with a realistic “simple” operation that would turn a Rat into a Num 20:35
this is all I have: 20:36
m: my $USA_yearly = 3_850_000_000_000.00; my $hobo_yearly = 0.01; say ($hobo_yearly/$USA_yearly).nude
camelia (1 385000000000000)
AlexDaniel you have to divide it by 100000 to turn it into a Nu
m
so it's close but not close enough 20:37
20:40 holyghost left 20:41 rindolf joined 20:45 itaipu left
rindolf Zoffix: hi 20:53
Zoffix: a patch to what?
20:54 zakharyas joined 20:55 wamba left, rba left 20:56 rba joined
Zoffix rindolf: to rakudobrew. The issue you're seeing is due to a deficiency in rakudobrew, and nothing to do with rakudo compiler. The best I know it: rakudobrew creates wrappers scripts because it was made before the time when modules could be used by different versions of rakudo or something. 20:58
rindolf: so you'd need to either patch it, or to not use it. Unless you're running multiple versions of rakudo at the same time, you don't need it 20:59
[Coke] rindolf: github.com/ugexe/zef/issues/121
21:00 itaipu joined
Zoffix rindolf: also this: github.com/rakudo/rakudo/pull/1155 21:01
21:02 skids left 21:09 zakharyas left 21:12 mcmillhj left 21:14 evalable6 left 21:15 evalable6 joined, ChanServ sets mode: +v evalable6 21:18 astj joined
tyil Zoffix: I found the line that makes the "sh: 1: /home/tyil/projects/rakudo/install/bin/nqp-m: not found" show, I added a simple check to see if the file exists before trying to open it 21:19
should I add a print with a nicer message?
21:23 astj left 21:28 mcmillhj joined
Zoffix Yeah 21:32
21:33 mcmillhj left
tyil "No pre-existing configuration file found at <path>" 21:33
something like that?
Zoffix It's looking for nqp though, not configuration does it? 21:34
There's #perl6-dev where more people might help out with this
Zoffix goes for a night of relaxation
Zoffix &
tyil will check
thanks 21:35
21:37 Ven`` left, TEttinger joined 21:42 Cabanossi left, epony left 21:43 Cabanossi joined 21:48 lichtkind left 21:49 itaipu left 21:54 astj joined 21:58 astj left, epony joined 22:02 robertle left
HoboWithAShotgun shouldn't that be a compile time error? : sub foo returns Int { return "a"; }; 22:12
m: sub foo returns Int { return "a"; };
camelia ( no output )
mst m: sub foo returns Int { return "a"; }; foo() 22:13
camelia Type check failed for return value; expected Int but got Str ("a")
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
mst (just verifying the obvious)
HoboWithAShotgun what the fadpimiping ride did they think when they made every entry in an enum it's own symbol? talk about scope pollution 22:20
is there something else that behaves like a regular enum? one you can use as a type and access like "screen-mode.minimized" 22:22
22:22 evalable6 left, evalable6 joined 22:24 pmurias left
timotimo you can just TheEnum::TheValue 22:29
HoboWithAShotgun ok. but once i import the enum from somewhere it pollutes my namespace with all its symbols, doesnt it? 22:37
s/namespace/scope/
timotimo hm, not actually sure about that 22:38
it might only do that if you mark it "is export"
whereas with "our" you'll get access to it via the name of the module you import 22:39
i'm a bit fuzzy about these details
22:39 rindolf left 22:41 aindilis` left 22:42 mempko left 22:52 BenGoldberg joined 23:01 skids joined 23:02 cdg_ joined 23:04 mudman joined
mudman release: status 23:04
releasable6 mudman, Next release in 16 days and ≈19 hours. No blockers. Changelog for this release was not started yet
mudman, Details: gist.github.com/9f8db5783ceb3ee6b1...f5124f0f64
23:05 cdg left 23:08 aindilis joined 23:14 mcmillhj joined 23:19 mcmillhj left 23:21 avalenn left 23:22 avalenn joined 23:28 Cabanossi left, Cabanossi joined 23:32 shadoxx joined
HoboWithAShotgun meh, that's the second time i look for a bug caused by %hash<$somekey> 23:33
timotimo maybe better to get used to always using {' '}
for me, syntax highlighting makes it visible enough
23:40 skids left
HoboWithAShotgun i'm way past the point of recognizing color :D 23:43
i should probably hit the sack
perlawhirl bisectable6: old=2017.09 use experimental :collation; $*COLLATION.set(:quaternary(False), :tertiary(False)); say 'a' coll 'A';
bisectable6 perlawhirl, On both starting points (old=2017.09 new=cef3bf3) the exit code is 0 and the output is identical as well
perlawhirl, Output on both points: «More»
perlawhirl bisectable6: old=2017.08 use experimental :collation; $*COLLATION.set(:quaternary(False), :tertiary(False)); say 'a' coll 'A'; 23:44
bisectable6 perlawhirl, Bisecting by output (old=2017.08 new=cef3bf3) because on both starting points the exit code is 0
perlawhirl, bisect log: gist.github.com/e94d3622e83b5cdd23...143e443bcd
perlawhirl, (2017-09-10) github.com/rakudo/rakudo/commit/9b...88e2eb331f
23:47 shadoxx left, shadoxx joined