»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:06 LlamaRider joined 00:13 molaf left
dalek ecza: 36a2589 | sorear++ | / (2 files):
Implement binding to attributes
00:24
ast: f3230f8 | sorear++ | S (2 files):
Fudge S03-operator/binding-attributes.t for niecza
00:25
00:25 molaf joined 00:38 xinming left
ashleydev does perl6doc exist? 00:41
00:57 arlinius left 00:59 arlinius joined 01:21 leprevost joined 01:22 LlamaRider left 01:31 leprevost left 01:40 pmurias left 01:53 tim joined, tim left 01:59 leprevost joined 02:13 benabik joined 02:14 PAAL3RT joined
[Coke] niecza: sub foo ($b, Int $c?); foo(2); 02:21
p6eval niecza v13-224-g36a2589: OUTPUT«===SORRY!===␤␤Malformed block at /tmp/fnlSk3r1kS line 1:␤------> sub foo ($b, Int $c?)⏏; foo(2);␤␤Parse failed␤␤»
[Coke] niecza: sub foo ($b, Int $c?) {}; foo(2);
p6eval niecza v13-224-g36a2589: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/FZRHbwROQm line 1:␤------> sub foo (⏏$b, Int $c?) {}; foo(2);␤ $c is declared but not used at /tmp/FZRHbwROQm line 1:␤------> sub foo ($b, Int ⏏$c?) {}; foo(2…
[Coke] niecza: sub foo ($b, Int $c?) {$b; $c; Nil;}; foo(2); 02:22
p6eval niecza v13-224-g36a2589: ( no output )
02:22 raiph left 02:26 wolfman2000 joined
sorear [Coke]: you can stick #OK on the end of the line to suppress all compiler warnings 02:32
b: class Foo { our $.x }
p6eval b 1b7dd1: ( no output )
02:33 whiteknight left, silug joined
sorear b: class Foo { our $.x; has $y; has $.z; my $!w; has $!v }; say Foo.^attributes 02:33
p6eval b 1b7dd1: OUTPUT«Null PMC access in get_attr_str()␤ in main program body at line 22:/tmp/3dowQbqCM5␤»
sorear b: class Foo { our $.x; has $y; has $.z; my $!w; has $!v }; say Foo.^attributes».namew
p6eval b 1b7dd1: OUTPUT«Null PMC access in get_attr_str()␤ in main program body at line 22:/tmp/a4FiIFPtrg␤»
sorear b: class Foo { our $.x; has $y; has $.z; my $!w; has $!v }; say Foo.^attributes».name
p6eval b 1b7dd1: OUTPUT«Null PMC access in get_attr_str()␤ in main program body at line 22:/tmp/n03e7ImsG4␤»
sorear b: class Foo { our $.x; has $y; has $.z; my $!w; has $!v }; say Foo.^attributes».WHAT
p6eval b 1b7dd1: OUTPUT«Null PMC access in get_attr_str()␤ in main program body at line 22:/tmp/IOCdjH_mGy␤»
sorear b: class Foo { has $!v }; say Foo.^attributes».WHAT 02:34
p6eval b 1b7dd1: OUTPUT«Attribute()␤»
sorear b: class Foo { has $!v }; say Foo.^attributes
p6eval b 1b7dd1: OUTPUT«$!v␤»
sorear Should our $.x produce an introspectable attribute? I am thinking it probably shouldn't.
[Coke] niecza: sub j ($a, Int $b?) {}; sub g($a, Int $b?) { j($a,$b)}; g(3) 02:35
p6eval niecza v13-224-g36a2589: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/45CGBgqN4t line 1:␤------> sub j (⏏$a, Int $b?) {}; sub g($a, Int $b?) { j(␤ $b is declared but not used at /tmp/45CGBgqN4t line 1:␤------> sub j ($a, Int ⏏$b…
cognominal in nom I tried token circumfix:sym<ang> { <?[<]><!pblock> … to recognize <-> as a lambda but pblock panics 02:37
should the method panic be a noop when called from a negative assertion?
as tested by a dynamic var set by the negative assertion? 02:38
anyway, bed overdue. I will read the log
02:42 aber joined
sorear No, it shouldn't. 02:42
Better to use <!before '<->'> '<' ... 02:43
Or wait for proper LTM support to land (qbootstrap branch)
cognominal: for you ^^^
02:44 silug left, abercrombie left
[Coke] sorear: I'm having trouble dispatching the sub splice to the method, due to the optional arguments, default values, etc. 02:44
is there something like "callsame" I could use, that would strip off the array and let me pass the remaining args as is? 02:45
cognominal <!before '<->'> would make <-> not recognized as a string when it should. 02:47
thx sorear.
02:50 silug joined
sorear [Coke]: not really. 02:51
[Coke]: don't all the arguments have default values?
[Coke] no. 03:00
03:01 jaldhar joined 03:13 leprevost left 03:16 leprevost joined
[Coke] ugh. many questionable splice tests. 03:33
dalek ast: e60ee59 | coke++ | S32-array/splice.t:
don't skip anti-spec tests, remove them.
03:34
[Coke] splice spec says it fails if $offset or $size is negative or undefined, but $size is defined as Int $size? 03:35
So, how does that work?
03:37 orafu left 03:38 orafu joined
[Coke] (that is, $size is optional, so the signature allows an undefined value) 03:38
03:41 Patterner left 03:43 Psyche^ joined, Psyche^ is now known as Patterner
sorear I don't know 03:46
it probably shouldn't fail
Perl 5 defines splice such that $size = elems(@list) - $offset 03:47
03:49 colomon joined 04:20 pliu joined
pliu anyone here? 04:21
come on you ppl
benabik pliu: Nobody here but us butterflies. »ö« 04:22
japhb pliu, many people idle and backlog later; if you have a question, just ask. 04:23
04:26 pliu left
colomon got so involved watching The Republic of Doyle he forget to spectest wrangle. 04:29
04:35 bacek left
benabik colomon: I would expect watching an entire country would be time consuming. 04:40
colomon nah, just distracting. 04:41
en.wikipedia.org/wiki/Republic_of_Doyle # tonight was the season 3 premiere, guest starring Russell Crowe and Alan Doyle 04:45
niecza: say +'' 04:48
p6eval niecza v13-224-g36a2589: OUTPUT«0␤»
colomon nom: say +''
p6eval nom 38165a: OUTPUT«0␤»
dalek ast: ac43a25 | (Solomon Foster)++ | S03-operators/basic-types.t:
Fixed broken test, tweaked another to keep Niecza happy.
04:49
ecza: 8d043fe | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/basic-types.t.
colomon I unfudged a nom test in there too, actually -- hope it does actually work. :) 04:51
05:06 Trashlord left 05:18 birdwindupbird joined 05:53 kaleem joined 06:03 thou joined 06:11 am0c^ joined 06:13 koban joined 06:14 sayu joined
sorear seems I just accidentally expected any to be a prefix operator 06:30
06:41 thou left
moritz \o 06:41
sorear o/ 06:42
am0c^ \o/
06:55 wtw joined 07:00 sayu left
dalek ecza: 51764f7 | sorear++ | / (2 files):
Implement my $.foo, etc forms
07:02
ast: e8a2962 | sorear++ | S (2 files):
[S03-operators/binding-attributes,S12-attributes/class] Remove an obviously wrong test and fudge for niecza
07:03 satyavvd joined
dalek ecza: d0ee156 | sorear++ | / (3 files):
Within the body of a named "anon sub", make the name visible. GlitchMr++
07:13
sorear huh. 'anon sub' is not mentioned in any test file 07:15
07:15 xinming joined 07:17 nebuchadnezzar left
sorear perl6: class A { method postcircumfix:<( )>($x) { say $x.WHAT } }; A.(5) 07:17
p6eval rakudo 38165a: OUTPUT«Capture()␤»
..pugs b927740: OUTPUT«*** Must only use named arguments to new() constructor␤ Be sure to use bareword keys.␤ at /tmp/oHHSinpxbn line 1, column 61 - line 2, column 1␤»
..niecza v13-226-g51764f7: OUTPUT«Int()␤»
sorear perl6: class A { method postcircumfix:<( )>($x) { say $x.WHAT } }; A.new.(5) 07:18
p6eval pugs b927740: OUTPUT«*** Cannot cast from VObject (MkObject {objType = (mkType "A"), objAttrs = <Hash:0x7f06b7f9c1c9>, objOpaque = Nothing, objId = MkObjectId {unObjectId = 3}}) to VCode (VCode)␤ at /tmp/dHCRy5YGiU line 1, column 61 - line 2, column 1␤»
..rakudo 38165a: OUTPUT«Capture()␤»
..niecza v13-226-g51764f7: OUTPUT«Int()␤»
sorear phenny: tell jnthn This greatly suprised me, and I would like to discuss the rationale: q[ perl6: class A { method postcircumfix:<( )>($x) { say $x.WHAT } }; A.new.(5) ]
phenny sorear: I'll pass that on when jnthn is around.
07:19 nebuchadnezzar joined
sorear phenny: tell jnthn I've decided that 'my $.foo' is "just" a funny lexical + generated accessors and does not make anything show up in .^attributes or involve the MOP in any way (beyond installing methods). Is this sane? 07:20
phenny sorear: I'll pass that on when jnthn is around.
dalek ecza: 54921c8 | sorear++ | lib/ (2 files):
Prevent choking when trying to serialize a multi-dispatch cache
07:28
07:33 panterax left 07:34 panterax joined 07:39 molaf left 08:15 bacek joined 08:33 mj41 joined 08:40 jupp joined 08:42 drbean joined 08:50 snearch joined 08:53 snearch left, snearch joined 08:54 am0c^ left 08:55 geze joined
geze history 20 08:59
09:08 snearch left 09:09 stefanZ joined
moritz I've just tried to investigate the -p / -n failures in rakudo 09:13
turns out that the code for handling them tries to use Perl6::Compiler::{Signature,Parameter} which have been removed in May last year 09:14
d'oh.
masak huh. 09:16
moritz did -n/-p ever work in nom? 09:17
masak sure.
I used them quite a bit. 09:18
moritz when?
maybe that code got accidentally merged back or so
masak oh wait -- maybe just in b.
strangelyconsistent.org/blog/dash-n-and-dash-p is from late August 2011.
but I'm pretty sure that's b, not nom.
so those classes were removed in May, and then when we switched to nom the -n/-p patch was copied over somehow, and no-one tested it. 09:19
moritz I don't think the -n/-p patch was ever "copied over" 09:21
it looks to me that despite the date of the blog post, the implementation of -n / -p is older than the nom branch
masak ah. 09:22
yes, the implementation happened before the blog post. don't remember quite when.
moritz commit 7fb6341cdd71c3d5f236f4acdef45e9b2083334d
Author: Carl Masak [email@hidden.address]
Date: Mon Mar 7 23:01:13 2011 +0100
added -n and -p options
and yes, that commit appears in the old master lineage as well as in nom 09:23
masak ah. 09:24
ooh, that was probably during the Vught hackathon last spring.
moritz so, how does one build a block with a custom signature around a code AST in nom? :-) 09:25
masak beats me.
maybe look at the Signature.pm class for ideas? 09:26
moritz nom: sub f(:$x, :x(:$y)) { } 09:27
p6eval nom 38165a: OUTPUT«===SORRY!===␤Method 'CURSOR' not found for invocant of class 'ResizablePMCArray'␤»
moritz excuse me? 09:28
09:29 mj41 left
moritz ah, create_signature_object wants $/ as the first argument, and some code calls with $<signature> 09:30
and if that's quantified... BOOOM
geze * 09:31
09:31 geze left 09:32 daxim joined
masak moritz: yes, we can definitely get better at failing softly on that level. 09:32
moritz found the place
09:33 mj41 joined 09:35 satyavvd left
dalek kudo/nom: f365ad3 | moritz++ | src/Perl6/Actions.pm:
pass a Match object to create_signature_object, so that we can fail correctly

previously, sub f(:$x, :x(:$y)) { } died incorrectly, because it tried to call method CURSOR on an RPA
09:51
masak ./perl6 -e 'sub MAIN(Int $a) { say $a - 5 }' 7 09:55
7
can anyone confirm?
masak submits rakudobug
moritz has to wait for a rakudo build to conform
erm, confirm :-) 09:56
masak :10($a) is a workaround so far.
./perl6 -e 'sub MAIN(Int $a) { say :10($a) - 5 }' 7
2
moritz confirmed. 09:59
I guess it's the mixing in of the current string form that's bothering the multi dispatcher
masak I'm sure it is.
10:01 dakkar joined
masak henceforth, this new Int type with Str mixed in, is dubbed "freaky Int". similar for other double-typed types. 10:01
moritz nom: my roles orig-string[$o] { method Str() { $o.Str }; multi method gist (Mu:D:) { $orig.gist } }; my $a = 7 but orig-string['7']; say $a - 2 10:02
p6eval nom f365ad: OUTPUT«===SORRY!===␤Malformed my at line 1, near "roles orig"␤»
moritz nom: my role orig-string[$o] { method Str() { $o.Str }; multi method gist (Mu:D:) { $orig.gist } }; my $a = 7 but orig-string['7']; say $a - 2
p6eval nom f365ad: OUTPUT«===SORRY!===␤Variable $orig is not predeclared at line 1, near ".gist } };"␤»
moritz nom: my role orig-string[$o] { method Str() { $o.Str }; multi method gist (Mu:D:) { $o.gist } }; my $a = 7 but orig-string['7']; say $a - 2
p6eval nom f365ad: OUTPUT«7␤»
moritz nom: my role orig-string[$o] { method Str() { $o.Str } }; my $a = 7 but orig-string['7']; say $a - 2 10:03
p6eval nom f365ad: OUTPUT«7␤»
moritz nom: my role orig-string[$o] { }; my $a = 7 but orig-string['7']; say $a - 2
p6eval nom f365ad: OUTPUT«5␤»
moritz WTBH does it call a .Str in $a - 2?
nom: my role orig-string[$o] { method Str() { $o.Str } }; my $a = 7 but orig-string['7']; say ($a - 2).WHAT 10:04
p6eval nom f365ad: OUTPUT«Int+{orig-string}()␤»
moritz OMG
bigints are to blame
masak o.O
moritz the bigint operations need to generate a new bigint object
and they try to create one of the right type 10:05
... by chosing the type of one of the arguments
and here it happens to be the type of the first argument
and that turns out to be less clever than we would have hoped :/
the fix is to add an additional parameter for the type object of the result to nearly all bigint ops 10:06
jnthn :/
phenny jnthn: 07:18Z <sorear> tell jnthn This greatly suprised me, and I would like to discuss the rationale: q[ perl6: class A { method postcircumfix:<( )>($x) { say $x.WHAT } }; A.new.(5) ]
jnthn: 07:20Z <sorear> tell jnthn I've decided that 'my $.foo' is "just" a funny lexical + generated accessors and does not make anything show up in .^attributes or involve the MOP in any way (beyond installing methods). Is this sane?
masak adds this to the ticket
moritz the result is a proper 5, it just stringifies to 7
nom: my role orig-string[$o] { method Str() { $o.Str } }; my $a = 7 but orig-string['7']; say nqp::p6box_s(nqp::unbox_i($a - 2)) 10:07
p6eval nom f365ad: OUTPUT«5␤»
jnthn moritz: If somebody sends a subclass in, are we expecting to drop that in the type of the result?
Guess we could...
moritz jnthn: I don't think we are supposed to do any automagic polymorphy in the int ops...
jnthn moritz: Yeah, I hoped we'd get away with this and save a lookup. 10:08
moritz how could we possibly know what to do with A + B where both A and B inherit from Int, if not returning Int?
jnthn moritz: Guess wildly :)
moritz: Anyway, yeah, we probably should be returning an Int. 10:09
moritz jnthn: that's what led to RT #108052 :/ (guessing wildly)
jnthn shoulda guessed somebody would run into this in the space of weeks rather than years. :/
stefanZ hi. just a little question: how can i define a typed variadic parameter? (TYPE *@args) gets parsed by rakudo but cant be called correctly
masak guess who ran into it... :)
moritz 'masak' given 'somebody' :-)
stefanZ rakudo: sub test (Str *@args) { say @args[1] }; test('foo', 'bar');
p6eval rakudo f365ad: OUTPUT«Nominal type check failed for parameter '@args'; expected Positional but got Array instead␤ in sub test at /tmp/v5Wn1Spc0G:1␤ in block <anon> at /tmp/v5Wn1Spc0G:1␤ in <anon> at /tmp/v5Wn1Spc0G:1␤»
moritz the error message is less than awesome, for sure 10:10
jnthn I'm not sure types on slurpy params make sense at all
What if one of the thigns in slurps is an untyped lazy list? And all that
moritz well, we could defer the check to consumption time 10:11
but it would be rather confusing to have the error location the place where the list is used (which could be several subroutines away)
stefanZ but when you want to make sure that all given args have to be of a certain type...?
masak then you don't want a lazy list, it seems.
jnthn Then add a where clause
*@foo where all(@foo) ~~ Str 10:12
masak it could be argued that typing a slurpy arg should mean that, though.
moritz jnthn: doesn't work
jnthn moritz: why?
moritz because type checks don't autothread
I mean, where clauses do work, but not that way
jnthn oh
stefanZ jnthn: hmm looks nice (the where clause)
moritz nom: say all("a", "b") ~~ Str
p6eval nom f365ad: OUTPUT«Bool::False␤»
jnthn nom: say ("a", "b") >>~~>> Str 10:13
p6eval nom f365ad: OUTPUT«True True␤»
jnthn nom: say all(("a", "b") >>~~>> Str)
p6eval nom f365ad: OUTPUT«all(Bool::True, Bool::True)␤»
jnthn That works.
moritz nom: say [&&] ("a", "b") >>~~>> Str
p6eval nom f365ad: OUTPUT«Bool::True␤»
jnthn And so does that.
Though the all reads nicer.
moritz nom: say [&&] ("a", "b")>>.^isa(Str)
p6eval nom f365ad: OUTPUT«1␤»
moritz nom: say [&&] ("a", 0)>>.^isa(Str)
p6eval nom f365ad: OUTPUT«0␤» 10:14
jnthn Also that.
stefanZ rakudo: sub test (*@args where all(@args) >>~~>> Str) { say @args[1] }; test('foo', 'bar');
p6eval rakudo f365ad: OUTPUT«===SORRY!===␤Malformed block at line 1, near "(*@args wh"␤»
moritz might need a block around the where-clause 10:15
jnthn yeah, probably does because precedence 10:16
bbi15
stefanZ rakudo: sub test (*@args where (all(@args) >>~~>> Str)) { say @args[1] }; test('foo', 'bar'); 10:17
p6eval rakudo f365ad: OUTPUT«bar␤»
stefanZ rakudo: sub test (*@args where (all(@args) >>~~>> Str)) { say @args[1] }; test('foo', 1);
p6eval rakudo f365ad: OUTPUT«Constraint type check failed for parameter '@args'␤ in sub test at /tmp/wNluceGwuI:1␤ in block <anon> at /tmp/wNluceGwuI:1␤ in <anon> at /tmp/wNluceGwuI:1␤»
stefanZ seems to work. THX :D 10:18
moritz stefanZ: though in practice it's often not necessary; you can use most types as strings 10:19
10:20 jupp left
stefanZ moritz: Str was just en example. maybe you need explicitly some other type 10:21
moritz stefanZ: ok
10:23 daxim left
stefanZ moritz: in fact i wanted to compile bioperl6. it uses some definitions of the form (..., *@args of TYPE) rakudo completely rejects this (maybe it worked in an earlier version) and i want to fix this 10:23
moritz b: sub f(@args of Int) { @args.say }; f(2, 3) 10:25
p6eval b 1b7dd1: OUTPUT«Nominal type check failed for parameter '@args'; expected Positional but got Int instead␤ in 'f' at line 22:/tmp/a91u1eCorF␤ in main program body at line 22:/tmp/a91u1eCorF␤»
stefanZ role Bio::Role::Range { our Bio::Role::Range method intersection ( RangeTest :$test = 'ignore', *@ranges of Bio::Role::Range) {}} 10:27
rakudo: role Bio::Role::Range { our Bio::Role::Range method intersection ( RangeTest :$test = 'ignore', *@ranges of Bio::Role::Range) {}}
p6eval rakudo f365ad: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 1, near " :$test = "␤»
stefanZ rakudo: role Bio::Role::Range { our Bio::Role::Range method intersection (*@ranges of Bio::Role::Range) {}} 10:28
p6eval rakudo f365ad: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<of>'. Available candidates are:␤:(Routine:D $target, Mu:U $type)␤:(Mu:U $target, Mu:U $type)␤␤»
stefanZ thats the problem...
masak not sure we do 'of'...
not sure we ever did.
moritz alpha: sub f(@args of Int) { @args.say }; f(2, 3) 10:29
p6eval alpha : OUTPUT«Nominal type check failed for parameter '@args'; expected Positional but got Int instead␤in Main (file src/gen_setting.pm, line 324)␤»
moritz looks like we didn't.
if it works neither in alpha nor b nor nom... I wouldn't know where it ever worked
stefanZ but is this in principle some kind of correct perl6 syntax? 10:30
moritz I think so, yes 10:31
stefanZ hmm ok
jnthn Yeah, I didn't make "of" work yet 10:34
stefanZ is there generally any perl6 impl which supports this yet? 10:35
moritz niecza: sub f(@args of Int) { @args.say }; f(2, 3)
p6eval niecza v13-228-g54921c8: OUTPUT«===SORRY!===␤␤Unhandled trait of at /tmp/jXqPbzSKU_ line 1:␤------> sub f(@args of Int⏏) { @args.say }; f(2, 3)␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) ␤ a…
moritz stefanZ: no.
stefanZ so why does bioperl6 use this? strange... 10:36
o_O
moritz stefanZ: it might have never run
stefanZ :)
jnthn is going to have NativeCall hacking session tomorrow :) 10:37
moritz jnthn: moritz.faui2k3.org/tmp/opts.patch is my attempt to fix -n and -p in nom, but when i run it with -n, it dies with "Could not locate compile-time value for symbol Parameter". Do you see anything obviously wrong with that patch?
jnthn moritz: Without looking I can guess it - you're calling create_parameter or create_signature somewhere, but it's from the TOP or comp_unit action method, after $*ST.pop_lexpad() was called on UNIT. 10:38
moritz: Thus the way to look up Parameter has vanished 10:39
moritz: Basically, ETOOLATE :)
moritz hm.
yes, that's from comp_unit
jnthn knows about this one since tadzik++ ran into it when doing the default DOC INIT phaser 10:40
moritz is there a fix? 10:41
jnthn moritz: See install_doc_phaser 10:42
moritz uhm, that seems to work around it by emitting a runtime call to &pod2text 10:44
jnthn moritz: no, no. Wrong sort of workaround :)
moritz: See where it is called in Grammar.pm :)
moritz jnthn: oh, clever 10:45
jnthn Yeah. Not sure if that trick works here, mind.
moritz well, worth a try
jnthn moritz: It's these two lines that are in your way, fwiw:
$*W.pop_lexpad(); # UNIT
$*W.pop_lexpad(); # UNIT_OUTER
moritz: TBH, I don't think anything will explode terrifyingly if you move those calls to TOP. Heck, I doubt things to horribly wrong if you don't call them at all, but I'd rather do so. 10:47
moritz tries 10:48
10:48 panterax left 10:49 panterax joined 10:50 daxim joined
jnthn gets distracted with $dayjob bits for a while 10:50
10:58 daxim left 11:05 daxim joined 11:08 agentzh joined 11:18 bkolera joined
masak uses ~<<$0 for the first time in code and finds it cute 11:22
moritz is that the same as $0>>.Str ? 11:23
arnsholt What's that do?
jnthn More like $0>>.Stringy 11:24
arnsholt Ah, right. Apply ~ to all elements in $0?
masak right.
arnsholt I've been programming too much AWK. $0 is the whole input record, damnit =p
11:26 Alias joined 11:34 donri joined 11:40 JimmyZ joined 11:44 JimmyZ left 11:47 bluescreen10 joined
masak arnsholt: at least that's slightly less illogical than $0 being $*PROGRAM_NAME :) 12:03
_sri shootout.alioth.debian.org/u64q/whi...astest.php # wonder how rakudo would look in that benchmark 12:07
arnsholt masak: Yeah. AWK is really awesome for the kinds of things it's made for 12:19
12:28 koban left
masak nod. 12:31
12:40 Trashlord joined
mathw awk is one of those awesome special-purpose things that drives you nuts when you realise you're trying to do something it doesn't really handle 12:45
moritz indeed 12:46
masak sounds like Prolog, or regexes :)
moritz or junctions :-)
12:47 spine_ joined 12:50 flairvelocity joined
moritz nqp: my %h; if %h<foo> { say('1') } 12:50
p6eval nqp: ( no output )
flairvelocity hello every one 12:51
moritz hi flairvelocity
flairvelocity is the perl 6 is stable ?
moritz no
flairvelocity ok 12:52
moritz but neither is C, Java or any other living programing language
flairvelocity i need help to install catalyst
masak hello flairvelocity
moritz flairvelocity: then I suggest you try a perl 5 or even catalyst channel
flairvelocity: I guess irc.perl.org has a #catalyst channel
flairvelocity but i cant
plz give me the chanel 12:53
address
masak flairvelocity: #catalyst at the server irc.perl.org
12:53 xinming left
flairvelocity next ? 12:54
www.irc.perl.org/channels.html
i got this page
masak flairvelocity: I see you're using the web client to IRC on freenode. 12:55
flairvelocity: I don't know if irc.perl.org has a similar web client.
flairvelocity ok
masak you might need a real IRC client to get there.
12:55 xinming joined
flairvelocity so what i have to use? 12:55
moritz irssi -c irc.perl.org
and then /join #catalyst
flairvelocity ok 12:56
12:56 Trashlord left
flairvelocity thanks 12:56
is their any web frame work made in perl6 ?
moritz yes, but not as mature as catalyst, mojolicious or dancer 12:57
flairvelocity thats name ?
moritz bailador
flairvelocity i have documented a social web site 12:58
i want to build it in a secure framework
?
masak was that a question? 12:59
yes, you probably do want to build it in a secure framework.
flairvelocity yes
daxim chat.mibbit.com/ can connect to any server
masak daxim++
flussence
.oO( maybe someone half-wrote an ircbot in `ed`? :)
flairvelocity so what i choose
? 13:00
daxim whereever you go, people will recommend their local brand 13:01
moritz I personally like mojolicio.us/ in perl 5. But we can't chose for you. You have to do that yourself.
masak flairvelocity: insufficient data.
daxim you should write out your requirements in detail
moritz ... but in a perl 5 channel :-)
daxim and I mean coherently, in a document, not in chat
masak aye. you'll thank yourself. 13:02
flairvelocity: when you enter a channel asking essentially "what is it that I want?", it's an indication that you need to sit down and figure out what it is you want.
13:03 flairvelocity_ joined
masak flairvelocity_: now there's two of you :) 13:03
13:03 Trashlord joined 13:04 flairvelocity left
flairvelocity_ hello 13:06
sorry
net problem
masak flairvelocity_: did you see my comment at irclog.perlgeek.de/perl6/2012-01-12#i_4973840 ?
flairvelocity_ no 13:07
yes] 13:08
now i check
sorry am littole confuse
*little
dalek kudo/fix-n-p: 879983c | moritz++ | src/Perl6/ (2 files):
first shot at fixing -n and -p options

