Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-07-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 AlexDaniel gfldex: while you probably have your own TODO list, maybe you can take a look at https://github.com/perl6/doc/issues/38 ?
00:02 AlexDaniel gfldex: it is the oldest issue right now, but it does not look very hard
00:03 AlexDaniel but it is very confusing…
00:04 AlexDaniel gfldex: to me it seems like you can add “This is not a real operator” sentence to https://docs.perl6.org/routine/$LESS-THAN_SIGN%20$GREATER-THAN_SIGN#circumfix_%3C_%3E and we can close the issue
00:08 AlexDaniel by the way, I am going through older tickets again. Please don't mind my annoying comments
00:12 zacts joined #perl6
00:16 dalek doc: 38036e1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/quoting.pod6:
00:16 dalek doc: untangle index entry for < >
00:16 dalek doc: review: https://github.com/perl6/doc/commit/38036e12cd
00:19 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:<[ ]>'?␤␤»
00:22 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:<[ ]>'?␤␤»
00:22 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:<[ ]>'?␤␤»
00:23 gfldex ENOSUCHOPERATOR
00:24 [particle] joined #perl6
00:26 dalek doc: 22ddf6d | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
00:26 dalek doc: ( ), < >, { } are terms (at least they are not circumfixes)
00:26 dalek doc: review: https://github.com/perl6/doc/commit/22ddf6db07
00:28 dalek doc: b3dc4f2 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
00:28 dalek doc: add index entry for the empty list
00:28 dalek doc: review: https://github.com/perl6/doc/commit/b3dc4f2dc7
00:29 addison joined #perl6
00:30 dalek doc: 58b051d | (Wenzel P. P. Peppmeyer)++ | doc/Language/quoting.pod6:
00:30 dalek doc: fix index typo
00:30 dalek doc: review: https://github.com/perl6/doc/commit/58b051dae7
01:01 dalek doc: 2eb85f3 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6:
01:01 dalek doc: untangle index entry for .( ), .{ }, .[ ]
01:01 dalek doc: review: https://github.com/perl6/doc/commit/2eb85f315c
01:21 dj_goku joined #perl6
01:21 dj_goku joined #perl6
01:46 kid51 joined #perl6
01:46 Actualeyes joined #perl6
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
01:55 kalkin-_ joined #perl6
02:14 committable joined #perl6
02:23 dalek doc: dcab8da | (Wenzel P. P. Peppmeyer)++ | html/js/main.js:
02:23 dalek doc: remove #__debug__ and add [Debug: off] to footer
02:23 dalek doc: review: https://github.com/perl6/doc/commit/dcab8da86a
02:23 dalek doc: 461a54c | (Wenzel P. P. Peppmeyer)++ | html/js/main.js:
02:23 dalek doc: add embedded svg link check
02:23 dalek doc: review: https://github.com/perl6/doc/commit/461a54c12e
02:45 noganex joined #perl6
02:54 BenGoldberg_ joined #perl6
02:56 holyghost joined #perl6
03:03 perlawhirl joined #perl6
03:06 dalek bisectbot: 20c5d19 | MasterDuke17++ | committable.pl:
03:06 dalek bisectbot: Group commits by output (#10)
03:06 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/20c5d19f29
03:09 dalek bisectbot: a1fd6fc | MasterDuke17++ | committable.pl:
03:09 dalek bisectbot: Fix debugging value left in accidentally
03:09 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/a1fd6fc863
03:22 dj_goku joined #perl6
03:22 dj_goku joined #perl6
03:49 zacts joined #perl6
03:57 dj_goku joined #perl6
03:57 dj_goku joined #perl6
04:01 dalek bisectbot: 841ee41 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
04:01 dalek bisectbot: Use nickname as a description for gists
04:01 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/841ee41d58
04:01 dalek bisectbot: c6b2106 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
04:01 dalek bisectbot: Indentation
04:01 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/c6b2106bb0
04:01 dalek bisectbot: 7c22ea4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Perl6IRCBotable.pm:
04:01 dalek bisectbot: Comments, refactoring
04:01 dalek bisectbot:
04:01 dalek bisectbot: Nothing important really, just code mangling
04:01 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/7c22ea4b37
04:01 dalek bisectbot: c763c0c | (Aleks-Daniel Jakimenko-Aleksejev)++ | / (2 files):
04:01 dalek bisectbot: bisectable: more magic and rainbows
04:01 dalek bisectbot:
04:01 dalek bisectbot: * More detailed bisect log (show exit codes, script output, etc.)
04:01 dalek bisectbot: * If the output is identical, then show it. Gist it if it does not fit.
04:01 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/c763c0c39d
04:19 dj_goku joined #perl6
04:19 dj_goku joined #perl6
04:30 dalek bisectbot: 111cebb | MasterDuke17++ | committable.pl:
04:30 dalek bisectbot: Switch order of revision(s) and output
04:30 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/111cebb04f
04:35 dalek ecosystem: 41b277b | (Sam Morrison)++ | META.list:
04:35 dalek ecosystem: Add Uzu to ecosystem
04:35 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/41b277b73b
04:35 dalek ecosystem: 896d3f1 | azawawi++ | META.list:
04:35 dalek ecosystem: Merge pull request #226 from scmorrison/master
04:35 dalek ecosystem:
04:35 dalek ecosystem: Add Uzu to ecosystem
04:35 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/896d3f17c2
04:41 dalek bisectbot: 48693da | MasterDuke17++ | committable.pl:
04:41 dalek bisectbot: Sort output
04:41 dalek bisectbot:
04:41 dalek bisectbot: 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 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/48693da2db
04:41 Cabanossi joined #perl6
04:42 rgrinberg joined #perl6
04:46 holyghost Hello
04:48 * holyghost is going to learn swift
04:48 holyghost I looks as swift uses syntax of haskel where perl uses CLOS
04:48 holyghost s/per/perl6/
04:49 holyghost I might be wrong though
05:00 dalek bisectbot: 40fb215 | (Daniel Green)++ | / (3 files):
05:00 dalek bisectbot: Clean up alt_nicks
05:00 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/40fb215c2f
05:07 holyghost and the other way round as far as I can see
05:09 geekosaur I'd say ML instead of Haskell, since it's the generic parts that all the ML family languages have
05:23 holyghost geekosour, ML ?
05:23 holyghost geekosaur, Markup Languages ?
05:23 parabolize https://en.wikipedia.org/wiki/ML_(programming_language)
05:23 geekosaur that, yes
05:24 holyghost ok I understand now
05:24 geekosaur although the language family itself is larger and includes Haskell, Curry, Mercury, F#, etc.
05:25 holyghost and gofer
05:25 geekosaur and historical pre-Haskell languages Gofer and Miranda
05:25 holyghost a functional language
05:25 holyghost we had to learn about gofer as a functional language at school
05:25 geekosaur and Lazy ML although about the only thing it was used for was to write the first version of ghc >.>
05:26 holyghost I read the gofer source code once, it's quite ellegant
05:26 holyghost where lua is just based on C's var args, gofer has its own system
05:27 holyghost It also compiles everywhere
05:27 holyghost I think I have a tarball around somehwere with my gofer modifications, I could' have lost it though
05:28 holyghost ML is of the 70ies ... then it is older than haskel (Ediburgh?)
05:29 holyghost s/Ediburgh/Edinburgh/
05:29 holyghost ok now I remember, you actually use lambda calculus for functionality
05:31 geekosaur yes. ML predates Haskell. I mentioned Lazy ML (essentially a basic ML with laziness) as a precursor already
05:32 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
05:33 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
05:33 geekosaur well, only sort of, since Miranda was closed spec as well as closed source
05:34 TEttinger wow
05:34 TEttinger closed spec, that's a hell of a relic
05:34 holyghost Haskel <-> 1985
05:35 holyghost 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
05:35 holyghost scheme is of 1986
05:35 TEttinger hm, are there any major closed-source PLs these days?
05:35 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?
05:35 TEttinger yep
05:35 TEttinger like lisp, ahead of its time
05:35 TEttinger but a bit nicer syntax for people not used to it, I'd say
05:36 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:36 masak :)
05:37 masak hi, #perl6
05:37 geekosaur TEttinger, I'd argue Verilog (VHDL is a rather weak open clone) and Matlab (Octave likewise)
05:37 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)
05:37 holyghost plankakul is probably what the mainframes in the armies of WWII used
05:37 TEttinger nope
05:37 masak they did not
05:38 TEttinger no implementation at his time
05:38 TEttinger they were still writing in machine code by flipping individual gates
05:38 holyghost I could be wrong though, an army man told me they had an assembler in WWII
05:38 masak Plankalkül was quite pioneering when it came to abstract data types
05:38 dalek bisectbot: 4b7b3b4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
05:38 dalek bisectbot: committable: LIMIT constant, limit bumped to 300
05:38 dalek bisectbot:
05:38 dalek bisectbot: Note that it does not run anything in parallel, so it is a bit slow.
05:38 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/4b7b3b472a
05:38 dalek bisectbot: 32cdbc8 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
05:38 dalek bisectbot: committable: much better output
05:38 dalek bisectbot:
05:38 dalek bisectbot: Also, keep results in the same order
05:38 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/32cdbc8325
05:38 masak there's a nice paper about it by Knuth and some others
05:39 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 TEttinger konrad zuse
05:39 holyghost I see
05:39 TEttinger it was long before ASCII was a thing :)
05:40 holyghost Ada then ?
05:40 TEttinger it used "real math" symbols, cough like a certain other language can, cough :)
05:40 TEttinger (plankalkul)
05:40 holyghost I meant the lady "*Ada*"
05:40 TEttinger oh yes
05:41 holyghost It's somewhat of a saga :-)
05:41 TEttinger Countess Ada of Lovelace
05:41 holyghost she programmed machine code I though
05:41 holyghost s/though/thought/
05:41 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
05:41 TEttinger I think her machine was analog, not electronic at all of course
05:41 holyghost sure
05:41 TEttinger yeah, founded programming I suppose
05:42 TEttinger though you can argue it goes back much further
05:42 masak arguably
05:42 holyghost machine code in the sense that she used numbers (ALU)
05:42 masak algorithms go back to Al'Kwarismi at least ;)
05:42 TEttinger before or after al-jabr?
05:43 TEttinger "that algebra guy"
05:43 holyghost Arabians also invented the cypher '0'
05:43 TEttinger and you can look at an algorithm as a recipe and suddenly everyone has invented recipes
05:43 holyghost ASCII is based on it in 8x8 rows
05:44 TEttinger right, ciphers are definitely a sort of algorithm
05:44 TEttinger was it da vinci who had lots of ciphered journals?
05:44 holyghost Later on the school of Athens did "number theory"
05:44 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.)
05:45 TEttinger nice.
05:45 TEttinger was that babbage's engine?
05:45 geekosaur yes
05:45 TEttinger (I guess named after the person who constructed one, or after the person who devised the plans?)
05:46 holyghost that's mentioned in the dictionary
05:46 holyghost babbage's engine
05:46 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
05:46 TEttinger oh wow
05:46 parabolize Lovelace's first program: https://upload.wikimedia.org/wikipedia/commons/c/cf/Diagram_for_the_computation_of_Bernoulli_numbers.jpg
05:46 TEttinger I wonder what kind of bug it was
05:47 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
05:49 TEttinger looms were also programmable in the 1800s, with common implementations and actual standards... kinda amazing
05:49 jack_rabbit joined #perl6
05:49 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 TEttinger holyghost: weaves fabric in automated patterns
05:50 holyghost right as a carpet
05:50 TEttinger like for mass-manufacturing rugs
05:50 TEttinger yeah
05:50 AlexDaniel joined #perl6
05:51 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
05:52 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 https://en.wikipedia.org/wiki/Joseph_Marie_Jacquard#Jacquard_loom
05:53 holyghost node scripture ?
05:54 holyghost I mean, there's this writing where you use knots in a piece of rope
05:54 holyghost (It's not in freeciv though :-)
05:54 TEttinger quipu, yeah
05:54 TEttinger https://en.wikipedia.org/wiki/Quipu "talking knots"
05:55 dalek bisectbot: 5671d64 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
05:55 dalek bisectbot: committable: no need to chdir here
05:55 dalek bisectbot:
05:55 dalek bisectbot: It would be great to get rid of all “chdir”-s, but unfortunately it is not
05:55 dalek bisectbot: always possible. However, this one is not the case.
05:55 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/5671d647c0
05:55 dalek bisectbot: b04f37b | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
05:55 dalek bisectbot: Missed one occurrence of LIMIT
05:55 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/b04f37b379
05:57 holyghost flood, 'do not mingle in the affairs of bots' I guess :-)
05:57 holyghost s/mingle/meddle
06:02 holyghost I am downloading 'star trek - voyager', I am going to watch some so I am a bit away from the computer
06:02 canopus joined #perl6
06:02 holyghost all seasons
06:06 holyghost Also, I am going to buy some beer in an hour
06:06 holyghost My oldest daughter becomes 15 of age
06:06 holyghost tomorrow
06:11 dalek bisectbot: 5d7fd25 | (Aleks-Daniel Jakimenko-Aleksejev)++ | committable.pl:
06:11 dalek bisectbot: committable: handle uncompilable commits properly
06:11 dalek bisectbot:
06:11 dalek bisectbot: Also print warnings in exactly the same manner as other output.
06:11 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/5d7fd25cf6
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 #perl6
06:12 committable joined #perl6
06:12 holyghost She has a Vaio portable where she can put her music on it
06:12 sno joined #perl6
06:20 wamba joined #perl6
06:22 espadrine joined #perl6
06:23 AlexDaniel if anybody is wondering what all these bisectbot changes are about, see my explanation on #perl6-dev here: http://irclog.perlgeek.de/perl6-dev/2016-07-15#i_12844444
06:24 holyghost http://personal.ee.surrey.ac.uk/Personal/L.Wood/jargon/jargon
06:24 holyghost Search for Babbage on that page
06:24 holyghost I though I'd share
06:24 holyghost s/though/thought
06:25 holyghost and http://www.catb.org/~esr/jargon/html/E/engine.html
06:28 firstdayonthejob joined #perl6
06:35 abraxxa joined #perl6
06:37 Khisanth joined #perl6
06:39 jack_rabbit joined #perl6
06:41 CIAvash joined #perl6
06:51 Dragon535 joined #perl6
06:56 holyghost apparently a truck drove in on a crowd in Nice, France
06:56 DrForr Heard earlier this morning. :(
06:59 RabidGravy joined #perl6
07:03 holyghost We're at 2 happenings such a month in Europe
07:16 TreyHarr1 joined #perl6
07:18 dalek ecosystem/MARTIMM-patch-1: 0d68a2c | (Marcel Timmerman)++ | META.list:
07:18 dalek ecosystem/MARTIMM-patch-1: new module Semaphore::ReadersWriters
07:18 dalek ecosystem/MARTIMM-patch-1: review: https://github.com/perl6/ecosystem/commit/0d68a2cb7d
07:21 CIAvash holyghost: Khwarizmi was Persian/Iranian
07:21 holyghost ok
07:23 holyghost https://en.wikipedia.org/wiki/Main_Page
07:23 holyghost excuse me, https://en.wikipedia.org/wiki/Muhammad_ibn_Musa_al-Khwarizmi
07:24 holyghost I once read a book on Islamic philosphy, Abu Sienna <-> Avicenna
07:24 holyghost Ibm means droid AFAIK
07:24 holyghost s/Ibm/Ibn/
07:26 holyghost c. 780-850, after the installation of muslims by Aristoteles
07:26 holyghost Aristoteles was one of their prime figures for philosphy, I am not sure
07:27 holyghost Avicenna was the name in Latin of Abu Sienna, he was the greatest ph. of them all the book said
07:27 holyghost However there were other ph. who didn't speak freely because of the islam
07:27 domidumont joined #perl6
07:28 holyghost "Islamititsche Filosofie" - author Leezenberg
07:29 holyghost I am driking to my daughter's best wishes for her birthday, so I might fluctuate somewhat
07:29 holyghost 15 years old
07:29 holyghost Please take your time
07:31 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:32 holyghost The only publisher we have in Dutch is "Bulaaq" for translations
07:32 dj_goku joined #perl6
07:32 dj_goku joined #perl6
07:32 holyghost Finding the book in English would be difficult
07:32 holyghost Then, I had a course on standard modern arabic which I gave to my father who is more into religion -> philosophy
07:33 holyghost I even studied japanese for a month, I know some hiragana, katakana and kanji by heart
07:33 holyghost I try to read up on these things on wikipedia
07:34 holyghost I have 2 japanese to english dictionaries, where one is from Oxford the other's bigger
07:34 holyghost It's 4 years ago
07:34 holyghost I really need to relearn the hiragana, vocabulary and grammar
07:35 holyghost If you know that, you can read most Japanese websites
07:35 araujo_ joined #perl6
07:36 holyghost here's what I mean : https://en.wikipedia.org/wiki/Hiragana
07:36 holyghost The characters are thereon
07:44 holyghost You just look up the word by english pronounciation e.g. fugu (fu and gu) and you have the english translation
07:45 holyghost joined #perl6
07:47 Dragon535 left #perl6
07:52 salva joined #perl6
08:08 domidumont joined #perl6
08:08 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:09 masak "prints the reply" -- the reply being the body of the response?
08:10 domidumont joined #perl6
08:10 darutoko joined #perl6
08:27 TreyHarr1 joined #perl6
08:30 zakharyas joined #perl6
08:31 user9 joined #perl6
08:52 moritz xiaomiao: add a loop around the example in https://github.com/sergot/http-useragent#usage
08:53 xiaomiao moritz: ah, good idea
08:54 wamba joined #perl6
08:55 holyghost joined #perl6
08:56 xiaomiao now let's see if perl6 is faster than Go <_<
08:57 timotimo haha, no.
09:02 TEttinger but is it faster than INTERCAL?
09:02 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
09:22 hahainternet Go's a fairly unique language anyway
09:22 hahainternet its niche is limited in a computer science sense, but very large volume of actual use
09:22 profan TEttinger: only if you say please enough
09:24 masak and not too much
09:26 brrt joined #perl6
09:33 dj_goku joined #perl6
09:34 Zoffix joined #perl6
09:34 DrForr Much as Perl 5 was.
09:36 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? https://github.com/rakudo/rakudo/commit/f43e3ee4707df437b434fd2f290e416f7cd99e66
09:36 yoleaux Zoffix: I'll pass your message to ugexe.
09:37 konobi http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/
09:37 DrForr Hey, I play quite a bit... Oh, the language :)
09:38 hahainternet it's actually fine as a language, it's extremely enjoyable and very pragmatic
09:38 hahainternet but people hate the people behind it, and the fact it's so simple
09:38 hahainternet it's certainly not a language to end all language development, but in its niche it is superb
09:38 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 :)
09:38 profan that tends to come with the memory safety
09:39 hahainternet konobi: could you link me to that article please?
09:39 hahainternet profan: threading and syncing too, also nice things like unicode strings
09:39 konobi masak: i'm playing with terralang for the same sort of stuff
09:39 hahainternet terra's very cool but a very very different language
09:39 hahainternet it targets the lowest level features it can, Go is much higher level
09:39 hahainternet Lua is a closer comparison to Go than Terra imho
09:39 profan hahainternet: i think they slipped abit on the threading bit
09:39 konobi https://github.com/golang/go/issues/1435
09:39 kurahaupo joined #perl6
09:40 profan i mean cps is nice, but go still has the shared memory history bit too
09:40 konobi you can do cps in perl though
09:40 hahainternet profan: 'shared memory history'?
09:41 hahainternet profan: do you mean the ability to share memory without intending to?
09:41 profan hahainternet: i mean, you still have race conditions and all that fun even with the channels
09:41 hahainternet oh absolutely you ca
09:41 hahainternet it in no way is fully safe in almost any regard, i see it as a valuable companion to Perl
09:43 hahainternet 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 hahainternet i think that's one of the greatest achievements of Perl 6 to me
09:44 hahainternet 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:53 rindolf joined #perl6
10:10 abraxxa joined #perl6
10:10 konobi i wonder if you could create an nqp runtime using the language/token/lexer features in terralang
10:12 pmurias joined #perl6
10:13 pmurias konobi: in order to run Perl 6 on it?
10:13 konobi pmurias: yeah
10:15 konobi pmurias: how's the JS backend working?
10:17 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: (http://terralang.org/api.html#the-language-and-lexer-api)
10:17 konobi pmurias: habe you looked at using node-inspector to do the JS profiling?
10:18 konobi 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:19 pmurias konobi: I have used devtool to profile things but it has problems with native extensions
10:20 konobi pmurias: node-agent-devtools?
10:21 pmurias konobi: just the devtool package from npm
10:22 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:25 pmurias konobi: I'll check that out
10:25 konobi pmurias: oh! and built in flamegraph support
10:27 konobi https://github.com/node-inspector/node-inspector
10:28 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:30 konobi this uses the remote debugging protocol within V8, so native addons won't affect anything
10:32 Actualeyes joined #perl6
10:33 perlawhirl joined #perl6
10:33 perlawhirl joined #perl6
10:34 timotimo https://blogs.dropbox.com/tech/2016/07/lepton-image-compression-saving-22-losslessly-from-images-at-15mbs/ - kinda cool, but not interesting for us, probably
10:36 konobi i'd have thought lz4 with shared dictionaries would have been better there
10:37 kaare_ joined #perl6
10:37 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 timotimo gfldex: did you see it's actually lossless?
10:39 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:40 timotimo wait, really?
10:40 gfldex if the file get's 20% smaller, they must differ
10:41 timotimo no.
10:41 timotimo if you zip a text file, it "gets smaller", but when you unzip it again, it's the same content again
10:41 gfldex as I understood the article they reencode the jpegs
10:41 timotimo no, they do not
10:42 gfldex sorry, i'm misstaken then
10:42 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."
10:42 timotimo that's all you need to know
10:43 timotimo also this paragraph makes clear you don't get the lepton'd file, you get the original file
10:43 timotimo "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."
10:44 gfldex https://github.com/dropbox/lepton actually makes it clear with a lot less words :)
10:45 timotimo *shrug*
10:46 timotimo anyway, now we all know what's what. and that's good
10:48 yqt joined #perl6
11:00 holyghost joined #perl6
11:02 TreyHarr1 joined #perl6
11:12 hmmm joined #perl6
11:17 adu joined #perl6
11:32 kid51 joined #perl6
11:32 pmurias joined #perl6
11:34 dj_goku joined #perl6
11:38 itaipu joined #perl6
11:43 sammers hi from Japan
11:44 rjbs o/
11:45 grondilu joined #perl6
11:46 moritz \o
11:52 TreyHarr1 joined #perl6
12:05 timotimo o/
12:21 holyghost joined #perl6
12:24 pmurias joined #perl6
12:26 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 TreyHarr1 joined #perl6
12:31 domidumont joined #perl6
12:31 Actualeyes joined #perl6
12:39 dvinciguerra_ joined #perl6
12:42 TreyHarr1 joined #perl6
12:49 RabidGravy joined #perl6
12:50 melezhik joined #perl6
12:51 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 psch melezhik: note that the amount of brackets is up to you, as long as it's matching
12:52 moritz also pod
12:52 moritz =begin comment
12:52 moritz ...
12:52 moritz =end comment
12:52 DrForr #`( ... )
12:52 melezhik thanks, sounds good
12:53 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
12:53 psch m: say #`<< nothing >> "something"
12:53 camelia rakudo-moar 51a611: OUTPUT«something␤»
12:53 gfldex also ^VI#^[  :-P
12:53 rgrinberg joined #perl6
12:55 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 #perl6
12:56 moritz #^... is a whole-line comment
12:56 moritz so it complains about bare say
12:56 moritz m: say
12:56 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, …»
12:56 psch yeah, which just means that the ^ does nothing, doesn't it
12:56 moritz right
12:56 timotimo m: say #`/ test / "yo"
12:56 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…»
13:00 Frameless timotimo: curious, is http://hack.p6c.org/~timo/coverage/ being updated on regular intervals?
13:00 Frameless And related question: how can I run that stuff locally?
13:01 Frameless melezhik: it's worth noting most editors support keyboard shortcuts to comment out selected text. Like CTRL+D
13:01 timotimo it is not
13:01 timotimo the process is a bit involved
13:02 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
13:02 timotimo that'll give you access to a new environment variable
13:02 timotimo i think it's MVM_COVERAGE_LOG or something
13:02 timotimo set it to a filename that includes a %d somewhere for the PID
13:03 timotimo and then run the test suite. multi-thread is allowed because of the PID thing
13:03 Frameless Sounds simple enough :) Thanks.
13:04 timotimo it's not all yet :)
13:04 Frameless heh
13:04 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
13:04 timotimo the next step is the dumped moarvm file. you get that from moar --dump CORE.setting.moarvm
13:05 timotimo and all that feeds together into moarvm's tools/parse_coverage_report.p6
13:05 melezhik huh, #`[ ... ] even better then pod :)
13:06 melezhik thanks to all for advices!
13:06 perlpilot melezhik: serves a different purpose than pod
13:06 melezhik yeah, I know
13:07 rgrinberg joined #perl6
13:12 timotimo what i like about pod is that my editor will highlight pod markup in pod comments :)
13:12 zakharyas joined #perl6
13:16 * 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"
13:17 perlpilot That seems preferable to silently treating everything to end of line as a comment.
13:18 perlpilot If someone has #` in their code, they were most likely trying to do an embedded comment.
13:18 dalek doc: 55332b8 | titsuki++ | doc/Language/terms.pod6:
13:18 dalek doc: Fix a typo from "Pi" to "pi"
13:18 dalek doc: review: https://github.com/perl6/doc/commit/55332b843f
13:18 dalek doc: 3a6e347 | (Itsuki Toyota)++ | doc/Language/terms.pod6:
13:18 dalek doc: Merge pull request #708 from titsuki/fix-typo
13:18 dalek doc:
13:18 dalek doc: Fix a typo from "Pi" to "pi"
13:18 dalek doc: review: https://github.com/perl6/doc/commit/3a6e34712b
13:20 Frameless .oO( pie... )
13:21 M-matthew joined #perl6
13:21 M-Illandan joined #perl6
13:23 cognominal joined #perl6
13:26 holyghost *smile* those bots are funny sometimes
13:26 holyghost s/*smile*/*lol* whatever/
13:30 huggable joined #perl6
13:30 Frameless huggable: hug holyghost
13:30 * huggable hugs holyghost
13:31 holyghost *lol*
13:33 holyghost I really need to write an IRC bot once
13:33 holyghost I don't know what I would put into it but on #perl and #perl6 nobody would mind too much though
13:34 huf meh. put an irssi in a screen and script it
13:34 molaf joined #perl6
13:35 dj_goku joined #perl6
13:35 holyghost right
13:37 TreyHarr1 joined #perl6
13:43 skids joined #perl6
13:44 sufrostico joined #perl6
13:47 Praise- joined #perl6
13:47 Praise- joined #perl6
13:52 dalek rt-six-help: eb9b799 | coke++ | summary.p6:
13:52 dalek rt-six-help: track and report on new @LARRY tag
13:52 dalek rt-six-help: review: https://github.com/coke/rt-six-help/commit/eb9b799ed3
13:57 [Coke] is it intentional that the TOC is colored when shown above the content, but black when to the left? (docs)
13:57 gfldex [Coke]: it is intentional
13:58 [Coke] what's the purpose?
13:59 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 gfldex i tried the same for the ToC on top and it look very out of place
14:01 infina joined #perl6
14:01 ugexe Zoffix: https://gist.github.com/ugexe/5de557c2305831cefbdc553af52a1609 # 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? https://github.com/rakudo/rakudo/commit/f43e3ee4707df437b434fd2f290e416f7cd99e66
14:02 infina joined #perl6
14:02 [Coke] I'd rather it was consistent, but not enough to make a PR for it, so I guess it's fine. :)
14:02 cdg joined #perl6
14:04 Frameless ugexe: thanks
14:04 gfldex [Coke]: if you look at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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 #perl6
14:05 [Coke] I think "TOC" overrides "position on screen". links embedded in paragraphs are different than a TOC, sure
14:06 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:10 setty1 joined #perl6
14:15 TreyHarr1 joined #perl6
14:16 AlexDaniel joined #perl6
14:32 ptolemarch joined #perl6
14:36 yqt joined #perl6
14:42 AlexDaniel sometimes I wonder how much stuff I have 「git stash」-ed in a gazzilion number of repos all over my filesystem…
14:44 ribasushi joined #perl6
14:44 kid51 joined #perl6
14:45 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:47 gfldex if Foo::Bar.new returns a Failure it would be in $foobar and you could .Str that.
14:48 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?
14:48 Frameless lucs: FWIW, you don't need explicit use Inline::Perl5
14:48 lucs (trying...)
14:48 geekosaur $@ for that was considered a hack, but equivalent to the latter (if p5's eval caught an exception, it stuffed it in $@)
14:49 lucs Frameless: Oh, just the 「⋯:from<Perl5>」 is enough?
14:49 Frameless lucs: yes
14:49 lucs Frameless: Thanks.
14:49 geekosaur hoelzro, presumably Inline::Perl5 would be doing that translation. except, I don't know if it actually does or not...
14:50 hoelzro ah, fair point
14:50 gfldex if it doesn't a bug report might help
14:50 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:53 lucs Tried this, print 'Any': 「use Net::LDAP:from<Perl5>; my $ldap = Net::LDAP.new('junk'); say $ldap.perl」
14:53 lucs *prints
14:55 geekosaur figured. the $@ abuse is custom, which Inline::Perl5 doesn't know about. file a bug to have it check $@ when .new fails?
14:56 lucs Okay, thanks.
14:59 girafe joined #perl6
14:59 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.
15:00 lucs perlpilot: I'll try to formulate the issue in those terms.
15:04 esh joined #perl6
15:05 rgrinberg joined #perl6
15:06 gfldex maybe expose it as %*PERL5<$@>, together with all the other globals
15:08 TreyHarr1 joined #perl6
15:08 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 #perl6
15:09 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
15:10 Frameless lucs: you can also link to IRC discussions using time stamp links on http://irclog.perlgeek.de/perl6/today like http://irclog.perlgeek.de/perl6/2016-07-15#i_12847309
15:10 gfldex what would result in a swift fix
15:11 lucs Frameless: Ah, cool, thanks again.
15:11 donaldh joined #perl6
15:17 dalek doc: 38a88ae | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6:
15:17 dalek doc: hide "Infix Form" from /routine-operator
15:17 dalek doc: review: https://github.com/perl6/doc/commit/38a88ae925
15:17 gfldex and yes, that's how you do that
15:19 * 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:22 perlpilot documenting what works empirically whether or not you understand how it works would still be useful.
15:22 perlpilot maybe add a HOWTO.md to the repo and fill it with "here's what I've figured out"
15:23 dalek doc: 3fda059 | Altai-man++ | doc/Language/glossary.pod6:
15:23 dalek doc: Glossary page indexation
15:23 dalek doc: review: https://github.com/perl6/doc/commit/3fda0592ce
15:24 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:30 dalek doc: 1fb0a75 | (Wenzel P. P. Peppmeyer)++ | CONTRIBUTING.md:
15:30 dalek doc: - doc change how to activate debug mode
15:30 dalek doc: - doc how to hide headings from index
15:30 dalek doc: review: https://github.com/perl6/doc/commit/1fb0a75749
15:32 Frameless \o/
15:34 timotimo "none-multi's"?
15:34 timotimo i think that wants to be "non-multis"?
15:34 timotimo "Several wrapper file fixes" - i have no clue what that means :|
15:36 dj_goku joined #perl6
15:37 ruoso So... for anyone looking for something to profile and optimize... :) https://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:39 timotimo i wonder if you've heard of the % regex operator yet
15:41 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:42 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
15:43 timotimo 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
15:44 Frameless timotimo: I've not tried :) I'll do it in about a month, unless I get bored with other stuff. :)
15:44 Frameless (in which case sooner)
15:44 timotimo OK!
15:44 timotimo you could do that, aye
15:45 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
15:45 Frameless timotimo: I bookmarked the log of you explaining how to do it.
15:45 gfldex ruoso: if you replace `map|foo -> $e { $e.do-it }` with `map|foo` { .do-it }` you make it a wee bit faster
15:45 timotimo cool
15:45 timotimo gfldex: what, really?
15:46 gfldex timotimo: yes
15:46 [Coke] wee enough that it's noise?
15:46 perlpilot probably.
15:46 [Coke] rephrase: how wee is the bit?
15:46 ruoso woudlnt' the optimizer do that already?
15:48 ruoso I guess I'll try preventing some backtracking and see how much it helps
15:48 ruoso also, remove the silly recursive thing in continuation line
15:48 perlpilot gfldex: where's your evidence that it's a wee bit faster?  ;)
15:52 rindolf joined #perl6
15:53 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:53 camelia rakudo-moar 78ba3d: OUTPUT«First 1.34327975; Second 1.1736792740916␤»
15:54 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.2949267; Second 1.1468783930180␤»
15:54 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.3389298; Second 1.16844597241␤»
15:54 timotimo camelia is very noisy
15:55 dvinciguerra_ joined #perl6
15:55 timotimo huh.
15:55 timotimo there is a difference there
15:56 iamawesome joined #perl6
15:56 iamawesome left #perl6
15:56 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?
15:57 ruoso well, first by just removing them
15:57 ruoso 10%
15:57 gfldex with 10 samples the avg went from 7.4938s to 7.448s
15:57 ruoso Way less than I expected
15:57 gfldex precomp cache was primed in both cases
16:00 gfldex ruoso: diff https://gist.github.com/gfldex/239bf4dcb76e495d8b21bd1247754e2a
16:01 timotimo i wonder if .map is faster than map as a sub
16:01 gfldex map as a sub should be inlined
16:01 timotimo hopefully
16:01 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)}"
16:01 committable AlexDaniel: |«HEAD»: No build for this commit
16:01 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
16:02 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.270743642; Second 1.1404619790154
16:02 timotimo maybe we're turning one of those into a loop and one stays a map call?
16:02 ruoso gfldex: not measurable difference...
16:03 ruoso 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
16:03 ruoso even if I add the no-backtrack modifier everywhere, it doesn't make any difference
16:03 ruoso I think it's just the building of the match data structure that may be too expensive
16:03 timotimo both are turned into loops with a simple int-based counter
16:05 Frameless ruoso: tokens don't backtrack
16:05 timotimo ah, i didn't look if it were tokens or ruler os what have you
16:06 timotimo does perl6-debug currenty work? and Grammar::Debugger?
16:06 ruoso the grammar works
16:06 timotimo and why did nobody do the awesomesauce that would be a gtk-based or web-based debugger that can handle multithreaded execution? :3
16:06 ruoso it matches correctly
16:06 Frameless I used Grammar::Tracer a couple of days ago. Worked then
16:06 ruoso it just takes forever doing so
16:08 timotimo Grammar::Debugger would have shown if it does any backtracking, but since you're using "token", it wouldn't backtrack anyway
16:09 ruoso The format of the grammar also isn't structurally prone to backtracking
16:09 ruoso i.e.: there is no possible ambiguity at any moment
16:12 timotimo right
16:12 jkramer joined #perl6
16:12 jkramer Ahoy!
16:12 Frameless \o
16:12 ruoso I just realized...
16:12 ruoso I am running the default from rakudobrew
16:13 ruoso which is probably not from HEAD
16:13 ruoso so I'm probably missing all recent rakudo optimizations
16:13 Frameless Pretty sure it is head
16:13 timotimo those are almost all in core setting subs, operators, and methods
16:13 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?
16:13 timotimo you're unlikely to benefit from them in the performance of your grammar
16:14 psch m: say quietly "foo" eq Str
16:14 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:14 Frameless m: my $foo; my $bar = 42; say quietly so $foo eq $bar;
16:14 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:14 jkramer Woah, nice
16:14 Frameless m: sub infix:<deq> { $^a.defined and $^b.defined and $^a eq $^b }; my $foo; my $bar = 42; say $foo deq $bar;
16:14 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:15 jkramer m: my $foo; my $bar; say quietly so $foo eq $bar;
16:15 camelia rakudo-moar 78ba3d: OUTPUT«True␤»
16:15 jkramer Meh. I need false when both are undefined :(
16:15 Frameless m: sub infix:<deq> { $^a.defined and $^b.defined and $^a eq $^b }; my $foo; my $bar; say $foo deq $bar;
16:15 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:16 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
16:16 camelia rakudo-moar 78ba3d: OUTPUT«True␤»
16:16 psch m: say quietly Str eq Str ne Str
16:16 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:16 psch jkramer: how's that?
16:16 timotimo maybe you want !eqv?
16:16 Frameless m: say quietly "Str" eq "Str" ne Str
16:16 camelia rakudo-moar 78ba3d: OUTPUT«True␤»
16:16 timotimo or maybe !===
16:16 dvinciguerra_ joined #perl6
16:17 jkramer psch: That looks good :)
16:17 Frameless I thought eq stringified...
16:17 Frameless m: say "Str" eq Str
16:17 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␤»
16:17 Frameless m: say Str.Str
16:17 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␤␤»
16:17 Frameless Ah
16:17 timotimo yeah, but Str stringifies to "" after it warns
16:18 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
16:18 camelia rakudo-moar 78ba3d: OUTPUT«False␤»
16:18 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:18 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:…»
16:18 psch +do
16:18 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:18 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…»
16:18 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:18 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>␤»
16:18 jkramer psch: That's alright, can't be empty
16:19 Frameless gfldex: missing closing ]
16:19 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«[True False False]␤»
16:19 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?
16:19 gfldex jkramer: basically, you filter the undefined Strs out with a multi long before you get to the eq
16:20 ruoso in p5 I would just build the hash out of the list of pairs
16:20 Frameless ruoso: a slice maybe?
16:20 Frameless hm
16:20 * psch doesn't understand the question
16:20 * Frameless shrugs
16:21 ruoso given [ { name => foo, value => bar }, {name => baz, value => qux }], generate { foo => var, baz => qux }
16:21 psch oh
16:22 TreyHarr1 joined #perl6
16:23 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] });
16:23 camelia rakudo-moar 78ba3d: OUTPUT«(foo => bar baz => qux)␤»
16:23 Frameless m: my $l = [ { name => "foo", value => "bar" }, {name => "baz", value => "qux" }]; my %h; %h{ $l».<name> } = $l».<value>; say %h
16:23 camelia rakudo-moar 78ba3d: OUTPUT«{baz => qux, foo => bar}␤»
16:23 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
16:24 camelia rakudo-moar 78ba3d: OUTPUT«(foo => baz bar => qux)␤»
16:24 psch hm, no :|
16:24 psch oh, the Z is bogus
16:24 ruoso can a list of pairs be read as a hash?
16:24 Frameless yes
16:24 psch you can assign it to a %-sigiled var and it does the right thing, yeah
16:25 Frameless m: my %h = :42foo, :72bar; dd %h
16:25 camelia rakudo-moar 78ba3d: OUTPUT«Hash %h = {:bar(72), :foo(42)}␤»
16:27 ruoso is there a method to hash-ify?
16:27 ruoso or do I need an intermediate variable?
16:27 psch .hash, .Hash, %()
16:27 psch the latter is a circumfix, not a method
16:31 psch 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 #perl6
16:32 ruoso just did a round of improvements based on the conversations here...
16:35 jdv79 Zoffix: does github support pod6 yet?  i think i saw some emails about it recently.
16:37 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 Frameless 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
16:38 jdv79 progess++
16:39 gfldex ruoso: you could also write { $/<paragraph>.map({.made}).&make; } to maintain the order of execution
16:39 ruoso I actually like the traditional map notation
16:40 ruoso moved all the transformations to the top token, that made it a wee bit faster
16:41 ruoso but it still takes 20 secnods to parse a 2.7M file
16:42 gfldex nobody made the grammar engine fast yet
16:42 Frameless ruoso: and what's your goal time?
16:43 [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
16:43 Frameless Sounds about right.
16:43 ruoso using an dxplicit loop with an explicit state machine to parse it
16:44 * Frameless ques in obligatory FAQ on speed https://docs.perl6.org/language/faq#Is_Perl_6_fast_enough_for_me?
16:44 [Coke] right, six is definitely still slower than five.
16:44 ruoso [Coke]: just grab the Packages file from debian's unstable
16:45 Ven joined #perl6
16:45 * 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:46 cdg joined #perl6
16:46 ruoso http://ftp.us.debian.org/debian/dists/unstable/main/binary-amd64/Packages.gz
16:46 ruoso that file is larger than the one I have now
16:47 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?
16:48 ruoso 72k lines totalling 2.7Mb
16:49 jdv79 is somebody investigeting speeing up the grammars yet?
16:49 jdv79 that would be cool
16:49 ruoso with 4.2k paragraphs
16:50 gfldex jdv79: i believe the grammar engine is written in C
16:50 jdv79 i don't thinkg so
16:50 jdv79 think its just nqp
16:51 gfldex i just checked, it's nqp
16:52 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.
16:53 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:55 jdv79 i haven't looked in a long time but the profiler really doesn't cover nqp?
16:56 ruoso hm, it does...
16:56 jdv79 i'm not sure the grammar suffers from much low hanging fruit
16:57 [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
16:57 jdv79 last i remember TimToady said something about wasted scanning or something
16:57 psch the biggest improvement for any kind of parsing is probably method invocation overhead
16:57 * ruoso following the call graph
16:57 dvinciguerra_ joined #perl6
16:58 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
16:58 psch and doesn't really lend itself to the kind of optimizations that e.g. lizmat++ does regularly
16:59 jdv79 the glr helped alot with a grammar of mine
16:59 jdv79 its still an order of mag or so slower than p5
17:02 Frameless New blog post: "[Part 2] A Date With The Bug Queue or Let Me Help You Help Me Help You": http://perl6.party/post/A-Date-With-The-Bug-Queue-or-Let-Me-Help-You-Help-Me-Help-You--Part-2
17:03 jdv79 that seems like awkward grammar right there
17:03 jdv79 3 helps, 2 yous, and 2 mes too much
17:04 ruoso hmm.. the match code is not being jitted
17:07 ruoso at least that's what I think I'm seeing from the profiler output
17:09 ruoso does the JIT have a recursion limit?
17:10 ruoso when MATCH calls itself, the recursive call is no longer jitted
17:15 ruoso and then the entire time is spent on that non-jitted execution
17:20 TreyHarr1 joined #perl6
17:23 firstdayonthejob joined #perl6
17:23 Frameless *sigh* someone brought their stupid kids to work
17:24 Frameless The noise is really interfering with my slacking off. I may just sue.
17:25 AlexDaniel Frameless: headphones?
17:27 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:28 Frameless m: "????".uninames.say
17:28 camelia rakudo-moar 78ba3d: OUTPUT«(NERD FACE)␤»
17:28 Frameless Heh
17:28 dj_goku joined #perl6
17:28 dj_goku joined #perl6
17:31 huggable joined #perl6
17:32 dvinciguerra_ joined #perl6
17:33 sno joined #perl6
17:36 rgrinberg joined #perl6
17:42 perigrin w37
17:44 lucs Wingo!
17:51 domidumont joined #perl6
17:53 donaldh joined #perl6
17:54 firstdayonthejob joined #perl6
18:04 canopus joined #perl6
18:22 labster joined #perl6
18:23 ChoHag joined #perl6
18:30 zakharyas joined #perl6
18:34 tbrowder Zoffix: excellent bug posts!  need to post on the site somewhere...
18:37 hoelzro Zoffix: excellent post; I especially enjoyed "This isn't the interface for the latest NASA space probe"
18:44 Frameless Thanks.
19:05 itaipu joined #perl6
19:05 zacts joined #perl6
19:10 dainis joined #perl6
19:18 girafe joined #perl6
19:22 labster joined #perl6
19:23 kurahaupo joined #perl6
19:24 kid51 joined #perl6
19:27 domidumont joined #perl6
19:28 mcmillhj joined #perl6
19:31 takadonet left #perl6
19:31 ugexe just tail -f a log file to always look busy
19:32 furelypunctional joined #perl6
19:34 Frameless 80% of my job is designing marketing materials, so tail -f log can look suspicious :)
19:36 dainis joined #perl6
19:41 TreyHarr1 joined #perl6
19:46 skids joined #perl6
19:51 dalek doc: 598a7ab | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
19:51 dalek doc: Glossary: remove items with no description if doced elsewhere
19:51 dalek doc:
19:51 dalek doc: For example, remove stuff that is tied to a type (per discussion on #622)
19:51 dalek doc: review: https://github.com/perl6/doc/commit/598a7ab1d0
19:51 dalek doc: fcddb93 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
19:51 dalek doc: Glossary: remove items even if they have description
19:51 dalek doc:
19:51 dalek doc: Perhaps it made sense to document these things in the glossary back then,
19:51 dalek doc: but now that we have proper documentation for these things (which, by they
19:51 dalek doc: way, is often much more detailed than these descriptions in the glossary), we
19:51 dalek doc: do not have to keep it anymore.
19:51 dalek doc:
19:51 dalek doc: ⚠ Deletionism alert! Feel free to revert this commit partially.
19:51 dalek doc: review: https://github.com/perl6/doc/commit/fcddb93330
19:51 addison joined #perl6
20:00 dj_goku joined #perl6
20:00 dj_goku joined #perl6
20:12 yqt joined #perl6
20:12 kid51 joined #perl6
20:38 TEttinger joined #perl6
20:56 telex joined #perl6
21:00 dalek doc: caaaf24 | Altai-man++ | doc/Language/glossary.pod6:
21:00 dalek doc: Move bots to IRC section
21:00 dalek doc: review: https://github.com/perl6/doc/commit/caaaf242c2
21:02 sena_kun joined #perl6
21:17 TreyHarr1 joined #perl6
21:19 donaldh joined #perl6
21:20 dalek doc: 75a689d | Altai-man++ | doc/Language/glossary.pod6:
21:20 dalek doc: Deletion of Hash definition, which is alraedy greatly described in Class section.
21:20 dalek doc: This commit is a part of https://github.com/perl6/doc/issues/622 resolving process.
21:20 dalek doc: Feel free to revert.
21:20 dalek doc: review: https://github.com/perl6/doc/commit/75a689d39e
21:23 Senji joined #perl6
21:36 TreyHarr1 joined #perl6
22:01 dj_goku joined #perl6
22:01 dj_goku joined #perl6
22:02 TreyHarr1 joined #perl6
22:07 mohae joined #perl6
22:07 girafe joined #perl6
22:14 Sgeo joined #perl6
22:15 mohae joined #perl6
22:19 Yule joined #perl6
22:19 TreyHarr1 joined #perl6
22:21 dalek bisectbot: db49d66 | (Daniel Green)++ | benchable.pl:
22:21 dalek bisectbot: Bring benchable in line with the others
22:21 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/db49d66a1c
22:39 jack_rabbit joined #perl6
22:45 cpage_ joined #perl6
22:49 skids joined #perl6
22:52 TreyHarr1 joined #perl6
23:06 TreyHarr1 joined #perl6
23:31 perlawhirl joined #perl6
23:31 TreyHarr1 joined #perl6
23:38 rgrinberg joined #perl6
23:45 dj_goku joined #perl6
23:45 dj_goku joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo