»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
eternaleye preflex: tell lizmat in S17, under 'Supplies', the fact that the Supply class is punned from the role is noted twice in close succession. It scans awkwardly, and I'm not sure the second is necessary. 00:09
preflex Consider it noted. 00:10
timotimo o/
eternaleye I also want to note that all of that stuff looks REALLY shiny. 00:11
timotimo all the parallelism stuff? 00:12
00:17 eternaleye left
timotimo there's an nqpmu coming out of nowhere :( 00:17
lue r: class Foo { has $.Bar }; my $a = Foo.new; $a.Bar := 42; say $a.Bar 00:20
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/S253BWHHBg␤Cannot use bind operator with this left-hand side␤at /tmp/S253BWHHBg:1␤------> s $.Bar }; my $a = Foo.new; $a.Bar := 42⏏; say $a.Bar␤ expecting any of:…»
..rakudo-jvm 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/EGIlMDykcf␤Cannot use bind operator with this left-hand side␤at /tmp/EGIlMDykcf:1␤------> s $.Bar }; my $a = Foo.new; $a.Bar := 42⏏; say $a.Bar␤ expecting any of:␤ …»
lue :(
timotimo that seems dangerous
lue (I can guess why it's not working too.) 00:21
timotimo: It's kinda critical for DLX though.
timotimo what's DLX?
lue Dancing Links used to implement Algorithm X: en.wikipedia.org/wiki/Dancing_Links 00:22
timotimo well, try making a .bind_bar method 00:23
internally you should be able to bind
probably just not when it's returned by an is rw sub
00:24 raiph joined
lue oh yeah, I keep forgetting that parameters aren't copies by default :) 00:24
timotimo: my guess is that binding through a function is what's the problem, not classes. 00:25
(i.e. if Foo.Bar accessed the attribute directly it would work)
timotimo i don't think i follow 00:26
the default implementation of Foo.Bar you get is just method Bar() is rw { $!Bar }
lue timotimo: what I mean is that going through a method to access the attribute causes problems. By "directly access" I mean "imagine Foo!Bar was the external version of $!Bar" 00:29
r: class Foo { has $.Bar; method bBar($a) { $!Bar := $a } }; my $a = Foo.new; $a.bBar(42); say $a.Bar 00:30
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«42␤»
timotimo yeah, that works
lue meh, I'm not a fan of := being broken like that. At least I have a solution. timotimo++ :) .
timotimo hmm, broken? maybe 00:31
lue I mean "broken" in the sense of "= works, why not :=" at least. 00:32
00:32 beastd left
lue Hmm... 00:33
timotimo ah. i got a NQPMu problem because i called it "chain_past" in one place and "chain_post" in another >_< 00:34
that's the new i and j
lue I don't suppose I could define a multi sub infix:<:=> that triggers on certain methods of a class, could I? :) 00:35
00:36 xinming joined
timotimo i think you could 00:36
it doesn't sound like a good idea, though
consider using a hash instead of a class there
there you can bind fo' sho'
lue Array of Hashes :) . Fair enough, considering my classes look like C structs :P 00:37
00:37 ponbiki joined
lue I considered hashes for a moment but then ignored the idea, because I forgot I could keep the collection of Hash nodes in an array :) . I lose a bit of semantic information, but not much. 00:38
00:38 Ben_Goldberg joined, BenGoldberg left 00:39 Util_ joined 00:42 noxgirl joined 00:45 Util left 00:46 autumn left, ingy left, aindilis` joined
lue r: my @a; @a.push(Hash.new()); say @a.perl; say +@a; 00:46
00:46 aindilis left
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new()␤0␤» 00:46
lue Wha...?
r: my @a; @a[0]<A> = "B"; say @a.perl; say +@a; 00:47
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new({"A" => "B"})␤1␤»
timotimo nope.
00:47 xinming left, dayangkun joined
lue timotimo: am I crazy...? (There's still no element if I push a new Hash with stuff in the .new()) 00:48
00:48 xinming joined
timotimo i'm confuse 00:48
lue r: my @a; @a.push(Hash); say @a.perl; say +@a;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new(Hash)␤1␤»
lue *sobs* 00:49
timotimo oh
push will listify the argument perhaps?
lue r: my @a; @a.push(Hash.new(A => "B")); say @a.perl; say +@a;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new()␤0␤»
timotimo my internet connection is acting up, sorry
try Hash.new(...).item
lue r: my @a; @a.push(Hash.new(A => "B").item); say @a.perl; say +@a; 00:50
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new({})␤1␤»
lue timotimo: at least I automagically create a hash when doing @a[0]<key> . Which'll be the workaround I guess.
( instead of doing @a.push(Hash.new(key => stuff)) ) 00:51
r: my @a; @a[*-1] = Hash.new(A => "B"); say @a.perl; say +@a; 00:52
camelia rakudo-jvm 0bf3de: OUTPUT«Cannot use negative index -1 on Array␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2607␤ in any find_method at gen/jvm/Metamodel.nqp:945␤ in block at /tmp/WU5ZHPYBE4:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles…»
..rakudo-parrot 0bf3de: OUTPUT«Cannot use negative index -1 on Array␤ in method <anon> at gen/parrot/CORE.setting:12025␤ in any at gen/parrot/Metamodel.nqp:2691␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤ in any find_method at gen/parrot/Metamodel.nqp:9…»
lue r: my @a; @a[0] = Hash.new(A => "B"); say @a.perl; say +@a;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new({})␤1␤»
00:54 dayangkun left, ingy joined 00:57 tadzik left
lue & 00:58
diakopter tadzik: so train 01:06
01:06 stevan_ joined 01:08 stevan_ left 01:23 cognominal left 01:28 cognominal joined
timotimo hmm 01:33
01:34 xinming left 01:47 xinming joined 01:48 preflex_ joined, ChanServ sets mode: +v preflex_ 01:49 preflex left, preflex_ is now known as preflex 02:00 thou left 02:14 araujo left, eternaleye joined 02:16 szbalint_ left, szbalint joined 02:29 araujo joined 02:37 aindilis` left 02:39 aindilis` joined 02:44 tadzik joined 02:47 rurban1 joined 03:03 FROGGS[mobile] left 03:05 jnap left 03:20 sunnavy joined 03:29 kaleem joined 03:43 kaleem left
Mouq r: Hash.new(A => "B").gist.say 03:48
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«().hash␤»
Mouq r: Hash.new((A => "B")).gist.say 03:49
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«("A" => "B").hash␤»
colomon Mouq: you're sending a named argument to .new in the first.
Mouq r: my @a; @a.push(Hash.new((A => "B"))); say @a.perl; say +@a; 03:50
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new("A" => "B")␤1␤»
Mouq I know, I'm debugging what lue wrote a few hours ago :p
lue what. 03:51
Mouq r: my @a; @a.push(Hash.new(Hash.new((A => "B")))); say @a.perl; say +@a;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Array.new("A" => "B")␤1␤»
colomon Mouq: grooby
er, groovy
lue colomon: Are you suggesting Hash.new doesn't accept named arguments as a way of setting hash kv pairs? O.o 03:52
Mouq I think that might still fall into the realm of bug though
lue r: Hash.new("A", "B").perl.say 03:54
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«("A" => "B").hash␤»
Mouq »my class Hash { … method new(*@args) {« a sig of "(*@args)" ignores named params 03:55
rn: named-param(A => "B"); sub named-param (*@not, :$A) { say "{@not.gist//0}, {$A.gist//0}" } 03:56
lue Worst part is is that I can't decide if I like throwing away the purpose of named arguments for Hash.new :/
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«, B␤»
..niecza v24-108-g17d73e4: OUTPUT«(timeout)[auto-compiling setting]␤»
lue (for the theoretical Hash.new(<pairs as positional>, :carefully) future that is)
Ben_Goldberg I think Hash.new ought to warn if you pass in named parameters 03:57
lue Ben_Goldberg: agreed. If named params have to be kept as not-Pairs-for-Hash, it'd be nice if I was told it's not gonna do what I want.
Mouq r: Hash.new(my%=:A<B>).gist.say 03:58
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«("A" => "B").hash␤»
Ben_Goldberg Actually, in general, perl6 ought to warn if you pass named parameters to a subroutine, which, based on it's prototype, will only throw them away.
s/prototype/signature/ 03:59
Mouq I think it's best if Hash.new throws them away. It's annoying, but it's annoying in a consistent way :p 04:05
r: #`««What do pirates say when they realize their code is buggy because the pairs they're trying to pass are named arguments?»» say :not-arrrg 04:09
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«␤»
04:13 ssutch left 04:17 preflex_ joined 04:18 ChanServ sets mode: +v preflex_ 04:20 preflex left, preflex_ is now known as preflex
lue Mouq: but at least for Hash.new, not necessarily all functions, I should be warned of the throw-away. Something tells me Hash.new() over time throws away the majority of useless named args in all of Perl 6 :) 04:21
s/majority/plurality/ to be accurater.
04:21 dwarring joined
dwarring I've put up my poker hand analyser on rossettacode - rosettacode.org/wiki/Poker_hand_analyser 04:25
slightly evolved from the one I gisted here a couple of days ago
also created a new draft task 04:26
timotimo extra credit if you use the unicode symbols for the cards themselves
dwarring so its the only entry there at the moment
timotimo i think there's one for each combination of 2 through A and the four suits
TimToady should allow uppercase
dwarring there if anyone want to critique/improve etc 04:27
04:27 xinming_ joined
TimToady s:g/were/where/ 04:28
04:28 xinming left
dwarring timotimo: missed that one - hope it's sufficiently different 04:28
timotimo en.wikipedia.org/wiki/Playing_cards_in_Unicode :)
dwarring TimToady have tweaked 04:29
timotimo 🃌 - my terminal displays it as a two-width questionmark-in-rhombus, but only takes a single space of width for it >_<
TimToady they are up in the area that Java doesn't really believe in yet :) 04:30
dwarring timotimo: saw that introduced in Unicode 6 . I went a bit more old fashioned
timotimo don't you need to lc the face in there, too?
lue timotimo: my terminal (konsole) has a general problem with characters that display wider than initially guessed (something about a bunch of boxes IIRC) 04:31
timotimo :(
lue (counts for something as harmless as bold fonts; had to disable the bolding part of light colors as a result)
04:32 labster joined, xinming_ left
timotimo ... i want to try Terminology :) 04:32
lue timotimo++ for typing one of the four Unicode cards that don't correspond to a standard deck of cards :)
timotimo er, oops
which one did i paste? >_< 04:33
04:33 xinming joined
lue The Knight face card 04:33
Knight of Diamonds, precisely
TimToady dwarring: oh, it helps if us read the log if you put a remark at the bottom when you edit
timotimo ... that doesn't exist in a standard deck?
TimToady no
04:33 labster left
dwarring righty 04:33
lue A 2 3 4 5 6 7 8 9 10 J Q K are normal. Have yet to find one with C (as it's rendered in my current font, for Chevalier) 04:34
timotimo oh?
right, it's usually the King, right?
lue When I discovered unicode had 🂼🃌🂬🃜 for a whole brand new face value, I've been hoping to come across a 56-card (sans jokers) deck :) 04:35
timotimo: the Knight card is usually represented with kNight or Chevalier because of King, from what I've read.
timotimo right
lue what doesn't help the search for a 56 card deck is that it conveniently refers to 52 card standard + 4 jokers :/ 04:36
Sorry, it's actually Cavalier. I think I was saying "hair-er" instead :P 04:38
timotimo :D 04:39
lue nvm, fr.wikipedia says both are right m)
04:39 xinming left 04:40 xinming joined 04:41 labster joined
TimToady English speakers will take a cavalier attitude to pronouncing it either way. 04:42
lue I'm probably going to end up printing out a deck of cards myself someday, because I want those knight cards! :) 04:43
lue isn't quite sure why he thinks searching for a 56 card deck would fair better if done in French... 04:50
dwarring have added extra credit for unicode timotimo++ 04:52
04:53 colomon left
TimToady but then it's hardly a parsing problem... 04:59
timotimo hehe
we need to have a level in the parsing where we match the full unicode names
TimToady this whole business of wrapping it in a grammar seems rather because-I-can-ish
timotimo yeah, at that point you might as well comb :match with a simple structured regex 05:00
lue Although putting subs in a grammar feels awfully Grammar.nqp-like :)
05:00 xinming left
lue timotimo: <:Name<LATIN CAPITAL LETTER A>> should cover it 05:01
timotimo agreed, i didn't really like that part :\
lue: okay, now how do we do <:Name<LATIN CAPITAL LETTER $<lettername>=.>>? :)
lue <:name(/:sLATIN CAPITAL LETTER $<lettername>=./)> perhaps? /me checks S05 05:02
timotimo are you even serious? o_O
05:02 markov left
timotimo TimToady: ^^ ?? 05:02
lue ah-ha! From S05: 05:03
As a particular case of smartmatching, TR18 section 2.6 is satisfied with a pattern as the argument:
<:name(/^LATIN LETTER.*P$/)>
timotimo my god that is effing amazing
lue to match both 'P' and 'p' in that case, methinks
timotimo: it's kinda critical if you want to, say, get any one Jamo character. 05:04
As the quote I pulled suggests, we have to provide that anyway to be more awesome in Unicode's eyes :) . 05:05
...Oh crud. My "regexes operate on NFG by default" thing for S15 breaks on the <:Name> thing *headdesk* 05:06
timotimo d'oh
05:06 markov joined 05:07 ssutch joined
lue I went the lazy way and just added a "needs fixing" line to my S15 for now :) 05:09
TimToady most such matchers probably want to work only on the base character by default 05:12
so we need syntax for saying you want to match one of the combiners, or any part
timotimo so, would that look like :graphname(...) vs :codename(...)? 05:13
TimToady graphemes don't have names
unless you concat all the codepoint names
lue I wonder if <: shouldn't just implicitly turn an NFG substring to NFC internally, after all you have to operate at codepoints at that point.
timotimo that was my initial, naive thought, yes
perhaps with a ; or a , because those don't occur in natural codepoint names 05:14
TimToady and I'm sayin' the default should be to match the first codepoint
and ignore the combiners
(I suspect)
lue
.oO(LATIN CAPITAL LETTER A - COMBINING DIAERESIS --- IIRC, hyphens can't be surrounded by space in official names)
TimToady otoh, I can argue 'any' semantics by default as well 05:15
lue TimToady: are you suggesting :i by default? I, being a primarily English speaker, can't comment on the effects of this :) .
TimToady hypen would be a bad choice
huh, what does :i have to do with it
lue sorry, :m
TimToady well, maybe that changes the default 05:16
lue maybe instead of hyphen we could use the COMBINING GRAPHEME JOINER? :P
TimToady combiners are not readily confusable with base chars, so if you mention a combiner, obviously you're probably not trying to match a base char
timotimo m)
TimToady where did I put Bill the Cat... 05:17
05:17 xinming joined
TimToady ⊙⨀ 05:17
⧁°⧀
dwarring revising advent post
timotimo TimToady: it took me a few seconds, but now: d'aaw, that's pretty cute :) 05:18
reminds me a tiny bit more of a mouse, actually, the way the nose looks
lue wonders if "ignore combiners" would entail internal conversion of strings to NFD
TimToady well, you have to have all those mapped to NFD somehow
but that can be a lookup by character, no need to convert the whole string 05:19
alternately, you dup all the tables for all NFC chars, but that could get expensive quickly
s/NFC/NFG/ even 05:20
lue wonders how users of an abjad would like to handle Unicode combiners by default
TimToady users!?!? Who cares about them!?!?
timotimo we won't have those for another decade at least! 05:21
05:22 [Sno] left
lue "􏿽xC5􏿽xBF􏿽xCC􏿽xA3􏿽xCC􏿽x87" ~~ /(.)/ --- what do I get out of this? 05:24
TimToady imagines a syntax resembling <?nfd .+ <:name(/DIAERESIS/)> <:name(/CIRCLE/)> .* > 05:25
lue by the way strongly advises against ever assuming one of the Kompatability forms, for obvious reasons :) .
TimToady mostly ignores the K forms
lue ah yes, regex name matching. Of course :)
TimToady that is, <?nfd regex> would match the nfd expansion of the current character 05:26
except that's 0-width with ?, so maybe just <nfd regex> 05:27
but then you capture it as $<nfd>, so maybe we want punctuation there 05:28
lue
.oO( m/<:Name(m/<:Letter>+/)>/ )
TimToady well, the nfd expansion of sort of a property, so maybe <:nfd regex >
lue frantically looks at his keyboard for a new symbol for the X <X nfd>
*the X in 05:29
TimToady sayin' we might be able to overload : for that
as long as there's no nfd property to confuse it with
lue My PropertyAliases.txt lists no NFD property :), nor NFC, NFKD, or NFKC 05:30
(there *are* properties that match /NFC/ and such, but not /^NFC$/ and such) 05:31
TimToady std: / <= regex > / # isn't taken
camelia std 3b262af: OUTPUT«===SORRY!===␤Unrecognized regex assertion at /tmp/isNv3lMoGq line 1:␤------> / <⏏= regex > / # isn't taken␤ expecting assertion␤Parse failed␤FAILED 00:01 122m␤»
TimToady though that wouldn't look good with a foo= in front 05:32
05:32 rurban1 left
lue I'm almost tempted to suggest unicode chars to replace the : in <:Letter> and for the * in <*nfd> :D 05:32
TimToady: that's why I dismissed the = on my keyboard :)
.oO( /<☃Letter> <☄nfd>/ is of course a choice there :P)
05:33
TimToady: perhaps <:Letter> and <;nfd> ?
there's also <_nfd> I believe
TimToady not sure I want to spell out 'nfd' all the time 05:34
could get huffmanly old
lue fwiw, I gave regexes :nf* adverbs in my provisional S15 :)
TimToady </ regex> for 'divide up the grapheme' :) 05:35
or </ regex /> for symmetry :) 05:36
lue :D </stuff> sounds good. Would that do NFG ?? toNFC !! keepNF
$string ~~ / </sarcasm> /
05:37 Ben_Goldberg left, rurban1 joined
lue TimToady: are you suggeting </ for </Letter> or </nfd> or </ :Letter + alpha ...> ? 05:38
TimToady I'm suggesting that </ ... /> converts the current grapheme to NFD and then matches on that 05:44
so if you took the ... literally there, it would only match a grapheme whose NFD was at least 3 codepoints 05:45
if you want to name something inside, you embed a <:name...>
it's just a normal regex, except against the NFD expansion 05:46
s </ ^. /> matches (uselessly) the base character
*so
</ .+ <:name(/COMBINING/)> /> would match any char with a combiner whose name mentioned "COMBINING" 05:47
presumably we'd allow <m/ /> as well 05:48
or <m[ ]> etc
lue oh, so "a" ~~ </ /> as an alternative to "a" ~~ / / then. (Or are you thinking of a <( )> style regex construct?) 05:50
TimToady this is an assertion inside some other regex 05:51
like <[a..z]>, only the character it's matching is treated as an exploded grapheme
lue ah, so $stuff ~~ / <rules> <and> <rules> \s+ </ hello /> / . I like that :) 05:52
Although for a second I thought maybe, like <( )>, you could do / <pre-stuff> </ explode the rest /, though I'm perfectly OK with that not happening. 05:54
TimToady I think it has to be properly delimited on both ends
unlike <( )>
lue yeah, I just thought of / matching stuff /> occurring in code (not sure what the > is doing at that point in Perl 6 though ☺) 05:55
r: say "foo" ~~ m( <(foo)> ) 05:56
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/FGdYvP1kJR␤Undeclared routine:␤ m used at line 1␤␤»
..rakudo-jvm 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/hF1i2paTWN␤Undeclared routine:␤ m used at line 1␤␤»
TimToady std: say "foo" ~~ m( <(foo)> )
camelia std 3b262af: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'm' used at line 1␤Check failed␤FAILED 00:01 124m␤»
lue oh, I guess you can't use () on quoting constructs then?
TimToady nope, nor #
nor : really 05:57
std: m : foo :
camelia std 3b262af: OUTPUT«===SORRY!===␤Colons may not be used to delimit quoting constructs at /tmp/AfYYwS4xOL line 1:␤------> m :⏏ foo :␤ expecting colon pair (restricted)␤Parse failed␤FAILED 00:00 120m␤»
lue r: say q♯ahem♯
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«ahem␤»
TimToady nope, we simply disallow :
std: say "foo" ~~ m ( <(foo)> )
camelia std 3b262af: OUTPUT«===SORRY!===␤Bogus term at /tmp/fneXPZhgCG line 1:␤------> say "foo" ~~ m ( <(foo)> ⏏)␤Parse failed␤FAILED 00:01 125m␤»
lue there's an option for those who insist on doing q# # in P6 :) 05:58
TimToady there are many octothorps in Unicode
lue TimToady: I'm not convinced a <m/ /> synonym is necessary, unless you want that synonym to mirror the bracket-availability-expansion that m// (or m[], or m⦃⦄) provides. 06:01
.oO( / / and m/ / and m⟅ ⟆ --> </ /> and <m/ /> and <m⟅ ⟆> )
06:02
TimToady that's what I was thinking 06:03
though arguably it should be spelled <d/ /> 06:04
(for "decompose")
or <D/ /> just to be dramatic 06:05
lue Hm. Yeah, <d//> would keep people from incorrectly assuming it's a seemingly useless "embedded subrule" thing or something :)
TimToady since NFD is usually capitalized
lue <💣/ /> (though my fonts aren't cool enough to have this character yet.) 06:06
TimToady well, decompose should be 💩 or some such 06:07
std: m⌗ ... ⌗ 06:08
camelia std 3b262af: OUTPUT«ok 00:01 122m␤»
lue
.oO(or even <✺/ />, for a Unicode character I can see)
06:09
Would :nf adverbs for regexes still sit right with you in light of <d/ /> ? Or would they be better expressed as <g/ />, <d/ />, <c/ />, <kd/ />, and <kc/ /> now? :) 06:10
(or rather, <G/ />, <D/ />, etc.)
TimToady std: m井 ... 井 # probably won't work 06:11
camelia std 3b262af: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'm井' used at line 1␤ '井' used at line 1␤Check failed␤FAILED 00:01 121m␤»
06:11 wbill joined 06:12 Mouq left
lue
.oO( <:Mark> would be better than <:Name(/COMBINING/)> to find combiners I believe? )
06:12
TimToady sure
I dunno, the adverbs and <D[]> don't entirely overlap in functionality 06:13
06:13 rurban1 left
TimToady <D[]> is specifically scoped to a single grapheme 06:13
lue oh hey, I just found our Friendly Unicode Version™ of \o/ --> 🙌 /me needs to find/make a supplementary font
TimToady: oh! that's not how I was considering <D/ /> at all. I'll make the appropriate mental adjustments :) . 06:14
TimToady yes, it's very like <[]> that way, it's just the class of characters whose NFD matches a regex :) 06:15
lue
.oO("The <D/ /> construct breaks down a single character in NFD form. This therefore becomes useless when used alongside the :nfd and :nfkd adverbs")
06:16
TimToady much as <G/ /> is useless under :nfg :)
lue takes that as an implicit endorsement of the other <*/ /> forms I listed
er, s/I/he/ # must maintain POV 06:17
TimToady more than one wishes to assume generality is preferred over specificity whenever practical
lue I wonder if S05|S15 would then benefit from a small warning that order of combiners is set, and aside from learning this ordering, to surround the specific combiner you want to match with <:Mark>* (specific combiner) <:Mark>* 06:19
TimToady well, .* <:Foo> .* is fine for "any" semantics 06:20
you already know the first . is the base codepoint and the subsequent .* is marks
well ^. is the base 06:21
lue by "any" semantics, are you referring to something similar to when I say NF* (as in, "any NF")
TimToady with the possible exception of weird graphemes like CRLF
lue (or is .* <:Foo> .* what goes in <D/ /> ?)
TimToady I mean "any grapheme containing this mark anywhere" 06:22
yes, inside
lue ah, alright.
TimToady <D/ ^ $<base> = . $<marks> = .* $ /> 06:23
lue I'm assuming the base character must be explicitly matched in <D/ />, incase you want to capture it or something. — nvm, you just answered that :)
TimToady and it scans, so you have to use ^ to get base char for sure, unless, of course, what you're scanning for can only be a base
lue some IPA graphemes might give you trouble if you don't ^ though :D 06:24
moritz good morning 06:25
TimToady o/ 06:26
lue morning moritz 🙋
TimToady they should have a left-handed one of those 06:27
lue TimToady: that's what I was thinking :) . But that's a font choice, because it's not named HAPPY PERSON RAISING *RIGHT* HAND :/
(i.e. Unicode would need two new codepoints to encoding which-handed-ness) 06:28
TimToady they should have differently shaped piles of poo while they're at it...
moritz: we're busily creating the syntax for matching NFD-expanded graphemes :)
06:29 salv0 left
TimToady which turns out to simply be a kind of subregex 06:29
lue By the way, I don't trust unicode enough to believe <D/ ^ $<base> = . $<marks> = .* $ /> is eqv. to <D/ ^ $<base> = [<!:Mark> .] [<!:Mark> .]* $<marks> = [<?:Mark> .]* $ /> 06:30
moritz isn't awake enough yet for that
TimToady lue: other than CRLF, I'm not aware of any graphemes that contain multiple base chars 06:31
lue moritz: That's OK, maybe a couple more grapheme explosions will wake you up. :)
moritz so I'll let you happily bikshave or yakshed or whatever :-)
TimToady but maybe the consortium has been busy that way :)
lue TimToady: like I said "I don't trust Unicode". I imagine the future will be weird. 06:32
06:32 [Sno] joined
lue wonders if the beta UCD 7.0 files will reveal any secrets... 06:32
Ooooh, would we have to redefine \n in regex? /:nfg \n/ can match CRLF, but /:nfc \n/ would just match the CR. /me kinda hopes \n is defined as regex theNameForTheBackslashNTerm { :nfg ... } 06:33
r: say "\x[A,D,D,A,A,D,A,D,D]" ~~ /\n/ 06:37
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«「␤」␤␤»
TimToady we're already basically nfc, so \n can stay abstract as a matcher 06:38
in any case, you probably want \xA for LF and \xD for CR 06:39
lue I'm almost tempted to say CRLF shouldn't be given a negative number by NFG. The whole deal's already bad enough, why complicate matters? :) 06:40
TimToady yes, treating CRLF as a grapheme has smell to it 06:41
lue (CRLF as grapheme also brings into question if those NFG tables should carry any special info, e.g. "CRLF is like a Control character")
unlike most graphemes, I don't think most people who pay attention to CRLF think of it as a singular unit ;)
TimToady well, the question is what $nfg.substr($offset,1) returns if it's aimed at a CRLF 06:43
maybe that's always grapheme -1 :)
lue r: say "hello\r\nworld".substr(5, 1).perl
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«"\r"␤»
TimToady sure, but that's because we're in 'use nfc;'-land right now 06:44
lue of course, I was wondering if substr handled \r\n specially
TimToady has wondered whether we ought to start marking all our current programs as 'use nfc;' to avoid pain when we default to nfg 06:45
lue *cough*use NF :C*cough*
... nah, should probably change all those NF :* to NF* in my gist :)
TimToady should read the spec before someone implements it... :)
lue TimToady: I'm pretty sure the actual spec would say NFC, I just came up with NF :C because I'm not sure why I though two extra chars was worth it. 06:46
TimToady should go pick up his niece from work first though, since her father just had (successful) brain surgery
(that would be my brother-in-law Jon, the one that invented XS. :) 06:47
so he's unlikely to pick her up tonight...
lue Sounds like thing you might want to do, TimToady :)
TimToady later & 06:48
lue edits his S15 to include <D/ /> and friends
06:49 darutoko joined
lue TimToady: I get the suspicion that CRLF is something that most people want to treat as one thing, regardless of the NF* used. (Though doing that sort of cross-NF* "treat as one" might anger people who want to treat them separately if we aren't careful.) 06:55
07:00 Mouq joined 07:05 Mouq left
lue Replaced the NF pragma with slightly-more-huffman NF* pragmas, and added our explosion friends :) [also rm'd the :graphs, :codes adverbs for regexes]. For those who haven't enshrined the link yet: gist.github.com/lue/7761244 07:06
07:10 dwarring left 07:13 kaleem joined 07:24 SamuraiJack_ joined 07:31 xinming_ joined 07:32 xinming left 07:44 xenoterracide left 07:45 xinming joined 07:48 xinming_ left 07:55 grep0r left 07:57 sqirrel joined 07:58 ssutch left 07:59 grep0r joined 08:01 xinming_ joined 08:04 xinming left 08:05 FROGGS joined 08:12 xinming joined, xinming_ left 08:13 ssutch joined 08:15 pochi_ joined 08:16 pochi left
dalek : 6e4de5d | (Tobias Leich)++ | rakudo.patch:
relocate patch chunks
08:18
08:26 salv0 joined
masak antenoon, #perl6 08:29
08:29 xinming left
FROGGS hi masak 08:29
masak ohaio
moritz \o masak, FROGGS, * 08:30
FROGGS o/
:o)
08:31 xinming joined
masak :o/ 08:32
lizmat++ # slicing in slot 13 08:33
looking forward to that one.
08:36 zakharyas joined 08:38 rindolf joined 08:39 Piers_ joined
dalek : 91debb0 | (Tobias Leich)++ | Makefile:
use nqp-p/perl6-p until we have a Build.pm
08:40
: aa010a6 | (Tobias Leich)++ | lib/Perl5/Terms.pm:
avoid unspace
frettled masak masak masak masak masak masak lue lue masak masak masak masak masak masak masak oooh it's TimToady masak masak masak masak masak … (freely based on "Badger badger …") 08:44
08:48 Mouq joined 08:52 denisboyun joined 08:53 Mouq left 08:55 fhelmberger joined 09:23 lue left 09:27 woosley joined 09:29 FROGGS[mobile] joined 09:30 dakkar joined 09:31 sqirrel left 09:35 lue joined 09:44 sqirrel joined 09:53 SevenWolf left 10:03 slavik joined
frettled I didn't mean to kill the channel, sorry :) 10:05
10:06 ssutch left, cognominal left 10:07 cognominal joined
moritz revives again 10:18
10:27 denisboyun left 10:29 denisboyun joined 10:36 Mouq joined 10:37 denisboyun left, denisboyun joined 10:41 Mouq left 10:43 kivutar joined 10:44 Alina-malina left 10:45 stevan_ joined 10:51 denisboyun left, Alina-malina joined 10:54 denisboyun joined 11:11 dmol left 11:14 SamuraiJack_ left
lizmat drops a pin 11:14
preflex lizmat: you have 1 new message. '/msg preflex messages' to read it.
11:18 xenoterracide joined 11:19 raiph left
dalek ecs: d31e097 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
done/quit are named parameters + eternaleye++ suggestions
11:26
11:30 sqirrel_ joined
lizmat starts talking to herself 11:31
nwc10 good, #perl6, #perl6 11:35
11:41 balders_dod_ joined 11:42 balders_dod left, rurban left, rurban joined 11:45 darutoko left 11:46 darutoko joined, sqirrel left 11:49 mtk left 11:58 xenoterracide left 12:06 colomon joined 12:08 atroxaper joined
moritz two rows in a row! 12:14
FROGGS .oO( ===SORRY!=== ) 12:15
12:17 dmol joined 12:19 dmol left 12:21 dmol joined
colomon if you get three rows in a row you can make it a song... 12:40
12:40 dmol left 12:42 atroxaper left, dmol joined
tadzik row, row, row your ===SORRY!=== 12:42
FROGGS gently down the ===SORRY!=== 12:43
tadzik ===SORRY!=== ===SORRY!=== ===SORRY!=== ===SORRY!=== 12:44
12:44 carlin joined
FROGGS life is but a ===PANIC!=== 12:45
that is the funniest part of a TOS episode ever 12:47
12:47 mtk joined
carlin rakudo: my constant minute = 60; my constant hour = minute * 60; 12:48
camelia ( no output )
tadzik FROGGS: there was something like this in TOS?
carlin rakudo: my constant minute = 60; my constant hour = minute * 60; say hour;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«3600␤»
FROGGS tadzik: www.chakoteya.net/movies/movie5.html 12:49
search for "I haven't sung around" and read :o)
carlin rakudo: my constant m = 60; my constant h = m * 60; 12:50
camelia rakudo-jvm 0bf3de: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/mkeGg5UY9U:1␤------> constant m = 60; my constant h = m * 60⏏;␤Couldn't find terminator *␤at /tmp/mkeGg5UY9U:1␤--…»
..rakudo-parrot 0bf3de: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀…»
tadzik FROGGS: heh
moritz carlin: m is a delimiter for regexes, and can cause funny things to happen if use it as a variable or constant without a sigil 12:51
*if you use it
tadzik I think I only watched Khan from the TOS-based films
carlin ahh, that explains it, thanks moritz
FROGGS tadzik: you should watch all of them
tadzik I didn't even watch S03 of TOS :P 12:52
12:53 dmol left
FROGGS I'm sure I missed some episodes... but that's okay since I don't like Western 12:53
12:54 dmol joined 12:57 cooper left 13:01 atroxaper joined 13:02 cooper joined 13:05 mtk left, dmol left 13:06 sqirrel_ left 13:07 SamuraiJack_ joined, dmol joined 13:14 dmol left 13:15 dmol joined 13:16 dmol left
moritz blog.smartbear.com/programming/why-...-programs/ 13:22
13:22 mtk joined
moritz that's a piece about how often the wrong low-level concurrency and synchronization primitives are advertised 13:23
when application level programmers should actually use queues and channels and so on
moritz agrees
FROGGS ohh yes 13:24
13:28 kaleem left 13:30 kaare_ joined 13:40 xenoterracide joined 13:47 slavik left 13:50 hummeleB1 joined 13:57 fhelmberger left 13:58 fhelmberger joined 14:04 jnap joined 14:07 nebuchad` joined, cooper left, zakalwe left, jnap left, nebuchadnezzar left 14:08 nebuchad` is now known as nebuchadnezzar, scottp joined 14:09 jnap joined, zakalwe joined, zakalwe left, zakalwe joined, tmetro left 14:10 ponbiki left, tmetro joined, cooper joined 14:11 hummeleB1 left, PacoAir joined 14:12 awwaiid left, awwaiid joined 14:15 ponbiki_ joined 14:18 hummeleBop1 joined 14:19 ajr joined, ajr is now known as ajr_
dalek rl6-roast-data: 59c331b | coke++ | .gitignore:
ignore new build dir
14:23
rl6-roast-data: f34667d | coke++ | doit:
save rakudo.moar test runs
rl6-roast-data: 8d04356 | coke++ | / (3 files):
today (automated commit)
14:25 ajr_ left 14:31 ajr joined, ajr is now known as Guest63040, Guest63040 is now known as ajr_ 14:33 atroxaper left
[Coke] github.com/coke/perl6-roast-data/b....out#L3058 - moar has a little catching up to do. ;) 14:37
(I know it wasn't ready, I just thought it would be nice to capture the first day it did work.)
-> dayjob 14:38
moritz can't even build rakudo-moar yet
14:42 xenoterracide left 14:45 rurban1 joined 14:47 xenoterracide joined 14:50 Khisanth left 14:53 tgt joined, bluescreen10 joined 14:59 cooper left, atroxaper joined 15:00 thou joined 15:01 sahadev joined 15:04 dmol joined 15:05 cooper joined 15:06 btyler joined 15:09 dmol left 15:10 atroxaper left 15:12 araujo left 15:13 araujo joined 15:16 raiph joined 15:20 vaclavstrachon joined 15:51 dakkar left 15:58 rurban1 left 15:59 salv0 left 16:02 salv0 joined, filly joined 16:03 dmol joined, benabik joined 16:12 ajr_ left 16:13 ajr joined, ajr is now known as Guest54862 16:14 Guest54862 is now known as ajr_ 16:19 rurban1 joined 16:27 [Sno] left 16:28 vaclavstrachon left 16:30 stevan_ left 16:31 stevan_ joined 16:34 Util_ is now known as Util 16:35 xinming left 16:36 kaleem joined 16:38 sqirrel_ joined 16:40 Khisanth joined 16:43 zakharyas left, xinming joined 16:49 stevan_ left, FROGGS left, xinming left 16:50 xinming joined 16:54 gdey joined 16:55 ssutch joined 17:02 FROGGS joined, preflex_ joined, ChanServ sets mode: +v preflex_ 17:03 preflex left, preflex_ is now known as preflex 17:04 kaleem left 17:14 xenoterracide left 17:16 kivutar left 17:20 carlin left 17:22 xenoterracide joined 17:26 xinming left
TimToady would like to think that everyone is off doing Important Stuff :) 17:26
moritz cooks dinner for $family
17:27 fhelmberger_ joined 17:29 sqirrel_ left 17:30 fhelmberger left
colomon …. errr…. somebody was wrong on the Internet? 17:31
no, cooking lunch for $family
17:31 fhelmberger_ left, xenoterracide left 17:32 xenoterracide joined 17:33 Mouq joined
TimToady can't build perl6-m yet either, due to the GC grinch 17:37
17:39 bluescreen10 left
moritz if that's the segfault during building the setting, then I'm in the same position 17:42
TimToady I'm still stuck in compiling m-BOOTSTRAP with Heap corruption detected: pointer 0x2aaaac1b0cf8 to past fromspace 17:44
moritz TimToady: have you valground it?
TimToady no, been doing Important Stuff :) 17:45
17:46 [Sno] joined
FROGGS moritz: valgrind does not help 17:49
moritz FROGGS: :(
benabik It can only trace things to where the GC notices it. 17:50
17:50 carlin joined
carlin rakudo: DateTime.new(now + 18000.0) 17:53
camelia ( no output )
carlin rakudo: DateTime.new(time + 18000.0)
camelia rakudo-jvm 0bf3de: OUTPUT«Default constructor for 'DateTime' only takes named arguments␤ in block at /tmp/fVeNzDpnQU:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:11…»
..rakudo-parrot 0bf3de: OUTPUT«Default constructor for 'DateTime' only takes named arguments␤ in method new at gen/parrot/CORE.setting:800␤ in method new at gen/parrot/CORE.setting:795␤ in block at /tmp/1pmSBvtGf7:1␤ in any at /tmp/1pmSBvtGf7:1␤ in any at gen/parrot/…»
carlin rakudo: DateTime.new(time + 18000)
camelia ( no output )
moritz p: say DateTime.new(time + 18000) 17:55
camelia rakudo-parrot 0bf3de: OUTPUT«2013-12-10T22:56:00Z␤» 17:56
moritz p: say DateTime.now.delta(4, hours)
camelia rakudo-parrot 0bf3de: OUTPUT«2013-12-10T21:56:54Z␤»
TimToady still thinks there's something smelly about the design of .delta 18:05
(4,hours) is just completely bogus 18:06
colomon (4 :hours) ?
TimToady (hours => 4)?
moritz hours => 4 has the problem that it's a named argument, and those aren't ordered 18:07
but order matters
TimToady how can you put hours twice?
moritz in which case?
TimToady wouldn't that go in a different .delta?
TimToady hasn't read the spec in a while...
but it just strikes me that those bogus constants are, well, bugus 18:08
moritz it's more about .delta(1, days, 1, month) being different from .delta(1, months, 1, days)
r: say Date('2013-02-28').delta(1, days).delta(1, months) 18:09
camelia rakudo-jvm 0bf3de: OUTPUT«No such method 'Date' for invocant of type 'Str'␤ in any at gen/jvm/BOOTSTRAP.nqp:1658␤ in block at /tmp/vFbkcwIVjB:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at…»
..rakudo-parrot 0bf3de: OUTPUT«No such method 'Date' for invocant of type 'Str'␤ in any at gen/parrot/BOOTSTRAP.nqp:1674␤ in any at gen/parrot/BOOTSTRAP.nqp:1669␤ in block at /tmp/kj8iXHelz2:1␤ in any at /tmp/kj8iXHelz2:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:114…»
moritz p: say Date.new('2013-02-28').delta(1, days).delta(1, months)
camelia rakudo-parrot 0bf3de: OUTPUT«2013-04-01␤»
moritz p: say Date.new('2013-02-28').delta(1, months).delta(1, days)
camelia rakudo-parrot 0bf3de: OUTPUT«2013-03-29␤»
TimToady I don't mind the positionals for order, but I do mind using 2 positionals for one idea 18:10
jercos Shouldn't the delta use like, a duration object? >.>
FROGGS I like colomon++'s idea then
TimToady well, we're verging back into the whole 'units' discussion here 18:11
and dimensional analysis
colomon Date.new('2013-02-28').delta(1 :months).delta(1 :days) 18:13
TimToady that's still trying to avoid the type system 18:14
Date.new('2013-02-28').delta(Months(1),Days(1))
colomon +1 18:16
TimToady though most units want to be lowercase
.delta(1`months, 1`days)
probably with allowed abbreviations somehow
18:17 kaare__ joined
colomon …. um, -1 to that, I think. 18:18
TimToady .delta(1*months, 1*days) would be an improvement over comma
18:18 kaare_ left
TimToady but I think it's silly to use up all those words without making them real types 18:18
18:18 jeffreykegler joined
TimToady it'll just make dimensional analysis impossible down the road, especially when the units comes in as a separate argument 18:19
colomon: you think you want to force everyone to write 1.5`kilometers instead of 1.5`km? 18:21
colomon it's the whole ` thing I don't like 18:22
TimToady oh, thought you were talking about the abbreviations
(ir clag)--
colomon I don't know why exactly, but I like months(1) vastly better than 1`monbths
TimToady then there's this whole singular/plural problem 18:23
which mo(1) avoids :)
or km(42)
moritz there's a U+241F SYMBOL FOR UNIT SEPARATOR 18:24
TimToady huh
moritz we could use that to start unit postfix operators
colomon what's it look like?
benabik Probably a box. :-D
moritz dunno, my terminal has no font for it
FROGGS
moritz p: say "\x[241F]" 18:25
TimToady um, that's like ␤
camelia rakudo-parrot 0bf3de: OUTPUT«␟␤»
18:25 ajr_ left
raydiak which ^K code is that in vim? :P 18:25
FROGGS it is "us", like the NL
TimToady it's a symbol for a control code nobody uses anymore
benabik Little tiny u_s for me.
TimToady I think that would not work here 18:26
moritz kinda agrees
benabik Perhaps could (ab)use the _. 1_000_km
TimToady <42*km>
42*km is constant folding kinda like 1/7 18:27
FROGGS 1_000.km (km method return the kilometer type)
I guess that does not parse very well
moritz also, km should really return 1_000 meter type 18:28
TimToady that only works as a type coercion, like .Str, since we don't want to put units into numeric types
FROGGS well, 1_000.km could return Kilometer.new(1000)
TimToady so internally 42.km would turn into km(42)
FROGGS right 18:29
moritz and then we want a meter type
m(42)
TimToady yes, well
moritz and the parser will run amok
because it expects a regex
TimToady no it doesn't :)
FROGGS moritz: the type could/should be called Meter
and the .m is just an abbr
TimToady but 42*m is a problem 18:30
colomon Unit::Meter ?
TimToady well, make 'em postfixes, like i
42m 18:31
$foo\m
.delta(1mo, 1d)
FROGGS p: postfix:sym<m>($n) { $n }; say 42m
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/0I1vA6KzaM␤Variable '$n' is not declared␤at /tmp/0I1vA6KzaM:1␤------> postfix:sym<m>($n⏏) { $n }; say 42m␤ expecting any of:␤ postfix␤»
TimToady perhaps one is required to declare which units one will use
benabik p: sub postfix:sym<m>($n) {$n}; say 42m 18:32
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&postfix:<m>' called (line 1)␤»
TimToady no sym
benabik p: sub postfix:<m>($n) {$n}; say 42m
camelia rakudo-parrot 0bf3de: OUTPUT«42␤»
moritz maybe we are deep in "should be in a module" territory
TimToady that's one way to declare it
colomon "should be in a module" +1 18:33
moritz so, the question is whether Date/DateTime also moves to a module, or if we a ccept a hack(ish) for its delta method
TimToady well, some postfixes are built-in already :) 18:34
TimToady is guessing the postfixes are the abbreviations for the longer type coercions
so 42mo returns Months(42) 18:35
moritz not Moritz(42) :-(
TimToady use units <Months Days>;
moritz use Units :Date, :Time; 18:36
TimToady would like 'use units;' to pull in all the units defined by the Unix units(1) program :) 18:37
moritz only available as a section 7 man page here
TimToady that's not the units program 18:38
moritz aye
TimToady not installed by default on many linuxen, apparently 18:39
benabik /usr/bin/units on OS X
raiph TimToady: there's a comment on the adverb advent: (more) 18:40
TimToady "I don’t understand ... 1 || 2 && 3 :adv # applies to && ... why does :adv apply to the &&?
TimToady: the commenter has correctly seen an error in the advent, right? 18:41
TimToady yes, should apply to the ||, since it's looser
raiph thx 18:42
lue: ^^
18:45 Alina-malina left
TimToady r: 1 | 2 & 3 :adv 18:48
camelia rakudo-jvm 0bf3de: OUTPUT«Unexpected named parameter 'adv' passed␤ in block at /tmp/3_zUeh_Asu:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in any command_…»
..rakudo-parrot 0bf3de: OUTPUT«Unexpected named parameter 'adv' passed␤ in sub infix:<|> at gen/parrot/CORE.setting:3232␤ in block at /tmp/UTxhZdldaz:1␤ in any at /tmp/UTxhZdldaz:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.…»
18:48 Alina-malina joined
TimToady note it tried to apply it to infix:<|> 18:48
however, the jvm error appears to be LTA 18:49
well, at least it mentions 'any' 18:50
lizmat FROGGS: looking at your blog post
TimToady but 'any eval' is misleading 18:51
lizmat s/locateable/locatable/
FROGGS k
lizmat maybe s/windows/Windows/ ? 18:53
TimToady Windows® even 18:54
FROGGS k 18:55
lizmat maybe add something like "This will require additional thought in the S11 specification" at the end of the paragraph starting with "Another glitch" ?
18:55 V_S_C joined
FROGGS done so 18:56
lizmat ok, that's what I have, except a lot of questions that will need to be thought about more and tested and specced 18:57
but that will be after enjoying ~6 hours of Hobbit entertainment 18:58
FROGGS :o)
lizmat (as in An Unexpected Journey and The Desolation Of Smaug in one sitting) 18:59
later&
FROGGS lizmat: btw, all that I wrote and explained already works in my implementation
have fun!
19:00 darutoko left
TimToady and the gist of a units type should probably read 42km rather than Kilometers.new(42) 19:02
TimToady is tempted to start talking about Kibometers... 19:03
FROGGS would that work then? :m( 42km ) 19:04
TimToady that's just a pair
Meters(42km) should work 19:05
FROGGS I am thinking about the :16("1234")
TimToady that only works cause :16 in an invalid pair
FROGGS k
TimToady *is 19:06
presumably 42km\m should work too 19:07
or (42km)m
19:07 Rotwang joined
TimToady imagines someone writing 42kmi and wonders what it does 19:08
do imaginary km make sense? 19:09
FROGGS that is like 42km\s but just in minutes :o)
maybe for ppl who go to the gym to eat snickers
geekosaur if you've rotated your coordinate system maybe :p
TimToady that would be a dimensional error
you can't convert km to s
jeffreykegler A few thoughts about Unicode, NFG, etc., which I asked about the other day ... 19:10
FROGGS well, you'd have to know the radius of the earth at that point :o)
jeffreykegler In adding things like ligatures, NFKC, NFKD, NFG, Unicode has crossed the line from representing text to trying to represent typography. 19:11
IMHO, this is not a good idea.
TimToady alas, yes
but humans are notoriously unreliable on the subject of consistency :) 19:12
jeffreykegler The result is to turn an excellent system for representing text into a clumsy partial encoding for some unspecified typesetting system
TimToady one could view ligatures as hints, but not much more 19:13
jeffreykegler I'm not at all convinced hints of this sort belong in Unicode
TimToady well, can't easily take it out now, I suspect 19:14
there are lots of other fuzzy boundaries as well
jeffreykegler True, but I think in my own work I will try to ignore it as much as possible
TimToady why do the dominoes only go up to sixxies? :)
V_S_C Fundamental Units are inconvertible into each other. en.wikipedia.org/wiki/SI_base_unit
TimToady V_S_C: yes, that's what I mean when I say 'dimensional analysis' 19:15
jeffreykegler Re fuzziness, inconsistency: I think design in our field consists perhaps of separating sets of inconsistencies into smaller more containable ones.
TimToady or in some circles, 'dimensionalysis'
V_S_C agrees 19:16
jeffreykegler [ As context, I'd asked about Perl 6 & Unicode the other day, thinking to borrow the Perl 6 approach. ]
TimToady jeffreykegler: "Doctor, will it hurt when I do this?" "If it does, stop." :)
jeffreykegler: we were still designing it last night 19:17
currently we have a form to match a grapheme as if it were expanded to NFD :)
<D/ :!Mark :Mark* /> or so 19:18
similar ideas could hold for <KD/ f f l /> and such 19:19
jeffreykegler Perhaps I am being draconian but ... 19:20
19:20 gdey left
TimToady you'd just like to say "Invalide grapheme" for a ligature :) 19:20
jeffreykegler I'd be tempted to say that (for my own work) that "ffl" is "ffl" is "ffl" ...
19:20 gdey joined
jeffreykegler and if you want to write an encoding for a typesetter, it is up to you to figure out how to do that consistently. 19:21
I have in mind in particular the burden the more complex systems impose on every software module that does things with strings. 19:22
TimToady sure, /ffl/ simply won't match /ffl/ by default
TimToady is all for sane defaults 19:23
jeffreykegler To be clear, I'm not suggesting what Perl 6 should do ...
Just reporting my own conclusions in the matter.
TimToady I don't think Unicode requires us to treat 3 base chars like ffl as a grapheme in any default way 19:24
and if they do, I'm quite capable of ignoring the Unicode Consortium 19:25
19:25 V_S_C_ joined
jeffreykegler I'm thinking in terms of the what happens if I take inside a module (a parser, for example) ... 19:25
Two string that the environment thinks are in different encodings ...
and which that environment expects me to do "the right thing" in comparing, etc. 19:26
19:26 sahadev left
jeffreykegler That has turned into quite the problem. 19:26
TimToady well, we view everything through the lens of NFG by default, and will probably refuse to implement a complete crossbar solution
jeffreykegler "crossbar solution"? 19:27
TimToady you can connect any X with any Y
19:27 V_S_C left
TimToady NFG is more of a star topology 19:27
V_S_C_ Imaginary km as in vector space en.wikipedia.org/wiki/Vector_space#...extensions Maybe some GPS/maps algoritms use it
19:27 tgt left
jeffreykegler So you'd enforce NFG at the portals, and the innards could assume NFG? 19:28
TimToady and we don't promise round-tripping of encodings
that's the default
if someone wants to implement a portion of the crossbar, they're welcome to, but it's not default in Perl 6
19:29 tgt joined
jeffreykegler I see how the choice is tough 19:29
TimToady if someone wants to implement abstract patterns on top of UTF-8 memory rep, they can, but that's not promised
well, we simply don't have enough manpower to attempt the insane thing :)
Perl 5 is about as far as you can drive the insanity of pretending strings are fixed width on top of a variable-width encoding like UTF-8 19:30
jeffreykegler Even the more limited approach does seem (unless I'm missing) quite a burden on the module writer 19:31
TimToady well, depends on how much they want to cheat on the NFG approach
mostly they just need to mark the filehandles
jeffreykegler What of modules that don't see filehandles, just strings? 19:32
TimToady if they're in pure P6, they're just NFG strings through and through
19:32 V_S_C_ left
TimToady if you're pasing back and forth to Java-land, you have to deal with their insanities, of course 19:33
jeffreykegler How about the case of a C library which hopes to be used by Perl 6 ...
TimToady hopefully that can mostly be dealt with at the declarative boundaries, as with filehandes
jeffreykegler but which cannot take advantage of it's library of Unicode routines.
TimToady we will certainly have some C macros/routines for dealing with NFG, since Moar needs 'em too 19:34
19:34 xenoterracide left
jeffreykegler But a library hoping to be portable could not take advantage of the Perl 6 NFG routines 19:34
TimToady or, we convert to NFC/NFD to pass to such a module
for most strings, NFG *is* NFC 19:35
jeffreykegler So the module could say, "Hey guy, I'm NFC only, sorry"
TimToady and we can track whether a given string uses NFG extensions inside, to avoid useless conversoin
sure, we like declarative semantics these days
and we like knowing the exact run-time type of our strings 19:36
we like knowing when something is NFC or NFD, or when it's just a "Uni" of codepoints that could be a mixture
jeffreykegler I've already been burned by utf8 and it's decision to allow the full range of 32/64 bit integers to be encoded.
TimToady we like knowing when a buffer contains UTF-8 already
jeffreykegler (That's in Perl 5.) 19:37
IMHO allowing the invalid characters was not a good idea, but I now have the choice of support it forever or break compatibility.
19:37 araujo left
TimToady well, P5 allows it, but obviously you have to enforce Unicode standards here and there when you do "private use" stuff 19:37
19:38 araujo joined
jeffreykegler This is helpful, because I tempted (in Marpa) to go straight NFC. 19:38
TimToady any given realm is allowed to be picky about that, but I still feel that it's appropriate to be able to think Bad Thoughts in a programming language
dalek kudo-star-daily: 8d07c9b | coke++ | log/ (5 files):
today (automated commit)
TimToady sometimes Newspeak is too restrictive to talk about the universe 19:39
jeffreykegler NFC seems to stick most closely to text representation, and to do the most to avoid trying to make Unicode a poor man's typesetting language
TimToady yes, which is why NFG is just an augmented NFC 19:40
what NFC *would* be if the user's ad hoc needs could always be baked in to the standard :)
and when there are no ad hoc needs, it really is just NFC 19:41
which is, at least in English, most of the time
jeffreykegler Ok, so a strictly NFC and NFG-unaware module would be Perl 6 compatibile ...
TimToady and indeed in most languages where most of the graphemes have precomposed forms
jeffreykegler even if some users found it restrictive. 19:42
TimToady it would have to do minimal conversion most of the time
and the module could be oblivious to that, yes
jeffreykegler I think Unicode got led down the typography road by Devanagari and such things, which are hard cases. 19:43
diakopter Peak of the News to you too
[Coke] is freed up from $dayjob hell for a while. yay
diakopter too
TimToady climbs the Peak because it's there 19:44
TimToady designs Perl 6 because it's not there :) 19:45
19:46 gdey left 19:47 gdey joined
FROGGS hehe 19:47
[Coke] "Larry Wall claims Perl 6 just isn't there." 19:51
TimToady just barely :)
19:52 alester joined 19:53 ajr joined, ajr is now known as Guest58800, Guest58800 is now known as ajr_, gdey left
lue hello world o/ 19:58
timotimo i got my new laptop \o/ 20:00
lue timotimo: \o/ 20:03
FROGGS \o/ 20:04
lue TimToady: for what it's worth, <D/ f f i /> won't match against ffi, that would be <KD/ f f i /> :) 20:05
20:07 Alina-malina left
TimToady didn't I say that? 20:09
lue TimToady: I think I conflated it the KD on the line with <D/ :!Mark :Mark* /> on the line prevous *facepalm* 20:10
TimToady aproximately 51 minutes ago
moritz
.oO( But Mark the Rustic, Haggis-fed, the tremling earth resounds his thread )
20:11
timotimo FullHD on 14" is *amazing* 20:12
20:12 Alina-malina joined
TimToady imagines the personality of Mark Twain Anthony Spitz 20:12
timotimo what did i miss so far today?
TimToady we changed everything, except for the parts we didn't
timotimo ah, cool
for loops are sunk again, right?
is that in rakudo already?
moritz not yet 20:13
extra bonus points for whoever implements that
timotimo will it give us an awesome performance boost just like that or is there some extra work in the optimizer or something to be done?
TimToady if it saves storing a bunch of values, only to throw them away, could be big
timotimo \o/ 20:14
moritz it just involves mucking with list iteration
moritz whistles innocently
timotimo i'll continue setting up my laptop for now
moritz no, not true; I think :sink is already there 20:15
20:15 Alina-malina left 20:16 Alina-malina joined
FROGGS is that correct that all loops can produce values? 20:19
so I could say: my @a = while ... ?
moritz probably my @a = do while .... 20:20
because while is a statement, not an EXPR
FROGGS k
moritz but in principle, yes
lue would be very surprised to find a C/C++ module that could handle NFG strings 20:22
20:23 Alina-malina left 20:24 SamuraiJack_ left, Alina-malina joined, rindolf left
TimToady diakopter++ has one stashed away somewhere... 20:24
20:24 gdey joined
moritz and promised me to push it at YAPC::EU :-) 20:25
TimToady but did he say which year? :D 20:27
diakopter hey wut 20:29
20:29 Mouq left
moritz sorry if that was ambiguous; the promise was made at YAPC::EU 20:31
diakopter didn't promise to push it during YAPC
TimToady my question still stands though :) 20:32
20:32 benabik left
diakopter well. 20:35
I'm not sure I need *that* particular defense
TimToady :D
FROGGS draws signs now saying: We want NFG! We want NFG! 20:36
[Coke] volunteers to give a perl6 talk at an albany.pm meeting, since someone else is pushing to get a meeting with presentations. 20:40
jnthn: would you mind if I used one of your sixpresentations in such a sitch?
[Coke] wonders about perl 6 / objective C interop. 20:41
timotimo how do other languages offer that? 20:44
if at all?
FROGGS guesses that this would be interesting for iUsers
arnsholt I'm not familiar with how Objective C represents things under the hood, but I suspect it'd be at least partially compiler-specific 20:45
[Coke] I wonder if we'd have to emit obj-c as the last step. 20:46
but wouldn't it be nice to write an iphone app in perl 6? ;)
TimToady
.oO(How did we let Apple get away with using up an entire letter of the alphabet like that?)
[Coke] iDunno.
timotimo ... i was about to make that joke :(
er
iWasAboutToMakeThatJoke 20:47
[Coke] iToofast!
moritz i...
[Coke] -> less stressful dayjob.
TimToady -> less stressful nap. 20:49
20:50 hummeleBop1 left
timotimo guess what google voice search on android phones answers if you ask "who's on first?" 20:50
20:51 hummeleB1 joined 20:52 Mouq joined
FROGGS already reads the wikipedia article :o) 20:52
21:00 hummeleB1 left 21:01 ssutch left
diakopter iDakopter 21:02
21:04 jnap left, rurban1 left, gdey_ joined 21:05 carlin left 21:06 gdey left
Rotwang hi 21:10
FROGGS hi Rotwang 21:11
tadzik hey 21:14
timotimo my new laptop's hostname is schmetterling 21:16
FROGGS timotimo: all caps?
timotimo nah, hostnames are case-insensitive
and don't allow ! 21:17
FROGGS :/
timotimo++ # anyway :o)
masak hehe, I backlogged and noticed that frettled had been badgering me a lot :P 21:27
masak finally finished his slide prep for tomorrow
21:28 Mouq left 21:29 jnap joined
timotimo \o/ 21:32
21:32 stevan_ joined
masak so, I got this comment on my post: perl6advent.wordpress.com/2013/12/0...mment-3406 21:32
I wrote a reply, which I checked with jnthn and another colleague to make sure it wasn't too mean.
mostly I've feel I've handled this topic already, in strangelyconsistent.org/blog/perl-6...-operators 21:33
hm, actually I was thinking of strangelyconsistent.org/blog/idiomatic-perl-6 21:37
lue masak: I like that "an infinity of methods in ten lines of code" :)
21:38 kaare__ left
Rotwang so If I'm writing module that uses NativeCall and I want to distribute c source code with it, where should panda put .so file? 21:39
@*INC »~» /SomeModule/blib/mysofile.so is a good place to put it? 21:40
arnsholt Your guess is as good as ours, I think
AFAIK noone's written a module like that yet 21:41
21:41 jeffreykegler left
Rotwang ok thenk 21:42
then*
masak lue: yeah, it's not every day you create ∞ methods in 10 lines ;) 21:43
'night, #perl6
FROGGS gnight masak 21:44
colomon masak++ 21:47
21:52 PacoAir left
lue r: loop(my $i = 0; $i < 3; $i++) { say $_ }; loop(my $i = 0; $i < 2; $i++) { say $_ } 21:54
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!===␤Word 'loop' interpreted as 'loop()' function call; please use whitespace around the parens␤at /tmp/nMXCyqxr3i:1␤------> loop⏏(my $i = 0; $i < 3; $i++) { say $_ }; lo␤Unexpected block in infix po…»
..rakudo-jvm 0bf3de: OUTPUT«===SORRY!===␤Word 'loop' interpreted as 'loop()' function call; please use whitespace around the parens␤at /tmp/Gp7GeT7OAk:1␤------> loop⏏(my $i = 0; $i < 3; $i++) { say $_ }; lo␤Unexpected block in infix posit…»
lue r: loop (my $i = 0; $i < 3; $i++) { say $_ }; loop (my $i = 0; $i < 2; $i++) { say $_ }
camelia rakudo-parrot 0bf3de: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $i␤ at /tmp/sQ4PIfJYv7:1␤ ------> ; $i < 3; $i++) { say $_ }; loop (my $i ⏏= 0; $i < 2; $i++) { say $_ }␤Nil␤Nil␤Nil␤Nil␤Nil␤»
..rakudo-jvm 0bf3de: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $i␤ at /tmp/gr1ZwJilLZ:1␤ ------> ; $i < 3; $i++) { say $_ }; loop (my $i ⏏= 0; $i < 2; $i++) { say $_ }␤Nil␤Nil␤Nil␤Nil␤Nil␤»
lue I'm not sure that "Redeclaration of symbol $i" is correct. Unless in-loop declarations go to the surrounding scope instead of the loop's own...? 21:55
FROGGS well, they are not inside a block
std: for my $x { }; for my $x { }; 21:56
camelia std 3b262af: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (see line 1) at /tmp/QcNAwIUAm0 line 1:␤------> for my $x { }; for my $x⏏ { };␤ok 00:01 124m␤»
lue r: loop (my $i = 0; $i < 3; $i++) { say $_ }; say $i;
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«Nil␤Nil␤Nil␤3␤»
lue r: loop (my $i = 0; $i < 3; $i++) { say $i }; say $i; 21:57
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«0␤1␤2␤3␤»
lue isn't sure how he feels about that. 21:58
FROGGS the parens do not introduce a new scope... (and they do nothing at all there)
r: loop my $i = 0; $i < 3; $i++ { say $i }; say $i;
camelia rakudo-parrot 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/UwzhqQvdKO␤Missing block␤at /tmp/UwzhqQvdKO:1␤------> loop ⏏my $i = 0; $i < 3; $i++ { say $i }; say ␤ expecting any of:␤ statement list␤ scoped bl…»
..rakudo-jvm 0bf3de: OUTPUT«===SORRY!=== Error while compiling /tmp/1RLPN7UFwi␤Missing block␤at /tmp/1RLPN7UFwi:1␤------> loop ⏏my $i = 0; $i < 3; $i++ { say $i }; say ␤ expecting any of:␤ statement list␤ scoped block␤»
FROGGS ohh
sure, C-style... 21:59
22:00 dprelec joined
lue I realize doing some inner-scoping stuff with the () part is weird, but C is kinda weird to P6 anyway :) 22:00
lue is essentially doing a bunch of C-ish stuff, so using "loop" is the best choice. 22:02
22:02 ssutch joined 22:03 PacoAir joined 22:04 rurban1 joined 22:05 PacoAir left 22:07 dprelec1 joined, beastd joined 22:10 dprelec left 22:11 alester left, rurban1 left 22:14 dprelec2 joined 22:15 dprelec2 left 22:17 dprelec1 left, dmol left 22:20 dprelec joined 22:26 BenGoldberg joined 22:29 tgt left 22:30 Entonian joined 22:31 Entonian left 22:32 tgt joined
ajr_ Um, FROGGS, are you aware that "NFG" can be interpreted to imply an extreme lack of merit? 22:36
geekosaur it can also be interpreted as a vote of no confidence in Unicode :p 22:37
22:40 rurban1 joined
diakopter ajr_: which interpretation is that 22:42
ajr_ UK slang.
Rotwang what does :: do, as in: ::('Build').isa(Panda::Builder)
?
is it similar to c++ default namespace? 22:43
22:43 btyler left 22:45 SevenWolf joined 22:47 rurban1 left
dalek : 113ec82 | (Tobias Leich)++ | lib/Perl5/Config.pm:
fix typo
22:47
: 630afd1 | (Tobias Leich)++ | lib/Perl5/Actions.nqp:
fix {}-hash guessing and do the []-method2sub transition
: 2181b48 | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
keep up to sigspace changes and pull in jnthn++s ws tweaks
: 558b1ef | (Tobias Leich)++ | lib/Perl5/Terms.pm:
add infix:P5=>
: 36f7bb7 | (Tobias Leich)++ | STATUS.md:
update status
FROGGS ajr_: NFG is not my invention :o)
22:48 gdey_ left, gdey joined
raydiak Rotwang: it interpolates a string into a package name 22:48
Rotwang so why is 'Build' in parentheses 22:50
FROGGS that is the syntax for indirect lookup 22:51
22:52 ajr_ left
FROGGS p: say ::<Int> 22:52
camelia rakudo-parrot 0bf3de: OUTPUT«(Int)␤»
22:53 tgt left
raydiak r: say (CORE === ::('CORE')) 22:53
22:53 araujo left
camelia rakudo-parrot 0bf3de, rakudo-jvm 0bf3de: OUTPUT«True␤» 22:53
Rotwang I see
FROGGS p: say ::<ENOTHING>
camelia rakudo-parrot 0bf3de: OUTPUT«(Any)␤»
22:53 araujo joined
Rotwang thanks 22:54
22:54 gdey left
dalek : 0ec09ba | (Tobias Leich)++ | t/test_summary:
use nqp-p/perl6-p for version info too
22:57
FROGGS feels good that v5 is healthy again...
gnight!
22:57 FROGGS left, jnap left 23:16 betterworld left 23:17 betterworld joined 23:24 Mouq joined 23:32 SevenWolf left 23:34 dprelec left 23:37 colomon left 23:38 BenGoldberg left, Rotwang left 23:39 colomon joined 23:40 denisboyun left 23:48 rurban1 joined 23:53 raiph left
TimToady NFG is not just UK slang, and it was well known to the person who coined NFG at the time. :D 23:53
it was, in fact, a pun from birth, much like STD. 23:54
TimToady takes great delight, as a linguist, in cleaning up words and acronyms that have become shabby. 23:57
see also ss/// 23:58