the code gen still dies, it seems to expect a PAST::Block when it gets a PAST::Stmts, but I fell it is moving in the right direction
13:11
flairvelocity_ hello <mask> 13:12
13:12 xinming left
masak hi. 13:12
(and it's masak)
flairvelocity_ sorry
masak it's ok; you're a little confused ;)
flairvelocity_ so catalyst will be better?
donri flairvelocity_: most web frameworks are created because someone thought that design was a good idea. there'll usually be at least one person who likes any given framework.
masak flairvelocity_: it's not a one-dimensional worse-better scale.
flairvelocity_ ok 13:13
donri it boils down to being up to your own preferences and needs
13:13 bkolera left
flairvelocity_ cause i need surf on mobile tab & pc 13:13
so i need fast loading
moritz in most cases, it's not the web framework that turns out to be the bottleneck, but the database 13:14
donri if you need performance, perl6 might not yet be for you
flairvelocity_ ok 13:15
donri but yes, it's not simply about the framework/language
also caching, ajax trickery etc 13:16
moritz being confused doesn't help making performant web apps either :-)
flairvelocity_ hmm
right
so what u suggestplz 13:17
13:17 kaleem left
moritz flairvelocity_: I suggest you sit down with a piece of paper, get your head clear, and write down what you need 13:17
flairvelocity_: then you look at what various web frameworks offer, and compare that to what you need
flairvelocity_ ok 13:18
thanks
donri your question is sort of like asking "i want to get into music, what genres are good?"
masak donri++
flairvelocity_ ha ha ha
donri i'll gladly tell you exactly what music is awesome, but you might not agree
moritz donri++ indeed 13:19
flairvelocity_ hmm
13:20 xinming joined, skids left, xinming left
flairvelocity_ thanks all 13:20
i should make map my need 13:21
thanks masak
moritz also
thanks donri 13:22
bye all
see u
donri i suggest you simply go with something that you understand and that has good docs
13:23 flairvelocity_ left 13:24 mj41 left 13:26 tokuhirom3 left, xinming joined
dalek kudo/fix-n-p: e0f24b2 | moritz++ | src/Perl6/Actions.pm:
avoid error while compiling -n. Still busted at runtime
13:30
13:32 tokuhirom3 joined, mj41 joined
moritz the problem is now that it doesn't create Perl 6 Code object 13:32
so now I get
Unmarshallable foreign language value passed for parameter '$block' in method map at src/gen/CORE.setting:1063
13:33 xinming left, tokuhirom joined
[Coke] gist.github.com/1476841 - # 01/12/2012 - niecza at 98.32% 13:33
b: say 18590*.99-18279, 18590-18279 # for colomon 13:34
p6eval b 1b7dd1: OUTPUT«125.1311␤»
[Coke] b: say 18590*.99-18279,",",18590-18279 # for colomon
p6eval b 1b7dd1: OUTPUT«125.1,311␤»
jnthn moritz: Maybe use make_topic_block_ref or some such
[Coke] jnthn, moritz: gist.github.com/1476841 shows 47 failures in spectest for rakudo, up from 29 yesterday. 13:35
13:35 xinming joined
jnthn [Coke]: Do you have a list of what they are? 13:36
[Coke]: Also, is there a "tests Niecza passes that Rakudo does not"?
jnthn would be curious to see that
[Coke] jnthn: nope. at this point, I'm just running t/spec/test_summary and grabbing the total lines.
I could pretty easily expand the list to include per-synopsis breakdowns. 13:37
moritz ah, one file seems to be new grammar tests
added by colomon++
so no rakudo regression, just needs fudging
[Coke] feather.perl6.nl/~coke/rakudo_summary.out
moritz t/spec/S14-roles/submethods.t seems to be a genuine new failure 13:38
13:40 xinming left, xinming joined
dalek ast: d740641 | coke++ | test_summary:
Get stats on S24
13:42
jnthn S02-lexical-conventions/unspace.rakudo 13:45
29 skipped: defining new operators
hm, we can define new ops now
[Coke] I haven't done a full unfudge on rakudo in a while. 13:46
(last time I tried, got hung on one of the IO tests.)
I can definitely try to unfudge that one.
moritz won't help
colomon moritz: ack, I'm sorry, I figured Rakudo would probably pass those tests
moritz colomon: I thought so too; but it seems it has problems with regex methods named 'any' :( 13:47
[Coke]: that is one huge block, and if one of the tests fail, the whole block won't be unfudged
13:49 xinming left
moritz std: 1+\ +3 13:49
p6eval std dc62e1d: OUTPUT«ok 00:01 109m␤»
[Coke] moritz: I can unfudge most of it. momentito. 13:53
moritz [Coke]: I'm doing the unfudge by hand now 13:54
[Coke] As am I. :P
moritz :/ 13:55
jnthn The race is on! :P
[Coke] (actually, I converted it to a form that autounfudge CAN fix, and am waiting for it to finish. ;)
13:56 xinming joined
moritz [Coke]: then I'm feeling free to push, because I've actually thought about the reasons why stuff fails, and put it into the fudge messages :-) 13:56
dalek ast: 4423b3e | moritz++ | S02-lexical-conventions/unspace.t:
refudge unspace
13:57
masak is reading www.mat.unb.br/clausahm/area/AnAlg-...dmonds.pdf and liking it very much so far 14:05
maybe we should resurrect the old Pugs tradition of keeping a READTHEM list up-to-date somewhere?
moritz +1 14:07
colomon +1
moritz we can simply continue the one in the Mu repo
14:07 benabik left 14:09 xinming left
masak wfm 14:10
masak starts the new tradition by adding his link
umph! big repo, this Mu. :) 14:12
14:13 molaf joined
moritz has worked hard to reduce the size of the checkout 14:14
14:14 xinming joined 14:16 sayu joined 14:21 mtk joined 14:22 pomysl joined, pomysl left, pomysl joined, phenny joined
flussence argh. trying to track down a bug at $dayjob and I just realised `perl -Mre=debug` needs -DDEBUGGING... which perlbrew doesn't set by default :( 14:23
dalek : b056eef | masak++ | READTHEM:
[READTHEM] s/Pugs/Perl 6/g

