Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-11

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:12 Psyche^_ joined #perl6
00:17 mathw joined #perl6
00:17 pernatiy joined #perl6
00:30 [Coke] rakudo: my $a is default(42); use Test; is $a, 42; say $a.VAR.default;
00:30 camelia rakudo 252008: OUTPUT«ok 1 - ␤42␤»
00:30 [Coke] rakudo: my $a is default(42); use Test; is $a, 42; is $a.VAR.default, 43;
00:30 camelia rakudo 252008: OUTPUT«ok 1 - ␤not ok 2 - ␤#      got: '42'␤# expected: '43'␤»
00:31 [Coke] on the jvm, that now dies on the .default call.
00:33 berekuk joined #perl6
00:47 dayangkun joined #perl6
00:48 Mouq joined #perl6
00:54 mathw joined #perl6
00:54 berekuk joined #perl6
00:58 berekuk joined #perl6
01:06 skids joined #perl6
01:20 tokuhirom joined #perl6
01:20 stevan_ joined #perl6
01:38 kbaker joined #perl6
02:17 krunen joined #perl6
02:50 [Coke] n: $*VM
02:50 camelia niecza v24-95-ga6d4c5f:  ( no output )
02:50 [Coke] n: say so $*VM
02:50 camelia niecza v24-95-ga6d4c5f: OUTPUT«False␤»
02:50 [Coke] n: say $*VM.perl
02:50 camelia niecza v24-95-ga6d4c5f: OUTPUT«Any␤»
02:50 [Coke] n: say $*VM.gist
02:50 camelia niecza v24-95-ga6d4c5f: OUTPUT«(Any)␤»
03:01 dalek roast: a993413 | coke++ | S (2 files):
03:01 dalek roast: niecza fudge
03:01 dalek roast: review: https://github.com/perl6/roast/commit/a993413b4f
03:01 dalek roast: 4ae1f4c | coke++ | S (2 files):
03:01 dalek roast: niecza fudge
03:01 dalek roast: review: https://github.com/perl6/roast/commit/4ae1f4ce88
03:02 dalek niecza: 473bd20 | coke++ | t/spectest.data:
03:02 dalek niecza: run fudged tests
03:02 dalek niecza: review: https://github.com/sorear/niecza/commit/473bd20923
03:02 diakopter he played Bateman; he played Batman.
03:03 qiyong joined #perl6
03:03 qiyong hi all
03:03 diakopter hi qiyong
03:03 qiyong does p6 supoort package foo::bar;
03:04 diakopter rn: package foo::bar;
03:04 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Semicolon form of package definition indicates a Perl 5 module; unfortunately,â�¤  STD doesn't know how to parse Perl 5 code yet at /tmp/FbE9BqI11R line 1:â�¤------> [32mpackage foo::bar[33mâ��[31m;[0mâ�¤â�¤Parse failedâ�¤â�¤Â»â€¦
03:04 camelia ..rakudo 252008: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_dc9MsgxUU�This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style package block like "package Foo { ... }", or "module Foo; ...".�at /tmp/_dc9MsgxUU:1�------> [32mpa…
03:05 diakopter rakudo's error is more helpful in this case
03:06 diakopter qiyong: yes, but it's called module foo::bar;
03:06 qiyong diakopter: and foo is the directory name?
03:06 diakopter if that's where it's stored, it can be loaded that way, yes
03:11 qiyong where's the doc for $^H?
03:11 qiyong perlvar
03:13 [Coke] $^H is S03:171
03:13 synopsebot Link: http://perlcabal.org/syn/S03.html#line_171
03:13 [Coke] er...
03:14 [Coke] $^H is S28:171
03:14 synopsebot Link: http://perlcabal.org/syn/S28.html#line_171
03:14 qiyong perl and python, which is more powerful?
03:14 bonsaikitten qiyong: yes
03:14 [Coke] bonsaikitten++
03:14 qiyong bonsaikitten: are you from japan?
03:14 preflex_ joined #perl6
03:14 bonsaikitten qiyong: most programming languages have the same expressivity, but sometimes a problem is easier to solve in one, or the other ...
03:14 bonsaikitten no, I'm not ...
03:15 qiyong bonsaikitten: is bonsai japanese?
03:15 bonsaikitten the word is
03:16 qiyong in terms of lexical scope, what other scopes are there?
03:19 [Coke] package, file, dynamic
03:24 btyler joined #perl6
03:24 qiyong totally three?
03:24 qiyong four?
03:25 qiyong package vars don't need 'my'?
03:25 cognominal joined #perl6
03:41 zakame joined #perl6
03:49 qiyong where bar is the filename, right? like bar.pm
03:52 TimToady class scope
03:53 TimToady package vars are usually introduced with 'our', class vars with 'has'
03:55 TimToady you can also introduce something into anonymous scope with 'anon'
03:55 TimToady we don't use package vars much in p6
03:59 TimToady there are several variants on lexical scope, too, depending on how long the bindings last
03:59 TimToady constants have the longest bindings, 'my' the shortest, and 'state' is in the middle
04:01 TimToady in another sense, every object provides its own scope to its attributes
04:23 pernatiy joined #perl6
04:26 araujo joined #perl6
04:40 zakame joined #perl6
04:41 moritz \o
04:41 zakame joined #perl6
04:42 Woodi joined #perl6
04:43 raiph joined #perl6
05:22 SamuraiJack__ joined #perl6
05:29 SamuraiJack joined #perl6
05:30 qiyong joined #perl6
05:32 xenoterracide_ joined #perl6
05:33 denis_boyun joined #perl6
05:45 johnny5_ joined #perl6
05:58 sjohnson hi!~
06:00 johnny5_ joined #perl6
06:03 poor_soul joined #perl6
06:04 poor_soul hi, #perl6 :)
06:06 poor_soul i'm currently wrestling with Perl 6 module apparatus
06:08 bbkr__ joined #perl6
06:10 poor_soul i've got file lib/A/B.pm which says basically 'class A::B is export {...}', then file lib/A.pm which says 'module A; use A::B; sub version is export {...}'
06:11 poor_soul when i do 'use A' in an app file, i don't obtain the definition of A::B
06:11 denis_boyun joined #perl6
06:12 JimmyZ you need add your dir ..../lib/ to he search path
06:12 JimmyZ s/he/the/
06:12 JimmyZ @INC, like p6
06:13 JimmyZ *p5
06:13 poor_soul ofc i did that
06:14 JimmyZ you have 'module A::B;' in B.pm?
06:14 poor_soul i get the definitions in A.pm, but not those of A/B.pm, if if they are use'd inside A
06:15 poor_soul in B.pm i only have 'class A::B is export; method a {...}' etc
06:16 poor_soul s/if if/even if/
06:16 JimmyZ https://github.com/perl6/DBIish​/blob/master/lib/DBIish.pm6#L15
06:19 poor_soul what do you mean?
06:19 pupoque joined #perl6
06:19 JimmyZ an example
06:21 poor_soul i'll try to experiment with that, brb
06:34 poor_soul ok, i made that work
06:35 poor_soul now the problem is, when i try to do 'use A <B>', it says: no EXPORT sub, but you provided positional argument in the 'use' statement
06:36 poor_soul i dont see EXPORT sub explained in S11, where could i find it?
06:36 FROGGS joined #perl6
06:46 Woodi joined #perl6
06:50 domidumont joined #perl6
06:54 moritz I don't think it's specced or documented yet
06:55 poor_soul i'm trying to do 'my ::B ::= A::<::B>' alternatively, but i get 'expecting any of: scoped declarator'
06:55 domidumont joined #perl6
06:55 moritz basically it's an  our sub EXPORT(*@args) { } that receives the argument list that you provided in the use statement
06:56 moritz poor_soul: try it without the leading ::
06:57 poor_soul same error 'Cannot use :: as a type name' and then 'expecting ...'
06:57 poor_soul nothing changed
06:58 moritz and what is A::<::B> supposed to mean?
06:58 poor_soul i was trying 'my B ::= A::<B>' after 'use A' to import B into the namespace
06:59 moritz why not just use A::B then?
07:00 poor_soul well, A::B is fine since it's short, but in case of longer names, it's quite a hassle
07:00 moritz but A::<B> is longer than A::B
07:00 moritz so I don't understand why you want to use A::<B> instead of A::B
07:00 poor_soul but B is not
07:00 moritz yes, I got that part.
07:01 poor_soul i wanted to call A::B as B
07:01 moritz yes
07:01 dmol joined #perl6
07:01 moritz but why are using A::<B> und other complicated notations?
07:01 poor_soul because use A <B> doesn't work
07:02 poor_soul do we know what an EXPORT sub should do?
07:02 qiyong what is \% ?
07:02 moritz yes
07:02 poor_soul i could implement it in the module
07:02 moritz it should control what to export
07:02 poor_soul so to make use A <B> work
07:03 moritz poor_soul: you can just do   use A; constant B = A::B;
07:03 moritz (provided that module A has an A::B)
07:03 poor_soul but it's not a constant, it's a class
07:03 moritz and then use B
07:03 moritz so what/
07:03 moritz so what/
07:03 moritz argm
07:04 moritz s{\/}{?}
07:04 poor_soul does it work the same?
07:04 moritz poor_soul: do you expect to modify the class?
07:04 moritz yes, works the same
07:04 moritz qiyong: in what context?
07:04 qiyong getopt('oDI', \%opts);
07:05 poor_soul modify the class, you say, how?
07:05 poor_soul qiyong: creates a reference to hash
07:05 moritz qiyong: please find a more appropriate channel to ask Perl 5 questions
07:05 moritz poor_soul: dunno. But you seem to object declaring it as a constant
07:06 qiyong does p6 have ref?
07:06 moritz poor_soul: it was more meant toung in cheek. Never mind
07:06 poor_soul sorry, i wasn't objecting it, i simply didn't know i could do that
07:06 moritz qiyong: https://perl6advent.wordpress.com/2011/1​2/16/where-have-all-the-references-gone/
07:06 moritz poor_soul: ok. Then I guess my response wasn't very helpful, sorry
07:07 moritz poor_soul: to add a bit more context, types and constants are simply stored without sigils in the lexpads and our-scopes
07:07 kaleem joined #perl6
07:07 moritz poor_soul: and 'constant A = ...' happens at compile time, which is usually what you want for types too
07:08 moritz poor_soul: so even if it's a bit unintuitive at first, 'constant' is actually a great tool to create aliases for type names
07:11 zakharyas joined #perl6
07:12 poor_soul so, A.pm says 'module A; use A::B; constant B = A::B; ...' . If i then do 'use A; my $b = B.new;' it errors out with Undeclared name: B
07:13 poor_soul i'll brb
07:14 moritz poor_soul: yes, because you didn't do anything to make B visible in your main script
07:14 moritz poor_soul: constants are lexically scoped by default
07:14 moritz poor_soul: so you'd have to say   our constant B = A::B  if you want it to be available in your main script
07:14 xinming joined #perl6
07:15 TimToady r: subset Foo of Int; my Foo $x = "bar";
07:15 camelia rakudo 252008: OUTPUT«Type check failed in assignment to '$x'; expected 'Foo' but got 'Str'␤  in block  at /tmp/XuVy5m7giW:1␤␤»
07:15 TimToady r: subset Foo of Str; my Foo $x = "bar";
07:15 camelia rakudo 252008:  ( no output )
07:15 TimToady another way
07:16 TimToady r: BEGIN my \Foo = Str; my Foo $x = "bar"; say $x
07:16 camelia rakudo 252008: OUTPUT«===SORRY!===␤No compile-time value for Foo␤»
07:16 TimToady um
07:17 TimToady n: BEGIN my \Foo = Str; my Foo $x = "bar"; say $x
07:17 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Lexical Foo is not a package at /tmp/hvSimr3tfp line 1:�------> [32mBEGIN my \Foo = Str; my Foo[33m�[31m $x = "bar"; say $x[0m��A type must be provided at /tmp/hvSimr3tfp line 1:�------> [32mBEGIN my \Foo = Str; my Foo…
07:21 teslos joined #perl6
07:28 dalek Perlito/replito: 9643c62 | (Flavio S. Glock)++ | TODO-perlito5:
07:28 dalek Perlito/replito: Perlito5 - TODO update
07:28 dalek Perlito/replito: review: https://github.com/fglock/​Perlito/commit/9643c620a5
07:28 dalek Perlito/replito: a0beddf | (Flavio S. Glock)++ | t5/01-perlito/080-array.t:
07:28 dalek Perlito/replito: Perlito5 - tests - slice tricks
07:29 dalek joined #perl6
07:32 masak morning, #perl6
07:32 lizmat morning masak and the rest of #perl6!
07:33 * lizmat wonders what to attack today
07:33 moritz \o
07:36 dalek Perlito/replito: 1ee0a92 | (Stanislaw Pusep)++ | html/replito.html:
07:36 dalek Perlito/replito: replito now uses minimal Carp
07:36 dalek Perlito/replito: review: https://github.com/fglock/​Perlito/commit/1ee0a925a3
07:39 pupoque joined #perl6
07:39 Ulti thanks geekosaur I'll have to do some jiggery pokery to build parrot then, or just update the current parrot MacPort so that the version is what Rakudo wants
07:39 yoleaux 10 Sep 2013 22:27Z <geekosaur> Ulti: MacPorts does not build as root and can't write outside the build area
07:44 poor_soul sorry, i'm back
07:45 poor_soul moritz: i made that 'our constant B = A::B', but it's the same result
07:51 moritz :(
07:54 jnthn lizmat: attack masak!
07:54 lizmat directly?  or by using macro's ?
07:57 jnthn With a macro named marco!
07:57 jnthn lizmat: More practically, perhaps figure out the VAR failures on JVM backend... ;)
07:58 lizmat like .VAR.default not working ?
07:58 poor_soul moritz: i've got a pastebin for your use, let's work this issue out :) http://pastebin.com/Tps5aAXz
07:59 masak jnthn: we already have one of those in here.
08:00 moritz poor_soul: oh, I think I see what the problem is, hang on
08:01 moritz poor_soul: ah yes
08:01 moritz poor_soul: the 'our constant B = ...' is inside module A, so you are actually (re?)-declaring A::B
08:02 moritz poor_soul: if you move the constant declaration before the 'module A;' line, the constant is actually B, and stuff works
08:02 moritz use A::B;
08:02 moritz our constant B = A::B;
08:02 moritz module A;
08:02 moritz our sub v is export { say "A::v"; }
08:02 poor_soul my god, what a thinko i did
08:03 poor_soul moritz: you're my saviour
08:03 masak moritz saved a poor soul
08:05 moritz :-)
08:06 poor_soul if i can utter a wish, i would like a warning on redeclarations like those
08:06 moritz r: { package A { our $B } }; package A { our $B }
08:06 camelia rakudo 252008:  ( no output )
08:07 dalek Perlito: 596ae83 | (Flavio S. Glock)++ | / (3 files):
08:07 dalek Perlito: Perlito5 - js - use context information when "use" is the last statement; reported by Stanislav Poussep
08:07 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/596ae8386b
08:07 moritz poor_soul: the problem is that it's perfectly legal to do that
08:07 moritz maybe it shouldn't be
08:07 moritz dunno
08:08 masak depends. what's the use case?
08:08 moritz it's a p5 heritage thing, and I don't know if anybody has really thought it through
08:09 moritz poor_soul: though to be honest I don't think it's a wise move to export aliases to other namespaces
08:10 dalek Perlito/replito: 596ae83 | (Flavio S. Glock)++ | / (3 files):
08:10 dalek Perlito/replito: Perlito5 - js - use context information when "use" is the last statement; reported by Stanislav Poussep
08:10 dalek Perlito/replito: review: https://github.com/fglock/​Perlito/commit/596ae8386b
08:10 dalek Perlito/replito: 45eb9c1 | (Stanislaw Pusep)++ | / (4 files):
08:10 dalek Perlito/replito: Revert "Perlito5 - js - can't handle "return ()"; trying "return (true)" instead"
08:10 dalek Perlito/replito:
08:10 dalek Perlito/replito: This reverts commit c528e36f7e4b9b647fc8f1cb7a7cff3302295cf9.
08:10 dalek Perlito/replito: review: https://github.com/fglock/​Perlito/commit/45eb9c1611
08:10 dalek Perlito/replito: 189ed1b | (Stanislaw Pusep)++ | / (3 files):
08:10 dalek Perlito/replito: Merge branch 'master' into replito
08:10 dalek Perlito/replito: review: https://github.com/fglock/​Perlito/commit/189ed1b00a
08:10 moritz poor_soul: the reason the author called it A::B and not B in the first place is probably that A::B is the better name
08:10 moritz poor_soul: so it's fine to declare local aliases, but exporting these aliases seems a bit dodgy
08:10 masak I could argue that one both ways.
08:11 masak maybe the whole language should have a clearer boundary between "non-experted names" and "exported names".
08:11 masak but it's also possible that would be impractical, and it's better kept as a social agreement.
08:12 moritz masak++ # non-experted names
08:13 poor_soul but think about this: you've got lib/A/B/C.pm and lib/A/B/C/D.pm, and want to call them as A::C and A::D
08:14 poor_soul the solution is that aliasing, or is there another way?
08:14 moritz poor_soul: well, there are two solutions. One is not naming them A::B::C in the first place, when you want them to be named A::C
08:14 moritz poor_soul: but if A::B::C is the most fitting name, then yes, alias. But keep the alias to your own code.
08:15 moritz poor_soul: there's not much point in nested namespaces if you export flatter aliases
08:15 poor_soul moritz: you mean in the A.pm file?
08:15 moritz poor_soul: yes
08:15 xinming joined #perl6
08:29 masak moritz: it's really the same idea as with inwards-facing attributes and outwards-facing methods... but on a package level.
08:29 masak moritz: and the motivation is the same, too: retaining refactorability inside while adhering to a contract outside.
08:32 moritz masak: oh, good point
08:33 lizmat r: sleep * # shouldn't this be the same as sleep Inf ?
08:33 camelia rakudo 252008: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤  in method Numeric at src/gen/CORE.setting:961␤  in sub infix:<==> at src/gen/CORE.setting:3685␤  in sub infix:<==> at src/gen/CORE.setting:3683␤  in method ACCEPTS at src/gen/CORE.setting:3…
08:35 lizmat it's not in the spec, but it feels it should
08:35 masak lizmat: wfm
08:35 masak lizmat: * doesn't mean Inf in all possible cases... but in this case, I don't mind.
08:37 dakkar joined #perl6
08:38 moritz agreed
08:40 mathw o/
08:45 masak mathw! \o/
09:00 qiyong joined #perl6
09:08 kivutar joined #perl6
09:13 daxim joined #perl6
09:13 mathw hi masak
09:14 sqirrel joined #perl6
09:20 lizmat r: Instant.new(Inf)  # yet sleep still is specced to have Inf as the default for its Instant parameter
09:20 camelia rakudo 252008: OUTPUT«Type check failed in assignment to '$!x'; expected 'Rat' but got 'Num'␤  in block  at src/gen/CORE.setting:865␤  in method BUILDALL at src/gen/CORE.setting:848␤  in method bless at src/gen/CORE.setting:837␤  in method new at src/gen/CORE.setting:13773␤  in block  a…
09:21 lizmat TimToady: spec problem or something that would need to be fixed in Instant.new ?
09:21 masak well, Inf has often been referred to as being "type-curious".
09:21 lizmat S29:293 to be precise
09:21 synopsebot Link: http://perlcabal.org/syn/S29.html#line_293
09:21 masak it seems to in some sense straddle all comparable types.
09:21 moritz lizmat: known spec problem
09:22 masak which hasn't really seen the light of implementation.
09:22 masak i.e. Inf is typed as "anything you want it to be": Real, Str, Instant...
09:22 moritz or is a solution specced now, just not yet implemented?
09:22 moritz Num, Rat, Int
09:22 lizmat "multi sleep-till ( Instant $till = Inf --> Bool )" is what is specced
09:22 jnthn urgh argh
09:22 masak the spec is there, but I'm not sure it's implementable.
09:22 masak which would explain why it hasn't been implemented.
09:22 jnthn I think this is either unimplementable or if it is I dont' care to work out how.
09:23 jnthn 'cus the answer will probably be crazy.
09:23 masak this is one place where TimToady's intuition runs up against type theory best practices.
09:23 masak and we're literally unable to tell whether it's a good idea or a bad one to go crazy in the way TimToady suggests. (and if so, how)
09:23 masak :P
09:24 jnthn Well, we'd need to work out how to allow Int, Rat, etc. represent a notion of Inf
09:24 jnthn Which on most backends will mean making everys ingle one of them consume more memory so we have a place to store that.
09:24 lizmat well, I don't think it's a problem to implement sleep-till with INf as the default
09:24 lizmat and defer type checking to runtime
09:24 masak *usually* the way these things are resolved is that a type-theoretic solution snaps into place, and everyone goes "phew!", and "how come we didn't think of this sooner?"
09:25 masak but that hasn't manifested with Inf yet.
09:25 lizmat well, I'll go crazy with sleep-til, deferring type checking to runtime
09:25 jnthn lizmat: Why not zoid^Wmultis?
09:25 jnthn A multi that takes an Instant, and a multi that takes Inf?
09:25 masak hm, maybe a stopgap solution is to have things like Inf.Str(), Inf.Instant(), etc
09:25 lizmat well, the setting doesn't allow Inf yet
09:25 masak it's ugly, but it's unambiguous.
09:25 lizmat must be $Inf
09:26 jnthn masak: Yes but what does Inf.Str return?
09:26 masak jnthn: a Str type object, specially tailored to always compare last.
09:26 arnsholt An infinitely long string. D'uh. =p
09:26 jnthn masak: The type object is the type object...
09:26 masak arnsholt: you belong here, for sure :P
09:26 masak jnthn: you're saying There Can Only Be One?
09:27 jnthn masak: Well, there's only one ->WHAT in the st
09:27 masak jnthn: how about the type object of an anonymous Str subtype, then?
09:27 jnthn I guess you can have moer than one if you want to allow ATypeObject.WHAT to sometiems not be identity
09:27 masak Str::LolI'mSoInfinite
09:28 jnthn Yes, an anonymous subtype has a different type obj 'cus it's a different type.
09:28 masak jnthn: I think that would be acceptable for Inf.Str()
09:28 masak walk &
09:36 teslos_ joined #perl6
09:43 dalek Perlito: 1fef5af | (Flavio S. Glock)++ | / (4 files):
09:43 dalek Perlito: Perlito5 - js - autoquote special cases
09:43 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/1fef5af2d7
10:05 dalek Perlito: f506e45 | (Flavio S. Glock)++ | t5/01-perlito/050-string.t:
10:05 dalek Perlito: Perlito5 - tests - now it works with many perl5.1x versions
10:05 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/f506e45f65
10:13 dalek rakudo/nom: 79c0f51 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
10:13 dalek rakudo/nom: Get sleep(), sleep-time() and sleep-till() up to spec
10:13 dalek rakudo/nom:
10:13 dalek rakudo/nom: Since Duration and Instant were not known yet in control.pm, moved these subs
10:13 dalek rakudo/nom: to Temporal.pm where they seemed to be more at home.
10:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/79c0f51583
10:14 lizmat working on the tests now
10:30 berekuk joined #perl6
10:35 lizmat wish we had something like p5's alarm() already
10:37 * masak too
10:38 PZt joined #perl6
10:58 moritz call to weapons!
10:59 moritz (alarm = al arm = take your weapon)
11:01 lizmat r: my $b = {sleep(Inf)}; say $b  # works as expected
11:01 camelia rakudo 252008: OUTPUT«Block.new()␤»
11:02 lizmat r: my $b; eval('$b={sleep(Inf)}'); say $b # waits indefinitely ????
11:02 camelia rakudo 252008: OUTPUT«Block.new()␤»
11:02 lizmat huh?
11:03 lizmat hmmm… why does this hang in the test-suite
11:03 lizmat ah, I think I know
11:08 dalek roast: 693cdad | (Elizabeth Mattijsen)++ | S29-context/sleep.t:
11:08 dalek roast: Adjusted sleep() related test to new spec implementation
11:08 dalek roast: review: https://github.com/perl6/roast/commit/693cdadc4f
11:22 dalek Perlito: 8a5c833 | (Flavio S. Glock)++ | / (3 files):
11:22 dalek Perlito: Perlito5 - js - code cleanup
11:22 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/8a5c833ec6
11:28 berekuk joined #perl6
11:29 xinming joined #perl6
11:32 fhelmberger joined #perl6
11:34 dalek Perlito: e3356de | (Flavio S. Glock)++ | / (3 files):
11:34 dalek Perlito: Perlito5 - js - code cleanup
11:34 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/e3356def23
11:35 * lizmat just marked all of her Perl 5 modules on CPAN as HANDOFF
11:35 lizmat it's time to move on  :-)
11:35 lizmat https://github.com/Perl-Toolchain-Gang/toolchain​-site/blob/master/lancaster-consensus.md#flaggin​g-abandoned-modules-and-modules-requesting-help
11:36 hoelzro =O
11:36 masak lizmat++
11:36 masak lizmat: it's interesting to see how Perl 5 people are in different parts of the cycle relating to Perl 6.
11:37 masak lizmat: roughly, mst is three years ahead of everybody else :>
11:37 masak lizmat: I would count you as well, but AFAIK you never had an anti-Perl 6 phase.
11:38 lizmat please note that at the RaNIW, we're going to have at least 2 Perl 5 hard core guys
11:38 lizmat no, I don't think I ever had an anti-Perl 6 phase
11:38 lizmat but that was mostly I was too busy at $work  :-)
11:38 moritz ribasushi and who else?
11:38 lizmat sno
11:39 jnthn Are they "hard core guys" 'cus the Perl 5 core is hard? :P
11:39 lizmat well, no, but they're deep in the DBI and DBIx::Class dev teams
11:39 * masak .oO( you're hardcode, john sno )
11:40 tadzik :D
11:42 kivutar joined #perl6
11:45 dalek Perlito: 88f8dd7 | (Flavio S. Glock)++ | / (3 files):
11:45 dalek Perlito: Perlito5 - js - add special case for sort()
11:45 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/88f8dd718a
11:53 FROGGS lizmat++ # abandon modules
11:54 FROGGS btw, I suggest that we organize a portathon after rakudo has landed on moarvm
11:55 FROGGS (where we identify the most used deps first, and make sure these get tackled first)
11:56 sqirrel joined #perl6
11:58 colomon portathon++
11:59 FROGGS but I think we should wait until it is reasonable fast, so we don't disappoint to much ppl
12:00 FROGGS and then we make an hourly build of a binary star distribution :o)
12:01 hoelzro how will the multiple backends affect Rakudo *? will there just be Rakudo Star on Parrot, or will there be one per VM?
12:02 jnthn I think the source star will give you the choice of what you want, and the binary stars will be per VM.
12:02 jnthn lol...binary star
12:02 FROGGS *g*
12:04 * jnthn treis to remember the story set in a binary star system where people sun-tanned different colors (blue and red, maybe) depending on which star they were most exposed to... :)
12:04 jnthn Oc course, those with frequent exposure to both were purple :)]
12:05 dalek Perlito: a332ffa | (Flavio S. Glock)++ | / (3 files):
12:05 dalek Perlito: Perlito5 - js - use "else if"
12:05 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/a332ffaf02
12:08 FROGGS that is not star trek that is!
12:13 xenoterracide_ joined #perl6
12:17 dalek specs: 157b605 | (Elizabeth Mattijsen)++ | S29-functions.pod:
12:17 dalek specs: Add * as a possible parameter to sleep-like subs
12:17 dalek specs: review: https://github.com/perl6/specs/commit/157b605268
12:32 adris joined #perl6
12:42 berekuk joined #perl6
12:48 masak walk &
12:49 poor_soul r: class A {sub free_s {say 'free_s';};method free_m {free_s;};submethod DESTROY {free_m;}}
12:49 camelia rakudo 79c0f5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/27PKKHt9ROâ�¤Undeclared routine:â�¤    free_m used at line 1â�¤â�¤Â»
12:50 poor_soul does someone know why it says free_m is undeclared?
12:50 moritz because you try to call it as a subroutine, but it's declared as a method
12:50 moritz subroutines live (and are looked up in) lexical scopes, methods in method tables
12:54 FROGGS r: class A {sub free_s {say 'free_s';};method free_m {free_s;};submethod DESTROY { A.free_m }} # <-- so call it as a method
12:54 camelia rakudo 79c0f5:  ( no output )
12:54 poor_soul moritz: of course you're right :P
12:54 FROGGS r: class A {sub free_s {say 'free_s';};method free_m {free_s;};submethod DESTROY { self.free_m }} # <--- or better using self
12:54 camelia rakudo 79c0f5:  ( no output )
12:54 dalek Perlito: 50054f4 | (Flavio S. Glock)++ | / (3 files):
12:54 dalek Perlito: Perlito5 - js - code cleanup
12:54 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/50054f4f6f
12:55 poor_soul but shouldn't it print 'free_s'?
12:56 colomon wouldn't you actually have to create an object of class A for DESTROY to be called?
12:56 FROGGS I was about to say that
12:56 FROGGS poor_soul: the class won't be destroyed
12:56 colomon not that I'm sure it would even be called in that case…. object lifetimes can be weird.
12:56 poor_soul i think i should go to bed today
12:57 FROGGS r: class A {sub free_s {say 'free_s';};method free_m {free_s;};submethod DESTROY { self.free_m }}; { my $a = A.new; } # you could expect 'free_s' here
12:57 camelia rakudo 79c0f5:  ( no output )
12:58 FROGGS but this is sort of NYI and lacks some discussion/specs
12:58 pmurias joined #perl6
13:02 poor_soul FROGGS: wait a sec, why doesn't it print anything?
13:02 FROGGS <FROGGS> but this is sort of NYI and lacks some discussion/specs
13:03 FROGGS I think it is not guaranteed when the garbage collector actually collects something
13:04 poor_soul FROGGS: you mean it's unsure because i did not define a meaningful new?
13:04 FROGGS no, I didn't mean that
13:04 FROGGS I mean it is not implemented and needs clarifying
13:04 pmurias shouldn't it be guaranteed that the objects get collected before the end of the program?
13:05 dalek Perlito: 6332f51 | (Flavio S. Glock)++ | / (3 files):
13:05 dalek Perlito: Perlito5 - js - emitter - cleanup parenthesis
13:05 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/6332f51e47
13:05 FROGGS it should be collected at the end at least, yes
13:05 FROGGS why it doesn't call the DESTROY? no idea, I guess it is NYI
13:07 poor_soul that's quite the NYI
13:07 pmurias hmm, why do I sometimes get a forbidden apache error message for the irc log?
13:07 FROGGS I guess the gc lives in parrot, and I have no idea if there is some sort of callback/hook so that it possible could call the DESTROY method
13:08 FROGGS pmurias: because there is an access limit
13:08 FROGGS pmurias: bug moritz for details
13:09 moritz probably too many requests sent per hour, or buggy apache rate limit
13:14 thou joined #perl6
13:16 kaare_ joined #perl6
13:16 PacoAir joined #perl6
13:21 kbaker joined #perl6
13:27 denis_boyun joined #perl6
13:31 skids joined #perl6
13:31 berekuk joined #perl6
13:32 pmurias moritz: buggy rate limit as I can solve this by refreshing repeatedly
13:34 eternaleye joined #perl6
13:35 lowpro30 joined #perl6
13:38 skids r: sub circumfix:<⟨ ❘> ($i) { "bra $i".say; }; sub circumfix:<❘ ⟩> ($i) { "ket $i".say; }; ❘1⟩; ⟨2❘;
13:38 camelia rakudo 79c0f5: OUTPUT«ket 1␤bra 2␤»
13:38 skids r: sub circumfix:<⟨ ❘> ($i) { "bra $i".say; }; sub circumfix:<❘ ⟩> ($i) { "ket $i".say; }; ⟨2❘; ❘1⟩
13:38 camelia rakudo 79c0f5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/0D_KiT4wROâ�¤Confusedâ�¤at /tmp/0D_KiT4wRO:1â�¤------> [32mmfix:<â�˜ ⟩> ($i) { "ket $i".say; }; ⟨2â�˜; [33mâ��[31mâ�˜1⟩[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement modifierâ�¤       …
13:39 skids .oO(something probably to do with starter/stopper designations)
13:42 mattp_ joined #perl6
13:43 mattp_ joined #perl6
13:43 skids std: sub circumfix:<⟨ ❘> ($i) { "bra $i".say; }; sub circumfix:<❘ ⟩> ($i) { "ket $i".say; }; ⟨2❘; ❘1⟩;
13:43 camelia std 7c17586: OUTPUT«ok 00:01 55m␤»
13:45 mathw r: say ?"0";
13:45 camelia rakudo 79c0f5: OUTPUT«False␤»
13:45 btyler joined #perl6
13:46 pernatiy joined #perl6
13:46 skids not that I have a clue how to go about making those and all of ⟨A❘B ⟩, ⟨A❘T | B⟩ and T ❘B⟩ work :-)
13:48 lizmat http://www.infoq.com/news/2013/09/jdk8-preview
13:49 adris joined #perl6
13:54 pmurias skids: what are those crazy brackets supposed to do?
13:54 skids Dirac notation.
13:54 skids Bra changes a vector to a row matrix and ket changes it to a column matrix.
13:55 skids (bra modulo some possible convultions of the elements depending on the inner product in use at the time.)
13:56 skids *convolutions
13:57 skids .oO(convulsing elements)
13:58 mattp_ joined #perl6
14:05 jnthn In general, you have no idea of the timing of DESTROY.
14:06 jnthn So it's hardly "quite the NYI", since it's not actually very useful :)
14:06 colomon well, it shouldn't happen while you're still using the object.  ;)
14:06 jnthn aye
14:06 jnthn but you dunno how much later
14:06 lizmat { my $o = Object.new; LEAVE $o.DESTROY }
14:07 jnthn lizmat: right. :)
14:07 jnthn That's teh reliable way.
14:07 flussence would calling it manually like that work properly if an automatic thing got implemented later?
14:08 lizmat joined #perl6
14:08 jnthn flussence: It'd probably be called a second time :)
14:16 lizmat but, isn't there a way to mark an object as de-activated ?
14:16 lizmat self := Nil
14:16 lizmat comes to mind
14:16 flussence fwiw I don't strongly care when DESTROY runs, I only wanted somewhere to put native function resource freeing stuff that looks neat & tidy
14:16 jnthn I'm pretty sure you can't bind to self, and if yuou did you're saying nothing about the object and everything about the lexical symbol self in the current method...
14:17 lizmat "Cannot use bind operator with this left-hand side"
14:18 lizmat r: class H is Hash { method DESTROY { self = () } }; my %h=H.new((a => 1, b=>2)); say %h; %h.DESTROY; say %h
14:18 camelia rakudo 79c0f5: OUTPUT«("a" => 1, "b" => 2).hash␤No such method 'DESTROY' for invocant of type 'Hash'␤  in block  at /tmp/FcrRvf194D:1␤␤»
14:18 lizmat r: class H is Hash { method DESTROY { self = () } }; my %h:=H.new((a => 1, b=>2)); say %h; %h.DESTROY; say %h
14:18 camelia rakudo 79c0f5: OUTPUT«("a" => 1, "b" => 2).hash␤().hash␤»
14:19 lizmat r: class H is Hash { method DESTROY { self = H.new } }; my %h:=H.new((a => 1, b=>2)); say %h; %h.DESTROY; say %h
14:19 camelia rakudo 79c0f5: OUTPUT«("a" => 1, "b" => 2).hash␤().hash␤»
14:26 jnap joined #perl6
14:26 drigo joined #perl6
14:26 drigo :-)
14:27 drigo Perl6 is stable? official realese?
14:27 drigo nice syntax
14:27 drigo easy migration whatever lang => perl6
14:27 drigo rs
14:28 dmol joined #perl6
14:31 [Sno] joined #perl6
14:32 [Sno] anyone around can help fixing build issues when packaging raduko-star (with parrot)
14:32 poor_soul doesn't that mean that you could do this: as you get to install a new lexical symbol in a block, you check if there is a LEAVE phaser. If it's not present, make one that calls DESTROY for the symbol, else append the instructions to the existing one
14:33 poor_soul when there are multiple symbols, put their DESTROYs in a list and use that in the LEAVE
14:34 poor_soul ofc i meant refs to DESTROYs
14:35 poor_soul [Sno]: what's the problem?
14:35 masak drigo: re stable -- not according to some measures. but a lot better all round than two-three years ago.
14:35 masak drigo: it all comes down to what you plan to use it for. some of us are using it quite a lot, and with nice results.
14:35 [Sno] poor_soul: ./Configure.pl tries to install --gen-parrot in configure stage, not during make install
14:36 drigo masak in web development
14:37 drigo :)
14:37 poor_soul [Sno]: of course, it's needed for building nqp and rakudo
14:37 masak drigo: we have https://github.com/tadzik/Bailador/ which you should check out.
14:37 pmurias foo << 1 multiplies foo by 2 on the jvm?
14:37 [Sno] poor_soul: so I have to unbundle it - is there an option for that?
14:38 jnthn [Sno]: If you're packaging, you probably dont' want to be using the --gen... options.
14:38 poor_soul [Sno]: it's not bundled for what i know, it gets parrot from the webz
14:38 jnthn [Sno]: Those mean "I am doing a source build, please build all the dependencies first"
14:38 masak drigo: or perhaps even better, https://github.com/tadzik/zblog which uses bailador
14:38 [Sno] first shot was to give it a try (to get it all from one source)
14:39 [Sno] but meanwhile it looks I should build parrot before and make it a prereq
14:39 jnthn [Sno]: You can also pass --with-nqp (and pass NQP's Configure --with-parrot) to tell it to use an installed one.
14:39 drigo masak ok, thanks u
14:39 poor_soul [Sno]: which distro?
14:39 [Sno] jnthn: yepp - but it's more effort - --gen-foo is simpler :(
14:39 [Sno] poor_soul: pkgsrc
14:40 [Sno] to have Perl6 on up to 15 platforms with one commit :D
14:40 masak [Sno]++ # welcome to #perl6!
14:40 lizmat [Sno]++
14:41 poor_soul [Sno]: you should always check the AUR for simple build instructions
14:41 [Sno] lizmat is responsible
14:41 [Sno] she forces me to have an installed r* Saturday
14:41 masak :D
14:41 masak lizmat++ # responsible
14:41 [Sno] so … fu*** I have to package it, because no wildlife on machine :P
14:41 hoelzro I have a package for Rakudo * for Arch
14:41 mattp_ joined #perl6
14:41 * lizmat searches for the exit silently
14:41 hoelzro if you're interested
14:41 * [Sno] blames lizmat
14:42 [Sno] hoelzro: does it run on Darwin, AIX and HP-UX?
14:42 hoelzro oh, sorry, I misunderstood from the AUR reference
14:42 [Sno] if yes, I take a look and search what I can steal :D
14:42 * nwc10 wonders how to implement a hard-to-hack "install Rakudo and get a free beer" promotion.
14:43 hoelzro that's one thing I would really like to help improve: Perl 6 packaging for OSen
14:43 pmurias int foo=...;bar = foo << 1 is equivalent to int foo=...; bar = 2 * foo?
14:44 poor_soul [Sno]: really, it's not that hard, perl Configure.pl --prefix=/usr --with-parrot=/usr/bin/parrot --with-nqp=/usr/bin/nqp && make
14:44 [Sno] jnthn: would it be "safe" to package parrot-5.7.0 (5.5.0 is bundled, but a developer release)
14:44 drigo masak I'm developer. net, I've always been curious to perl, but the syntax of perl5 is ugly, but syntax perl6 is nice and easy
14:44 drigo rs :)
14:44 poor_soul [Sno]: then, for install, make DESTDIR=$dir install
14:45 jnthn [Sno]: There's not that much change between Parrot releases now, so the stable/developer distinction ain't worth much.
14:45 [Sno] jnthn: thanks
14:45 jnthn pmurias: JVM has a left shift instruction, and I'm fairly sure we're using it.
14:46 poor_soul hoelzro: do you think there's interest for perl6 git packages?
14:46 hoelzro git packages?
14:47 poor_soul hoelzro: i made some, like perl6-json-tiny-git, perl6-file-find-git, as to not need to use panda
14:47 hoelzro oh
14:47 hoelzro well
14:48 hoelzro what I'd *like* to do is have rakudo-star be a metapackage
14:48 hoelzro that depends on the rakudo package, along with all the modules
14:48 hoelzro that's been the real hurdle up until now
14:48 hoelzro that and ENOTIME
14:48 poor_soul if we make enough of these, you can reproduce the modules list on R* and have a R*-git meta-package
14:50 hoelzro that'd be great
14:50 hoelzro I wrote a script to generate PKGBUILDs for all of the modules in R*
14:50 hoelzro but I got stuck at writing the installer section for them
14:51 dalek Perlito: 67d865d | (Flavio S. Glock)++ | / (4 files):
14:51 dalek Perlito: Perlito5 - js - reference stringification
14:51 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/67d865d733
14:52 poor_soul hoelzro: let's see, what did commands did you use in build() ?
14:52 hoelzro poor_soul: it's one my home machine; I'll have to look there
14:52 masak drigo: I am a Perl 6 developer at heart, but I move around in both the Perl 5 and Perl 6 worlds.
14:52 poor_soul hoelzro: i tried bootstrapping panda, but for some reason it didn't work
14:53 hoelzro hmm
14:53 poor_soul hoelzro: so i made a PKGBUILD for ufo
14:53 masak drigo: I can see what you mean by "ugly"... it's not something that bothers me, but it's interesting to hear of a .Net person who dislikes Perl 5 syntax but likes Perl 6 syntax :>
14:53 hoelzro that would be perfect
14:53 poor_soul and used that to buidl the modules
14:53 poor_soul build*
14:54 tadzik poor_soul: I can try helping you with panda erros
14:54 drigo masak OO support nice in perl6
14:54 drigo :)
14:55 poor_soul tadzik: panda builds File::Find ok, then fails on JSON::Tiny and Shell::Command. JSON::Tiny passes too if you fiddle a bit around, but i couldn't make Shell::Command build
14:56 [Sno] is any of parrot developers here, too?
14:56 [Sno] anyone, sorry
14:56 * jnthn is a Perl 6 and .Net guy too :)
14:56 poor_soul hoelzro: the only modules i tried which didn't work out so well with ufo were Panda itself and Rakudo::Debugger
14:57 [Sno] jnthn: there is something small wrong in parrot - can I send you the 2 patches?
14:57 poor_soul hoelzro: Panda because you need to install the files manually
14:57 jnthn poor_soul: Rakudo::Debugger isn't just a Perl 6 module, is probably why :)
14:57 [Sno] both issues in configure stage
14:57 jnthn [Sno]: A PR is better; I don't think I have a Parrot commit bit these days...
14:57 jnthn Somebody else here must, though :)
14:58 [Sno] okay, that answers (not so comfortable as wanted, but does ^^)
14:58 tadzik poor_soul: yeah, panda is a bit quirky and its author is an idiot
14:58 tadzik poor_soul: I'll try to fix it in the coming days
14:59 poor_soul hoelzro: i built Rakudo::Debugger by using panda-build in build() and then installing the files manually
14:59 hoelzro I see
14:59 hoelzro nice
14:59 pmurias jnthn: what happened to your Parrot commit bit?
14:59 tadzik ha, so panda-build is useful for something. Good to know :)
14:59 FROGGS[mobile] joined #perl6
14:59 poor_soul hoelzro: if you need them, i can fix them up and put them in AUR, let me know
15:00 hoelzro poor_soul: I wouldn't mind having a look!
15:01 poor_soul hoelzro: is there an easy way to let you see them other than uploading to AUR? i would like you to review them before
15:01 jnthn pmurias: I didn't commit for ages and vaguely recall it not working out last time I tried..
15:01 hoelzro poor_soul: gist?
15:01 jnthn pmurias: And that was many, many months ago :)
15:01 hoelzro e-mail?
15:02 poor_soul hoelzro: im going for pastebin, is that ok?
15:02 hoelzro that's fine!
15:03 * moritz is pretty sure his parrot commit bit still works, and would be surprised if jnthn's were revoked
15:04 jnthn moritz: Hm, maybe something else was wrong...
15:04 pmurias it must have bitrotted ;)
15:05 jnthn :P
15:05 pmurias * has
15:05 poor_soul hoelzro: here's the one for JSON::Tiny, it's the cleanest [http://pastebin.com/29FnVN5u]
15:05 hoelzro sweet, thanks!
15:05 woolfy Thanks to Sno I am trying to install Perl 6 Rakudo as well.  This is scary...
15:06 poor_soul woolfy: from git or tar? which distro?
15:06 pmurias s/has/have/
15:06 woolfy I am following directions from http://rakudo.org/how-to-get-rakudo/ and downloaded the newest RakudoStar from http://rakudo.org/downloads/rakudo/
15:06 [Sno] woolfy: wait a bit, then you can use (cd lang/raduko-star && make install clean)
15:07 woolfy Sno: well, in my terminal window a lot of stuff is happening right now.
15:07 FROGGS[mobile] That sounds familiar :o)
15:08 woolfy I did have the prerequisites: GCC, Perl 5.8/newer, make utility, git, ICU4C.  So I thought: let's just do it.
15:08 moritz jnthn: note that the --gen-parrot clone URL is not suitable for pushing
15:08 woolfy Interesting page, http://rakudo.org/how-to-get-rakudo/
15:08 woolfy It says: "Once these prerequisites are installed, build and install Rakudo as follows: "
15:08 JimmyZ jnthn: I'm seeing you're still there
15:09 woolfy "cd rakudo"
15:09 woolfy Which is not what I expected.  lizmat did help me though.  But I think this page needs some adapting so noobs like me would do things in the right order.
15:09 FROGGS[mobile] +1
15:10 FROGGS[mobile] please write down the weird parts
15:10 woolfy Yeeehaaaa....  doing a "make"
15:11 woolfy FROGGS: well, http://rakudo.org/how-to-get-rakudo/ goes from one way of installing Rakudo to another and then goes back to the first way...
15:11 jnthn moritz: Ohh...I'd hope I'd have though tof htat, though :)
15:11 dalek Perlito: 87c649e | (Flavio S. Glock)++ | / (3 files):
15:11 dalek Perlito: Perlito5 - js - reference stringification - use less memory
15:11 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/87c649ef39
15:11 FROGGS[mobile] Hmmm, will read it careful when I am at my pc
15:11 woolfy Like, the "cd rakudo" is what you do after the "$ git clone git://github.com/rakudo/rakudo.git" and not what you do after manually downloading the latest RakudoStar.
15:12 poor_soul hoelzro: i just remembered that there was a problem that i fixed directly in rakudo-git PKGBUILD: it didn't have a /usr/lib/parrot/5.6.0/languages/perl6/site which made ufo fail
15:12 Ulti woolfy if you clone the current git repo and follow the README file its a lot clearer
15:13 hoelzro hmm
15:13 hoelzro curious
15:13 woolfy Ulti: your magical words mean nothing to me, I am sorry, have no idea what "clone the current git repo" means
15:13 poor_soul hoelzro: did it work for you
15:13 hoelzro poor_soul: I haven't tried yet
15:13 hoelzro I'm still at work =/
15:13 poor_soul ooh ok
15:14 poor_soul what do you say about the PKGBUILD
15:14 mberends joined #perl6
15:15 Ulti woolfy its totally worth learning what those magic words mean if you are a programmer :) git is easily the best revision management system around. The working copy of Rakudo is available for you to download, and the instructions bundled with the code are a lot clearer than that webpage...
15:15 * mberends approaches to help woolfy
15:15 hoelzro poor_soul: looks good!
15:16 Ulti woolfy: https://github.com/rakudo/rakudo is where the git repository is stored for the Rakudo compiler, you can download the zip file
15:16 poor_soul well then, i'll upload them when i've cleaned them up
15:16 woolfy Ulti: Thanks, you are of course right.  But I really think that a page that is called "How to get Rakudo" should explain a noob like me how to do stuff.
15:16 Ulti tbh the README in the rakudo star download is also a lot clearer than that webpage too
15:16 mberends woolfy: what operating system are you using?  (sorry if I didn't look for that in the backlog)
15:17 poor_soul hoelzro: note that i didn't create them for all of the modules included in R*
15:17 woolfy Ulti: I am already doing the make.  So it is busy.
15:17 woolfy mberends: I am already doing the make.  So I am already doing the stuff.
15:17 hoelzro poor_soul: well, I was thinking of combining what you have with my generation script
15:17 Ulti woolfy I agree about the webpage, I just mean if you want clearer instructions they do exist and probably in what you downloaded already
15:17 woolfy I was commenting on confusing parts of the page...
15:18 woolfy at the moment I am doing the "make install"
15:18 woolfy Seems to be going into the right direction...  :-)
15:18 mberends cool, that's plenty of progress :-)
15:18 Ulti woolfy are you on Windows?
15:18 woolfy No, I am on Ubuntu
15:19 Ulti you can apt-get install an olde version of Rakudo in Ubuntu
15:19 woolfy Ulti: too late for that...  :-)
15:19 Ulti heh
15:20 Ulti the one you are making at the moment is a lot better
15:20 woolfy Hey, if Sno has Rakudo installed, I cannot stay behind, huh!
15:20 poor_soul hoelzro: aprat from the missing modules, there's the need to upload nqp-git as well, since latest rakudo-git needs more than the 2013.08 version
15:20 poor_soul apart*
15:21 woolfy lizmat is out of the room for some time now, and for months now she tried to convince me to install Rakudo...  when she gets back, I probably have it...  :-)
15:21 hoelzro poor_soul: I have PKGBUILDs for the released versions, so hopefully that's good enough for R*
15:22 poor_soul hoelzro: are you the maintainer of rakudo and nqp on AUR?
15:23 hoelzro no
15:23 hoelzro sadly, not
15:23 hoelzro I maintain my own PKGBUILDs
15:23 dalek specs: 6440475 | larry++ | S29-functions.pod:
15:23 dalek specs: remove pasto defaults to sleep variants
15:23 dalek specs: review: https://github.com/perl6/specs/commit/64404756fc
15:23 woolfy "This is perl6 version 2013.08 built on parrot 5.5.0 revision 0"
15:23 Ulti win
15:24 woolfy Pffff that was scary!!!!
15:24 masak :D
15:24 tadzik revision 0
15:25 Ulti I find putting "2>&1 > /dev/null" on the end of every command makes it less scary :3
15:25 mberends woolfy: also do a 'make testable' to update the spectest files, it takes only seconds.
15:25 tadzik That's like a book/game/film title
15:27 masak tadzik: when I imagine it, it's a good one!
15:28 masak tadzik: well, the book is great, the film slightly less so.
15:28 tadzik I'll name my next game "Revision 0"
15:28 masak don't bother about the game :P
15:28 poor_soul hoelzro: i named them perl6-$lib-git
15:31 pmurias jnthn: do we have a way to convert a serialized serialization context to something humanly readable?
15:32 FROGGS[mobile] ahh (Oktoberfestbier)++
15:33 woolfy mberends: "make: *** No rule to make target `testable'.  Stop."
15:34 jnthn pmurias: No, short of deserializing it :)
15:35 poor_soul hoelzro: i've uploaded the modules, now i'm fixing nqp-git
15:35 hoelzro sweet
15:35 mberends woolfy: hmm, you must be in the Rakudo main directory for that to work.  Try "make help" to see whether testable is one of the options.
15:37 woolfy mberends: no, testable is not one of the options.
15:37 woolfy But this works:
15:37 woolfy ./perl6 -e 'say "Hello world"'
15:37 woolfy Hello world
15:37 denisboyun joined #perl6
15:38 jnthn woolfy: make test
15:39 poor_soul hoelzro: nqp-git in AUR too
15:39 woolfy jnthn: when I do that, this is the reply:
15:39 woolfy "To run the Rakudo compiler tests, use 'make rakudo-test'
15:39 woolfy To run the Perl 6 spectests, use 'make rakudo-spectest'"
15:40 jnthn woolfy: Oh, sorry, I ain't been watching and thought you were doing a repo build, not a star :)
15:41 mberends woolfy: those each take quite a long time to run, so don't waste time on them now.  Rather just experiment a bit with your new installation :)
15:41 jnthn Well, can always run them in the background ;)
15:41 rindolf joined #perl6
15:41 jnthn make rakudo-test runs the quick sanity tests :)
15:42 woolfy mberends and jnthn: thanks...  maybe later...   at the moment I am just happy that I can try to join you this weekend in Frankfurt, now I have a functioning Perl 6!
15:43 * jnthn just finished up his teaching gig and now has nothing to worry about but the weekend workshop :)
15:43 [Sno] documentation that raduko * requires gmp is mising
15:43 jnthn It...does?
15:44 [Sno] it's not mentioned in README - but without it fails linking
15:44 jnthn Fail. It's a Parrot optional thing that we don't even use...
15:45 [Sno] http://paste.scsys.co.uk/268120
15:45 [Sno] well, parrot links and runs fine without
15:45 [Sno] so I think, it's not a simple "fail" ;)
15:46 woolfy OK, 'make rakudo-test' is done in 29 seconds.  Passed without failures.  Sweet.
15:47 dalek specs: 042527b | larry++ | S29-functions.pod:
15:47 dalek specs: Only the basic sleep supports sleeping forever.
15:47 dalek specs:
15:47 dalek specs: It makes no sense ask sleep-timer to return how much time till forever,
15:47 dalek specs: nor is there a need for sleep-till to calculate when the end of time is.
15:47 dalek specs: review: https://github.com/perl6/specs/commit/042527b3c7
15:48 pmurias jnthn: serialization format version 7 is used only on the jvm?
15:48 [Sno] jnthn: neither bin/parrot nor lib/libparrot.dylib have a loader entry for gmp
15:49 [Sno] but parrot_config has it in ldflags o.O
15:49 * TimToady is amused that you folks assumed I really meant the Instant Inf, when it was merely a pasto :)
15:50 TimToady obviously you guys still think I'm smarter than I am...
15:51 jercos Have you considered that you might actually *be* smarter than you are?
15:52 pmurias jnthn: don't we depend on gmp for bignums on parrot?
15:52 masak TimToady: no, I was speaking generally about the expectations on Inf.
15:52 jnthn pmurias: No.
15:52 TimToady I used to be smarter than I are...
15:52 jnthn pmurias: We use the libtommath in the NQP repo :)
15:52 masak TimToady: for example, Inf is exapected to work in ranges where the other endpoint is a Str.
15:53 TimToady sure, I'd still like to push things in that direction, so we don't end up with too many typed infinities
15:54 TimToady but I'm not pushing it that hard since we invented * to fill most of those roles anyway
15:54 TimToady in a sense, sleep(*) is much more accurate than sleep(Inf)
15:55 poor_soul hm, here libgmp.so is linked in every parrot, nqp and rakudo related binary
15:56 [Sno] jnthn: thanks for the hint - there was an inconsitence in build configuration vs. sandbox configuration (for dependent packages) in lang/parrot
15:56 [Sno] as said: not a simple "Fail" ;)
15:56 masak TimToady: why does it make sense with typed undefs but not typed infinities?
15:58 TimToady what is the "sense" thing to which you refer?
15:58 timotimo moritz: let me suggest 429 Too Many Requests (RFC 6585)
15:58 timotimo The user has sent too many requests in a given amount of time. Intended for use with rate limiting schemes.[18]
15:58 jnthn TimToady: I thought it was common, but apparently not... :P
15:59 * jnthn decommutes :)
15:59 * TimToady just uses horse sense
15:59 * TimToady runs away from fires, toward water and grass
16:01 FROGGS joined #perl6
16:01 * TimToady thinks integers suporting ℵ₀ is kinda like grass stretching to the horizon...
16:03 pmurias jnthn: would it be sensible to have test which check the exact format things serialize to? (likely with a way to automatically update them when changing the format)
16:03 TimToady string infinity I can be argued is not so normal
16:04 pmurias jnthn: stuff like ok(nqp::serialize(...) eq "...")
16:05 raiph joined #perl6
16:06 FROGGS TimToady: well, if you stream something, you might have a Buf/Str that as an unknown length, which sort of infinity unless the opposite an be proven... (I'm imagining a lazy evaluation of a stream)
16:06 FROGGS dunno if that is too esoteric
16:07 FROGGS s/as an/has an/; s/which sort/which is short/
16:07 FROGGS -.-
16:09 dalek rakudo/nom: f7f3bb8 | (Elizabeth Mattijsen)++ | src/core/Temporal.pm:
16:09 dalek rakudo/nom: Adapt sleep() and friends to new spec
16:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7f3bb82e9
16:09 dalek roast: e49445b | (Elizabeth Mattijsen)++ | S29-context/sleep.t:
16:09 dalek roast: Adapt tests to adapted sleep() and friends spec
16:09 dalek roast: review: https://github.com/perl6/roast/commit/e49445be01
16:17 kaleem joined #perl6
16:18 masak today's mini-challenge: solve this Chinese 4th-grader's math problem. http://masak.org/carl/fourth-grade-math.jpg
16:18 masak don't report the answer on-channel. I just want to know how long it took you, in minutes. :)
16:19 FROGGS it would help if one could read the letter/words, right?
16:19 masak the task is to figure out how big the shaded area is. the one bit of information you get is that the upper edge of the rectangle has been bisected at its half point.
16:19 masak FROGGS: I'm assuming it says "what's the shaded area?"
16:19 FROGGS k
16:20 timotimo masak: can you explain that bisected comment?
16:20 timotimo because from the sketch i don't get that at all
16:20 timotimo maybe you meant the lower right corner?
16:20 timotimo oh!
16:20 timotimo now i get it
16:20 masak timotimo: the line that emanates from the lower right corner bisects the upper edge of the big rectangle into 50%-50% lengths.
16:20 masak followup challenge: write your solution as a nice Perl 6 program.
16:21 masak followup challenge II: write a small geometry deduction system, that (given the inputs of the task) can solve this problem on its own.
16:21 masak I'm guessing that the last task is a bit bigger than a mini-challenge, though... :)
16:22 * FROGGS .oO( jnthn solved this a minute ago by writing the ode in moarvm bytecode format )
16:22 masak try to avoid spoilers on-channel for people who want to cut their teeth on the problem themselves.
16:22 FROGGS code*
16:22 FROGGS gah, I need a new keyboard
16:23 berekuk joined #perl6
16:23 masak jnthn writing an ode is kinda nice, too.
16:23 pmichaud good morning, #perl6
16:23 FROGGS pmichaud: \o/
16:24 masak pmichaud! \o/
16:25 moritz \o pmichaud
16:25 masak fwiw, it took me 9 minutes to solve the problem with the area.
16:25 timotimo i was wondering last night: how efficient does an access to a $!foo in nqp and perl6 get? does it compile down to a hash access or will it become an access like storage_slots[1]?
16:25 pmichaud thought I'd stop in and say hello.  :)
16:25 masak knowing the solution, I consider that a bit slow.
16:25 timotimo hello pm! :)
16:25 masak pmichaud: hello!
16:26 masak timotimo: the latter, I think.
16:26 timotimo that sounds good
16:26 masak timotimo: but it's really up to the repr, IIUC.
16:26 timotimo yeah, pretend i had been asking about P6Opaque
16:26 masak timotimo: and MI messes things up in some way, though not fatally.
16:26 timotimo well, you really just need to do it per-REPR-Metaobject-combination, no?
16:26 masak yeah, guess so,.
16:27 timotimo and i suppose monkey typing and MOP usage could make that quite a bit harder
16:27 moritz timotimo: P6Opaque uses array lookup for attribute access
16:28 timotimo moritz: and at what time does "$!foobar" become "3"?
16:28 [Sno] jnthn: is nqp available separately (to avoid raduko-star build it's own)?
16:28 timotimo [Sno]: yes, it is. the repository is perl6/nqp on github
16:29 [Sno] timotimo: a relase tarball
16:29 woolfy Oh that's nice,  the 'make rakudo-spectest' just done in 1735CPU.  Just 7 failed.  I will pass the info forward to lizmat.
16:29 timotimo oh, you mean that
16:29 timotimo i think so; at least we make nqp releases
16:29 [Sno] yes, for packaging it's important to have tarballs ;)
16:29 moritz timotimo: I don't know exactly; I'd suppose at class composition time
16:30 moritz http://rakudo.org/downloads/nqp/
16:30 moritz (for [Sno] )
16:30 timotimo oh, that's right, because all access to $!foo must be inside methods of that class
16:30 dalek specs: db64e30 | dagurval++ | S32-setting-library/IO.pod:
16:30 dalek specs: Specced mkdir
16:30 dalek specs: review: https://github.com/perl6/specs/commit/db64e30e83
16:30 [Sno] moritz: thanks
16:30 timotimo i totally forgot that
16:30 moritz timotimo: except when you use nqp::getattr :-)
16:31 timotimo hm, but can't i put $! into an anonymous method and pass it into that class?
16:31 timotimo that, too ... i wonder if that can be made more efficient in the optimizer, since it's used somewhat often in nqp itself
16:31 moritz nope, you'll get a compile-time error while compiling the method
16:31 timotimo that sounds good
16:31 moritz r: my $x = method () { $!foo }
16:31 camelia rakudo 79c0f5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/eYhSbJxqKM�Cannot understand $!foo in this context�at /tmp/eYhSbJxqKM:1�------> [32mmy $x = method () { $!foo[33m�[31m }[0m�»
16:32 timotimo i suppose nqp::getattr and nqp::setattr are used somewhat often inside nqp (maybe also the core setting?) to access a superclass' attributes
16:32 timotimo and nqp::getattr and nqp::setattr probably do a costy lookup?
16:33 * moritz could only speculate
16:34 * timotimo is not sure how to figure that out
16:34 xinming joined #perl6
16:34 timotimo i suppose i could time a thousand nqp::getattr and a thousand $! accesses
16:38 drigo left #perl6
16:39 pmichaud jnthn can tell you more, but I'm fairly sure that $!attr lookups are designed to be quite optimizable
16:39 pmichaud and that it's designed to be not costly
16:40 pmichaud the same is true to some extent for nqp::getattr and nqp::setattr.  Keep in mind that nqp can optimize nqp:: ops a fair bit... they aren't necessarily atomic opcodes
16:40 masak yep. the caption says 阴影面积 "the shaded area" -- I don't recognize the first character.
16:41 lizmat pmichaud o/
16:41 pmichaud i.e.,   nqp::getattr($obj, SomeClass, '$!attr') can have a lot of optimization (all the way down to a slot lookup) as long as SomeClass has already been composed.
16:41 sqirrel joined #perl6
16:42 pmichaud again, jnthn++ knows the true details.
16:43 timotimo right; and the optimizer runs after compilation for that module is complete
16:43 timotimo so in theory it should all be composed already
16:43 pmichaud oh, I suspect the attr lookup could be optimized even before the optimizer phase runs.
16:43 pmichaud i.e., as part of compiling the nqp::getattr opcode
16:43 dalek roast: fa7d022 | dagurval++ | S32-io/mkdir_rmdir.t:
16:43 dalek roast: IO::Path tests for mkdir rmdir
16:43 dalek roast: review: https://github.com/perl6/roast/commit/fa7d022f73
16:43 timotimo mhm
16:44 timotimo well, i know there's a way to run a sub every time the compiler encounters such an op and i can just return a bit of qast from that
16:44 timotimo and should have access to the context that has the world and class info and everything
16:44 pmichaud correct.
16:44 pmichaud alas, I have to run off again... so many things to do here.  bbl
16:45 timotimo was nice to hear from you, pm :)
16:45 pmichaud I expect to be available more often in the near future as things are settling down here.  :)
16:49 masak \o/
16:50 kaleem joined #perl6
16:53 FROGGS cool
16:55 denis_boyun joined #perl6
16:55 timotimo if that means anything, the jvm version of getattr just calls obj.get_attribute_boxed with a string
16:55 timotimo it may very well be that the jvm jit will turn that super efficient after a bit of warm-up
16:56 SamuraiJack joined #perl6
16:56 timotimo i always forget where i have to look to find all these things ...
16:57 timotimo so, getattr is mapped with add_core_pirop_mapping, that means it relies on parrot built-in functionality?
16:58 timotimo hm.
16:59 bluescreen10 joined #perl6
17:00 domidumont joined #perl6
17:00 arnsholt timotimo: It means that it results in a call to a single PIR op, which is probably implemented in src/vm/parrot/ops/nqp.ops
17:01 timotimo i can't find the getattribute implementation there
17:01 timotimo but it slightly worries me that it gets passed a string
17:01 raiph joined #perl6
17:02 arnsholt Hm? Attribute lookup is essentially a string => thing map lookup
17:02 TimToady which can happen at compile time, hopefully
17:02 timotimo it could be faster if the string => thing map lookup could be turned into just a static index into the repr's slots at compile time
17:03 timotimo if that's actually the way the repr is built
17:03 TimToady otherwise we really have no hope of ever running faster than P5
17:03 timotimo if the repr contains an actual hash map for string to thing, that wouldn't help much (thinking primarily of wasted space here), but above it said there was a struct-like thing underlying the p6opaque
17:04 arnsholt ATM that's what we do (from memory, but pretty sure)
17:04 timotimo "that" is what exactly?
17:04 arnsholt The REPR computes the offsets for each attribute, which is looked up when we get an attribute
17:05 spider-mario joined #perl6
17:05 arnsholt Oh, but there's the hint functionality (looked up the Parrot code now)
17:05 timotimo oh, right
17:06 timotimo perhaps at compile time we could ask the repr for the offset and provide that as the "hint" everywhere
17:06 timotimo i'll be afk for a bit first, though
17:06 arnsholt Yeah, I think there's something like that going on as well, but I'm not familiar with those bits
17:07 pmurias to do that we would need to know the exact class/REPR of an object
17:10 FROGGS TimToady:
17:10 FROGGS TimToady: you actually think we *can* run faster as P5?
17:11 FROGGS because, Win95 runs faster as Windows 7 on my box, even if it has no USB support...
17:13 FROGGS I would be happy if P5 would just be twice as fast as rakudo
17:19 lizmat joined #perl6
17:20 pmurias I would be really disappointed if we didn't manage to beat P5 in speed at some point
17:21 lizmat also: if we define speed in wallclock terms, Perl6 will most definitely beat P5 in the long run
17:21 lizmat it will need more cores than just the one that P5 will be using
17:22 iSlug joined #perl6
17:24 pmurias are there any real reasons for Perl 6 to run slower than Perl 5?
17:25 TimToady P6 is also designed to beat P5 on a single core, when the optimizer gets good enough to recognize where P6's flexibility can be viewed as damage and routed around :)
17:25 TimToady the specs make a lot of guarantees about when the optimizer can assume things aren't going to change, but the compiler does not yet take much advantage of these guarantees
17:26 TimToady that is not even taking into consideration the possibility of JITs and such
17:26 TimToady nor is it taking into account the availability of native types
17:27 TimToady well, I guess P5 uses native int already, so P6's Int could be viewed as a small pessimization
17:27 ajr joined #perl6
17:27 ribasushi wishitem: please make function calls cheap again in p6
17:28 TimToady likewise the preference for Rat over Num
17:28 ribasushi the impact of entersub in p5 is insane :(
17:28 TimToady indeed
17:29 TimToady part of the motivation for multi-dispatch is to do the type checking first, so the routine doesn't have to check again at binding, but we don't do much with that optimization yet either, afaik
17:29 berekuk joined #perl6
17:31 TimToady so it'll be a bit of apples/oranges comparison, since P5 does all the arg unpacking explicitly
17:31 masak wishitem: a resource that collects together various optimizations we could and eventually will do in Perl 6, along with concrete examples and references to other similar optimizations on e.g. the JVM or in v8.
17:31 lizmat is it really the moment in time already to talk about optimizations ?
17:32 * masak .oO( given enough inlining, all subs are shallow ) :P
17:32 ribasushi TimToady: well, when the function sigs land in p5, an argument-less function becomes oranges-oranges comparison
17:32 masak lizmat: *talk* about them, yes.
17:32 jnap joined #perl6
17:32 TimToady ribasushi: nodnod, I'm looking forward to it :)
17:33 TimToady lizmat: the specs grep out to 55 mentions of "optimiz"
17:34 lizmat and 5 of "optimized away"  :-)
17:34 TimToady and one mention of optimis, plus one optimal :)
17:34 timotimo lizmat: i'm kind of itching to get a bit of optimization in
17:35 ribasushi masak: inlining is for FP-wimps ;)
17:35 TimToady "optimalization" is a word that needs to be optimized :)
17:35 timotimo in a perfect universe, i'd of course be doing something entirely different, but my lack of skill and motivation in other areas kind of leaves me with not terribly many options than to do what interests me :P
17:35 ribasushi masak: but really I do not look forward to writing stuff like this ever again: https://github.com/dbsrgits/dbix-class/blob/m​aster/t/resultset/rowparser_internals.t#L603
17:36 dalek specs: cc24a5d | (Elizabeth Mattijsen)++ | S02-bits.pod:
17:36 dalek specs: Optimize spello away
17:36 dalek specs: review: https://github.com/perl6/specs/commit/cc24a5d771
17:36 ribasushi so cheap-funcalls please ;)
17:36 timotimo .o(for example, i could shove 6model into parrot-core, build a jit-compiler for parrot, create a perl6-on-cranes or something, ...)
17:37 tadzik I'm curious about etymology of "optimalization". In Polish, we say "optymalizacja"
17:37 timotimo "torture test" indeed
17:37 lizmat tadzik: in Dutch "optimalisatie"
17:38 * [Coke] waves to pmichaud  in backscroll.
17:42 * tadzik is puzzled with the silence regarding http://news.perlfoundation.org/201​3/07/hague-grant-application.html
17:43 jnap yeah, me too
17:44 berekuk joined #perl6
17:45 lizmat rest assured, no news is good news
17:48 raiph joined #perl6
17:50 TimToady on the math problem, I didn't time it exactly, but it was about 45 seconds, subjective.
17:50 TimToady maybe I'm still smarter than I am
17:52 iSlug joined #perl6
17:56 pmurias TimToady: isn't perl6-on-cranes a web framework?
17:57 FROGGS timotimo: you are famous now :o)  http://de.webfail.com/9366caf3a37
17:58 tadzik he he
18:00 lizmat $ ack KeyHash src/core
18:00 lizmat src/core/stubs.pm
18:00 lizmat 10:my class KeyHash is Iterable does Associative { }
18:00 lizmat that's rather disappointing for something that is supposed to be a role
18:02 timotimo FROGGS: cool
18:03 timotimo it's lovely how they take the pictures from thingsfittingperfectlyintothings and not credit that tumblr, or the people that that tumblr credited...
18:03 * timotimo bbl
18:04 lizmat hhmmm… how is one supposed to specify the default value of a hash that is an attribute ?
18:05 lizmat r: class A { has %.a is default(0) }
18:05 camelia rakudo f7f3bb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4H8Yx473ybâ�¤Can't use unknown trait 'is default' in an attribute declaration.â�¤at /tmp/4H8Yx473yb:1â�¤------> â�¤    expecting any of:â�¤        rwâ�¤        readonlyâ�¤        box_targetâ�¤Â»
18:05 lizmat is this a NYI ?
18:05 nebuchadnezzar joined #perl6
18:07 FROGGS r: class A { has %.a is readonly }
18:07 camelia rakudo f7f3bb:  ( no output )
18:07 FROGGS hmmmm
18:08 FROGGS a bit weird
18:08 lizmat I guess for after the RaNIW
18:09 FROGGS I guess this happens in Perl6::Actions in scope_delarator
18:11 * lizmat has some work to do in that area for variable traits anyway
18:12 diakopter tadzik: lololol "its author is an ..."
18:14 tadzik diakopter: I, above all people, am allowed to say this :P
18:17 pmurias jnthn: potential craziness nqp-parrot's version 6 of the serialization format is different from nqp-jvm one (hllOwner thing)
18:17 pmurias jnthn: but it seems it won't be a problem as nqp only uses version 7 currently
18:19 btyler joined #perl6
18:19 dalek roast: 41ee5af | dagurval++ | S03-operators/buf.t:
18:19 dalek roast: unfudge rakudo
18:19 dalek roast: review: https://github.com/perl6/roast/commit/41ee5aff3b
18:28 teslos joined #perl6
18:40 masak so, Rakudo release next week.
18:40 masak how close are we to running ecosystem things on the JVM?
18:41 masak (I'm sorry, I'm out of touch, and someone else might already have tried various things, saving me the trouble.)
18:41 lizmat :q
18:41 * hugme hugs lizmat, good vi(m) user!
18:41 lizmat hehe
18:42 lizmat t/spec/S03-operators/set.rakudo.parrot .......................... Dubious, test returned 1 (wstat 256, 0x100)
18:42 lizmat Failed 244/296 subtests   # just verified that making Set Iterable makes a lot of tests fail
18:43 masak why would we want Set to be Iterable...?
18:44 masak followup question: would a concerted effort to make the ecosystem pass on the JVM likely get us there in a week?
18:44 arnsholt masak: I don't think I'll be able to wrap up the NativeCall things in a week
18:44 masak arnsholt: OK.
18:44 arnsholt I'm making good progress, but there's a gnarly blocker which is preventing NativeCall.pm6 itself from getting off the ground
18:45 masak I see.
18:46 masak I wish I could help, but I probably can't. :/
18:46 Mouq joined #perl6
18:46 nebuchadnezzar joined #perl6
18:47 arnsholt I've some thoughts gathered, but I need to hammer them out a bit more. Then check with jnthn and make sure it's actually a good idea
18:50 zwut00 joined #perl6
18:51 lizmat masak: I have no idea, but the original Set code contained "is Iterable" and the spectests contain tests for the .iterator method
18:51 lizmat masak: which s supplied by Iterable
18:52 bluescreen10 joined #perl6
18:52 masak lizmat: what do those tests, by and large, try to accomplish?
18:53 masak rn: say Hash ~~ Iterable
18:53 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Iterable' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36) â�¤  at /ho…
18:53 camelia ..rakudo f7f3bb: OUTPUT«True␤»
18:53 masak hm, if Hash is Iterable, I guess Set should probably be, too... :/
18:54 dmol joined #perl6
18:54 lizmat masak: is $s.iterator.grep(Str).elems, 3, ".iterator yields three Strs";
18:55 lizmat the spec says that Iterable is a *role*
18:55 masak makes sense.
18:55 SmokeMachine joined #perl6
18:55 masak r: my $s = set "a", "b", "c"; say $s.elems; say $s.grep(Str).elems
18:55 camelia rakudo f7f3bb: OUTPUT«3␤0␤»
18:55 masak hrm.
18:56 masak r: my $s = set "a", "b", "c"; say $s.elems; say $s.list.grep(Str).elems
18:56 camelia rakudo f7f3bb: OUTPUT«3␤3␤»
18:56 TimToady r: my $s = set "a", "b", "c"; say $s.elems; say @$s.grep(Str).elems
18:56 camelia rakudo f7f3bb: OUTPUT«3␤3␤»
18:58 TimToady we want sets to behave more like items in list context, so it can't do whatever it is that decides list interpolation semantics
18:58 masak fariy 'nuff.
18:58 masak air*
18:58 TimToady already put it into the RI Clogs
19:00 * colomon prefers MI Clogs
19:00 pmurias RI Clogs?
19:01 lizmat ok, I'm lost now: does this mean it is ok for Sets/Bags not to be Iterable, or that they should be Iterable
19:01 lizmat and therefore I should try to fix the problems caused by making it Iterable ?
19:02 [Sno] I get a core first time building raduko-star: http://paste.scsys.co.uk/268143
19:02 [Sno] redo the make succeeds
19:02 [Sno] but when "make clean" and redo, it cores again
19:04 lizmat [Sno]: please report as bug to rakudobug@perl.org
19:04 [Sno] well, I don't know whether it's a bug or not, but will do
19:06 alester joined #perl6
19:06 PZt joined #perl6
19:10 masak lizmat: pending further information, I'm leaning towards that Set should be Iterable.
19:10 masak lizmat: because Hash is.
19:11 masak lizmat: "further information" includes the realization, for example, that it being Iterable is what makes it flatten in list context, and that's why all those tests break.
19:11 masak in which case I would change my mind :)
19:11 lizmat that *is* what makes the tests break
19:13 lizmat doing some code cleanup / reorg now, will come back to it later
19:14 colomon joined #perl6
19:17 masak lizmat: if being Iterable causes flattening, then Set shouldn't be Iterable, because (as TimToady said), Set shouldn't flatten by default.
19:17 dalek rakudo/nom: 1980a70 | (Elizabeth Mattijsen)++ | src/core/stubs.pm:
19:17 dalek rakudo/nom: Remove unnecessary KeyHash stub
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1980a70a5b
19:18 masak lizmat: it's highly likely that those tests were written at a time when we thought Sets were more flattenable than our current understanding.
19:18 lizmat but maybe we can still have an iterator without it being Iterable ?
19:19 masak maybe.
19:19 masak if that passes all the tests, then sure.
19:19 masak but it feels... suspect.
19:20 lizmat it is suspect, but so is parsing of adverbs  :-)
19:20 masak heh. :)
19:20 masak parsing of adverbs falls under "torment the implementors to serve the users".
19:21 masak not sure the same can be said for Set.iterator
19:22 moritz \o
19:22 masak o/
19:32 teslos_ joined #perl6
19:33 dalek Perlito: 945df32 | (Flavio S. Glock)++ | TODO-perlito5:
19:33 dalek Perlito: Perlito5 - TODO update
19:33 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/945df32853
19:37 dalek Perlito: c1fe8eb | (Flavio S. Glock)++ | src5/lib/Perlito5/Exporter.pm:
19:37 dalek Perlito: Perlito5 - add minimal Exporter.pm; placeholder
19:37 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/c1fe8ebab0
19:38 FROGGS joined #perl6
19:49 EvanTeitelman joined #perl6
20:05 FROGGS joined #perl6
20:22 iSlug joined #perl6
20:23 dalek roast: 7553f76 | (Elizabeth Mattijsen)++ | S02-types/ (2 files):
20:23 dalek roast: Skip tests for KeyHash for now
20:23 dalek roast: review: https://github.com/perl6/roast/commit/7553f76013
20:26 bluescreen10 joined #perl6
20:31 tgt joined #perl6
20:34 btyler_ joined #perl6
20:37 tgt joined #perl6
20:39 dalek rakudo/nom: 69c3cce | (Elizabeth Mattijsen)++ | src/core/ (4 files):
20:39 dalek rakudo/nom: Move at_key/delete to from role to class (where they should be)
20:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69c3cce421
20:40 lizmat calls it a day
20:40 lizmat gnight #perl6!
20:40 jnthn 'night, lizmat
20:43 colomon \o
20:43 kbaker joined #perl6
21:03 PerlJam joined #perl6
21:05 thou joined #perl6
21:09 denis_boyun joined #perl6
21:10 EvanTeitelman joined #perl6
21:12 dmol joined #perl6
21:22 donaldh joined #perl6
21:23 jnap joined #perl6
21:23 stevan_ joined #perl6
21:23 kst`` joined #perl6
21:29 krokite joined #perl6
21:35 dmol joined #perl6
21:47 btyler joined #perl6
21:53 locsmif joined #perl6
22:00 zwut00 left #perl6
22:07 pmurias jnthn: why is 0 of the string heap always null?
22:07 diakopter it's not; it's off-by-one intentionally
22:07 geekosaur .oO { someone's been doing too much BSD }
22:08 jnthn pmurias: Forget the exact reason, but we need to represent the null string somehow...
22:08 jnthn pmurias: Think it turned out easiest to just do it that way.
22:08 jnthn pmurias: iirc, I special-cased it to always be in 0 as it messed up the seen hash...
22:09 pmurias I'll to it that way to for consistency
22:10 pmurias s/to/too
22:10 BenGoldberg joined #perl6
22:10 jnthn You'll too it that way? ;)
22:10 dmol joined #perl6
22:10 jnthn oh, :2nd/to/ :)
22:12 pmurias typing on irc and translating a ton of boring serialization code doesn't mix together well ;)
22:13 diakopter tell me about it
22:14 jnthn tell *me* about it - I had to write the original! :P
22:14 jnthn Maybe I shoulda put random stories about dugongs in the comments to make it more interesting.
22:14 diakopter *titter*
22:16 tadzik joined #perl6
22:16 masak "The tale of the dugong and the serialization."
22:17 masak very popular with the 4yo crowd.
22:17 * diakopter looks up what a dugong is
22:17 jnthn "A dugong swam past. After 2 bytes of padding, another dugong followed."
22:18 masak diakopter: http://www.weebls-stuff.com/songs/dugong/
22:18 jnthn diakopter: http://www.weebls-stuff.com/songs/dugong/
22:18 jnthn darn, masak won :P
22:19 masak :P
22:19 masak jnthn: one of us has spent far too much time in the other's company :P
22:19 colomon masak++ # brightening up a five-year-old's dinnertime
22:19 masak :D
22:20 jnthn tbh, I wouldn't have thought of stealing a chart from xbox magazine to compare sea creatures..
22:20 colomon does it ever stop?
22:20 masak colomon: also play http://www.weebls-stuff.com/songs/kenya/ for good measure.
22:20 jnthn no :)
22:20 jnthn Though it may go out of sync :)
22:20 masak colomon: no, it loops.
22:20 colomon cruel
22:21 jnthn Don't forget the one about cucumber farming... http://www.weebls-stuff.com/songs/cucumbers/
22:22 masak so many quality videos.
22:22 masak I would also like to recommend the one about the mango: http://www.weebls-stuff.com/songs/mango/
22:23 locsmif hot tamale!
22:24 huf somehow reminds me of this https://www.youtube.com/watch?v=J8MRVGPGfWg
22:32 donaldh jnthn: I'm back looking at ModuleLoader search_path which needs to produce absolute paths for the current $*CWD.
22:32 donaldh jnthn: haven't managed to figure out how to lookup IO::Spec.rel2abs .
22:32 Mouq joined #perl6
22:33 skids joined #perl6
22:33 jnthn donaldh: Where'd you try looking? It comes from the setting...
22:33 donaldh jnthn: would it make sense for the setting to provide a sub to ModuleLoader, for ModuleLoader to call to get a search path?
22:34 jnthn donaldh: If you're in the module loader, then you have %settings_loaded handy...you can locate it via that...
22:34 jnthn donaldh: But I'm wondering if this is a clean way to do it...
22:34 donaldh jnthn: I guess I don't know how to introspect what I can get from %settings_loaded
22:35 jnthn Something like my $IO := nqp::ctxlexpad(%settings_loaded<CORE>)<IO>;
22:35 donaldh Could the setting register a sub  that provides a search_path ?
22:35 berekuk joined #perl6
22:35 jnthn Then $IO.WHO<Spec> or so...
22:35 jnthn Yes, it could do that and it's probably cleaner.
22:36 jnthn If you put a method to register it into ModuleLoader
22:36 jnthn Then you can call it like
22:36 jnthn nqp::gethllsym('perl6', 'ModuleLoader').register_absolutifier(sub ($path) { ... });
22:37 Mouq r: my my $mine
22:37 camelia rakudo 69c3cc: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Type 'my' is not declaredâ�¤at /tmp/eoLSv_z_a3:1â�¤------> [32mmy my[33mâ��[31m $mine[0mâ�¤Malformed myâ�¤at /tmp/eoLSv_z_a3:1â�¤------> [32mmy [33mâ��[31mmy $mine[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤â�¤Â»
22:37 donaldh okay, I'll try that approach.
22:38 donaldh thanks for pointing out nqp::ctxlexpad as well.
22:38 jnthn r: class my { }; my my $mine
22:38 camelia rakudo 69c3cc:  ( no output )
22:39 donaldh r: class my { }; my my $my;
22:39 camelia rakudo 69c3cc:  ( no output )
22:39 Mouq r: my state $shrug
22:39 camelia rakudo 69c3cc: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Type 'state' is not declaredâ�¤at /tmp/iPEKyWMsrX:1â�¤------> [32mmy state[33mâ��[31m $shrug[0mâ�¤Malformed myâ�¤at /tmp/iPEKyWMsrX:1â�¤------> [32mmy [33mâ��[31mstate $shrug[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤â�¤Â»â€¦
22:39 takesako joined #perl6
22:46 donaldh r: multi sub infix:<my>($a, $b) { $a + $b }; my $my = 1; $my = $my my $my
22:46 camelia rakudo 69c3cc:  ( no output )
22:48 colomon r: multi sub infix:<my>($a, $b) { $a + $b }; my $my = 1; $my = $my my $my; say $my
22:48 camelia rakudo 69c3cc: OUTPUT«2␤»
22:48 masak 'night, #perl6
22:57 census joined #perl6
23:01 dalek perl6-roast-data: 3c95946 | coke++ | / (5 files):
23:01 dalek perl6-roast-data: today (automated commit)
23:01 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/3c95946395
23:05 jnthn sleep &
23:08 dalek Pugs.hs: 370c8c2 | coke++ | t/spectest.data:
23:08 dalek Pugs.hs: This test is now out of reach.
23:08 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/370c8c2616
23:12 jnap joined #perl6
23:17 schen joined #perl6
23:30 BenGoldberg joined #perl6
23:32 berekuk joined #perl6
23:33 itz joined #perl6
23:34 dalek roast: 7d57c4d | coke++ | S (2 files):
23:34 dalek roast: rakudo.jvm fudge
23:34 dalek roast: review: https://github.com/perl6/roast/commit/7d57c4df9e
23:36 btyler joined #perl6
23:39 BenGoldberg yoleaux: karmatop
23:39 BenGoldberg Err, oops
23:40 BenGoldberg preflex: karmatop
23:40 preflex c: 202122; g: 9871; ##c: 7874; c/c: 7113; moritz: 4968; whiteknight: 4931; bacek: 4624; notepad: 4305; jnthn: 4245; #c: 3767
23:41 BenGoldberg If perl were named perl++ then it would have lots of good karma! :)
23:42 bearded_clam joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo