»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 bonifatio joined 00:03 jeffreykegler left 00:05 jeffreykegler joined 00:16 Circlepuller_ joined 00:17 spider-mario left 00:18 Circlepuller left 00:40 Nick16 joined 00:47 tokuhiro_ joined
diakopter jeffreykegler: you sound like an implementor :) 00:55
jeffreykegler of Perl 6 you mean? Or in general.
diakopter any I guess
jeffreykegler I've been coding since 1971, and have written a new parser called Marpa, which needs an interface 00:56
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
jeffreykegler It's easy to find out more, the Google search robots, bless their hearts, give me great placement 00:59
01:01 benabik left
diakopter does it detect indirect left/right recursion? 01:04
jeffreykegler Yes
diakopter (before processing input?)
jeffreykegler Marpa is linear for all LR-regular grammars 01:05
Marpa is linear for both left and right recursion
diakopter ..so I'm reading :)
jeffreykegler That, by the way, is not my result but is due to a 1991 paper by Joop Leo 01:06
IMHO a very long neglected breakthrough
diakopter what kinds of grammars aren't recursive descent parsers good at? (not challenging, just curious) 01:07
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
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:10 ChanServ sets mode: +o diakopter
diakopter see, I'll kick anyone who's rude to you :D 01:11
01:11 diakopter sets mode: -o diakopter
diakopter (kidding of course; no one will be rude) 01:11
jeffreykegler Actually the rudeness I was worried about would be on my part
I've been lurking long enough to know your record 01:12
So OK the history of parsing in a few sentences
We'll start with UNIX and C -- C was originally written in recursive descent
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)
Recursive descent just drills down the left hand side -- it's pretty myopic 01:14
But it is the way a programmer wishes that parsing should work -- calling subroutines
And to its credit it is very, very hackable -- you can add lots of procedural stuff
diakopter well, I should specify; LTM mode doesn't have to be recursive descent
jeffreykegler So Ritchie, Thompson and Johnson figured there's gotta be a better way and yacc was born 01:15
yacc looks at some right context, but it is very, very hard to debug and enhance 01:17
The summit of yacc programming was IMHO, the invention of Perl
Where by clever use of precedence in conflict situations, yacc was made to parse an extremely complex language 01:18
But yacc/LALR was so hard to use and maintain, even its greatest practitioners eventually got fed up
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:20
So everybody went back to recursive descent -- the state of the art before the Ritchie/Thompson/Johnson portable C compiler 01:22
Recursive descent is easy to hack and that's its attraction 01:24
01:27 mtk left
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:30
jeffreykegler That's how I read it too 01:31
Folks have resigned themselves to the idea that recursive descent was as it as it was gonna get 01:34
*as good as it was gonna get
diakopter now, LTM is implemented variously as NFAs 01:35
jeffreykegler Sorry, LTM?
diakopter longest token matching. what enables Perl operators to be several characters and still distinguishable 01:36
all the grammar things are discussed in S05 01:37
01:37 mtk joined
diakopter (a large paragraph on LTM) 01:37
jeffreykegler I've read it several times, just didn't recognize the acronym
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
jeffreykegler But I believe that Earley-based parsing (which Marpa is) can offer the same benefits, while assisting the programmer far more 01:42
That is, you can still go procedural, but you have to far less often
01:43 benabik joined, tokuhiro_ left
diakopter you mention that it's slower than p5 regexes 01:45
at most things?
jeffreykegler which is slower?
diakopter marpa
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
On the other hand, if you're doing something that is not a regular expression, like matching parentheses ...
Marpa wins 01:47
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
Marpa won't win that race
Marpa is a general BNF parser, designed to have acceptable speed over a wide range of applications 01:51
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
However, few grammars are pure LL(1)
01:52 cognominal left 02:07 dbr left 02:19 cognominal joined 02:24 Guest25919 left 02:30 jeffreykegler left 02:40 orafu left, OuLouFu joined, OuLouFu is now known as orafu 02:53 Nick16 is now known as virtual6 02:54 virtual6 is now known as nick, nick is now known as nick16 03:15 jeffreykegler joined, jeffreykegler left, jeffreykegler joined 03:16 jeffreykegler left 03:17 quietfanatic left 03:18 quietfanatic joined
quietfanatic testing... 03:19
okay, huh
03:27 HarryS left 03:49 skids left 03:50 Moukeddar joined 03:54 HarryS joined 04:06 drbean joined 04:15 thelazydeveloper left, cognominal left 04:16 orafu left, tokuhiro_ joined 04:18 cognominal joined 04:30 aloha left 04:31 aloha joined 04:40 tokuhiro_ left 04:47 HarryS left 04:56 xinming left 04:58 Moukeddar left, nick16 left 05:08 HarryS joined 05:10 daniel-s joined 05:34 JimmyZ_ joined
JimmyZ_ sorear: hi 05:35
05:38 kaare_ joined
moritz \o 05:42
JimmyZ_ \o/ 05:51
06:10 xinming joined 06:23 JimmyZ_ left 06:35 att joined 06:42 screencast joined
screencast hey im new 06:43
06:43 gongyiliao joined
screencast hello 06:49
06:57 screencast left
dalek nda: 5cf9606 | (Geoffrey Broadwell)++ | bootstrap.pl:
Bootstrap panda from cwd, not '.'
07:11
nda: b7c8b12 | (Geoffrey Broadwell)++ | TODO:
Remove completed TODO items
07:23 tarch joined 07:24 tarch left 07:30 raiph joined
raiph www.reddit.com/r/perl/comments/ygpl...dedicated/ 07:31
07:32 raiph left
masak morning, #perl6 07:33
moritz good UGT antenoon, masak :-)
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
but on the other hand, if they're that impatient, maybe it'd be too much work to retain them anyway.
moritz masak: me too. But when I saw it, he was already gone 07:35
masak aye, same.
masak has a mental checklist of "indications this new person's first stay is also the last stay"
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
masak another one: among the first 10 utterances, is one ending with "lol" without a preceding comma. 07:39
also, if the nick is obviously not thought through. 'screencast', as nicks go, is quite a good one, though. 07:40
shachaf I''m putting in extra apostrophes from now on just in case. 07:42
masak :D
shachaf: and just to be safe, you should ask questions about Perl 7. 07:43
and begin your utterances with "lol".
huf make that backwards-lol
masak so obvious in retrospect. :) 07:44
shachaf Maybe "yby"
Mayby
07:44 p6rd joined
masak p6rd! \o/ 07:44
moritz p6rd: next 07:45
p6rd parrot 2012-08-21, rakudo 2012-08-23, niecza 2012-08-27
masak rn: say "lol".trans("a..z" => "n..za..m")
p6eval rakudo 2bbe52, niecza v19-26-g025a6e6: OUTPUT«yby␤»
dalek p: de089eb | rurban++ | tools/build/Makefile.in:
makefile whitespace cleanup

