Camelia, the Perl 6 bug

IRC log for #perl6, 2012-08-19

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:01 bonifatio joined #perl6
00:05 jeffreykegler joined #perl6
00:16 Circlepuller_ joined #perl6
00:40 Nick16 joined #perl6
00:47 tokuhiro_ joined #perl6
00:55 diakopter jeffreykegler: you sound like an implementor :)
00:55 jeffreykegler of Perl 6 you mean?  Or in general.
00:55 diakopter any I guess
00:56 jeffreykegler I've been coding since 1971, and have written a new parser called Marpa, which needs an interface
00:57 jeffreykegler So I am over here to steal, er, I mean borrow, one
00:57 diakopter I read about it a couple years ago, I think
00:59 jeffreykegler It's easy to find out more, the Google search robots, bless their hearts, give me great placement
01:04 diakopter does it detect indirect left/right recursion?
01:04 jeffreykegler Yes
01:04 diakopter (before processing input?)
01:05 jeffreykegler Marpa is linear for all LR-regular grammars
01:05 jeffreykegler Marpa is linear for both left and right recursion
01:05 diakopter ..so I'm reading :)
01:06 jeffreykegler That, by the way, is not my result but is due to a 1991 paper by Joop Leo
01:06 jeffreykegler IMHO a very long neglected breakthrough
01:07 diakopter what kinds of grammars aren't recursive descent parsers good at? (not challenging, just curious)
01:10 jeffreykegler I've lots of opinions about recursive descent and LL, but I'm a guest here
01:10 diakopter please inform; this is a very welcoming channel
01:10 jeffreykegler I have a blog "Ocean of Awareness" where I talk a lot about the history of parsing, and get quite direct about my opinion on various parsing techniques
01:11 diakopter see, I'll kick anyone who's rude to you :D
01:11 diakopter (kidding of course; no one will be rude)
01:11 jeffreykegler Actually the rudeness I was worried about would be on my part
01:12 jeffreykegler I've been lurking long enough to know your record
01:12 jeffreykegler So OK the history of parsing in a few sentences
01:12 jeffreykegler We'll start with UNIX and C -- C was originally written in recursive descent
01:13 diakopter (Perl 6 grammars are all processed recursive descent, except for the operator precedence part, which is special)
01:13 jeffreykegler (Yes, I've looked at the Perl 6 approach)
01:14 jeffreykegler Recursive descent just drills down the left hand side -- it's pretty myopic
01:14 jeffreykegler But it is the way a programmer wishes that parsing should work -- calling subroutines
01:14 jeffreykegler And to its credit it is very, very hackable -- you can add lots of procedural stuff
01:14 diakopter well, I should specify; LTM mode doesn't have to be recursive descent
01:15 jeffreykegler So Ritchie, Thompson and Johnson figured there's gotta be a better way and yacc was born
01:17 jeffreykegler yacc looks at some right context, but it is very, very hard to debug and enhance
01:17 jeffreykegler The summit of yacc programming was IMHO, the invention of Perl
01:18 jeffreykegler Where by clever use of precedence in conflict situations, yacc was made to parse an extremely complex language
01:18 jeffreykegler But yacc/LALR was so hard to use and maintain, even its greatest practitioners eventually got fed up
01:20 jeffreykegler Thompson's go language is LL-parseable, the GNU compilers switch to recursive descent, and as for Perl, well I don't see much yacc discussed on this list
01:22 jeffreykegler So everybody went back to recursive descent -- the state of the art before the Ritchie/Thompson/Johnson portable C compiler
01:24 jeffreykegler Recursive descent is easy to hack and that's its attraction
01:30 diakopter imho, the perspective of P6 is that the grammar user should know how to write a grammar optimized for recursive descent, failing fast, committing early
01:31 jeffreykegler That's how I read it too
01:34 jeffreykegler Folks have resigned themselves to the idea that recursive descent was as it as it was gonna get
01:34 jeffreykegler *as good as it was gonna get
01:35 diakopter now, LTM is implemented variously as NFAs
01:35 jeffreykegler Sorry, LTM?
01:36 diakopter longest token matching. what enables Perl operators to be several characters and still distinguishable
01:37 diakopter all the grammar things are discussed in S05
01:37 mtk joined #perl6
01:37 diakopter (a large paragraph on LTM)
01:37 jeffreykegler I've read it several times, just didn't recognize the acronym
01:40 jeffreykegler If I were defending recursive descent, I would point out that when push came to shove, you could go procedural, and you know that's gonna work
01:40 diakopter MGrammar made a distinction between token rules and parser rules, but combined in the same grammar. Antlr does the same. P6 does the same, but defines the distinction differently
01:42 jeffreykegler But I believe that Earley-based parsing (which Marpa is) can offer the same benefits, while assisting the programmer far more
01:42 jeffreykegler That is, you can still go procedural, but you have to far less often
01:43 benabik joined #perl6
01:45 diakopter you mention that it's slower than p5 regexes
01:45 diakopter at most things?
01:45 jeffreykegler which is slower?
01:45 diakopter marpa
01:46 jeffreykegler To back up, when it comes to regular expressions, properly so called, you ain't gonna beat a regex engine at its own game
01:46 jeffreykegler On the other hand, if you're doing something that is not a regular expression, like matching parentheses ...
01:47 jeffreykegler Marpa wins
01:47 jeffreykegler The caveat being that Marpa is intended for large parses and does a lot of preprocessing, so it's a match in a 10 character string
01:47 jeffreykegler Marpa won't win that race
01:51 jeffreykegler Marpa is a general BNF parser, designed to have acceptable speed over a wide range of applications
01:52 jeffreykegler But, for example, if it is a pure LL grammar, or close to it, I'd think recursive descent has to be faster
01:52 jeffreykegler However, few grammars are pure LL(1)
02:19 cognominal joined #perl6
02:40 OuLouFu joined #perl6
03:15 jeffreykegler joined #perl6
03:15 jeffreykegler left #perl6
03:15 jeffreykegler joined #perl6
03:18 quietfanatic joined #perl6
03:19 quietfanatic testing...
03:19 quietfanatic okay, huh
03:50 Moukeddar joined #perl6
03:54 HarryS joined #perl6
04:06 drbean joined #perl6
04:16 tokuhiro_ joined #perl6
04:18 cognominal joined #perl6
04:31 aloha joined #perl6
05:08 HarryS joined #perl6
05:10 daniel-s joined #perl6
05:34 JimmyZ_ joined #perl6
05:35 JimmyZ_ sorear: hi
05:38 kaare_ joined #perl6
05:42 moritz \o
05:51 JimmyZ_ \o/
06:10 xinming joined #perl6
06:35 att joined #perl6
06:42 screencast joined #perl6
06:43 screencast hey im new
06:43 gongyiliao joined #perl6
06:49 screencast hello
07:11 dalek panda: 5cf9606 | (Geoffrey Broadwell)++ | bootstrap.pl:
07:11 dalek panda: Bootstrap panda from cwd, not '.'
07:11 dalek panda: review: https://github.com/tadzik/panda/commit/5cf9606a74
07:11 dalek panda: b7c8b12 | (Geoffrey Broadwell)++ | TODO:
07:11 dalek panda: Remove completed TODO items
07:11 dalek panda: review: https://github.com/tadzik/panda/commit/b7c8b12ba0
07:23 tarch joined #perl6
07:24 tarch left #perl6
07:30 raiph joined #perl6
07:31 raiph http://www.reddit.com/r/perl/comments/ygplc/pe​rl6_highlights_week_ending_20120818_dedicated/
07:33 masak morning, #perl6
07:33 moritz good UGT antenoon, masak :-)
07:34 masak moritz: I always feel a bit sad when we miss people who come in, say "hey", and then leave after a few minutes because no-one replies.
07:34 masak but on the other hand, if they're that impatient, maybe it'd be too much work to retain them anyway.
07:35 moritz masak: me too. But when I saw it, he was already gone
07:35 masak aye, same.
07:35 * masak has a mental checklist of "indications this new person's first stay is also the last stay"
07:36 masak missing the apostrophe in "I'm" is on that list.
07:36 moritz wanting to know about Perl 5 but joining #perl6 nonetheless is high on mine
07:39 masak another one: among the first 10 utterances, is one ending with "lol" without a preceding comma.
07:40 masak also, if the nick is obviously not thought through. 'screencast', as nicks go, is quite a good one, though.
07:42 shachaf I''m putting in extra apostrophes from now on just in case.
07:42 masak :D
07:43 masak shachaf: and just to be safe, you should ask questions about Perl 7.
07:43 masak and begin your utterances with "lol".
07:43 huf make that backwards-lol
07:44 masak so obvious in retrospect. :)
07:44 shachaf Maybe "yby"
07:44 shachaf Mayby
07:44 p6rd joined #perl6
07:44 masak p6rd! \o/
07:45 moritz p6rd: next
07:45 p6rd parrot 2012-08-21, rakudo 2012-08-23, niecza 2012-08-27
07:45 masak rn: say "lol".trans("a..z" => "n..za..m")
07:45 p6eval rakudo 2bbe52, niecza v19-26-g025a6e6: OUTPUT«yby␤»
07:51 dalek nqp: de089eb | rurban++ | tools/build/Makefile.in:
07:51 dalek nqp: makefile whitespace cleanup
07:51 dalek nqp:
07:51 dalek nqp: tabs missing
07:51 dalek nqp: review: https://github.com/perl6/nqp/commit/de089eb576
08:02 popl joined #perl6
08:06 dalek rakudo/nom: 763b85a | moritz++ | docs/deprecations:
08:06 dalek rakudo/nom: deprecated LAZY
08:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/763b85a00d
08:12 masak r: say DateTime.ymd
08:12 p6eval rakudo 763b85: OUTPUT«No such method 'ymd' for invocant of type 'DateTime'␤  in block  at /tmp/V0bkCBEMIR:1␤␤»
08:12 masak r: say DateTime.now.ymd
08:12 p6eval rakudo 763b85: OUTPUT«No such method 'ymd' for invocant of type 'DateTime'␤  in block  at /tmp/vyfgKlsSy3:1␤␤»
08:13 leont joined #perl6
08:18 Psyche^ joined #perl6
08:20 moritz masak: should have {Date,DateTime}.ymd and DateTime.hms?
08:23 masak moritz: sounds good. wot's the spec say?
08:23 moritz masak: nada, afaict
08:23 moritz join #p6p5 on irc.perl.org
08:33 masak moritz: are you currently setting up ilogger2 for #p6p5?
08:33 fgomez joined #perl6
08:33 moritz masak: not yet, but I can do it
08:42 brrt joined #perl6
09:14 crab2313 joined #perl6
09:16 crab2313 r: use URI; my $u; URI.new('http://foo.bar.com');
09:16 p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Could not find URI in any of: /home/p6eval/.perl6/lib, /home/p6eval/nom-inst/lib/parrot/​4.4.0-devel/languages/perl6/lib␤»
09:34 fgomez joined #perl6
09:35 fgomez joined #perl6
09:56 MayDaniel joined #perl6
10:35 spider-mario joined #perl6
10:49 erkan joined #perl6
11:02 brrt joined #perl6
11:13 thelazydeveloper joined #perl6
11:24 drbean joined #perl6
11:25 whiteknight joined #perl6
11:44 GlitchMr joined #perl6
11:45 tokuhiro_ joined #perl6
11:59 isBEKaml joined #perl6
12:01 isBEKaml left #perl6
12:29 JimmyZ joined #perl6
12:39 fridim_ joined #perl6
12:53 Pleiades` joined #perl6
12:54 benabik joined #perl6
14:09 kaare_ joined #perl6
14:09 renormalist joined #perl6
14:09 [particle] joined #perl6
14:09 hanekomu joined #perl6
14:09 awwaiid joined #perl6
14:09 obra joined #perl6
14:09 _sri joined #perl6
14:09 pnu_ joined #perl6
14:09 shachaf joined #perl6
14:15 snearch joined #perl6
14:24 birdwindupbird joined #perl6
14:28 brrt joined #perl6
14:32 skids joined #perl6
14:39 UncleFester6 joined #perl6
14:40 isBEKaml joined #perl6
14:44 UncleFester6 phenny tell tadzik that I fixed LWP::Simple so that panda installs if for me.  A small change involving removal of constant modifiers in two declarations.
14:44 phenny UncleFester6: 18 Aug 21:18Z <tadzik> tell UncleFester6 your LWP::Simple doesn't seem to build for me: "Serialization Error: Unimplemented object type 'ByteBuffer' passed to write_ref"
14:45 UncleFester6 phenny: tell tadzik that I fixed LWP::Simple so that panda installs if for me.  A small change involving removal of constant modifiers in two declarations.
14:45 phenny UncleFester6: I'll pass that on when tadzik is around.
14:47 isBEKaml rn: "Hello, #perl6".say #been sometime, heh...
14:47 p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«Hello, #perl6␤»
14:48 isBEKaml p6rd: release
14:48 isBEKaml p6rd: help
14:48 p6rd Perl 6 release dates. Usage: p6rd: [ 'next' | 'next month' | YYYY-MM | YYYY-MM-DD ]
14:48 isBEKaml p6rd: next
14:48 p6rd parrot 2012-08-21, rakudo 2012-08-23, niecza 2012-08-27
14:54 sergot joined #perl6
14:54 sergot hi ! o/
14:54 isBEKaml \o
14:56 isBEKaml [OT and a slow day] what's a good irc client for windows? I'm leaning towards xchat since I've used it on linux but it's not quite free as it seems
14:59 tadzik hello from Frankfurt
14:59 phenny tadzik: 14:45Z <UncleFester6> tell tadzik that I fixed LWP::Simple so that panda installs if for me.  A small change involving removal of constant modifiers in two declarations.
14:59 masak good morning, #perl6!
14:59 tadzik masak: first!!111
14:59 masak tadzik: fraction-of-a-second first! :)
15:00 Pleiades` isBEKaml, you can find some free builds of xchat
15:00 isBEKaml yo, masak, tadzik.. how's things on EU'eve? :)
15:00 Pleiades` kvirc is nice too
15:00 masak isBEKaml: pretty awesome.
15:00 isBEKaml Pleiades`, I haven't heard of kvirc but I do know that I don't like IceChat. :)
15:01 * masak dives into slides work
15:01 Pleiades` it's cross platform too
15:01 * isBEKaml pictures masak frenetically googling pics for his slides.. ;)
15:02 isBEKaml Pleiades`, nice - I'll give a whirl
15:02 masak isBEKaml: more like fixing up the generator code so that it supports the content I want to show... :)
15:03 isBEKaml masak: sure, sure - I want to see your slides too. (post YAPC, ofcourse)
15:03 masak isBEKaml: :)
15:03 masak isBEKaml: this time around, I'm generating slides with a 39-line Perl 6 script.
15:04 isBEKaml Pleiades`: Finally a client that's actually in active development! Thanks!
15:04 masak it's fast, and it generates squeaky-clean HTML with jQuery (for advancing slides), custom free fonts that I downloaded, the Font Awesome icons, and inlined SVG.
15:05 isBEKaml masak: oooh, awe-fricking-some.. github, github!
15:06 masak aye. soon enough.
15:06 masak this one will actually be usable by non-masak people, which I rather like.
15:06 masak that's also a reason not to cheat when building the slides generator.
15:10 sorear hello from Frankfurt, tadzik and masak
15:10 phenny sorear: 05:40Z <JimmyZ_> tell sorear speaking of niecza-js, you may be interested in https://github.com/kripken/emscripten/wiki
15:11 isBEKaml joined #perl6
15:13 isBEKaml masak: if you don't cheat, that's good enough for me. :P
15:16 sorear phenny: tell JimmyZ Seems problematic insofar as mono 2.x lacks an interpreter and is extremely architecture-dependent in AOT mode (might even be ARM only)
15:16 phenny sorear: I'll pass that on when JimmyZ is around.
15:21 masak isBEKaml: I would like to be able to convert the HTML to PDF for uploading. I'm not sure I'll manage to do that.
15:22 brrt left #perl6
15:22 isBEKaml_ joined #perl6
15:24 isBEKaml_ masak: why not upload as HTML?
15:25 isBEKaml_ (sorry, for my on-off thing, wifi's going crazy here)
15:27 masak in my experience HTML is less durable than PDF. it also varies between browsers.
15:30 arnsholt masak: You could add an export to LaTeX option to make PDFs O:)
15:31 masak ;)
15:31 masak arnsholt: most of it's SVG, though.
15:33 jnthn o/
15:36 thou joined #perl6
15:36 arnsholt I'm sure you can render SVG to TikZ =D
15:38 sorear o/ jnthn :D
15:43 pmichaud good afternoon, #perl6
15:43 masak jnthn! \o/
15:44 masak pmichaud! \o/
15:44 pmichaud oh, jnthn++ and masak++ -- I have t-shirts for you.
15:44 japhb masak, in my experience, clean HTML on any modern browser aside from IE is less variable than PDF is between PDF readers.  :-/
15:45 masak oh!
15:45 sorear no t-shirts for me?
15:45 masak pmichaud: yay!
15:45 isBEKaml joined #perl6
15:46 pmichaud sorear: you didn't order one :)
15:46 pmichaud sorear: what size?  I might have an extra that would fit, though
15:46 Juerd japhb: Only if you limit yourself to the commonly implemented part of the spec. And if you look at it that way, PDF is better.
15:46 pmichaud well, I have L and XL
15:47 japhb Juerd, do you know any PDF writers that are good about generating cross-reader identically-interpreted PDF files?
15:47 japhb (Because it's not too hard to write cross-browser HTML by hand ...)
15:48 sorear pmichaud: I misunderstood, cleared up with masak, I don't need/want one
15:48 japhb So ... is there going to be a reveal at some point about what went down at the Sekrit Meeting in Perl?
15:48 sorear yes.
15:48 masak japhb: what do you want to know?
15:49 sorear I think someone else volunteered to do the writeup
15:49 pmichaud japhb: I expect many of us will be blogging about the event.  I plan to write a manifesto of sorts based on the weekend's events.
15:49 sorear but it's not secret now
15:49 japhb masak, Given that from the outside all I've heard is "it's about the future of Perl 5 and 6 together", I'd like to know quite a lot.  :-)
15:50 masak japhb: yeah. I can understand that.
15:50 isBEKaml there was a sekrit meeting? er, p6 u p5? :)
15:50 masak japhb: I arrived late, so I was in the same position a day and a half ago.
15:50 sorear I wonder how much I should write about, given that other people will be writing too.
15:50 japhb masak, I bet!
15:51 masak sorear: err on the side of repetition, I'd say.
15:51 japhb sorear, IMHO more viewpoints is better.  Outsiders can take the closure of all the remembered sets
15:51 pmichaud my short summary would be along the lines of "we got some p5 and p6 folks together and had some very positive discussions about the future of Perl, and some concrete things we can be doing now to increase the integration of the two languages."
15:51 isBEKaml masak: well, since you are using jquery in your HTML, it shouldn't pose much problems with browsers (it -> your slides)
15:51 pmichaud more importantly, I think many people came in as skeptics of p5+p6 together and are leaving as optimists
15:52 masak isBEKaml: the jQuery is only for advancing the slides.
15:52 masak pmichaud: I'm one of those people.
15:52 isBEKaml masak: CSS is the troubling part? again, I don't see much problems there unless people are using really ancient browsers.
15:52 japhb pmichaud, That is great to hear
15:52 pmichaud I think I'll tweet that summary, in fact.
15:53 masak pmichaud: I was kinda skeptical about the whole point of the meeting. something like, "haven't we already talked about p5<->p6 in various ways before? isn't that enough?"
15:53 masak but no, there were new things to be said.
15:53 sorear also, it was an excuse for me to actuallly talk to perl5 people.
15:53 isBEKaml r: (1..5)>>.say #testing
15:53 p6eval rakudo 763b85: OUTPUT«5␤3␤1␤4␤2␤»
15:53 masak and that particular group of people seemed to produce new kinds of ideas, too.
15:53 uniejo joined #perl6
15:53 japhb Ah, this is all very good to hear.
15:54 masak isBEKaml: in Rakudo, >>. invokes .pick(*)
15:54 pmichaud I think I removed that.
15:54 pmichaud .pick(*) is too slow, so I changed the algorithm to something much more efficient.
15:54 isBEKaml masak: Well, I was more angling for unicode issues with my client. :)
15:54 japhb pmichaud, I saw that commit -- you made it run in reverse, didn't you?
15:55 pmichaud I'm about to refactor >>.  yet again, because nqp now has a nqp::while where we can avoid creating the exception handler.
15:55 pmichaud so we'll end up with much faster loops.
15:55 pmichaud japhb: it currently runs in reverse by odds and evens
15:56 masak ooh
15:56 pmichaud so, you can't rely on it being "in order", but it's still fairly fast.  Also, by doing the last element first we end up presizing the return list properly at the beginning, instead of growing it repeatedly.
15:56 masak r: (1..6)>>.say
15:56 pmichaud I have more optimizations to do with the hypers and other metas
15:56 p6eval rakudo 763b85: OUTPUT«6␤4␤2␤5␤3␤1␤»
15:57 masak r: (0..6)>>.say
15:57 p6eval rakudo 763b85: OUTPUT«6␤4␤2␤0␤5␤3␤1␤»
15:57 pmichaud mst++ had some suggestions last night as well regarding randomization of hyper results, which I will likely incorporate as well
15:58 japhb pmichaud, (re >>.) Ah, now I get it, very nice.
15:59 japhb pmichaud, What further optimizations are there to be had, OOC?
15:59 isBEKaml left #perl6
15:59 pmichaud ultimately, I think that @list>>.foo has to be faster than   @list.map( *.foo )
15:59 pmichaud it certainly must not be slower.
16:00 sorear don't want this lost: looking at the IO::Socket::INET code with an eye to niecza porting, what we currently are doing for utf8 decoding is going to misbehave if there is a packet boundry inside a utf8 byte sequence
16:00 isBEKaml joined #perl6
16:00 masak isBEKaml: I don't understand your quit message. that's after reading it twice.
16:00 sorear pmichaud: contrariwise, >>.foo has to do significantly more work because it is a deep map
16:00 japhb raiph++ # #perl6 highlights
16:01 pmichaud sorear: I mean in the straightforward case of a flat list of elements
16:01 isBEKaml masak: I didn't set any quit message (what was it? ) :O
16:01 pmichaud yes, if we have nested structures, it'll be slower
16:01 sorear isBEKaml: part message.
16:01 pmichaud and I'm wondering if deep map really wants to be something other than >>.
16:01 isBEKaml heh..
16:02 pmichaud I really want a hyper map that can be parallelized without deep mapping
16:02 sorear .oO( hyper map { ... }, ...
16:02 pmichaud because that's a very common use case that deserves optimization and huffmanization
16:02 masak isBEKaml: "Once you know what it is you want to be true, instinct is a very useful device for enabling you to know that it is"
16:02 sorear )
16:03 pmichaud yes, there's "hyper map", but that's not really huffman the way  .>>  is
16:03 isBEKaml masak: heh, I don't understand it either. Must have come in along with this new client. :)
16:03 sorear .oO( pmichaud and masak speak in my thoughts )
16:03 isBEKaml masak: thanks, I have now removed that stupid message.
16:04 flussence joined #perl6
16:04 isBEKaml rn: (1..5)>>.say
16:04 masak isBEKaml: heh, I didn't find it stupid. I found it intriguing, a little confusing, and probably wrong.
16:04 p6eval niecza v19-26-g025a6e6: OUTPUT«1␤2␤3␤4␤5␤»
16:04 p6eval ..rakudo 763b85: OUTPUT«5␤3␤1␤4␤2␤»
16:05 isBEKaml masak: I kind of associate quixotic stuff to stupidity. :)
16:05 isBEKaml that felt like a roundabout way of saying you've got to work!
16:06 isBEKaml o.O(do I hear laughter?)
16:08 masak ;)
16:08 pmichaud japhb: (other optimizations)   most of the metaops are currently doing things the slow way, so changes similar to those I made to unary-hyper need to be ported to the other metaops
16:10 japhb Ah, I get.
16:10 japhb er, I get it.
16:11 pmichaud https://twitter.com/pmichau​d/status/237219997062152192
16:11 pmichaud https://twitter.com/pmichau​d/status/237219819139780608
16:11 GlitchMr Just wondering, does Perl 6 regexpes have assertion "at end or before last line break" just like \Z in Perl 5?
16:11 pmichaud (urls out of order because apparently my copy-paste method is based on >>.  :-/ )
16:12 masak pmichaud++
16:12 * masak retweeted
16:12 pmichaud GlitchMr: $$    # at end of string
16:12 pmichaud GlitchMr: ^^   # at beginning of string
16:12 masak pmichaud: end of _line_, surely?
16:12 pmichaud oh, wait.
16:12 pmichaud right
16:12 pmichaud ^ and $   are eos,  $$ and ^^ are end of line
16:12 masak oh thank Huffman :D
16:13 japhb pmichaud++ # tweets
16:13 pmichaud and apparently something happened in my copy/paste with the word "things"  that I didn't catch on edit  :-/
16:13 GlitchMr I would like to create P5 regexp to P6 thingy, but I wonder how to convert $ (without /m) or \Z
16:15 GlitchMr eval print "a\n" =~ /a$/
16:15 buubot_backup GlitchMr: 11
16:15 GlitchMr perl6: print "a\n" ~~ /a$/
16:15 p6eval rakudo 763b85, niecza v19-26-g025a6e6:  ( no output )
16:15 benabik p6: print ("a\n" ~~ /a$/)
16:15 p6eval rakudo 763b85, niecza v19-26-g025a6e6:  ( no output )
16:16 benabik huh
16:16 * benabik always checks precedence, just in case.
16:16 benabik p6: say "a\n" ~~ /a$/
16:16 p6eval niecza v19-26-g025a6e6: OUTPUT«Match()␤»
16:16 p6eval ..rakudo 763b85: OUTPUT«#<failed match>␤»
16:16 GlitchMr Nothing
16:17 benabik Ah, there we go.  Expected some output, even on failure.  But I guess it returns an undefined Match, which stringifies to ''
16:17 benabik p6: say "a" ~~ /a$/
16:17 p6eval rakudo 763b85: OUTPUT«「a」␤␤»
16:17 p6eval ..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
16:17 pmichaud newline at end is now    \n$
16:17 pmichaud sorry
16:17 pmichaud \n?$
16:17 benabik True enough.
16:17 GlitchMr ok, I guess I will use this
16:18 pmichaud if you need it as a zero-width match, then  <?before \n?$ >
16:18 GlitchMr :)
16:18 masak jnthn, pmichaud: is either of you planning to preconf? if so, are you thinking about leaving l'hotel soon?
16:18 pmichaud masak: I hadn't decided on preconf
16:18 benabik p6: say "a\n" ~~ /a$$/
16:18 p6eval rakudo 763b85: OUTPUT«「a」␤␤»
16:18 p6eval ..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
16:19 masak pmichaud: neither have I, really.
16:19 benabik $$ matches end of line.  $ matches end of string.
16:19 pmichaud if you/jnthn/sorear wish to go, I may tag along for a while, but I think I'm also happy to stay in room a while
16:19 masak pmichaud: sounds like my take on it.
16:19 benabik GlitchMr: Try $$ instead of $
16:19 GlitchMr benabik: $$ is end of line
16:19 masak pmichaud: lunch was fairly late, so the food urgency is not high.
16:19 GlitchMr I think I will use <?before \n?$ >
16:20 benabik GlitchMr: That's not what you're looking for?
16:20 masak rn: say "foo\n" ~~ /foo $/
16:20 p6eval niecza v19-26-g025a6e6: OUTPUT«Match()␤»
16:20 p6eval ..rakudo 763b85: OUTPUT«#<failed match>␤»
16:20 masak rn: say so "foo\n" ~~ /foo $/
16:20 p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«False␤»
16:20 GlitchMr I want to make P5 regexp to P6 regexp converter
16:20 masak rn: say so "foo\n" ~~ /foo \n? $/
16:20 p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«True␤»
16:21 sorear 「」?
16:21 masak sorear: I'm as surprised as you are.
16:21 masak clearly my <> patch was improved upon.
16:22 * masak git blames :)
16:22 pmichaud what's the surprise with 「」?
16:22 pmichaud TimToady++ added that.
16:22 sorear I failed to notice.
16:22 pmichaud yes, he revised masak++'s contribution
16:23 benabik_ joined #perl6
16:24 masak sorear: https://github.com/rakudo/rakudo/commit/​94aa2b79d6d68022634b5867e99ab65f05bdd527
16:24 masak TimToady++ added it to the spec, moritz++ added it to Rakudo.
16:25 benabik rn: say "a" ~~ /a$$/
16:25 p6eval rakudo 763b85: OUTPUT«「a」␤␤»
16:25 p6eval ..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
16:25 sorear n: "\xC2".encode('ISO-8859-1').decode('UTF-8').say
16:25 p6eval niecza v19-26-g025a6e6: OUTPUT«�␤»
16:25 * benabik is confused why $$ isn't p5's $.
16:25 masak that commit was later further improved to not use the Unicode characters directly but to escape them, because using them directly in CORE caused a 2x slowdown.
16:25 masak benabik: p5's $ is different things depending on the flags of the regex.
16:26 GlitchMr I'm not sure, but I think that $ is because lines aren't chomped by default.
16:26 pmichaud Also, https://github.com/perl6/specs/commit/c​b82d5aa72728cd1bc390dbb1c20b624c01c03b7
16:27 pmichaud benabik: $$ is p5's $ with the /m flag set
16:27 sorear n: "\xC2".encode('ISO-8859-1'​).decode('UTF-8').ord.say
16:27 p6eval niecza v19-26-g025a6e6: OUTPUT«65533␤»
16:29 jnthn masak, pmichaud: Food urgency isn't high for me either, though I'll probably want to eat a little something else at some point this evening.
16:29 pmichaud I think the pre-yapc meeting is at the same place we did lunch...?
16:29 jnthn Oh?
16:29 masak jnthn: yeah, sejm.
16:29 masak it's at the same place, yes.
16:29 jnthn eek
16:29 * jnthn didn't realize.
16:29 masak sorear++ confirms it.
16:30 pmichaud I don't mind that at all, but (1) we know where it is and (2) we can probably wander over there whenever we want and still find #yapceu folks hanging out
16:30 masak well, at least we know what they offer... :D
16:30 * masak liked his burger, fwiw
16:30 * pmichaud liked his pizza
16:31 jnthn Oh, I enjoyed it too :)
16:31 jnthn Just can be fun to visit different places ;-)
16:31 * sorear also liked pmichaud's pizza
16:31 jnthn heh :)
16:31 jnthn Well, they *do* have dunkel beer also \o/
16:31 masak \o/
16:31 pmichaud and the place is apparently open today until 01h00
16:32 masak that's not possible.
16:32 jnthn OK, then there's no hurry
16:32 jnthn masak: :P
16:32 pmichaud masak: it's possible for sufficiently fuzzy values of "today"
16:33 masak pmichaud: yes, sorry, I'm just being difficult and spectrum-y, really :P
16:33 japhb masak, If you go far enough back, I suspect "today" would be defined as "the period of time after you wake up and before you go to sleep"
16:34 masak japhb: that's why we don't go far enough back, duh :P
16:34 japhb *chuckle*
16:34 sorear well according to the yapcs web site the pre-meeting is only 180m.
16:34 masak that's almost 200 metres.
16:34 masak :P
16:35 masak sorear: I don't think it's that well-defined in practice.
16:35 sorear japhb: saying in my family: It ain't tommorow till you've slept.
16:35 japhb :-)
16:35 geekosaur is that period of time thing also valid for those of us who are prone to slip into a 31-hour circadian schedule if not careful?
16:35 pmichaud I suspect the premeeting also isn't really starting at 18:30, though :)  yapc pre-meetings tend to be imprecise affairs :)
16:35 masak sorear: but I could imagine getting hungry within an hour and a half.
16:36 sorear Yeah.  No way I'd be getting food immediately.
16:38 pmichaud jnthn, masak:  can I drop off shirts now?
16:39 pmichaud or I can wait until we head off to dinner, I suspect
16:39 GlitchMr perl6: ("aaab" ~~ /a ** 1 .. * /).perl.say
16:40 p6eval niecza v19-26-g025a6e6: OUTPUT«[31m===[0mSORRY![31m===[0m��Spaces not allowed in bare range at /tmp/Y6ZyvM_19_ line 1:�------> [32m("aaab" ~~ /a ** 1 ..[33m�[31m * /).perl.say[0m��Parse failed��»
16:40 p6eval ..rakudo 763b85: OUTPUT«Match.new(orig => "aaab", from => 0, to => 4, ast => Any, list => ().list, hash => EnumMap.new())␤»
16:42 masak pmichaud: we can do it in connection with le dinner.
16:42 jnthn pmichaud: at dinner, or sooner...whatever is most convenient for you :)
16:42 pmichaud le dinner is fine; I'll stop by each of your rooms on my way down
16:43 * masak .oO( which is why we put pmichaud on the top floor ) :P
16:45 masak by the way. I'm very intrigued by the fact that TimToady is now working actively on STD_P5.pm6
16:46 sorear YES.
16:46 GlitchMr http://perlcabal.org/syn/S05.html#line_2394
16:47 GlitchMr For me + doesn't seem to work
16:47 GlitchMr perl6: / [a]*+ /
16:47 p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " /"␤»
16:47 p6eval ..niecza v19-26-g025a6e6:  ( no output )
16:47 GlitchMr std: / [a]*+ /
16:47 p6eval std 235f71b: OUTPUT«Potential difficulties:â�¤  [a] appears to be an old-school character class; please use <[a]> if youâ�¤    mean a character class, or quote it like 'a' to matchâ�¤    string as a unit at /tmp/TH6W7lJAnD line 1:â�¤------> [32m/ [a][33mâ��[31m*+ /[0mâ�¤ok 00:00 42mâ�¤Â»â€¦
16:47 masak GlitchMr: Niecza can do that. it's NYI in Rakudo.
16:47 GlitchMr oh, ok
16:47 GlitchMr : should work identically?
16:47 masak GlitchMr: also, there's no need to group single characters like that.
16:48 sorear the old-school character class check, OTOH, is NYI in both.
16:48 masak GlitchMr: : is the actual form.
16:48 masak GlitchMr: + is mostly for p5 compat, IIUC.
17:00 Juerd japhb: Not specifically
17:00 Juerd japhb: I don't know what Inkscape uses, but it's pretty good.
17:01 GlitchMr Just wondering, is \d ASCII digit or Unicode digit?
17:02 masak GlitchMr: Unicode digit.
17:02 GlitchMr ok :)
17:02 GlitchMr So, I guess I have so use <[0..9]> for safety
17:03 masak rn: say so "೨" ~~ /\d/
17:03 p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«True␤»
17:03 masak rn: say so "፬" ~~ /\d/
17:03 p6eval rakudo 763b85: OUTPUT«False␤»
17:03 p6eval ..niecza v19-26-g025a6e6: OUTPUT«True␤»
17:03 masak (rakudobug)
17:03 masak rn: say so "❾" ~~ /\d/
17:03 p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«False␤»
17:04 masak Rakudo *and* Nieczabug.
17:04 sorear .u ❾
17:04 phenny U+277E DINGBAT NEGATIVE CIRCLED DIGIT NINE (❾)
17:04 sorear hmm
17:05 sorear not sure about that one?
17:05 * masak sometimes wishes the Unicode consortium were a bit less... dingbat
17:06 masak sorear: surely it's a digit, though?
17:06 masak that's even in the name.
17:06 jnthn it's the props that matter
17:06 sorear general category = Other_Number
17:06 GlitchMr I'm not really happy with non-ASCII digits being in \d, but well... technically they are digits
17:07 sorear I think niecza's \d is looking only for Digit (Nd)
17:07 GlitchMr Now only if I could do this
17:07 GlitchMr perl6: say +'೨'
17:07 p6eval rakudo 763b85: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏೨' (indicated by ⏏)␤  in method gist at src/gen/CORE.setting:9711␤  in sub say at src/gen/CORE.setting:7086␤  in block  at /tmp/xLteiadOPl:1␤␤»
17:07 p6eval ..niecza v19-26-g025a6e6: OUTPUT«Use of uninitialized value in numeric context␤  at /home/p6eval/niecza/lib/CORE.setting line 1289 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 296 (Any.Numeric @ 8) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.s…
17:07 sorear though gc="No" is a somwhat musing propery value.
17:07 * masak .oO( No property for you! )
17:07 sorear n: ೨
17:07 p6eval niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: Digit <೨> too large for radix 10␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) ␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 147 (from_base @ 25) ␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 153 (Nie…
17:08 sorear I thought that would break :>
17:08 masak ೨ isn't so large... :P
17:08 sorear it's probably doing something like ord($_) - 48
17:08 * masak submits nieczaissue
17:08 sorear :D
17:10 sorear .u ೨
17:10 phenny U+0CE8 KANNADA DIGIT TWO (೨)
17:12 sorear .u CA0
17:12 phenny sorear: Sorry, no results for 'CA0'.
17:12 sorear .u U+0CA0
17:12 phenny sorear: Sorry, no results
17:13 masak ಠ_ಠ
17:14 kaare_ joined #perl6
17:15 flussence .u 0CA0
17:15 phenny U+0CA0 KANNADA LETTER TTHA (ಠ)
17:16 GlitchMr .u A
17:16 phenny U+0041 LATIN CAPITAL LETTER A (A)
17:16 GlitchMr .u 0A
17:16 phenny GlitchMr: Sorry, no results for '0A'.
17:16 GlitchMr .u 000A
17:16 phenny U+000A (No name found)
17:24 benabik joined #perl6
17:25 masak .u 001B
17:25 phenny U+001B (No name found)
17:26 benabik_ joined #perl6
17:26 GlitchMr I've done a check. Almost anything except for \C seems to be realistic to be ported.
17:26 GlitchMr \C being octet
17:26 sorear unicode control characters don't have Names for some stupid reasons
17:27 sorear they do have Unicode_1_Names, which the docs for \N (our \c) in UTS18 recommend using
17:27 sorear even when other parts of the spec say Unicode_1_Name is obsolete
17:28 flussence Do P6 regexes work on Bufs? \C wouldn't even matter in that case.
17:29 GlitchMr https://www.dropbox.com/s/1463kw​7p6fbh3kp/perl5%20to%20perl6.ods
17:29 GlitchMr Besides, \C sounds so dangerous that I doubt many have used it
17:32 GlitchMr I guess it would be fine if Perl 6 implementation wouldn't support \C with :P5 modifier?
17:32 sorear \C is specced for perl6
17:32 sorear [:bytes .]
17:33 GlitchMr oh, ok
17:33 GlitchMr Thanks :)
17:33 sorear nobody implements it and I doubt anyone will soon
17:33 GlitchMr I guess that :bytes would return Buf
17:34 GlitchMr (actually, I think that :bytes shouldn't work on anything that isn't Buf)
17:34 masak pmichaud: ping
17:34 GlitchMr Str.bytes already went
17:35 masak pmichaud: 'use C;\nC.new' works in a file but not on the Rakudo REPL.
17:35 jnthn masak: that one's in RT. I tried to hunt it down without luck. :(
17:36 jnthn masak: Seems type objects get lost somewhere in the collected context.
17:36 jnthn masak: Whereas subs dont.
17:36 pmichaud TimToady: I have your t-shirt available also
17:36 jnthn Or somehting like that.
17:36 pmichaud masak: pong
17:36 jnthn I spent an hour on it a while ago...
17:36 masak jnthn: oh, ok.
17:36 jnthn I expected to find a defined check or something somewhere but...no dice
17:36 masak jnthn: I got a report for it on URI.pm
17:37 masak jnthn: do you happen to have the RT # handy?
17:37 jnthn 'fraid not here
17:37 * jnthn has it open on a browser window on his dev machine at home :P
17:37 jnthn s/window/tab/
17:38 * masak greps for REPL
17:39 masak https://rt.perl.org/rt3/Tic​ket/Display.html?id=114308
17:45 pmichaud jnthn, masak, sorear:  shall we head over to the pre-meeting soon?
17:47 masak pmichaud: yes, let's.
17:48 jnthn aye
17:48 sorear let's.
17:48 * jnthn is at a good stopping pont
17:48 jnthn er, point
17:48 * masak .oO( the bridge of no return )
17:48 jnthn .oO( like a bridge over troubled typing... )
17:48 pmichaud ponts are not necessarily good places to stop.  be on one side or the other :)
17:49 * masak .oO( I'm on the fence about which side of the pont I should be on... )
17:52 masak &
17:55 Helios joined #perl6
18:02 MayDaniel joined #perl6
18:02 cognominal joined #perl6
18:12 Helios joined #perl6
18:32 erkan joined #perl6
18:32 erkan joined #perl6
18:37 Circlepuller joined #perl6
18:45 fridim_ joined #perl6
18:49 fridim_ joined #perl6
18:52 mathw joined #perl6
18:52 mathw Good evening!
18:59 japhb o/ mathw
19:01 japhb phenny, ask tadzik Why does panda's boostrap.pl want to add the DESTDIR into PERL6LIB while bootstrapping?  Wouldn't you want to ignore it as an available lib until the bootstrap completed?
19:01 phenny japhb: I'll pass that on when tadzik is around.
19:03 japhb phenny, ask tadzik For that matter, it seems like PERL6LIB should be entirely disabled during the bootstrapping process; you want only the contents of panda's tree to be used to fill the DESTDIR or ~/.perl6, right?
19:03 phenny japhb: I'll pass that on when tadzik is around.
19:04 japhb phenny, tell tadzik Sorry, I meant the *original* PERL6LIB should be entirely disabled during bootstrapping ...
19:04 phenny japhb: I'll pass that on when tadzik is around.
19:10 * moritz home
19:19 birdwindupbird joined #perl6
19:23 cognominal joined #perl6
19:24 uniejo joined #perl6
19:26 uniejo joined #perl6
19:37 cognominal joined #perl6
19:41 Helios joined #perl6
19:51 nodmonkey joined #perl6
20:03 raiph joined #perl6
20:05 raiph hi
20:06 moritz hi raiph
20:07 raiph what's #p6p5?
20:09 moritz raiph: see http://perlgeek.de/blog-en/pe​rl-6/2012-quo-vadis-perl.html
20:27 japhb Now that's what I call an answer -- "A wrote a whole blog entry just to answer that question, before you even asked it."
20:28 colomon joined #perl6
20:47 vlixes joined #perl6
20:49 benabik joined #perl6
20:55 Circlepuller_ joined #perl6
20:57 vmspb joined #perl6
21:15 spider-mario joined #perl6
21:26 UncleFester6 left #perl6
21:29 raiph moritz: thanks.
21:31 raiph phenny, tell GlitchMr http://www.equinoxbase.com/p5p6regconv/ is a p5 to p6 regex converter (last updated 2009?)
21:31 phenny raiph: I'll pass that on when GlitchMr is around.
21:33 masak hi, #perl6
21:34 jnthn lolitsmasak!
21:34 pmichaud good evening, #perl6
21:34 jnthn pmichaud: oh, you weren't far behind us in leaving :)
21:34 pmichaud not too far, no.
21:34 masak jnthn: they must've tailed us back to l'hotel ;)
21:35 pmichaud I had a few more conversational-ish things to wrap up before leaving, but it felt like you both had been gone a fair bit before we left
21:36 jnthn yeah, I wanted to diddle a few more things for tomorrow's talk before sleeping, and wanted to avoid a late night ;)
21:36 pmichaud at any rate, safely back at l'hôtel for the night :)
21:36 jnthn :)
21:37 pmichaud moritz++  # excellent writeup of #p6p5
21:39 sorear good odding #perl6
21:39 masak pmichaud++ # ô
21:39 masak sorear++ # odding
21:49 Circlepuller_ joined #perl6
22:01 UncleFester6 joined #perl6
22:03 dalek niecza: 51face1 | sorear++ | lib/CodeGen.cs:
22:03 dalek niecza: Auto-fetch in (unbox) to reduce boilerplace a bit
22:03 dalek niecza: review: https://github.com/sorear/niecza/commit/51face190e
22:03 dalek niecza: ec0eab3 | sorear++ | lib/ (2 files):
22:03 dalek niecza: Low-level backend support for sockets
22:03 dalek niecza: review: https://github.com/sorear/niecza/commit/ec0eab354f
22:03 dalek niecza: e441498 | sorear++ | examples/sock.pl:
22:03 dalek niecza: Minimal implementation of sockets (not in setting yet)
22:03 dalek niecza: review: https://github.com/sorear/niecza/commit/e441498ee8
22:06 masak sorear++ # IO::Socket::INET
22:07 UncleFester6 p6: class C {has $.a}; my C constant $c = C.new(:a<red>); say $c.perl;
22:07 p6eval niecza v19-26-g025a6e6: OUTPUT«C.new(...)␤»
22:07 p6eval ..rakudo 763b85: OUTPUT«C.new(a => "red")␤»
22:08 UncleFester6 p6: class C {has $.a}; my C constant $c .= new(:a<red>);
22:08 p6eval rakudo 763b85: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤==​=SORRY!===␤error:imcc:syntax error, unexpected ADV_NAMED, expec…
22:08 p6eval ..niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in type Method␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 162 (run_optree @ 8) ␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 166 (run_optree @ 19) ␤  at /home/p6eval/niecza/…
22:08 UncleFester6 p6: my Rat $r .= new(3, 5)
22:08 p6eval niecza v19-26-g025a6e6: OUTPUT«Potential difficulties:â�¤  $r is declared but not used at /tmp/ICCcdEKwKe line 1:â�¤------> [32mmy Rat [33mâ��[31m$r .= new(3, 5)[0mâ�¤â�¤Â»
22:08 p6eval ..rakudo 763b85:  ( no output )
22:08 UncleFester6 p6: my Rat constant $r .= new(3, 5)
22:08 p6eval niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in type Method␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 162 (run_optree @ 8) ␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 166 (run_optree @ 19) ␤  at /home/p6eval/niecza/…
22:08 p6eval ..rakudo 763b85: OUTPUT«===SORRY!===␤Default constructor only takes named arguments␤»
22:09 UncleFester6 I sort of think that .= on constants like this should be disallowed with a nicer error message ...
22:09 masak agreed.
22:10 masak UncleFester6: feel free to submit a rakudobug (or a nieczabug) about it.
22:10 pmichaud this sounds a bit too close to "readonly objects" for me to consider it a bug yet, though.
22:11 UncleFester6 thx, I will I just wanted some feedback on my understanding of the problem ..
22:11 UncleFester6 LTA
22:11 pmichaud p6: my Rat constant $r .= new(:num(3), :den(5));  # checking
22:11 p6eval rakudo 763b85: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤==​=SORRY!===␤error:imcc:syntax error, unexpected ADV_NAMED, expec…
22:11 p6eval ..niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in type Method␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 162 (run_optree @ 8) ␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 166 (run_optree @ 19) ␤  at /home/p6eval/niecza/…
22:12 jnthn That's CERTAINLY a bug!
22:12 jnthn (mis-code-gen)
22:12 jnthn I dunno what it should do though.
22:12 tadzik pass what?
22:12 jnthn Maybe work somehow
22:12 phenny tadzik: 19:01Z <japhb> ask tadzik Why does panda's boostrap.pl want to add the DESTDIR into PERL6LIB while bootstrapping?  Wouldn't you want to ignore it as an available lib until the bootstrap completed?
22:12 pmichaud the messages from the earlier example were technically correct; they were complaining about the argumetns to .new
22:12 phenny tadzik: 19:03Z <japhb> ask tadzik For that matter, it seems like PERL6LIB should be entirely disabled during the bootstrapping process; you want only the contents of panda's tree to be used to fill the DESTDIR or ~/.perl6, right?
22:12 phenny tadzik: 19:04Z <japhb> tell tadzik Sorry, I meant the *original* PERL6LIB should be entirely disabled during bootstrapping ...
22:12 tadzik /o\
22:12 sorear o/ tadzik
22:12 jnthn pmichaud: yes, those were
22:12 tadzik \o
22:13 pmichaud p6: my Rat $r .= new(:num(3), :den(5));  # checking
22:13 p6eval niecza v19-26-g025a6e6: OUTPUT«Potential difficulties:â�¤  $r is declared but not used at /tmp/ks2nVrYzpy line 1:â�¤------> [32mmy Rat [33mâ��[31m$r .= new(:num(3), :den(5));  # checking[0mâ�¤â�¤Unhandled exception: No value for parameter '$n' in 'Rat.new'â�¤  at /home/p6eval/niecza/lib/CORE.se…
22:13 p6eval ..rakudo 763b85:  ( no output )
22:13 tadzik japhb: you are probably right
22:13 pmichaud p6: my Rat $r .= new(:num(3), :den(5));  say $r; # checking
22:13 p6eval rakudo 763b85: OUTPUT«0␤»
22:13 p6eval ..niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: No value for parameter '$n' in 'Rat.new'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (Rat.new @ 1) ␤  at /tmp/wL7SPAy9T4 line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3946 (ANON @ 3) ␤  at /home/p6eval/niec…
22:13 sorear anything with "error:imcc:syntax error" is 110% a bug, unless you used Q:PIR
22:13 tadzik japhb: I'm very sensitive in terms of touching bootstrap.pl when it's working :)
22:13 UncleFester6 I think that pmichaud's example sort of reasigns $r with "$r .=" and one could try to dwim but I think disallow would make sense to me
22:14 masak pmichaud: 0!?
22:14 pmichaud I guess I'm okay if we think of reassignment as being disallowed.
22:14 pmichaud masak: I passed the wrong named args, apparently.
22:14 masak oh!
22:14 pmichaud p6: my Rat $r .= new(:n(3), :d(5));  say $r; # checking
22:14 p6eval niecza v19-26-g025a6e6: OUTPUT«0.6␤»
22:14 p6eval ..rakudo 763b85: OUTPUT«0␤»
22:14 masak :nu and :de?
22:14 masak oh, those were right for Niecza... :)
22:14 pmichaud apparently there's not a consistent Rat.new definition :-(
22:14 sorear It's common enough that I'm tempted to dwim it
22:14 pmichaud p6: my Rat $r .= new(:nu(3), :de(5));  say $r; # checking
22:15 p6eval niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: No value for parameter '$n' in 'Rat.new'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (Rat.new @ 1) ␤  at /tmp/VU9W9mo8Ww line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3946 (ANON @ 3) ␤  at /home/p6eval/niec…
22:15 p6eval ..rakudo 763b85: OUTPUT«0␤»
22:15 masak oh, come on, Rakudo!
22:15 masak if those attributes are public, they should be spec'd.
22:15 masak and then the implementations shouldn't disagree on them.
22:15 pmichaud p6: my Rat $r .= new(:numerator(3), :denominator(5)); say $r;
22:15 p6eval rakudo 763b85: OUTPUT«0␤»
22:15 p6eval ..niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: No value for parameter '$n' in 'Rat.new'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (Rat.new @ 1) ␤  at /tmp/NaIdNJ7kTk line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3946 (ANON @ 3) ␤  at /home/p6eval/niec…
22:16 sorear r: my $r = (3/5); say $r # does Rat.gist work at all?
22:16 p6eval rakudo 763b85: OUTPUT«0.6␤»
22:16 popl joined #perl6
22:17 pmichaud method new(NuT \nu = 0, DeT \de = 1) {
22:17 pmichaud that looks wrongish.
22:17 pmichaud but it does mean:
22:17 sorear agh, right, Rat is polymorphic\
22:17 pmichaud r:  my $r = Rat.new(3,5); say $r;  # should work
22:17 p6eval rakudo 763b85: OUTPUT«0.6␤»
22:17 pmichaud r:  my Rat $r = Rat.new(3,5); say $r;  # should work
22:17 p6eval rakudo 763b85: OUTPUT«0.6␤»
22:17 pmichaud r:  my Rat $r .= new(3,5); say $r;  # should work
22:17 p6eval rakudo 763b85: OUTPUT«0.6␤»
22:18 pmichaud r:  my Rat constant $r .= new(3,5); say $r;  # should work
22:18 p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Default constructor only takes named arguments␤»
22:18 sorear r: my constant Rat $r .= new(3,5); say $r;
22:18 p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Missing initializer on constant declaration␤at /tmp/3UZMWEXzB2:1␤»
22:18 pmichaud p6:  my Rat constant $r .= new(3,5); say $r;  # should work
22:18 p6eval niecza v19-26-g025a6e6: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in type Method␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 162 (run_optree @ 8) ␤  at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 166 (run_optree @ 19) ␤  at /home/p6eval/niecza/…
22:18 p6eval ..rakudo 763b85: OUTPUT«===SORRY!===␤Default constructor only takes named arguments␤»
22:19 UncleFester6 r: my Rat $r; $r .= new(3,5); say $r;
22:19 p6eval rakudo 763b85: OUTPUT«0.6␤»
22:19 pmichaud why is it looking at the Default constructor, I wonder?
22:19 UncleFester6 r: my Rat constant $r; $r .= new(3,5); say $r;
22:19 p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Missing initializer on constant declaration␤at /tmp/5bkfYIbmVp:1␤»
22:20 jnthn pmichaud: Maybe an initialization fail
22:20 jnthn pmichaud: I mean...it doesn't call on Rat for some reason.
22:21 pmichaud anyway, seeing that I agree: BUG
22:21 * masak submits rakudobug
22:22 masak moritz: I agree that we should have .ymd and .hms in S32/Temporal... but...
22:23 masak moritz: some part of me in 2012 wonders what it was that made me reject it in 2010. because I'm pretty sure I considered it.
22:24 * geekosaur recalls a bunch of "don't hardcode a preference for one particular date / time system" back then
22:24 geekosaur ...claiming it belonged in a module
22:24 japhb phenny, ask tadzik Did you mean that you agree with keeping DESTDIR out of PERL6LIB during bootstrap, but are nervous about keeping the original PERL6LIB out?  Or do you mean you agree on both counts, but are nervous about both as well?
22:24 phenny japhb: I'll pass that on when tadzik is around.
22:25 sorear seen supernovus
22:25 aloha supernovus was last seen in #perl6 10 days 19 hours ago saying "Anyway, enough for tonight. Hope someone finds the library useful. I need to expand the documentation, as currently you need to read the WWW::App documentation in addition to the WWW::App::Easy to figure out all of the different
22:25 aloha ..features.".
22:26 quietfanatic I believe there's a standard cross-culture seperator for hms but not for ymd.
22:27 japhb masak, geekosaur, while I (very vaguely) remember the "avoid particular DT system" discussion happening, I argue that ymd and hms are so commonly used that they should get a boost into core.
22:27 japhb quietfanatic, that's why ymd properly has an optional separator param (as does hms, actually).
22:27 quietfanatic ah
22:27 geekosaur not to mention that the US uses mdy order and much of europe uses dmy
22:28 japhb (The proper defaults for which are the ISO 8601 standard)
22:28 japhb geekosaur, both of those are cultural, and belong in a cultural module.  ymd is an international standard and the only one the collates using a simple model
22:28 japhb (trivial, actually)
22:29 japhb s/one the/one that/
22:29 quietfanatic trivial assuming we don't have computers by the year 10000
22:30 japhb quietfanatic, I find it at least as likely that we will have a completely different calendar system 8 millinea from now.  :-)
22:30 sorear 'lets provide all six, it cant be harder than npr:'
22:31 quietfanatic japhb: yes, though it's possible that we might refer now to dates later.
22:31 masak :)
22:31 * geekosaur did not really intend to touch off the bikeshed all over again... /o\
22:31 masak I'm fine with it this time around.
22:31 japhb quietfanatic, now now, don't taunt geekosaur.  ;-)
22:31 * quietfanatic wouldn't be sad with something like now.fmt('%y-%m-%d')
22:32 masak but it might have been bikeshedding that made me decide to leave them out last time.
22:32 sorear +1
22:32 quietfanatic Ah, I didn't realize this was a bikeshed already
22:32 masak no no, this is good.
22:32 masak please go on. :)
22:32 masak quietfanatic: I've decided I don't like formatting strings anymore.
22:32 diakopter who gets to define what's a bikeshed anyway
22:32 quietfanatic well, fmt wouldn't be right, but a similar mechanism
22:32 masak diakopter: the meta-bikeshedders.
22:32 japhb But I'm absolutely serious, I think method ymd(:$sep = '-') and method hms(:$sep = ':') should be the only core, and the rest treated as cultural.
22:32 diakopter :)
22:32 quietfanatic given now { "{.y}-{.m}-{.d}" }
22:33 masak quietfanatic: formatting strings are insufficiently language-y.
22:33 masak quietfanatic: yes, that's much better.
22:33 masak r: given Date.today { say "{.hour}:{.minute}:{.second}" }
22:33 p6eval rakudo 763b85: OUTPUT«No such method 'hour' for invocant of type 'Date'␤  in block  at /tmp/JRXng2diI6:1␤  in block  at /tmp/JRXng2diI6:1␤␤»
22:34 masak aww
22:34 * masak czhechs the sauce
22:34 sorear datetiime?
22:34 masak indeed.
22:34 masak r: given DateTime.now { say "{.hour}:{.minute}:{.second}" }
22:34 p6eval rakudo 763b85: OUTPUT«0:34:51␤»
22:34 masak I blame general lateness.
22:36 pmichaud datetiiiiiiiiiiiiiiime
22:36 masak r: say (.hour, .minute, .second).fmt("%02d", ":") given DateTime.now
22:36 p6eval rakudo 763b85: OUTPUT«00:36:17␤»
22:36 pmichaud I blame a sticky keyboard.
22:36 masak :P
22:36 masak the above is quite nice, and very readable, I think.
22:37 masak granted, `DateTime.now.ymd` is a lot shorter.
22:37 masak so maybe we should put it in there.
22:37 quietfanatic Ah, yes, interpolating strings directly would cause problems like 0:11:4
22:37 sorear DateTime.now.fmt('%d/%m/%y') would also be shorter
22:38 * masak will leave it to simmer in the general discourse for a day or so, and then add it to the Temporal spec
22:38 masak sorear: yes, but that would further overload format strings, and I don't like format strings.
22:38 quietfanatic yes, but it'd need a different name from .fmt
22:38 masak quietfanatic: not really; we could steal .fmt for that for DateTimes.
22:39 quietfanatic I'd expect .fmt to coerce to string and format
22:39 quietfanatic Even if DateTime isn't Cool, that's what I'd expect.
22:39 quietfanatic *coerce to Cool
22:40 masak you don't coerce to Cool. either you're Cool or you're not :P
22:40 quietfanatic right right
22:41 sorear masak: prefer c++ iomanip?
22:41 masak sorear: haven't seen how C++ does formats.
22:41 masak sorear: but my main kvetch about format strings is that they, like p5 regexes, are insufficiently AST-y.
22:42 masak they're just flat strings when they should be full compilable sublanguages.
22:42 quietfanatic sorear: Do you mean cout << astring << ":" << anumber << endl ?
22:42 masak oh, that bit. I don't have much sympathy for that part of C++.
22:42 quietfanatic Neither do I.  I just use printf instead.
22:42 sorear quietfanatic: I'm more talking about putting << width(2) << fill('0) in the middle
22:43 quietfanatic oh, you can do that?
22:43 sorear yeah, because %02d is horrible
22:43 quietfanatic C++ gets weirder every time I learn a new feature
22:44 quietfanatic %02d is indeed horrible, but I know it already. :)
22:45 quietfanatic ...says everyone who wants sprintf in Perl 6, as far as I can tell
22:45 sorear if we don't provide anything like strftime(), we're putting quite a bit of burden on users for this
22:46 sorear I could get behind a macro/slang form for strftime patters
22:46 sorear it doesn't have to be runtime checked (ew)
22:46 masak quietfanatic: we have sprintf in Perl 6.
22:46 masak sorear: yeah, something like that.
22:46 japhb The only reason I like format *strings* is because formats are one of the things I am most likely to generate programmatically and then use.
22:47 quietfanatic masak: Yeah, and I think it's for the purpose of historical cohesion primarily.
22:47 whiteknight joined #perl6
22:47 jnthn sleep &
22:47 sorear o/ whiteknight
22:47 whiteknight hello sorear
22:48 japhb Guest82297, Why do you join as whiteknight and then guestify yourself?
22:48 Guest82297 japhb: it isn't intentional
22:48 quietfanatic runtime-parsing a custom sublanguage is nice, but runtime-generating a custom AST-like thing also has something to be said for it
22:48 geekosaur guestification means someone owns the /nick in querstion and turned on protection, so nickserv gives them time to identify and then boots them off it
22:49 wknight8111 joined #perl6
22:49 quietfanatic Going through a string-like representation to generate formats could be an unnecessary step.
22:49 japhb geekosaur, ah, forgot about that
22:49 wknight8111 I'm registered as "wknight8111", but I haven't set my my client to use that nick on this network
22:49 japhb quietfanatic, I don't care about how I produce the format.  Only that the production method is terse enough to form a picture in my mind.
22:50 quietfanatic (could be but isn't in just about every language :)
22:50 masak quietfanatic: I'm not sure I agree about "historical cohesion". sometimes q strings are enough, sometimes you have to do qq strings, and for those extra-special times, you want to go full sprintf.
22:50 masak quietfanatic: it's not just backwards-compat. sometimes that's just the level to solve the problem on.
22:50 quietfanatic masak: Hmm, perhaps so
22:52 quietfanatic I should take as evidence that even aggressively functional languages tend to provide a sprintf-like thing.
22:53 quietfanatic it'd still be nice if it was a sublanguage like regexes, so that the compiler and the programmer could agree on how to think about them.
22:53 japhb sprintf, while it definitely has its issues, is very terse, even for relatively complex formats.  That's much of what I like about it.
22:54 japhb (Especially the extended forms that allow argument rearrangement and suchlike)
22:54 masak right.
22:54 * sorear wonders how strftime could be made to handle formal Japanese dates
22:54 masak I think it's insane that sprintf doesn't compile-time-check the number of arguments. that's when you realize that things are evaluated too late.
22:55 quietfanatic sorear: strftime("%Y年%m月%d日"), you mean?
22:55 quietfanatic Oh, you mean the eras and stuff
22:56 sorear quietfanatic: I'm thinking the ones that start with Heisei 21, yeah
22:56 UncleFester6 left #perl6
22:56 quietfanatic Yes, we should let people mark time by their own emporers, not just ours
22:57 japhb Well, I definitely like the idea of printf-formats being a first-class slang, so that, as quietfanatic says, the compiler and programmer can think of them on the same level.
22:57 quietfanatic I think formats are a prime target for Perl 6 slangization, and if we don't use them as an example, nobody'll bother to slangize anything.
22:58 japhb point.
22:58 masak +1
22:58 quietfanatic fmt/%02d:%02d:%02d/ <-- consider
22:59 quietfanatic in matching with rx//
22:59 masak ooh
22:59 quietfanatic *in parallel, I mean
22:59 quietfanatic .oO(matching means something else in this context)
23:00 japhb quietfanatic, that's a rather nice idea
23:00 sorear macro fmt() is parsed(/ [ <![%]> | '%' \d* <[cdfs]> ]* /) { ... }
23:01 sorear needs a '/' at begin & end
23:01 quietfanatic and it generates something like an N-ary function that can be made at compile-time.
23:01 japhb sorear, and a pile more cases.  ;-)
23:01 sorear =for masak
23:01 quietfanatic well, it's a quoting form, so it could take any character as delimiters
23:02 sorear eek how to provide access to <quibble> from slangs
23:03 japhb sorear, and we now have an immediate reason to try to make a slang outside of the core grammar -- we find out what we accidentally made difficult.  ;-)
23:03 quietfanatic eek indeed.  In the case of regexes, you'd have to make the regex and quibble methods of the same grammar
23:04 masak sorear: ugh, 'is parsed'... :)
23:04 masak 'night, #perl6
23:04 quietfanatic night masak
23:05 sorear 'night
23:06 japhb o/
23:48 cognominal joined #perl6
23:54 zhutingting joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs