»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:06 BrowserUk joined, BrowserUk left 00:43 lest_away is now known as lestrrat, ashleydev joined 00:44 BrowserUk joined, BrowserUk left 00:45 BinGOs left, yinyin joined
snarkyboojum rakudo seems to work nicely for me on parrot r46753 00:46
fwiw
diakopter "At one point, there were 1200 developers on the CLR team. That's over a year of man-hours per 8-hour day!" 00:47
00:51 BinGOs joined 00:57 ashleydev left 00:59 ashleydev joined 01:08 ashleydev left 01:10 hercynium left 01:21 rgrau left, molaf__ joined 01:24 hercynium joined 01:25 molaf_ left
sorear Why don't I get my own pugs-commits mails? 01:30
I get mailed when lwall edits the spec, but not when I edit viv 01:31
TimToady only spec changes go to p6l
01:33 dolmen left 01:34 plobsing joined 01:35 jhuni joined 01:50 k23z__ left 01:58 agentzh joined 02:02 wknight8111 left 02:04 bluescreen joined 02:05 bluescreen is now known as Guest85419 02:18 BillN1VUX joined, BillN1VUX left 02:19 JimmyZ joined 02:27 [mark] joined 02:38 eternaleye left 02:39 finanalyst joined
sorear re. Su-Shee: I hereby petition for the removal of base classes. We can simplify the metamodel a lot of all inheritance is done through roles 02:43
02:43 _jaldhar joined, gbacon_ joined 02:46 gpw left, gpw joined
sorear diakopter: Why am I reminded of Fred Brooks ... 02:51
02:59 lestrrat is now known as lest_away, jassics joined 03:00 Guest85419 left
jassics hi all 03:00
sorear Hello.
03:00 masonkramer left
sorear Welcome. 03:00
jassics Thanks.
03:00 masonkramer joined
jassics i am working on perl 5.10 03:00
what abt u all?
sorear We're working on Perl 6
TimToady some of us are playing 03:01
sorear If you want help hacking perl 5.10, ask #p5p or #corehackers on irc.perl.org
what's the difference?
jassics oh cool... don't u think variable declaration and its use will be a mess b/w perl 5 and perl 6
sorear I don't follow. 03:02
TimToady the perl 6 way is really easy to get used to
and perl 6 at least will tell you if you screw it up :)
sorear Isn't it essentially the same as the Perl 5 way?
TimToady std: my @abc; say $abc[1]
sorear Nobody uses no strict anymore
p6eval std 30678: OUTPUT«===SORRY!===␤Variable $abc is not predeclared (did you mean @abc?) at /tmp/irZ4JzHGem line 1:␤------> my @abc; say $abc⏏[1]␤Check failed␤FAILED 00:01 114m␤»
jassics ppl will find tought to switch from perl 5 to perl6
sorear Oh, that
jassics: you can't fix people. you have to win over their children & wait for them to die 03:03
it's like this with all paradigm shifts :(
jassics and those who are working on perl 5 may not try to adapt wihperl 6
TimToady unless your name is Joshua or Caleb, of course...
jassics u mean perl 5 will vanish if everyone wish to use perl 6
it should be like next version as damian told in 2003 03:04
TimToady jassics: you don't have to make it an either/or thing like that
there's more than one way to do it, including p5 and p6
03:04 lue left
jassics hmmmm but both r diff lang. 03:07
sorear CPAN is the language
jassics even name is somewhow same. it would be really nice if perl 6 fully support perl 5 and tries to fix bugs or erors that perl 5 is having
TimToady diff syntax, but designed with the same fundamental principles
well, sure, but we need to finish the p6 part of it first 03:08
sorear the problem with perl 5 is backwards compatibility. perl 6 fixes that, by abandoning the replacement paradigm
TimToady we will be able to parse the sane subset of P5; already have the grammar half written, in fact
sorear perl 6 is going to coexist with perl 5, in much the same way that Python coexists with BASIC
TimToady now be nice :) 03:09
jassics wow thats sounds good.
sorear in time, we hope that we will win over the sane programmers, and Perl 5 will fade into the mists of history
jassics well then one day perl 6 will also go when perl 7 will come?
TimToady feel free to design Perl 7, but we have to finish 6 first :) 03:10
and if we do Perl 6 good enough, it can just evolve into Perl 7
we couldn't do that with 5 to 6 because 5 wasn't sufficiently well design to evolve that way 03:11
*designed
03:13 quietfanatic joined 03:18 slavik left
jassics lets see how long it will take to come into existence 03:27
i m waiting to see its power
sorear what? 03:28
it exists now
languages don't magically become good, they need to be used
so... use it if you want it to be good
TimToady: I'm trying to reverse engineer the gimme5 regex compiler. What regexes should I avoid testing because they are miscompiled? 03:30
TimToady well, it doesn't do anything with embedded /foo/ style regexes, only token/rule/regex
it doesn't do & or && 03:31
it sometimes requires {{...}} around blocks if there are {} inside
03:32 gbacon_ left
TimToady I there are some marginal things around the edges that work sometimes depending on the phase of the moon, but if nothing depends on them in testing STD.pm6 or *.t, they don't get tested 03:32
lookbehinds tend to fall into that category
sorear There are tests?
Or are you talking about the bit where STD.pmc is run over t/spec/*/*?\ 03:33
TimToady yes, that
but it's always running the same code, so it doesn't do complete coverage by any stretch
03:34 slavik joined
sorear has this mad notion of hooking up 'viv' + eval + 'tloop' 03:34
TimToady the :i sorts of things are probably marginal at best
03:34 justatheory left
TimToady well, viv does pretty well on the un6 parts of the translation 03:35
at least it can completely translate EXPR, if it hasn't bitrotted
sorear un6 is basically just everything except regex, right?
TimToady well, mainline code
doesn't do well inside quotes or regexen 03:36
sorear it shouldn't be doing anything at all inside quotes
TimToady so you see a lot of gluing things together with ~ in STD where it could be using interpolation
sorear because we, uh, use a real parser now
TimToady viv will do better on those than gimme5, sure
except when it doesn't... 03:37
and, of course, gimme5 is really not translating to an exact equivalent
turning dynamic vars into locals, and suc h 03:38
one of the reasons the old v6 was so slow was because it was aiming for exact semantics, so used Pad::Walker and such to play with lexicals 03:39
that seemed like overkill for a bootstrap
but even if viv only does a half-baked translation, using it to get BEGIN semantics would be cool 03:40
and the subset of P6 that maps to P5 is already pretty cool 03:41
are you going to continue hacking on viv? I can always find other stuff to work on (alas). 03:42
sorear so can I
and you're in a better position
if there can only be one, you have it
what is "the old v6"? 03:43
TimToady I think we could timeshare, if we just keep checking in periodically
sorear svn is pretty good at conflict resolution as long as we don't branch... 03:44
TimToady the first non-pugs perl 6 implementation in the pugs repo
by fglock++
sorear was it based on any of the STD/gimme5 technology?
TimToady no
had its own hand-rolled parser
and besides being slow is probably rather bitrotted by now 03:45
well, I need to wander off for an hour or two, so you can have viv at least that long :) 03:46
bbl &
03:46 stephenlb left
sorear doesn't think fast and correct have to be mutually exclusive 03:50
04:09 occamshatchet joined 04:25 pnate joined 04:28 ashleydev joined 04:29 Targhan left 04:40 {shade} left, {shade} joined 04:47 kolibrie left 04:52 kolibrie joined, kst` joined 04:54 lue joined, kst left, Rugxulo joined
sorear hello 04:56
04:57 kolibrie left 04:59 jassics left 05:03 ashleydev left 05:05 kst`` joined 05:07 kst` left 05:14 kaare joined, Rugxulo left 05:15 kaare is now known as Guest26716, gpw left
JimmyZ hi 05:16
05:18 kolibrie joined 05:22 hercynium left 05:23 molaf__ left 05:44 patspam left 05:46 uniejo joined 05:52 finanalyst left, XaeroOne joined 05:55 isBEKaml joined 05:56 pnate left 06:14 quietfanatic left
isBEKaml hi, folks! 06:19
moritz_ moin 06:22
sorear hello 06:23
isBEKaml: =~ is ~~ now
JimmyZ JimmyZ got many faild tests on rakudo perl 6 on Windows XP" (47 lines) at nopaste.snit.ch/20586
isBEKaml sorear: nice. =~ is ~~ is smartmatching. :) 06:26
oh, yeah. That reminds me. Tests passed last night with a couple of TODOs passed too. 06:27
on parrot r46740 06:28
moritz_: I was looking at u4x docs this morning. the state of the docs rattles against the u4x manifesto. :( 06:32
06:34 gfx joined
isBEKaml moritz_: I'm thinking of adding more to it, from the TODO list. 06:35
sorear: You're working on viv? 06:37
06:39 eternaleye joined 06:42 Su-Shee joined
sorear isBEKaml: working may be too strong a word... 06:44
06:45 eternaleye left
isBEKaml sorear: Could you just change the shebang on the top to the more generic /usr/bin/env perl ? 06:45
sorear: I find the pugs repo full of interesting things, though a tad old... :) 06:46
sorear right now, Larry is doing more work on viv than I am 06:49
06:49 lest_away is now known as lestrrat
sorear well not *right* *now* 06:49
but in the last month
06:49 eternaleye joined
isBEKaml oh, ok. no issues. :) 06:49
sorear it probably could be changed, but neither is exactly portable
isBEKaml is this right? 1 while $var ~~ /$pattern/ ?
rakudo cops out on this line saying "unable to parse blockoid..." 06:50
sorear that's because /$pattern/ syntax is NYI
but it's fine
stdically 06:51
moritz_ isBEKaml: more docs would always be welcome
sorear yes, documentation is what the STD ecosystem needs more than anything else
isBEKaml no, I'm actually trying to get Rakudo to play hangman that available in the pugs/examples/games folder. :)
sorear my ability to comprehend it is predicated on TimToady's IRC availability
does $pattern potentially contain metacharacters? 06:52
isBEKaml The actual line is this: 1 while $dict.lines ~~ rx:P5/\S/;
sorear oh
moritz_ rx:P5 is NYI in master
sorear pugs implemented regexes using PCRE
which meant that rx:P5 was the only kind it could handle 06:53
Rakudo has (indeed, is based on) an implementation of most of p6regex
moritz_ s/PCRE/Perl 5/
sorear but lacks any p5regex handling
isBEKaml oh, I see...
sorear moritz_: Oh? Which implementation am I confusing it with that used PCRE?
06:54 circuitbreaker joined
moritz_ alpha: say 'a,,' ~~ rx:P5/a,*/ 06:54
p6eval alpha 30e0ed: OUTPUT«a,,␤»
moritz_ sorear: no idea
sorear rakudo: say 'a,,' ~~ /\S/
p6eval rakudo 2d0fc2: OUTPUT«a␤»
sorear so just /\S/ is fine
06:54 [circuitbreaker] left
sorear moritz_: did alpha parse rx:P5 itself or delegate to PCRE/perl6? 06:55
perl5
isBEKaml sorear: yes, that's what I did. but there are too many, even with things like s:P5//
and, I will have to modify the p5 regex patterns to those of p6. erm, I will be asking quite a lot of noob regex questions. Please bear with me. :( 06:57
06:59 iblechbot joined
moritz_ sorear: PGE implemented parts of the perl 5 regex syntax 07:07
isBEKaml rakudo: my $name="fname lastname"; my $realname=""; if($name ~~ /^(.+?)(?:\s+|$)/) { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname; 07:09
p6eval rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
moritz_ first of all if(...) is a sub call 07:10
use if ... # no parens required
07:11 gpw joined
isBEKaml rakudo: my $name="fname lastname"; my $realname=""; if $name ~~ /^(.+?)(?:\s+|$)/ { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname; 07:12
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
isBEKaml regex wrong?
moritz_ regex wrong 07:14
isBEKaml rakudo: my $name="fname lastname"; my $realname=""; if $name ~~ /<alpha>+\b\s*/ { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname;
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
moritz_ " needs to be escaped
07:14 kst`` left, kst``` joined
moritz_ and \b is now » 07:14
for right word boundary 07:15
isBEKaml oh... 07:16
escaping the "" worked, but no output. So I will have to work on the regex. Will read up S05 a bit and come back.
d'oh! logic error... :/ 07:20
rakudo: my $name="fname \"realName\" lastname"; my $realname=$name; if $name ~~ /<alpha>+>>\s*/ { $name ~~ s/\s*\".*\"\s*/ /; } say $name; say $realname; 07:21
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
isBEKaml rakudo: my $name="fname \"realName\" lastname"; my $realname=$name; if $name ~~ /<alpha>+»\s*/ { $name ~~ s/\s*\".*\"\s*/ /; } say $name; say $realname; 07:23
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
isBEKaml odd, that worked on my local REPL... :(
07:26 JimmyZ left
isBEKaml (0..+@array - 1 ) is now @^array, right? 07:29
nm, I see now.. 07:32
indexing through loops is probably a bad solution, will have to look for a workaround.. 07:33
07:41 snarkyboojum left
isBEKaml what does ~= mean? $variable ~= $some_other_variable 07:43
\o/. Finally got it to compile! 07:52
one last question, though. what's the equivalent of @INC here with Rakudo? any environment variables that I can use? I got a rakudo set up in a custom location. 07:53
"Unable to find module 'lib' in the @*INC directories." 07:54
this is what I got when trying to run it... any ideas about locating the module?
08:00 meppl joined 08:04 viklund joined
sorear isBEKaml: ~= is just an inplace modification derived operator 08:04
isBEKaml, use lib is a pragma 08:05
it's not something you can just install
isBEKaml sorear: yeah, I figured as much. there were lines like use lib '<list of relative pathnames, should one fail take the next>' followed by use <module here>; 08:07
sorear: what bugs me is, the relative pathnames are all correctly pointing to the lib folder of File::Spec (the module that's required here) 08:08
Juerd isBEKaml: If you know what += does, and you know what ~ does (concatenate strings), then you can figure out what ~= does.
sorear use lib isn't mentioned in the synopses anywhere
sorear blows the TimToady whistle
let's do better than perl 5 and make it lexically scoped
isBEKaml Juerd: Thanks. :) 08:09
sorear: oh, no! what do we do? :(
sorear isBEKaml: You? Set PERL6LIB 08:10
Us? Wait for TimToady's resolution
isBEKaml sorear: I did perl6 -e '@*INC>>.join(",").perl.say'. It outputted the ., ~/.perl6/lib and the parrot lib location 08:11
sorear: what do I set PERL6LIB to ? 08:13
sorear That's wrong. Don't trust it.
Just the absolute path of where you want modules found
isBEKaml ok, so I set it and that's not very generic it seems. I have to unset and reset it everytime I want to use another module. I could move all modules to another location and set up dir structure, though... 08:16
now, I remove all use lib lines?
sorear yes, I agree it's bad 08:18
isBEKaml sorear: PERL6LIB failed too. I tried using use File::Spec:from '<relative path to lib folder here>', it gave me this, "Method 'value' not found for invocant of class 'PAST;Var' 08:22
"
08:22 sorear left 08:23 sorear joined
isBEKaml echo $PERL6LIB; ~/Downloads/tools/rakudo/pugs/pugs/ext/File-Spec/lib/ 08:23
sorear gah 08:24
isBEKaml gack... Malformed package declaration at line 3, near "-0.0.1;\n\nm" WTF were version numbers included in module declarations?? 08:26
08:28 dakkar joined, plobsing left, clintongormley joined
isBEKaml sorear: I copied over the lib contents to ~/.perl6/lib and I got this. Corrected it and I get another error. Something like "Indirect name lookups not yet implemented..." 08:29
is this correct? return &::$(worker_pkg)::curdir(); 08:31
File-Spec/lib/File/Spec.pm
08:31 Helios left 08:32 arnsholt left, arnsholt joined
sorear yes it's correct 08:33
08:33 Grrrr left
sorear "not yet implemented" isn't clear? 08:34
isBEKaml sorear: I was looking at File::Spec::Unix, that defines curdir() or I think it does...
08:34 mdxi left, mdxi joined
isBEKaml there was eval require File::Spec::Unix before this line, so, surely this must have been implemented... 08:35
08:35 hejki left
sorear isBEKaml: I don't understand you 08:35
08:35 hejki joined
sorear There' 08:36
s no reason why features have to be implemented before people can prototype code using them
isBEKaml sorear: File/Spec.pm defines $worker_pkg based on the underlying os $^OS. Next it calls eval "require $worker_pkg"; and then this error msg..
sorear furthermore, there are a dozen independant perl6 implementations
08:36 Helios joined
sorear $^OS is wrong 08:36
needs to be $*OS 08:37
File::Spec has never been run
08:37 BrowserUk joined
sorear oh, run in pugs 08:39
moritz_ wow, this morning all went wrong
sorear same thing, basically
worse than mine?
moritz_ first my girlfriend cut her finger
needed to take her to the doctor
then was late for $work
and the bus driver took the wrong turn 08:40
sorear isBEKaml: It would, indeed, be nice if you could take code written against pugs and run it against ng with no problems.
moritz_ (could all have been worse, but it feels bad nonetheless)
08:41 TiMBuS joined
sorear isBEKaml: you're going to want to mostly rewrite this thing; ng's support surface is quite different 08:41
in particular, ng supports objects
isBEKaml sorear: yay, another challenge! I'll take it, but you'll have to tell me what I need to know before I go tackling this... :) 08:42
moritz_: feel sorry for ya. I hope everything's sorted out and okay now? 08:43
moritz_ isBEKaml: no idea, left her at the doctor's
sorear isBEKaml: sorry, I need to sleep now 08:44
isBEKaml sorear: no problem. thanks and good night. :) 08:45
sorear isBEKaml: if you feel *really* ambitious, improving ng is always good
08:45 Grrrr joined
sorear ng is current (>Feb2010) "rakudo"; I say ng when I want to avoid confusion with alpha 08:45
*gone* 08:46
isBEKaml sorear: nah, I'm not all that confident I could turn out something good. I'm just tired of sitting with the Specs and want to do something..
jnthn o/
isBEKaml \o
moritz_: you're making it sound funny(I don't know if I'm serious ;) ) 08:47
08:49 finanalyst joined
isBEKaml sure looks like I have to rewrite these modules.... 08:57
cognominal o/ 09:01
moritz_ isBEKaml: I'm quite sure by now everything is sorted out - I just don't know yet 09:05
isBEKaml moritz_: ok, nice. 09:07
09:07 rgrau joined
isBEKaml Straight from S05: "$target ~~ s:g[pattern] op= expr." What does this mean? What can I do in the expr part of this statement? 09:12
the equivalent form isn't clear to me either..
moritz_ are you familiar with perl5's s///e?
isBEKaml yes.. evaluate on right side substitute... 09:13
moritz_ in the case of s:g[pattern] = expr;, the expr take the role of the right side
*takes
so it's evaluated for each substitution 09:14
$a op= $b is the same as $a = $a op $b
isBEKaml oh, I see... this looks to be a bit more verbose than s///e, what's the net gain?
moritz_ that it's clear that it's code
so s[pattern] *= 3; is short for s[pattern] = $/ * 3; 09:15
which means 'in-place multiply all matches of pattern with 3'
rakudo: my $x = 'a23bc34'; $x ~~ s[\d+] *= 2; # I'd be surprised if it worked 09:16
p6eval rakudo 2d0fc2: OUTPUT«Missing assignment operator at line 11, near "*= 2; # I'"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
moritz_ ah, NYI
colomon: I wonder how hard that would be...
jnthn moritz_: Not that bad. 09:18
jnthn was a little tempted to try it when he added the = form in the first place 09:19
isBEKaml rakudo: my $str="momonut"; $str ~~ s:g/m/c/; say $str; '
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "'"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤» 09:20
isBEKaml rakudo: my $str="momonut"; $str ~~ s:g/m/c/; say $str;
p6eval rakudo 2d0fc2: OUTPUT«Could not find sub &s:g␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn moritz_: Plus there's various examples of munging operators in the meta-ops.
isBEKaml how do I use the global switch? 09:21
eternaleye What happens for ~~ Nil? The most useful effects i can think of are either (Nil ~~ Nil == True, $other ~~ Nil == False) or ($undefined ~~ Nil == True, $defined ~~ Nil == False), but if ~~ counts as item context, Nil would likely be coerced to a Mu type object, and always match. (This occurred to me while reading the S05 section on quantified captures and how it is Nil if $number == 0; I then thought "What's the most intuitive way to check if a 09:22
value is Nil?")
moritz_ eternaleye: $val eqv Niv 09:23
jnthn: sounds like fun :-)
eternaleye moritz_: Is that an answer to 'most intuitive' or 'what happens'? 09:24
moritz_ "most intuitive"
eternaleye Ah
moritz_ eternaleye: Nil is just a special (=empty) Parcel, so look in the smartmatching table what happens in this case
rakudo: say Any ~~ Nil # rakudo might be wrong, just looking what it says
p6eval rakudo 2d0fc2: OUTPUT«1␤»
moritz_ rakudo: sah () ~~ Nil 09:25
p6eval rakudo 2d0fc2: OUTPUT«Could not find sub &sah␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: say () ~~ Nil
p6eval rakudo 2d0fc2: OUTPUT«1␤»
moritz_ rakudo: say (2) ~~ Nil
p6eval rakudo 2d0fc2: OUTPUT«0␤»
moritz_ rakudo: say 2 ~~ Nil
p6eval rakudo 2d0fc2: OUTPUT«0␤»
eternaleye rakudo: say Mu ~~ Nil 09:26
p6eval rakudo 2d0fc2: OUTPUT«Nominal type check failed for parameter '$topic'; expected Any but got Mu instead␤current instr.: 'perl6;Any;ACCEPTS' pc 388891 (src/gen/core.pir:33432)␤»
eternaleye Kaboom
rakudo: say Any ~~ Nil 09:27
p6eval rakudo 2d0fc2: OUTPUT«1␤»
eternaleye Huh, so it's the latter of the 'useful' options I listed, which is what I would have preferred. It's also considerably prettier than ~~ *.notdef
isBEKaml Mu is untreatable?
eternaleye Any isa Mu, and most things are defined in terms of Any (in fact, it's the default). One can easily define things for Mu explicitly. 09:28
rakudo: sub foo( Mu $a ) { say "alive"; say $a.defined; say $a; }; foo(1); foo(Mu); foo(1|2); 09:29
p6eval rakudo 2d0fc2: OUTPUT«alive␤1␤1␤alive␤0␤Mu()␤alive␤1␤any(1, 2)␤»
09:30 gfx left, snarkyboojum joined
eternaleye rakudo: say Hash ~~ Nil; say Int ~~ Nil; 09:31
p6eval rakudo 2d0fc2: OUTPUT«1␤1␤»
isBEKaml but Mu is never defined?
rakudo: say $.defined(Mu);
p6eval rakudo 2d0fc2: OUTPUT«Lexical 'self' not found␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: say Mu.new().defined
eternaleye Mu is the most undefined value possible
p6eval rakudo 2d0fc2: OUTPUT«1␤»
moritz_ :-)
isBEKaml :)
eternaleye Type objects are considered undefined, and Mu is the most general type object 09:32
moritz_ that is certainly correct
isBEKaml yes, verified correct. :-) 09:34
eternaleye Anyway, ~~ Nil is my new favorite way to check for undefinedness. It just rolls off the tongue^Wfingers :)
moritz_ eternaleye: please check with the spec first if it's supposed to work like that
I remember some of rakudo's Nil handling being out of date 09:35
09:35 yinyin left
eternaleye moritz_: AFAICT, it's unspecced. The smartmatch table doesn't list Parcel, and Capture is defined in terms of 'could bind to' which feels somewhat silly for Nil 09:36
moritz_ eternaleye: then it'll probably fall back to some of the Positional types
eternaleye Erm, ignore after 'and'
I was misreading Capture ~~ Signature 09:37
Neither ~~ Capture nor ~~ Parcel seem to be listed in the smartmatch table
moritz_ TimToady: any objections to s/Array/Positional/ in the smartmatch table in S03? currently it leaves many gaps 09:38
TimToady: otoh I'm not sure what things like Match on the RHS of a smart match should do, since it's both Associative and Positional
09:39 lestrrat is now known as lest_away
eternaleye TimToady: Also, is Rakudo's current handling of ~~ Nil sane? Because it's rather pretty and makes me feel like I've been given a pony :D 09:39
isBEKaml I'm going to need to rewrite a bunch of regexes in File::Spec. Currently trying them out one by one on the REPL, consulting the spec and trying out some more. Hell, this is a lot fun than bland spec reading... :) 09:41
moritz_ -Ofun++ 09:42
isBEKaml -O is for optimized? I like it..! :) 09:47
moritz_ aye
I think audreyt came up with that term
isBEKaml -Ofun++ 09:48
10:01 agentzh left 10:04 [particle]1 joined 10:05 Exodist_ joined, [particle] left, Exodist left, XaeroOne left 10:06 jjore left, aindilis left, jjore joined, masonkramer left 10:07 aindilis` joined, simcop2387 left
moritz_ ok, my girlfriend's finger didn't need any stitches after all 10:08
her email just lacked the characters a, q and y :-)
10:09 simcop2387 joined
mathw translates to UK keyboard layout 10:11
so her left little finger, and she's a touch typist? :)
moritz_ yes
mathw I remember finding it very hard to type on German keyboard with Y and Z the wrong way round
let alone the punctuation...
moritz_ actually she learned German, French and UK keyboards in her training 10:12
mathw Wow
That must've been a bit mind-bending
10:12 masonkramer joined
moritz_ aye 10:13
10:24 Patterner left
mathw tries to resist the temptation to hum along with Wise Guys, since that sort of thing is rarely appreciated in the office 10:24
10:31 jhuni left, Psyche^ joined 10:32 Psyche^ is now known as Patterner 10:36 lest_away is now known as lestrrat
cognominal anonymous grammar/classes are so cool to test on the perl 6 command line 10:41
mathw :) 10:43
eternaleye How would one compose an anonymous parametric role? I mean, there's does Positional[Int] and does $role, but is there a (just guessing here) does $role[Int] ? 10:46
Or are anonymous roles only an option via mixins, i.e. 'but'? 10:47
Even if so, how would a parametric anon role work?
isBEKaml rakudo: my $fruit="bamama"; $fruit ~= s:g/m/n/; say $fruit; 11:01
p6eval rakudo 2d0fc2: OUTPUT«Could not find sub &s:g␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
isBEKaml s:g is NYI?
11:01 k23z__ joined
isBEKaml or am I using it wrong? 11:01
colomon isBEKaml: first, it's ~~ instead of ~= 11:03
second, we don't have s:g yet, I don't think 11:04
isBEKaml colomon: I tried ~~, I think it got confused..
colomon rakudo: my $fruit="bamama"; say $fruit.subst(/m/, "n", :g);
p6eval rakudo 2d0fc2: OUTPUT«banana␤»
isBEKaml rakudo: my $fruit="bamama"; $fruit ~~ s:g/m/n/; say $fruit; 11:05
p6eval rakudo 2d0fc2: OUTPUT«Could not find sub &s:g␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon rakudo: my $fruit="bamama"; $fruit .= subst(/m/, "n", :g); say $fruit;
p6eval rakudo 2d0fc2: OUTPUT«banana␤»
isBEKaml colomon: yes, okay.. I might have mistook for something else.. I found out about subst, but I wanted to try out s/// instead.
colomon btw, $fruit .= subst(blah) is equivalent to $fruit = $fruit.subst(blah) 11:06
rakudo: my $fruit="bamama"; $fruit ~~ s/m/n/; say $fruit;
p6eval rakudo 2d0fc2: OUTPUT«banama␤»
isBEKaml colomon: s/// without switches is in, nice.. :) 11:08
and I'm going over S05 as I try these out.. 11:09
colomon adding the switches is a relatively high priority at the moment.
moritz_ and I got several working in the match method yesterday. but neither of us knows how to add them to the grammar for the m// and s/// forms. 11:10
11:10 XaeroOne joined
isBEKaml rakudo: my $fruit = "bamama"; ($fruit ~~ s/m/n/) ~~ s/m/n/; say $fruit; 11:13
p6eval rakudo 2d0fc2: OUTPUT«banana␤»
isBEKaml colomon: Oh, I see. How long before we see some switches? 11:14
colomon I don't know. As I said, this is an area under active development at the moment. (Literally, I'm trying to figure out how to add the :nth switch to .match in another window.) 11:15
hmmm... you can't return from inside a gather? 11:16
eternaleye colomon: I was under the impression that take(Nil) terminated the list 11:22
And that one was returning the gather
colomon eternaleye: I was trying to subvert the gather altogether, returning a single value rather than a list. 11:23
eternaleye Ah
colomon didn't work, and I think I've worked out that it's not the appropriate approach.
eternaleye if $foo { take($val); take(Nil) }
isBEKaml colomon: what's the nature of a Regex::Match() ?
I believe matches return this object. If there were multiple matches, we would be seeing a list of them, right? 11:24
eternaleye isBEKaml: What do you mean 'multiple matches'?
colomon isBEKaml: if there are multiple matches from the .match method (and you selected :g), you get a list of them.
isBEKaml rakudo: my $str="hello"; my $fft = $str.match(/l/, :g); say $fft.WHAT; 11:25
p6eval rakudo 2d0fc2: OUTPUT«GatherIterator()␤»
colomon if you are using m:g// (not possible yet) $/ will contain all the matches.
isBEKaml colomon: yes, $/ <- I just saw this in S05, was pretty confused over IFS in p5.. :( 11:26
colomon IFS? 11:27
isBEKaml Input Field Separator
colomon Oh, it's not the Input Field Separator any more, as you may have guessed.
colomon is not very good at remembering the magic variables in Perl 5... 11:28
isBEKaml in p5, $/ is IFS, in p6, this is match object container.
moritz_ Perl 6 has only 3 special punctuation variables (ok, that's a lie, but it's pretty close)
11:28 iblechbot left
moritz_ $_, $! and $/ 11:28
colomon moritz_: I think match(:nth($N)) has to return a list.
moritz_ why? 11:29
isBEKaml doesn't remember much of P5, either. But had to look over a lot of formatting scripts at work, repetition got him in. ;)
colomon moritz_: $N doesn't have to be an Int. It can be a junction or a list as well. 11:30
probably a range too.
so I'm thinking it's something we smartmatch against to return.
moritz_ wfm
colomon but but but, I don't know how to generically detect if $N is going to return one element or more.
moritz_ that's fine; we return a capture anyway 11:31
colomon moritz_: I have no idea what that means.
moritz_ and the capture magic will make it DWIM for the case of a scalar
colomon does gather return a capture?! 11:32
11:33 XaeroOne left
moritz_ good question 11:33
eternaleye colomon: Range and list would fall out naturally if you just say Positional and iterate it 11:35
colomon eternaleye: it also has to handle a closure.
11:35 buubot left
moritz_ $matcher = any $matcher if $matcher ~~ Positional 11:36
11:36 buubot joined
moritz_ and then smart-match against $matcher 11:36
where $matcher represents the argument to :nth
eternaleye rakudo: my $foo = gather { take 5; take Nil; }; say $foo; say $foo.perl; say $foo.WHAT
p6eval rakudo 2d0fc2: OUTPUT«5 ␤()␤GatherIterator()␤»
eternaleye rakudo: my $foo = gather { take 5; }; say $foo; say $foo.perl; say $foo.WHAT
p6eval rakudo 2d0fc2: OUTPUT«5␤()␤GatherIterator()␤» 11:37
eternaleye Apparently, gather does not return a capture.
colomon eternaleye: foo.perl doesn't work because say $foo has already consumed the iterator.
rakudo: my $foo = gather { take 5; }; say $foo.perl; say $foo.WHAT
isBEKaml moritz_: I assume $! is same as was in p5, dump error text ?
p6eval rakudo 2d0fc2: OUTPUT«(5)␤GatherIterator()␤»
moritz_ isBEKaml: clever Exception object, if all goes right :-) 11:38
isBEKaml moritz_: It's more clever than p5's ? ;) 11:39
eternaleye colomon: re closure, you're already checking if it's an Int, probably via smartmatching, so you may as well smartmatch against Postional (and iterate) or Code (and call, then redispatch the smartmatching on that)
11:39 buubot left
moritz_ isBEKaml: yes; it should have line number and file name of the error location accessible via methods, backtraces etc. 11:39
colomon eternaleye: I'm not checking against Int, I'm just smartmatching.
11:39 buubot joined
eternaleye Or even make it considered a named argument and use multi dispatch 11:39
moritz_ colomon: you can just smartmatch against any($nth) 11:40
colomon: if $nth is a scalar, the any() doesn't have an effect
isBEKaml moritz_: line number? I thought that was awkward against how text editors handle unicode?
colomon what if $nth is junction?
11:40 buubot left
moritz_ then it's a one-item any-junction of a junction 11:40
eternaleye multi over Int :$nth, Positional :$nth, and Code :$nth 11:41
moritz_ which behaves the same as the original junction
11:41 buubot joined
moritz_ eternaleye: we're not trying to write as much code as possible, but rather as little as possible :-) 11:41
colomon: and any($list) does what you mean
colomon what moritz_ said
11:41 pmurias joined 11:44 buubot left
colomon > "hello world".match(/.<[aeiou]>/, :nth(1|3))>>.Str.perl.say 11:44
("he", "wo")
moritz_ \o/ 11:45
colomon > "hello world".match(/.<[aeiou]>/, :nth({$_ !% 2}))>>.Str.perl.say
("lo", )
not sure why I get the empty second element of the list there.
moritz_ what does .[1].WHAT say?
colomon > "hello world".match(/.<[aeiou]>/, :nth({$_ !% 2})).elems.say
1
moritz_ then it's a .perl artifact 11:46
11:47 hirschnase joined
isBEKaml really goes back to S05, IRC's distracting. :P 11:50
colomon moritz_: any() doesn't seem to make any difference.... :( 11:51
moritz_ rakudo: say 1 ~~ (1, 2)
p6eval rakudo 2d0fc2: OUTPUT«0␤»
moritz_ rakudo: say 1 ~~ any(1, 2)
p6eval rakudo 2d0fc2: OUTPUT«1␤»
colomon rakudo: my @a = 1, 2; say 1 ~~ any(@a) 11:52
p6eval rakudo 2d0fc2: OUTPUT«1␤»
moritz_ rakudo: my $x = (1, 2); say ~~ any($x)
p6eval rakudo 2d0fc2: OUTPUT«any((1, 2))␤»
colomon rakudo: my $a = 1, 2; say 1 ~~ any($a)
p6eval rakudo 2d0fc2: OUTPUT«1␤»
moritz_ rakudo: my $x = (1, 2); say 1 ~~ any($x)
p6eval rakudo 2d0fc2: OUTPUT«0␤»
eternaleye rakudo: my $x = (1, 2); say 1 ~~ any(|$x)
p6eval rakudo 2d0fc2: OUTPUT«1␤» 11:53
moritz_ colomon: my $x = 1, 2 parses as (my $x = 1), 2
because item assignment has tighter precedence than ,
11:55 bluescreen joined 11:56 bluescreen is now known as Guest63592, takadonet joined, [mark] left
takadonet morning all 11:57
colomon o/
moritz_ \o
colomon moritz_: any idea if that any is supposed to do what you thought?
or will any(|$x) work for everything we might need? 11:58
moritz_ rakudo: say any(|1)
p6eval rakudo 2d0fc2: OUTPUT«any(1)␤»
moritz_ seems like it might
11:59 finanalyst left 12:00 JimmyZ joined
moritz_ colomon: and now let's it extend it so that negative :nth values count from the back... no, just kidding :-) 12:03
colomon moritz_: no no no no no no no 12:05
TimToady would kill us
eternaleye prepares popcorn 12:06
colomon wishes QuickBooks were smart enough to know not to ask me if I want to backup when exiting when my previous action was to manually backup....
12:07 buubot joined
colomon it is funny how much nth looks like running grep on the output of match. 12:07
12:08 masonkramer left
colomon any(|$nth) does it! 12:08
12:08 am0c joined
eternaleye \o/ 12:08
moritz_ \o/
am0c \\o/ 12:09
moritz_ wonders where am0c's second arm is coming from 12:10
colomon that's the good news.
12:10 buubot left
colomon the bad news is I think none of the :nth tests I've written so far will handle having a list returned. 12:10
12:10 buubot joined
am0c it's my leg! 12:10
colomon the idea that we return a capture which does the right thing is nice, but I have no idea how to make it work in practice. 12:11
moritz_ am0c: wow, you're much more flexible than me :-)
12:13 orafu left 12:14 OuLouFu joined, OuLouFu is now known as orafu
am0c tehe.. 12:17
12:18 bpalmer joined 12:20 buubot left, buubot joined, buubot left 12:21 buubot joined 12:24 Guest63592 left, Guest63592 joined
pugssvn r30679 | colomon++ | [t/spec] First tests for .match using :nth. 12:25
12:26 buubot left, buubot joined 12:32 buubot left 12:33 buubot joined 12:36 iblechbot joined, orafu left 12:37 wknight8111 joined
wknight8111 good morning, #parrot 12:38
moritz_ good localtime() wknight8111 12:39
wknight8111 ah damnit, wrong channel
not a good start to the day
hello moritz
colomon o/
moritz_ wknight8111: my day started with taking my girlfriend to the doctor's 12:40
wknight8111 moritz_: I hope everything is alright?
[Coke] moritz wins. (loses?)
12:40 orafu joined
moritz_ yes; was just a rather deep cut in her finger - no nerves harmed though 12:40
colomon sighs in relief. 12:41
moritz_ a bit of blood lost, some initial confusion, and now a bandage for a few weeks
and emails without the letters 'a', 'q', and 'y' (on a qwertz keyboard) :-)
isBEKaml rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path.match(/ \s* \(.*\/ \) \s* \( <-[ / ]> \) \s* /); say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; 12:45
p6eval rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename␤Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
isBEKaml match is rather painful here. I almost wish for m/// op! :(
eternaleye isBEKaml: rx{ foo } 12:46
or m,foo,
isBEKaml eternaleye: thanks, I'll try that out..
moritz_ isBEKaml: m// exists in rakudo, it just can't take adverbs yet
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path.match( rx{ \s* (.*/ ) \s* ( <-[ / ]> ) \s* }); say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; 12:49
p6eval rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
colomon isBEKaml: also, .match does not change $path, it just returns a Match object (which you are throwing away).
12:49 bpalmer left
colomon and $0 and $1 don't exist anymore (I think), and their p6 equivalents are not set when you call .match. 12:49
moritz_ wishes for a matlab parser with STD.pm6-like magic at explaining errors 12:50
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ m,\s* (.*/ ) \s* ( <-[ / ]> ) \s*,; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename;
p6eval rakudo 2d0fc2: OUTPUT«Confused at line 11, near "$path ~~ m"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
moritz_ colomon: $0 is an alias to $/[0]
it does exist
colomon ah, okay.
but it definitely is not set by .match.
BrowserUk hates mailing list!
isBEKaml rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ rx{ \s* (.*\/) \s* ( <- [ / ]>* ) \s* }; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename;
p6eval rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename␤/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/␤filename␤»
isBEKaml \o/
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ rx{ :s (.*\/) ( <- [ / ]>* ) }; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; 12:51
p6eval rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename␤/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/␤filename␤»
eternaleye Mmmm, delicious :sigspace 12:52
isBEKaml eternaleye++ #cleaner regex!
colomon: uhh, match does throw the Match object and $0, $1 do exist, I guess (from my cursory reading of S05) 12:53
eternaleye isBEKaml: It doesn't automagically put the match it returns in $/ though 12:54
colomon "throw the Match object"?
isBEKaml eternaleye: uh, isn't $/ implicit match object?
12:54 pencilk joined
eternaleye So $0 doesn't get aliased for .match, when it does for ~~ 12:54
$/ is for smartmatched regexes IIUC
Grammar.parse doesn't set it either AFAIU 12:55
moritz_ Grammar.parse also sets $/, by #perl6 community decree
eternaleye Oh, okay
moritz_ we need to put that into the spec, though
colomon rakudo: "hello world".match(/.o/); say ~$/
p6eval rakudo 2d0fc2: OUTPUT«Any()␤»
isBEKaml colomon: *throw* match object ? like in, out the window?
colomon moritz_: and the implementations?
isBEKaml is really confused... 12:56
12:56 envi^home joined
colomon Grammar.parse setting $/ seems like a really really really bad idea? 12:56
unless that's not the same as Regex::Cursor.parse?
colomon is confused too. 12:57
ah, wait.
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { / <-[/\0]> ** / / }; rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>;
p6eval rakudo 2d0fc2: OUTPUT«Malformed regex at line 11, near "dirname { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
colomon Grammar.parse sets $/, but .match doesn't. yes?
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { / <-[/]> ** / / }; rule filename { <-[/]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; 12:58
p6eval rakudo 2d0fc2: OUTPUT«Malformed regex at line 11, near "dirname { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { '/' <-[/\0]> ** '/' '/' }; rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>;
p6eval rakudo 2d0fc2: OUTPUT«Useless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespace␤Useless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespace␤Method 'dirname' not found for invocant of class
..'Regex;Cursor'␤curr…
eternaleye rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; my rule dirname { '/' <-[/\0]> ** '/' '/' }; my rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; 12:59
p6eval rakudo 2d0fc2: OUTPUT«Method 'dirname' not found for invocant of class 'Regex;Cursor'␤current instr.: '_block93' pc 1261 (EVAL_1:410)␤»
12:59 ive joined
eternaleye Is fallback to <&lexical> not implemented? 12:59
moritz_ no :(
eternaleye Also, error message for unquoted 'potential metasyntax' is very LTA 13:00
moritz_ \o/ my $work simulations finally start to make sense 13:02
13:03 viklund left
moritz_ or not :( 13:03
plotted the wrong quantity
mathw is busy fighting with SSL 13:04
colomon is trying to put off the nasty bit with integrating a new version of the libraries we use for some $work projects. 13:05
13:10 Guest26716 left
dalek kudo: 31598e9 | (Solomon Foster)++ | src/core/Cool-str.pm:
Add beginnings of support for :nth argument to .match.
13:11
kudo: da6b23e | (Solomon Foster)++ | t/spectest.data:
Turn on new counted-match.t.
colomon moritz_: your turn to do :x ? ;) 13:15
moritz_ colomon: don't know if I'll get around to it today 13:16
colomon: I still plan to write up a challenge tonight
colomon moritz_++
moritz_ even if it will be a boring one
colomon I may take a stab at :x too, just trying for that back and forth work with you again -- it's -Ofun and productive.
moritz_ it is 13:17
colomon ooooo, I think I just figured out how to implement :ex
moritz_ and tonight (ie in about 3 or 4 hours) I should have time for that kinda fun again
colomon: it's just $match.next or so
colomon no, :ov, actually.
$match.next ?
moritz_ and :ov is quite easy
that's how it was with PGE 13:18
13:18 orafu left
moritz_ for :ov, just set :c to $/.from + 1 13:18
colomon moritz_: yeah, that's what I figured out. ;)
$match.next is the next possible match?
moritz_ it was, with PGE
and iterating while .next returned a true value was the way to implement :exhaustive 13:19
colomon that would be pretty sweet.
moritz_ not sure if the ordering was right, though
isBEKaml what does (?!\n) mean in p5 regexes? 13:20
13:20 orafu joined
isBEKaml I understand \n, ?! --- ? 13:20
moritz_ negative look-ahead
(?!...)
perldoc perlre
search for 'ahead'
colomon "The order within each starting position is not guaranteed and may depend on the nature of both the pattern and the matching engine." (for :ex)
moritz_ ah, great
moritz_ should stop trying to remember random details from S0d 13:21
colomon hopes :ex is allowed to be lazy....
isBEKaml moritz_++
colomon "return all matches in list context, or a disjunction of matches in item context." I thought we didn't have list / item context any more? I'm certainly hard pressed to see how to implement this.... 13:24
moritz_ right, that's a fossile 13:25
13:28 eternaleye left
isBEKaml rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s (/\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; 13:33
p6eval rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
isBEKaml uhh, I thought rx {} blocks were lexically scoped... :(
moritz_ std: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s (/\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; 13:34
p6eval std 30679: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/Ty42dI2Nb2 line 1:␤------> ; my $newpath = $somepath.subst(rx{:s (/⏏\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpat␤Can't call method "_REDUCE" on unblessed
..refer…
13:35 snarkyboojum left
isBEKaml <alpha> covers numerics too? if not, what would be an alphanumeric class? <alnum> ? 13:40
(guessing here)
moritz_ rakudo: say 3 ~~ /<alpha>/
p6eval rakudo 2d0fc2: OUTPUT«␤» 13:41
moritz_ rakudo: say 3 ~~ /\w/
p6eval rakudo 2d0fc2: OUTPUT«3␤»
moritz_ rakudo: say 3 ~~ /<alnum>/
p6eval rakudo 2d0fc2: OUTPUT«3␤»
isBEKaml right.. :)
13:42 orafu left, orafu joined 13:46 ruoso joined 13:49 perlygatekeeper joined 13:51 szabgab left 13:53 szabgab joined 13:57 kaare joined, kaare is now known as Guest44059, iblechbot left 13:58 pencilk left
isBEKaml rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; 13:58
p6eval rakudo 2d0fc2: OUTPUT«Obsolete use of \Z as end-of-string matcher;in Perl 6 please use \n?$ instead at line 11, near "\\(?!\\n)) }"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
isBEKaml rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/|| (?!\n)) }, "/", :g); $newpath.perl.say; 13:59
p6eval rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
moritz_ what is this (?! thing you're trying to use? :-_)
rakudo: say 'ab' ~~ / . <!before 'b'> / 14:00
isBEKaml nothing much, i have replaced it with <-[<alnum>]*$>
p6eval rakudo 2d0fc2: OUTPUT«b␤»
moritz_ rakudo: say 'ab' ~~ / . <!before '3'> /
p6eval rakudo 2d0fc2: OUTPUT«a␤»
14:00 uniejo left
moritz_ isBEKaml: it's still in your regex 14:00
isBEKaml rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/|| <-[<alnum>]*$>) }, "/", :g); $newpath.perl.say; 14:01
p6eval rakudo 2d0fc2: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "*$>) }, \"/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
isBEKaml :D
14:02 gbacon_ joined
moritz_ <-[<alnum>]*$> looks very wrong 14:02
isBEKaml no, not that, check this...
rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( /\.)+ (/|| <-[<alnum>]*$>) }, "/", :g); $newpath.perl.say;
p6eval rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
14:03 eternaleye joined
isBEKaml I replace / with \/, it doesn't seem to make sense to me. :( 14:03
moritz_ <-[<alnum>]*$> still looks very wrong
isBEKaml how do I check before end of string?
cognominal rakudo: grammar C { token a { a } } ; say 'a' ~~ / <C::a> /
p6eval rakudo 2d0fc2: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "::a> /"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
14:04 dalek left
moritz_ isBEKaml: $ is end of string, and zero-width 14:04
14:05 dalek joined
isBEKaml moritz_: hmm, I'll double check again if I really need this... 14:05
14:10 JimmyZ left, cj is now known as KF7BMP, KF7BMP is now known as cj 14:11 plobsing joined
isBEKaml aah, I got it working... 14:15
rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ \/}, "/", :g); $newpath.perl.say;
p6eval rakudo 2d0fc2: OUTPUT«"/home/user/somenrefil/moreso/"␤»
isBEKaml \o/
why does "/" need escaping? It isn't a special regex character, right? 14:16
moritz_ evertyhing that doesn't match \w needs escaping
isBEKaml dannit, that's tough! :D
moritz_ otherwise when you read a control character, you have to remember if it has a special meaning or not 14:17
to understand what it means
we try to minimize the cases of random lists you have to learn
but you can now also escape with '/' in regexes
isBEKaml but that would turn into an unreadable mess! 14:18
moritz_ for one character, maybe 14:19
for longer literals it's great
isBEKaml are spaces important in regexes? are there switches that can ignore whitespaces inbetween regex clusters?
:s in rx, anything else?
subst?
moritz_ spaces are only singificant when :s/:sigspace is in effect
14:19 SmokeMachine joined
moritz_ or for 'rule's (vs. 'token') 14:19
isBEKaml giving a switch to ignore whitespace might offer a way out of an unreadable dump of a long regex pattern 14:20
sbp "otherwise when you read a control character, you have to remember if it has a special meaning or not" - what's wrong with doing that? 14:21
isBEKaml like we had in p5, the m swtich for multi line regexes..
moritz_ isBEKaml: it's default already
sbp: mental load
sbp oh, rather than programming load you mean
isBEKaml moritz_: Oh, that's great! 14:22
moritz_ isBEKaml: it's only significant in your case because of that :s
sbp: it's just an additional thing you have to remember; and the more you have to remember, the longer it takes to learn something
isBEKaml moritz_: I thought you meant insignificant..
moritz_ isBEKaml: that would be :!s
isBEKaml rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:!s ( \/\.)+ \/}, "/", :g); $newpath.perl.say; 14:23
p6eval rakudo 2d0fc2: OUTPUT«"/home/user/somenrefil/moreso/"␤»
isBEKaml no difference..
moritz_ isBEKaml: read about the default <.ws> rule in S05
isBEKaml moritz_: yes, I will get to that, sooner or later. 14:24
sbp yep, fair enough
I just thought you were saying it's a computational issue
and I couldn't understand why it would be so
the fact that it isn't one clears that up rather well :-) 14:25
moritz_ another point is that if you reserve meta characters, you can easily extend the syntax later on
14:25 ashleydev joined
moritz_ without resorting to wild character sequences like (?<! ... ) in Perl 5 regexes 14:26
which now reads <!after ... >
sbp is there any adverbial mode to turn that off, to only require the escaping of the currently known metachars, for people who don't care that it may take a while to learn?
moritz_ sbp: nope.. but once macros are in place, that should be easy to do in a module :-) 14:27
sbp :-)
moritz_ use Perl5::Insane::Meta::Characters::In::Regexes; # :-)
yes, the new regexes do need some time to get used to 14:28
isBEKaml heh! I was pretty sure I saw this module... # :D 14:29
moritz_ expects a wave of Acme modules once macros are in place 14:30
it's just too tempting
moritz_ points to Inline::PERL 14:31
Su-Shee *haha* that is a cool blog name "just raku do it" ;) 14:33
colomon ;) 14:34
isBEKaml /me afk (out for a walk. Regexes always leave him in a daze.... ) 14:37
fail!
moritz_ we all know what's meant :-)
isBEKaml really out now (as you can see ;) ) 14:38
14:48 patspam joined 14:49 plobsing left
colomon no longer remembers who it was on #perl6 that came up with "just rakudo it" 14:49
Su-Shee colomon: it's a great slogan. 14:50
14:50 gbacon_ left
moritz_ colomon: I think it was TimToady++ 14:51
colomon TimToady++
14:51 szabgab left, gbacon_ joined
colomon > "hello world".match(/<[aeiou]>.*/, :overlap)>>.Str.perl.say 14:54
("ello world", "o world", "orld")
14:55 szabgab joined
moritz_ shiny 14:56
TimToady I thought I just came up with the subtitile
moritz_ TimToady: you'll get the karma, no matter what :-) 14:57
colomon TimToady++ # definitely came up with the subtitle
TimToady s:3rd/i//
colomon dreams of the day when :3rd actually works... 14:58
pugssvn r30680 | colomon++ | [t/spec] Fudged for Rakudo, then tests for the match method version are added. 14:59
14:59 TiMBuS left 15:00 szabgab left
TimToady yes, well, like Yogi Berra, I said a great many things I never said. 15:00
Su-Shee You also worked for the NSA I read yesterday in a CS handbook. There you developed Perl. 15:01
TimToady well, not directly for the NSA 15:02
but they were "The Customer"
Su-Shee they managed to phrase it very strangely. :)
TimToady Anything that does not kill me makes me stranger. :) 15:03
mathw I suspect you have what is not an uncommon problem among the famous people of computer science, TimToady 15:04
Su-Shee of course it is :) 15:05
TimToady CS didn't invent that problem :)
15:06 orafu left, orafu joined
Su-Shee who's writing the OO chapter in "the book"? 15:06
moritz_ mostly jnthn so far, iirc 15:07
git log will tell you 15:08
Su-Shee just opened it. ;)
15:08 snarkyboojum joined
jnthn o/ 15:13
ooh, timing :-)
colomon \o
jnthn just back from meeting :-)
Yes, I did quite a bit of the OO chapter...plan on doing more soon too. 15:15
15:15 szabgab joined
jnthn After some more bits on subs n sigs :-) 15:15
15:15 hercynium joined
colomon ooo, just realized I'm going to miss #rs today. 15:15
we're going out to meet a rescue dog and see if she is a good match for our family 15:16
Su-Shee jnthn: can I wish for a good explaination how roles and traits shape the way of OO programming?
PerlJam colomon: your family needs rescuing?
:)
jnthn
.oO( $family ~~ /rescue dog/ )
colomon PerlJam: rescuing from the state of doglessness, yes. 15:17
jnthn Su-Shee: You can wish. I'll try and make said wish come true. :-)
colomon: OK, no worries; feel free to pre-paste a report and people can find it in the infrared clog.
moritz_ chuckles
Su-Shee jnthn: that would be nice. while moosing and rakudoing I realized that the only stuff there really is are those smalltalk traits papers and a little ruby mixins...
colomon jnthn: I didn't know we did clogging here! 15:18
PerlJam Su-Shee: The Moose people have some real-world experience with that. Perhaps there are some explanatory resources there
Su-Shee PerlJam: already read everything.
PerlJam Su-Shee: did you ask on #moose?
Su-Shee PerlJam: yes. 15:19
PerlJam Su-Shee++ due diligence :)
Su-Shee PerlJam: and I read the smalltalk stuff.
all of it doesn't really teach you where the future of OO might be going with roles and traits and little pieces of behavior which suddenly can be combined with powerful functional stuff.
PerlJam Su-Shee: probably because we haven't gotten there yet :) 15:20
Su-Shee exactly my point. that's something a book should reflect by explaining what you can do and maybe even suggesting what you COULD do with it. 15:21
15:22 _buno_ joined, szabgab left 15:23 szabgab joined
PerlJam Su-Shee: the way I look at it is .... it took the CS community decades to get to the point where we had this thing called OOP and then decades more to get to roles/traits, so in 10 years or so we'll start to have an understanding of how roles impact software and have some concept of their true power. Then, maybe 10 years after that we'll finally "understand" them. 15:25
15:28 szabgab left 15:29 Guest63592 left 15:32 silug left, LionMadeOfLions left, pnu left, broquaint left, diakopter left, huf left, Jedai left 15:33 pnu joined, broquaint joined, silug joined, baest left, Maddingue left, awwaiid left, ive left, TimToady left, Trey left, isBEKaml left 15:34 aindilis` left, diakopter joined, huf joined, xinming joined 15:35 silug left 15:37 revdiablo left, TimToady_ joined, silug_ joined, silug_ is now known as silug, xinming_ left 15:38 baest joined 15:39 Maddingue joined
dalek kudo: c515f5f | (Solomon Foster)++ | src/core/Cool-str.pm:
Implement :overlap for Any.match.
15:39
kudo: 6894296 | (Solomon Foster)++ | t/spectest.data:
Turn on overlapping.t.
15:40 IllvilJa joined 15:41 Guest63592 joined
IllvilJa o/ 15:42
15:45 Jedai joined 15:47 saaki is now known as Arroz
colomon \o 15:47
15:47 isBEKaml joined
isBEKaml I keep getting this error even as @letters is declared at the top of file ... "Symbol '@letters' not predeclared in draw_board " 15:47
moritz_ isBEKaml: example? 15:48
15:48 ive joined
isBEKaml moritz_: It's available in pugs/examples/games/hangman.pl 15:48
moritz_: I worked around this by "my @letters if !defined(@letters); " -- having to do this for every variable is .... LTA 15:50
15:50 TimToady_ is now known as TimToady
moritz_ looking now, have to recompile first though 15:50
isBEKaml moritz_: it won't. That's what I'm up against. :) 15:51
moritz_ recompile my rakudo, that is
isBEKaml oh..
PerlJam isBEKaml: What revision of rakudo are you using?
isBEKaml PerlJam: I built it last night.
moritz_ rakudo: 1 orelse 2 15:52
p6eval rakudo da6b23: OUTPUT«Confused at line 11, near "1 orelse 2"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
moritz_ so it won't work without modifications anyway
perl6 examples/games/hangman.pl
Unable to parse blockoid, couldn't find final '}' at line 20
isBEKaml moritz_: I was able to modify File::Spec::Unix so that I can work with hangman.pl. Isolated the problem to hangman.pl now. 15:53
moritz_ isBEKaml: then please commit your changes
otherwise we'll have a hard time reproducing your problem
[Coke] moritz_: that's the orelse. 15:54
isBEKaml moritz_: Alright. I haven't fully solved it though. Just touched on File::Spec::Unix and hangman.pl
[Coke] and yah, better than having all of us chasing your WIP. =-)
isBEKaml WIP?
:P
moritz_ work in progress
TimToady Void is not a valid typename at line 14 15:55
pugssvn r30681 | moritz++ | [examples] start to correct and simplify hangman.pl 15:56
moritz_ we'd call that Nothing, just so that we can write 'returns Nothing'
TimToady std: subset Nothing of Sink; 15:57
p6eval std 30680: OUTPUT«ok 00:01 113m␤»
PerlJam I'd like a Sink so that I can derive a KitchenSink :)
TimToady std: KitchenSink
15:57 moritz_ sets mode: +ooo TimToady [Coke] isBEKaml
p6eval std 30680: OUTPUT«ok 00:01 110m␤» 15:57
TimToady KitchenSink is already there
moritz_ 1 while $dict.lines ~~ rx:P5/\S/; # WTF?
isBEKaml moritz_: yes.. there were quite lot of problems and I had made an helluva lot of changes over it.. 15:58
moritz_ loop endlessly if there's a non-blank in the file?
isBEKaml: then commit it. Now.
TimToady it solves the halting problem :)
moritz_ it just takes its time :-) 15:59
isBEKaml moritz_: yours gets overwritten then..
15:59 rv2733 joined
moritz_ isBEKaml: I don't mind, if yours are better :-) 15:59
isBEKaml moritz_: not necessarily... ;)
PerlJam isBEKaml: It's in the repo anyway if we want moritz_'s back
isBEKaml I cannot connect to server.. :( 16:00
PerlJam isBEKaml: pastebin it then
isBEKaml ok, committing now.. 16:01
pugssvn r30682 | svatsan++ | [examples] make hangman.pl compatible with Rakudo
16:01 pjcj left
moritz_ decommute & 16:02
pugssvn r30683 | svatsan++ | [ext] File::Spec::Unix compatiblity issues fixed
isBEKaml more... File::Spec::Unix.pm 16:03
Getting File::Spec::Unix to be used by hangman.pl was pretty awkward.. I copied the module over to ~/.perl6/lib folder . :(
[Coke] when installing rakudo, how can I specify where it should be installed? 16:04
PerlJam the most annoying thing for me lately is that I keep wanting to create variable names $like-this in Perl 5. :) 16:05
isBEKaml Rakudo by default would be installed in the current location..
PerlJam goes back to coding Perl 5
[Coke] looking at the makefilie, it seems to rely on DESTDIR which is never defined. 16:07
(ah, that's kind of a red herring. nevermind.)
16:08 TimToady sets mode: +vvv buubot dalek hugme, TimToady sets mode: +vv ilogger2 IRSeekBot, TimToady sets mode: +vvv lisppaste3 p6eval phenny, TimToady sets mode: +v pugssvn 16:09 ChanServ sets mode: +o diakopter 16:10 slavik left, slavik joined
isBEKaml setting PERL6LIB environment variable didn't cut it, either.. 16:10
16:16 pnate joined 16:19 alester joined
isBEKaml perl6 examples/games/hangman.pl 16:20
lol
16:21 cdarroch joined, cdarroch left, cdarroch joined
isBEKaml My question was why don't globals work here? Or do we have a strict rule against using them? 16:25
16:30 rgrau left
isBEKaml rakudo: my $varstr = $*PROGBIND || "."; say $varstr; 16:34
p6eval rakudo da6b23: OUTPUT«.␤»
16:41 am0c left 16:43 szabgab joined 16:44 envi^home left 16:50 Trashlord left, molaf joined 16:51 pmurias left 16:52 k23z__ left 16:55 Trashlord joined 17:00 dakkar left
[Coke] would anyone else like it if rakudo installed itself as rakudo (in addition to perl6) ? 17:04
or, perl6-rakudo, or something else with the flavor in the name? 17:05
whoever got the installing working, btw, +1.
moritz_ I'd like just "rakudo"
having two binaries with different names would be confusing 17:08
TimToady maybe you should install it as R* :)
sorear and "ng"
[Coke] moritz_: it's a common trick to have, e.g., tcl-8.4 and tcl-8.5 installed separately, and have tclsh be linked to the preferred one.
17:09 colomon left
TimToady rakudo is kinda the "auth" in the name 17:09
[Coke] changing it wholesale to rakudo would certainly be an easier patch, though. =-)
sbp I vote for just kudo 17:10
then you can install multiple kudos
don't think about incrementing the k per version though
17:10 hercynium left
sbp will lead to problems down the line on many systems 17:10
Su-Shee the roles and traits idea come from smalltalk, right? 17:11
pugssvn r30684 | lwall++ | [hangman] fix syntax problems pointed out by STD 17:14
17:14 jgabr joined
[Coke] pugs svn pretty webterface? 17:15
17:16 Trashlord left
diakopter perlcabal.org/svn/pugs/ 17:16
jgabr Hi. Haven't seen any updates to planetsix in a while, but I see Gabor (for one) has been doing some blogging. 17:18
[Coke] diakopter: danke.
jgabr: under what url do you see gabor's postings? 17:19
jgabr Coke: on his blog, I mean.
diakopter jgabr: but not with the perl6 tag
jgabr Ah.
[Coke] this is the feed we're pulling from him: szabgab.com/blog/Perl%206.rss
jgabr Whoops. Thanks. 17:20
Guess it's just been a quiet week Perl 6 blogwise.
diakopter I should have a new post this week. 17:21
moritz_ diakopter: do you want to write/mentor a new challenge? 17:22
diakopter "implement labels/goto in rakudo" 17:23
moritz_ diakopter: if you can mentor that, and give step-by-step introductions... sure :-)
jnthn diakopter: I look forward to it. :-)
Su-Shee "import rakudo into any browser by the way of sprixel." ;) 17:24
diakopter har.
the js sprixel? not possible, since it depends on the perl5 STD
the clr sprixel? someday, yes, when it runs in silverlight. 17:25
jnthn meh, just host STD and use AJAC ;-)
17:26 jgabr left
Su-Shee web sockets. 17:26
isBEKaml TimToady: how many errors did you get with hangman? ;) 17:29
I give up! ## It's crazy running around in loops over globals :( 17:39
"Symbol '$progdir' not predeclared in <anonymous>" 17:40
17:40 _buno_ left 17:41 dju joined 17:42 dju left 17:43 dju joined
pugssvn r30685 | svatsan++ | [ext] Fixed File::Spec::Unix 17:44
isBEKaml has **really** given up
pugssvn r30686 | moritz++ | [t/spec] regex modifier :x(Int) and :x(Range) tests 17:58
moritz_ rakudo: say (1..^3).max 18:00
p6eval rakudo 689429: OUTPUT«3␤»
moritz_ is that correct? 18:01
isBEKaml moritz_: I don't think so. 18:02
rakudo: say (1..^3)
p6eval rakudo 689429: OUTPUT«12␤»
TimToady that's correct; ranges are primarily intervals, and return the endpoint 18:04
however
rakudo: say (1 ...^ 3).max # might be NYI 18:05
p6eval rakudo 689429: OUTPUT«1␤»
TimToady yes
moritz_ huh? that exists? :-)
18:05 aindilis` joined
TimToady rakudo: say (1 ... 2.999999999999).max # might be NYI 18:05
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say (1.0 ... 2.999999999999).max 18:06
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say (1,2,3 ... 2.999999999999).max
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say (1.0,2.0,3.0 ... 2.999999999999).max
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady hmm
18:07 ejs joined
TimToady rakudo: say (1 ... 5) 18:08
p6eval rakudo 689429: OUTPUT«12345␤»
TimToady rakudo: say (1 ... 4.9)
p6eval rakudo 689429: OUTPUT«1234␤»
TimToady rakudo: say (1 ... 4.9).max
p6eval rakudo 689429: OUTPUT«4␤»
TimToady rakudo: say (1 ... 4.99999999).max 18:09
p6eval rakudo 689429: OUTPUT«4␤»
TimToady rakudo: say (1 ... 4.99999999999999999).max
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady right
say 2.999999999999.WHAT 18:10
rakudo: say 2.999999999999.WHAT
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say 2.99999999999.WHAT
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say 2.9999999999.WHAT
p6eval rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)␤»
TimToady rakudo: say 2.999999999.WHAT
p6eval rakudo 689429: OUTPUT«Rat()␤»
TimToady 32-bit limitations, I guess 18:11
rakudo: say (1..4.9).max
p6eval rakudo 689429: OUTPUT«4.9␤»
TimToady rakudo: say (1 ...^ 4.9).max 18:12
p6eval rakudo 689429: OUTPUT«1␤»
TimToady rakudo: say (1 ... (^4.9)).max
p6eval rakudo 689429: OUTPUT«1␤»
TimToady rakudo: say (1 ... (0,1,2,3)).max 18:13
p6eval rakudo 689429: OUTPUT«1␤»
TimToady rakudo: say (1 ... 0,1,2,3).max
p6eval rakudo 689429: OUTPUT«1␤»
TimToady ooh, that's a bug
rakudo: say ^4.9 18:15
p6eval rakudo 689429: OUTPUT«01234␤»
TimToady rakudo: say ^4.0000000000000000000000000001
p6eval rakudo 689429: OUTPUT«PAST::Compiler can't compile node of type BigInt␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
TimToady sugoi
18:16 orafu left
pugssvn r30687 | moritz++ | [t/spec] correct one :x test, add another one 18:24
18:24 [particle]1 is now known as [particle]
moritz_ now spectests a patch that implements :x on .match 18:27
[Coke] rs in 60m? 18:29
moritz_ yes, I think so
oh, that patch broke :nth. Bad moritz_, no cookie 18:31
jnthn 60m? 18:33
I thought it was in 30m and was about to say I had a scheduling FAIL and would be 10 mins late or so... 18:34
moritz_ you might be right... I never got around to writing down the time :-)
right, we did start 19UTC last week
rakudo: say (1, 2, 3).defined 18:35
p6eval rakudo 689429: OUTPUT«1␤»
moritz_ rakudo: say any(1, 2, 3).defined
p6eval rakudo 689429: OUTPUT«1␤»
18:35 Sanitoeter left, Sanitoeter joined
jnthn OK 18:36
moritz_ I don't care much either way
jnthn It'll likely be a quiet one today - I didn't see pmichaud around yet, masak is likely having fun in Russia (and rightly so :-)), colomon can't make it either. 18:37
moritz_ indeed 18:38
18:42 Guest63592 left, Guest63592 joined 18:54 sahadev joined 19:02 ShaneC joined, ShaneC left
BrowserUk ? 19:06
19:06 clintongormley left
moritz_ ! 19:06
19:16 Trashlord joined
ruoso perl6: my $a; { my $b = 1; $a = sub { return eval '$b++' } }; say $a.(); say $a.(); say $a.(); 19:22
p6eval elf 30687: OUTPUT«Variable "$b" is not available at (eval 130) line 3.␤0␤Variable "$b" is not available at (eval 132) line 3.␤0␤Variable "$b" is not available at (eval 134) line 3.␤0␤»
..pugs, rakudo 689429: OUTPUT«1␤2␤3␤»
jnthn back 19:26
19:27 rindolf joined
rindolf Hi all. 19:28
jnthn o/ rindolf
rindolf rakudo: product [1 .. 4]
p6eval rakudo 689429: OUTPUT«Could not find sub &product␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
rindolf Hi jnthn
rakudo: [1..4].product()
jnthn rakudo: say [*] 1..4
p6eval rakudo 689429: OUTPUT«Method 'product' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
rakudo 689429: OUTPUT«24␤»
eternaleye (just rakudo it origins) irclog.perlgeek.de/perl6/2010-02-24#i_2027606
rindolf rakudo: [*] 1..4
p6eval rakudo 689429: ( no output )
rindolf rakudo: ([*] 1..4).say 19:29
p6eval rakudo 689429: OUTPUT«24␤»
moritz_ rakudo: <a b c>.map: *.say 19:35
p6eval rakudo 689429: ( no output )
lisppaste3 sahadev pasted "t/spec/S32-list/classify.t fixed" at paste.lisp.org/display/99420 19:36
moritz_ sahadev: the real fix is to move it outside of eval 19:37
*and* add those commas 19:38
sahadev: feel free to push your patch anyway... if you /msg me your email address, I can give you a commit bit to the pugs repo 19:39
sahadev the first one still needs eval (otherwise, fails with error: ":= binding of variables not yet implemented")
phenny sahadev: 15 May 14:29Z <moritz_> tell sahadev that I've applied most patches from your 'book' fork; I didn't apply the one about custom paper size because it makes it harder to talk about a specific page number across platforms
sahadev thanks, phenny
moritz_ sahadev: then a #?rakudo skip 'binding NYI' before the block should be used
sahadev moritz_: ok 19:40
moritz_ rakudo: my (@even, @odd); :(:@even, :@odd) = classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4; say @even.perl 19:41
p6eval rakudo 689429: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17864 (src/builtins/Junction.pir:393)␤»
moritz_ rakudo: my (@even, @odd); :(:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4; say @even.perl
p6eval rakudo 689429: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '' pc 0 (EVAL_2:1)␤»
[Coke] are the perl6 advent files checked in anywhere as tests? 19:43
moritz_ nope
[Coke] (and if not, any suggestions on where to put them? pugs/t/<mumble> ?
t/advent/2009/ ? 19:44
PerlJam [Coke]: sounds good.
moritz_ [Coke]: t/spec/integration/advent2009-$mumble.t
sahadev: welcome to the pugs repo. It's a custom to add yourself to AUTHORS in the first commit (and that way testing your commit bit) 19:46
sahadev moritz_: thanks.
ruoso TimToady, we got to an interesting point at the list, at which we're getting to the conclusion that supporting closing over all values (supporting access of data even from string eval or arbitrary CALLER::{$val} and OUTER::{$val}) might pose a challenge to threading... 19:47
and maybe we're at the balance of concerns
requiring a static analisys of which variables need to be in the closure lexpad would be quite important in terms of threading semantics 19:49
19:49 takadonet left
ruoso this would mean "my $a; { my $b = 1; $a = sub { return eval '$b++' } }; say $a.(); say $a.(); say $a.()" would stop working 19:49
moritz_ as it does in perl 5, iirc 19:50
ruoso yes...
BrowserUk, anyway... the above comes from our discussion on the list ^^ 19:53
ruoso assumes BrowserUk and nigelsandever are actually the same person 19:54
jnthn "spent about three days humping" isn't a phrase I ever expected to see in a Parrot release announcement! 19:59
pugssvn r30688 | sahadev++ | added myself to the list 20:01
moritz_ ok, seems I finally have a *working* patch for :x 20:02
20:02 wknight8111 left
moritz_ after I added a safety feature of which I am convinced I don't need it 20:02
jnthn moritz_: Yay!
moritz_ but without it all test for :nth go wrong 20:03
20:06 iblechbot joined
diakopter is finding it difficult to think inside the box. 20:16
or outside, for that matter. 20:19
moritz_ which box?
diakopter :)
trying to wrap my head around the semantacists on p6l 20:20
their writings, I mean
moritz_ oh
I've started to routinely ignore any threads which go > 5 in depth
dalek kudo: cf5afac | moritz++ | (2 files):
implement :x in Any.match; also test it
diakopter I believe I do need to understand what they're writing.. it just .. may take a few more years. 20:23
sahadev moritz_: looks like my copy of t/spec was out of date. you seem to have already committed the suggested changes to S32-list/classify.t.
moritz_ sahadev: ah. I remembered writing such a patch myself, but assumed I'd forgotten to push it 20:24
sahadev i have to find something else to commit (if only to justify the addition of myself to AUTHORS)
diakopter :)
moritz_ sahadev: no hurry :-)
diakopter authoring AUTHORS is authoring too
sahadev diakopter: that kind of authoring, i can do any day :)
20:25 iblechbot left
diakopter rakudo: my &marine = *; marine(marine, marine(marine)); say 'done' 20:26
p6eval rakudo 689429: OUTPUT«done␤»
rindolf Hmmm... why is git pull from the rakudo github repos so slow here?
moritz_ rindolf: slow network?
PerlJam rindolf: it's because you're so far away :)
rindolf moritz_: don't know. 20:27
[Coke] jnthn: yah, I'm a little wierded out there.
moritz_ rindolf: that would be my first place for investigating, if you plan to do any
diakopter github intentionally slows down the rakudo repos for people who don't hide behind crickets
[Coke] moritz_: t/spec/integration/advent2009/day*.t ?\ 20:28
rindolf moritz_: it's fine from my wired computer, I think.
moritz_: but here I have wireless.
20:28 mikelifeguard joined
rindolf moritz_: it's the same Inet connection. 20:28
76.00 KiB
moritz_ [Coke]: please keep the hierarchy flat to two levels below t/spec/ (ie one dir + file name) 20:29
rindolf Not too good.
moritz_ [Coke]: that's what some test harnesses out there in the wild assume, and it's bad to break their assumptions
mikelifeguard Is there a tool to automatically check perl code for perl6 compatibility? For example, there is the -3 flag in python 2.6 to tell you where stuff might break in python 3
[Coke] ok. perhaps I'll collate them to multiple days per file, then.
moritz_ rindolf: then it's the wireless?
rindolf moritz_: maybe.
moritz_ mikelifeguard: Perl 6 is so much different from Perl 5 that compatiblity is only given in *very* trivial scripts 20:30
so it doesn't really make sense, IMHO
rindolf moritz_: I'm getting 318 KB via FTP from a different server in .il.
mikelifeguard hokay
moritz_ rindolf: maybe that's why you get so little ssh traffic over the line at the same time :-) 20:31
(just kidding)
rindolf moritz_: heh.
20:31 mikelifeguard left
Su-Shee mikelifeguard: the difference between 5 and 6 is plainly larger then between 2.6 and 3. ;) 20:31
rindolf moritz_: now it's 244.00 KiB
OK, git pull finished now. 20:32
dalek kudo: 72ed16f | moritz++ | src/core/Cool-str.pm:
simplify .match(:x) implementation a wee bit
20:42
20:44 BrowserUk left 20:45 ejs left
diakopter sum1 needs to write a Harmony of the Synoptics 20:46
pugssvn r30689 | moritz++ | [t/spec] initial tests for combined modifiers in .match 20:47
20:49 molaf left, Guest44059 left 20:50 patrickas joined
patrickas hello 20:50
moritz_ hi
20:50 ash_ joined
patrickas hi moritz_, how the little finger going? hope it is better! 20:51
:-)
20:52 colomon joined
patrickas is MAIN implemented in rakudo yet? 20:52
moritz_ it is
and "no"
it was, in alpha
20:52 orafu joined
moritz_ at least basically 20:53
moritz_ wonders if that would make a good challenge
20:53 iblechbot joined
moritz_ you know, a basic command line parser for Perl 6, written in Perl 6 20:53
patrickas ok ... cause I was sure I'd read it was implemented somewhere ... but I could not get it to work ...
moritz_ and then I'll bribe jnthn++ to hook it up
colomon match :x \o/ 20:54
patrickas seems like a great challenge ... but maybe a jump a bit too big from the previous two
moritz_ colomon: I've got another simplication patch in my queue
patrickas: it's not so bad, actually 20:55
colomon moritz_: I worked on Numeric patches while we were on the road, will spectest now that I have power. :)
moritz_ patrickas: input would be a list of strings, output should be an array and a hash (of positional and named arguments)
patrickas ok ... want me to work on it ? or do you want to make it challenge number 3 ? 20:56
moritz_ patrickas: I'd like to make it challenge no. 3 (tomorrow morning)
patrickas: of course you're welcome to work on it too... for this one I'll accept multiple submissions again 20:57
patrickas i could ... but since I am hooked already I'd rather leave the bait for osmeone else ;-)
moritz_ patrickas++ 20:58
20:58 mberends left
patrickas which reminds me ... I was wondering .. how do I detect context in perl6? 20:59
moritz_ simplification patch pushed... only spectested against S05* ... /me hopes the best
patrickas: you don't
patrickas: context doesn't flow inwards like in Perl 5
patrickas: so instead you return objects that behave magically depending on the context 21:00
colomon spectest aborted, then.
patrickas and the objects behave differently by having secial methonds in them?
moritz_ anyway, I'm off to bed now
patrickas: right; string context will call .Str etc.
colomon moritz_: 'night!
wait, do you know where the #rs log is? 21:01
21:01 moritz_ sets mode: +oo patrickas colomon
patrickas thx goodd night 21:01
moritz_ colomon: irclog.perlgeek.de/rakudosketch/today not really worth it
really gone &
colomon moritz_++
dalek kudo: 6aedf5e | moritz++ | src/core/Cool-str.pm:
[Any.match] remove some duplicated code
21:05
21:07 ash_ left 21:09 Su-Shee left, wknight8111 joined 21:16 nimiezko joined
diakopter std: \ \.STD 21:16
p6eval std 30689: OUTPUT«ok 00:01 110m␤»
21:16 nimiezko left 21:17 nimiezko joined, nimiezko left 21:20 nimiezko joined 21:32 gbacon_ left 21:36 rindolf left
dalek kudo: 980e03c | (Solomon Foster)++ | src/core/ (2 files):
Implement (generic) Numeric.succ and Numeric.pred. Remove the multi from Rat's
21:37
kudo: 1bf6eab | (Solomon Foster)++ | src/core/ (3 files):
Create postfix:<i> for Numeric and Any, delete the old Complex and Any versions.
21:39 ethel joined 21:41 BrowserUk joined
BrowserUk ruoso: That example explains your point on the list about string eval. Thanks. I've been sitting here racking my brains trying to see the killer use case for that, and I'm coming up short? The only thing that crosses my mind is to allow lexicals in a REPL, which is a very desirable feature. But it strikes me that shoudl be achievable using a pair of coroutines. 21:45
TimToady interestingly, my $a; { my $b = 1; $a = sub { $b = $b; return eval '$b++' } }; say $a->(); say $a->(); say $a->();
does work in p5
so it just takes the lexicals from the current scope 21:46
ruoso TimToady, note the additional "$b = $b
TimToady ruoso: note it? I put it there...
ruoso heh
ruoso wrote that too quickly
TimToady but in any case, I'm inclined to put the burden on anyone who uses eval, either to do such workarounds, or to put up with poor performance
which, of course, is just another way of arguing it both ways :) 21:47
BrowserUk Ruoso: The first reads from stdin (Sorry $*IN) and then makes what it read available to the other that does the eval in the same context each time. That should work shouldn't it?
ruoso something like... eval <== $*IN 21:48
but eval does create a new scope whithin itself, so it wouldn't solve the REPL problem
21:49 SmokeMachine left
ruoso I think we're getting to "we use locks for shared values"... 21:49
"unless they are actors"
I think "actor" is just going to be a different type of object 21:50
BrowserUk Ah! Shame.
ruoso that simply lives in a different thread and is always invoked through a queue
colomon TimToady: if you use :x(4) in .subst, it only substitutes if all four reps are found.
TimToady: If you use :x(4) in .match, does it only match if all four are present?
TimToady that's the current design
colomon TimToady: the spec doesn't exactly say for the second, as far as I can see. 21:51
ruoso actor Foo { action bar($a, $b) { } }
colomon and I think the implementation and tests don't do that yet. 21:52
BrowserUk ruoso: You'll have to give me time to digest that.
TimToady well, 'x' generally means n times, not up to n times
patrickas rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x;my Str $s = $x;say $s; 21:53
p6eval rakudo cf5afa: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 17864 (src/builtins/Junction.pir:393)␤»
colomon rakudo: "hello world".match(/.o/, :x(5))>>.Str.perl.say
p6eval rakudo cf5afa: OUTPUT«()␤»
ruoso BrowserUk, putting it in a different way, the message passing concurrency might be available without prejudice to the shared-state concurrency, and that'd be explicit in the code... 21:54
and we would be free of green threads
jnthn patrickas: It's a type constraint, not a type coercion. :-) 21:55
class Foo {method Str () { return 'Fourty Two';}};myFoo $x;my Str $s = ~$x;say $s; 21:56
rakudo: class Foo {method Str () { return 'Fourty Two';}};myFoo $x;my Str $s = ~$x;say $s;
p6eval rakudo cf5afa: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
jnthn rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x;my Str $s = ~$x;say $s;
p6eval rakudo cf5afa: OUTPUT«Foo()␤»
jnthn rakudo: class Foo {method Stringy () { return 'Fourty Two';}};my Foo $x;my Str $s = ~$x;say $s;
p6eval rakudo cf5afa: OUTPUT«Foo()␤»
jnthn rakudo: class Foo {method Stringy () { return 'Fourty Two';}};my Foo $x .= new;my Str $s = ~$x;say $s; 21:57
p6eval rakudo cf5afa: OUTPUT«Foo()<0x370b620>␤»
jnthn rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x .= new;my Str $s = ~$x;say $s;
p6eval rakudo cf5afa: OUTPUT«Fourty Two␤»
jnthn Heh.
21:57 ashleydev_ joined, meppl left
patrickas thx! 21:58
21:59 ashleydev left 22:00 iblechbot left
patrickas jnthn: so if a function expects Str I cannot pass Foo and expect it to work correctly if foo has a ..Str defined? 22:02
22:02 rgrau joined
patrickas I guess that would become a problem for multimethods ... 22:03
22:04 ashleydev_ left 22:06 ashleydev joined 22:08 pjcj joined 22:10 dju left, ashleydev left 22:14 cognominal left 22:16 sahadev left
patrickas I can't find out how to specify List context :( 22:17
22:20 ive left
jnthn patrickas: No, if you want to coerce then you can write a signature like ($foo as Str) 22:20
patrickas: @( ...stuff here is in list context... ) 22:21
22:22 ruoso left
BrowserUk Semantically, what is teh difference between @a <== map { ... } <== grep { ... } <== $*IN and @a map { ... } grep { ... } $*IN ? 22:22
patrickas rakudo: class Foo {method Str () { return 'Fourty Two';};method Array () { return (4,2);};method List () { return (4,2);};};my Foo $x .= new;my @ar=@($x);@ar.say ;
p6eval rakudo cf5afa: OUTPUT«Fourty Two␤» 22:23
patrickas sorry for the total noob questions :(
BrowserUk *@a = map ... 22:25
jnthn list
not List
BrowserUk: The second (even with the =) is a syntax error anyway - need a comma between the block and the argument. 22:26
BrowserUk: The differenence is in laziness, though.
And also by using <== you're saying it's OK for the compiler to run each of the things in its own thread
And set up a producer/consumer pattern.
*compiler to generate code that will... 22:27
BrowserUk jnthn: OKay. So the instead of constructing a huge list and pasing it through the chain, it feeds 1 value through at a time. 22:28
22:29 kolibrie left, Guest63592 left 22:31 k23z__ joined
BrowserUk There would be little or no benefit (indeed probably a cost) in using a separate kernel thread for each stage. 22:31
jnthn BrowserUk: It may also not bother doing anything until you look at @a
BrowserUk: List assignment is mostly eager (will not explode things that may be infinite though). 22:32
BrowserUk: <== and ==> are not.
BrowserUk Hm Interesting. What if you test the size of the list? Does that then block until the chain completes? 22:33
jnthn Asking .elems on a potentially infinite list is probably a bad idea, yes. :-)
BrowserUk jnthn: That implies that once you start lazy processing, you have to stick with lazy processing. No safe way to revert to eager. 22:35
jnthn It's only really an issue if the list is infinite though. 22:36
But yeah
22:36 cognominal joined
BrowserUk At some point $*IN will normally be exhausted and @a populated, but I don;t see an easy way to know when that has occurred and it would be safe to do something non-lazy with @a. 22:37
patrickas rakudo: my %h = ("a"=> 1 , "b"=>2 );(map { .WHAT } , %h).say; 22:39
p6eval rakudo cf5afa: OUTPUT«Hash()␤»
patrickas rakudo: my %h = ("a"=> 1 , "b"=>2 );%h.^add_method( 'list', method ( ) { return self.pairs; });(map { .WHAT } , %h).say;
p6eval rakudo cf5afa: OUTPUT«Pair()Pair()␤»
patrickas How can I add the list methos to the class of %h instead of %h itself ? 22:40
"augment class Hash" doesn't seem to be doing what I thing it should!
colomon TimToady: I was wrong, moritz_++ did indeed make :x work strictly for the correct number of repetitions. 22:41
patrickas actually it works for arrays but not for hashes... 22:44
rakudo: my %h; %h.WHAT.say;
p6eval rakudo 980e03: OUTPUT«Hash()␤»
patrickas rakudo: my %h; my %hh = ("a"=> 1 , "b"=>2 );%h.WHAT.^add_method( 'list', method ( ) { return self.pairs; });(map { .WHAT } , %hh).say; 22:48
p6eval rakudo 980e03: OUTPUT«Pair()Pair()␤»
patrickas \o/
BrowserUk phenny: tell ruoso, My first reaction is that it is better dealt with using something like: my @a = async{ map{...}, grep, <== $*IN }.join; As everything that comes out of the grep is going to end up passing through the map and end up in memory in @a anyway. 22:50
phenny BrowserUk: I'll pass that on when ruoso is around.
22:53 rv2733 left
BrowserUk phenny: tell ruoso, the use-case I'm envisaging is a filtering a small subset of a large input. You save memory by filtering the input lazily, but after that--depending upon how lists are implemented-- you don't save much more cos it's all going to end up in @a anyway. 22:54
phenny BrowserUk: I'll pass that on when ruoso is around.
22:55 IllvilJa left
BrowserUk phenny: tell ruoso, If @a was assigned a placeholder promise, you can get on with other stuff while it runs, and only block when you access @a at some point later if it hasn't completed. 22:58
phenny BrowserUk: I'll pass that on when ruoso is around.
22:58 Psyche^ joined 22:59 Arroz left 23:02 Patterner left, Psyche^ is now known as Patterner
patrickas thinks he fixed his first rakudo bug ever ! 23:04
BrowserUk phenny: tell ruoso, And if IO primitives are set up as coroutines dispatched in the IO/Events thread, that allocate sharable buffers and post thread-chimeric handles to those buffers through queues, then the whole chain runs as quickly as the data can be read without sleeps, locks or polling. 23:07
phenny BrowserUk: I'll pass that on when ruoso is around.
23:07 lestrrat is now known as lest_away 23:08 jaldhar_ joined, _jaldhar left
BrowserUk night all. 23:10
23:10 BrowserUk left 23:28 saaki joined 23:31 eternaleye left 23:43 eternaleye joined 23:48 cdarroch left 23:49 rgrau left 23:51 jhuni joined 23:57 lest_away is now known as lestrrat
colomon patrickas++ 23:58