»ö« 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 atomParse failedFAILED 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 1Wednesday May 2Thursday May 3Friday May 4Saturday May 5Sunday May 6Monday May 7Tuesday May 8Wednesday May 9Thursday 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 1Wednesday May 2Thursday May 3Friday May 4Saturday May 5Sunday May 6Monday May 7Tuesday May 8Wednesday May 9Thursday May 10» | ||
..niecza v18-6-ge52d6c3: OUTPUT«===SORRY!===Undeclared name: 'Date' used at line 1Unhandled 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«BCABCABCAB» | ||
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«GrendelGrendel (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 umstrittenliegst dem Erdteil du inmitten,Hast seit frühen A… | ||
..rakudo 684fd2: OUTPUT«===SORRY!===Confusedat /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 umstrittenliegst dem Erdteil du inmitten,einem starken Herzen gleich.Hast seit frühen Ahnentagenvielgeprü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!===Confusedat /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
|