»ö« 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:01 cdg left
AlexDaniel gfldex: while you probably have your own TODO list, maybe you can take a look at github.com/perl6/doc/issues/38 ? 00:02
gfldex: it is the oldest issue right now, but it does not look very hard
but it is very confusing… 00:03
gfldex: to me it seems like you can add “This is not a real operator” sentence to docs.perl6.org/routine/$LESS-THAN_...ix_%3C_%3E and we can close the issue 00:04
by the way, I am going through older tickets again. Please don't mind my annoying comments 00:08
00:08 yqt left 00:12 zacts joined 00:13 addison left
dalek c: 38036e1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/quoting.pod6:
untangle index entry for < >
00:16
00:19 rindolf left
gfldex m: say &circumfix:«< >»; 00:19
camelia rakudo-moar c9dcc9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ circumfix:«< >» used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»
gfldex m: say &circumfix:«( )»; 00:22
camelia rakudo-moar c9dcc9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ circumfix:<( )> used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»
gfldex m: say &circumfix:<( )>;
camelia rakudo-moar c9dcc9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ circumfix:<( )> used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»
gfldex ENOSUCHOPERATOR 00:23
00:24 adu left, [particle] joined
dalek c: 22ddf6d | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
( ), < >, { } are terms (at least they are not circumfixes)
00:26
c: b3dc4f2 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
add index entry for the empty list
00:28
00:29 addison joined
dalek c: 58b051d | (Wenzel P. P. Peppmeyer)++ | doc/Language/quoting.pod6:
fix index typo
00:30
00:31 jack_rabbit left 00:55 raiph left
dalek c: 2eb85f3 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
untangle index entry for .( ), .{ }, .[ ]
01:01
01:21 dj_goku joined, dj_goku left, dj_goku joined 01:26 dj_goku left 01:43 kid51 joined, Actualeyes joined 01:44 kaare_ left 01:46 ilbot3 left 01:47 ilbot3 joined 01:55 kalkin- left, kalkin-_ joined 01:59 addison left 02:14 committable joined, committable left
dalek c: dcab8da | (Wenzel P. P. Peppmeyer)++ | html/js/main.js:
remove #__debug__ and add [Debug: off] to footer
02:23
c: 461a54c | (Wenzel P. P. Peppmeyer)++ | html/js/main.js:
add embedded svg link check
02:41 zacts left 02:44 holyghost left 02:45 noganex joined 02:48 noganex_ left 02:54 BenGoldberg_ joined 02:57 holyghost joined, kid51 left 03:03 perlawhirl joined
dalek sectbot: 20c5d19 | MasterDuke17++ | committable.pl:
Group commits by output (#10)
03:06
sectbot: a1fd6fc | MasterDuke17++ | committable.pl:
Fix debugging value left in accidentally
03:09
03:22 dj_goku joined, dj_goku left, dj_goku joined 03:27 dj_goku left 03:49 zacts joined 03:57 dj_goku joined, dj_goku left, dj_goku joined 03:59 skids left
dalek sectbot: 841ee41 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
Use nickname as a description for gists
04:01
sectbot: c6b2106 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
Indentation
sectbot: 7c22ea4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
Comments, refactoring

Nothing important really, just code mangling
sectbot: c763c0c | (Aleks-Daniel Jakimenko-Aleksejev)++ | / (2 files):
bisectable: more magic and rainbows

  * More detailed bisect log (show exit codes, script output, etc.)
  * If the output is identical, then show it. Gist it if it does not fit.
04:06 zacts left 04:18 BenGoldberg_ left, dj_goku left 04:19 dj_goku joined, dj_goku left, dj_goku joined 04:30 rgrinberg left
dalek sectbot: 111cebb | MasterDuke17++ | committable.pl:
Switch order of revision(s) and output
04:30
osystem: 41b277b | (Sam Morrison)++ | META.list:
Add Uzu to ecosystem
04:35
osystem: 896d3f1 | azawawi++ | META.list:
Merge pull request #226 from scmorrison/master

Add Uzu to ecosystem
04:37 Cabanossi left
dalek sectbot: 48693da | MasterDuke17++ | committable.pl:
Sort output

The ordering doesn't have any meaning, but multiple runs with the same input will now have the output in the same order
04:41
04:41 Cabanossi joined 04:42 rgrinberg joined 04:45 khw left
holyghost Hello 04:46
04:47 sno left
holyghost is going to learn swift 04:48
I looks as swift uses syntax of haskel where perl uses CLOS
s/per/perl6/
I might be wrong though 04:49
dalek sectbot: 40fb215 | (Daniel Green)++ | / (3 files):
Clean up alt_nicks
05:00
holyghost and the other way round as far as I can see 05:07
geekosaur I'd say ML instead of Haskell, since it's the generic parts that all the ML family languages have 05:09
05:14 rgrinberg left
holyghost geekosour, ML ? 05:23
geekosaur, Markup Languages ?
parabolize en.wikipedia.org/wiki/ML_(programming_language)
geekosaur that, yes 05:24
holyghost ok I understand now
geekosaur although the language family itself is larger and includes Haskell, Curry, Mercury, F#, etc.
holyghost and gofer 05:25
geekosaur and historical pre-Haskell languages Gofer and Miranda
holyghost a functional language
we had to learn about gofer as a functional language at school
geekosaur and Lazy ML although about the only thing it was used for was to write the first version of ghc >.>
holyghost I read the gofer source code once, it's quite ellegant 05:26
where lua is just based on C's var args, gofer has its own system 05:27
It also compiles everywhere
I think I have a tarball around somehwere with my gofer modifications, I could' have lost it though
ML is of the 70ies ... then it is older than haskel (Ediburgh?) 05:28
s/Ediburgh/Edinburgh/ 05:29
ok now I remember, you actually use lambda calculus for functionality
geekosaur yes. ML predates Haskell. I mentioned Lazy ML (essentially a basic ML with laziness) as a precursor already 05:31
holyghost I see 05:32
geekosaur the folks experimenting with laziness and purity were starting to fragment around LML, Gofer, Miranda, etc. and decided to make a common language
holyghost it's some sort of inference engine's rule firing then 05:33
TEttinger and then they couldn't decide on whether it would be Miranda 5 or Miranda 6 so they called it Haskell
geekosaur well, only sort of, since Miranda was closed spec as well as closed source 05:34
TEttinger wow
closed spec, that's a hell of a relic
holyghost Haskel <-> 1985
AFAIK it's haskel vs. scheme at first year in uni 05:35
geekosaur basically it was Research Software Ltd.'s baby, which was part of why they wanted to define a new language with an open spec and open process
holyghost scheme is of 1986
TEttinger hm, are there any major closed-source PLs these days?
parabolize why didn't ML take off? the wiki page shows guards, lets, tail recursion all sorts of good stuff. Did ML have that stuff in the 70s?
TEttinger yep
like lisp, ahead of its time
but a bit nicer syntax for people not used to it, I'd say 05:36
05:36 dj_goku left
TEttinger also like plankalkul, which was just about literally ahead of its time 05:36
masak or maybe everyone else was/is way behind
:) 05:37
hi, #perl6
geekosaur TEttinger, I'd argue Verilog (VHDL is a rather weak open clone) and Matlab (Octave likewise)
TEttinger (around the time of the enigma machine, a professor in (nazi and not nazi) germany made what's very similar to APL with no implementation until 1990s)
holyghost plankakul is probably what the mainframes in the armies of WWII used
TEttinger nope
masak they did not 05:38
TEttinger no implementation at his time
they were still writing in machine code by flipping individual gates
holyghost I could be wrong though, an army man told me they had an assembler in WWII
masak Plankalkül was quite pioneering when it came to abstract data types
dalek sectbot: 4b7b3b4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
committable: LIMIT constant, limit bumped to 300

Note that it does not run anything in parallel, so it is a bit slow.
sectbot: 32cdbc8 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
committable: much better output

Also, keep results in the same order
masak there's a nice paper about it by Knuth and some others
TEttinger it's shocking that the guy was able to see so far ahead and without any way to prove that his notation was useful 05:39
konrad zuse
holyghost I see
TEttinger it was long before ASCII was a thing :) 05:40
holyghost Ada then ?
TEttinger it used "real math" symbols, cough like a certain other language can, cough :)
(plankalkul)
holyghost I meant the lady "*Ada*"
TEttinger oh yes 05:41
holyghost It's somewhat of a saga :-)
TEttinger Countess Ada of Lovelace
holyghost she programmed machine code I though
s/though/thought/
masak holyghost: from what I've seen, Ada Lovelace didn't so much use a programming language, as describe algorithms in words and math operations
TEttinger I think her machine was analog, not electronic at all of course
holyghost sure
TEttinger yeah, founded programming I suppose 05:42
though you can argue it goes back much further
masak arguably
holyghost machine code in the sense that she used numbers (ALU)
masak algorithms go back to Al'Kwarismi at least ;)
TEttinger before or after al-jabr? 05:43
"that algebra guy"
holyghost Arabians also invented the cypher '0'
ASCII is based on it in 8x8 rows
TEttinger and you can look at an algorithm as a recipe and suddenly everyone has invented recipes
right, ciphers are definitely a sort of algorithm 05:44
was it da vinci who had lots of ciphered journals?
holyghost Later on the school of Athens did "number theory"
TEttinger (I suppose lots of people back then were concerned about theft of their ideas) 05:45
geekosaur note that she also "wrote programs for" a machine that did not exist. (iirc when someone finally did build a difference engine, they tried her programs... and found *one* bug.)
TEttinger nice.
was that babbage's engine?
geekosaur yes
TEttinger (I guess named after the person who constructed one, or after the person who devised the plans?)
05:46 AlexDaniel left
holyghost that's mentioned in the dictionary 05:46
babbage's engine
geekosaur it was ... well beyond the technology of the time. and by the time the tech had caught up, people were doing things in other ways, so an actual difference engine was only built within the past decade
TEttinger oh wow
parabolize Lovelace's first program: upload.wikimedia.org/wikipedia/com...umbers.jpg
TEttinger I wonder what kind of bug it was
MasterDuke wasn't the difference engine built longer ago? but the analytic engine was only built recently? 05:47
geekosaur Charles Babbage built some simpler "computing engines", but only planned out the difference engine; metalworking was not up to actually building it
TEttinger looms were also programmable in the 1800s, with common implementations and actual standards... kinda amazing 05:49
05:49 jack_rabbit joined
holyghost TEttinger, what's a loom ? 05:49
TEttinger (they still needed orphans to risk getting their arms chopped off for them to function, but I guess not much has changed, cough shenzhen) 05:50
holyghost: weaves fabric in automated patterns
holyghost right as a carpet
TEttinger like for mass-manufacturing rugs
yeah
05:50 AlexDaniel joined
TEttinger they needed to be able to reproduce some rather complex motions and used an early punch card system 05:51
geekosaur yeh, the original Jacquard loom is still considered one of the earliest programmable machines
holyghost I cannot find the link tp babbage engine in the dictionary anymore, must be an older version (I cannot parse every TNHD tarball ;-) 05:52
TEttinger en.wikipedia.org/wiki/Joseph_Marie...quard_loom
holyghost node scripture ? 05:53
I mean, there's this writing where you use knots in a piece of rope 05:54
(It's not in freeciv though :-)
TEttinger quipu, yeah
en.wikipedia.org/wiki/Quipu "talking knots"
05:55 canopus left
dalek sectbot: 5671d64 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
committable: no need to chdir here

It would be great to get rid of all “chdir”-s, but unfortunately it is not always possible. However, this one is not the case.
05:55
sectbot: b04f37b | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
Missed one occurrence of LIMIT
holyghost flood, 'do not mingle in the affairs of bots' I guess :-) 05:57
s/mingle/meddle
06:00 jack_rabbit left
holyghost I am downloading 'star trek - voyager', I am going to watch some so I am a bit away from the computer 06:02
06:02 canopus joined
holyghost all seasons 06:02
Also, I am going to buy some beer in an hour 06:06
My oldest daughter becomes 15 of age
tomorrow
dalek sectbot: 5d7fd25 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
committable: handle uncompilable commits properly

