»ö« | perl6.org/ | 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 moritz_ on 25 June 2010.
00:00 Patterner left, Psyche^ is now known as Patterner, whiteknight left
sorear ingy: OOH YAML-P6? 00:00
sorear would love to see a p6rules version of YamlReference 00:01
ingy jnthn: see the bottom of github.com/ingydotnet/yaml-pm6/blob...t/dump.tml 00:02
jnthn: does that look sane?
sorear: I'm just dumping for now
but I can do circular refs and objects
00:02 ashleydev left
ingy I think I will try a p6rules parser though 00:02
jnthn ingy: Well, I'm not particularly familiar with YAML so maybe not the best person to ask. ;-)
ingy ok 00:03
TimToady: see the bottom of github.com/ingydotnet/yaml-pm6/blob...t/dump.tml
sorear ingy: just curious, is there anything out there explaining the origins of 'ingydotnet'?
ingy TimToady: does that look sane?
jnthn ingy: It looks at least plausible. :-) 00:04
ingy jnthn: other langs would probably make $!x, just x 00:05
anyway, I think it will be useful to me
pugssvn r31652 | lwall++ | [Temporal] time is now a pseudo-constant like now, rand, etc 00:06
ingy now I can try to dump my testml object treee
pugssvn r31653 | lwall++ | [STD] term:sym<time>
00:07 rgrau_ left
ingy HOLY FUCK 00:08
IT JUST WORKED!
gist upcoming...
jnthn, TimToady, sorear: check this bad boy out: gist.github.com/473265 00:13
jnthn "Perl 6. HOLY FUCK IT JUST WORKED!"
:-)
pugssvn r31654 | lwall++ | [S06] defined callsame/nextsame in terms of callwith/nextwith and callframe
jnthn ingy: Nice :-) 00:14
ingy that was a 3 day yak shaving session to allow me to not go crazy debugging testml dev 00:16
00:18 dduncan joined
jnthn -> sleep, if I can in this heat :S 00:19
o/
TimToady \o 00:20
dduncan TimToady, regarding my addition of Blob literals to S02 yesterday, is the format I chose acceptable to you or do you forsee there being problems with it? AFAIK, it does not conflict with any valid numeric or other string literals.
TimToady but it doesn't extend with :4<...> notation 00:23
dduncan well what about :N'...' ? 00:24
eg, :b'11001'
TimToady on the other hand, how is a blob different from a large number?
dduncan or :16'45F'
the concept is different 00:25
TimToady perhaps Blob(:2<1001010100100101010001011010001010100101010010100100010110100010100000>) is good enough
tylercurtis std: :2<11001>.Blob 00:26
dduncan well that's certainly better than Blob(2=>'11100101010101010') say
p6eval std 31651: OUTPUT«ok 00:01 110m␤»
TimToady hmm, though it would be hard to extract the base unit from the number
00:27 Chillance joined
dduncan my preference is something that doesn't look like a function call 00:27
TimToady the current spec is not extensible and looks like a mistake of 0b for :2
dduncan I see Blob being at least as fundamental as Str, in different ways
TimToady fundamental should not be confused with common 00:28
we do huffmanization based on commonness, not fundametality 00:29
dduncan well, my number one desire, greater than looking like anything specific, is to have *a* canonical terse way of writing a Blob literal
so Blob(:2<...>) would fit that bill
TimToady well, there are other options, perhaps
dduncan basically, while things can be changed later, I would like for the spec to have *something* now rather than being silent on the matter
which is the point of my addition yesterday 00:30
TimToady for instance, :2{11000101010} isn't taken at the moment
dduncan and that something can be anything that doesn't conflict with other syntax, barring that being changed too
I would be quite happy with :2{...}, moreso than Blob(...) 00:31
for that matter ...
cognominal TimToady, I think the spec should be more explicit about mmd descending to pattern match inner signature. See #76486 for an example.
dduncan is :2[...] taken for anything?
the reason is, I see square brackets being a mneumonic for something ordered, while curly braces are a mnemonic for something unordered, though blocks defy that 00:32
actually, nevermind
:100[...] taken 00:33
00:33 blubblub joined
dduncan I'll update my additions to S02 to use :N{...} for now, barring a better option presenting shortly 00:33
but I also like people being able to use [b|o|x], so ... 00:34
tylercurtis Perhaps a quoting construct similar to that for paths? 00:35
dduncan how does :0b{...} being an alias for :2{...} sound?
00:35 xinming_ joined, blubblub left
tylercurtis q:blob(2){11000101010}? 00:36
dduncan I recognize user-defined delimiters being useful for Str, but I don't see the use for Blob, since they have a very small column domain like with numerics 00:37
00:38 xinming left
sorear Is != considered a derived operator? 00:38
tylercurtis dduncan: interpolation might be useful for Blobs,
sorear dduncan: user-defined delimiters are handled at a very low level in STD.pm6, supporting them is easier than not 00:39
dduncan so maybe we could do that then
make the Blob literal into a quotelike syntax of a string 00:40
sure, interpolation is useful
for some reason I'm reminded of "formats" 00:41
TimToady there is a problem unless we define types like uint3
00:42 takadonet joined
TimToady unless we make the Blob role take a number instead of a numeric type 00:42
takadonet hey everyone
phenny takadonet: 11 Jul 17:14Z <moritz_> tell takadonet to look at <nopaste.snit.ch/21946>, which is a working example of lazy matching with Rakudo
00:42 ashleydev joined
takadonet wow.... first time someone left me a message.... 00:42
dduncan now, I consider a Blob to be a string of bits specifically, with an octet-Blob to be a subtype whose strings are all multiples of 8 bits in length, etc ... 00:43
this is different from a string of arbitrary integers
which is different from a string of characters
pugssvn r31655 | lwall++ | [S02] revise blob literals a bit 00:44
dduncan TimToady, thank you for giving attention to this
TimToady I just invent Uint as a role that takes a number of bits 00:45
not sure if that'll fly, but didn't want to bless 'uint\d+' as a productive notation just yet
I suppose there will be people who want int24 though 00:46
or uint24
sorear TimToady: Should &say call .Str or .Stringy?
perl6: say Bool::True
p6eval pugs, rakudo 94d01f: OUTPUT«1␤»
TimToady say is supposed to call .Str as a low-level primitive 00:47
sorear what, not True?
TimToady that doesn't thread
dduncan I agree that a role approach is better than uint\d+ being magical
sorear why make uint a role and not a class? 00:53
pugssvn r31656 | lwall++ | [S12] define more forced actions on enum values 00:55
TimToady classes aren't parameterized 00:56
sorear TimToady: is t/spec/S02-builtin_data_types/bool.t:58 now wrong?
00:58 kid51 left, isBEKaml left
pugssvn r31657 | Darren_Duncan++ | add 2-bits/col blob example 00:59
dduncan I would have had that 4th example before had I used numeric bits/col specifiers 01:01
TimToady is now considering whether roles that instantiate native types should be lowercase, like uint[3] 01:06
sorear A role can instantiate a native type? 01:08
pugssvn r31658 | lwall++ | [bool.t] align bool tests with new stringification spec 01:09
TimToady well, they would be highly specialized roles
with a circularity saw right under the surface :)
but I don't really wish to predefine int[7]
int7 rather 01:10
and Int is supposed to be the generic object, which would be confusing to also have as the native creating role 01:11
01:11 cls_bsd left
TimToady or maybe it should be de-huffmanized to native_uint[7] or some such 01:12
dalek ecza: f9a7172 | sorear++ | (3 files):
Add NIL-accessible control structures
ecza: 919c9fe | sorear++ | Niecza/Grammar.pm6:
Better error message for malformed NIL ops
ecza: ab166f7 | sorear++ | (3 files):
Fix conditional parsing; implement NIL comparison operators
ecza: e92f5a9 | sorear++ | (2 files):
Handle infix:<< < >> syntax; implement Num*Num -> Bool operators
ecza: a22df56 | sorear++ | setting:
Move functions after types; add Bool.Str
ecza: fdc147c | sorear++ | Niecza/Actions.pm:
Implement most basic case of CHAIN
takadonet ...
TimToady we need bitfields of arbitrary size if we're going to be able to emulate modern C declarations, for instance 01:13
01:23 cls_bsd joined
TimToady I'm wondering if it's a mistake to leave time returning fractional seconds when POSIX doesn't define it 01:29
and people should use now instead for that anyway
pugssvn r31659 | lwall++ | [S02] s/Uint/uint/ for speculative native role 01:36
r31660 | lwall++ | [S32] revert C<time> to POSIX integer seconds; don't try to do C<now>'s job
01:36 Trashlord left
dduncan were 'time' and 'now' aliases before this split? 01:37
nevrmind
about the uint role thing, perhaps more than just [3] could be made role ... eg, why not have the [2] and [4] as well at least? 01:40
if not all of them
sorear TimToady: I'd like a nice way to get at gettimeofday(2) functionity, if available 01:47
the whole tv_secs + tv_usecs / 1000000.0 thing gets annoying after you've typed it five hundred times
01:49 jaldhar joined
dduncan I don't like the whole usecs thing myself 01:49
time should be either whole seconds or arbitrary fractions
or if you have to pick a fractional quantum, then something closer to what the computer actually works in makes more sense, like a power of 2 01:51
sorear what the computer actually actually works in is 1/1193182 second quantums 01:53
do you really want that?
(for PCs)
I'm happy to have a nice round number portable quantum
even if it means some rounding error 01:54
dduncan I'd rather just have an arbitrary Num or Rat 01:56
let the system give the fractions in whatever resolution it has
01:56 Kodi joined
dduncan I suspect it isn't the same on every computer ... or at least clock-driven CPU/etc speeds differ 01:56
just truncate it to the resolution you want to use
sorear the master timebase is only 1,1193182 Hz on PC compatibles 01:57
dduncan will it be forever?
sorear yes, since it's part of the hardware interface
dduncan but Perl might run on other things in the future
the point is, hard-coding nanoseconds is a bad idea 01:58
sorear hard coding microseconds is not our choice to make
dduncan CPUs already execute several instructions in a nanosecond, and would get faster, so I'd think the clock resolution is better than nanoseconds
sorear not nanoseconds 01:59
microseconds
dduncan me brb
er /me brb
Kodi One issue with making 'time' return an integer is that 'now', given that it uses atomic seconds, is (I imagine) difficult to implement, whereas 'time' is in most cases just a system call. So letting 'time' return non-integers should generally give greater access fractional seconds.
01:59 plobsing joined
Kodi *"access *to* fractional seconds". 01:59
sorear www.opengroup.org/onlinepubs/009695...ofday.html 02:00
also, while the CPU clock may be at >4GHz, CPU clocks are extremely unstable and useless for timekeeping
this is actually on purpose
02:01 masonkramer left
sorear the 1.193182 MHz comes from a crystal oscillator and has quite good stability, around 1 ppm 02:02
02:02 takadonet left
tylercurtis sorear: so, e.g., a computer with a PPC or ARM processor might have a different clock resolution? 02:06
sorear tylercurtis: even an intel mac could have a different one
the clock rate I just gave is set for historical reasons
it was decided because that's what kind of crystal IBM could get cheaply in 1983 02:07
NTSC color decoding crystals (12 * 1.193182) are still pretty abundant, so it's not implausible a different computer maker would choose the same frequency 02:08
though I suspect I'm arguing past dduncan
my point is that using microsecond interfaces is annoying and I'd like to get Nums back instead 02:09
tylercurtis It sounded as though dduncan was arguing that hardcoding a specific precision is a bad idea. 02:10
sorear we have to hardcode a specific precision in the implementation 02:13
02:13 Kodi left
sorear we don't have to expose it to user code, and I'd rather we didn't 02:13
traditionally (Sys6 era) the Mac timebase was 60Hz
I suspect they've added a higher res timer since then
tylercurtis Right. Don't specify a specific precision in the spec. 02:19
02:21 xinming joined 02:24 xinming_ left
lue hi o/ 02:25
sorear stefan@stefans:~/niecza$ ./niecza -e 'say(2 > 3); say(3 > 2);' 02:26
Bool::False
Bool::True
\o/
lue \o/
02:27 agentzh joined
dalek ecza: ce81a8f | sorear++ | CodeGen.pm:
Fix control operators with net stack effects
02:31
02:35 ashleydev left, eternaleye joined
sorear std: anon $x; 02:36
p6eval std 31660: OUTPUT«ok 00:01 111m␤»
sorear rakudo: anon $x;
p6eval rakudo 94d01f: ( no output )
sorear rakudo: anon $x; say $x;
p6eval rakudo 94d01f: OUTPUT«Any()␤»
TimToady er
std: anon $x; say $x
p6eval std 31660: OUTPUT«===SORRY!===␤Variable $x is not predeclared at /tmp/C_DnpkKq0P line 1:␤------> anon $x; say $x⏏<EOL>␤Check failed␤FAILED 00:01 109m␤»
TimToady I suspect it's just aliased to 'my' 02:37
(in rakudo)
mildew: anon $x; say $x 02:38
p6eval mildew: OUTPUT«===SORRY!===␤Variable $x is not predeclared at c96b5a83a04304000173dd458e5f392a line 1:␤------> anon $x; say $x⏏<EOL>␤Check failed␤»
TimToady mildew++ ;)
02:42 xinming left 02:43 xinming joined
lue what exactly is the purpose of anon? 02:44
tylercurtis std: class Rabbit {...}; my $hat = anon Rabbit sub {...}; 02:45
p6eval std 31660: OUTPUT«ok 00:01 111m␤»
tylercurtis Also, lue: "The anon declarator allows a declaration to provide a name that can be used in error messages, but that doesn't put into any symbol table:" 02:46
lue I read S02's explanation, but I don't see how that's useful [ or even used :) ] 02:47
tylercurtis rakudo: anon sub marine () { say "If this shows up, it's a bug."; }; marine();
p6eval rakudo 94d01f: OUTPUT«If this shows up, it's a bug.␤»
tylercurtis rakudo: my $secret = anon sub marine () {...}; $secret(42); 02:48
p6eval rakudo 94d01f: ( no output )
02:48 xinming_ joined, xinming left
tylercurtis That should theoretically fail/die with something like "Too many arguments to sub marine." 02:49
dduncan sorear, tylercurtis, I was arguing that arguing a specific precision (other than to whole seconds) is a bad idea
I prefer Nums 02:50
or Rats
02:51 ajs left
dduncan getting off ... IRC is often too distracting to productivity 02:53
02:53 dduncan left, xinming joined
lue hm. could where_blockify in Actions.pm (line 3125) be what causes 'where' to work in parameters? 02:54
02:54 xinming_ left
lue rakudo: sub xy($a where 0..10) { say $a }; xy(5); xy(34); xy(2); 02:54
p6eval rakudo 94d01f: OUTPUT«5␤»
lue
.oO(Not having an error print is confusing)
02:55
tylercurtis Locally:
5
Constraint type check failed for parameter '$a'
lue > sub xy($a where 0..10) { say $a }; xy(5); xy(34); xy(2); 02:56
Too many positional parameters passed; got 2 but expected 1
my tinkering broke it! :)
02:58 Chillance left
sorear std: my $x; say $$x 02:59
p6eval std 31660: OUTPUT«ok 00:01 109m␤»
sorear Umm
What does that mean and why is it legal
STD.pm6 claims to be doing "hard reference" syntax
I thought explicit refs were dead?
lue rakudo: my $x; say $$x # I thought I could make it worth more :) 03:01
p6eval rakudo 94d01f: OUTPUT«===SORRY!===␤Confused at line 20, near "say $$x # "␤»
lue rakudo: my $x; say $$x; # I thought I could make it worth more :)
p6eval rakudo 94d01f: OUTPUT«===SORRY!===␤Confused at line 20, near "say $$x; #"␤»
tylercurtis sorear: $$foo is $($foo) 03:04
sorear What is $()
tylercurtis The scalar contextualizer function. Apparently essentially equal to "item". 03:05
sorear My understanding is that .item is always called when something is bound to a $scalar
so $$foo should always be $foo 03:06
tylercurtis There's an example in S03 of calling $$capture to get the invocant of a capture for interpolation purposes.
Or at least, that's what it looks like. 03:07
lue rakudo: my $a = 3; say $$a 03:08
p6eval rakudo 94d01f: OUTPUT«===SORRY!===␤Confused at line 20, near "say $$a"␤» 03:09
tylercurtis Describing interpolating a functions return value into a the arguments to push: it says that "push |func();" is equivalent to "my $capture = \(func()); push $$capture: @$capture, %$capture;" 03:11
Well, actually, it says, it is equivalent to that "or some such". 03:12
03:12 xinming left 03:13 takadonet joined, hercynium joined 03:18 xinming joined 03:22 Teedev_ joined 03:25 PenThrive joined 03:26 Teedev_ left 03:33 PZt left 03:41 aindilis joined 03:56 cono left 04:01 cono joined, cdarroch left
diakopter mildew: say &say 04:07
sorear perl6: sub bar() { say "Hello"; rand }; class Foo { say (has $.x = bar) }
p6eval mildew: OUTPUT«unknown method "Str" at message line 134 file build/s1p/src/code.c␤»
pugs: OUTPUT«Hello␤0.9335998365268111␤»
..rakudo 94d01f: OUTPUT«␤»
sorear obviously pugs is doing something wrong 04:08
I'm wondering what the correct behavior here is
Hello is not supposed to be printed; stuff assigned to has variables is only run at BUILD time
but that leaves wide open the question of what has returns
04:10 tedv left, PZt joined 04:26 meppl joined 04:40 ashleydev joined
sorear stefan@stefans:~/niecza$ ./niecza -e 'my $x; $x = 42; say($x)' 04:53
42
dalek ecza: e7d59a1 | sorear++ | (3 files):
Allow intermingling Perl6 terms in NIL
04:56
ecza: 8517d2f | sorear++ | Niecza/Actions.pm:
Implement variable reference syntax
ecza: 2fbc8c5 | sorear++ | (2 files):
Implement variable declarations
ecza: e22978c | sorear++ | (3 files):
Implement assignment (rw checking woefully inadequate atm)
04:58 tylercurtis joined 05:19 PZt left 05:21 pragma_ left
sorear std: sub foo($x) { my $x; } 05:25
p6eval std 31660: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (see line 1) at /tmp/ctqhNvD1Ou line 1:␤------> sub foo($x) { my $x⏏; }␤ok 00:01 114m␤»
05:29 pragma_ joined, pragma_ is now known as Guest88700 05:31 ashleydev left 05:42 PZt joined 05:44 tylercurtis left
moritz_ std: use v6\ ; 05:48
p6eval std 31660: OUTPUT«ok 00:01 110m␤»
05:58 uniejo joined 06:00 ashleydev joined 06:04 cjk101010 joined
sorear std: sub foo() { :($x); } 06:19
p6eval std 31660: OUTPUT«ok 00:01 113m␤»
sorear std: sub foo() { :($x) := 2; }
p6eval std 31660: OUTPUT«ok 00:01 112m␤»
sorear How does that work?
rakudo: sub foo() { :($x) := 2; }
p6eval rakudo 94d01f: ( no output )
sorear rakudo: sub foo() { :($x) := 2; }; foo(); say("Alive") 06:20
p6eval rakudo 94d01f: OUTPUT«Alive␤»
sorear What is the 2 being bound to?
moritz_ std: :(x)
p6eval std 31660: OUTPUT«===SORRY!===␤In parameter declaration, typename 'x' must be predeclared (or marked as declarative with :: prefix) at /tmp/nLEp_gaLUN line 1:␤------> :(x⏏)␤Parse failed␤FAILED 00:01 109m␤»
moritz_ std: :($x)
p6eval std 31660: OUTPUT«ok 00:01 109m␤»
06:22 mberends joined
cxreg rakudo: my $a := 1; $a++ 06:23
p6eval rakudo 94d01f: ( no output )
moritz_ dies 06:24
but p6eval is not good with error reporting :(
sorear moritz_: do you have a clue what's wrong? 06:26
moritz_ sorear: I only know that it started when I put in the safe mode code
sorear p6eval level or rakudo level?
moritz_ p6eval level
06:28 baest joined
sorear hrm. token parameter is a bit on the long side 06:28
06:40 ashleydev left 06:41 HarryS joined 06:42 eternaleye left, masak joined
masak morning, #perl6! 06:43
up early. what a concept. :)
lue ohai masak o/ 06:44
It's almost midnight here :)
sorear hello masak!
I've added variables, assignment, booleans, and comparison operators to niecza. 06:45
masak sorear: nice!
sorear right now I'm working on signatures - soon you'll be able to write subs in pure Perl 6 06:46
masak sounds promising.
sorear rather than sub square { Q:NIL { =[0] } * Q:NIL { =[0] } }
masak what's NIL?
sorear niecza intermediate language 06:47
it's a bizarre hybrid between Perl 6, C#, and Forth
araujo other language?
sorear =[0] pushes the 0th positional argument onto the stack 06:48
masak heh :)
sorear the CLR uses stack-based bytecode; I wrote a code generator to abstract a few presentation details 06:49
$cg->pos(0); etc
when I needed to start writing glue code, it occurred to me that I could just invent a concrete syntax for codegen calls 06:50
which makes for a somewhat bizarre language, but it works
masak yay! TimToady changed so that True stringifies to "Bool::True" \o/ 06:53
TimToady++
sorear already implemented in niecza
:)
masak heh :) 06:54
sorear the change occured while I was asking about how to implement niecza's Bool.Str 06:55
it's quite possible these are related
06:57 hercynium left, sdo joined
masak how would this be done in Perl 6? blogs.perl.org/users/alberto_simoes...ution.html 06:58
sorear ("$_[0]aa$_[1]" for ($word =~ m:ex/(.*) oo (.*)/))) is the best I can come up with 07:01
moritz_ m:g would probably do 07:04
sorear skimming S05 again, the correct syntax appears to be "$_[0]aa$_[1]" for ($word ~~ m:ex/(.*) oo (.*)/; @())
lue rakudo: my $word = 'noogoo'; say ($word ~~ m/oo/g) 07:05
p6eval rakudo 94d01f: OUTPUT«===SORRY!===␤Unsupported use of /g; in Perl 6 please use :g at line 20, near ")"␤»
lue rakudo: my $word = 'noogoo'; say ($word ~~ m:g/oo/)
p6eval rakudo 94d01f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 20␤»
sorear m:ov would do; m:ex != m:ov only when oo is a regex which can match multiple lengths
diakopter niecza: my $x; $x = 42; say($x) 07:06
sorear if the word is "vrooom", :g -> vraaom, :ov/:ex -> vraaom, vroaam
cxreg does niecza work on mono? 07:07
lue I was thinking of getting a list of all places (StrPos' if they weren't NYI) where 'oo' is found, .pick one from the list, and substitute.
sorear cxreg: yes
cxreg ah, looks like it does indeed
sorear lue: .pick doesn't make an exhaustive list
masak "Sadly the feedback from the Perl 6 decision makers on IRC after presenting my first draft was not very positive, i almost gave up right there." -- blog.kraih.com/a-logo-for-perl -- I wonder how _sri got that impression. 07:08
I hope it wasn't something I said. :)
of the butterflies on that page, I like the last pair the best. 07:10
moritz_ masak: from our discussions in #perlde I gathered that _sri want soembody to give him directions what to do in order to make the official logo
sorear I think that /is/ the official logo
moritz_ it wasn't that our feedback was negative, but that it wasn't what he expected 07:11
sorear the TPF onion is the same onion whether it's a .jpg file or a sheet of paper
camelia is the same, but the requirements for being a camelia are slightly looser
07:11 HarryS left
_sri masak: what moritz said 07:11
sorear like Perl 6 itself, the logo is given by spec, not product ;) 07:12
moritz_ _sri: I just wished you would formulate it as such on your blog. The current formulation seems a bit unfair
masak _sri: I agree with moritz_.
_sri: as far as I know, no-one here ever discouraged you.
lue I never got a chance to look at those logos, and I have to say I like them. 07:13
_sri masak: the general apathy was very discouraging, so it was mroe what was not said
masak _sri: I think you expect too much of a bunch of loosely organized volunteers. 07:14
_sri i do realize that i had the wrong expectations
masak to reiterate, there was no discouragement involved, yet your post makes it seem like there was.
sorear _sri: I don't understand how you see "apathy" here 07:15
07:15 HarryS joined
_sri sorear: there is no interest in any kind of marketing here, which i have accepted now 07:16
sorear marketing a product with perl 6's level of maturity is very bad form 07:17
we call the practice 'vaporware' here
masak we do? :)
I thought the concept "vaporware" wasn't applicable on a product developed in the open. 07:18
_sri the real problem i see is that there is nobody responsible for marketing, be it perl 5 or 6
sorear the logo is good and will be used
masak _sri: you'd probably like to talk to Ovid about that.
_sri tpf marketing is just an urban myth and does not exist
masak _sri: he has a marketing role in TPF. 07:19
sorear ooh, Ovid doesn't exist?
sorear gets popcorn.
_sri i've just gone rogue now
_sri is a perl marketing guerilla 07:20
viva la revolucion!
lue .oO(PREVIOUSLY, on _The Perl Foundation_ ...)
masak _sri: I like you. :)
_sri hugs masak
masak just please try not to call us apathetic and discouraging. :) we're really not.
_sri thats the vibe i got 07:21
masak well, try to pick up the right vibe next time. :)
lue packs up all the bad vibes and sends them to Microsoft
_sri it's not cool to hate on microsoft anymore 07:22
lue s/Microsoft/Microsoft®/
_sri these days it's apple
cxreg hates both just to be sure
lue notices that the CEO's of both Microsoft® and Apple®™ have the first name of 'Steve' 07:23
_sri that poor ballmer dude has not made a single good decision in like a decade 07:25
sorear I don't hate on anybody.
I'm a very happy person nowadays. 07:26
masak same here.
07:26 skids left
lue
.oO(All this talk of marketing and such has given me the urge to patent something ridiculous, like patents, or the color white)
07:27
07:28 skids joined
sorear I think both of those are already patented. 07:28
I know UPS has been granted a trademark on the color brown.
lue I know there's a patent for the hyperlink :) 07:29
diakopter 07:31
sorear
masak
the people over at news.ycombinator.com/item?id=1508071 think that the difference between 'while EXPR' and 'repeat while EXPR' is a bit subtle. I agree, but I also expect of any non-crappy programmer to notice such a difference. 07:33
especially since the difference is situated right at the left end of the line, where all the important information is supposed to be located.
sorear it's no more subtle than the difference between $x + $y and $x - $y 07:35
masak ooh. I'll write that :) sorear++
lue rakudo: my $a; say $a.WHO ~~ $a.WHAT # just wondering
p6eval rakudo 94d01f: OUTPUT«0␤» 07:36
07:36 apribadi joined 07:37 sorear sets mode: +oovv mberends colomon ilogger2 buubot, apribadi left
masak time to hop on a train, travel to a small township, and be a teacher for a week. o/ 07:38
07:38 masak left
lue hm, I need to recharge myself. Goodnight o/ 07:38
07:47 tadzik joined 07:49 drbean_ joined 07:50 rv2733 joined
sorear stefan@stefans:~/niecza$ ./niecza -e 'sub square($x) { $x * $x }; say(square(5))' 07:51
25
dalek ecza: 60c9436 | sorear++ | (2 files):
Add signature parsing
ecza: 31c63f2 | sorear++ | (4 files):
Implement signature binder for subs
07:54 plobsing left 08:08 kloeri joined 08:10 arnsholt joined
dalek ecza: eba37ef | sorear++ | setting:
Use named variables in setting after Any available
08:21
08:28 dakkar joined 08:29 cono left 08:30 cono joined 08:33 thebird joined 08:38 arnsholt left
moritz_ I have a patch for Bool, but it works only half-ways: 08:39
./perl6 -e 'say ~True; say True.Str'
1
Bool::True
08:39 arnsholt joined
moritz_ which is kinda... surprising :-) 08:39
mathw yes 08:40
but Bool is weird
in the current impl.
moritz_ aye 08:41
kinda-like-an-enum-but-not-quite
sorear phenny: tell TimToady I found a buglet in STD.pm6; after sub infix:<=>($x,$y) { ... }; $x = $x + 1 is parsed as ($x = $x) + 1 08:45
phenny sorear: I'll pass that on when TimToady is around.
sorear phenny: i.o.w., within the setting standard operator precence is ignored, the sub{} makes STD forget its default precedence rules
phenny: tell TimToady i.o.w., within the setting standard operator precence is ignored, the sub{} makes STD forget its default precedence rules 08:46
phenny sorear: I'll pass that on when TimToady is around.
dalek ecza: b1b78bb | sorear++ | Niecza/Actions.pm:
Implement postfix operators
ecza: d9f32f0 | sorear++ | Niecza/Actions.pm:
Implement prefix operators
ecza: e7d7f2c | sorear++ | Niecza/Actions.pm:
Implement (expr)
ecza: cd88b18 | sorear++ | setting:
Implement ++ and --
sorear ok, I just need control operators and binding and I will have caught up to yapsi 08:49
moritz_ yapsi: my $x := 1; say $x
p6eval yapsi: OUTPUT«Couldn't handle instruction `bind '$x', <constant>`␤»
moritz_ yapsi: my $x = 1; my $y := $x; say $y 08:50
p6eval yapsi: OUTPUT«1␤»
08:53 Intensity left, muixirt joined 08:57 mantovani left 09:01 clintongormley joined
moritz_ phenny: tell masak reminder: today is #phasers, if you don't make it, you can pre-post a report :-) 09:05
phenny moritz_: I'll pass that on when masak is around.
09:09 jackyboy joined, cono left 09:15 cono joined 09:27 jackyboy left 09:28 Ross joined, cono left 09:29 cono joined 09:31 timbunce joined 09:34 mantovani joined 09:36 pmurias joined 09:40 dju left 09:41 tadzik left
moritz_ rakudo: say ?(all("a" => 1, "b" => 2) ~~ Pair) 09:42
p6eval rakudo 94d01f: OUTPUT«0␤»
moritz_ it always surprises me that type checks don't autothread
09:43 kfo_ joined
bbkr good localtime() 09:43
09:44 Mowah joined 09:46 kfo left
arnsholt Is there some kind of approval of modules for Rakudo *, or should I just put my module on the list? =) 09:49
moritz_ arnsholt: if you think it could be useful for people, add it to the list 09:50
bbkr what is the name of the library that iss required to enable icu?
arnsholt On Debian-likes you need icu and icu-dev (IIRC) 09:51
Lemme check
libicu-dev
bbkr ok, thanks. exactly: libicu-dev 09:52
arnsholt There. Added Algorithm::Viterbi to the Rakudo * list
moritz_ btw that's also mentioned in the README
aptitude install build-essential libicu-dev subversion
09:54 tadzik joined 09:57 PenThrive left
sorear starts on a C replacement for App::Persistant with a few extra frills for p6eval mildew and niecza 10:00
10:02 dju joined 10:04 Mowah left
moritz_ rakudo: multi a([]?) { say "there" }; a() 10:06
p6eval rakudo 94d01f: OUTPUT«there␤» 10:07
10:07 Guest88700 left, Guest88700 joined, Guest88700 is now known as pragma_ 10:13 ruoso left, Mowah joined
pmurias sorear: you want to reimplement the client in C? 10:14
sorear: or the server part? 10:15
sorear pmurias: with a little bit of redesigning
moritz_ mildew: say 1 + 2
p6eval mildew: OUTPUT«Could not find variable &infix:+ in the lexical scope.␤»
10:15 dju left
sorear moritz_: would it be useful for me to experiment with setting up niecza on a feather? 10:25
pmurias sorear: why not make it compatible with the orginal? 10:28
sorear: does App::Persistent have any obvious flaws? 10:29
sorear other than the complete lack of security, no 10:31
but I have a bad feeling about the protocol 10:32
pmurias what's wrong with the protocol?
sorear: setting the file permissions on the socket should provide enough security? 10:33
sorear no
unix-domain sockets ignore all filesystem access bits 10:34
pmurias wrap it in a directory?
sorear as for the protocol... it's too tightly coupled to the design of the client, imo
pmurias two different clients exists for App::Persistent 10:35
that reminds me that i should fix the way the one i wrote finds the socket 10:36
sorear: how is your protocol different? 10:39
sorear In the Linux implementation, sockets which are visible in the file sys‐
tem honor the permissions of the directory they are in. Their owner,
group and their permissions can be changed. Creation of a new socket
will fail if the process does not have write and search (execute) per‐
mission on the directory the socket is created in. Connecting to the
socket object requires read/write permission. This behavior differs
from many BSD-derived systems which ignore permissions for Unix sock‐
ets. Portable programs should not rely on this feature for security.
irssi-- failing to autowrap if and only if I expect it to
pmurias sorear: where's the quote from? 10:40
sorear unix(7)
pmurias did any one verify that? 10:41
sorear oh, the most important reason not to like the protocol: it's undocumented 10:42
pmurias you could fix that easily
sorear no
you could
but I don't understand every single quirk of the protocol yet
baest FreeBSD seem only to require write permission for the socket(file)
sorear because the protocol definiton is split between a multi-module program 10:43
pmurias sorear: you have seen bin/pclient.pl?
sorear I assume it's a buggy WIP 10:44
it's far too short to be complete
10:45 Mowah left
sorear also, I was trying to generalize 10:48
provide a low level discovery + autostart + authentication + communication system
and a forking + stdio thing on top of that
so I could reuse the lower level for other kinds of persistant programs besides short-lived ones 10:49
10:49 Mowah joined 10:53 dual left 10:55 skids left
pmurias sorear: re bin/pclient.pl i think the only omission is that it doesn't send and EndOfFile message and the significant bug is that it has a hard-wired socket path 11:00
11:00 dual joined
pmurias sorear: and how do you plan to achive security in you plan? 11:00
11:02 Ross left, Ross joined
sorear create a mode 0600 file with 64 bytes from /dev/urandom 11:06
server generates it and stores the token
clients must correctly send the token
(this procedure stolen directly from X11)
pmurias X11 had a few security holes with it's authentication mechanisms 11:07
sorear yes 11:08
so, they got rid of their old auth mechanism and replaced it with the one I just described 11:09
the old mechanism was based on a hosts access list
among other things, because localhost was always trusted, local users could exploit it
frettled sorear: ¿ jani.at.ifi.uio.no/other/X-minimal-security.txt ? 11:11
sorear frettled: yes 11:13
I'm cloning xauth, basically 11:14
except it can be much simpler because ssh has been invented
frettled I should have updated that document years ago, when OpenSSH arrived with its fancy-schmancy -X option, and then later with its -Y option. :)
sorear so I don't need to support having >1 tokens
frettled mm
sorear: BTW, irssi's autowrap failed because what you pasted was from a multi-line source. Normally, irssi ought to warn you about pasting that long stuff and ask that you press ctrl+k to continue, or abort. 11:16
11:17 Ross left
sorear frettled: it does, but the warnings are wildly inaccurate when autowrap is being used, so I ignore the line counts 11:18
usually I paste 8 lines and irssi sends 2 lines to the server
frettled sorear: I haven't managed to confuse irssi yet, but then again, for long pastes, I usually use nopaste-websites. And it's been a while since I used 0.8.12. 11:24
But back to something more on-topic:
why do you need to store the result from urandom in a file? 11:25
moritz_ #perl6 - the place where even off-topic discussions are interesting :-)
sorear: sorry, was gone for lunch... p6eval doesn't run on feather, so it doesn't matter to me where you experiment 11:26
sorear: as long as the result is a set of instructions that I can follow :-)
sorear frettled: so the client can find it. c.f. .Xauthority
moritz_ why does it feel you're re-inventing a wheel? :-) 11:27
11:27 Lorn joined
frettled There's something buzzing in my head that says there should be some sort of cryptography involved here. Hmm. :) 11:30
11:31 Ross joined
dalek ecza: e821de7 | sorear++ | Niecza/Actions.pm:
Implement bare blocks
11:31
ecza: 7241a06 | sorear++ | (2 files):
Implement if-statements
ecza: 7a830e4 | sorear++ | (2 files):
Implement while and until loops
ecza: 91580e7 | sorear++ | setting:
Use a p6 conditional in Bool.Str
moritz_ btw Bool.Str and Bool.perl return the same result 11:33
11:36 Ross left
frettled rakudo: my Bool $a = False; $a.perl.say; $a.Str.say; 11:39
p6eval rakudo 94d01f: OUTPUT«Bool::False␤Bool()<0x601c200>␤» 11:40
frettled moritz_: Did you mean something else?
dalek kudo: ae4538a | moritz++ | src/core/Bool.pm:
Bool.Str
moritz_ frettled: now they do. And that's what the spec says 11:41
frettled moritz_: aha
frettled does a git pull locally.
moritz_ I had that patch locally for some hours, but forgot to push 11:42
frettled++
frettled Nono, moritz++, your fix
11:43 Mowah left
moritz_ we can both have karma :-) 11:43
frettled without unnecessary memes, too! :D 11:44
moritz_ LOL?
jnthn plz can haz more memes? kthnxbai 11:45
moritz_ ./pls install memez
frettled /o\
moritz_ I'm now spectesting a patch which removes the match-bool.pm cheat 11:46
frettled Apparently, my old Parrot was so old that I had to remove the entire Parrot tree.
Now where can the bird sit while I download?
moritz_ that's what it got wings for.
frettled The risk is that Parrot goes awk. 11:47
moritz_ hey, has anybody implemented awk for parrot?
11:48 Mowah joined
muixirt writes 'awk' on moritz' todo list 11:52
pugssvn r31661 | moritz++ | [t/spec] fudge bool.t for rakudo, add tests for .Str
moritz_ re-schedules it for after perl 6.2.0
12:04 dju joined 12:05 Trashlord joined, envi^home joined 12:08 dju left 12:11 Intensity joined
tadzik rakudo: my @a = <foo bar asd>; @a.kv.kv 12:13
p6eval rakudo 94d01f: ( no output ) 12:14
tadzik rakudo: my @a = <foo bar asd>; @a.kv.kv.say
p6eval rakudo 94d01f: ( no output )
tadzik hrm
===SORRY!=== Cannot resume dead coroutine. here
why so?
moritz_ rakudo bug
tadzik to file? 12:15
moritz_ if you execute the same gather/take twice (before the first one is exhausted), you get that error
doesn't hurt to file it
tadzik there is gather/take here? 12:16
moritz_ seems like, yes
arnsholt Implemented as gather { $i = 0; take $_, $i++ for @arr } I guess 12:17
12:18 hatsefla1s joined, hatsefla1s is now known as hatseflats
tadzik « and » operators are hell mysterious to me. Gosh, I thought Perl 5 was complex and complicated 12:20
12:22 Mowah left
arnsholt tadzik: They're sugar over loops, sort of 12:22
jnthn tadzik: They just mean "take this other operator and do it to everything in the list". They're meta-operators really. If you think of operators as functions, then meta-operators are just higher-order functions.
tadzik like [op]?
moritz_ except when used as quoting construct
jnthn Then they ain't being operators. :P 12:23
moritz_ tadzik: [op] is also a meta operator, yes
also acting on lists
tadzik ah, but unlike [op] they take 2 lists as an arg? 12:24
12:24 skids joined
moritz_ >>+<< takes a list on either side 12:25
>>+>> takes a list on one side, and a scalar on the other
12:27 Mowah joined
tadzik rakudo: (1, 2, 3, 4).list »+» 1 12:27
p6eval rakudo 94d01f: ( no output )
tadzik rakudo: my @a = 1, 2, 3, 4; @a >>+>> 2; @a.perl.say 12:28
p6eval rakudo 94d01f: OUTPUT«[1, 2, 3, 4]␤»
moritz_ it doesn't modify in-place
tadzik oh, does not work locally
yeah, I see now
moritz_ rakudo: my @a = (1, 2, 3, 4) >>+>> 2; @a.perl.say 12:29
p6eval rakudo 94d01f: OUTPUT«[3, 4, 5, 6]␤»
tadzik I get "Could not find sub &infix:<>>+>>>" in REPL
latest monthly release
I guess I have to switch to git
moritz_ good choice :-)
tadzik more fun is fun :) 12:30
bah, I'll have to get parrot from svn
btw, moritz_, how is try.rakudo.org going?
frettled Hrm, I can't get the Unicode versions to work locally, weirdness. 12:31
moritz_ tadzik: ash_ and cygx have done impressive work; now somebody just needs to glue it together
[Coke] tadzik: there is a git mirror of parrot. but then you can't use rakudo's gen-parrot. pick your poison. 12:36
moritz_ rakudo: say <vermin poison toxin>.pick 12:37
p6eval rakudo 94d01f: OUTPUT«poison␤»
12:37 dju joined 12:38 ruoso joined 12:39 timbunce left, timbunce joined 12:41 dju_ joined 12:42 dju left
pmurias ruoso: hi 12:43
ruoso: if the mildew test suit (the p6 tests) takes a long time will we run it on installation? 12:44
moritz_ you can have a default 'test' and an additional 'fulltest' or 'stresstest' target 12:46
ruoso pmurias, I agree with moritz_... it's important to have a minimal set of sanity checking tests 12:48
12:49 SmokeMachine joined 12:52 SmokeMachine left
arnsholt Rakudo recently moved to something like that, no? 12:52
moritz_ well, we've had 'make test' for ages 12:53
but it's new that 'make spectest' doesn't run all the tests known to pass ('make stresstest' does that now)
pmurias ruoso: in which dist will we keep the tests?
moritz_ don't you have one dist which depends on all others? 12:54
pmurias Mildew-Setting-SMOP
moritz_ ie the one that can actually run the compiler?
then keep the tests there
12:54 baest left 12:56 [particle] joined, SmokeMachine joined, Kodi joined
ruoso pmurias, yeah... keep the tests on the dist that provides what's needed for it... the p6 tests are probably going to Mildew-Setting-SMOP, yes 12:58
Kodi Any idea when rt.perl.org/rt3//Public/Bug/Display...l?id=76376 will be merged into master so I can submit my own Temporal patch?
moritz_ rakudo has a 'make release' that copies the tests into the tarball 12:59
Kodi: I'll try to remember reviewing/applying it tonigh 13:00
Kodi moritz_: Cool.
13:02 takadonet left 13:05 Kodi left, agentzh left
[Coke] rakudo: <cheap fast right>.pick(2)>>.say 13:07
p6eval rakudo ae4538: OUTPUT«cheap␤fast␤»
hejki rakudo: <wait work home>.pick(1).say 13:08
p6eval rakudo ae4538: OUTPUT«wait␤»
13:10 IllvilJa left
PerlJam it would be interesting if you could supply pick() with a distribution function or a set of weights so that it could pick items in a non-evenly distributed fashion. 13:11
moritz_ isn't that specced already?
I have something in the back of my mind, with hashes where the values denote the weight
PerlJam Dunno. Just thought of it and didn't remember seeing it before. 13:12
moritz_ btw RT#76376 looks fine, I just can't apply it from $work
jnthn I seem to recall .pick on hashes did something like that too 13:15
moritz_ rakudo: my @a = 0, 0; for ^10 { @a[{0 => 1, a => 5}.pick]++ }; say @a.perl 13:16
PerlJam ah, yes S32-setting-library/Containers.pod:936
p6eval rakudo ae4538: ( no output )
moritz_ PerlJam: you're my hero :-) 13:17
PerlJam: guess what the next weekly challenge will be? :-) 13:18
PerlJam heh :-)
moritz_++
13:18 plainhao joined
pugssvn r31662 | pmurias++ | [mildew] port over signatures 13:23
r31663 | pmurias++ | [mildew-setting-smop] port over Exception
r31664 | pmurias++ | [mildew-setting-smop] copy over the tests from mildew-old
r31665 | pmurias++ | [mildew-setting-smop] ported over Failure and Multi
r31666 | pmurias++ | [mildew-setting-smop] p5 and p6 tests are distinguished
r31667 | pmurias++ | [mildew-setting-smop] hack so that True and False work correctly 13:37
13:41 am0c joined 13:48 FardadJalili joined
moritz_ github.com/moritz/perlgeek.de/blob/...h-pick.txt any feedback before I blog it? 13:51
frettled has a look-see. 13:52
PerlJam line 28: s/implement/implemented/
moritz_ fixes 13:53
13:53 drbean_ is now known as drbean
PerlJam moritz_: looks good 13:53
frettled Yup. 13:54
moritz_ perlgeek.de/blog-en/perl-6/contribu...-pick.html lolihazblogged 13:58
frettled shock horror 13:59
moritz_ :-)
frettled I guess I forgot to mention that the upgraded local Rakudo performed as expected, regarding Bool.Str and Bool.perl.
14:00 tylerni7 left
moritz_ great 14:00
but not regarding ~Bool :(
14:01 tylerni7 joined
ruoso does anyone have a working link for the proposed amelia logo? the blog have its image references broken (at least behind proxies) 14:01
moritz_ ruoso: files.posterous.com/kraih/UeHAH1Jdb...mJbJ2rM%3D for example... does that link for you? 14:03
_sri oh noes, link the good ones 14:04
that one is an example for a failed attempt :S 14:05
moritz_ _sri: then provide a link to a good one :-)
_sri kraih.com/perl-clean-sri.png
FardadJalili moritz_: line 14: s/has method/has a method/ 14:06
PerlJam wonders if you could make a stylized butterfly out of the letters in Perl
moritz_ FardadJalili: thanks, fixing... 14:07
14:07 gbacon joined
pmurias sorear: re App::Persistent security i creates the sockect in a 700 dir 14:07
* socket
14:08 uniejo left 14:13 plobsing joined, SmokeMachine left
ruoso the logo is cute... it's actually a dragonfly.... 14:17
dalek ok: eb4182a | util++ | Makefile:
Changed `perl` into macro to allow command-line override to non-system perl
14:21
14:21 tylercurtis joined 14:38 SmokeMachine joined 14:41 plobsing left 14:44 FardadJalili left 14:49 SmokeMachine left
dalek ok: ce34472 | util++ | Makefile:
Normalize list of chapter files
14:51
14:53 SmokeMachine joined 14:58 FardadJalili joined 15:00 FardadJalili left 15:06 SmokeMachine left
dalek ok: d24ec3e | util++ | README:
Add to README info on TeX for other platforms
15:10
ok: 9c8a264 | util++ | README:
Change Pod::PseudoPod::LaTeX version number in README to match what is actually
15:10 IllvilJa joined, Mowah left 15:11 dolmen__ joined
dolmen__ Looks like the community has a good logo designer: blog.kraih.com/a-logo-for-perl 15:12
frettled dolmen__: oh, those are really nice! 15:17
15:22 Mowah joined 15:26 patspam joined
jnthn files.posterous.com/kraih/UeHAH1Jdb...x5cFdtg%3D # nice 15:27
_sri i consider that one the worst :) 15:28
15:29 muixirt left 15:33 macdaddy joined, macdaddy is now known as Guest72640
tylercurtis doesn't understand why some people seem to absolutely hate Camelia. 15:36
dolmen__ Perl 6 is not being designed by a 4 years old child, while Camelia looks like it is... 15:39
diakopter well 15:40
dalek ok: 85e9e39 | util++ | README:
Add more IRC contact info to README
ok: 7c9eae8 | util++ | README:
Add Inkscape link to README
15:44 rgrau` joined 15:46 Mowah left 15:47 justatheory joined
diakopter this one fixes my complaints: posterous.com/getfile/files.postero...ia-sri.png 15:53
(too much blocky contrast, too much saturation) 15:54
15:55 sdo left
pugssvn r31668 | pmurias++ | [mildew] no adhoc_signatures; 16:02
r31669 | pmurias++ | [mildew] port over the integer multis
pmurias ruoso: regression from mildew are down from 5 to 4 failing tests (plus the 3 tests for the disabled p5 interop) 16:03
ruoso: what i'm considering is taking some time to determin why compiling the CORE is taking so long and restoring App::Persistent support 16:07
16:08 SmokeMachine joined 16:13 eternaleye joined 16:19 am0c left
[Coke] I am sure there are better ways to stump for a new logo than calling larry a four year old. I'm not sure what they are, but there you go. =-) 16:24
16:25 hercynium joined 16:31 justatheory left 16:33 eternaleye left
tadzik rakudo: (3/8).nude # what method is this? 16:34
p6eval rakudo ae4538: ( no output )
16:36 dolmen__ left 16:38 ashleydev joined, TiMBuS left
jnthn tadzik: Returns the numerator and the denominator of the Rat 16:38
rakudo: (3/8).nude.perl.say 16:39
p6eval rakudo ae4538: OUTPUT«(3, 8)␤»
tadzik yep, read the source code
jnthn Nice name... :-)
tadzik It reminded me of some cpan module, "See your data in nude", and I wondered if anything else has this :)
16:42 zostay left, envi^home left 16:43 zostay joined
ruoso pmurias, I'd suggest hunting down the regressions first so we can have a publish-grade package 16:52
pmichaud good morning, #perl6 16:56
jnthn morning, pmichaud
16:56 cdarroch joined, cdarroch left, cdarroch joined
moritz_ hi pmichaud 16:56
I hope you're enjoying your vacations
pmichaud very much so 16:57
beautiful weather and scenery here
16:59 rv2733 left
pugssvn r31670 | moritz++ | [t/spec] s/skip/todo/ a few tests 16:59
moritz_ std: class A { }; A.new(:x<a>, :Parent{:y<b> }) 17:00
p6eval std 31669: OUTPUT«ok 00:01 114m␤»
moritz_ std: class A { }; A.new(:x<a>, Parent{:y<b> })
p6eval std 31669: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Parent' used at line 1␤Check failed␤FAILED 00:01 112m␤»
moritz_ std: class A { }; class Parent; A.new(:x<a>, Parent{:y<b> })
p6eval std 31669: OUTPUT«===SORRY!===␤Too late for semicolon form of class definition at /tmp/O0yAiPC3Kb line 1:␤------> class A { }; class Parent⏏; A.new(:x<a>, Parent{:y<b> })␤ expecting any of:␤ name␤ trait␤Parse failed␤FAILED 00:01 107m␤»
moritz_ std: class A { }; class Parent { }; A.new(:x<a>, Parent{:y<b> }) 17:01
p6eval std 31669: OUTPUT«ok 00:01 112m␤»
moritz_ I know what it does, but what kind of construct is this syntactically?
rakudo: say ~Str.^parents(:tree) 17:02
p6eval rakudo ae4538: OUTPUT«Cool() Any() Mu()␤»
moritz_ rakudo: say Str.^parents(:tree).perl
p6eval rakudo ae4538: OUTPUT«([Cool, [Any, [Mu]]], )␤»
17:03 SmokeMachine left 17:07 SmokeMachine joined 17:11 constant left, cognominal left
bbkr awesome syntax! easiest metaobject access ever :) 17:12
17:13 constant joined, cognominal joined 17:14 constant left
bbkr rakudo: class A is Mu {}; say A.^parents(tree => True).perl 17:14
17:14 constant_ joined
p6eval rakudo ae4538: OUTPUT«([Mu], )␤» 17:14
17:14 dakkar left 17:20 thebird left 17:27 Phar joined 17:30 constant_ is now known as constant 17:32 SmokeMachine left, Phar left 17:33 Phar joined 17:34 tedv joined, SmokeMachine joined, hercynium left 17:36 Phar left 17:37 Phar joined
pugssvn r31671 | pmurias++ | [mildew] [smop] fix bug with wrong handling of unicode literals 17:37
pmichaud jnthn: ping
pmurias ruoso: fixed 1 regression, 3 to go
17:38 takadonet joined 17:39 Ross joined, mberends_ joined
lue goodtime #perl6 o/ 17:40
jnthn pmichaud: pong 17:41
pmichaud jnthn: I'm a bit concerned about the fix for TT #1631 17:42
jnthn Adding the pop_eh?
pmichaud right.
jnthn I don't think a CATCH should catch stuff thrown within it.
pmichaud doing the pop_eh removes the handler.
ingy greetings
jnthn Right, that's what I intended. 17:43
ingy jnthn: I agree
pmichaud perhaps not, but triggering a CATCH shouldn't disable it for all subsequent exceptions, either.
jnthn huh?
It doesn't push_eh it next time around in the block?
pmichaud die "1"; die "2"; CATCH { resume }
jnthn Oh. :S
17:44 cosimo left
jnthn OTOH, I'd take getting basic exceptions and throws from within the block over resumable exceptions, if it's the choice between them. 17:44
(until we work out a way to do both)
pmichaud we have to be able to handle both, though.
maybe just update the ticket to point out that it's not resolved?
jnthn Can do 17:45
pmichaud the lack of a pop_eh was intentional.
jnthn We have spectests running for the fixed case now, so a fix to re-instnate the resumability will get caught by that if it breaks things again.
pmichaud we need a way to throw exceptions such that they skip the current handler. 17:46
(or the current handler otherwise ignores them) 17:47
17:48 SmokeMachine left
jnthn ticket updated with this discussion 17:48
pmichaud thanks.
jnthn It seems that CATCH in general needs work though 17:49
pmichaud well, exceptions in Parrot still need work
jnthn Since at the moment we always mark an exception handled.
There is that :-)
ingy rakudo: class C { has $.h; has $!h }; say C.new.^attributes 17:52
p6eval rakudo ae4538: OUTPUT«===SORRY!===␤Can not re-declare attribute $!h at line 20, near " }; say C."␤»
ingy I think I'll make YAML dump object attributes without the $x 17:53
pmichaud I never could get Allison (or Whiteknight) to recognize that there are three paths out of an exception handler. 17:54
And as such, Parrot's exception handling model is broken for Perl 6 purpose.
*purposes.
ingy pmichaud: did you see gist.github.com/473265 ?
17:54 patspam left
pmichaud although it may be better now with NotFound++'s resume patch. 17:54
haven't looked recently. 17:55
ingy: \o/
17:55 justatheory joined
ingy how do I prep modules for rakudo *? 17:56
pmichaud probably just make them available to proto and/or pls
Tene pmichaud: you could also have Perl6 exception handlers introspect the exception and determine whether it was thrown from within the EH, and rethrow it if so. 17:57
17:57 pyrimidine joined
pmichaud Tene: is there an easy way for "determine whether it was thrown from within the EH?", ooc? 17:57
ingy update proto
Tene pmichaud: get the continuation and walk its contexts, oslt. 17:58
17:58 patspam joined
Tene My initial prototype of that worked in what seemed the obvious way at the time. 17:58
I don't remmebr the details of what that was, though.
afk; meeting
pmichaud yeah, seems like a method on the Exception object to ask its source would work. 17:59
18:00 cj joined
pmichaud At any rate, even with the additional text for TT #1631 I'm uncomfortable with where we sit now, because we're (1) changing a documented behavior without a deprecation cycle, and we're introducing a "fix" that we know we'll have to switch back (again without a deprecation cycle). 18:00
18:00 Ross left 18:01 Ross joined
lue is TT different from the RT ? 18:01
pmichaud TT is Parrot's ticket system
trac.parrot.org
lue ah, ok. 18:03
mberends_ cxreg: ping
18:04 hercynium joined 18:06 SmokeMachine joined
pmichaud moving discussion to #parrot; bottom line is that I'm thinking of reverting r48074. It's wrong to have it there on several layers. 18:06
18:06 SmokeMachine left
lue rakudo: subset Byte where 0..0xFF; my Byte $a; $a = 300; say "$a made it!" 18:09
p6eval rakudo ae4538: ( no output )
lue rakudo: subset Byte of Int where 0..0xFF; my Byte $a; $a = 300; say "$a made it!"
p6eval rakudo ae4538: ( no output ) 18:10
tylercurtis akudo: subset Byte where 0..0xFF; my Byte $a; $a = 255; say "$a made it!"
rakudo: subset Byte of Int where 0..0xFF; my Byte $a; $a = 255; say "$a made it!"
p6eval rakudo ae4538: OUTPUT«255 made it!␤»
18:11 dakkar joined
tylercurtis rakudo: subset Byte where 0..0xFF; my Byte $a; $a = 255; say "$a made it!" 18:11
p6eval rakudo ae4538: OUTPUT«255 made it!␤»
tylercurtis rakudo: subset Byte where 0..0xFF; my Byte $a; $a = 253.4; say "$a made it!"
p6eval rakudo ae4538: OUTPUT«253.4 made it!␤»
18:11 Phar left, SmokeMachine joined
tylercurtis rakudo: subset Byte of Int where 0..0xFF; my Byte $a; $a = 253.4; say "$a made it!" 18:11
p6eval rakudo ae4538: ( no output ) 18:12
tylercurtis lue: I'd recommend subsetting Int.
lue Alright. 18:13
cxreg mberends_: hi there
mberends_: i was just working on my t/ stuff this morning, was on vacation last week 18:14
18:14 Mowah joined
Tene pmichaud: another option *should* be to subclass ExceptionHandler. 18:15
tylercurtis Otherwise, Nums and Rats within the 0..255 range would be considered Bytes, which I don't think you want.
mberends_ cxreg: :-) cool! If you would like to, it would be nice if you were the one to merge the MiniDBD::Pg stuff. It looks nicer in the logs )
cxreg yeah, will do
thanks for the ping
mberends_ :)
PerlJam Hmm.
Tene I don't remember if that worked in my exceptions branch. 18:16
I should work on that again someday.
moritz_ must resist to solve his own challenge
Tene I'm still so burned out... :(
PerlJam tylercurtis' mistype earlier "akudo" is interesting. If I am correct, it means "way of evil" Kind of an odd one character difference from rakudo
moritz_ a fittin one, if you ask me :-) 18:17
tylercurtis PerlJam: I'm sure there are lots of places where a one character difference in Rakudo could be plenty evil.
18:18 SmokeMachine left
lue Rakudadō -> Rakudo -> Akudo # what will be next... 18:19
sbp kudos, hopefully 18:20
moritz_ sbp++
jnthn pmichaud: Being able to re-throw from an exception handler is kinda useful. 18:22
18:22 cosimo joined
jnthn pmichaud: I'm all for putting a proper fix in. 18:22
pmichaud: I just don't see how it'd look, and if we're going to have it broken one way or the other, I'd prefer this way. 18:23
18:23 alester joined 18:24 kensanata joined, PZt left
pmichaud jnthn: I'm not sure I like violating Parrot's deprecation policy (twice) for the sake of Rakudo. I think it sets very bad precedent. 18:25
18:25 Ross left 18:26 SmokeMachine joined
jnthn pmichaud: I considered the patch a bug fix when I put it in. 18:26
pmichaud: I see now it's not 18:27
Go ahead and revert it
I'll stay away from hacking on exceptiony stuff.
pmurias what would a CONTROL {$_.handled = 1} block do? 18:28
ruoso: i'm not sure v6/Mildew-Setting-SMOP/t/p6/basic/control_exception.t is correct 18:29
moritz_ rakudo: say <a b c>.kv.kv.perl 18:32
p6eval rakudo ae4538: ( no output ) 18:33
moritz_ locally gives "Cannot resume dead coroutine."
don't know if that's related to jnthn's patch
jnthn No
Highly unlikely anyway 18:34
Coroutines aren't exception based.
tylercurtis Someone mentioned a gather/take bug with the same result yesterday or a few days ago. Can't remember exactly what it was. Possibly related? 18:36
jnthn Certainly related. 18:37
gather/take is the only place that Rakudo uses co-routines, afaik.
colomon and .kv probably uses gather / take 18:38
jnthn I believe it does
tylercurtis rakudo: (1..10).grep({ $_ % 2 == 0 }) Z (1..10).grep({ $_ % 2 != 0 })
p6eval rakudo ae4538: ( no output )
tylercurtis rakudo: say (1..10).grep({ $_ % 2 == 0 }) Z (1..10).grep({ $_ % 2 != 0 }) 18:40
colomon rakudo: (1..10).grep({ $_ % 2 == 0 }).perl.eval Z (1..10).grep({ $_ % 2 != 0 }).perl.eval
p6eval rakudo ae4538: OUTPUT«1133557799␤»
rakudo ae4538: ( no output )
tylercurtis Nevermind. That's the bug I was thinking of.
ruoso pmurias, /me looking 18:41
18:42 Ross joined
tylercurtis rakudo: say gather { gather { take $_ ** 2 for 1..10; }; take for 1..10 }; 18:43
p6eval rakudo ae4538: OUTPUT«␤»
ruoso pmurias, the only thing that looks possibly wrong to me is the exception class name
rakudo: sub foo { { return "a"; CONTROL { say $_; $_.handled = 1 } }; say "hi" }; foo() 18:44
p6eval rakudo ae4538: OUTPUT«␤»
18:45 ashleydev left
ruoso rakudo: sub foo { { return "a"; CONTROL { say "hi" $_; $_.handled = 1 } }; say "hi" }; foo() 18:46
p6eval rakudo ae4538: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 20␤»
ruoso oops
tylercurtis rakudo: .print for gather { take for 1..10 } Z gather { take $_ ** 2 for 1..10; }
p6eval rakudo ae4538: ( no output )
ruoso rakudo: sub foo { { return "a"; CONTROL { say "hi" ~ $_; $_.handled = 1 } }; say "hi" }; foo()
p6eval rakudo ae4538: OUTPUT«hi␤»
tylercurtis rakudo: .print for gather { take $_ for 1..10 } Z gather { take $_ ** 2 for 1..10; }
p6eval rakudo ae4538: OUTPUT«11243941652563674986498110100»
ruoso rakudo: sub foo { { return "a"; CONTROL { say "inside" ~ $_; $_.handled = 1 } }; say "outside" }; foo() 18:47
p6eval rakudo ae4538: OUTPUT«inside␤»
ruoso rakudo: sub foo { { return "a"; CONTROL { say "inside" ~ $_.WHICH; $_.handled = 1 } }; say "outside" }; foo()
tylercurtis rakudo: .print for (1..10).map({$_}) Z (1..10).map(* ** 2)
p6eval rakudo ae4538: OUTPUT«inside118357872␤» 18:48
rakudo ae4538: OUTPUT«11243941652563674986498110100»
sorear good * #perl6
ruoso rakudo: sub foo { { return "a"; CONTROL { say "inside" ~ $_.WHAT; $_.handled = 1 } }; say "outside" }; foo()
p6eval rakudo ae4538: OUTPUT«insideException()␤»
tylercurtis rakudo: .print for (1..10).grep({$_ % 2}) Z (1..10).grep({$_ ** 2 % 2}) 18:49
p6eval rakudo ae4538: OUTPUT«1133557799»
ruoso I think that's a bug... it should've printed "outside" as well, shouldn't it?
Tene ruoso: that's right.
ruoso submits rakudobug 18:50
pmurias, so the only thing that might be wrong there is the class name... 18:51
but I think that name (ControlExceptionReturn) was kinda informally approved by TimToady
pmurias i'm not that sure .handled will stop the rethrow
colomon tylercurtis: I think this is a quicker way of demonstrating it:
ruoso pmurias, TimToady's yesterday commit makes it clear
pmurias according to the spec there is a implicit die $! at the end of the CONTROL block 18:52
colomon rakudo: say (2, 4 ... 10) Z (1, 3 ... 10)
p6eval rakudo ae4538: OUTPUT«1133557799␤»
pmurias looks at that
ruoso r31645
18:53 supernovus joined
pmurias what's an unsucceful block exit? 18:56
18:56 cdarroch left
mberends_ #phasers in 4 mins? 18:56
pmurias ruoso: so according to r31645 our test is incorrect 18:57
colomon mberends++
pmurias ruoso: leave(Failure) is an unsuccesful block exit 18:58
so UNDO is ran
18:58 rlb3 joined
pmurias and UNDO rethrows our exception despite the fact that it was handled 18:58
jnthn mberends_: ooh, well remembered! 18:59
pmurias is my reasoning correct 19:01
pugssvn r31672 | colomon++ | [t/spec] Add a few more tests for hypers and ", *". 19:02
19:04 cono left 19:05 cono joined
pmurias TimToady: why is a new perl started for parsing a module? 19:06
sorear pmurias: because STD isn't reentrant 19:08
cxreg "cannot resume dead parrot" 19:09
pmurias sorear: what blocks reentrancy? 19:10
the globals are local'ised? 19:11
sorear about fifty globals are used without being properly localized
[Coke] pmichaud: Jealous!\ 19:12
19:14 plainhao left
pmurias sorear: anything besides that, that could be easily solved with about fifty locals 19:16
pmichaud [Coke]: :-)
sorear pmurias: $STD::ALL scares me and I don't have a clue if compiling modules reentrantly would break it 19:17
19:17 allbery_b joined
pmurias sorear: as long as they have different names it shouldn't 19:18
calling eval from eval would break it 19:19
walk& 19:20
19:21 cdarroch joined, cdarroch left, cdarroch joined 19:23 supernovus left 19:24 hercynium left 19:25 rlb3 left, cdarroch left, allbery_b left, allbery_b joined
pmichaud rakudo: say (1..*).list.infinite 19:26
p6eval rakudo ae4538: OUTPUT«Method 'infinite' not found for invocant of class 'List'␤ in main program body at line 20:/tmp/BVvWQEyac7␤»
19:28 Mowah left 19:30 Mowah joined 19:32 SmokeMachine left
pmichaud hugme tweet rakudoperl Rakudo now supports simple forms of := and ::= binding (lue++) 19:34
hugme hugs pmichaud; tweet delivered
dalek ecza: 91d8b99 | sorear++ | (3 files):
Implement postfix method calls
19:37
ecza: d5a737e | sorear++ | setting:
Implement Boolean context; Num is true if nonzero
ecza: acbdf8b | sorear++ | Op.pm:
Control structures put the argument in boolean context
ecza: 02783f9 | sorear++ | setting:
Fix obvious bug in postfoocrement
19:49
ecza: 332b344 | sorear++ | setting:
Implement ~ and ? prefix ops
ecza: 8c7971e | sorear++ | (3 files):
Implement binding
frettled nice!
19:49 cdarroch joined, cdarroch left, cdarroch joined 19:53 SmokeMachine joined 19:59 SmokeMachine left
sorear I believe niecza can now do everything yapsi can, code-wise 20:05
dalek kudo: f0dbe32 | moritz++ | (3 files):
get rid of match-bool cheat
20:06
kudo: b196d2d | moritz++ | src/core/Mu.pm:
A Mu.perl which dumps attributes of custom classes

because it doesn't quite work, and because Rakudo doesn't understand initialization of parent attributes anway.
kudo: 66ca1a7 | moritz++ | docs/ChangeLog:
add some ChangeLog entries
20:06 tadzik left
ingy should make C'Dent be Perl 6 based 20:06
maybe
pmurias sorear: who's your next target? ;)
sorear viv 20:07
moritz_ (me hopes for "rakudo" :-)
ingy hi moritz_
moritz_ hi ingy
ingy moritz_: I fixed ufo,btw
moritz_ \o/
sorear multi sub foo(Array[Int] $x where { (all(@$_) > 0) && (.[0] <= 2 || .[1] ** .[0] + .[2] ** .[0] != .[3] ** .[0]) } { ... }
multi sub foo(Array[Int] $x where { all(@$_) > 0 } { ... } 20:08
# longname collision?
ingy is proto/projects.list YAML on purpose?
I should start writing a simple loader for yaml-pm6 20:09
w/ p6rules 20:10
moritz_ ingy: in the 'pls' branch in proto it's JSON 20:11
easier to parse, and a module for it is already written
ingy moritz_: oh. what is the right one to use? pls or proto?
ah
branch
sorry 20:12
perigrin w28
jnthn sorear: No
moritz_ ingy: if you're adventorous, test 'pls' and report any failings to masak++ 20:13
ingy moritz_: if?!
;) 20:14
moritz_ I meant... more than usual :-)
pmichaud afk for a while # beach time
20:22 pyrimidine left
dalek kudo: 97c91c6 | moritz++ | (2 files):
remove Safe.pm. It was not working anyway, and screwed up innocent programs
20:23
ingy moritz_: what is the purpose of pls? 20:25
20:25 IllvilJa left
moritz_ ingy: a proper module installer. proto was... well, a prototype, evolving far beyond the original goals. It showed. 20:26
ingy but why is pls a branch of proto?
moritz_ dunno, ask masak :-)
maybe hysterical reasons 20:27
ingy you mean raisins?
moritz_ right. Hysterical, dried grapes
ingy moritz_: how do I git the branch 20:29
I forget
*forgit
moritz_ git checkout -b pls origin/pls 20:30
ingy \o/
20:30 SmokeMachine joined 20:33 IllvilJa joined
sorear jnthn: what about $x where { 1} and $x where { 1 }? 20:33
lue afk
20:33 kensanata left
ingy added yaml-pm6 to pls 20:34
20:34 eternaleye joined
jnthn sorear: May be an ambiguous dispatch at runtime 20:35
sorear: We don't know just from the signature. 20:36
sorear: What Perl 6 means by "name" is pretty liberal :-)
sorear: Not to mention that multis with the same signature plus .* is a convenient way to write event handlers. :-) 20:37
sorear How about: Int $x and Int $x
jnthn: yes, I invented that trick, then discovered it was banned by rakudo and the spec
jnthn Uh
I wrote code in Rakudo that uses that trick and it worked.
Rakudo certainly should allow it. 20:38
sorear rakudo: role A { method x(Int $a) { say "A" }; }; role B { method x(Int $a) { say "B" }; }; class C does A does B { }; C.new.x;
jnthn rakudo: class Foo { multi x() { say 1 }; multi x() { say 2 } }; Foo.new.*x
p6eval rakudo ae4538: OUTPUT«===SORRY!===␤Method 'x' collides and a resolution must be provided by the class␤»
rakudo ae4538: ( no output )
sorear rakudo: role A { multi method x(Int $a) { say "A" }; }; role B { multi method x(Int $a) { say "B" }; }; class C does A does B { }; C.new.*x;
p6eval rakudo ae4538: ( no output )
jnthn oh grr
rakudo: class Foo { multi method x() { say 1 }; multi method x() { say 2 } }; Foo.new.*x 20:39
p6eval rakudo ae4538: OUTPUT«1␤2␤»
jnthn sorear: checking that locally
> role A { multi method x(Int $a) { "A".say }; }; role B { multi method x(Int $a 20:40
) { "B".say }; }; class C does A does B { }; C.new.*x(1);
A
B
(note, say in role bug)
(and it needs a parameter, otherwise it finds no candidates) 20:41
sorear It definitely didn't work when I tried it three months ago.
:)
progress++
jnthn Oh, I can believe that. :-)
jnthn afk for a bit 20:42
20:43 mberends_ left 20:45 ashleydev joined
moritz_ has anybody tested blizkost recently? 20:46
20:50 christine left 20:55 supernovus joined, SmokeMachine left
supernovus How long does it generally take for an e-mailed reply to RT to show up? 20:57
[particle] that depends on how much spam perl.org's mail servers are handling
20:57 dju joined
[particle] and whether or not you're whitelisted or moderated 20:57
supernovus Ah. Well, I probably should have used the web interface. 20:58
20:58 dju_ left
moritz_ supernovus: nevermind, I applied the patch myself now 20:58
20:58 Guest72640 left
supernovus moritz_: Oh... I went and rebased it :-) 20:58
dalek kudo: 615dfc9 | (Timothy Totten)++ | (6 files):
Temporal/Date modifications and refactoring.

Added DateTime::strftime to Makefile.in Changed time-zone to timezone as per spec. Changed DateTime.parse() to DateTime.new() as per spec. Temporal => DateTime, and simplified changes. Signed-Off-By: Moritz Lenz [email@hidden.address]
20:59
kudo: 6ab7415 | moritz++ | build/Makefile.in:
build everything before we start testing

a 'make' or 'make install' builds modules.
moritz_ supernovus: sorry for having caused additional work
supernovus How does git handle renames? If Kodi's work has been done on Temporal.pm but now the file is called DateTime.pm will git move his changes over to the new filename? I haven't done that in git yet, I know bzr works that way, so I'm assuming git will too. 21:00
moritz_ supernovus: git generally has no problem with merging such changes - only applying patches with such changes cause problems
21:01 timbunce left
moritz_ supernovus++ 21:01
supernovus Ah, damn. I hope Kodi is able to merge his changes easily since my changes were applied as a patch.
21:01 cognominal left
moritz_ supernovus: you should add yourself to CREDITS in your next patch 21:01
that's not a problem 21:02
21:02 dju left
moritz_ only if he tries to apply *his* changes as a patch he has a problem 21:02
so he needs to merge or rebase before submitting it to rt
21:02 cognominal joined, timbunce joined
moritz_ -> sleep 21:03
supernovus Have a good night moritz_
21:03 rgrau` left 21:06 dju joined 21:08 xabbu42 joined 21:10 christine joined, whiteknight joined
tylercurtis jnthn: was the notice you and pmichaud were discussing earlier that NQP's/P6object's implementation will change and that the API might a deprecation notice in Parrot's 2.6 release? 21:12
21:13 gbacon left, SmokeMachine joined 21:14 patspam left 21:25 clintongormley left 21:27 silug left, ruoso left 21:28 masak joined
masak ahoy! 21:28
phenny masak: 09:05Z <moritz_> tell masak reminder: today is #phasers, if you don't make it, you can pre-post a report :-)
supernovus Loving the new REPL with lexical variables!
21:28 sftp left
jnthn masak: ahoj! 21:28
masak moritz_: thanks for the reminder. unfortunately, the whole day has been too disconnected for me to heed your advice. :/ 21:29
best I can do is post-post.
jnthn tylercurtis: Yes, since PCT is in Parrot repo
tylercurtis: fwiw, I don't expect it will that much hit people who are "just" using PCT.
masak also, I do write progress blog posts for my GSoC work, and I hope people turn to these when they want to know the latest progress.
jnthn If at all.
masak backlogs #phasers 21:30
jnthn: getting pls to work on Windows sounds nice.
21:32 skids left
jnthn masak: pls can haz? 21:34
Oh wait, I volunteered...
tylercurtis jnthn: I brought it up at #ps, allison thinks that it could work without a deprecation notice in 2.6. "right, but if they miss the deprecation notice in 2.6, that just means we leave the existing P6object in place, and they develop the new one with a different name" 21:35
masak jnthn: we'll make it happen somehow.
tylercurtis jnthn: Would that work?
jnthn tylercurtis: The issue would more be that PCT currently uses P6object to provide its underlying object model, and would switch to using The New Thing. 21:37
tylercurtis: I will do what is reasonable to make that painless. At present, I expect the impact to be relatively low to most users, especially since most people write stuff in nqp-rx. 21:38
tylercurtis: It'll mostly hit people who use p6object explicitly in conjunction with their use of PCT.
tylercurtis: So the deprecatin notice I was thinking of was more along those lines - that PCT could be sat atop a new meta-model implementation with a slightly different API (but not entirely different). 21:41
tylercurtis: I'll do my best to judge the balance between progress and not causing pain, anyways. :-)
tylercurtis jnthn: I'll bring that concern up once the discussion about Lorito dies down. :)
21:41 pmurias left
masak ingy: re github.com/masak/ufo/commit/fed8133...565e91f3bf -- I'm not yet convinced $cwd/t should be added to PERL6LIB. do convince me, please. 21:43
sorear Hello masak! 21:45
masak hi, sorear!
21:46 Ross left, sftp joined
jnthn tylercurtis: I can drop into #ps at some point if that'd be helpful. :-) 21:46
tylercurtis jnthn: now would be the time. We're close to wrapping up. 21:47
jnthn tylercurtis: I'm there now if folks have questions :-) 21:48
21:50 SmokeMachine left
sorear masak: got a few more things working in niecza. I think I'm up to yapsi 2010.07 level now 21:51
masak sorear: I've been keeping half an eye on you. I think you are, too.
scary :)
sorear: in my mind, we never reached a resolution in our discussion about 'state' variables. in short, you never explained how your implementation of them would be able to do this: rt.perl.org/rt3/Ticket/Display.html?id=62184 21:56
21:58 dakkar left 22:01 cdarroch left
sorear easy; my implementation of Sub doesn't have a .clone method 22:09
masak wow, that *was* easy. I see no flaws with that at all. :P 22:10
sorear closure cloning is not the same as Mu.clone
closure cloning requires a frame to clone into
I have .closure-clone(callframe)
masak is there a difference between a frame and a lexpad?
sorear a frame has-a lexpad 22:11
masak I suspected as much.
sorear a lexpad just holds the variables
masak what more does a frame has-a? :)
sorear a frame has a lexpad, but it also has a raw argument capture, an .outer, a .caller, some runtime foo to support CATCH/CONTROL 22:12
in rakudoland a true frame is a CallContext PMC
(Callframe is a P6object wrapper)
masak hm, so the frame has the .outer, not the lexpad? 22:13
sorear yes
masak could the lexpad have it, and it'd still work? 22:14
sorear Maybe 22:15
jnthn fwiw, Rakudo (well, Parrot) has it as frame has-a lexpad and the outer pointer is between frames, fwiw.
oh, sorear++ just said so :-)
sorear Perl 6 gives a lot of leeway with how you actually implement this stuff
since you have to use methods to access it
You just have to be able to present the illusion of callframe.my working as specced 22:16
i.e. just returning the variables from the pad
I need to talk with TimToady about $CALLER:: and inlining, though 22:17
(note that $CALLER::x = callframe.caller.my.<$x>, not callframe.my.<$CALLER::x>) 22:18
22:22 timbunce left 22:27 timbunce joined
masak sorear: fwiw, I plan to do subs as soon as I have the new runtime integrated. I want to add enough infrastructure so that fibonacci be possible. 22:29
sorear what kind of infrastructure are you talking about? 22:42
supernovus rakudo: use DateTime::strftime; say strftime('%A',DateTime.now) 22:43
p6eval rakudo 97c91c: OUTPUT«Tuesday␤»
sorear > my $a = 0; my $b = 1; my $c = 0; while $c < 1000 { say $a; my $d = $a; $a = $b; $b = $b + $d; $c++ } 22:44
22:44 gbacon joined 22:46 timbunce left
sorear removing the say and increasing to 100k fibs generated, niecza takes 27s 22:49
masak nice.
sorear: re needed infrastructure: first, making 'sub fib' register as a &fib, variable. then, I'd need enough of positional signatures to make 'sub fib($n)' work. then, I'd need return values.
oh, and minor things, like infix:<< < >> and infix:<+>. 22:50
sorear oh, going to do it loopily? 22:51
or recursive
masak recursive.
ooh, loopily'd almost work already :) 22:52
22:53 skids joined
masak *lol* 'Room "Never let others name your rooms!"' -- conferences.yapceurope.org/ye2010/schedule 22:53
jnthn omg the shcedule 22:54
this is where I find I have a slot first thing in the morning
sorear sounds like something you would do masak
22:54 wallberg joined
jnthn ooh...the talks start at 10!! 22:55
Somebody was sensible.
masak :)
masak has one on Wed and one on Fri 22:56
jnthn masak: whoa, we're scheduled against each other!
That's...curious.
masak jnthn: this had to happen sooner or later... :P
22:57 wallberg left
jnthn Aww. I'll have to see the Prince of Parsia another time. :-) 22:57
masak jnthn: no towel for you! :) 22:58
jnthn :'(
22:58 wallberg joined
masak perl6.org triggers as gambling? wtf? blogs.perl.org/users/chisel/2010/07...bling.html 22:59
TimToady I think someone can't tell the difference between perl6 and pick6 23:01
phenny TimToady: 08:45Z <sorear> tell TimToady I found a buglet in STD.pm6; after sub infix:<=>($x,$y) { ... }; $x = $x + 1 is parsed as ($x = $x) + 1
TimToady: 08:46Z <sorear> tell TimToady i.o.w., within the setting standard operator precence is ignored, the sub{} makes STD forget its default precedence rules
jnthn Damm, I knew we shouldn't have use the slogan "Roll up and take a chance on Perl 6!"
TimToady someone searched for perl6 and found pmichaud's card picker, I suppose :)
masak *lol* 23:02
tylercurtis masak: looking at the list of attendees for jnthn's talk, conferences.yapceurope.org/ye2010/talk/2729 , I think you're lying about not having found something that can bend time. 23:04
arnsholt masak: How usable is your Buf stuff for other people?
takadonet hey everyone 23:05
masak tylercurtis: overlap? oy vey.
arnsholt: please be more specific.
arnsholt I was thinking of writing a Base64 decoder
sorear takadonet: hello! 23:06
takadonet sorear: how are u sir?
23:06 sorear sets mode: +oo masak tylercurtis
arnsholt Which requires buffers rather than strings, at least in the general case 23:06
sorear takadonet: good
masak arnsholt: that should work.
sorear it's far too hot
masak arnsholt: let me know if it doesn't.
or if there's something in general that can be improved.
arnsholt Excellent. I'll keep you informed
masak awesome. 23:07
sorear std: 1, 23:16
p6eval std 31672: OUTPUT«ok 00:01 112m␤»
23:18 wallberg left 23:19 ive joined, ive left
sorear std: 1,,,3 23:23
p6eval std 31672: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix , instead at /tmp/8f4RL4hy5M line 1:␤------> 1,⏏,,3␤Parse failed␤FAILED 00:01 109m␤»
masak zzz & 23:25
23:25 masak left, takadonet left 23:29 Mowah left 23:34 silug joined
TimToady sorear: re precedence, we need to move all the <O()> terms up into the protos in CORE eventually, but 23:34
STD doesn't yet have a way of sending parsing rules onward from CORE.setting
eventually most of those operators in STD reduce to <sym> and drop out of the standard grammar entirely, existing only as declarations in CORE 23:36
yes, $CALLER::x is misleading; I almost always write it CALLER::<$x> these days anyway 23:37
and as with any dynamic var, you can't really know the type of it in advance 23:39
23:39 f00li5h left 23:40 f00li5h joined
ingy greetings 23:40
23:40 f00li5h left
sorear How do magic initializers parse? state $x = 5 means state $x; START { $x = 5 }; but state $x + 5 means state $x; $x + 5 23:40
TimToady o/
sorear same for has initializers
and I have no clue about :=, .=, etc
hello ingy
TimToady yes, basically certain assignish ops (which the spec does not yet nail down) recognize that their left side is a declarator and rewrite the assignment to happen at a different phase 23:42
23:42 f00li5h joined, supernovus left
TimToady I think :=, ::=, and .= certainly want to be in that category, and maybe just all assignops to make it simple 23:43
23:43 takadonet joined
TimToady one can always write (state $x) += 32 to force it the other way 23:43
23:44 f00li5h left, f00li5h joined
TimToady alternately .= is the only assignop that really makes sense there 23:44
can argue it both ways 23:45
(and := and ::=, of course)
I still fall into the old C-ish usage of "assignops" to mean things like +=
but I should say meta in there somewhere 23:46
sorear (state $x) is not a declarator?
TimToady sure it is, but not parenthesized
sorear ah
TimToady parens on lvalues have always been a bit mystical in Perl 23:47
sorear what about has... slots don't even exist at class body run time, so what does 'has $x' return as a term?
TimToady $x = vs ($x) =\
sorear or is it an error to use has in non-void non-assigny context? 23:48
TimToady probably just an error, or erroneous
or Nil, or sump'n
sorear what's the difference?
TimToady erroneous is an old Ada spec term meaning "it's wrong, but the compiler is not obligated to tell you" 23:49
seems detectable though
sorear ah
as a C woopersnapper I call that "undefined behavior" 23:50
TimToady it's possible that pugs is doing an idea that we had once, where the "class" object remember default values in its slots
erroneous puts a bit more blame on the user :)
23:51 f00li5h left
TimToady but these days it seems better if the undefined type object just blows up on attr access 23:51
esp since default values are not guaranteed to be meaningful till BUILD time 23:52
that is, can depend on info that is not available till then
ingy rakudo: say "aaa".match(/a/)
TimToady like, er, self :)
p6eval rakudo 6ab741: OUTPUT«a␤»
23:52 f00li5h joined
ingy rakudo: say "aaa".match(/<alpha>/) 23:52
p6eval rakudo 6ab741: OUTPUT«a␤»
ingy rakudo: say "öaa".match(/<alpha>/) 23:53
TimToady so yeah, pugs is basically wrong there, even if it was right once :)
p6eval rakudo 6ab741: OUTPUT«ö␤»
ingy rakudo: say "茶aa".match(/<alpha>/)
sorear TimToady: so within a class body, self is the type object?
p6eval rakudo 6ab741: OUTPUT«茶␤»
TimToady no, only within methods
rakudo: class A { self } 23:54
p6eval rakudo 6ab741: OUTPUT«===SORRY!===␤Symbol 'self' not predeclared in <anonymous> (/tmp/XZ3q6HMUzw:20)␤»
ingy is there a named subrule for [a-zA-Z] ?
sorear No
Well, sorta
TimToady that would be, like, culturally imperialistic
sorear rakudo: say 'A' ~~ /<alpha>/
p6eval rakudo 6ab741: OUTPUT«A␤»
sorear rakudo: say '楽' ~~ /<alpha>/ 23:55
p6eval rakudo 6ab741: OUTPUT«楽␤»
ingy ETOOUNICODEAWARE
TimToady: it's culturally acmeistic :\
23:56 Psyche^ joined
TimToady so write <[a..z A..Z]> if you want to embrace the cause of englishonlyisticicism 23:56
ingy If I want to use the same grammar in over a dozen programming languages, I can't be all highfallutin' 23:57
TimToady: yeah I already do that
jnthn Well, you can always re-define <alpha> in your grammar :-)
ingy jnthn: true. I was actually using the predefined ones hoping for a speed op 23:58
is that the case?
jnthn Not sure, off hand.
TimToady that would be highly implementation specific
jnthn is not a grammar engine guru
ingy TimToady: I'm talking to the rakudo guy, not the p6 guy :) 23:59
jnthn ingy: My suspicion is that <alpha> checks a unicode property
TimToady *sniff* *sniff*
ingy jnthn: you are wearing your rakudo hat, right?
jnthn ingy: huh, it's hot and humid in here and you expect me to where a hat?!
ingy TimToady: I'll get around to you :)
TimToady *snuffle*