Feels appropriate if we're resurrecting it. There are many more Perl 6 hackers around than Pugs hackers.
14:24 sivoais left
dalek : cd62281 | masak++ | READTHEM:
[READTHEM] added three new references

All of them free and online.
14:28
14:28 sivoais joined
PerlJam That "Let's build a compiler" one is what I used to write my very first compiler in 1988 or 1989 14:29
(excpet I used C instead of Pascal)
moritz followed it roughly in perl 14:30
ok, I cheated. I used regexes for the lexer
masak nuaghty naughty :)
PerlJam I didn't know regex then, so no cheating for me!
masak people feel free to give READTHEM more love in various forms. 14:31
14:31 agentzh left
masak I bet it could use a post-golden-age structural refactor, too. 14:31
and I'm sure people have more references to good literature :)
dalek kudo/fix-n-p: 26f0b39 | moritz++ | src/Perl6/Actions.pm:
restore basic -n and -p functionality. jnthn++
14:35
: bd782a3 | duff++ | READTHEM:
link to the full tutorial rather than just part 1
14:36
moritz ok, what's missing now is the "is copy" part
jnthn moritz: context? 14:37
moritz: oh...the -n/-p thing?
moritz jnthn: my last patch to fix-n-p branch
right
jnthn my $param := hash( :variable_name('$_'), :nominal_type($*W.find_symbol(['Mu'])), :is_parcel(1) );
moritz: you need to add a flag so that can do :is_copy(1) rather than :is_parcel(1) 14:38
14:38 Trashlord left
moritz jnthn: seems like, yes 14:39
14:50 PacoAir joined 14:52 PacoAir_ joined, PacoAir left 14:53 PacoAir_ is now known as PacoAir 14:58 kcwu left, kcwu joined 14:59 benabik joined 15:00 sivoais left 15:01 sivoais joined 15:04 xinming_ joined
dalek kudo/fix-n-p: 4f3e5fc | moritz++ | src/Perl6/ (2 files):
try to make the $_ for -n and -p "is copy"

