»ö« 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:14 fgomez left 00:16 mauke joined 00:20 fgomez joined 00:23 fgomez left, fgomez joined
mauke how can I access variables that may not exist? in perl5 terms, eval('$FOO') // 'default' 00:42
00:43 libertyprime joined
tadzik that ought to work in PErl 6 as well 00:45
oh, wait
why do you need that? 00:46
mauke I want to output the name/version of the implementation I'm running under
pmichaud_ rakudo doesn't implement it yet, but MY::<$a> should work someday.
tadzik that comes from $*PERL
nr: say $*PERL.perl
p6eval niecza v18-6-ge52d6c3: OUTPUT«Any␤»
..rakudo b12854: OUTPUT«{"name" => "rakudo", "compiler" => {"name" => "rakudo", "ver" => "2012.05-239-gb12854a", "release-number" => "", "build-date" => "2012-06-11T21:09:36Z", "codename" => ""}}␤»
mauke yes 00:47
pmichaud_ oh, Rakudo has MY
mauke so how can I make that work in case $*PERL doesn't exist?
pmichaud_ gist.github.com/2913717 # looking up nonexistent variables 00:48
00:48 pmichaud_ is now known as pmichaud
mauke try { " ($?PUGS_VERSION)" } // "" used to work a long time ago 00:49
pmichaud well, one can always look up a dynamic variable like $*PERL
mauke huh? 00:50
tadzik mauke: under what circumstances do you expect $*PERL to not exist? 00:51
mauke under what circumstances do you expect $?PUGS_VERSION to not exist?
pmichaud I expect $?PUGS_VERSION to not exist if running on something other than Pugs, I suppose.
but $*PERL is defined by the Perl 6 spec, so it should exist. (more) 00:52
Even if it doesn't exist, it's a dynamic variable, which means that looking it up doesn't throw an exception (although trying to use the value it returns might).
mauke is $*PERL<compiler><ver> part of the spec?
pmichaud the contents of $*PERL aren't specced yet, no.
but notice how niecza doesn't crash when requesting $*PERL -- it returns an undef 00:53
even though it doesn't implement $*PERL yet (apparently)
that's true for any dynamic variable (those with the '*' twigil). Thus:
mauke I'm trying things in the rakudo repl
pmichaud nr: my $a = $*NO_SUCH_VAR; say "still alive";
p6eval niecza v18-6-ge52d6c3: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/oLYUxlQfN9 line 1:␤------> my ⏏$a = $*NO_SUCH_VAR; say "still alive";␤␤still alive␤»
..rakudo b12854: OUTPUT«still alive␤»
mauke it throws for undefined variables but that may be the p part of the repl
pmichaud yes, that's the p part of the repl, printing the non-existent value throws the exception 00:54
> my $x = $*NO_SUCH_VAR; 1
1
mauke rakudo: try { "$*WTF" } // 42 00:55
p6eval rakudo b12854: ( no output )
mauke I get an exception here
pmichaud rakudo: say $*NOTHING // 42;
p6eval rakudo b12854: OUTPUT«42␤»
pmichaud you don't need a "try"
mauke but "$*WTF" throws
pmichaud only if it's used 00:56
in this case you're using it to build a string
mauke yes
pmichaud thus it throws
mauke yes
so why doesn't try {} catch it?
pmichaud it did catch it
the result was the empty string
mauke rakudo: try { "$*WTF" } ~ "." 00:57
p6eval rakudo b12854: ( no output )
pmichaud okay, maybe not then.
I don't know why you're trying to catch the exception.
best to just not throw it in the first place.
mauke > try { "$*WTF" } ~ "asdf"
Dynamic variable $*WTF not foundasdf
pmichaud: how can I avoid throwing it? 00:58
pmichaud test it for undef before using it
as above: my $a = $*XXX // 42; say $a
mauke assume I want to access $*PERL<compiler><ver>, where all components may or may not exist
pmichaud nr: say $*PERL.defined ?? $*PERL<compiler><ver> !! "42" 00:59
p6eval niecza v18-6-ge52d6c3: OUTPUT«42␤»
..rakudo b12854: OUTPUT«2012.05-239-gb12854a␤»
pmichaud nr: say $*PERL<compiler><ver> // 42; # just curious
p6eval niecza v18-6-ge52d6c3: OUTPUT«42␤»
..rakudo b12854: OUTPUT«2012.05-239-gb12854a␤»
pmichaud ah, that works also.
01:00 adu joined
mauke rakudo: say $*PERL<compilr><ver> 01:00
p6eval rakudo b12854: OUTPUT«Any()␤»
pmichaud note the difference between "$*FOO" and $*FOO. The first attempts to stringify $*FOO, which throws the exception.
mauke what does try return? 01:01
pmichaud the result of executing the block. I don't recall what it returns if an exception is thrown and caught.
adu r: say $*PERL.keys 01:02
p6eval rakudo b12854: OUTPUT«name compiler␤»
adu r: say $*PERL<name>
p6eval rakudo b12854: OUTPUT«rakudo␤»
adu n: say $*PERL<name>
p6eval niecza v18-6-ge52d6c3: OUTPUT«Any()␤»
mauke is 'Any()' perl6's way of saying "no values"? 01:03
sorear Any() is the stringification of the basic undefined value
pmichaud Any is a type object. It's the most basic type object for most objects (i.e., things that aren't Junctions)
sorear in niecza, $*DOES_NOT_EXIST returns Any 01:04
note that Perl 6 has two stringifications
say stringification (.gist) tries to be useful for debugging, print stringification (.Str) for data processing
n: my $x; say $x.gist; say $x.Str
p6eval niecza v18-6-ge52d6c3: OUTPUT«Any()␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤ at /tmp/ApFSKq2d3A line 1 (mainline @ 7) ␤ at /home/p6eval/niecza/lib/COR…
sorear the second warns but returns "" 01:05
p6: say $*NONEXISTANT // 42;
p6eval rakudo b12854, niecza v18-6-ge52d6c3, pugs: OUTPUT«42␤»
sorear see, mauke, consistant
mauke good thing this isn't confusing at all
sorear you're right, Failure is extremely confusing 01:06
mauke what is 'quietly'?
sorear which is part of why I'm campaigning to get it removed from the spec
alas, TimToady_ is extremely attached to it
mauke
.oO( or bound to Failure )
01:07
sorear there is no 'quietly'.
mauke it's mentioned in S04
pmichaud quietly is a statement form, like try
I don't think anyone implements it yet 01:08
sorear not everything which is mentioned in the synopses exists
mauke what should I read to find out what 'try' is supposed to return and what's actually implemented? 01:09
sorear 'try's return value is, I think, unspecified
so don't rely on it
use // insteadf
mauke instead of try? 01:10
01:10 scott_ joined
pmichaud yes, instead of try 01:11
01:11 scott_ is now known as Guest2448
pmichaud // checks definedness 01:11
mauke it doesn't seem like // catches exceptions
pmichaud so if $*SOMETHING returns an undef, the // will use the rhs instead
sorear r: say $*NONEXISTANT.perl
p6eval rakudo b12854: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => "Dynamic variable \$*NONEXISTANT not found"))␤»
sorear mauke: $*FOO doesn't throw exceptions 01:12
mauke sorear: I'm not using $*FOO
pmichaud $*ANYTHING won't throw an exception unless you try to use its value
sorear mauke: what are you using?
mauke "$*FOO"
adu what do Perl6ites blog about?
sorear Why?
pmichaud mauke: why the quotes?
mauke pmichaud: to make it throw
pmichaud why are you making it throw?
I mean, why is that desirable? 01:13
tadzik adu: I blog mostly about my projects
(those Perl 6 related)
people frequently blog about compiler improvements, grant statuses, hackathons etc
mauke there are several issues
adu tadzik: so I could blog about automatic semicolons in Go and how they're hard to encode into Perl6 grammars?
sorear I don't think it's desirable at all
mauke one part is me trying to get something concrete done
another is me trying to understand how exactly exceptions work 01:14
pmichaud mauke: which would you like to tackle first?
sorear mauke: $*FOO in Rakudo returns a special value called a Failure
mauke the actual string I want is " ($*PERL<compiler><name> $*PERL<compiler><ver>)"
sorear: yes, I got that
sorear mauke: Failures have a .Str method that throws exceptions
tadzik adu: sure
mauke sorear: it's like an error value in Haskell
pmichaud rn: say "( {$*PERL<compiler><name> // 'unknown'} )" 01:15
sorear Once an exception is thrown, your options are extremely limited
p6eval niecza v18-6-ge52d6c3: OUTPUT«( unknown )␤»
..rakudo b12854: OUTPUT«( rakudo )␤»
mauke except detectable
sorear So try not to call .Str on anythting that might be a Failure
tadzik adu: but I'm definitely buying you a beer if you achieve that
pmichaud rn: say "( {$*PERL<compiler><name> // 'unknown'} {$*PERL<compiler><version> // 'unknown'} )"
p6eval niecza v18-6-ge52d6c3: OUTPUT«( unknown unknown )␤»
..rakudo b12854: OUTPUT«( rakudo unknown )␤»
sorear Use // to replace the Failure with a sane value first
pmichaud rn: say "( {$*PERL<compiler><name> // 'unknown'} {$*PERL<compiler><ver> // 'unknown'} )"
p6eval rakudo b12854: OUTPUT«( rakudo 2012.05-239-gb12854a )␤»
..niecza v18-6-ge52d6c3: OUTPUT«( unknown unknown )␤»
pmichaud mauke: like that ^^
mauke pmichaud: no, not like that
sorear Or use Niecza, which refuses to implement Failures until they are replaced with something more sane
mauke pmichaud: if any part is unknown, I want to use an empty string instead
adu tadzik: well, my current solution is: github.com/andydude/gosemi
tadzik: if I can parse it without that tool, then you can buy me a beer :D 01:16
sorear r: say $*NONEX<foo> // 'bar'
p6eval rakudo b12854: OUTPUT«bar␤»
tadzik adu: oh, I thought you plan to modify the Perl 6 grammar so one doesn't have to write semicolons :)
pmichaud mauke: you want the whole string to be empty if any part is unknown? 01:17
sorear rn: say $*NONEX<foo><bar> // 'unfound' # mauke
mauke pmichaud: yes
p6eval rakudo b12854, niecza v18-6-ge52d6c3: OUTPUT«unfound␤»
adu tadzik: oh, I never thought about that, but that would be very natural once I'm able to parse Go
pmichaud rn: say ($*PERL<compiler><name>.defined && $*PERL<compiler><ver>.defined) ?? "( $*PERL<compiler><name> $*PERL<compiler><ver> )" !! "";
p6eval rakudo b12854: OUTPUT«( rakudo 2012.05-239-gb12854a )␤»
..niecza v18-6-ge52d6c3: OUTPUT«␤»
adu tadzik: that would be totally beer-worthy 01:18
pmichaud mauke: like that, perhaps?
mauke pmichaud: too complicated
I don't want to repeat myself
that is, I don't want to check preconditions when I can just make the expression throw an exception and catch that 01:19
adu tadzik: if I were to do that, would it slowly become part of the synopses?
mauke except I can't catch exceptions, apparently
sorear mauke: you can catch exceptions
tadzik adu: I highly doubt it, but it could become a module that lexically modifies the Perl 6 grammar
sorear mauke: you just can't use the return value of try.
tadzik so you could use that in your modules and it wouldn't "leak out"
sorear r: my $res; try { die 2; CATCH { default { $res = 5 }; }; }; say $res # mauke 01:20
p6eval rakudo b12854: OUTPUT«5␤»
adu tadzik: what would it be called? Syntax::AutoSemi?
tadzik adu: however you'll name it :)
mauke sorear: that's sad
pmichaud nr: my $a = ''; try { $a = "( $*PERL<compiler><name> )"; }; say $a;
p6eval niecza v18-6-ge52d6c3: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting…
..rakudo b12854: OUTPUT«( rakudo )␤»
mauke that makes perlcabal.org/syn/Differences.html#...try_%7B%7D somewhat of a lie 01:21
tadzik maybe we'll have to reserve a namespace for such things. Either Syntax:: or Slang:: or something
sorear the perl 6 exception specification is an exercise in sadness and more importantly denial.
adu pmichaud: I think niecza doesn't support $*PERL
pmichaud I think niecza doesn't follow the spec there. It should've caught that exception.
nr: my $a = ''; try { $a = "( $*XYZ<compiler><name> )"; }; say $a;
p6eval niecza v18-6-ge52d6c3: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting…
..rakudo b12854: OUTPUT«␤»
sorear pmichaud: in niecza, $*PERL returns Any. What exception?
pmichaud oh, I was thinking that "Use of uninitialized value..." should be an exception of some sort. 01:22
sorear I just read the relevant part of the Go specification.
You can't use Perl 6 grammars for this. 01:23
It assumes you have a separate lexer.
adu sorear: any particular reason?
mauke oh well, raw.github.com/mauke/poly.poly/master/poly.poly has working perl6 code again
sorear Well, maybe you can, but it won't be in any 'obvious' way
adu sorear: see <automatic_semicolon> in pastebin.com/FcAiMAU2 01:24
sorear: I think that should work, but it isn't working
sorear: then again, the rest of the grammar doesn't work with explicit semicolons, so that's not the issue 01:25
sorear Your automatic_semicolon rule is wrong because it tries to parse backwards.
adu possibly
sorear: how is that "wrong"?
pmichaud sorear: whatever is producing the "Use of uninitialized value..." should've been caught by the try, I think. Although S04 does say that try handles fatal exceptions by ignoring them... I suppose there's an argument to be made that warnings aren't fatal exceptions.
and therefore try shouldn't catch warnings... but that would seem weird to me. 01:26
adu sorear: ultimately semi should be defined as ';' | <automatic_semicolon>
sorear adu: You need to incorporate insertion handling into the rules that parse stuff forward.
adu: Well, first off, you might be looking at something like break <EOL> <YOUAREHERE>more stuff 01:27
you need to parse backward, and then once you find the letters b r e a k, check to make sure that they would have been parsed that way to begin with 01:28
handling all the corner cases right is... intractible
I just remembered that Perl 6 actually has a somewhat similar but more restricted semicolon insertion rule: after a line-ending } token, a semicolon may be omitted 01:29
handled in <.curlycheck>
the important thing here is that it works by setting a flag in @*MEMOS at the time the } is parsed
it does *not* use <?after
pmichaud ...and it only assumes a semicolon if a statement could terminate at that spot. 01:30
sorear std: / [\n | $$ | $] ] /
p6eval std f179a1b: OUTPUT«===SORRY!===␤Unable to parse regex; couldn't find final '/' at /tmp/hfDBoeJ5J1 line 1:␤------> / [\n | $$ | $] ⏏] /␤ expecting any of:␤ quantifier␤ regex atom␤Parse failed␤FAILED 00:00 41m␤»
sorear std: $]
p6eval std f179a1b: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66577.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66616.␤===SORRY!===␤Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION at /tmp/mQ…
sorear oh, yeah 01:31
you need to use something like the <cut> logic
adu sorear: but it could use ?before, theoretically speaking 01:44
sorear: omg, I didn't even see that, that $] might be interpreted as a variable, I thought it would be interpreted as end-of-text 01:46
should I rewrite that as [ \n | $$ | $ ] ? 01:47
sorear adu: no, but it's not needed 01:50
$$ already means [ <?before \n> | $ ] 01:51
adu \n matches EOF?
oh
I didn't realize that
01:55 ingy_ joined
ingy_ hola 01:55
ingy_ is an ingy imposter 01:56
mauke is that like (?=\n)|\z in perl5?
tadzik hello ingy-with-a-tail
ingy_ :)
just showing someone irssi with screen/tmux
o/
01:56 ingy_ left
tadzik ooh, who was talking about Middle-endian ARM? 01:56
pmichaud rn: say "hello\n" ~~ / o . $$/ 02:06
p6eval niecza v18-6-ge52d6c3: OUTPUT«Match()␤»
..rakudo b12854: OUTPUT«#<failed match>␤»
pmichaud hmmm.
colomon Middle-endian?! 02:13
02:13 xinming_ left
colomon sorear: ping? 02:15
tadzik colomon: that's also called "switchable endianess" 02:16
madness 02:17
colomon tadzik: ah. when I looked just now, wikipedia implied it was mixed endianess, which is just as mad or madder, but in a different.
tadzik ahye
colomon *way 02:18
sorear mauke: it's more like (?m:$) 02:19
colomon: pong
colomon sorear: I tried the MP3 tag stuff in Niecza for the first time in ages, and it's behaving weirdly now. Or perhaps I've just found an old weirdness I never noticed?
Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object 02:20
It seems to happen when I'm trying to look at a file which doesn't actually have MP3 tags.
02:22 fgomez left
colomon sorear: I'm calling CLR::("TagLib.File,$TAGLIB").Create($filename), and if I call .Tag on the result of that, it doesn't trigger an "unless" test. 02:24
ditto for $file.Tag.JoinedPerformers
but $file.Tag.JoinedPerformers ~~ m/\S/ get me that error.
sorear odd, maybe related to serialization changes 02:29
perhaps seeing a --debug backtrace would help 02:30
02:32 tokuhiro_ joined 02:34 xinming joined, fgomez joined 02:35 libertyprime left, libertyprime joined 02:37 libertyprime left, libertyprime joined 02:40 libertyprime left 02:41 libertyprime joined
colomon sorear: gist.github.com/2914052 is the best I've gotten so far. Sorry for slow response, got sidetracked, and now need to head to bed. (PS The code does appear to still work in general, it's just this one particular case which is giving me fits.) 02:43
02:44 pupoque joined
colomon afk # will read any response in the morning... 02:44
02:46 xinming left
sorear OH 02:53
benabik M G? 02:55
02:58 tokuhiro_ left 03:04 adu left 03:17 thou left, TimToady_ is now known as TimToady, TimToady left, TimToady joined 03:18 libertyprime left, libertyprime joined 03:27 xinming joined 03:34 alester joined 03:38 Chillance left
masak good morning, meatbrains. 03:43
phenny masak: 29 May 01:55Z <diakopter> tell masak RT 112870 is magically fixed. r: multi sub infix:<~eq>(Str $a, Str $b) { uc($a) eq uc($b) }; say 'Foo' ~eq 'foo'
masak: 29 May 02:31Z <diakopter> tell masak also RT 111418
masak: 29 May 02:52Z <diakopter> tell masak RT 102690 is a dupe of 112578
masak: 29 May 02:54Z <diakopter> tell masak RT 113398 is a dupe of 111956
Further messages sent privately
masak phenny: thanks. I have a feeling most of these are now old hat. but still nice.
tadzik lol it's masak!
sorear maaasaak
masak \o/ 03:44
thanks everyone for reporting the link typo in my last blog post. I have been unable to fix while away from my setup. I will fix it now. 03:46
also, I'm going to srsly dig into improving the software around the blog :) have some ideas.
I'm about 10 days backlogged. 03:47
tadzik so you were actually home yesterday, and been backlogging since then? :) 03:49
03:49 jaldhar joined 03:51 adu joined
pmichaud masak! \o/ 03:55
03:56 jaldhar left
pmichaud is very happy that masak++ has returned. 03:56
adu sorear: parsing, in general, is intractible :) 03:57
mauke look on my works, ye mighty, and despair: raw.github.com/mauke/poly.poly/master/poly.poly 03:58
masak pmichaud! \o/ 04:00
04:00 jaldhar joined
pmichaud masak: so, is it like very very early morning where you are now? 04:00
masak tadzik: I was actually home yesterday, and collapsed into a tired pulp at 8 o'clock. been backlogging on and off during flights.
pmichaud: yeah, but I have an excuse. tadzik++ here doesn't :P 04:01
pmichaud heh
well, I'll be up at 04h00 localtime tomorrow as well to catch my 06h00 flight.
masak ooh
pmichaud I guess that means I'll have an excuse too.
masak bon voyage
witherever
pmichaud departing for yapc::na (madison, wi) 04:02
masak whitherever*
ooh, YAPC::NA -- the YAPC that US-centric US citicens call "YAPC" ;)
citizens*
my typing is not up to scratch, clearly 04:03
fingers I am disappoint
pmichaud oh, sometimes we refer to it by "The Yet Another Perl Conference", too. :-)
masak dreadful. 04:04
pmichaud did you have a good trip?
masak it... went up to eleven.
so, yes.
pmichaud for 1..11 { +1 }
sorear is irritated that ey dropped the ball on YAPC::NA trip plann ing
tadzik my excuse is insomnia 04:05
pmichaud masak: outstanding... those are the best sorts of trips
tadzik and it's 6:05 here
mauke: awesome :) 04:07
masak enchants mauke with his magic tab completion wand 04:09
04:12 alester left 05:06 simcop2387 left 05:08 simcop2387 joined 05:09 sudokode left 05:14 pupoque left
masak rn: say <Mon Tues Wednes Thurs Fri Satur Sun>[$_ % *], "day May $_" for 1..10 05:15
p6eval rakudo b12854, niecza v18-6-ge52d6c3: OUTPUT«Tuesday May 1␤Wednesday May 2␤Thursday May 3␤Friday May 4␤Saturday May 5␤Sunday May 6␤Monday May 7␤Tuesday May 8␤Wednesday May 9␤Thursday May 10␤»
masak I haven't seen anyone use the [$_ % *] trick before.
rn: say <_ Mon Tues Wednes Thurs Fri Satur Sun>[(my $d = Date.new("2012-05-$_")).day-of-week], "day May $d.day-of-month()" for "01".."10" 05:21
p6eval rakudo b12854: OUTPUT«Tuesday May 1␤Wednesday May 2␤Thursday May 3␤Friday May 4␤Saturday May 5␤Sunday May 6␤Monday May 7␤Tuesday May 8␤Wednesday May 9␤Thursday May 10␤»
..niecza v18-6-ge52d6c3: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Date' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/p6…
05:21 odoacre_ is now known as odoacre
masak almost as short, and fewer assumptions. 05:21
pmichaud r: say <A B C>[$_ % *] for 1..10 05:29
p6eval rakudo b12854: OUTPUT«B␤C␤A␤B␤C␤A␤B␤C␤A␤B␤»
pmichaud oh that's clev-er!
masak++
masak beams
pmichaud ot 05:30
oops
it's fun to see how many times this language surprises me.
05:31 pupoque joined
adu I can't track this bug 05:33
sorear masak: possibly up your alley, I've been spending a lot of time lately on www.math.uconn.edu/~kconrad/blurbs/ - abstract algebra at a fairly reasonable explicitness tradeoff point
masak sorear: ooh -- many thanks 05:34
sorear: will keep this around for when other things settle down.
adu omg, I think I found the bug
rel_op:sym«<=» is not matching '<='
05:35 kaleem joined
masak fun thing, disconnecting for two weeks and then reconnecting. at least if you're a person who more or less lives on the Internet. don't try this at home. 05:35
adu why?
rel_op:sym<!=> matches '!=' fine
pmichaud adu: gist?
masak adu: are you able to show this using p6eval? 05:36
adu pastebin.com/raw.php?i=FcAiMAU2
moritz \o
masak preferably with a minimally long program?
moritz! \o/
moritz masak is back!
masak runs up and hugs moritz
hiiii!
:D
moritz hug pile!
sorear leaps on it!! 05:37
masak oof.
moritz masak: how were yuour vacations? 05:38
masak I've been trying to find words to describe the vacation.
I've settled on "it went up to 11". 05:39
bonsaikitten masak: did that two years ago, it's quite fun to disconnect
masak beautiful scenery, excellent food, lots of exercise, and no shortage of general and specific happiness. 05:40
moritz doesn't know that phrase but decides it sounds quite positive
adu pmichaud: masak: yes
masak moritz: en.wikipedia.org/wiki/This_Is_Spinal_Tap en.wikipedia.org/wiki/Up_to_eleven
adu r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym<!=> { <sym> }; }; say binop.parse('!=')
p6eval rakudo b12854: OUTPUT«q[!=]␤ rel_op => q[!=]␤ sym => q[!=]␤␤»
adu (showing success)
bonsaikitten masak: where did you go to?
adu r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym«<=» { <sym> }; }; say binop.parse('<=')
p6eval rakudo b12854: OUTPUT«#<failed match>␤»
pmichaud "This one goes to 11."
adu (showing failure)
masak bonsaikitten: en.wikipedia.org/wiki/Jiuzhaigou_Valley 05:41
bonsaikitten nice. how did you choose it? 05:42
masak I had heard from reliable sources that it's one of the most beautiful places in China.
bonsaikitten fair enough. good choice :) 05:43
I'm having enough fun in Shanghai, but exploring the rest of China is definitely on my todo list
masak oh, didn't do 上海 this time around. 05:44
sorear wonders how fluent masak is in the local language
masak it seems like a happening city.
sorear hey, I can almost read that
pmichaud adu: that's.... interesting.
adu pmichaud: interesting? 05:45
sorear
.oO( Chinese Netherlands )
pmichaud r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym«!=» { <sym> }; }; say binop.parse('!=');
p6eval rakudo b12854: OUTPUT«#<failed match>␤»
masak sorear: I... can order food. I can go down to reception, and say "my room card doesn't work, and I don't know why". I can follow most conversations having to do with food or hotels.
pmichaud looks like it's a problem with the « » angles
sorear masak: ookey you're way better than me 05:46
bonsaikitten I still haven't reached that level yet
adu pmichaud: I thought that < > and « » were implemented the same way
bonsaikitten but shanghai is too international to force me to learn
sorear can't even follow Japanese conversations 80% of the time
masak sorear: my weakest point is the tones. they're hard to get right for a non-native, even a careful one like me.
pmichaud adu: well.... so did I, which is why it's "interesting". :-)
bonsaikitten masak: and they differ a lot depending on region ... so whatever you learned is "wrong" for the other 80% of the country 05:47
masak bonsaikitten: not just the tones. what people usually refer to as "dialects" in China are more usefully thought of as different languages in the same-ish family. 05:49
bonsaikitten masak: yes, but even if they try to speak mandarin it's very different
"beijing pirate dialect" ;)
they make everything sound like aaarrrrrrrr
masak :D 05:50
never made that connection before :P
pmichaud r: my grammar binop { proto token rel_op {*}; my $x = token rel_op:sym«!=» { <sym> }; say $x; } 05:52
p6eval rakudo b12854: OUTPUT«rel_op:sym«!=»␤»
pmichaud ...that's the problem. The regex engine expects those «'s to be converted to single angles.
masak submits rakudobug
aaaaaaah.
it's good to be back! 05:53
pmichaud in Actions.pm 05:54
{ if $<deflongname> { %*RX<name> := $<deflongname>[0].Str } }
is likely the culprit.
It needs to normalize the name of protoregex candidates. 05:55
05:57 fridim_ joined
adu hmm 05:57
pmichaud adu: in the meantime, you can do
adu :sym('!=')? 05:58
pmichaud r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym<le> { '<=' }; }; say binop.parse('<=');
p6eval rakudo b12854: OUTPUT«q[<=]␤ rel_op => q[<=]␤␤»
adu oh ok, that works 05:59
thanks pmichaud++
pmichaud sym<op> is a convenience, it's not required to parse 'op'
adu but it appears to be idiomatic 06:00
pmichaud yes, it's idiomatic
moritz btw I consider the module-trace branch to be ready for merging
more backtraces. masak++ will be sooo happy :-) 06:01
masak rt.perl.org/rt3/Ticket/Display.html?id=113590
moritz: it's not really that I dislike backtraces. it's just that I'm really fond of brief descriptions of what's wrong.
pmichaud nqp gets the :sym«op» correct by manipulating the value coming back from <deflongname>. 06:02
rephrase: by manipulating the .ast value of $<deflongname>
masak I'm a terminal window junkie. if the text jumps up two lines, there's no mental disconnect. if the text jumps up two screens, I have to scroll to find my bearings again.
pmichaud oh, Rakudo does the same, but the Actions.pm line doesn't use it.
masak scrolling to find out what went wrong in a program is a crappy default.
adu pmichaud: YEY it works for now 06:03
pmichaud I think I can quickly fix Rakudo's regex declarator tomorrow. (Too late/too tired for me to reliably do it tonight.) 06:04
adu++ # found an imporant bug 06:05
masak adu++
adu :D
pmichaud takes ticket #113590
adu I've been staring at all my parsings for hours
I'm glad it was worth it
masak it almost always is.
moritz masak: gist.github.com/2911966 06:06
masak the skill is going from "I notice that I am confused" to "ah, that's what's wrong" in as short time as possible.
that takes training.
adu masak: indeed
pmichaud adu++ golfed it down nicely, t hough.
*though
masak but "ah, that's what's wrong" is almost always connected to learning something new.
pmichaud: yes. I'm impressed.
adu++
moritz masak: the scond half is what that branch now produces 06:07
for X::Comp errors while compiling dependent modules
masak moritz: nice.
pmichaud moritz: if there are no regressions I'm fine with the branch merge whenever you are :)
masak moritz: both those look like you wrote them by hand, though.
moritz: there are no line numbers...?
pmichaud I haven't looked at the branch details but I trust you on that one :) 06:08
moritz masak: the line numbers are after the colon
pmichaud okay, if I'm to get any sleep before getting up for airport I best go now. Catch you all tomorrow sometime.
06:09 fhelmberger joined
masak moritz: ah, so they are. 06:09
moritz masak: gist.github.com/2911966 updated with what the branch produces now
masak from module mA file lib/mA.pm:2 06:10
I wonder if that shouldn't be
from module mA (lib/mA.pm:2)
instead.
moritz right, might be more consise 06:11
and easy to do (it's all in Perl 6 :-)
masak \o/
moritz anyway, I'll spectest and merge the branch first
masak ++moritz
moritz we can then tweak it further in mom
masak aye.
it's all just a DAG of commits :P
06:12 wtw joined
moritz and I'm rather fond of that :-) 06:14
masak: you might also be happy about github.com/perl6/doc/
masak whee
eiro hello 06:15
masak heiro! \o/
moritz: yes, that looks like a reincarnation of the u4x idea.
something like that is very much needed.
moritz masak: except that this time there's a bin/p6doc right from the start 06:16
masak aye.
very good.
moritz p6doce Str.split
s/e//
anyway, just as u4x it will need some other contributors to keep me motivated in the long run
masak: I've also stolen some docs from u4x 06:17
eiro i saw an innosetup script somewhere: is there a built installer for windows ?
masak moritz: excellent.
moritz: about helping/motivation, I'll see what I can do.
moritz masak: oh, and I've started an ufo branch
masak moritz: I have an idea what might help: throwing this up on the web.
moritz: i.e. release-early-release-often, and everyone can always see how complete the docs are. 06:18
moritz masak: which writes much less "smart" makefiles, and declares dependencies betwenn modules
masak: yes, that's part of my plan
masak moritz: ok. I'll review it when I have time.
moritz: oh, ok. great.
moritz: I think that's important for motivation. not just a frivolous extra.
as open/transparent as possible.
that's what makes many other components of perl6.org work.
06:26 pupoque left
sorear phenny: tell colomon try adding a null check to line 761 of NieczaCLR.cs, you know the drill by now, and see if that helps 06:27
phenny sorear: I'll pass that on when colomon is around.
sorear phenny: tell colomon s/761/791/, in master HEAD
phenny sorear: I'll pass that on when colomon is around.
moritz masak: re irclog.perlgeek.de/perl6/2012-06-12#i_5714547 it's been in SVG::Plot since 2009 or 2010 :-) 06:29
:style("fill:{ @.colors[$d % *]}; stroke: none"), 06:30
masak moritz++ :)
moritz: if I ever need a fiendishly clever arch-enemy, I'll think of you. 06:31
moritz loughed out loud
dalek kudo/nom: 1b00e64 | moritz++ | src/Perl6/ModuleLoader.pm:
note end of module loading in debug mode
rakudo/nom: 339771a | moritz++ | src/ (2 files):
rakudo/nom: start to trace module loading in a dynamic variable
06:31 dalek left
moritz bye dalek 06:32
06:32 dalek joined, ChanServ sets mode: +v dalek
moritz ticks off item 5) from irclog.perlgeek.de/perl6/2012-06-08#i_5699614 06:36
06:36 brrt joined
masak ooh, a "what to hack on next" list. :) 06:37
I'll make one too.
(1) QAST, to the point that Rakudo runs it
(2) macros D2 (currently blocking on (1))
(3) my blogging software
oddly, (3) is what bubbled up during the vacation. I had a number of design ideas. 06:38
& 06:41
diakopter masak: yes, those tickets were handled by moritz & me 06:47
06:49 kresike joined
kresike hello all you happy perl6 people 06:49
diakopter hi kresike
kresike hi diakopter
06:50 domidumont left 06:51 fridim_ left 07:03 DarthGandalf left, DarthGandalf joined
sorear helllo kresike 07:03
07:03 domidumont joined 07:04 DarthGandalf left, DarthGandalf joined 07:09 fglock joined
kresike hello sorear o/ 07:13
masak hi kresike 07:15
diakopter++ moritz++
sorear o/ masak returns
masak with breakfast! 07:16
07:16 grondilu joined
grondilu Am I the only one who has problems compiling rakudo? 07:17
adu hmm
kresike hello masak o/
adu I found another oddity, probably not a bug 07:19
r: my grammar G { rule TOP { ^ <bin_op> $ }; rule bin_op { <rel_op> | '||' }; proto token rel_op {*}; token rel_op:sym<or> { '|' }; }; say G.parse('||')
p6eval rakudo de7240: OUTPUT«#<failed match>␤»
adu n: my grammar G { rule TOP { ^ <bin_op> $ }; rule bin_op { <rel_op> | '||' }; proto token rel_op {*}; token rel_op:sym<or> { '|' }; }; say G.parse('||') 07:20
p6eval niecza v18-6-ge52d6c3: OUTPUT«Match()␤»
07:21 grondilu left
sorear adu: what if you make bin_op a token? 07:23
adu huh, that makes it parse 07:25
interesting
sorear the implicit whitespace in a rule disables LTM and the backtrack prevention in a rule prevents $ from doing what you expect 07:26
I think whitespace is actually supposed to be ignored in that case but apparently neither does it rightr
07:27 drbean left 07:29 drbean joined, sivoais left
dalek ecza/non-bootstrap: 49b8f85 | sorear++ | / (3 files):
Actions: fiddle a bit, make it compile
07:30
07:31 sivoais joined 07:35 sivoais left 07:38 sivoais joined 07:41 usvm joined 07:43 sivoais left 07:45 sivoais joined
fglock eiro: ping 07:49
07:50 sivoais left 07:51 _jfried left
sorear sleep& 07:51
dalek ecza/non-bootstrap: 0b585f5 | sorear++ | lib/Actions.cs:
Actions pt 2
07:51 jfried joined
masak .oO( Part II... action! ) 07:52
07:52 sivoais joined 07:53 sftp_ left 07:58 sivoais left
moritz masak: on your what-to-hack-on list I'm missing (4) contribute lots of documentation :-) 07:59
masak I'll make an effort to reintegrate this item into the set of my active desires. 08:00
adu so asian
masak I'm afraid I can't distribute rw privs to that list, as it's a master copy. 08:01
master copies should only have one actor making changes to them, otherwise there will be unpleasant contention problems.
08:03 sivoais joined 08:08 sivoais left 08:10 sivoais joined 08:14 sivoais left 08:16 usvm left, fglock left 08:18 sivoais joined 08:27 kurahaupo left 08:41 uvm joined 08:47 uvm left
adu I did it! 08:47
dalek kudo/nom: 684fd2c | moritz++ | src/core/Exception.pm:
tweak module backtrace, masak++
08:52
08:56 dakkar joined 09:03 fglock joined 09:07 crab2313 joined 09:22 adu left 09:23 birdwindupbird joined 09:35 espadrine_ left 09:40 cognominal left 09:41 cognominal joined 09:46 daxim joined
moritz r: say +"foo" 09:48
p6eval rakudo 684fd2: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:9441␤ in sub say at src/gen/CORE.setting:6972␤ in block <anon> at /tmp/wFQ2DV5sxG:1␤␤»
moritz r: say (+"foo").perl 09:49
p6eval rakudo 684fd2: OUTPUT«Failure.new(exception => X::Str::Numeric.new(source => "foo", pos => 0, reason => "base-10 number must begin with valid digits or '.'"))␤»
09:53 birdwindupbird left
masak that is so cool. 09:55
daxim does rakudo have integration for gettext, either the original lib or an api work-alike? 09:56
masak not to my knowledge. 09:57
but it should be entirely possible using zavolaj. 09:58
arnsholt With a small caveat on the Zavolaj part, but yes. If the C interface doesn't rely too much on digging stuff out of structs, it should work 10:02
masak arnsholt++ # great work in this area 10:05
arnsholt Thanks. I should get back to getting strings in structs working at some point 10:06
That's one of the major missing features I think
10:13 Guest2448 left 10:19 odoacre is now known as ^sig, ^sig is now known as odoacre
Woodi -daxim-: parrot check for gettext during Configure... so maybe api is exposed somehow... 10:22
masak good point. 10:24
Woodi btw. why Parrot check for OpenGL is very secret to me :) (atm) 10:25
10:25 wolverian left 10:30 JimmyZ joined
moritz lunsj& 10:33
masak apparently a Norwegian lunch. :) 10:35
10:39 Guest76914 joined 10:41 Guest76914 left 10:48 sergot joined, fridim_ joined 10:52 sergot left 10:59 brrt left 11:01 BaggioKwok joined
colomon phenny: tell sorear Your fix suggestion appears to work. (Spectesting now, but the spectest probably never touches it, right?) Thank you! 11:01
phenny colomon: I'll pass that on when sorear is around.
colomon: 06:27Z <sorear> tell colomon try adding a null check to line 761 of NieczaCLR.cs, you know the drill by now, and see if that helps
colomon: 06:27Z <sorear> tell colomon s/761/791/, in master HEAD
11:06 sergot joined
masak oh btw. I fixed le typo in strangelyconsistent.org/blog/macros...ak-shaving 11:06
I have a nice three-stage CQRS design for my blog engine, that I'm eager to implement. 11:07
here: gist.github.com/2916947 11:10
& 11:12
11:22 BaggioKwok left
dalek ecza: a660099 | (Solomon Foster)++ | lib/NieczaCLR.cs:
Handle null strings returned from CLR using sorear++'s suggestion.
11:23
11:32 BaggioKwok joined 11:33 BaggioKwok left 11:35 erkan joined, erkan left, erkan joined 11:40 tokuhiro_ joined 11:47 skids left, fridim_ left 11:57 fridim_ joined 12:01 fridim_ left 12:04 brrt joined 12:05 birdwindupbird joined 12:10 sergot left 12:14 tyatpi joined 12:18 cognominal_ joined 12:21 cognominal left 12:31 cognominal_ left, cognominal_ joined
[Coke] woodi; I think because depending on the version of opengl, the bindings are different. 12:35
pmichaud [Coke]: Good morning! o/ 12:37
moritz good am, pm
[Coke] ho, pmichaud
que tal?
12:38 tyatpi left
[Coke] checks out perl5 bleed and tests it. 12:38
pmichaud is currently en route to yapc::na -- sitting in an airplane in Kansas City. 12:39
pmichaud@plum:~/p6/nqp$ git pull
Already up-to-date.
Should've known.... everything's up to date in Kansas City. :-P 12:40
12:40 colomon left
pmichaud about to take off again... bbl 12:50
12:52 bluescreen10 joined
[Coke] ~~ 12:52
12:54 PacoAir joined 12:56 jimmy1980 joined 13:09 Psyche^ joined, kaleem left 13:12 Patterner left, Psyche^ is now known as Patterner 13:20 tyatpi joined 13:25 thou joined
felher This may be kind of obvious, but i'd like to make it explicit that .Int, .Rat and .Num fail (just like Real) if the Numeric isn't equivalent to a Real. Any objections? paste.lugons.org/show/2145/ 13:29
moritz no objection from me 13:30
though you could go even further and define an exception type with which it fails 13:31
13:32 skids joined, estrabd left
felher moritz: Yeah, good point. X::Numeric::Real for all of those? Or X::Numeric::Int, X::Numeric::Num X::Numeric::Real, X::Numeric::Rat? 13:34
13:36 xuusheng joined
moritz felher: first we should think about which cases can actually fail 13:36
felher moritz: all of them i guess. If you have complex numeric, it can not be converted to any of those.
moritz I see one failure mode where a Numeric (like, a Complex) cannot be converted to something Real (Real, Int, Num, Rat)
that failure mode deserves one exception type (maybe with the coercion target as an attribute) 13:37
then there is coercion to Rat, which might not succeed with the desired accuracy. What does that do? fail? or just return a not-so-accurte Rat? 13:38
anyway, I'd say X::Numeric::Real would be a good error for the first case 13:39
felher moritz: okay :) 13:41
13:41 crab2313 left
moritz extra points of providing a rakudo patch :-) 13:42
felher Btw: i think coercion to rat should fail if not possible within specified accuracy. Otherwise, where is the difference to not specifying a accuracy at all?
moritz: Yeah, i'll look at it. But it may take a day. I have a lecture in 20 Minutes and a movie evening afterwards :) 13:43
moritz the accuracy goal determines how hard the conversion routine tries
13:43 mtk left
moritz sure, no hurry 13:43
but I agree with the general sentiment
13:44 mtk joined
felher :) 13:45
felher -> afk
dalek ast: 385370f | moritz++ | S32-exceptions/misc.t:
label and unfudge test for RT #113408, and remove nearly identical second test
13:48
13:49 bloonix joined 13:51 bloonix left 13:58 sftp joined 14:00 cognominal___ joined 14:02 snearch joined 14:03 cognominal_ left 14:04 tokuhiro_ left 14:07 cognominal___ left, cognominal joined 14:08 JimmyZ left, sudokode joined 14:09 JimmyZ joined 14:10 xuusheng left 14:19 jimmy1980 left 14:20 wtw left 14:36 crab2313 joined
masak doesn't think pmichaud is in Kansas anymore :P 14:41
14:47 zhutingting joined
TimToady doesn't think Kansas City is in Kansas anymore, except for the bits that are... 14:52
[Coke] ... tools are now working that were not. what the frak did I do to make it work!? aigh. 14:53
diakopter ABC? 14:54
[Coke] diakopter: to me? no, java work stuff. 14:58
diakopter heisenjava 14:59
15:16 adu joined 15:17 nwc10 joined
diakopter anyone know of a reliable/easy way to detect windows vs. unix in NQP? 15:31
15:33 fglock left
masak diakopter: does this help? stackoverflow.com/a/8666442 15:38
15:40 cognominal_ joined 15:43 cognominal left, brrt left 15:45 brrt joined 15:47 JimmyZ left 15:53 kaare_ joined 15:54 zhutingting left, zhutingting joined 15:57 raiph joined, tktmb joined 15:58 tktmb left 15:59 sirrobert joined
sirrobert How do I change the way an object presents itself in string context? 15:59
flussence define a method Str() in it 16:00
16:02 brrt left 16:03 adu left
sirrobert hm... didn't work. I did method Str() { return "foo"; } but $obj.say; didn't change. 16:05
ohh... say() doesn't put it into string context. 16:06
say $obj ~ ""; worked, but $obj.say didn't.
16:07 mikemol joined
harmil r: class A { method Str() { "Strish" }; method say() { "sayish" } }; my $a = A.new(); say $a; 16:08
p6eval rakudo 684fd2: OUTPUT«A.new()␤»
harmil yep
tadzik class A is Cool { method Str() { "Strish" }; method say() { "sayish" } }; my $a = A.new(); say $a;
r: class A is Cool { method Str() { "Strish" }; method say() { "sayish" } }; my $a = A.new(); say $a;
p6eval rakudo 684fd2: OUTPUT«A.new()␤»
tadzik r: class A { method Stringy() { "Strish" }; method say() { "sayish" } }; my $a = A.new(); say $a;
p6eval rakudo 684fd2: OUTPUT«A.new()␤»
tadzik meh
sirrobert Not sure what just happened =) Does "r:" cause the perl6eval bot to eval the code? 16:09
jnthn gitst
er
gist
Not Str
say calls .gist
sirrobert huh
harmil yeah, jnthn, was just seeing that
jnthn evening btw :) 16:10
tadzik gosh, evening already :)
harmil heya
r: class A { method gist() { "gistish" }; method Str() { "Strish" }; method say() { "sayish" } }; my $a = A.new(); say $a;
p6eval rakudo 684fd2: OUTPUT«gistish␤»
harmil there ya go
jnthn tadzik: Yeah...and I'm exhausted already. :S
tadzik me too, and I haven't really started yet :/
an OpenGL project before me, and the exam tomorrow
and then I'm mostly free
jnthn has been teaching all day so at least has an excuse :) 16:11
raiph o/ p6
tadzik but I feel like half myself already
raiph what's the current p6 story, if any, on the implicit type / module (mebbe setting too?) version conflict discussed in stackoverflow.com/questions/1087558...each-other 16:13
masak raiph: it's all a bit handwavy still, but check out S11 about modules and versioning. 16:16
there's been thought put into exactly those things.
raiph specifically, the "subtle" issue mentioned in the answer that starts "You have the same problem in Haskell" and which answer has the comment "Fortunately the problem you describe manifests at compile-time; ghc won't build a module that tries to implicitly convert between different package-versions of data."
masak the general rule of thumb is that 'use'-ing a module is a local action, and different versions of the same module can co-exist on a system and be loaded in the same program through different 'use' paths. 16:17
theoretically. this is all unimplemented.
the underlying architecture is a bit heavyweight for Perl, in my opinion.
specifically, I think/hope we will never resort to storing our modules (or module metadata) in a database somewhere, just because that's the only way to make things truly platform independent. 16:18
kresike bye all 16:19
16:20 kresike left
harmil sqlite in core? ;) 16:20
masak something like that. 16:21
harmil Speaking of, has anyone started working on an ORM?
I think the current state of datastructures would make it a bit of a pain, but that hasn't stopped people in other areas ;) 16:22
raiph masak: thx 4 yr answers 16:25
masak yr wlcm. 16:27
sirrobert One more weird thing about say/gist/Str... 16:28
harmil I wonder if the right solution for an ORM in Perl 6 might be a mini-language. That's kind of what things like sqlalchemy in Python try to create
moritz well, there are several part to an ORM
harmil true
sirrobert r: class A { method gist () {return self}; }; say A.new();
p6eval rakudo 684fd2: OUTPUT«A<-1502235178>␤»
sirrobert r: class B { method gist () {return self}; method Str() {return "foo"};}; say B.new();
p6eval rakudo 684fd2: OUTPUT«foo␤»
moritz one should note that Perl 6 has representation polymorphism
so one yould create a class SomeFoo is repr(MyDb) { ... } 16:29
16:29 cognominal_ left, Celelibi joined, cognominal_ joined
harmil I've been working with sqlalchemy recently and it often does things like <someexpression>.filter(orm_table_def.coldef == 1).first() 16:30
and that seems like it's a long walk around the park to get what a mini-language could get you instantly
sirrobert Any idea why "self" would be different depending on whether Str() was defined? 16:32
16:33 benabik left
masak sirrobert: the default .Str method gives what you see above with the A<-1502235178> 16:33
harmil gist is supposed to return something say can cope with. It will get back an object that still isn't a string.. .I think maybe then it tries .Str on the result? 16:34
sirrobert But if say uses .gist, why would it be different depending on whether Str is defined?
or does .gist use .Str internally?
harmil because you've defined a gist that returns self… so say gets back a thing that it still can't cope with. I'm assuming there's a fallback invoked. 16:35
masak .gist uses .Str by default.
sirrobert Ok, maybe I mean to ask: Where can I read what .gist is doing? =)
harmil no, masak, he's re-defining it
16:35 snearch left
masak harmil: he's redefining .Str 16:36
16:36 colomon joined
sirrobert both .gist and .Str 16:36
harmil I thought he defined both in the example
here's what's going on:
masak oh! right.
harmil IO.say is doing : $*OUT.print(nqp::shift($args).gist) while $args;
print is saying "the heck is a B.self?!" and calling .Str on it
16:36 benabik joined
sirrobert ah 16:37
harmil I … think. That gets into the boundary layer between Rakudo and Parrot where my knowledge goes quickly to 0 16:38
What's really happening, I think, is IO.print is calling Parrot's print and that does … magic … that eventually asks the Perl object to stringify? Guessing wildly 16:39
sirrobert What's the point of .gist in general?
or, rather, why move say from Str to gist?
harmil I think the idea is that say should print something that's intelligible for the user while generic .Str might do something more correct, but less user friendly? 16:40
16:40 zhutingting left
sirrobert ok 16:40
masak say() is supposed to stringify things with .gist
harmil yeah, he's asky why, and why not .Str
sirrobert masak: that makes sense; but it implies that there's a difference between the strings
trying to figure out the intended difference 16:41
raiph masak: i've now reread s11 fairly carefully, especially the versions section. i don't see anything, even handwavey, that i recognize as relating to the conflicting type versions issue mentioned in that haskell Q+A. any more thoughts?
sirrobert .gist strings are used to _____________, whereas .Str strings are used to __________________.
benabik .gist is designed to be useful for programmers. 16:42
harmil .gitst strings are used to produce say output, whereas .Str strings are used to stringify objects.
sirrobert heh
masak raiph: S11:345 was what I was thinking of.
raiph: I confess to not having read the stackoverflow question too carefully.
sirrobert harmil: that just shunts the question off to somewhere else ;)
benabik: hmm, ok. I'll have to think about the utility of that 16:43
harmil If it bothers, you, you can just "method gist() { self.Str } ; method Str() { "get off my lawn, you kids!" }" in all your classess.... 16:44
sirrobert It doesn't bother me, I just don't get it yet =)
harmil I understand, I was just taking the opportunity to be as funny as 4 hours of sleep allows
sirrobert heh 16:45
sorear colomon: afaik spectest doesn't touch the CLR interop, yeah 16:47
phenny sorear: 11:01Z <colomon> tell sorear Your fix suggestion appears to work. (Spectesting now, but the spectest probably never touches it, right?) Thank you!
raiph masak: "a subtle surprise: When you refer *indirectly* ... to a type ... it might be resolved to [one version of that type] at one place and [another version of that type] in another, and the two can't be unified." (my *emphasis*) 16:49
16:49 not_gerd joined
masak raiph: that, or something very much like it, actually happened to me. 16:50
well, it was a kind of namespace pollution, anyway.
raiph masak: did the compiler u used help u spot yr problem? if it didn't, do u think it reasonable that it could be supposed, one day, to do so? 16:52
16:52 daxim left
raiph masak: (i'm assuming that what happened to you was similar enough to the specific issue of type versions and implicit types to be basically the same problem) 16:54
masak I might have this documented in an old blog post.
[Coke] I haven't seen this one in a while: xkcd.com/312/ 16:56
Str, gist... don't forget perl. 16:58
masak raiph: yes, here: strangelyconsistent.org/blog/week-4...tant-steps -- paragraph starting with "A strange thing happened though," 16:59
16:59 fridim_ joined
raiph masak: thx. reading. 16:59
not_gerd sirrobert: what [Coke] said - gist is there to produce useful information about an object without going into implementation details like .perl does 17:00
r: class Dog { has $.name; has $.owner; method Str { $!name }; method gist { "$!name (owner: $!owner)" } }; my $grendel = Dog.new(:name("Grendel"), :owner("Kate")); .say for ~$grendel, $grendel, $grendel.perl
p6eval rakudo 684fd2: OUTPUT«Grendel␤Grendel (owner: Kate)␤Dog.new(name => "Grendel", owner => "Kate")␤»
masak not_gerd++ 17:01
.perl is there to produce Perl code describing the object.
.gist is there to describe the object without being bound by it being valid Perl code.
raiph masak: ok. aiui, that's where you import a name ("map") without immediately realizing the impact. 17:02
masak right.
well,
not exactly. 17:03
the damage was made in a module that was unrelated to the importing of the name 'map'.
17:03 dakkar left
masak like, it was in a different path down the tree of 'use' relationships. 17:03
sirrobert masak: that distinction helps. .gist as a sort of semi-technical gloss of the object. 17:04
masak right.
17:09 cognominal_ left 17:10 cognominal joined
raiph masak: ok. can u think of a way the p6 language and/or a p6 compiler could have better helped you to avoid or spot that problem? 17:15
masak it's not supposed to happen in a correctly implemented Perl 6 compiler. 17:16
given modules A, B, C -- A uses B and C -- anything that A imports from B is supposed to not disturb the meanings of names in C. 17:17
17:19 birdwindupbird left
masak because importing happens into lexical scopes, and C is not lexically nested inside A. 17:31
(in the general case)
jnthn Rakudo does separate compilation. Did you find a leak? 17:35
masak no, this was years ago.
April 2009.
jnthn Oh. Years ago Rakudo screwed up separate compilation. :)
Stuff. It improves.
masak jnthn: I remember you and pmichaud discussing it on the subsequent YAPC::EU. 17:36
jnthn Yeah. It took 6model's arrival to get the whole thing right though.
jnthn goes to find something to eat 17:37
17:39 fridim_ left
sirrobert Where can I read something like a tutorial for grammars? 17:42
harmil good question 17:46
masak perl6/book. 17:48
also, moritz' blog.
sirrobert thanks
masak I'm too tired to URL you -- others may be able to.
crab2313 github.com/perl6/specs
masak the spec is not a tutorial ;)
sirrobert heh 17:49
crab2313 github.com/perl6/book
masak crab2313++
crab2313: curious question about your nick: are the digits an autoincr ID of some sort? are there 2312 other crabs somewhere? 17:50
moritz there are also some grammar posts on the perl 6 advent calendar
masak oh, indeed. 17:51
harmil Also, don't underestimate the power of a concrete example. 17:52
sirrobert: see JSON::Tiny
crab2313 masak: means nothing. In fact, I'm not a native English speaker. Just for fun :) 17:54
masak crab2313: oh, ok. 17:55
crab2313: what's your native tongue?
crab2313 masak: Chinese
17:55 spider-mario joined
masak crab2313: 我刚刚从中国回来。 17:56
crab2313 masak: 好巧
masak ah... Cantonese? 17:57
crab2313 不是 17:58
masak the 巧 made me assume so. not used to seeing it.
17:59 nwc10 left
crab2313 巧 => coincidence 17:59
masak oh! 18:00
18:00 fhelmberger left, adu joined
masak and here I just assumed it was an interjection, like 啊 18:00
masak puts his assuming unit on hold
18:04 Chillance joined
masak crab2313: 你知道九寨沟吗? 18:07
masak 访问了 18:08
18:08 cognominal_ joined
adu 讲英语! 18:09
18:09 cognominal left
masak sorry if any of this is insultingly wrong. I'm GT-assisted in most of the 汉语 I attempt on-channel. 18:09
adu: yes, because we should all choose the language with the most native speakers in the worl... oh wait :P 18:11
[Coke] GT? 18:12
oh.
masak Google Translate.
phenny: en zh "You are too, aren't you?"?
phenny masak: "你也有同感,不是吗?" (en to zh, translate.google.com)
masak :D 18:13
phenny: "同感"?
phenny masak: "Same feeling" (zh-CN to en, translate.google.com)
masak aww
crab2313 masak: I know it. 18:19
masak been there?
crab2313 masak: haven't 18:20
masak I can recommend it. 18:21
crab2313 I agree with you :) 18:23
18:25 _ilbot left
adu phenny: ja en "色々非中国人々がいます。"? 18:26
phenny adu: "There are those non- Chinese variety ." (ja to en, translate.google.com)
18:28 _ilbot joined
moritz the IRC logs are currently being hammered with requests 18:28
adu are they from here? 18:29
moritz the IPS are all in the 2001:da8:2000:2192::XXXX subnet
adu IPv6?
maybe they're from China 18:30
18:31 thou left
sorear moritz: user-agents? any interesting headers? 18:32
18:33 thou joined
moritz sorear: "Mozilla/5.0" 18:33
adu: that's what whois says. South China University of Technology, Guangzhou, Guangdong 510641, China 18:34
sorear moritz: hack the script to throw up a question page
moritz ok, subnet disallowed in .htaccess, back to business as usual
sorear: not worth the effort. Chances are that nobody ever looks at it 18:35
adu oh, btw, the Go parser is comming along nicely
moritz the fact that they use multiple source IPs indicates that it's malicious 18:36
18:36 alvis```` joined
adu the grammar is now able to parse this file: golang.org/src/pkg/bufio/bufio.go 18:36
I should start writing unit tests, I suppose 18:37
18:38 alvis``` left, cognominal_ left 18:39 am0c joined, cognominal joined
masak never too early to start writing unit tests. 18:41
sorear I am sort of curious why someone would _maliciously_ attack perlgeek.de 18:42
rather than, oh, a distributed spider running slightly out of control
moritz hm, good point 18:43
TimToady perhaps they're trying to route around "damage"
masak I now have first-hand experience with that kind of "damage". 18:44
a terribly odd sensation.
moritz the hamemring has stopped.
harmil Sorry, was I not supposed to be sending my Windows backups to that machine? ;-) 18:45
moritz your windows backup knows how to crawl sites? 18:47
jnthn Probably just how to crawl. :)
moritz :-)
18:50 thou left 18:54 fridim_ joined
adu masak: what kind of damage? 18:55
masak adu: have you tried accessing Youtube or Twitter lately?
adu youtube yes, twitter no
18:55 alvis```` left
masak do you access Youtube, hm, directly? or through a proxy? 18:56
spider-mario adu : where could I find the code of your Go parser, please? :)
adu hmm I'll post the latest, just a sec, it's not online yet
spider-mario oh, ok
adu pastebin.com/raw.php?i=W297Nn8m 18:57
18:57 birdwindupbird joined
spider-mario thanks 18:58
18:59 DarthGandalf left, not_gerd left 19:05 raiph left
harmil adu: I always find myself going back over my grammars looking tokens that I can condense via proto. Looks like your go example could use some of that. But that's pretty nice! 19:06
adu harmil: thanks :)
harmil Is that a pretty straight transliteration of the Go spec?
adu mostly, automatic_semicolon is definitely the most hacking part, it doesn't work right now, so I've been preprocessing Go source with this tool I wrote: github.com/andydude/gosemi 19:07
harmil go semi! go semi! 19:08
sorry, couldn't help it
adu there are some instances where the order of productions is different from the gospec, but that's to be expected
another instance where I might have to hack around Perl6 is binary_op, which is causing me some headaches 19:09
sorear masak: hmm, are you sure adu is in China now?
adu I'm not in China
harmil Nice. I'm not go-savvy, so it just looks like someone did a pass of cleanup on some C++ to me ;-)
adu I'm in DC 19:10
TimToady well, that's a foreign country...
adu well, near DC 19:11
in Maryland
harmil Only when it comes to the right to real representation in the Congres, TimToady ;-)
adu everyone has those license plates 19:12
TimToady masak: is there a bug report for lines() not reading from the keyboard without a ^D?
PerlJam adu: what part of maryland?
sorear adu: so your geoip record was not far off
masak TimToady: yes.
adu PerlJam: Silver Spring
masak TimToady: it's something laziness-related.
TimToady adu, ah, my son used to live in Silver Spring when at UM 19:13
adu TimToady: I went to UM, for a time
PerlJam adu: a couple of my coworkers are there now visiting NOAA (NOS CO-OPS actually)
adu a friend of mine works at NOAA
masak TimToady: rt.perl.org/rt3/Ticket/Display.html?id=113100 19:14
TimToady though so, just want to make sure
sorear TimToady: reminds me I was touring JPL on Sat... saw no conclusive evidence of you though.
TimToady *ght
masak adu: oh, my mistake. it was bonsaikitten who was in 上海
TimToady sorear: well, haven't been there for more than 20 years... 19:15
adu harmil: but if I can get automatic_semicolon and binary_op working well, that's probably when I'll give the Go grammar a permanent home on github 19:16
harmil sounds reasonable 19:17
TimToady sorear: otoh, if you saw any radar images of Venus from Magellan, you could count it as evidence :)
harmil Are you trying to tell us something about your origins? I knew it! 19:18
sorear TimToady has a long and vaguely illustrious past 19:19
adu masak: I grew up in Japan, so I'm familiar with kanji/han characters, if that's where your assumption came from
TimToady *illustriously vague
adu TimToady must be from Mars 19:20
er, I mean Venus
harmil all(Mars, Venus, Earth) 19:21
19:21 vlixes joined
adu .u 👽 19:21
phenny U+1F47D (No name found)
TimToady well, I'm from none(Mars, Venus, Earth) really, since I never left any of them 19:22
adu TimToady is a transplanetary life form?
19:23 DarthGandalf joined
harmil I think he's suggesting intraplanetary, but I always confuse those. 19:24
TimToady 僕はうる星やつらですよ!
masak phenny: " 僕はうる星やつらですよ!"? 19:25
phenny masak: "For me I can Urusei Yatsura !" (ja to en, translate.google.com)
masak is that a crude translation of "I can see Uranus from here!"?
TimToady no, it's a pun on Obnoxious Aliens
masak oh :P
TimToady or "People of Planet Uru" 19:26
harmil The gist/Str conversation from before is still rattling around in my head. Something bothers me about it.
I have to go to a meeting, but I'll try to formulate what it is that bothers me. 19:27
adu a better translation would be: "You know, I'm Urusei Yatsura!"
TimToady I'm an Uruse Yatsura is more like what I was thinking
*sei
you can't drop articles in English much... 19:28
adu or "~ dontchyaknow" if you're from Minnesota 19:29
sorear TimToady: I didn't find an L., can you say anything about Stephen D. Wall ? www2.jpl.nasa.gov/magellan/guide13.html 19:30
masak 'night, #perl6
PerlJam sorear: you don't have the appropriate security clearance to know that TimToady worked at JPL except that he tells you so ;) 19:31
sorear PerlJam: I know TimToady worked at JPL because the Perl 1.0 release announcement was sent from his work emial. 19:33
PerlJam He probably worked in a SCIF and we're lucky that Perl survived the security protocols for letting email out. 19:34
TimToady sorear: no relation that I know of. And I wasn't directly on Magellan, but on a project called SFOC (Space Flight Operations Center) that was first used for Magellan ground data systems 19:35
furthermore, I was a contractor from Telos, so I didn't really exist :)
sorear I thought SFOC was just one of the buildings 19:36
TimToady that's the SFOF
...Facility
moritz ot really existing seems to be a good tactic in big organizations
TimToady if they showed you the "dark room", I did an unauthorized CPU swap in there the night before Magellan launched 19:37
I don't know if they would have launched with only a single working SMC
19:38 Layla joined
TimToady anyway, the SFOC project has been renamed several times since then, I suspect 19:38
PerlJam moritz: it's probably enough that you don't show up on budget reports and such.
19:39 quietfanatic joined
TimToady it was supposed to be the first generic ground data system; all the previous ones were written from scratch for each spacecraft 19:39
19:39 MayDaniel joined
TimToady after SFOC, they rewrote the generic system for each spacecraft instead :) 19:39
quietfanatic Incidentally, you can't say "I'm an Urusei yatsura" because the 'ra' suffix indicates plurality. 19:40
TimToady sure, I can say it, it's just wrong
quietfanatic ...right
sorear o/ quietfanatic 19:41
quietfanatic hello sorear
sorear would like to be from Earth someday 19:42
moritz generally finds the earth a nice and enjoyable planet 19:43
Layla hello.. long time no see.. i just came to spy on you.. am from the moon ^_^ 19:44
tadzik hello Layla :)
Layla tadzik: :D 19:45
jnthn o/ Layla :)
Welcome back :) 19:46
Layla jnthn: :) hiii sorry for being away so long.. live can be a real (bad thing) sometimes.. !
jnthn Aww...sorry to hear that there's been bad things. 19:48
Hope life is a real better thing now :)
Layla what doesn't kill us make us stronger, am too strong now xD
19:48 cognominal_ joined, rhr left 19:51 cognominal left
Layla I like it here.. it looks like a place that doesn't age or change (heaven?) :P nice community, funny jokes, and some sweet language evolving meanwhile and has a logo of a butterfly! hehehe :) 19:52
TimToady nr: LINE: for lines() { next LINE if /z/; .say } 19:53
p6eval niecza v18-7-ga660099: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmitten,␤Hast seit frühen A…
..rakudo 684fd2: OUTPUT«===SORRY!===␤Confused␤at /tmp/hHVj_3PLpv:1␤»
TimToady n: LINE: for lines() { next LINE if /L/; .say } 19:54
p6eval niecza v18-7-ga660099: OUTPUT«Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmitten,␤einem starken Herzen gleich.␤Hast seit frühen Ahnentagen␤vielgeprüftes Österreich…
sorear offers hugs to Layla. 19:55
19:55 rhr joined
jnthn #perl6 being a nice place does, happily, seem to be an unchanging feature. :) 19:55
Layla sorear: free hugs yahoo :D but no thanks :P 19:56
20:00 Layla left 20:02 hottman joined 20:03 Layla joined, MayDaniel left, hottman left, BlueT_ left, BlueT_ joined, MayDaniel joined 20:04 Layla left
quietfanatic No matter how many times I look in the spec, I can't find any description of how parser actions work. 20:09
PerlJam quietfanatic: When the grammar rule has completed its parse, it calls the same named method on the actions object. And that method does whatever it wants. 20:12
20:13 crab2313 left
quietfanatic But what does the action method take as arguments? 20:14
The match object?
PerlJam quietfanatic: aye
quietfanatic ah
and is it supposed to return anything?
PerlJam it can. Usually you manipulate the AST with make() though 20:15
(well, "make" )
quietfanatic okay. I forgot about make()
thanks
sorear quietfanatic: afaik any return value from the action is ignored 20:18
[Coke] "timtoady has a long ... past"... that's code for "he's old", yah? :)
20:18 MayDaniel left
PerlJam [Coke]: the older I get, the younger he seems ;) 20:19
20:20 ggoebel left
quietfanatic p6: 'abc' ~~ /a ** b/ 20:23
p6eval niecza v18-7-ga660099: OUTPUT«Potential difficulties:␤ Unsupported use of atom ** b as separator; nowadays please use atom+ % b at /tmp/HI3qSzIL5q line 1:␤------> 'abc' ~~ /a ** b⏏/␤␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..rakudo 684fd2: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " b/"␤»
sorear [Coke]: yes and no
quietfanatic %, huh?
20:23 sirrobert left
PerlJam aye 20:23
20:24 ggoebel joined, thou joined
quietfanatic I guess that makes sense to be able to use it with either + or * 20:25
Oh, I just realized that prefix:<|> is reminiscent of the [head|tail] construct of some functional langs 20:27
now it makes much more sense.
adu quietfanatic: I've had trouble with that too 20:28
I've been learning Perl6 for about a month now
quietfanatic ...not like [head|tail] made much sense itself
*not that 20:29
adu and the most informative things I've learned is from dumping the match object
quietfanatic Ah, yes, the match object is quite interesting
kinda both a hash and an array
and a string
adu r: my grammar G { rule TOP { <number> }; token number { <digit>* }; }; say G.parse("1") 20:31
p6eval rakudo 684fd2: OUTPUT«q[1]␤ number => q[1]␤ digit => q[1]␤␤»
adu quite interesting, yes
quietfanatic: have you seen my go grammar?
quietfanatic I have not.
for the go language?
adu yes
pastebin.com/raw.php?i=W297Nn8m 20:32
github.com/andydude/gosemi
it currently requires explicit semicolons
I hope to fix that
quietfanatic That's pretty neat 20:33
[Coke] sighs, as pastebin is blocked here. 20:34
adu [Coke]: can you access github? 20:35
quietfanatic I don't think implicit semicolons should be that hard, but it depends on how they're specced.
adu golang.org/ref/spec#Semicolons
you can see my <automatic_semicolon> rule for how I was thinking of doing it
quietfanatic Oh, it just uses a heuristic 20:36
sounds like you can do that with a lookbehind assertion.
adu maybe, we'll see
quietfanatic or maybe it's more complicated than that
right, it requires examining what you've already parsed to the left 20:37
well, I dunno.
adu everyone seems to think it's impossible, which is why I want to do it
I was thinking of making multiple versions of every production, like <int_lit>, <before_semi_int_lit>, but I don't want to 20:38
quietfanatic there should be a shorter way...
adu indeed
TimToady they're just methods, and you can do other things than just match stuff
adu like set globals $EXPECTING_SEMICOLON = True? 20:39
quietfanatic right, I was thinking of setting a stateful variable after parsing each token that can terminate a line
TimToady well, globals stink, but that's the idea
quietfanatic but then you have to unset it
adu right
TimToady a dynamic variable would be more appropriate, or a memo array like STD uses
quietfanatic can you attach something to the match object in the token and examine it in the statement rule? 20:40
*token rule
sorear adu: I told you yesterday it was possible. <?after> is the wrong approach, though. 20:41
adu s/impossible/intractible/
quietfanatic or you might not even have to set anything when oarsing the token 20:42
if when you encounter a newline, you open up the match object for the last-matched thing and walk down it until you find the right token
adu <{ $TerminatingToken || fail }>? 20:43
quietfanatic of course, then you have to make sure you always descend into the right-most match object.
TimToady STD just sets a memo on the parse position, and then it doesn't matter how you get there 20:44
quietfanatic you can do that?
TimToady see curlycheck in STD.pm6
that's how it makes ; optional after line-ending }
this is basically the same problem
quietfanatic of course, storing an array equal in length to the parsed string takes a lot of memory 20:45
TimToady only more general than just after }
quietfanatic unless it's really a hash :)
TimToady you could use a bitmap
adu yeah, I've been looking at STD.pm6, but I don't see how to apply it to my problem
sorear I am sorely tempted to spend the next hour writing a full Go grammar to prove to the world that my way will work and adu's won't 20:46
quietfanatic And Perl 6 lets you manipulate packed bits these days?
TimToady well, if that's the first step to a Go backend for niecza, I'm all for it :)
quietfanatic: almost
you can fake it with a buffer, or a large Int 20:47
quietfanatic 'almost' sounds very familiar... :)
TimToady but we don't quite have my bit @array; yet
I think rakudo is pretty close with its existing native types though
adu sorear: if you could explain it to me, maybe I can do it for you
quietfanatic that's good news.
TimToady bit arrays will be much nicer than vec() 20:48
in my radical lookup program I was just hacking on, I used a Buf to fake a vec()
but I have to do my own div 8, % 8 processing
adu TimToady: oo sounds useful
TimToady adu: it's very useful if you're willing to learn my names for several thousand radicaloids :) 20:49
adu heh
quietfanatic now that native types are (almost) working, maybe I shall start remaking Link::C 20:50
sorear oo, I like radicaloids 20:51
20:52 kaare_ left, birdwindupbird left
TimToady for instance, if I see 感, I can look it up as 'rad unison Heart' or as 'rad halberd barmouth Heart' or various other breakdowns 20:52
and it spits out a line like: 611f 13感Heart.b unison.t kan=+feeling
the actual breakdown of "unison" is TheDog and mouth though 20:53
620c 06戌halberd.o toebar.l hbar.c halberd.r fifth.o hbar.i inu=dog +TheDog /Zt11th
quietfanatic 'The' because it's a constellation 20:54
TimToady nodnod
though none of the others need The
TheDog gets it because dog and Dog are both taken
but boar, firehorse, Hare, etc get away without it
quietfanatic because they're all the same as their earhtly counterparts? 20:55
TimToady well, not always
but I try to use lower/uppercase to good advantage when possible
quietfanatic or because you're relying on capitalization to differentiate
ah
adu TimToady: what are you using for your radical data? 20:58
I found github.com/kawabata/kanji-database-ids to be quite useful 20:59
quietfanatic I believe he's making his own database. 21:00
adu ok
TimToady well, originally based on existing databases, but that was years ago 21:02
at the moment I'm going through all the Extension B characters classifying them 21:03
21:03 skids left
TimToady done with everything up to about 15 strokes so far 21:03
but pretty much any combination of forms you can think of, somebody has used somewhere... 21:04
21:04 mikemol left
TimToady here's a cool one: 𦮙 21:05
you might have to visit the ir clogs to see it 21:06
adu my client is unicode ready
21:06 MayDaniel joined 21:07 libertyp1ime joined
adu and I have a s**tload of fonts installed 21:07
TimToady I think the max stroke count is 𪚥
4.dragons, in my database
adu ryu! my favorite
sorear hey, I found an ambiguity in the go spec
break /*
adu sorear: do tell
sorear */ continiue
is a semicolon inserted at the end of the first line? 21:08
(how does the go compiler handle this case? I don't have it installed atm)
adu sorear: I'll check
TimToady I know how STD handles those things (hint: there's a unv rule that matches anything "unvertical", including comments with embedded whitespace) 21:09
quietfanatic so STD would not like that
adu sorear: yes, gc compiles that to be equivalent to break; 21:10
TimToady STD would not insert a semicolon if you say {...} #'( comment with \n ) stuff, unless stuff is just \h* $$
adu not even a warning that continue is dead code
21:10 libertyprime left, libertyp1ime left
quietfanatic wait, it doesn't even see the continue? 21:11
or it just won't reach it
21:11 libertyprime joined
adu pastebin.com/raw.php?i=d2Y67Maf 21:13
TimToady nr: do { say "HERE" } #`( a comment with ␤ in it ) # another comment allowed here though
p6eval rakudo 684fd2: OUTPUT«HERE␤»
..niecza v18-7-ga660099: OUTPUT«===SORRY!===␤␤(Possible runaway string from line 1 to line 2)␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/1x4ri0QyPl line 1:␤------> do { say "HERE" }⏏ #`( a comment with ␤␤Parse failed␤␤…
adu that compiles fine
TimToady ooh, nieczabug 21:14
std: do { say "HERE" } #`( a comment with ␤ in it ) # another comment allowed here though
p6eval std f179a1b: OUTPUT«===SORRY!===␤(Possible runaway string from line 1 to line 2)␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/r4JBYmAY4l line 1:␤------> do { say "HERE" }⏏ #`( a comment with ␤ expecting statement mo…
TimToady or STDbug
PerlJam rakduo++ :)
TimToady std: do { say "HERE" } #`( a comment with ␤ in it ) 42 # s/b TTIAR
p6eval std f179a1b: OUTPUT«===SORRY!===␤(Possible runaway string from line 1 to line 2)␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/PsKy5ff2Ki line 1:␤------> do { say "HERE" }⏏ #`( a comment with ␤ expecting any of:␤ esc…
PerlJam er, rakudo++
adu sorear: it's not ambiguous: golang.org/ref/spec#Comments
TimToady nr: do { say "HERE" } #`( a comment with ␤ in it ) 42 # s/b TTIAR
p6eval rakudo 684fd2: OUTPUT«===SORRY!===␤Confused␤at /tmp/RZoKOrwmXZ:1␤»
..niecza v18-7-ga660099: OUTPUT«===SORRY!===␤␤(Possible runaway string from line 1 to line 2)␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/EBApbeEVA6 line 1:␤------> do { say "HERE" }⏏ #`( a comment with ␤␤Parse failed␤␤…
adu sorear: a block comment acts like a newline iff it contains a newline 21:15
21:15 kurahaupo joined
TimToady std: do { say "HERE" } #`( a comment with ␤ in it ) 21:22
p6eval std f179a1b: OUTPUT«ok 00:00 41m␤»
21:22 libertyprime left 21:25 am0c left
TimToady yeah, unv currently only allows one comment...what idiot wrote that rule? 21:25
21:25 libertyprime joined
dalek d: 30385f8 | larry++ | STD.pm6:
unv should allow multiple comments
21:28
TimToady fixed :)
PerlJam I wonder how rakudo is coping. It's unv only allows for one comment too 21:29
21:29 kurahaupo left 21:30 MayDaniel left
TimToady it looks like ws does an effective <.unv>* 21:31
sorear adu: gist.github.com/2920292 21:36
completely untested, and rather a pile of crocks 21:39
adu sorear: fascinating
I will disect it, and learn what I can from it 21:40
ADDSEMI?
sorear put :my @*ADDSEMI in your TOP rule 21:42
it's basically a thread-local variable, but needs to be declared somewhere in the call stack
also, it seems the .cursor stuff is niecza-only as written 21:44
there's probably a rakudo equivalent, dunno what offhand 21:45
adu sorear: your grammer is very interesting 21:50
TimToady perl6: $_ = "XXXX"; if s/YYY/ZZZ/ { say "Naughty" } else { say "Nice" } 21:53
p6eval rakudo 684fd2, pugs: OUTPUT«Naughty␤» 21:54
..niecza v18-7-ga660099: OUTPUT«Nice␤»
TimToady my rad program uses the boolean result of s/// all the time, sigh
21:56 Gesh joined 21:57 Gesh is now known as pupoque
TimToady maybe I can figure out some way to trick niecza into doing vec emulation... 21:59
22:00 kurahaupo joined
TimToady reg & 22:02
22:03 quietfanatic left 22:17 bluescreen10 left 22:21 fridim_ left, vmspb joined 22:30 pupoque left 22:33 PacoAir left 22:39 whiteknight joined 22:40 whiteknight is now known as Guest54920, spider-mario left 22:45 Celelibi left
pmichaud good evening, #perl6 22:52
jnthn o/ pmichaud 22:53
pmichaud: Dunno if you saw, but the BE issue is resolved :)
pmichaud I saw -- excellent!
jnthn (Big Endian. Not British English. :P)
When's your talk? 22:55
jnthn wonders if he might catch it on the live stream...
Though, probably not given I'm gonna be country hopping in the next couple of days... 22:56
23:03 Helios` joined
pmichaud omg the wireless here is .... awful 23:10
pmichaud temporarily connects via his phone
jnthn :S
23:10 mtk left
jnthn Wireless can be cranky. 23:11
pmichaud my presentations are on thursday and friday 23:12
thursday at 22h30 utc 23:13
friday at 20h30 utc
both in Pyle 313
lightning talk sometime 23h50-0h50 utc 23:14
jnthn Hm, will likely be doing a train journey on a wifi-equipped train during that Friday one.
pmichaud no, wait, that's not right 23:15
I'm off by a couple of hours
jnthn Oh, but wait...BST rather than UTC...
pmichaud lightning talk 21h50-0h50
(utc)
friday at 18h30
thursday at 20h30 23:16
that's better
jnthn Ah, those are trickier...will keep 'em in mind.
pmichaud okay, I need to head off to the arrival dinner -- will bbl 23:17
jnthn Enjoy :)
23:28 vmspb left 23:33 thou left 23:36 alvis joined, adu left 23:46 tyatpi left 23:47 tyatpi joined