Also print warnings in exactly the same manner as other output.
06:11
holyghost I bought her an mp3 player with a good interface, 4Gb of space and 4 albums on it
06:11 bisectable joined 06:12 committable joined
holyghost She has a Vaio portable where she can put her music on it 06:12
06:13 sno joined 06:20 wamba joined 06:22 espadrine joined
AlexDaniel if anybody is wondering what all these bisectbot changes are about, see my explanation on #perl6-dev here: irclog.perlgeek.de/perl6-dev/2016-0...i_12844444 06:23
06:23 ChoHag left, Khisanth left
holyghost personal.ee.surrey.ac.uk/Personal/L...gon/jargon 06:24
Search for Babbage on that page
I though I'd share
s/though/thought
and www.catb.org/~esr/jargon/html/E/engine.html 06:25
06:28 firstdayonthejob joined 06:35 abraxxa joined 06:37 Khisanth joined 06:39 jack_rabbit joined 06:42 CIAvash joined 06:45 firstdayonthejob left 06:51 Dragon535 joined
holyghost apparently a truck drove in on a crowd in Nice, France 06:56
DrForr Heard earlier this morning. :(
06:59 RabidGravy joined
holyghost We're at 2 happenings such a month in Europe 07:03
07:16 TreyHarr1 joined
dalek osystem/MARTIMM-patch-1: 0d68a2c | (Marcel Timmerman)++ | META.list:
new module Semaphore::ReadersWriters
07:18
CIAvash holyghost: Khwarizmi was Persian/Iranian 07:21
holyghost ok
en.wikipedia.org/wiki/Main_Page 07:23
excuse me, en.wikipedia.org/wiki/Muhammad_ibn...-Khwarizmi
I once read a book on Islamic philosphy, Abu Sienna <-> Avicenna 07:24
Ibm means droid AFAIK
s/Ibm/Ibn/ 07:25
c. 780-850, after the installation of muslims by Aristoteles 07:26
Aristoteles was one of their prime figures for philosphy, I am not sure
Avicenna was the name in Latin of Abu Sienna, he was the greatest ph. of them all the book said 07:27
However there were other ph. who didn't speak freely because of the islam
07:27 domidumont joined
holyghost "Islamititsche Filosofie" - author Leezenberg 07:28
I am driking to my daughter's best wishes for her birthday, so I might fluctuate somewhat 07:29
15 years old
Please take your time
07:30 AndyBotwin left
holyghost I also read Arabian nights for 600 pages, which good in magic (the game) but not too good when you see some strains through the book 07:31
The only publisher we have in Dutch is "Bulaaq" for translations 07:32
07:32 dj_goku joined
holyghost Finding the book in English would be difficult 07:32
Then, I had a course on standard modern arabic which I gave to my father who is more into religion -> philosophy
07:33 AlexDaniel left
holyghost I even studied japanese for a month, I know some hiragana, katakana and kanji by heart 07:33
I try to read up on these things on wikipedia
I have 2 japanese to english dictionaries, where one is from Oxford the other's bigger 07:34
It's 4 years ago
07:34 TreyHarr1 left
holyghost I really need to relearn the hiragana, vocabulary and grammar 07:34
07:35 domidumont left
holyghost If you know that, you can read most Japanese websites 07:35
07:35 araujo_ joined
holyghost here's what I mean : en.wikipedia.org/wiki/Hiragana 07:36
The characters are thereon
07:37 dj_goku left
holyghost You just look up the word by english pronounciation e.g. fugu (fu and gu) and you have the english translation 07:44
07:44 holyghost left 07:45 holyghost joined 07:47 Dragon535 left 07:52 salva joined 08:07 perlawhirl left 08:08 domidumont joined
xiaomiao hey - if anyone has a minute or two to spare and wants to entertain me, I'd be interested in a simple perl6 program that just fetches one URL in a loop (say, 100 times) and prints the reply 08:08
08:09 domidumont left
masak "prints the reply" -- the reply being the body of the response? 08:09
08:10 domidumont joined 08:11 darutoko joined 08:16 holyghost left 08:27 TreyHarr1 joined 08:30 zakharyas joined 08:31 user9 joined 08:38 domidumont left 08:43 espadrine left 08:48 wamba left
moritz xiaomiao: add a loop around the example in github.com/sergot/http-useragent#usage 08:52
xiaomiao moritz: ah, good idea 08:53
08:54 wamba joined 08:55 holyghost joined
xiaomiao now let's see if perl6 is faster than Go <_< 08:56
timotimo haha, no. 08:57
TEttinger but is it faster than INTERCAL? 09:02
09:02 araujo_ left
gfldex Perl 6 is mean to make the programmer faster, not the computer. 09:03
timotimo well, we're hoping the speed penalty is going to go down even more with time
hahainternet Go's a fairly unique language anyway 09:22
its niche is limited in a computer science sense, but very large volume of actual use
profan TEttinger: only if you say please enough 09:23
masak and not too much 09:24
09:26 brrt joined 09:33 dj_goku joined 09:34 Zoffix joined
DrForr Much as Perl 5 was. 09:34
09:36 abraxxa left
konobi go is also dangerous 09:36
Zoffix .ask ugexe should the "New repository version 2 and new Distribution interface" be added to Rakudo's ChangeLog or is that entirely an internal change? If it should be added, would you let me know what to write into ChangeLog? github.com/rakudo/rakudo/commit/f4...6f7cd99e66
yoleaux Zoffix: I'll pass your message to ugexe.
konobi dtrace.org/blogs/wesolows/2014/12/2...-is-trash/ 09:37
DrForr Hey, I play quite a bit... Oh, the language :)
hahainternet it's actually fine as a language, it's extremely enjoyable and very pragmatic 09:38
but people hate the people behind it, and the fact it's so simple
it's certainly not a language to end all language development, but in its niche it is superb
09:38 dj_goku left
konobi and there was a recent fairly high profile article on how golang totally broke a running system because the authors make way way way too much assumption about what is "safe" 09:38
masak it seems more enjoyable than C :)
profan that tends to come with the memory safety 09:39
hahainternet konobi: could you link me to that article please?
profan: threading and syncing too, also nice things like unicode strings
konobi masak: i'm playing with terralang for the same sort of stuff
hahainternet terra's very cool but a very very different language
it targets the lowest level features it can, Go is much higher level
Lua is a closer comparison to Go than Terra imho
profan hahainternet: i think they slipped abit on the threading bit
konobi github.com/golang/go/issues/1435
09:40 kurahaupo joined
profan i mean cps is nice, but go still has the shared memory history bit too 09:40
hahainternet profan: 'shared memory history'? 09:41
konobi you can do cps in perl though
hahainternet profan: do you mean the ability to share memory without intending to?
profan hahainternet: i mean, you still have race conditions and all that fun even with the channels
hahainternet oh absolutely you ca
it in no way is fully safe in almost any regard, i see it as a valuable companion to Perl
making a language that embodies all of these safety principles results in so many compromises in other areas you lose the simplicity that makes things enjoyable 09:43
i think that's one of the greatest achievements of Perl 6 to me 09:44
it has a simple appearance, and can be used in a simple way, but that simplicity is obtained by extremely thorough design, rather than naivete (sp)
09:48 CIAvash left 09:53 rindolf joined 10:10 abraxxa joined
konobi i wonder if you could create an nqp runtime using the language/token/lexer features in terralang 10:11
10:11 labster left 10:13 pmurias joined
pmurias konobi: in order to run Perl 6 on it? 10:13
konobi pmurias: yeah
10:15 Actualeyes left
konobi pmurias: how's the JS backend working? 10:15
pmurias konobi: it compiles rakudo to JavaScript and a few % of the setting. I'm working on making nqp-js emit faster code as the rakudo compiled to js is too slow and compiling the setting would take ages 10:17
konobi pmurias: (terralang.org/api.html#the-language...lexer-api)
pmurias: habe you looked at using node-inspector to do the JS profiling?
it covers not just timing info, but you can use heap snapshotting too... and it'll take you down to the line of code that individual objects were defined at (using diffs to narrow it down) 10:18
pmurias konobi: I have used devtool to profile things but it has problems with native extensions 10:19
konobi pmurias: node-agent-devtools? 10:20
pmurias konobi: just the devtool package from npm 10:21
konobi ah... you probably want node-inspector... it's the only one being actively developed now, since it's part of one of IBMs offerings 10:22
10:24 TEttinger left
pmurias konobi: I'll check that out 10:25
konobi pmurias: oh! and built in flamegraph support
github.com/node-inspector/node-inspector 10:27
pmurias devtool seems to have the same profiling as chrome does but it runs inside of electron so it doesn't like native extensions 10:28
konobi this uses the remote debugging protocol within V8, so native addons won't affect anything 10:30
10:32 Actualeyes joined 10:33 perlawhirl joined, perlawhirl left, perlawhirl joined
timotimo blogs.dropbox.com/tech/2016/07/lep...-at-15mbs/ - kinda cool, but not interesting for us, probably 10:34
konobi i'd have thought lz4 with shared dictionaries would have been better there 10:36
10:37 kaare_ joined
gfldex timotimo: that means, if you upload jpegs to dropbox, make sure you have the legal right to change them. If you don't you better encrypt them. 10:37
timotimo go ahead and try it? :) 10:38
gfldex: did you see it's actually lossless?
gfldex timotimo: lossless, after decoding. If you compare the files, they are diffrent. There are plenty of agreements between companies that make that illegal. 10:39
timotimo wait, really? 10:40
gfldex if the file get's 20% smaller, they must differ
timotimo no. 10:41
if you zip a text file, it "gets smaller", but when you unzip it again, it's the same content again
gfldex as I understood the article they reencode the jpegs
timotimo no, they do not 10:42
gfldex sorry, i'm misstaken then
timotimo "Lepton achieves a 22% savings reduction for existing JPEG images, by predicting coefficients in JPEG blocks and feeding those predictions as context into an arithmetic coder. Lepton preserves the original file bit-for-bit perfectly."
that's all you need to know
also this paragraph makes clear you don't get the lepton'd file, you get the original file 10:43
"Lepton can decompress significantly faster than line-speed for typical consumer and business connections. Lepton is a fully streamable format, meaning the decompression can be applied to any file as that file is being transferred over the network. Hence, streaming overlaps the computational work of the decompression with the file transfer itself, hiding latency from the user."
gfldex github.com/dropbox/lepton actually makes it clear with a lot less words :) 10:44
10:44 perlawhirl left
timotimo *shrug* 10:45
anyway, now we all know what's what. and that's good 10:46
10:49 yqt joined 10:56 holyghost left 10:59 TreyHarr1 left 11:00 holyghost joined 11:02 TreyHarr1 joined 11:12 hmmm joined 11:17 adu joined 11:25 pmurias left 11:32 kid51 joined, pmurias joined 11:34 dj_goku joined 11:37 brrt left 11:38 itaipu joined 11:39 dj_goku left
sammers hi from Japan 11:43
rjbs o/ 11:44
11:45 grondilu joined
moritz \o 11:46
11:49 itaipu left 11:50 TreyHarr1 left 11:52 TreyHarr1 joined 12:02 yqt left
timotimo o/ 12:05
12:06 TreyHarr1 left 12:07 holyghost left 12:18 M-Illandan left, M-matthew left, tadzik left 12:21 holyghost joined 12:22 abraxxa left 12:23 pmurias left 12:25 pmurias joined
pmurias konobi: re running on top of terra if you want to port Perl 6 to some VM, what you likely want to do is not to implement nqp the language on it but add QAST (which is Perl6/nqp already parsed into a tree) backend 12:26
12:26 TreyHarr1 joined 12:29 Actualeyes left 12:31 domidumont joined 12:32 Actualeyes joined 12:34 RabidGravy left 12:39 TreyHarr1 left, dvinciguerra_ joined 12:42 TreyHarr1 joined 12:45 Sgeo left 12:49 RabidGravy joined 12:50 melezhik joined
melezhik hi Perl6 gurus! Does anybody know how to comment a _whole block_ of perl6 code, not commenting by `#' every single line? 12:51
psch melezhik: we have #`[ ] as block comment form 12:52
melezhik: note that the amount of brackets is up to you, as long as it's matching
moritz also pod
=begin comment
...
=end comment
12:52 zakharyas left
DrForr #`( ... ) 12:52
melezhik thanks, sounds good
12:52 TreyHarr1 left
melezhik I anticipated that perl6 has the same way with pod comments (: 12:53
psch oh, right, #` doesn't care which type of parenthesis you use
m: say #`<< nothing >> "something"
camelia rakudo-moar 51a611: OUTPUT«something␤»
gfldex also ^VI#^[ :-P
12:53 rgrinberg joined
psch m: say #^[ bar ] "foo" # uhh? 12:55
camelia rakudo-moar 51a611: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at <tmp>:1␤------> 3say7⏏5 #^[ bar ] "foo" # uhh?␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invo…»
12:55 tadzik joined 12:56 MasterDuke left
moritz #^... is a whole-line comment 12:56
so it complains about bare say
m: say
camelia rakudo-moar 51a611: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at <tmp>:1␤------> 3say7⏏5<EOL>␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument, …»
psch yeah, which just means that the ^ does nothing, doesn't it
moritz right
timotimo m: say #`/ test / "yo"
camelia rakudo-moar 51a611: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at <tmp>:1␤------> 3say7⏏5 #`/ test / "yo"␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or…»
Frameless timotimo: curious, is hack.p6c.org/~timo/coverage/ being updated on regular intervals? 13:00
And related question: how can I run that stuff locally?
melezhik: it's worth noting most editors support keyboard shortcuts to comment out selected text. Like CTRL+D 13:01
timotimo it is not
the process is a bit involved
13:02 hmmm left
timotimo so, you start by having the "line_based_coverage_3" (or some number) branch of moarvm checked out and built 13:02
Frameless Alright. I may be interested in increasing coverage in about a month
timotimo that'll give you access to a new environment variable
i think it's MVM_COVERAGE_LOG or something
set it to a filename that includes a %d somewhere for the PID
and then run the test suite. multi-thread is allowed because of the PID thing 13:03
Frameless Sounds simple enough :) Thanks.
timotimo it's not all yet :) 13:04
Frameless heh
timotimo the crapton of files you end up with would ideally go through sort, uniq, and grep for CORE.setting before you feed it to the tool
the next step is the dumped moarvm file. you get that from moar --dump CORE.setting.moarvm
and all that feeds together into moarvm's tools/parse_coverage_report.p6 13:05
melezhik huh, #`[ ... ] even better then pod :) 13:06
thanks to all for advices!
perlpilot melezhik: serves a different purpose than pod
melezhik yeah, I know
13:06 rgrinberg left 13:07 rgrinberg joined
timotimo what i like about pod is that my editor will highlight pod markup in pod comments :) 13:12
13:12 zakharyas joined
perlpilot is slightly surprised the #`/ ... / comment above didn't complain about the delimiter 13:16
timotimo well, it would have to parse all comments starting immediately with a ` as "failed attempt at block comment"
perlpilot That seems preferable to silently treating everything to end of line as a comment. 13:17
If someone has #` in their code, they were most likely trying to do an embedded comment. 13:18
dalek c: 55332b8 | titsuki++ | doc/Language/terms.pod6:
Fix a typo from "Pi" to "pi"
c: 3a6e347 | (Itsuki Toyota)++ | doc/Language/terms.pod6:
Merge pull request #708 from titsuki/fix-typo