does not seem to work :(
15:05
15:08 xinming left
colomon does anyone have an idea what the packages/Test.pm file in roast is for? It seems to be interfering with use of the "normal" Test.pm in some cases in Niecza... 15:11
15:11 xinming_ left, xinming joined, Alias left
moritz colomon: t/spec/S06-currying/mixed.t seems to use it... 15:12
15:12 Trashlord joined
colomon and S10-packages/scope.t 15:13
moritz colomon: but I have no objections to killing it with fire anyway
colomon why don't I rename it with fire
moritz or that, yes :-)
colomon packages::PackageTest ?
jnthn Because "mv" will also rename it, without risk of burns? ;)
moritz though I'd do the renaming with 'git mv', not fire
benabik alias fire='git mv'
colomon git has a mv? 15:14
I thought it just automatically detected that stuff
moritz colomon: yes :-)
it does both
benabik It doesn't store the move.
moritz you can git mv a b
mv a b
git rm a
git add b
but 'git mv' is a bit shorter :-)
colomon moritz++
okay, I'm on it
15:17 snearch joined
dalek ast: 46de3cf | (Solomon Foster)++ | / (3 files):
Rename packages/Test.pm to packages/PackageTest.pm.
15:17
colomon blast, that doesn't seem to have actually gotten rid of Test.pm. 15:20
moritz git rm packages/Test.pm 15:21
colomon It's gone locally 15:22
moritz did you mv it without git mv?
colomon no, I used git mv
dalek ast: 4595f32 | moritz++ | packages/Test.pm:
RIP packages/Test.pm
colomon moritz=+ 15:23
moritz++
15:26 wtw left 15:32 xinming left 15:35 thou joined 15:37 benabik left 15:38 xinming joined 15:40 GlitchMr joined, pnu left 15:43 pnu joined 15:48 GlitchMr42 joined 15:49 tokuhirom left 15:50 tokuhirom joined 15:51 GlitchMr left 15:54 tokuhirom left 15:57 kaleem joined
[Coke] if I have a signature that is defined as (Int:D $foo), and I want $foo to not only be defined, but also allow a WhateverCode argument, what is the correct signature for that? or do I need a multi? 15:58
also, given a sig of Int:D foo? , how do you know if foo was passed? Is this another case where you need a multi? 16:00
er, Int:D $foo?
PerlJam er, $foo is required there, so I'm not sure what you mean by knowing if it was passed. 16:01
oh
PerlJam is slow
16:02 pomysl left 16:03 pomysl joined, pomysl left, pomysl joined
[Coke] nom: sub foo (Int:D $foo?) {}; foo(); 16:06
p6eval nom f365ad: OUTPUT«Parameter '$foo' requires an instance, but a type object was passed␤ in sub foo at /tmp/eVeJ4TzuX9:1␤ in block <anon> at /tmp/eVeJ4TzuX9:1␤ in <anon> at /tmp/eVeJ4TzuX9:1␤»
PerlJam An error seems good though the message is LTA 16:07
[Coke] nom: splice((1,2,3))
p6eval nom f365ad: OUTPUT«Method 'splice' not found for invocant of class 'Parcel'␤ in sub splice at src/gen/CORE.setting:4945␤ in block <anon> at /tmp/jj8ahqkI6s:1␤ in <anon> at /tmp/jj8ahqkI6s:1␤»
16:07 Trashlord left, GlitchMr42 is now known as GlitchMr
[Coke] nom: @a=1,2,3; splice(@a); say @a; 16:07
p6eval nom f365ad: OUTPUT«===SORRY!===␤Variable @a is not predeclared at line 1, near "=1,2,3; sp"␤»
[Coke] nom: my @a=1,2,3; splice(@a); say @a;
p6eval nom f365ad: OUTPUT«␤»
moritz [Coke]: you need either a separate multi, or a broader type constraint
($foo where Int:D | WhateverCode) 16:08
[Coke] nom: my @a=1,2,3; splice(@a,-2,Any(),<d e f>); say @a;
p6eval nom f365ad: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Any' called (line 1)␤»
[Coke] nom: my @a=1,2,3; splice(@a,-2,,<d e f>); say @a;
p6eval nom f365ad: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix , instead at line 1, near "<d e f>); "␤»
[Coke] nom: my @a=1,2,3; splice(@a,-2,-3,<d e f>); say @a;
p6eval nom f365ad: OUTPUT«1 d e f 1 2 3␤»
[Coke] nom: my @a=1,2,3; splice(@a,*-3,*-3,<d e f>); say @a;
PerlJam If $foo must be declartionally defined, then it can't be optional IMHO without a default value.
p6eval nom f365ad: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are:␤:(\$v, Mu *%_)␤␤ in method Real at src/gen/CORE.setting:654␤ in sub infix:<<> at src/gen/CORE.setting:2248␤ in method splice at src/gen/CORE.setting:4773␤ in sub splice at src/gen/…
[Coke] nom: sub f($foo = 0 where Int:D|WhateverCode) {say $foo;say $foo.WHAT}; foo(*-3); foo(); foo(3) 16:11
p6eval nom f365ad: OUTPUT«===SORRY!===␤Malformed block at line 1, near "($foo = 0 "␤»
[Coke] nom: sub f($foo where Int:D|WhateverCode) {say $foo;say $foo.WHAT}; foo(*-3); foo(3); # foo() 16:12
p6eval nom f365ad: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Int:D' called (line 1)␤Undefined routine '&foo' called (lines 1, 1)␤»
[Coke] moritz: would you expect that to work?
PerlJam std: sub f($foo where Int:D|WhateverCode) { }
p6eval std dc62e1d: OUTPUT«Potential difficulties:␤ $foo is declared but not used at /tmp/zcj7zhtn4N line 1:␤------> sub f(⏏$foo where Int:D|WhateverCode) { }␤ok 00:01 111m␤»
PerlJam std does :) 16:13
std: sub f($foo where Int:D|WhateverCode) {say $foo;say $foo.WHAT};
p6eval std dc62e1d: OUTPUT«ok 00:01 112m␤»
[Coke] std: sub f($foo=0 where Int:D|WhateverCode) {say $foo};
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Default expression must come last at /tmp/o_7i_TueNC line 1:␤------> sub f($foo=0 ⏏where Int:D|WhateverCode) {say $foo};␤Unable to parse signature at /tmp/o_7i_TueNC line 1:␤------> sub f⏏($foo=0 where …
[Coke] std: sub f($foo where Int:D|WhateverCode =0) {say $foo}; 16:14
p6eval std dc62e1d: OUTPUT«ok 00:01 112m␤»
[Coke] huh.
[Coke] needs that for splice. ;)
PerlJam or just use a multi 16:15
masak +1
[Coke] should I put the multis in the spec declaration? 16:16
or should I put the "ideal" version in the spec?
(problem with the multis is that they compound, since we need this for multiple args.) 16:17
16:18 birdwindupbird left
moritz [Coke]: I'd just remove the type constraint in the specs 16:18
[Coke] nom: sub f(Int:D|WhateverCode $foo =0) {say $foo};
p6eval nom f365ad: OUTPUT«===SORRY!===␤Malformed block at line 1, near "(Int:D|Wha"␤»
PerlJam [Coke]: another option is to fix rakudo so that it groks Int:D in a where clause ;)
[Coke] PerlJam: above my pay grade atm. 16:19
moritz: right now, spec sez:
our multi method splice( @array is rw: Int $offset = 0, Int $size?, *@values ) is export
should it say instead:
our multi method splice(@array is rw: $offset, $size? *@values) ? 16:20
moritz yes (but comma after $size?)
[Coke] and then just describe all the various restrictions in text? (seems like it would be better to describe them in signature, in general.
moritz oh, and without the 'our'
[Coke] moritz: whoops, yes.
most of the things in that section have our.
moritz std: sub f(Int|Str $x) { }
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Unable to parse signature at /tmp/z58XLZ6gty line 1:␤------> sub f⏏(Int|Str $x) { }␤Couldn't find final ')'; gave up at /tmp/z58XLZ6gty line 1:␤------> sub f(Int⏏|Str $x) { }␤ expecting any of:␤ … 16:21
moritz [Coke]: and they are all wrong
16:23 sayu left
PerlJam did type-junctions go away in favor of using where clauses? 16:26
[Coke] should we be able to do something like splice(@a,*-3,*-3) to delete the third element from the end? 16:28
(and *-3,* for the last 3?)
(er, modulo offbyone errors in my description) 16:29
PerlJam S32 says both offset and size can be WhateverCode, so that sounds right 16:31
16:33 kaleem left 16:37 LlamaRider joined 16:42 mj41 left 16:43 wolfman2000 left
[Coke] PerlJam: I'm in the middle of rewriting that bit, which is why I asked if it was desired. ;) 16:44
s/rewrite/cleanup/ 16:45
LlamaRider о/ #perl6
masak yo LlamaRider 16:47
LlamaRider i am looking for suggestions how to get rid of a segfault in Rakudo, that randomly appeared after I built the newest git revision 16:49
PerlJam [Coke]: The only one that gives me pause is using a WC for the $size parameter. Given the current spec, I could splice based on position from either end of the array and a number of elements to remove, or a position from either end of the array and a position only relative to the end. That seems a little weird. If I know positions, they're likely to be from the 0 end of the array
[Coke]: (of course, then I could do the subtraction myself, and the WC for $size becomes uselesS) 16:50
[Coke]: so, the conservative thing would be (if you agree with me that it's weird) would be not use a WhateverCode for $size 16:51
16:53 lrnperl6 joined
masak LlamaRider: if it's really random, perhaps the best advice is to stay off that revision. 16:54
LlamaRider masak: but then I need to rewrite all Parcel zen slices I have (which is the reason i upgraded) 16:55
I was trying to find a segfault kernel and ship it over as a bug
maybe I can try again now 16:56
colomon phenny: tell sorear Got rid of the false Test.pm from roast, Test::Util still causing trouble with the proto, I think. I'd appreciate it if you could take a look. (Off to lunch now.)
phenny colomon: I'll pass that on when sorear is around.
jnthn LlamaRider: If you use gdb to get a backtrace, this may (or may not) help find the segfault. 16:57
masak LlamaRider: please do. we don't have much in the way of random segfaults anymore.
jnthn Yeah, especially after the last round of wb fixes I did.
masak decommutes 17:02
17:02 benabik joined, kaleem joined
[Coke] jnthn: wb? 17:03
jnthn welcome back?
OH
write barrier
If you forget them, the GC may prematurely eat objects. 17:04
benabik And eating objects is bad, m'kay? 17:05
jnthn Indeed. They're high in fat and have loads of carbs.
Also, other code doesn't expect objects it has references to to get eaten. :)
benabik Only when they're premature. Gotta let the ripen first.
[Coke] grumbles at jnthn for making him hungry so soon after lunch!
so, the GC is all like, "Hey, you gonna finish that? OMNOMNOMNOM" 17:06
tadzik that reminds me of one of the garfields
jnthn Pretty much
17:07 PacoAir left
jnthn (For those who want a technical explanation rather than a lolspeak one: a generational GC doesn't walk the entire heap looking for objects, it just looks in the nursery generation most times it is called. This means that objects outside of the nursery that come to point to objects within it pose a problem. The write barrier makes sure that such old gen -> nursery pointes get written into a remembered set, so we know not to prematurely swallow the object.) 17:08
17:09 GlitchMr42 joined 17:10 GlitchMr left, GlitchMr42 is now known as GlitchMr, PacoAir joined 17:12 simcop2387 left 17:14 simcop2387 joined 17:15 JimmyZ joined 17:20 mj41 joined 17:21 thou left 17:22 thou joined 17:26 rsimoes joined 17:28 kaleem left
LlamaRider *phew* found what causes the segfault 17:31
constructing a minimal example now
benabik LlamaRider++ 17:33
[Coke] \o/
[Coke] ponders XPath in P6. 17:35
LlamaRider ok, so, I can't make p6eval segfault, since it has some restrictions set 17:41
but this segfaults locally for me:
sub MAIN(Int $n) { my $a=1; say $a.clone for (1..$n); }; MAIN(5000);
if it doesn't for you, just pump up the argument for MAIN and it should. Alternatively, something is messed up on my local config.
17:42 spine_ left
LlamaRider (and it's rakudo, just to be clear) 17:42
17:43 packetknife joined
[Coke] dies here also. 17:43
LlamaRider \o/
great, then success on localizing it :)
benabik malloc: pointer being freed was not allocated.
jnthn And here.
moritz LlamaRider++ # finding bugs 17:44
benabik in mp_clear() in bn_mp_clear.c:32
jnthn benabik: My debugger has it to the same place. 17:45
benabik Of course, that's not the _source_ of the problem, just the symptom. :-/
17:46 alester joined
jnthn Ah, I see what's wrong. 17:47
LlamaRider++
Will fix it this evening.
LlamaRider yey! I will keep my t2 untouched then :-) 17:48
[Coke] jnthn++
LlamaRider if it is of any help, it was introduced somewhere between Dec 27 and several days back 17:49
since everything was working prior to my git pull then
jnthn LlamaRider: I think we were just getting lucky before, actually.
LlamaRider oh. well, best of luck in any case!
benabik GC bugs are often exposed by changes in unrelated sections of code.
jnthn LlamaRider: It's a bug in cloning, and we've had it since probably November-ish. 17:50
But memory corruption bugs are somewhat probabalistic.
LlamaRider yeah, it was very weird to localize 17:51
the less code there was, the bigger of an input parameter it needed to segfault 17:52
benabik LlamaRider: The smaller the code, the less memory pressure.
jnthn LlamaRider: That's quite normal with these kinds of issues.
17:53 kaare_ joined, jakky left
LlamaRider Understood. I'm quite new to hunting segfaults :) 17:53
17:54 jakky joined 18:01 Trashlord joined 18:16 leprevost left, sayu joined 18:18 spine joined 18:19 daxim left, GlitchMr42 joined 18:20 lrnperl6 left 18:22 GlitchMr left, GlitchMr42 left 18:23 Chillance joined, overrosy joined 18:25 dakkar left 18:26 molaf left 18:35 kaleem joined 18:40 kaleem left 18:44 JimmyZ left 18:47 bluescreen10 left, rml joined
TimToady has been hunting segfaults since before they were called that... 18:47
UNIBUS TIMEOUT FATAL TRAP
PROGRAM LOST--SORRY
18:50 jakky left
jnthn At least it yelled SORRY ;) 18:50
TimToady it yelled everything back then...
18:50 jakky joined 18:51 stefanZ left 18:54 bluescreen10 joined
[Coke] .u sorry 18:58
phenny [Coke]: Sorry, no results for 'sorry'.
18:59 sivoais left 19:02 bluescreen100 joined 19:07 mj41 left 19:08 sivoais joined
colomon wonders if Perl 6s should always yell SORRY after error messages... 19:10
19:11 sudokode joined
jnthn We well it before, so it doesn't seem like an afterthought. :) 19:11
masak LlamaRider++ # so happy seeing you report problems with Rakudo 19:14
19:15 sayu left
jnthn Yeah. It sucks when Rakudo doesn't have problems. 19:15
:P
19:15 djanatyn left
jnthn has dinner, then he'll have some time to eliminate a couple more of Rakudo's problems :) 19:16
19:17 djanatyn joined 19:21 GlitchMr joined 19:24 Trashlord left
colomon jnthn: they're not problems, they're opportunities! ;) 19:32
[Coke] colomon: speaking of which, irclog.perlgeek.de/perl6/2012-01-12#i_4973955 ! 19:35
sooo close. ;)
colomon oh, I know, I saw that when you posted it 19:39
If sorear++ can figure out how to get Test::Utils working in niecza, we'll blow right by that number in a matter of hours. 19:40
meanwhile, I'm working on month end / quarter end / year end taxes for $work
spine masak: I dont agrre with the line is run(3), "1-2-3-2\n"; in t5-base-test 19:51
my program generates 1-2-1-3
that's correct too, right?
t5-base-test of the coding contest of course 19:52
masak right. 19:54
feel free to change or ignore the test.
it did not occur to me at the time that that was an alternative representation, but of course it is :) 19:55
dalek ast: 44388f7 | (Solomon Foster)++ | S05-modifier/sigspace.t:
Fudge for niecza.
masak is thrilled that people are working on the tasks
spine masak: ok thanks, so only task 4 left for me :) 19:56
masak should be easy :P
[Coke] crap, I've only done t1 19:57
spine seemed to be the hardest one, but haven't given it much thought yet :)
tadzik crap, I haven't started yet :/
masak oh noes, tadzik!
tadzik I wonder if I'll get some tuits before the exam session ends
which is half of February in the worst case 19:58
and the first week of February in the best case
masak tadzik: I have strong indications that starting is strongly correlated with winning...
contest ends by the end of January.
tadzik oh!
dang
I'll have to allocate time sooner then 19:59
masak one really would expect the contestants to keep track of the only two dates that matter :P
dalek ecza: 50a1d80 | (Solomon Foster)++ | t/spectest.data:
Turn on S05-modifier/sigspace.t.
19:59 _RobiX_ joined
[Coke] masak: I'm waiting for a Chopped style game to take the dates seriously! :P 19:59
tadzik well, the C++ project comes first, sadly 20:00
20:00 Trashlord joined, _RobiX_ left
masak tadzik: well, at least read through the task descriptions before you go to bed or something. :) 20:01
tadzik :) Will do
after I finish my PL/SQL
should have some time for that tomorrow afternoon
masak \o/
tadzik then I'll just go everywhere with my notebook and think
masak excellent.
colomon don't do that! I did it, and I kept on waking up and 4 am and not being able to sleep because I had half-done problem solutions in my head!
masak *lol* 20:02
colomon seriously
20:02 LlamaRider left
masak colomon: that's how I feel the weeks *before* launching p6cc... 20:02
dalek ast: e14fe6a | (Solomon Foster)++ | S12-attributes/recursive.t:
Fix dodgy test. Fudge for niecza.
20:10
ecza: e217a39 | (Solomon Foster)++ | t/spectest.data:
Turn on S12-attributes/recursive.t.
20:13 cognominal left, ggoebel left
dalek ast: 63cff50 | (Solomon Foster)++ | S12-construction/construction.t:
Fudge for niecza.
20:14
ecza: 405ed78 | (Solomon Foster)++ | t/spectest.data:
Turn on S12-construction/construction.t.
20:15
20:18 ggoebel joined 20:19 az5112 joined 20:23 overrosy left 20:24 ggoebel left 20:25 overrosy joined 20:31 slavik joined
dalek ast: 05846cc | (Solomon Foster)++ | integration/99problems-61-to-70.t:
Change Mu to Any throughout, to make the tests work with modern Perl 6.
20:31
20:32 overrosy left
dalek ecza: 96f741a | (Solomon Foster)++ | t/spectest.data:
Turn on integration/99problems-61-to-70.t.
20:32
20:34 overrosy joined
[Coke] yowza. 20:37
masak yowza? 20:38
[Coke] colomon++
dalek ast: a1e656f | (Solomon Foster)++ | S02-magicals/dollar_bang.t:
Fudge for niecza.
20:39
colomon I can stop fudging any time....
20:39 ksi joined
GlitchMr perl6: my Num $a = 1; print $a; 20:39
p6eval pugs b927740: OUTPUT«1»
..niecza v13-228-g54921c8: OUTPUT«Unhandled exception: Nominal type check failed for scalar store; got Int, needed Num or subtype␤ at /tmp/XQwMvKIUov line 0 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2988 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2989…
..rakudo f365ad: OUTPUT«Type check failed in assignment to '$a'; expected 'Num' but got 'Int'␤ in block <anon> at /tmp/rIFAtaUF93:1␤ in <anon> at /tmp/rIFAtaUF93:1␤»
GlitchMr What's wrong with this code? 20:40
colomon 1 isn't a Num
GlitchMr But it can be represented as Num...
colomon perl6: my Num $a = 1.Num; print $a;
p6eval pugs b927740: OUTPUT«*** No such method in class Int: "&Num"␤ at /tmp/B233ScL7yt line 1, column 8-18␤» 20:41
..rakudo f365ad, niecza v13-228-g54921c8: OUTPUT«1»
GlitchMr Oh, I see...
It makes sense
dalek ecza: 9111898 | (Solomon Foster)++ | t/spectest.data:
Turn on S02-magicals/dollar_bang.t.
GlitchMr I was trying to do "Num 1"
And "(Num) 1"... yeah...
colomon you might mean
perl6: my Real $a = 1; print $a
masak GlitchMr: if you give your variable a type, you have to store things of that type in it... :)
p6eval pugs b927740, rakudo f365ad, niecza v13-228-g54921c8: OUTPUT«1»
GlitchMr Thanks :). 20:42
I wanted to have generic number container which wouldn't accept strings :).
colomon Real being the generic number role.
you could also use Numeric instead of Real, if you want to allow, say, Complex numbers
GlitchMr Nominal type check failed for scalar store; got Int, needed Complex or subtype 20:43
:(
But I can understand it
I don't care about "Complex". It usually just breaks calculations... 20:44
colomon then Real should be just the thing
GlitchMr perl6: print i ** 1
p6eval pugs b927740: OUTPUT«*** No such subroutine: "&i"␤ at /tmp/MxxmmQaEIS line 1, column 7 - line 2, column 1␤»
..rakudo f365ad: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 1, near " 1"␤»
..niecza v13-228-g54921c8: OUTPUT«6.1230317691118863E-17+1i»
GlitchMr 6.1230317691118863E-17+1i
Is there something wrong with my logic?
[Coke] nom: say 1i**1;
p6eval nom f365ad: OUTPUT«6.12323399573677e-17 + 1i␤»
GlitchMr nom: print cos(pi/2) 20:45
p6eval nom f365ad: OUTPUT«1.79489673696541e-09»
20:45 am0c joined
GlitchMr answers.yahoo.com/question/index?qi...157AA9mq3U 20:45
...
[Coke] GlitchMr: the ** makes it a Real. 6.12e-17 is probably 0+epsilon. 20:46
GlitchMr I'm already confused...
[Coke] what is your confusion?
GlitchMr 0+epsilon...
[Coke] e.g. which result seems wrong to you?
GlitchMr And that magical 6.12e-17 value..
masak floats are fuzzy... 20:47
[Coke] What number are you expecting? (I can guess, but being explicit helps)
GlitchMr I haven't expected anything
[Coke] ah, then everything's fine. Excellent. 20:48
GlitchMr I rather expected just to see 1i because it's ** 1, but it's weird math...
Everything they've learned me in school is wrong...
[Coke] nope. 20:49
GlitchMr Perl 7 will probably requre 6GHz CPU :P. 20:51
With 10 cores... ;)
And of course Netscape Navigator 4 installed in 419th sector of hard drive (of size 51TB) 20:52
[Coke] needs a shorter summary version of docs.oracle.com/cd/E19957-01/806-35...dberg.html for cases like this.
GlitchMr I've already read this 20:53
Also 0.1 + 0.2 is around 0.30000000000000004... but not in Perl...
But I think it works this way for example in JS or Python...
I guess it's this same in Perl 5, but it makes rounding... 20:54
az5112 Hello, a question about arrays in Rakudo -- what is the underlying data structure for arrays? 20:55
Is it a list or some continuous memory chunk? 20:56
When I splice the array and insert some elements in the middle, is this operation constant time or is Rakudo rewriting the complete array?
jnthn az5112: Underlying data structure is implementation specific.
az5112: In Rakudo, an array has a reified part and a lazy part. 20:57
I think splice reifies the required amount of the array...I think it then makes the thing being spliced in be mostly eager. 20:58
masak .oO( your mind makes it a Real ) 20:59
PerlJam az5112: why do you ask anyway?
az5112: are you noticing something that's slow and you want to make it faster? :)
az5112 PerlJam: I'm just a snoop :) 21:00
[Coke] masak: *thwap*
masak++: *thwap*, I mean.
az5112 I'm kind of looking at it from the C++ perspective. The C++ standard tells you that if you insert an element into such and such container, that operation is log n, or if you do sth else, than it's n, etc. 21:02
Hence I got curious about Perl6 arrays.
(I'm coding one of the task for this new contest.)
I could optimize one thing on condition that the cost of splicing is not proportional to the array length. 21:04
masak az5112: t2? :) 21:06
az5112 masak: t3, you already got t2.
masak oh, right!
you're splicing in t3? inneresting... 21:07
az5112 Oh well, I'll just code it and see whichever runs faster.
masak ;) 21:09
21:11 GlitchMr left 21:13 MayDaniel joined 21:19 MayDaniel left 21:23 ggoebel joined
[Coke] b: say 18590*.99-18331,",", 18590-18331 #niecza at 98.6% - 21:25
p6eval b 1b7dd1: OUTPUT«73.1,259␤» 21:26
dalek p: 08a079c | jnthn++ | src/6model/reprs/P6opaque.c:
REPRS that flatten other REPRs into themselves should delegate to their copy_to. Fixes Int cloning issue found by llamarider++.
21:28
jnthn ...I hope I remembered that nick correctly... :) 21:29
21:29 bluescreen10 left, bluescreen100 left
jnthn ah yes. :) 21:30
phenny: tell LlamaRider the clone bug you found is fixed. Thanks!
phenny jnthn: I'll pass that on when LlamaRider is around.
dalek kudo/nom: 9a7dbbe | jnthn++ | tools/build/NQP_REVISION:
Bump to latest NQP revision.
colomon aanyone out there think (@a Z @b) = (1, 2, 3, 4) makes sense? 21:33
flussence @a = 1, 3; ? 21:34
[Coke] using Z to generate an lvalue? ew.
colomon that's supposed to assign 1, 3 to @a and 2, 4 to @b, according to S32-container/zip.t 21:35
looks like TimToady may have had something to do with the test.... :(
dalek ast: 22d53ea | (Solomon Foster)++ | S32-container/zip.t:
Try to clean up tests. Fudge for niecza.
21:36
PerlJam colomon: so ... (@a Z=> @b) = (1 => 2, 3 => 4) would work too, right? 21:37
colomon PerlJam: heavens, I hope not 21:38
dalek ecza: ed2de8b | (Solomon Foster)++ | t/spectest.data:
Turn on S32-container/zip.t.
flussence github.com/flussence/specgraphs/ra.../impls.png !
PerlJam seems like there's a subset of us who agree that this is madness :)
[Coke] flussence: you're still counting skips! ;)
niecza is skipping about 1500, rakudo about 2K. 21:39
flussence I started working on trying to fix that at some point, need to get back to it
[Coke] also. "SOON"
(imagine niecza photobombing rakudo, with crazy eyes.) 21:40
does look much niftier in the graph, though. flussence++ !
Anyone know Adriano Ferreira ? 21:41
(did some articles back in '07/'08, don't see anything recent) 21:42
masak jnthn: what's so difficult to remember about the nick "LlamaRider"? it's not like he's riding an okapi, or a macaque, or a xenops, or a quokka, or a cookie-cutter shark. :P 21:44
just a simple llama.
[Coke]: never heard of him. 21:45
21:45 bacek left
[Coke] found him just now with an onlamp article on perl6's zip. 21:46
21:46 kaare_ left, az5112 left
jnthn masak: Nothing especially difficult, I just typed it in the commit message and suddenly had a moment of "oh noes did I get it right" :) 21:48
21:52 x3nU joined
masak .oO( what a llame excuse ) 21:55
jnthn :P 21:56
geekosaur se llama ... 21:57
jnthn *lol* 21:58
masak phenny: "se llama"? 21:59
phenny masak: "is called" (es to en, translate.google.com)
masak :P
22:00 Trashlord left 22:09 ksi left
dalek kudo/nom: 248eb5d | jnthn++ | src/ (2 files):
Implement trait form of 'is parcel'.
22:13
kudo/nom: 5df8b35 | jnthn++ | src/core/Parameter.pm:
Start to fill out some missing bits in parameter introspection.
22:27 LlamaRider joined 22:33 cognominal joined
sorear good * #perl6 22:34
phenny sorear: 16:56Z <colomon> tell sorear Got rid of the false Test.pm from roast, Test::Util still causing trouble with the proto, I think. I'd appreciate it if you could take a look. (Off to lunch now.)
colomon o/
dalek ast: 31dd22f | jnthn++ | S06-signature/introspection.t:
Update signature introspection test for current spec, remove all but one Rakudo fudge.
22:36
kudo/nom: b5a5055 | jnthn++ | src/Perl6/ (2 files):
Start to unbust signature literals.
22:37
kudo/nom: 6342762 | jnthn++ | src/core/Parameter.pm:
More work on parameter introspection; ensure sub-signatures are included in .perl output.
kudo/nom: 5ccf1ab | jnthn++ | t/spectest.data:
Turn on S06-signature/introspection.t.
22:38 az5112 joined
az5112 Anybody had a success running binary version of Niecza on WinXP? I have ,NET Framework 4 but when I run\Niecza.exe it's telling me "Unable to find a version of the runtime to run this application". 22:38
LlamaRider jnthn: rebuilt rakudo and my code is back to working well :) thanks a lot! jnthn++ 22:45
phenny LlamaRider: 21:30Z <jnthn> tell LlamaRider the clone bug you found is fixed. Thanks!
sorear .u о 22:47
phenny U+043E CYRILLIC SMALL LETTER O (о)
sorear [Coke]: Generally, I think splice should interpret its arguments in the same way as substr, which already has picked interpretations for WC.
jnthn LlamaRider: Great! :) 22:48
22:49 panterax left 22:51 benabik left 22:52 donri left 22:53 molaf joined
sorear jnthn: obligatory: irclog.perlgeek.de/perl6/2012-01-05#i_4936162 22:56
jnthn sorear: ? 22:57
There's not meant to be a write barrier in copy_to
(And what I fixed today didn't add one.) 22:58
But nice try.
sorear :)
az5112: niecza is designed to require the .NET framework 2.0 or any later version 22:59
az5112: can you persuade it to give you more details? 23:00
23:01 colomon left 23:02 fsergot joined 23:06 alester left
az5112 sorear: How do I go about persuading it? 23:07
sorear dunno. 23:17
at some point I need to procure a copy of Windows for myself so I can actually test this and write proper instructions
23:19 sudokode left 23:21 localhost left 23:22 localhost joined
masak 'night, #perl6 23:25
tadzik o/ 23:26
jnthn 'night, masak 23:27
sorear jnthn: you might know a few things about debugging with the "real" .NET runtime... 23:28
23:28 spine left
jnthn sorear: I was pretty sure that the .Net 4 CLR is meant to be able to run .Net 2 compiled assemblies. 23:31
sorear: In fact, I'm pretty sure I've seen it happen. So I'm mostly confused about the error az5112 is seeing. 23:32
23:33 whiteknight joined, aber left
sorear jnthn: Do you have any comments on my tells? 23:36
sorear wonders what photobombing is
jnthn (my $.foo) yes, sane, there's no reason I didn't do that yet besides not getting around to it. 23:38
23:39 colomon joined
az5112 sorear: Actually I'm on a Linux box and running Windows XP on a virtual host. Maybe I'll try it on Linux then... 23:39
jnthn (postcircumfix:<( )>) yes, it's meant to get a Capture. ruoso++ was quite insistent on that. :) But it fits with [...] giving a single arg for @a[1,2,3] which is a Parcel...
And it's easy to use a subsig to unpack.
Was too uncaffienated to answer them when I first saw 'em this morning. :-) Spent all night on a train... :) 23:40
sorear Getting the arguments directly would make it possible to use multis, and would be more efficient to boot 23:41
23:41 sudokode joined
sorear I can make either way work 23:41
jnthn sorear: I remember having it the other way in Rakudo, being told I was doin' it rong and having to change it. :)
I forget the details of the discussion now. 23:42
dalek ast: 69f1075 | (Solomon Foster)++ | S12-methods/syntax.t:
Fudge for niecza.
ecza: 64c0380 | (Solomon Foster)++ | t/spectest.data:
Turn on S12-methods/syntax.t.
23:43
sorear jnthn: TimToady expects it to work the other way, as seen in his latest gist
jnthn grrr 23:44
s/expects/now expects/ :P
Unless the latest gist was a thinko 23:45
sorear az5112: Oh yes. If you try mono and it doesn't work, I can be a lot more helpful. :) 23:47
23:47 snearch left
colomon perl6: say ~Int 23:48
p6eval pugs b927740: OUTPUT«Int␤»
..niecza v13-228-g54921c8: OUTPUT«Int()␤»
..rakudo 5ccf1a: OUTPUT«use of uninitialized value of type Int in string context␤␤»
[Coke] sorear: photobomb: someone in the frame of the picture who wasn't intended to be there. google will show you a ton of examples.
jnthn rakudo++ 23:49
23:49 PacoAir left
sorear if one result is clearly better than another, we should have tests for it 23:55
although it may be useful to keep essential tests and quality-of-implementation tests in separate files
now, what am I going to do today?... 23:56
tadzik Warning: execution completed with warning 23:57
Why, thank you, Oracle
LlamaRider I can contribute another such test ;) 23:58
perl6: our @a = (1,2); say @a;
p6eval rakudo 5ccf1a: OUTPUT«Method 'STORE' not found for invocant of class 'Any'␤ in block <anon> at /tmp/jnw67VtuZ4:1␤ in <anon> at /tmp/jnw67VtuZ4:1␤»
..niecza v13-228-g54921c8: OUTPUT«1 2␤»
..pugs b927740: OUTPUT«12␤»
LlamaRider rakudo-- :))
jnthn LlamaRider: That one's already ticketed though.
LlamaRider can someone point me to the bug tracker of rakudo? I don't want to start generating spam here.
23:58 az5112 left
TimToady I wouldn't put too much weight on the latest gist, or anything else I say while I have the flu 23:59
jnthn LlamaRider: Well, it's OK to mention here, just didn't want you to spend time ticketing something we already have one for :)
TimToady and I have no memory at all of wanting Z for an lvalue...
sorear rtrt.perl.org:443/rt3/Public/