tabs missing
07:51
08:02 popl joined
dalek kudo/nom: 763b85a | moritz++ | docs/deprecations:
deprecated LAZY
08:06
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␤␤»
masak r: say DateTime.now.ymd
p6eval rakudo 763b85: OUTPUT«No such method 'ymd' for invocant of type 'DateTime'␤ in block at /tmp/vyfgKlsSy3:1␤␤»
08:13 leont joined 08:19 Psyche^ joined
moritz masak: should have {Date,DateTime}.ymd and DateTime.hms? 08:20
08:22 Patterner left, Psyche^ is now known as Patterner
masak moritz: sounds good. wot's the spec say? 08:23
moritz masak: nada, afaict
join #p6p5 on irc.perl.org
08:29 popl left
masak moritz: are you currently setting up ilogger2 for #p6p5? 08:33
08:33 fgomez joined
moritz masak: not yet, but I can do it 08:33
08:42 brrt joined 08:46 leont left 08:49 cognominal left 09:14 crab2313 joined
crab2313 r: use URI; my $u; URI.new('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 left, fgomez joined 09:35 fgomez left, fgomez joined 09:56 MayDaniel joined 10:29 brrt left 10:35 spider-mario joined 10:43 erkan left 10:47 crab2313 left 10:49 erkan joined 11:02 brrt joined 11:13 thelazydeveloper joined 11:20 drbean left, fgomez left 11:24 drbean joined 11:25 whiteknight joined 11:26 whiteknight is now known as Guest98866 11:44 GlitchMr joined 11:45 tokuhiro_ joined 11:48 Guest98866 left 11:59 isBEKaml joined 12:01 isBEKaml left 12:29 JimmyZ joined 12:39 fridim_ joined 12:47 Pleiades` left 12:53 benabik left, Pleiades` joined 12:54 benabik joined 13:11 colomon left 13:28 MayDaniel left 13:30 JimmyZ left, kaare_ left, renormalist left, [particle] left, hanekomu left, awwaiid left, obra left, _sri left, pnu_ left, shachaf left 14:09 kaare_ joined, renormalist joined, [particle] joined, hanekomu joined, awwaiid joined, obra joined, _sri joined, pnu_ joined, shachaf joined 14:11 brrt left 14:15 snearch joined 14:17 tokuhiro_ left 14:24 birdwindupbird joined 14:28 brrt joined 14:32 skids joined 14:39 UncleFester6 joined 14:40 isBEKaml joined
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"
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:45 snearch left
isBEKaml rn: "Hello, #perl6".say #been sometime, heh... 14:47
p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«Hello, #perl6␤»
isBEKaml p6rd: release 14:48
p6rd: help
p6rd Perl 6 release dates. Usage: p6rd: [ 'next' | 'next month' | YYYY-MM | YYYY-MM-DD ]
isBEKaml p6rd: next
p6rd parrot 2012-08-21, rakudo 2012-08-23, niecza 2012-08-27
14:54 sergot joined
sergot hi ! o/ 14:54
isBEKaml \o
[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:56
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.
masak good morning, #perl6!
tadzik masak: first!!111
masak tadzik: fraction-of-a-second first! :)
Pleiades` isBEKaml, you can find some free builds of xchat 15:00
isBEKaml yo, masak, tadzik.. how's things on EU'eve? :)
Pleiades` kvirc is nice too
masak isBEKaml: pretty awesome.
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
Pleiades` it's cross platform too
isBEKaml pictures masak frenetically googling pics for his slides.. ;)
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... :)
isBEKaml masak: sure, sure - I want to see your slides too. (post YAPC, ofcourse) 15:03
masak isBEKaml: :)
isBEKaml: this time around, I'm generating slides with a 39-line Perl 6 script.
isBEKaml Pleiades`: Finally a client that's actually in active development! Thanks! 15:04
15:04 kaare_ left
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:04
isBEKaml masak: oooh, awe-fricking-some.. github, github! 15:05
masak aye. soon enough. 15:06
this one will actually be usable by non-masak people, which I rather like.
that's also a reason not to cheat when building the slides generator.
15:09 isBEKaml left
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 github.com/kripken/emscripten/wiki
15:11 isBEKaml joined
isBEKaml masak: if you don't cheat, that's good enough for me. :P 15:13
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.
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:21
15:22 brrt left 15:23 isBEKaml_ joined, isBEKaml left
isBEKaml_ masak: why not upload as HTML? 15:24
(sorry, for my on-off thing, wifi's going crazy here) 15:25
masak in my experience HTML is less durable than PDF. it also varies between browsers. 15:27
arnsholt masak: You could add an export to LaTeX option to make PDFs O:) 15:30
15:30 isBEKaml_ left
masak ;) 15:31
arnsholt: most of it's SVG, though.
jnthn o/ 15:33
15:36 thou joined
arnsholt I'm sure you can render SVG to TikZ =D 15:36
sorear o/ jnthn :D 15:38
pmichaud good afternoon, #perl6 15:43
masak jnthn! \o/
pmichaud! \o/ 15:44
pmichaud oh, jnthn++ and masak++ -- I have t-shirts for you.
japhb masak, in my experience, clean HTML on any modern browser aside from IE is less variable than PDF is between PDF readers. :-/
masak oh! 15:45
sorear no t-shirts for me?
masak pmichaud: yay!
15:45 isBEKaml joined
pmichaud sorear: you didn't order one :) 15:46
sorear: what size? I might have an extra that would fit, though
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.
pmichaud well, I have L and XL
japhb Juerd, do you know any PDF writers that are good about generating cross-reader identically-interpreted PDF files? 15:47
(Because it's not too hard to write cross-browser HTML by hand ...)
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?
sorear yes.
masak japhb: what do you want to know?
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.
sorear but it's not secret now
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. :-)
masak japhb: yeah. I can understand that. 15:50
isBEKaml there was a sekrit meeting? er, p6 u p5? :)
masak japhb: I arrived late, so I was in the same position a day and a half ago.
sorear I wonder how much I should write about, given that other people will be writing too.
japhb masak, I bet!
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
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."
isBEKaml masak: well, since you are using jquery in your HTML, it shouldn't pose much problems with browsers (it -> your slides)
pmichaud more importantly, I think many people came in as skeptics of p5+p6 together and are leaving as optimists
masak isBEKaml: the jQuery is only for advancing the slides. 15:52
pmichaud: I'm one of those people.
isBEKaml masak: CSS is the troubling part? again, I don't see much problems there unless people are using really ancient browsers.
japhb pmichaud, That is great to hear
pmichaud I think I'll tweet that summary, in fact.
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
but no, there were new things to be said.
sorear also, it was an excuse for me to actuallly talk to perl5 people.
isBEKaml r: (1..5)>>.say #testing
p6eval rakudo 763b85: OUTPUT«5␤3␤1␤4␤2␤»
masak and that particular group of people seemed to produce new kinds of ideas, too.
15:53 uniejo joined
japhb Ah, this is all very good to hear. 15:54
masak isBEKaml: in Rakudo, >>. invokes .pick(*)
pmichaud I think I removed that.
.pick(*) is too slow, so I changed the algorithm to something much more efficient.
isBEKaml masak: Well, I was more angling for unicode issues with my client. :)
japhb pmichaud, I saw that commit -- you made it run in reverse, didn't you?
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
so we'll end up with much faster loops.
japhb: it currently runs in reverse by odds and evens
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.
masak r: (1..6)>>.say
pmichaud I have more optimizations to do with the hypers and other metas
p6eval rakudo 763b85: OUTPUT«6␤4␤2␤5␤3␤1␤»
masak r: (0..6)>>.say 15:57
p6eval rakudo 763b85: OUTPUT«6␤4␤2␤0␤5␤3␤1␤»
pmichaud mst++ had some suggestions last night as well regarding randomization of hyper results, which I will likely incorporate as well
japhb pmichaud, (re >>.) Ah, now I get it, very nice. 15:58
pmichaud, What further optimizations are there to be had, OOC? 15:59
15:59 isBEKaml left
pmichaud ultimately, I think that @list>>.foo has to be faster than @list.map( *.foo ) 15:59
it certainly must not be slower.
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
16:00 isBEKaml joined
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
japhb raiph++ # #perl6 highlights
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
pmichaud yes, if we have nested structures, it'll be slower
sorear isBEKaml: part message.
pmichaud and I'm wondering if deep map really wants to be something other than >>.
isBEKaml heh..
pmichaud I really want a hyper map that can be parallelized without deep mapping 16:02
sorear
.oO( hyper map { ... }, ...
pmichaud because that's a very common use case that deserves optimization and huffmanization
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"
sorear )
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. :)
sorear
.oO( pmichaud and masak speak in my thoughts )
isBEKaml masak: thanks, I have now removed that stupid message.
16:04 flussence joined
isBEKaml rn: (1..5)>>.say 16:04
16:04 uniejo left
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␤»
..rakudo 763b85: OUTPUT«5␤3␤1␤4␤2␤»
isBEKaml masak: I kind of associate quixotic stuff to stupidity. :) 16:05
that felt like a roundabout way of saying you've got to work!
o.O(do I hear laughter?) 16:06
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
japhb Ah, I get. 16:10
er, I get it.
pmichaud twitter.com/pmichaud/status/237219997062152192 16:11
twitter.com/pmichaud/status/237219819139780608
GlitchMr Just wondering, does Perl 6 regexpes have assertion "at end or before last line break" just like \Z in Perl 5?
16:11 fridim_ left
pmichaud (urls out of order because apparently my copy-paste method is based on >>. :-/ ) 16:11
masak pmichaud++ 16:12
masak retweeted
pmichaud GlitchMr: $$ # at end of string
GlitchMr: ^^ # at beginning of string
masak pmichaud: end of _line_, surely?
pmichaud oh, wait.
right
^ and $ are eos, $$ and ^^ are end of line
masak oh thank Huffman :D
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 :-/
GlitchMr I would like to create P5 regexp to P6 thingy, but I wonder how to convert $ (without /m) or \Z
eval print "a\n" =~ /a$/ 16:15
buubot_backup GlitchMr: 11
GlitchMr perl6: print "a\n" ~~ /a$/
p6eval rakudo 763b85, niecza v19-26-g025a6e6: ( no output )
benabik p6: print ("a\n" ~~ /a$/)
p6eval rakudo 763b85, niecza v19-26-g025a6e6: ( no output ) 16:16
benabik huh
benabik always checks precedence, just in case.
p6: say "a\n" ~~ /a$/
p6eval niecza v19-26-g025a6e6: OUTPUT«Match()␤»
..rakudo 763b85: OUTPUT«#<failed match>␤»
GlitchMr Nothing
benabik Ah, there we go. Expected some output, even on failure. But I guess it returns an undefined Match, which stringifies to '' 16:17
p6: say "a" ~~ /a$/
p6eval rakudo 763b85: OUTPUT«「a」␤␤»
..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
pmichaud newline at end is now \n$
sorry
\n?$
benabik True enough.
GlitchMr ok, I guess I will use this
pmichaud if you need it as a zero-width match, then <?before \n?$ > 16:18
GlitchMr :)
masak jnthn, pmichaud: is either of you planning to preconf? if so, are you thinking about leaving l'hotel soon?
pmichaud masak: I hadn't decided on preconf
benabik p6: say "a\n" ~~ /a$$/
p6eval rakudo 763b85: OUTPUT«「a」␤␤»
..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
masak pmichaud: neither have I, really. 16:19
benabik $$ matches end of line. $ matches end of string.
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
masak pmichaud: sounds like my take on it.
benabik GlitchMr: Try $$ instead of $
GlitchMr benabik: $$ is end of line
masak pmichaud: lunch was fairly late, so the food urgency is not high.
GlitchMr I think I will use <?before \n?$ >
benabik GlitchMr: That's not what you're looking for? 16:20
masak rn: say "foo\n" ~~ /foo $/
p6eval niecza v19-26-g025a6e6: OUTPUT«Match()␤»
..rakudo 763b85: OUTPUT«#<failed match>␤»
masak rn: say so "foo\n" ~~ /foo $/
p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«False␤»
GlitchMr I want to make P5 regexp to P6 regexp converter
masak rn: say so "foo\n" ~~ /foo \n? $/
p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«True␤»
sorear 「」? 16:21
masak sorear: I'm as surprised as you are.
clearly my <> patch was improved upon.
masak git blames :) 16:22
pmichaud what's the surprise with 「」?
TimToady++ added that.
sorear I failed to notice.
pmichaud yes, he revised masak++'s contribution
16:23 benabik_ joined
masak sorear: github.com/rakudo/rakudo/commit/94...5f05bdd527 16:24
16:24 benabik left, benabik_ is now known as benabik
masak TimToady++ added it to the spec, moritz++ added it to Rakudo. 16:24
benabik rn: say "a" ~~ /a$$/ 16:25
p6eval rakudo 763b85: OUTPUT«「a」␤␤»
..niecza v19-26-g025a6e6: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
sorear n: "\xC2".encode('ISO-8859-1').decode('UTF-8').say
p6eval niecza v19-26-g025a6e6: OUTPUT«�␤»
benabik is confused why $$ isn't p5's $.
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.
benabik: p5's $ is different things depending on the flags of the regex.
GlitchMr I'm not sure, but I think that $ is because lines aren't chomped by default. 16:26
pmichaud Also, github.com/perl6/specs/commit/cb82...24c01c03b7
benabik: $$ is p5's $ with the /m flag set 16:27
sorear n: "\xC2".encode('ISO-8859-1').decode('UTF-8').ord.say
p6eval niecza v19-26-g025a6e6: OUTPUT«65533␤»
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...?
jnthn Oh?
masak jnthn: yeah, sejm.
it's at the same place, yes.
jnthn eek
jnthn didn't realize.
masak sorear++ confirms it.
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
masak liked his burger, fwiw
pmichaud liked his pizza
jnthn Oh, I enjoyed it too :) 16:31
Just can be fun to visit different places ;-)
sorear also liked pmichaud's pizza
jnthn heh :)
Well, they *do* have dunkel beer also \o/
masak \o/
pmichaud and the place is apparently open today until 01h00
masak that's not possible. 16:32
jnthn OK, then there's no hurry
masak: :P
pmichaud masak: it's possible for sufficiently fuzzy values of "today"
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"
masak japhb: that's why we don't go far enough back, duh :P 16:34
japhb *chuckle*
sorear well according to the yapcs web site the pre-meeting is only 180m.
masak that's almost 200 metres.
:P
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.
japhb :-)
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?
pmichaud I suspect the premeeting also isn't really starting at 18:30, though :) yapc pre-meetings tend to be imprecise affairs :)
masak sorear: but I could imagine getting hungry within an hour and a half.
sorear Yeah. No way I'd be getting food immediately. 16:36
16:37 isBEKaml left
pmichaud jnthn, masak: can I drop off shirts now? 16:38
or I can wait until we head off to dinner, I suspect 16:39
GlitchMr perl6: ("aaab" ~~ /a ** 1 .. * /).perl.say
p6eval niecza v19-26-g025a6e6: OUTPUT«===SORRY!===␤␤Spaces not allowed in bare range at /tmp/Y6ZyvM_19_ line 1:␤------> ("aaab" ~~ /a ** 1 ..⏏ * /).perl.say␤␤Parse failed␤␤» 16:40
..rakudo 763b85: OUTPUT«Match.new(orig => "aaab", from => 0, to => 4, ast => Any, list => ().list, hash => EnumMap.new())␤»
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 :)
pmichaud le dinner is fine; I'll stop by each of your rooms on my way down
masak .oO( which is why we put pmichaud on the top floor ) :P 16:43
by the way. I'm very intrigued by the fact that TimToady is now working actively on STD_P5.pm6 16:46
sorear YES.
GlitchMr perlcabal.org/syn/S05.html#line_2394
For me + doesn't seem to work 16:47
perl6: / [a]*+ /
p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " /"␤»
..niecza v19-26-g025a6e6: ( no output )
GlitchMr std: / [a]*+ /
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:␤------> / [a]⏏*+ /␤ok 00:00 42m␤»…
masak GlitchMr: Niecza can do that. it's NYI in Rakudo.
GlitchMr oh, ok
: should work identically?
masak GlitchMr: also, there's no need to group single characters like that.
sorear the old-school character class check, OTOH, is NYI in both. 16:48
masak GlitchMr: : is the actual form.
GlitchMr: + is mostly for p5 compat, IIUC.
16:48 birdwindupbird left
Juerd japhb: Not specifically 17:00
japhb: I don't know what Inkscape uses, but it's pretty good.
GlitchMr Just wondering, is \d ASCII digit or Unicode digit? 17:01
masak GlitchMr: Unicode digit. 17:02
GlitchMr ok :)
So, I guess I have so use <[0..9]> for safety
masak rn: say so "೨" ~~ /\d/ 17:03
p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«True␤»
masak rn: say so "፬" ~~ /\d/
p6eval rakudo 763b85: OUTPUT«False␤»
..niecza v19-26-g025a6e6: OUTPUT«True␤»
masak (rakudobug)
rn: say so "❾" ~~ /\d/
p6eval rakudo 763b85, niecza v19-26-g025a6e6: OUTPUT«False␤»
masak Rakudo *and* Nieczabug. 17:04
sorear .u ❾
phenny U+277E DINGBAT NEGATIVE CIRCLED DIGIT NINE (❾)
sorear hmm
not sure about that one? 17:05
masak sometimes wishes the Unicode consortium were a bit less... dingbat
sorear: surely it's a digit, though? 17:06
that's even in the name.
jnthn it's the props that matter
sorear general category = Other_Number
GlitchMr I'm not really happy with non-ASCII digits being in \d, but well... technically they are digits
sorear I think niecza's \d is looking only for Digit (Nd) 17:07
GlitchMr Now only if I could do this
perl6: say +'೨'
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␤␤»
..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…
sorear though gc="No" is a somwhat musing propery value.
masak .oO( No property for you! )
sorear n: ೨
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…
sorear I thought that would break :> 17:08
masak ೨ isn't so large... :P
sorear it's probably doing something like ord($_) - 48
masak submits nieczaissue
sorear :D
.u ೨ 17:10
phenny U+0CE8 KANNADA DIGIT TWO (೨)
sorear .u CA0 17:12
phenny sorear: Sorry, no results for 'CA0'.
sorear .u U+0CA0
phenny sorear: Sorry, no results
masak ಠ_ಠ 17:13
17:14 kaare_ joined
flussence .u 0CA0 17:15
phenny U+0CA0 KANNADA LETTER TTHA (ಠ)
GlitchMr .u A 17:16
phenny U+0041 LATIN CAPITAL LETTER A (A)
GlitchMr .u 0A
phenny GlitchMr: Sorry, no results for '0A'.
GlitchMr .u 000A
phenny U+000A (No name found)
17:23 benabik left 17:24 benabik joined
masak .u 001B 17:25
phenny U+001B (No name found)
17:26 benabik_ joined
GlitchMr I've done a check. Almost anything except for \C seems to be realistic to be ported. 17:26
\C being octet
sorear unicode control characters don't have Names for some stupid reasons
they do have Unicode_1_Names, which the docs for \N (our \c) in UTS18 recommend using 17:27
even when other parts of the spec say Unicode_1_Name is obsolete
flussence Do P6 regexes work on Bufs? \C wouldn't even matter in that case. 17:28
17:29 benabik left, benabik_ is now known as benabik
GlitchMr www.dropbox.com/s/1463kw7p6fbh3kp/...0perl6.ods 17:29
Besides, \C sounds so dangerous that I doubt many have used it
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
[:bytes .] 17:33
GlitchMr oh, ok
Thanks :)
sorear nobody implements it and I doubt anyone will soon
GlitchMr I guess that :bytes would return Buf
(actually, I think that :bytes shouldn't work on anything that isn't Buf) 17:34
masak pmichaud: ping
GlitchMr Str.bytes already went
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. :(
masak: Seems type objects get lost somewhere in the collected context. 17:36
masak: Whereas subs dont.
pmichaud TimToady: I have your t-shirt available also
jnthn Or somehting like that.
pmichaud masak: pong
jnthn I spent an hour on it a while ago...
masak jnthn: oh, ok.
jnthn I expected to find a defined check or something somewhere but...no dice
masak jnthn: I got a report for it on URI.pm
jnthn: do you happen to have the RT # handy? 17:37
jnthn 'fraid not here
jnthn has it open on a browser window on his dev machine at home :P
s/window/tab/
masak greps for REPL 17:38
rt.perl.org/rt3/Ticket/Display.html?id=114308 17:39
pmichaud jnthn, masak, sorear: shall we head over to the pre-meeting soon? 17:45
masak pmichaud: yes, let's. 17:47
jnthn aye 17:48
sorear let's.
jnthn is at a good stopping pont
er, point
masak .oO( the bridge of no return )
jnthn
.oO( like a bridge over troubled typing... )
pmichaud ponts are not necessarily good places to stop. be on one side or the other :)
masak .oO( I'm on the fence about which side of the pont I should be on... ) 17:49
17:50 Helios left
masak & 17:52
17:55 Helios joined 18:02 MayDaniel joined, cognominal joined 18:10 Helios left 18:12 Helios joined 18:22 spider-mario left, benabik left 18:25 erkan left 18:32 erkan joined, erkan left, erkan joined 18:37 Circlepuller joined 18:38 Circlepuller_ left 18:42 cognominal left 18:45 fridim_ joined 18:49 fridim_ left, fridim_ joined 18:52 mathw joined
mathw Good evening! 18:52
japhb o/ mathw 18:59
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.
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.
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:04 GlitchMr left
moritz home 19:10
19:19 birdwindupbird joined 19:23 cognominal joined 19:24 uniejo joined 19:25 uniejo left 19:26 uniejo joined 19:34 cognominal left 19:37 cognominal joined 19:40 Helios left 19:41 Helios joined 19:51 nodmonkey joined 19:57 uniejo left 19:59 cognominal left 20:03 raiph joined
raiph hi 20:05
moritz hi raiph 20:06
raiph what's #p6p5? 20:07
moritz raiph: see perlgeek.de/blog-en/perl-6/2012-quo...-perl.html 20:09
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:27
20:28 colomon joined 20:33 birdwindupbird left 20:47 vlixes joined 20:49 benabik joined 20:55 Circlepuller_ joined 20:57 Circlepuller left, vmspb joined 21:01 kaare_ left 21:09 vmspb left 21:15 spider-mario joined 21:26 UncleFester6 left
raiph moritz: thanks. 21:29
phenny, tell GlitchMr 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.
masak hi, #perl6 21:33
jnthn lolitsmasak! 21:34
pmichaud good evening, #perl6
jnthn pmichaud: oh, you weren't far behind us in leaving :)
pmichaud not too far, no.
masak jnthn: they must've tailed us back to l'hotel ;)
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:35
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 :)
jnthn :)
pmichaud moritz++ # excellent writeup of #p6p5 21:37
sorear good odding #perl6 21:39
masak pmichaud++ # ô
sorear++ # odding
21:48 Circlepuller_ left 21:49 Circlepuller_ joined 21:57 benabik left 22:01 UncleFester6 joined
dalek ecza: 51face1 | sorear++ | lib/CodeGen.cs:
Auto-fetch in (unbox) to reduce boilerplace a bit
22:03
ecza: ec0eab3 | sorear++ | lib/ (2 files):
Low-level backend support for sockets
ecza: e441498 | sorear++ | examples/sock.pl:
Minimal implementation of sockets (not in setting yet)
masak sorear++ # IO::Socket::INET 22:06
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(...)␤»
..rakudo 763b85: OUTPUT«C.new(a => "red")␤»
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…
..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 sergot left
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:␤------> my Rat ⏏$r .= new(3, 5)␤␤»
..rakudo 763b85: ( no output )
UncleFester6 p6: my Rat constant $r .= new(3, 5)
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/…
..rakudo 763b85: OUTPUT«===SORRY!===␤Default constructor only takes named arguments␤»
UncleFester6 I sort of think that .= on constants like this should be disallowed with a nicer error message ... 22:09
masak agreed.
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.
UncleFester6 thx, I will I just wanted some feedback on my understanding of the problem .. 22:11
LTA
pmichaud p6: my Rat constant $r .= new(:num(3), :den(5)); # checking
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…
..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/…
jnthn That's CERTAINLY a bug! 22:12
(mis-code-gen)
I dunno what it should do though.
Maybe work somehow
tadzik pass what?
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?
pmichaud the messages from the earlier example were technically correct; they were complaining about the argumetns to .new
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?
tadzik: 19:04Z <japhb> tell tadzik Sorry, I meant the *original* PERL6LIB should be entirely disabled during bootstrapping ...
tadzik /o\
sorear o/ tadzik
jnthn pmichaud: yes, those were
tadzik \o 22:13
pmichaud p6: my Rat $r .= new(:num(3), :den(5)); # checking
p6eval niecza v19-26-g025a6e6: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/ks2nVrYzpy line 1:␤------> my Rat ⏏$r .= new(:num(3), :den(5)); # checking␤␤Unhandled exception: No value for parameter '$n' in 'Rat.new'␤ at /home/p6eval/niecza/lib/CORE.se…
..rakudo 763b85: ( no output )
tadzik japhb: you are probably right
pmichaud p6: my Rat $r .= new(:num(3), :den(5)); say $r; # checking
p6eval rakudo 763b85: OUTPUT«0␤»
..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…
sorear anything with "error:imcc:syntax error" is 110% a bug, unless you used Q:PIR
tadzik japhb: I'm very sensitive in terms of touching bootstrap.pl when it's working :)
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
masak pmichaud: 0!? 22:14
pmichaud I guess I'm okay if we think of reassignment as being disallowed.
masak: I passed the wrong named args, apparently.
masak oh!
pmichaud p6: my Rat $r .= new(:n(3), :d(5)); say $r; # checking
p6eval niecza v19-26-g025a6e6: OUTPUT«0.6␤»
..rakudo 763b85: OUTPUT«0␤»
masak :nu and :de?
oh, those were right for Niecza... :)
pmichaud apparently there's not a consistent Rat.new definition :-(
sorear It's common enough that I'm tempted to dwim it
pmichaud p6: my Rat $r .= new(:nu(3), :de(5)); say $r; # checking
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
..rakudo 763b85: OUTPUT«0␤»
masak oh, come on, Rakudo!
if those attributes are public, they should be spec'd.
and then the implementations shouldn't disagree on them.
pmichaud p6: my Rat $r .= new(:numerator(3), :denominator(5)); say $r;
p6eval rakudo 763b85: OUTPUT«0␤»
..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…
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
pmichaud method new(NuT \nu = 0, DeT \de = 1) { 22:17
that looks wrongish.
but it does mean:
sorear agh, right, Rat is polymorphic\
pmichaud r: my $r = Rat.new(3,5); say $r; # should work
p6eval rakudo 763b85: OUTPUT«0.6␤»
pmichaud r: my Rat $r = Rat.new(3,5); say $r; # should work
p6eval rakudo 763b85: OUTPUT«0.6␤»
pmichaud r: my Rat $r .= new(3,5); say $r; # should work
p6eval rakudo 763b85: OUTPUT«0.6␤»
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␤»
sorear r: my constant Rat $r .= new(3,5); say $r;
p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Missing initializer on constant declaration␤at /tmp/3UZMWEXzB2:1␤»
pmichaud p6: my Rat constant $r .= new(3,5); say $r; # should work
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:19
..rakudo 763b85: OUTPUT«===SORRY!===␤Default constructor only takes named arguments␤»
UncleFester6 r: my Rat $r; $r .= new(3,5); say $r;
p6eval rakudo 763b85: OUTPUT«0.6␤»
pmichaud why is it looking at the Default constructor, I wonder?
UncleFester6 r: my Rat constant $r; $r .= new(3,5); say $r;
p6eval rakudo 763b85: OUTPUT«===SORRY!===␤Missing initializer on constant declaration␤at /tmp/5bkfYIbmVp:1␤»
jnthn pmichaud: Maybe an initialization fail 22:20
pmichaud: I mean...it doesn't call on Rat for some reason.
pmichaud anyway, seeing that I agree: BUG 22:21
masak submits rakudobug
moritz: I agree that we should have .ymd and .hms in S32/Temporal... but... 22:22
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:23
22:23 MayDaniel left
geekosaur recalls a bunch of "don't hardcode a preference for one particular date / time system" back then 22:24
...claiming it belonged in a module
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?
phenny japhb: I'll pass that on when tadzik is around.
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
..features.".
quietfanatic I believe there's a standard cross-culture seperator for hms but not for ymd. 22:26
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
quietfanatic, that's why ymd properly has an optional separator param (as does hms, actually).
quietfanatic ah
geekosaur not to mention that the US uses mdy order and much of europe uses dmy
japhb (The proper defaults for which are the ISO 8601 standard) 22:28
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
(trivial, actually)
s/one the/one that/ 22:29
quietfanatic trivial assuming we don't have computers by the year 10000
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:30 fridim_ left
masak :) 22:31
quietfanatic japhb: yes, though it's possible that we might refer now to dates later.
geekosaur did not really intend to touch off the bikeshed all over again... /o\
masak I'm fine with it this time around.
japhb quietfanatic, now now, don't taunt geekosaur. ;-)
quietfanatic wouldn't be sad with something like now.fmt('%y-%m-%d')
masak but it might have been bikeshedding that made me decide to leave them out last time. 22:32
sorear +1
quietfanatic Ah, I didn't realize this was a bikeshed already
masak no no, this is good.
please go on. :)
quietfanatic: I've decided I don't like formatting strings anymore.
diakopter who gets to define what's a bikeshed anyway
quietfanatic well, fmt wouldn't be right, but a similar mechanism
masak diakopter: the meta-bikeshedders.
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.
diakopter :)
quietfanatic given now { "{.y}-{.m}-{.d}" }
masak quietfanatic: formatting strings are insufficiently language-y. 22:33
quietfanatic: yes, that's much better.
r: given Date.today { say "{.hour}:{.minute}:{.second}" }
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␤␤»
masak aww 22:34
masak czhechs the sauce
sorear datetiime?
masak indeed.
r: given DateTime.now { say "{.hour}:{.minute}:{.second}" }
p6eval rakudo 763b85: OUTPUT«0:34:51␤»
masak I blame general lateness.
pmichaud datetiiiiiiiiiiiiiiime 22:36
masak r: say (.hour, .minute, .second).fmt("%02d", ":") given DateTime.now
p6eval rakudo 763b85: OUTPUT«00:36:17␤»
pmichaud I blame a sticky keyboard.
masak :P
the above is quite nice, and very readable, I think.
granted, `DateTime.now.ymd` is a lot shorter. 22:37
so maybe we should put it in there.
quietfanatic Ah, yes, interpolating strings directly would cause problems like 0:11:4
sorear DateTime.now.fmt('%d/%m/%y') would also be shorter
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
sorear: yes, but that would further overload format strings, and I don't like format strings.
quietfanatic yes, but it'd need a different name from .fmt
masak quietfanatic: not really; we could steal .fmt for that for DateTimes.
quietfanatic I'd expect .fmt to coerce to string and format 22:39
Even if DateTime isn't Cool, that's what I'd expect.
*coerce to Cool
masak you don't coerce to Cool. either you're Cool or you're not :P 22:40
quietfanatic right right
sorear masak: prefer c++ iomanip? 22:41
masak sorear: haven't seen how C++ does formats.
sorear: but my main kvetch about format strings is that they, like p5 regexes, are insufficiently AST-y.
they're just flat strings when they should be full compilable sublanguages. 22:42
quietfanatic sorear: Do you mean cout << astring << ":" << anumber << endl ?
masak oh, that bit. I don't have much sympathy for that part of C++.
quietfanatic Neither do I. I just use printf instead.
sorear quietfanatic: I'm more talking about putting << width(2) << fill('0) in the middle
quietfanatic oh, you can do that? 22:43
sorear yeah, because %02d is horrible
quietfanatic C++ gets weirder every time I learn a new feature
%02d is indeed horrible, but I know it already. :) 22:44
...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
I could get behind a macro/slang form for strftime patters 22:46
it doesn't have to be runtime checked (ew)
masak quietfanatic: we have sprintf in Perl 6.
sorear: yeah, something like that.
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.
quietfanatic masak: Yeah, and I think it's for the purpose of historical cohesion primarily. 22:47
22:47 whiteknight joined
jnthn sleep & 22:47
sorear o/ whiteknight
whiteknight hello sorear
22:47 whiteknight is now known as Guest82297
japhb Guest82297, Why do you join as whiteknight and then guestify yourself? 22:48
Guest82297 japhb: it isn't intentional
22:48 Guest82297 is now known as wknight8111
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
22:48 wknight8111 left, wknight8111 joined
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:48
quietfanatic Going through a string-like representation to generate formats could be an unnecessary step. 22:49
japhb geekosaur, ah, forgot about that
wknight8111 I'm registered as "wknight8111", but I haven't set my my client to use that nick on this network
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.
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.
quietfanatic: it's not just backwards-compat. sometimes that's just the level to solve the problem on.
quietfanatic masak: Hmm, perhaps so
I should take as evidence that even aggressively functional languages tend to provide a sprintf-like thing. 22:52
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:53 thelazydeveloper left
japhb (Especially the extended forms that allow argument rearrangement and suchlike) 22:54
masak right.
sorear wonders how strftime could be made to handle formal Japanese dates
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.
quietfanatic sorear: strftime("%Y年%m月%d日"), you mean? 22:55
Oh, you mean the eras and stuff
sorear quietfanatic: I'm thinking the ones that start with Heisei 21, yeah 22:56
22:56 UncleFester6 left
quietfanatic Yes, we should let people mark time by their own emporers, not just ours 22:56
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.
japhb point. 22:58
masak +1
quietfanatic fmt/%02d:%02d:%02d/ <-- consider
in matching with rx// 22:59
masak ooh
quietfanatic *in parallel, I mean
.oO(matching means something else in this context)
japhb quietfanatic, that's a rather nice idea 23:00
sorear macro fmt() is parsed(/ [ <![%]> | '%' \d* <[cdfs]> ]* /) { ... }
needs a '/' at begin & end 23:01
quietfanatic and it generates something like an N-ary function that can be made at compile-time.
japhb sorear, and a pile more cases. ;-)
sorear =for masak
quietfanatic well, it's a quoting form, so it could take any character as delimiters
sorear eek how to provide access to <quibble> from slangs 23:02
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
masak sorear: ugh, 'is parsed'... :) 23:04
'night, #perl6
quietfanatic night masak
sorear 'night 23:05
japhb o/ 23:06
23:20 wknight8111 left 23:48 cognominal joined 23:54 zhutingting joined, cognominal left 23:56 gongyiliao left