Fix a typo from "Pi" to "pi"
Frameless
.oO( pie... )
13:20
13:21 M-matthew joined, M-Illandan joined 13:23 cognominal joined 13:25 melezhik left
holyghost *smile* those bots are funny sometimes 13:26
s/*smile*/*lol* whatever/ 13:27
13:29 domidumont left 13:30 huggable joined
Frameless huggable: hug holyghost 13:30
huggable hugs holyghost
holyghost *lol* 13:31
I really need to write an IRC bot once 13:33
I don't know what I would put into it but on #perl and #perl6 nobody would mind too much though
huf meh. put an irssi in a screen and script it 13:34
13:34 molaf joined 13:35 dj_goku joined
holyghost right 13:35
13:37 TreyHarr1 joined 13:40 dj_goku left 13:43 skids joined 13:44 sufrostico joined 13:47 Praise- joined, Praise- left, Praise- joined 13:48 TreyHarr1 left 13:49 adu left
dalek -six-help: eb9b799 | coke++ | summary.p6:
track and report on new @LARRY tag
13:52
[Coke] is it intentional that the TOC is colored when shown above the content, but black when to the left? (docs) 13:57
13:57 Praise- is now known as Praise
gfldex [Coke]: it is intentional 13:57
[Coke] what's the purpose? 13:58
gfldex the internet seams to agree that ToC like navigation elements on the left side of the screen do not require blue links 13:59
i tried the same for the ToC on top and it look very out of place
14:01 infina joined
ugexe Zoffix: gist.github.com/ugexe/5de557c23058...3af52a1609 # changeloggy notes on distribution stuff 14:01
yoleaux 09:36Z <Zoffix> ugexe: should the "New repository version 2 and new Distribution interface" be added to Rakudo's ChangeLog or is that entirely an internal change? If it should be added, would you let me know what to write into ChangeLog? github.com/rakudo/rakudo/commit/f4...6f7cd99e66
14:02 infina left, infina joined
[Coke] I'd rather it was consistent, but not enough to make a PR for it, so I guess it's fine. :) 14:02
14:02 cdg joined
Frameless ugexe: thanks 14:04
gfldex [Coke]: if you look at developer.mozilla.org/en-US/docs/W.../undefined you will see that the site is split into two parts. The allways-there-alway-navigation-part and a main body. In the main body clickable elements are marked with blue. Likely because the clickyness is the exception, while in the left part it is not.
14:05 khw joined
[Coke] I think "TOC" overrides "position on screen". links embedded in paragraphs are different than a TOC, sure 14:05
holyghost Now that I thought of it, there's this new VRML thing : Babylon javascript for developing 3D browser apps, thought I'd let you know 14:06
14:06 salva left 14:09 cdg left 14:10 setty1 joined 14:13 zakharyas left 14:15 TreyHarr1 joined 14:16 AlexDaniel joined 14:27 TreyHarr1 left 14:32 ptolemarch joined 14:36 yqt joined 14:41 kid51 left
AlexDaniel sometimes I wonder how much stuff I have 「git stash」-ed in a gazzilion number of repos all over my filesystem… 14:42
14:44 ribasushi joined, kid51 joined
lucs If in Perl 5 I would do 「$foobar = Foo::Bar->new or die "$@"」, in Perl 6, given 「use Inline::Perl5; use Foo::Bar:from<Perl5>; my $foobar = Foo::Bar.new」, how do I get P5's 「$@」? 14:45
14:47 pmurias left
gfldex if Foo::Bar.new returns a Failure it would be in $foobar and you could .Str that. 14:47
14:47 rgrinberg left
geekosaur ideally you got a Failure back from Foo::Bar.new and can extract it. otherwise you'd have to trap the exception it threw 14:48
hoelzro how could Foo::Bar return a Failure if it's from Perl 5 land?
Frameless lucs: FWIW, you don't need explicit use Inline::Perl5
lucs (trying...)
geekosaur $@ for that was considered a hack, but equivalent to the latter (if p5's eval caught an exception, it stuffed it in $@)
lucs Frameless: Oh, just the 「⋯:from<Perl5>」 is enough? 14:49
Frameless lucs: yes
lucs Frameless: Thanks.
geekosaur hoelzro, presumably Inline::Perl5 would be doing that translation. except, I don't know if it actually does or not...
hoelzro ah, fair point 14:50
gfldex if it doesn't a bug report might help
geekosaur the main problem is that $@ there is often "fake", as it was being set without using eval. so te Inline::Perl5 machinery would have to know to check p5-land $@ itself 14:51
lucs Tried this, print 'Any': 「use Net::LDAP:from<Perl5>; my $ldap = Net::LDAP.new('junk'); say $ldap.perl」 14:53
*prints
14:54 skids left, jack_rabbit left
geekosaur figured. the $@ abuse is custom, which Inline::Perl5 doesn't know about. file a bug to have it check $@ when .new fails? 14:55
lucs Okay, thanks. 14:56
14:59 girafe joined
perlpilot better might be to find a way to provide $@ in P6 somehow as new is not the only thing that will fail to set it. 14:59
lucs perlpilot: I'll try to formulate the issue in those terms. 15:00
15:04 esh joined 15:05 rgrinberg joined
gfldex maybe expose it as %*PERL5<$@>, together with all the other globals 15:07
15:08 TreyHarr1 joined
perlpilot aye, that would be nice. 15:08
lucs gfldex: Can I quote you on that in the issue I'm preparing?
15:09 skids joined
gfldex lucs: you can, as a likely bad idea with unforseeable consequences 15:09
perlpilot gfldex: I'm thinking this is a "hard" problem or nine would have done it already :) 15:10
gfldex maybe he just forgot
Frameless lucs: you can also link to IRC discussions using time stamp links on irclog.perlgeek.de/perl6/today like irclog.perlgeek.de/perl6/2016-07-15#i_12847309
gfldex what would result in a swift fix
15:10 apathor left
lucs Frameless: Ah, cool, thanks again. 15:12
15:12 donaldh joined
dalek c: 38a88ae | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6:
hide "Infix Form" from /routine-operator
15:17
gfldex and yes, that's how you do that
Frameless again mentions the need for a guide on how to add/remove stuff to docs index 15:19
gfldex Frameless: that would require someone who actually understands how it works
15:21 TreyHarr1 left
perlpilot documenting what works empirically whether or not you understand how it works would still be useful. 15:22
maybe add a HOWTO.md to the repo and fill it with "here's what I've figured out" 15:23
dalek c: 3fda059 | Altai-man++ | doc/Language/glossary.pod6:
Glossary page indexation
perlpilot plus, even if it's "wrong" it gives people that may know better a place to put their knowledge when they realize that you're wrong ;) 15:24
dalek c: 1fb0a75 | (Wenzel P. P. Peppmeyer)++ | CONTRIBUTING.md:
- doc change how to activate debug mode
15:30
15:31 kid51 left
Frameless \o/ 15:32
timotimo "none-multi's"? 15:34
i think that wants to be "non-multis"?
15:34 rindolf left
timotimo "Several wrapper file fixes" - i have no clue what that means :| 15:34
15:36 dj_goku joined
ruoso So... for anyone looking for something to profile and optimize... :) github.com/ruoso/Debian-IndexParse ... if you run t/002* with /var/lib/dpkg/available as an argument it takes way longer than I expected 15:37
timotimo i wonder if you've heard of the % regex operator yet 15:39
ruoso I probably have not 15:41
timotimo on the other hand, that's just a grammar, so our typical abilities to optimize stuff are very strongly limited
15:41 dj_goku left
ruoso yeah, when I ran the profiler I couldn't see anything really useful... 15:42
timotimo OTOH, it could be that there's some backtracking or so. we don't have a good tool for analysing that kind of thing yet
Frameless: were you able to run a coverage report yet? 15:43
ruoso maybe this is a case to go down to callgrind, as jnthn posted a few weeks ago
Frameless timotimo: I've not tried :) I'll do it in about a month, unless I get bored with other stuff. :) 15:44
(in which case sooner)
timotimo OK!
you could do that, aye
perlpilot ruoso: is the only difference between the two character classes in the name token that the second one adds - and # characters? 15:45
ruoso yes
Frameless timotimo: I bookmarked the log of you explaining how to do it.
gfldex ruoso: if you replace `map|foo -> $e { $e.do-it }` with `map|foo` { .do-it }` you make it a wee bit faster
timotimo cool
gfldex: what, really?
gfldex timotimo: yes 15:46
[Coke] wee enough that it's noise?
perlpilot probably.
[Coke] rephrase: how wee is the bit?
ruoso woudlnt' the optimizer do that already?
I guess I'll try preventing some backtracking and see how much it helps 15:48
also, remove the silly recursive thing in continuation line
perlpilot gfldex: where's your evidence that it's a wee bit faster? ;)
15:50 dvinciguerra_ left 15:52 rindolf joined
Frameless m: for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}" 15:54
camelia rakudo-moar 78ba3d: OUTPUT«First 1.34327975; Second 1.1736792740916␤»
Frameless m: for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}"
camelia rakudo-moar 78ba3d: OUTPUT«First 1.2949267; Second 1.1468783930180␤»
Frameless m: for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}"
camelia rakudo-moar 78ba3d: OUTPUT«First 1.3389298; Second 1.16844597241␤»
timotimo camelia is very noisy
15:55 dvinciguerra_ joined
timotimo huh. 15:55
there is a difference there
15:56 iamawesome joined, iamawesome left
ruoso I don't think my code is suffering from backtracking at all... Let me see how much the code blocks in the grammar cost... 15:56
timotimo by using an action class instead?
ruoso well, first by just removing them 15:57
10%
gfldex with 10 samples the avg went from 7.4938s to 7.448s
ruoso Way less than I expected
gfldex precomp cache was primed in both cases
ruoso: diff gist.github.com/gfldex/239bf4dcb76...1247754e2a 16:00
timotimo i wonder if .map is faster than map as a sub 16:01
gfldex map as a sub should be inlined
timotimo hopefully
AlexDaniel commit: HEAD for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}"
committable AlexDaniel: |«HEAD»: No build for this commit
AlexDaniel commit: HEAD~10 for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}" 16:02
committable AlexDaniel: |«HEAD~10»: First 1.2712164; Second 1.165069157072
AlexDaniel commit: HEAD~10 for ^1000000 -> $e { $e.uc }; my $l1 = now; for ^1000000 { .uc }; say "First {$l1 - INIT now}; Second {now - INIT {now} - ($l1 - INIT now)}"
committable AlexDaniel: |«HEAD~10»: First 1.270743642; Second 1.1404619790154
timotimo maybe we're turning one of those into a loop and one stays a map call?
ruoso gfldex: not measurable difference...
the cost of the block is being dwarfed by the cost of the match itself 16:03
gfldex also use \foo instead of $foo where you can
ruoso even if I add the no-backtrack modifier everywhere, it doesn't make any difference
I think it's just the building of the match data structure that may be too expensive
timotimo both are turned into loops with a simple int-based counter
Frameless ruoso: tokens don't backtrack 16:05
timotimo ah, i didn't look if it were tokens or ruler os what have you
does perl6-debug currenty work? and Grammar::Debugger? 16:06
ruoso the grammar works
timotimo and why did nobody do the awesomesauce that would be a gtk-based or web-based debugger that can handle multithreaded execution? :3
ruoso it matches correctly
Frameless I used Grammar::Tracer a couple of days ago. Worked then
ruoso it just takes forever doing so
timotimo Grammar::Debugger would have shown if it does any backtracking, but since you're using "token", it wouldn't backtrack anyway 16:08
ruoso The format of the grammar also isn't structurally prone to backtracking 16:09
i.e.: there is no possible ambiguity at any moment
16:11 yqt left
timotimo right 16:12
16:12 jkramer joined
jkramer Ahoy! 16:12
Frameless \o
ruoso I just realized...
I am running the default from rakudobrew 16:13
which is probably not from HEAD
so I'm probably missing all recent rakudo optimizations
Frameless Pretty sure it is head
timotimo those are almost all in core setting subs, operators, and methods
jkramer Is there some shortcut/operator that compares two strings but doesn't complain when one of them is undef so I don't have to type $foo.defined && $bar.defined && $foo eq $bar?
timotimo you're unlikely to benefit from them in the performance of your grammar
psch m: say quietly "foo" eq Str 16:14
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
Frameless m: my $foo; my $bar = 42; say quietly so $foo eq $bar;
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
jkramer Woah, nice
Frameless m: sub infix:<deq> { $^a.defined and $^b.defined and $^a eq $^b }; my $foo; my $bar = 42; say $foo deq $bar;
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
jkramer m: my $foo; my $bar; say quietly so $foo eq $bar; 16:15
camelia rakudo-moar 78ba3d: OUTPUT«True␤»
jkramer Meh. I need false when both are undefined :(
Frameless m: sub infix:<deq> { $^a.defined and $^b.defined and $^a eq $^b }; my $foo; my $bar; say $foo deq $bar;
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
ruoso Frameless: you're right... it is rakudo and maorvm HEAD (of a couple days ago) 16:16
psch m: say quietly "foo" eq "foo" ne Str
camelia rakudo-moar 78ba3d: OUTPUT«True␤»
16:16 dvinciguerra_ left
psch m: say quietly Str eq Str ne Str 16:16
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
psch jkramer: how's that?
timotimo maybe you want !eqv?
Frameless m: say quietly "Str" eq "Str" ne Str
camelia rakudo-moar 78ba3d: OUTPUT«True␤»
timotimo or maybe !===
16:16 dvinciguerra_ joined
jkramer psch: That looks good :) 16:17
Frameless I thought eq stringified...
m: say "Str" eq Str
camelia rakudo-moar 78ba3d: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at <tmp> line 1␤False␤»
Frameless m: say Str.Str
camelia rakudo-moar 78ba3d: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at <tmp> line 1␤␤»
Frameless Ah
timotimo yeah, but Str stringifies to "" after it warns
psch jkramer: what timotimo says is the only remaining pitfall - if you want empty Str treated differently to undefined Str you have to more work 16:18
Frameless m: say quietly "" eq "" ne Str
camelia rakudo-moar 78ba3d: OUTPUT«False␤»
gfldex m: multi fancy(Any:D $a, Any:D $b){ $a eq $b }; multi fancy(Any:U $a, Any:_ $b){ False }; multi fancy(Any:_ $a, Any:U $b){ False }; say [fancy("abc, "abc"), fancy(Any, "abc), fancy("abc", Any);
camelia rakudo-moar 78ba3d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3, Any:U $b){ False }; say [fancy("abc, "7⏏5abc"), fancy(Any, "abc), fancy("abc", An␤ expecting any of:…»
psch +do
gfldex m: multi fancy(Any:D $a, Any:D $b){ $a eq $b }; multi fancy(Any:U $a, Any:_ $b){ False }; multi fancy(Any:_ $a, Any:U $b){ False }; say [fancy("abc", "abc"), fancy(Any, "abc), fancy("abc", Any);
camelia rakudo-moar 78ba3d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3"abc", "abc"), fancy(Any, "abc), fancy("7⏏5abc", Any);␤ expecting any of:␤ infix␤ in…»
gfldex m: multi fancy(Any:D $a, Any:D $b){ $a eq $b }; multi fancy(Any:U $a, Any:_ $b){ False }; multi fancy(Any:_ $a, Any:U $b){ False }; say [fancy("abc", "abc"), fancy(Any, "abc"), fancy("abc", Any); 16:19
camelia rakudo-moar 78ba3d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in array composer; couldn't find final ']' ␤at <tmp>:1␤------> 3), fancy(Any, "abc"), fancy("abc", Any);7⏏5<EOL>␤»
jkramer psch: That's alright, can't be empty
Frameless gfldex: missing closing ]
gfldex m: multi fancy(Any:D $a, Any:D $b){ $a eq $b }; multi fancy(Any:U $a, Any:_ $b){ False }; multi fancy(Any:_ $a, Any:U $b){ False }; say [fancy("abc", "abc"), fancy(Any, "abc"), fancy("abc", Any)];
camelia rakudo-moar 78ba3d: OUTPUT«[True False False]␤»
ruoso Is there an idiomatic way to convert a list of hashes with keys "name" and "value" to a hash where the values of "name" become the key?
gfldex jkramer: basically, you filter the undefined Strs out with a multi long before you get to the eq
ruoso in p5 I would just build the hash out of the list of pairs 16:20
Frameless ruoso: a slice maybe?
hm
psch doesn't understand the question
Frameless shrugs
16:21 sno left
ruoso given [ { name => foo, value => bar }, {name => baz, value => qux }], generate { foo => var, baz => qux } 16:21
psch oh 16:22
16:22 TreyHarr1 joined
Frameless : my $l = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; my %h; %h{ $l».<name> } = $l».<value>; say %h 16:23
psch m: my @a = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; say @a>>.values.map({ $_[0] => $_[1] });
camelia rakudo-moar 78ba3d: OUTPUT«(foo => bar baz => qux)␤»
Frameless m: my $l = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; my %h; %h{ $l».<name> } = $l».<value>; say %h
camelia rakudo-moar 78ba3d: OUTPUT«{baz => qux, foo => bar}␤»
ruoso I was looking for something that wouldn't require an intermediate value 16:24
psch m: my @a = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; say [Z=>] @a>>.values
camelia rakudo-moar 78ba3d: OUTPUT«(foo => baz bar => qux)␤»
psch hm, no :|
oh, the Z is bogus
ruoso can a list of pairs be read as a hash?
Frameless yes
psch you can assign it to a %-sigiled var and it does the right thing, yeah
Frameless m: my %h = :42foo, :72bar; dd %h 16:25
camelia rakudo-moar 78ba3d: OUTPUT«Hash %h = {:bar(72), :foo(42)}␤»
16:26 dvinciguerra_ left
ruoso is there a method to hash-ify? 16:27
or do I need an intermediate variable?
psch .hash, .Hash, %()
the latter is a circumfix, not a method
m: my @a = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; say %(@a>>.values.map({ $_[0] => $_[1] })).WHAT 16:31
camelia rakudo-moar 78ba3d: OUTPUT«(Hash)␤»
16:32 dvinciguerra_ joined
ruoso just did a round of improvements based on the conversations here... 16:33
16:33 TreyHarr1 left
jdv79 Zoffix: does github support pod6 yet? i think i saw some emails about it recently. 16:35
Frameless jdv79: it doesn't. What you may have seen is a conversation about renaming .pod Pod6 files to .pod6 to prevent GitHub attempting to parse them as Perl 5 Pod and showing errors instead of the document 16:37
So now—even though you can't see the rendered document—at least you can see the source, without having to go to 'Raw' mode
jdv79 progess++ 16:38
gfldex ruoso: you could also write { $/<paragraph>.map({.made}).&make; } to maintain the order of execution 16:39
16:39 donaldh left
ruoso I actually like the traditional map notation 16:39
moved all the transformations to the top token, that made it a wee bit faster 16:40
but it still takes 20 secnods to parse a 2.7M file 16:41
gfldex nobody made the grammar engine fast yet 16:42
Frameless ruoso: and what's your goal time?
[Coke] ruoso: do you have a way for a tester to grab that 2.7M file? 16:43
ruoso I parse that in p5 in half a sec
Frameless Sounds about right.
ruoso using an dxplicit loop with an explicit state machine to parse it 16:44
Frameless ques in obligatory FAQ on speed docs.perl6.org/language/faq#Is_Per...gh_for_me?
[Coke] right, six is definitely still slower than five.
ruoso [Coke]: just grab the Packages file from debian's unstable
16:45 Ven joined
ruoso is not trying to use this in production, fotr, just playing, so yes, I know it's slower, but it seems like an interesting optimization avenue 16:45
16:46 cdg joined
ruoso ftp.us.debian.org/debian/dists/unst...ackages.gz 16:46
that file is larger than the one I have now
16:46 rgrinberg left
ruoso but the format is the same 16:47
gfldex ruoso: could you do `time perl6 -e 'say [+] lines.map: *.chars' < /var/lib/dpkg/available` please?
ruoso 72k lines totalling 2.7Mb 16:48
jdv79 is somebody investigeting speeing up the grammars yet? 16:49
that would be cool
ruoso with 4.2k paragraphs
16:49 dvinciguerra_ left
gfldex jdv79: i believe the grammar engine is written in C 16:50
jdv79 i don't thinkg so
think its just nqp 16:51
gfldex i just checked, it's nqp
ruoso I think we may need a nqp profiler, not just a rakudo profiler, then 16:52
Frameless jdv79: none one that I know of.
ruoso heh/// running my test with the profiller increased the time to run by only 6 seconds... that probably seem to indicate there's not a lot of useful information in there 16:54
jdv79 i haven't looked in a long time but the profiler really doesn't cover nqp? 16:55
ruoso hm, it does... 16:56
jdv79 i'm not sure the grammar suffers from much low hanging fruit
[Coke] given that we're using the grammar engine to run everything, right. 16:57
psch probably hardly any, and if it's more likely semantics bugs
jdv79 last i remember TimToady said something about wasted scanning or something
psch the biggest improvement for any kind of parsing is probably method invocation overhead
ruoso following the call graph
16:57 dvinciguerra_ joined
psch but well, it's also a pretty tough thing to get into and understand 16:58
jdv79 well, "everything" that isn't terrible perf dependent at least
psch and doesn't really lend itself to the kind of optimizations that e.g. lizmat++ does regularly
jdv79 the glr helped alot with a grammar of mine 16:59
its still an order of mag or so slower than p5 17:00
Frameless New blog post: "[Part 2] A Date With The Bug Queue or Let Me Help You Help Me Help You": perl6.party/post/A-Date-With-The-Bu...ou--Part-2 17:02
jdv79 that seems like awkward grammar right there 17:03
3 helps, 2 yous, and 2 mes too much
ruoso hmm.. the match code is not being jitted 17:04
at least that's what I think I'm seeing from the profiler output 17:07
does the JIT have a recursion limit? 17:09
when MATCH calls itself, the recursive call is no longer jitted 17:10
and then the entire time is spent on that non-jitted execution 17:15
17:20 TreyHarr1 joined 17:22 dvinciguerra_ left 17:23 firstdayonthejob joined
Frameless *sigh* someone brought their stupid kids to work 17:23
The noise is really interfering with my slacking off. I may just sue. 17:24
AlexDaniel Frameless: headphones? 17:25
Frameless AlexDaniel: then I can't hear when someone is coming over to my desk so I could preten I'm working in time :) 17:27
m: "🤓".uninames.say 17:28
camelia rakudo-moar 78ba3d: OUTPUT«(NERD FACE)␤»
Frameless Heh
17:28 dj_goku joined, dj_goku left, dj_goku joined 17:30 huggable left 17:31 huggable joined 17:32 dvinciguerra_ joined 17:33 sno joined 17:36 rgrinberg joined
perigrin w37 17:42
lucs Wingo! 17:44
17:49 firstdayonthejob left 17:52 domidumont joined 17:53 donaldh joined 17:54 firstdayonthejob joined 17:57 canopus left 18:01 mcmillhj left 18:04 canopus joined, dj_goku left 18:06 girafe left 18:22 labster joined 18:24 ChoHag joined 18:31 zakharyas joined, domidumont left 18:34 labster left
tbrowder Zoffix: excellent bug posts! need to post on the site somewhere... 18:34
hoelzro Zoffix: excellent post; I especially enjoyed "This isn't the interface for the latest NASA space probe" 18:37
Frameless Thanks. 18:44
18:48 kalkin-_ is now known as kalkin-, skids left 19:05 itaipu joined, zacts joined 19:10 dainis joined 19:14 sufrostico left 19:15 kurahaupo left 19:16 grondilu left 19:18 girafe joined 19:21 dainis left 19:22 labster joined 19:23 kurahaupo joined 19:24 kid51 joined 19:27 domidumont joined 19:28 mcmillhj joined 19:30 darutoko left 19:31 takadonet left
ugexe just tail -f a log file to always look busy 19:31
19:31 zakharyas left 19:33 furelypunctional joined
Frameless 80% of my job is designing marketing materials, so tail -f log can look suspicious :) 19:34
19:35 TreyHarr1 left 19:37 dainis joined 19:39 domidumont left 19:41 TreyHarr1 joined 19:46 girafe left, skids joined 19:49 donaldh left
dalek c: 598a7ab | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
Glossary: remove items with no description if doced elsewhere

For example, remove stuff that is tied to a type (per discussion on #622)
19:51
c: fcddb93 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
Glossary: remove items even if they have description

Perhaps it made sense to document these things in the glossary back then, but now that we have proper documentation for these things (which, by they way, is often much more detailed than these descriptions in the glossary), we do not have to keep it anymore.
  ⚠ Deletionism alert! Feel free to revert this commit partially.
19:51 addison joined 20:00 dj_goku joined, dj_goku left, dj_goku joined 20:05 dj_goku left 20:12 yqt joined, kid51 left, kid51 joined 20:34 kid51 left 20:38 TEttinger joined 20:41 ptolemarch left 20:54 telex left 20:56 telex joined
dalek c: caaaf24 | Altai-man++ | doc/Language/glossary.pod6:
Move bots to IRC section
21:00
21:02 sena_kun joined, sena_kun left, skids left 21:08 itaipu left 21:09 mcmillhj left 21:16 dainis left, TreyHarr1 left 21:17 TreyHarr1 joined, dvinciguerra_ left 21:19 donaldh joined
dalek c: 75a689d | Altai-man++ | doc/Language/glossary.pod6:
Deletion of Hash definition, which is alraedy greatly described in Class section.

Feel free to revert.
21:20
21:23 Senji joined 21:25 TreyHarr1 left 21:27 Actualeyes left 21:31 huggable left 21:36 TreyHarr1 joined 21:51 rindolf left 22:00 TreyHarr1 left, zacts left 22:01 dj_goku joined, dj_goku left, dj_goku joined 22:03 TreyHarr1 joined 22:04 setty1 left 22:06 dj_goku left 22:07 mohae joined, girafe joined 22:08 mohae left 22:10 mohae_ left, girafe left, TreyHarr1 left 22:14 Sgeo joined 22:15 mohae joined, cpage_ left, donaldh left 22:19 Yule joined, TreyHarr1 joined
dalek sectbot: db49d66 | (Daniel Green)++ | benchable.pl:
Bring benchable in line with the others
22:21
22:23 Yule left 22:38 firstdayonthejob left 22:39 jack_rabbit joined 22:43 TreyHarr1 left 22:45 cpage_ joined 22:49 skids joined 22:51 yqt left 22:52 TreyHarr1 joined 22:58 wamba left 22:59 furelypunctional left 23:04 TreyHarr1 left 23:06 TreyHarr1 joined 23:08 captain-adequate left 23:17 Ven left 23:23 TreyHarr1 left 23:31 perlawhirl joined, TreyHarr1 joined, rgrinberg left 23:34 perlawhirl left 23:38 rgrinberg joined 23:45 dj_goku joined