Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-07-28

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:02 daemon left #perl6
00:02 daemon joined #perl6
00:04 domidumont1 joined #perl6
00:05 domidumont left #perl6
00:10 ab5tract left #perl6
00:15 cryptographrix joined #perl6
00:18 Chillance left #perl6
00:23 thou left #perl6
00:35 wamba left #perl6
00:37 wamba joined #perl6
00:41 jedai joined #perl6
00:51 f00li5h[HIREME] is now known as f00li5h
00:54 cryptographrix left #perl6
00:57 wamba left #perl6
00:57 wamba joined #perl6
00:57 soh_cah_toa joined #perl6
00:58 wamba left #perl6
01:00 tokuhir__ left #perl6
01:00 tokuhir__ joined #perl6
01:00 wamba joined #perl6
01:01 cryptographrix joined #perl6
01:01 noganex_ joined #perl6
01:05 tokuhir__ left #perl6
01:05 noganex left #perl6
01:05 AndroUser2 joined #perl6
01:05 cryptographrix left #perl6
01:08 wamba left #perl6
01:10 AndroUser2 left #perl6
01:11 cryptographrix joined #perl6
01:15 aloha left #perl6
01:16 LaVolta joined #perl6
01:17 LaVolta perl6: /test/.WHAT.say; say /test/.isa(Cool);
01:17 p6eval rakudo 922500: OUTPUT«Regex()␤1␤»
01:17 p6eval ..pugs: OUTPUT«Regex␤*** No such subroutine: "&Cool"␤    at /tmp/CPn9GCA02k line 1, column 33-37␤»
01:17 p6eval ..niecza v8-3-g838bc38: OUTPUT«Unhandled exception: Unable to resolve method say in class Regex␤  at /tmp/y8hlM_THe3 line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1933 (CORE C906_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1934 (CORE module-CORE …
01:18 LaVolta When did things change? Regex is now Cool … :)
01:24 crk joined #perl6
01:26 aloha joined #perl6
01:28 lichtkind left #perl6
01:28 crk rakudo: say 3;
01:28 p6eval rakudo 922500: OUTPUT«3␤»
01:30 crk perl6: sub infix:<foo> ($a, $b) is tighter(&infix:<+>) is assoc('left') {}
01:30 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unexpected named parameter 'tighter' passed␤»
01:30 p6eval ..pugs:  ( no output )
01:30 p6eval ..niecza v8-3-g838bc38: OUTPUT«Potential difficulties:␤  $a is declared but not used at /tmp/4UkKb0boH5 line 1:␤------> [32msub infix:<foo> ([33m⏏[31m$a, $b) is tighter(&infix:<+>) is assoc([0m␤  $b is declared but not used at /tmp/4UkKb0boH5 line 1:␤------> [32msub infix:<foo> ($a, …
01:40 cryptographrix left #perl6
01:47 TimToady LaVolta: Regex is not supposed to be Cool
01:47 LaVolta TimToady:  so that was an accident?
01:48 TimToady well, depends on how you define accident, but kinda
01:48 LaVolta :-P
01:48 cryptographrix joined #perl6
01:49 TimToady Cool is intended to fill in for the type conversions of P5
01:49 TimToady so it's really about numerics and strings
01:49 whiteknight left #perl6
01:49 TimToady but there was some misunderstanding that most of the builtin types should be Cool at one point
01:51 TimToady but there's no reason a Regex should automatically convert to a number or a string
01:51 TimToady even if regexes think they're strings in P5
01:52 LaVolta So, in Perl5 we just use Strs, Nums interchangably, after introduced type system, it is needed to have a super class for all the base types? am I right?
01:52 TimToady Cool is the base class for numbers and strings in P6 now, yes
01:53 donri left #perl6
01:53 TimToady and we have default methods there that can interconvert in the way a P5 programmer might expect
01:53 _sri is perl6 really "solid enough" now?
01:53 LaVolta ah…sorry, "after introducing the type system", grammar error.
01:54 TimToady perl6: say (1 ~ '2') / 3
01:54 p6eval pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«4␤»
01:54 TimToady that goes through Cool in both directions
01:54 _sri https://twitter.com/#!/perlb​uzz/status/96367030428631040 # this could backfire
01:54 LaVolta Cool! :)
01:56 LaVolta now i think I get it: regex can't do what other subclass of Cool can do, so it's not Cool then.
01:58 TimToady _sri: you worry too much
01:59 _sri TimToady: you worry too little ;)
01:59 TimToady I don't think so :)
02:01 TimToady nom &
02:06 AndroUser2 joined #perl6
02:06 cryptographrix left #perl6
02:11 soh_cah_toa left #perl6
02:27 sorear _sri: I think that that statement is valid, if you're careful not to interpret it too broadly
02:27 sorear Perl 6 is solid enough that if you start thinking about how to port modules, you won't be wasting time
02:27 sorear emphasis on "start" and "thinking"
02:28 _sri sounds like you're promising me a pony :)
02:29 sorear TimToady: do you know where I can procure copies of soto 2008+ ?
02:31 _sri but that reminds me… are non-blocking sockets finally in?
02:35 jaldhar joined #perl6
02:42 woosley joined #perl6
02:50 dalek roast: c7c1e2f | Coke++ | S0 (8 files):
02:50 dalek roast: nom fudging
02:50 dalek roast: review: https://github.com/perl6/roast/commit/c7c1e2f157
02:52 dalek rakudo/nom: 5bfd327 | Coke++ | t/spectest.data:
02:52 dalek rakudo/nom: track more test error status, reclaim some files.
02:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5bfd327510
02:52 * sorear wants a ponie
03:00 soh_cah_toa joined #perl6
03:04 woosley left #perl6
03:05 woosley joined #perl6
03:10 [Coke] Files=294, Tests=8383
03:11 [Coke] (nom)
03:11 woosley left #perl6
03:15 woosley joined #perl6
03:16 woosley left #perl6
03:19 kaare_ joined #perl6
03:23 Su-Shee_ joined #perl6
03:26 Su-Shee left #perl6
04:11 birdwindupbird joined #perl6
04:19 AndroUser2 left #perl6
04:27 satyavvd joined #perl6
04:35 masak joined #perl6
04:35 masak morning, #perl6
04:36 masak _sri: promising (and delivering) a pony has been the purpose all along.
04:36 LaVolta oh hai, masak
04:36 masak I'd add that "that promise is now coming true", but that was true for Pugs as well. the difference is one of scale.
04:37 masak today's effort is broader, deeper, and will likely result in a faster implementation.
04:37 masak er. one that runs faster, that is. Pugs was written at an unusually high pace.
04:40 crk left #perl6
04:41 masak _sri: and no: non-blocking sockets are not finally in (in Rakudo).
04:42 masak seems the set of people who really want it and the set of people who can be bothered to patch Rakudo are disjunct. :/
04:43 molaf joined #perl6
04:56 kjeldahl left #perl6
04:59 * masak commutes
04:59 masak left #perl6
05:13 LaVolta left #perl6
05:20 koban joined #perl6
05:22 Su-Shee_ is now known as Su-Shee
05:26 soh_cah_toa left #perl6
05:29 woosley1 joined #perl6
05:40 molaf left #perl6
05:41 r joined #perl6
05:41 r left #perl6
05:53 beekor joined #perl6
06:04 mberends left #perl6
06:07 wtw joined #perl6
06:13 mkramer joined #perl6
06:18 jnthn morning, #perl6
06:28 jnthn nom: prompt "huh?"
06:28 p6eval nom: OUTPUT«Could not find sub &prompt␤current instr.: '_block1002' pc 75 ((file unknown):61425851) (/tmp/KhiaUwNzE4:1)␤»
06:34 jnthn commute &
06:35 dalek rakudo/nom: 6383a6d | jonathan++ | src/core/IO.pm:
06:35 dalek rakudo/nom: Implement &prompt.
06:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6383a6d1ad
06:36 daniel-s joined #perl6
06:40 araujo left #perl6
06:40 TiMBuS left #perl6
06:40 daniel-s_ joined #perl6
06:40 daniel-s left #perl6
06:44 daniel-s_ left #perl6
06:44 daniel-s__ joined #perl6
06:45 cognominal_ left #perl6
06:45 thou joined #perl6
06:45 cognominal_ joined #perl6
06:47 localhost joined #perl6
06:48 dalek features: 56d4d99 | larry++ | features.json:
06:48 dalek features: yet more codes
06:48 dalek features: review: https://github.com/perl6/f​eatures/commit/56d4d998ef
06:49 _daniel-s__ joined #perl6
06:49 daniel-s__ left #perl6
06:51 localhost left #perl6
06:53 localhost joined #perl6
06:53 lue left #perl6
06:53 _daniel-s__ left #perl6
06:53 _daniel-s__ joined #perl6
06:55 localhost left #perl6
06:58 daniel-s joined #perl6
06:58 _daniel-s__ left #perl6
07:02 daniel-s left #perl6
07:02 daniel-s joined #perl6
07:06 daniel-s_ joined #perl6
07:07 daniel-s left #perl6
07:07 Mowah joined #perl6
07:11 daniel-s__ joined #perl6
07:11 daniel-s_ left #perl6
07:14 mj41_nb joined #perl6
07:15 daniel-s__ left #perl6
07:15 daniel-s__ joined #perl6
07:16 moritz nom has lots of non-zero exit statusses in the spectest run
07:16 moritz 5 in my latest run
07:16 moritz erm, 4
07:16 moritz 2x status 1, 2x status 11
07:16 TiMBuS joined #perl6
07:19 thou left #perl6
07:20 daniel-s__ left #perl6
07:20 _daniel-s__ joined #perl6
07:20 EguoWang joined #perl6
07:22 EguoWang left #perl6
07:24 daniel-s joined #perl6
07:24 jaldhar left #perl6
07:24 _daniel-s__ left #perl6
07:29 daniel-s_ joined #perl6
07:29 daniel-s left #perl6
07:33 daniel-s_ left #perl6
07:35 daniel-s__ joined #perl6
07:39 daniel-s__ left #perl6
07:39 daniel-s__ joined #perl6
07:44 daniel-s__ left #perl6
07:44 daniel-s__ joined #perl6
07:44 Jackneill joined #perl6
07:44 Jackneill left #perl6
07:44 Jackneill joined #perl6
07:48 daniel-s__ left #perl6
07:48 daniel-s__ joined #perl6
07:52 daniel-s__ left #perl6
07:53 daniel-s__ joined #perl6
07:57 daniel-s__ left #perl6
07:57 _daniel-s__ joined #perl6
08:01 _daniel-s__ left #perl6
08:01 _daniel-s__ joined #perl6
08:06 daniel-s joined #perl6
08:06 _daniel-s__ left #perl6
08:09 moritz nom: say (0 xor Int xor 'plugh')
08:09 p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'Undef'␤current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)␤»
08:09 moritz nom: say so (0 xor Int xor 'plugh')
08:09 p6eval nom: OUTPUT«Segmentation fault␤»
08:09 moritz that's what makes t/spec/S03-operators/short-circuit.t segfault for me
08:10 daniel-s left #perl6
08:10 moritz nom: say so Int
08:10 p6eval nom: OUTPUT«Bool::True␤»
08:10 moritz wtf?
08:10 daniel-s joined #perl6
08:11 moritz nom: say so Str
08:11 p6eval nom: OUTPUT«Segmentation fault␤»
08:12 jnthn ouch
08:12 moritz I understand why it doesn't work correctly
08:12 moritz not sure it should segfault though
08:13 moritz perl6: say Str.succ
08:13 p6eval pugs: OUTPUT«*** No such method in class Str: "&succ"␤    at /tmp/cFetl8H6gA line 1, column 5 - line 2, column 1␤»
08:13 p6eval ..niecza v8-3-g838bc38: OUTPUT«WTF␤»
08:13 p6eval ..rakudo 922500: OUTPUT«Sts()␤»
08:14 * moritz adds Str:D: to basically all methods in Str
08:14 jnthn yeah, it's getting a junk string PMC somehow
08:14 jnthn oh..
08:14 daniel-s left #perl6
08:15 daniel-s joined #perl6
08:16 jnthn I think that P6opaque's box/unbox ops don't check for type objectness.
08:16 jnthn d'oh
08:19 daniel-s_ joined #perl6
08:19 daniel-s left #perl6
08:21 moritz nom: say nqp::unbox_s(Str)
08:21 p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'String'␤current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)␤»
08:21 moritz nom: say nqp::unbox_i(Int)
08:21 p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'Integer'␤current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)␤»
08:22 jnthn yeah, that should be an error.
08:22 jnthn as in, before that.
08:22 moritz right
08:22 jnthn nom: pir::say(nqp::unbox_i(Int))
08:22 p6eval nom: OUTPUT«145␤»
08:22 jnthn nom: pir::say(nqp::unbox_i(Int))
08:22 p6eval nom: OUTPUT«145␤»
08:22 jnthn random junk
08:22 jnthn moritz: If you want to fix, P6opaque.c and see the attribute access code, which does the check.
08:22 moritz nom: pir::say(nqp::unbox_i(Str))
08:22 p6eval nom: OUTPUT«This type cannot unbox to a native integer␤current instr.: '_block1002' pc 69 ((file unknown):10612371) (/tmp/Qn9jejHy3j:1)␤»
08:23 * jnthn can't right now
08:23 daniel-s_ left #perl6
08:23 daniel-s_ joined #perl6
08:26 dakkar joined #perl6
08:28 daniel-s_ left #perl6
08:28 daniel-s_ joined #perl6
08:32 daniel-s__ joined #perl6
08:33 daniel-s_ left #perl6
08:33 cognominal_ left #perl6
08:33 cognominal_ joined #perl6
08:34 araujo joined #perl6
08:35 moritz maybe Ill get to it in half an hour
08:36 daniel-s__ left #perl6
08:36 daxim joined #perl6
08:37 daniel-s__ joined #perl6
08:41 _daniel-s__ joined #perl6
08:41 daniel-s__ left #perl6
08:45 daniel-s joined #perl6
08:46 _daniel-s__ left #perl6
08:50 daniel-s left #perl6
08:50 daniel-s joined #perl6
08:54 daniel-s left #perl6
08:54 daniel-s_ joined #perl6
08:58 daniel-s_ left #perl6
08:58 daniel-s__ joined #perl6
09:03 daniel-s__ left #perl6
09:03 jnthn interviewing &
09:03 daniel-s__ joined #perl6
09:07 daniel-s__ left #perl6
09:07 _daniel-s__ joined #perl6
09:11 espadrine` joined #perl6
09:12 daniel-s joined #perl6
09:12 espadrine` Hello, is there an issue with http://try.rakudo.org/? I don't want to file a bug report if this is a mere uptime issue of some kind.
09:12 _daniel-s__ left #perl6
09:13 flussence it's a known problem, we haven't really figured out why it breaks like that though
09:14 espadrine` Ah, ok.
09:16 daniel-s left #perl6
09:16 daniel-s joined #perl6
09:21 daniel-s_ joined #perl6
09:21 daniel-s left #perl6
09:23 wamba joined #perl6
09:24 dalek rakudo/nom: 09c8fab | moritz++ | src/core/ (3 files):
09:24 dalek rakudo/nom: add :D constraints to invocants of Str/Int/Num methods
09:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/09c8fab094
09:25 daniel-s_ left #perl6
09:25 daniel-s_ joined #perl6
09:26 dual left #perl6
09:26 moritz ah, I think I see how I have to change P6opaque
09:27 moritz I first thought I had to touch the actual ops
09:27 moritz but they are not specific to a repr
09:27 moritz so it really must be the repr
09:29 daniel-s__ joined #perl6
09:30 daniel-s_ left #perl6
09:33 timbunce joined #perl6
09:34 daniel-s__ left #perl6
09:34 daniel-s__ joined #perl6
09:38 _daniel-s__ joined #perl6
09:39 daniel-s__ left #perl6
09:43 daniel-s joined #perl6
09:43 _daniel-s__ left #perl6
09:43 mls joined #perl6
09:44 mls moritz: I think you just have to test instance->spill in the get/set functions
09:46 mls i.e just like in the get_attribute functions
09:47 daniel-s left #perl6
09:47 daniel-s joined #perl6
09:47 moritz mls: yes, that's what I've figured out too :-)
09:47 moritz mls: I have a local patch, will test rakudo on top of it before I commit
09:49 mls btw, wasn't there some discussion to make :D default?
09:49 moritz yes, there was
09:50 moritz and I'm still very sure that it's required for sanity
09:50 moritz but there's ongoing discussion about the naming
09:51 woosley1 left #perl6
09:51 daniel-s_ joined #perl6
09:52 daniel-s left #perl6
09:54 wamba left #perl6
09:54 moritz $ ./perl6 -e 'nqp::unbox_s(Str)'
09:54 moritz Cannot unbox type object to a native string
09:54 moritz \o/
09:55 dalek nqp: f68aa56 | moritz++ | src/6model/reprs/P6opaque.c:
09:55 dalek nqp: [P6opaque] guard against unboxing type object, a common-ish cause for segfaults in rakudo/nom
09:55 dalek nqp: review: https://github.com/perl6/nqp/commit/f68aa566a3
09:55 wamba joined #perl6
09:56 mls moritz: maybe you should also add this to the box functions, just in case
09:56 daniel-s_ left #perl6
09:56 daniel-s__ joined #perl6
09:56 moritz mls: I thought so too first... but for boxing I already have a native str/int/num, so it can't be a type object
09:57 moritz you can't pass a PMC to a function expecting an INTVAL, the C compiler complains
09:59 ab5tract joined #perl6
09:59 awoodland joined #perl6
10:00 _daniel-s__ joined #perl6
10:00 daniel-s__ left #perl6
10:05 daniel-s joined #perl6
10:05 _daniel-s__ left #perl6
10:09 daniel-s left #perl6
10:09 daniel-s_ joined #perl6
10:12 daxim left #perl6
10:13 daniel-s__ joined #perl6
10:14 daniel-s_ left #perl6
10:18 daniel-s__ left #perl6
10:18 _daniel-s__ joined #perl6
10:19 mls seems like set_int et al is only called in perl6.ops right after instance_of, so it seems to be safe. Still, defensive programming is IMHO a good thing...
10:21 moritz point is that the compiler toolchain pretty effectively deals with native-vs-pmc decisions
10:21 moritz so any code generated via PCT (and that includes pir:: calls from nqp and rakudo) never tries to box a PMC
10:22 hanekomu joined #perl6
10:22 mls I don't see what the compiler has to do with this. I just have to write a bad op that doesn't call instance_of to create an object from the type
10:23 mls but yes, currently it isn't possible to call set_int on a type if you just write nqp/perl6
10:25 mls As I said, "just in case". I.e., like an assertion.
10:25 moritz yes, assertion would be good
10:25 MayDaniel joined #perl6
10:26 moritz the 6model philsophy is so far that C code and the compiler must know what they are doing
10:26 moritz and only user-level errors are caught
10:26 moritz which is decent for efficiency, but sucks in the case of writing C code interfacing 6model
10:27 moritz assertions seem to be the right approach, since they can just be #define'd out
10:28 moritz I get a lot of spectest failures with that newest patch
10:30 moritz nom: say 1 == Int
10:30 p6eval nom: OUTPUT«Bool::False␤»
10:30 moritz nom: say 0 == Int
10:30 p6eval nom: OUTPUT«Bool::False␤»
10:31 pernatiy left #perl6
10:33 moritz lots of :D's missing all over the setting
10:33 daxim joined #perl6
10:33 mls make it default ;-)
10:34 moritz :D
10:36 mls You could return 0 / '' instead of throwing an exception
10:36 hanekomu left #perl6
10:37 hanekomu joined #perl6
10:38 moritz my approach is to add :D to the Int/Num/Str operators that unbox
10:38 moritz and then we have more general (Any, Any) operators that coerce to .Numeric
10:38 moritz and then redispatch
10:39 moritz those can handle with one of the operands being a type object
10:39 moritz nom: say 1 xor 0
10:39 p6eval nom: OUTPUT«1␤»
10:39 _daniel-s__ left #perl6
10:40 moritz nom: say 1 ?^ 0
10:40 p6eval nom: OUTPUT«Bool::True␤»
10:40 moritz nom: say 1 !^ 0
10:40 p6eval nom: OUTPUT«Cannot negate ^ because it is not iffy enough at line 1, near " 0"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
10:45 * moritz spectests and goes to lunch. With some luck I'll be able to push when I get back :-)
10:53 Jackneill left #perl6
10:54 skangas joined #perl6
11:05 Jackneill joined #perl6
11:13 jaldhar joined #perl6
11:35 Jackneill left #perl6
11:36 Jackneill joined #perl6
11:36 Jackneill left #perl6
11:36 Jackneill joined #perl6
11:44 daniel-s joined #perl6
11:44 pernatiy joined #perl6
11:44 espadrine` What is "nom"? Is it some rakudo fork, or a nightly build?
11:45 satyavvd left #perl6
11:46 eiro espadrine`, nom is a branch with a complete rewrite of metaobject system
11:46 espadrine` eiro: do we need this rewrite for performance reasons?
11:48 daniel-s_ joined #perl6
11:48 daniel-s left #perl6
11:49 eiro espadrine`, i don't know the reasons of nom but the results are speed improvement and lot of simplifcations (as i heard)
11:50 eiro (i'm just a "early adopter", not a perl6 hacker)
11:50 Jackneill left #perl6
11:51 Jackneill joined #perl6
11:51 Jackneill left #perl6
11:51 Jackneill joined #perl6
11:52 kboga espadrine`: here are some pointers to read about nom: http://pmthium.com/2011/02/08/new-nq​p-repository-new-nom-rakudo-branch/ http://6guts.wordpress.com/2011/​06/28/another-little-nom-update/  http://www.jnthn.net/articles.shtml
11:53 daniel-s__ joined #perl6
11:53 daniel-s_ left #perl6
11:53 espadrine` kboga: thanks!
11:54 kboga espadrine`: np =)
11:55 moritz nom: say so (("foo" ~~ *) ~~ Bool)
11:55 p6eval nom: OUTPUT«Bool()␤»
11:57 daniel-s__ left #perl6
11:57 _daniel-s__ joined #perl6
11:58 kboga oh right almost forgot, hello perl6!
11:59 moritz \o kboga
11:59 [particle] left #perl6
12:00 moritz that output is another case of a forgotten :D
12:00 [particle] joined #perl6
12:02 daniel-s joined #perl6
12:02 _daniel-s__ left #perl6
12:02 moritz rakudo: say Bool.Bool
12:02 p6eval rakudo 922500: OUTPUT«Bool::False␤»
12:02 moritz nom: say Bool.Bool
12:02 p6eval nom: OUTPUT«Bool()␤»
12:04 kboga We should never forget to :D
12:05 * moritz should do a complete review of methods in the setting
12:05 kboga Why so serious? Lets put a :D on that method.
12:05 moritz nom: say Any.elems
12:05 p6eval nom: OUTPUT«1␤»
12:06 moritz nom: say Any.hash
12:06 p6eval nom: OUTPUT«Odd number of elements found where hash expected␤current instr.: 'die' pc 465604 (src/gen/CORE.setting.pir:110729) (src/gen/CORE.setting:245)␤»
12:06 daniel-s_ joined #perl6
12:06 daniel-s left #perl6
12:07 antonio_ joined #perl6
12:07 antonio_ is now known as odoacre
12:11 daniel-s__ joined #perl6
12:11 daniel-s_ left #perl6
12:12 mikehh left #perl6
12:15 _daniel-s__ joined #perl6
12:15 daniel-s__ left #perl6
12:17 hanekomu left #perl6
12:18 hanekomu joined #perl6
12:19 _daniel-s__ left #perl6
12:19 _daniel-s__ joined #perl6
12:20 MayDaniel left #perl6
12:21 masak joined #perl6
12:21 masak oh hai
12:21 masak reading through RC entries. very enjoyable.
12:21 kboga hi masak
12:22 masak I notice http://rosettacode.org/wiki/P​arametric_polymorphism#Perl_6 makes use of the fact that Rakudo's .perl erroneously includes private attrs.
12:22 masak maybe that should be fixed. :)
12:22 masak laterz.
12:22 masak left #perl6
12:24 _daniel-s__ left #perl6
12:24 daniel-s joined #perl6
12:27 kboga I guess I'll be a git and ask if anyone would be interested in reviewing my pull request: https://github.com/rakudo/rakudo/pull/29
12:27 dalek rakudo/nom: c2307d4 | moritz++ | / (8 files):
12:27 dalek rakudo/nom: routines that unbox to native types or access attributes need :D in their signature.
12:27 dalek rakudo/nom:
12:27 dalek rakudo/nom: Also bump NQP_REVISION to get error checking when unboxing type objects
12:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2307d4616
12:28 daniel-s left #perl6
12:28 daniel-s joined #perl6
12:28 kboga I think having these global vars will allow us to uncover many more LHF's from the spectests.
12:30 moritz kboga: again it would be nice to have a pull request without interfering commits
12:31 moritz kboga: I generally recommend to make feature branches for pull requests, and don't do synchronization merges into these branches
12:31 kboga hmm ic
12:32 moritz I like the patches themselves
12:33 daniel-s_ joined #perl6
12:33 daniel-s left #perl6
12:33 kboga ok, what would be the best way to accomplish that starting from what there is now?
12:34 moritz git checkout -b special-vars rakudo/nom
12:34 moritz git merge nom
12:34 dual joined #perl6
12:34 moritz git rebase -i rakudo/nom # and filter out all the merge commits
12:35 moritz git push origin special-vars
12:35 kboga ok, thanks for your help moritz, I’ll try that (and should read a git book someday) =)
12:37 daniel-s_ left #perl6
12:37 daniel-s_ joined #perl6
12:39 cryptographrix joined #perl6
12:41 moritz oh, I think I accidentally added a syntax error in the last commit
12:42 daniel-s_ left #perl6
12:42 daniel-s__ joined #perl6
12:42 moritz fix forthcoming after spectest
12:42 kboga ye in Enum.pm so it seems
12:43 moritz a mis-placed colon
12:43 takadonet morning all
12:43 kboga hi takadonet
12:44 takadonet kboga: how are you sir?
12:45 dalek rakudo/nom: c087c52 | moritz++ | src/core/ (4 files):
12:45 dalek rakudo/nom: fix syntax error in previous commit, moritz--
12:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c087c529be
12:46 AndroUser2 joined #perl6
12:46 _daniel-s__ joined #perl6
12:46 AndroUser2 left #perl6
12:46 daniel-s__ left #perl6
12:47 AndroUser2 joined #perl6
12:48 kboga good, but I'm not a sir :)
12:48 cryptographrix left #perl6
12:50 moritz kboga: btw if you want a commit bit for rakudo, you'd need to fill out a "contributor license agreement" (see http://www.perlfoundation.org/​contributor_license_agreement ) and send it to the Perl Foundation
12:50 daniel-s joined #perl6
12:50 _daniel-s__ left #perl6
12:51 moritz (and approval from the developers, but I don't see a problem with that)
12:51 kboga ok, moritz++ again for the help with git, now to find out how to send a pull request on this
12:51 AndroUser2 left #perl6
12:52 wamba left #perl6
12:52 moritz kboga: I think you have to select the branch on the github website, and then click 'pull request'
12:52 moritz kboga: but I can also merge without a pull request :-)
12:53 kboga there, pull request issued.
12:54 kboga that is indeed much cleaner
12:54 MayDaniel joined #perl6
12:54 MayDaniel left #perl6
12:54 MayDaniel joined #perl6
12:54 moritz kboga: thanks again for your patches and the effort to clean up the pull request
12:55 daniel-s left #perl6
12:55 daniel-s joined #perl6
12:55 dalek rakudo/nom: f3d1b8f | kboga++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Implemented @*INC.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f3d1b8f9f2
12:55 dalek rakudo/nom: 496ec52 | kboga++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Implement $*PID.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/496ec525ca
12:55 dalek rakudo/nom: 2708593 | kboga++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Implement $*VM and clean up @*INC.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2708593681
12:55 dalek rakudo/nom: eba4254 | kboga++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Implement $*OS and $*OSVER.
12:55 dalek rakudo/nom:
12:55 dalek rakudo/nom: Note: they get their info from $*VM<config> instead of the sysinfo dynop like master.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eba4254587
12:55 dalek rakudo/nom: fde5bfd | kboga++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Implement $*EXECUTABLE_NAME.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fde5bfdac3
12:55 dalek rakudo/nom: 241faa2 | moritz++ | src/core/terms.pm:
12:55 dalek rakudo/nom: Merge pull request #30 from kboga/special-vars
12:55 dalek rakudo/nom:
12:55 dalek rakudo/nom: Special vars
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/241faa2d4b
12:58 MayDaniel left #perl6
12:59 daniel-s left #perl6
12:59 daniel-s joined #perl6
13:00 bluescreen10 joined #perl6
13:03 cognominal_ left #perl6
13:03 cognominal_ joined #perl6
13:05 Holy_Cow joined #perl6
13:05 Holy_Cow left #perl6
13:09 * moritz just had the first two 100% clean spectest runs on nom for ages
13:10 tadzik you mean, unfudged? :P
13:10 tadzik hello zebras
13:10 * tadzik is, hopefully, fixing his laptop today
13:10 moritz clean = all tests passing, no non-zero exist status
13:10 tadzik no more turning-on russian roulette
13:10 tadzik I think I had that yesterday or so, but is seems nondeterministic sometimes
13:11 tadzik moritz: got a few .WHY moments?
13:11 moritz I think I figured out that most segfaults were related to unboxing type objects
13:11 moritz adding a lot of :D's helped
13:11 moritz tadzik: yes
13:11 tadzik :D
13:12 moritz oh, assigning-refs.t still occasionally wants 34740112 arguments
13:12 tadzik so, now I have a dynvar $*DECLARATOR attached to the declarator block #=. Then in the class declaration I add its content to class.WHY.docs, that works
13:12 tadzik but that would also work for things like: #= bla bla\nsomething_unrelated()\n\n\n...\nclass foo {}
13:13 tadzik so I'm thinking if it wouldn't be better to attach a <declarator_block> before <sym> in package_def<class>
13:13 tadzik that would work for post-declarations only, but that's what we wanted for #=, isn't it?
13:13 tadzik what do you think?
13:14 * moritz a bit confused
13:14 tadzik for now it's a bit randomish: the last parsed declarator block is used, and there's no easy way to "turn it off" after something unrelated
13:14 tadzik did you see the demo yesterday or so?
13:14 moritz yes
13:15 tadzik okay. Now, every #= block sets the dynvar, and every class declaration reads the dynvar and uses it to document a class
13:15 tadzik so, a last parsed declarator is used
13:15 moritz how about switching that around?
13:15 moritz have each class (and maybe routine) set its own $*ATTACHABLE or so
13:15 tadzik I think whether it'd be better to have declarators more strictly attached to a class? So, <declarator> 'class' <block>
13:16 tadzik so every declaration has its own, optional declarator block, which is used there and only there
13:16 moritz and a #= block looks up $*ATTACHABLE, calls .WHY.add_docs or whatever
13:16 moritz and warns if no $*ATTACHABLE is found
13:17 tadzik the the class/routine/whatever has to appear before the declarator, no?
13:17 moritz with that factoring, the #= would have to be inside the class
13:18 tadzik yes
13:18 moritz which would suck for attributes
13:18 tadzik which brings us back to the question of where to allow declarator blocks
13:18 tadzik for me, the most sane place, at least for now, to make it work, is just before the 'class' keyword
13:19 tadzik see Grammar.pm:1007 and neighbours
13:20 moritz in which branch? nom?
13:20 tadzik I'd then stick a <declarator_block> or so just before <sym>. Yes, nom
13:20 moritz I think that's flawed
13:21 moritz first, I think that #= should always be parsed by exactly one rule, and a #= in a wrong place (but where comments are allowed) should not be a syntax error
13:22 tadzik that's correct
13:22 moritz I'd rather have a rather high-level rule reset $*DECLARATOR, and warn if it's not empty
13:23 tadzik hmm
13:23 moritz then allowing #= blocks on other entities (for example routines) would be a simple matter of consuming $*DECLARATOR in their grammar rules
13:23 tadzik sane
13:24 moritz maybe you should wait for one of our parsing gurus (any <TimToady pmichaud sorear jnthn>) to confirm that
13:25 moritz it's more of a feeling really
13:26 kfo joined #perl6
13:26 [Coke] moritz: if you fix the short circuit issue, I'm afraid I just fudged a bunch of tests there you'll have to undfudge.
13:27 tadzik I'll wait for commentaries then :)
13:27 Alias joined #perl6
13:27 wamba joined #perl6
13:27 moritz [Coke]: autounfudge.pl is already running
13:28 [Coke] does autounfudge try to de-skip tests?
13:28 moritz yes
13:28 [Coke] that's got to be painful.
13:28 moritz it... takes up some CPU
13:28 * jnthn back
13:28 [Coke] so, unskip test a, rerun, boom, reskip, go to next text...
13:28 moritz for each file, it first runs the test normally
13:29 jnthn And with a bigger screen. yay :)
13:29 moritz it assumes that the skips are not interdependent
13:29 moritz so it just tries to remove each skip separately
13:29 moritz so for a file with $n skip lines, it does $n+1 runs
13:29 [Coke] moritz: woof.
13:29 moritz fortunately some of the skips cause compilation errors, so they are early exists
13:30 moritz the nice thing is that it write a .patch file for you
13:30 moritz so you can review it, and delte hunks from it which you don't like
13:31 kfo_ joined #perl6
13:31 kfo left #perl6
13:31 tadzik jnthn: could you take a look at the #= discussion above?
13:33 jnthn Sure, when I've made a cup of tea and stopped drooling over my new 22 inches. :)
13:33 tadzik oooo
13:33 jnthn This is gonna be better for my back :)
13:34 Mowah left #perl6
13:35 koban left #perl6
13:35 flussence 22"... widescreen?
13:35 jnthn flussence: yes :)
13:35 jnthn Up from 19" non-widescreen
13:36 jnthn Plus this one is somewhat crisper. :)
13:36 * moritz would love a 22" 4:3 monitor :-)
13:36 tadzik or 3:4 :>
13:36 * flussence would accept a 19"... as long as it's at least 150dpi
13:37 benabik joined #perl6
13:39 * PerlJam still waits for the high resolution glasses that cover as large or as small a part of vision as wanted.  :-)
13:39 kfo_ left #perl6
13:40 drbean left #perl6
13:40 PerlJam that would be the ultimate monitor.   A heads-up display for your computer.
13:40 moritz perl6: say 2 ** 16
13:40 p6eval pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«65536␤»
13:41 moritz it's nice to see them agree sometimes :-)
13:47 kfo joined #perl6
13:57 jaldhar left #perl6
13:58 dalek roast: bf4624e | moritz++ | S (7 files):
13:58 dalek roast: nom unfudges
13:58 dalek roast: review: https://github.com/perl6/roast/commit/bf4624e1cd
14:02 risou_awy is now known as risou
14:04 espadrine` moritz: Does rakudo have bignums now? (In reference to dalek's commit message.)
14:05 * [Coke] is tempted to buy a small tv for his office (instead of a large monitor) and use that.
14:05 * [Coke] wonders how many of you younguns remember when you actually had to plug your computer INTO your tv. the analog kind.
14:05 * benabik still fondly remembers his C64
14:06 moritz espadrine`: no
14:07 moritz espadrine`: it upgrades to floating-point numbers on overflow, which is good enough to make that one test passing
14:08 [Coke] benabik++
14:09 espadrine` moritz: fair enough. 36893488147419103232 converts to floats too, doesn't it?
14:09 moritz nom: say 36893488147419103232.WHAT
14:09 p6eval nom: OUTPUT«Int()␤»
14:09 moritz huh
14:09 moritz nom: say 36893488147419103232
14:09 p6eval nom: OUTPUT«-9223372036854775808␤»
14:09 moritz no, it just overflows :-)
14:09 benabik [Coke]: I even remember 300 baud modems.  :-D  Although acoustic couplers are still before my time.
14:09 espadrine` ah, ok :D
14:09 benabik (Although we had one in the house.)
14:14 [Coke] benabik: you must be my age.
14:14 PerlJam you guys are *old*  ;)
14:15 [Coke] we didn't have an acoustic coupler, but my parents were not geeks. (I'm a first gen geek)
14:15 benabik [Coke]: My dad worked for Commodore, so while I remember it, its from my _youth_.
14:15 [Coke] whoa.
14:15 [Coke] jealous.
14:15 espadrine` perl6: say 2 ** 65 == 36893488147419103232
14:15 p6eval niecza v8-3-g838bc38: OUTPUT«Bool::True␤»
14:15 p6eval ..pugs: OUTPUT«1␤»
14:15 p6eval ..rakudo 922500: OUTPUT«Bool::False␤»
14:15 PerlJam benabik: what did he do?
14:15 benabik PerlJam: Tech support, basically.
14:15 * [Coke] does wonder if there's a call for something like an Atari 400 with a Perl6 cartridge.
14:16 * [Coke] finds it hard to entice his children to draw ascii snoopys when they can play portal 2. ;)
14:17 PerlJam There's an old Amiga sitting in boxes down the hall from me .. I wonder if anyone would want to make Perl 6 run on it.  :)
14:17 PerlJam (Is "old Amiga" redundant?  ;)
14:18 [Coke] my Amiga 500 is in a friend's attic, I think.
14:19 benabik I keep hearing things about Amiga…  I think there's a newish OS for them.
14:21 * flussence has a full set of RISC OS 3 programming reference manuals at home... but no hardware to go with them :(
14:22 PerlJam flussence: clearly you should write a virtual machine for them  ;)
14:23 daxim benabik, the spiritual successors are the pegasos hardware and morphos operating system  http://en.wikipedia.org/wiki/Pegasos
14:24 benabik daxim: Interesting, but what I was thinking of was that AmigaOS 4.1 has been updated as recently as April 2010
14:25 PerlJam I wonder why they named it "amiga"?   Perhaps they thought it was the only girl friend a geek could have?  ;)
14:29 Trashlord left #perl6
14:29 Trashlord joined #perl6
14:29 benabik PerlJam: According to Wikipedia: "The name Amiga was chosen by the developers specifically from the Spanish word for a female friend, and it comes Apple and Atari alphabetically."
14:29 benabik *comes before
14:31 PerlJam "yes, this little box of electronics is female.  and she's your friend.  you want to hang out with your female friend."
14:33 flussence sounds familiar... https://bugzilla.mozilla.o​rg/show_bug.cgi?id=661075
14:33 moritz nom: my $x = 3; say "$x".WHAT
14:33 p6eval nom: OUTPUT«Int()␤»
14:34 jnthn hm.
14:34 jnthn That's probably not quite what was intended.
14:34 moritz that bug was also present in perl 1 and rakudo/master
14:34 moritz (but fixed in both)
14:34 jnthn Though with all the talk of <1 2 3> actually producing a list of integers I think I could almost argue that it's OK :P
14:35 moritz it's almost ok, yes
14:35 moritz to the degree that both Str ~~ Cool and Int ~~ Cool
14:35 jnthn Yeah
14:35 jnthn Suspect it's too surprising though.
14:35 benabik Especially with multis.
14:36 benabik Although someone writing foo("$x") should probably use foo(~$x) instead, they shouldn't be penalized for it.
14:36 jnthn Yeah
14:36 moritz https://github.com/rakudo/rakudo/commit/​fe12ac8a4946b07d3c2277c7fe818451bdddd1ec
14:36 jnthn heh
14:37 jnthn set__SP won't work in nom world.
14:37 moritz nqp: my $x := 1; say("$x".WHAT)
14:37 p6eval nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '_block1000' pc 48 ((file unknown):44) (/tmp/wE8OJJ7iWy:1)␤»
14:37 moritz nqp: my $x := 1; say(pir::typeof("$x"))
14:37 p6eval nqp: OUTPUT«Integer␤»
14:37 jnthn Need to make an explicit call to ~ I guess
14:37 jnthn Or .Stringy
14:38 jnthn (prefix:<~> that is...)
14:38 moritz it might lead to bootstrap issues
14:38 moritz because .Stringy and prefix:<~> are defined rather late in the setting
14:38 moritz might as well try it...
14:39 jnthn Well, only if we do that kinda stuff while compiling the setting.
14:39 jnthn But yeah, it's possible.
14:39 jnthn Lots of bootstrapping fun in CORE.setting.
14:39 * jnthn has no idea if enums work in there yet.
14:39 jnthn nom: enum Foo <Bar Baz>; say Foo::Bar; say Baz;
14:39 p6eval nom: OUTPUT«Foo::Bar␤Foo::Baz␤»
14:40 jnthn nom: enum Foo <Bar Baz>; say Foo::Bar.value; say Baz.value;
14:40 p6eval nom: OUTPUT«0␤1␤»
14:40 jnthn nom: enum Foo <Bar Baz>; say Foo.enums
14:40 p6eval nom: OUTPUT«("Bar" => 0, "Baz" => 1).hash␤»
14:41 molaf joined #perl6
14:42 moritz nom: enum Foo <Bar Baz>; say Bar.Int
14:42 p6eval nom: OUTPUT«Foo::Bar␤»
14:42 moritz nom: enum Foo <Bar Baz>; say Bar + 2
14:42 p6eval nom: OUTPUT«2␤»
14:42 moritz nom: enum Foo <Bar Baz>; say Bar ~~ Int
14:42 p6eval nom: OUTPUT«Bool::True␤»
14:42 moritz while arguable correct, I'd suggest returning 0 instead of Bar from Bar.Int
14:44 jnthn moritz: src/core/Enumeration.pm - add a method Int to NumericEnumeration should do it.
14:44 jnthn note that
14:44 jnthn nom: enum Foo <Bar Baz>; say Bar.Numeric
14:44 p6eval nom: OUTPUT«0␤»
14:45 benabik .Int != .Numeric.Int?
14:45 benabik nom: enum Foo <Bar Baz>; say Bar.Numeric.Int; say Bar.Int
14:45 p6eval nom: OUTPUT«0␤Foo::Bar␤»
14:46 moritz nom: enum Foo <Bar Baz>; say Bar.Int == Bar.Numerc.Int
14:46 p6eval nom: OUTPUT«Method 'Numerc' not found for invocant of class 'Foo'␤current instr.: '_block1002' pc 95 ((file unknown):79281107) (/tmp/maWjIDrimO:1)␤»
14:46 moritz nom: enum Foo <Bar Baz>; say Bar.Int == Bar.Numeric.Int
14:46 p6eval nom: OUTPUT«Bool::True␤»
14:46 moritz they are == equal
14:46 jnthn Note that an Int based enum just does whatever Int does for methods, unless you say otherwise.
14:46 jnthn And Int.Int returns self.
14:47 moritz nom: enum Foo <Bar Baz>; say Bar.value
14:47 p6eval nom: OUTPUT«0␤»
14:47 pjcj left #perl6
14:47 benabik left #perl6
14:47 jnthn Mapping .Int to .value.Int probably works fine.
14:47 moritz that's my plan :-)
14:47 jnthn note that
14:48 jnthn nom: enum Foo is export <Bar Baz>; # should work too
14:48 p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Mu $parent)␤:(Attribute $attr, Any $rw)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $rw)␤:(Parameter $param, Any $copy)␤:(Routine $r, Any $export)␤␤current instr.: '…
14:48 jnthn Ah
14:48 jnthn nom: class Foo is export { }
14:48 p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Mu $parent)␤:(Attribute $attr, Any $rw)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $rw)␤:(Parameter $param, Any $copy)␤:(Routine $r, Any $export)␤␤current instr.: '…
14:48 jnthn Oh, just not done type exporting multi candidate generally yet.
14:48 jnthn Fairy nuff.
14:48 jnthn Anyway, it applies traits.
14:49 jnthn nom: role Fooey { }; enum Foo does Fooey <Bar Baz>; say Foo ~~ Fooey
14:49 p6eval nom: OUTPUT«Bool::True␤»
14:49 pjcj joined #perl6
14:49 moritz woah
14:49 jnthn Which the master implementation didn't. :)
14:49 jnthn The spec explicitly says that's allowable :)
14:50 JimmyZ joined #perl6
14:56 dalek roast: 71ee6c9 | moritz++ | S12-enums/basic.t:
14:56 dalek roast: refudge S12-enums/basic.t for rakudo
14:56 dalek roast: review: https://github.com/perl6/roast/commit/71ee6c9407
14:56 moritz nom: my $e = enum <a b c>
14:56 p6eval nom: OUTPUT«Could not find sub &ANON_ENUM␤current instr.: '_block1002' pc 99 ((file unknown):178) (/tmp/LCywFHDQYm:1)␤»
14:57 moritz that part of the implementation seems bogus
14:58 moritz even if &ANON_ENUM was implemented, it still misses the part where the keys are added
14:59 thou joined #perl6
15:07 dalek rakudo/nom: 7cc1567 | moritz++ | t/spectest.data:
15:07 dalek rakudo/nom: 3 more passing test files
15:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7cc1567225
15:07 dalek rakudo/nom: c22bfbd | moritz++ | src/core/Enumeration.pm:
15:07 dalek rakudo/nom: make $enumValue.Int less awkward
15:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c22bfbdbdb
15:09 pmichaud good morning, #perl6
15:10 moritz good am, pm
15:13 kboga hi, pm
15:16 pmichaud kboga++ # excellent patches
15:17 pmichaud kboga: there's a small problem with commit # 2708593
15:17 pmichaud +        config  => pir::perl6ize_type__PP( 23
15:17 pmichaud +                        nqp::atpos(pir::getinterp, pir::const::IGLOBALS_CONFIG_HASH))
15:17 pmichaud grrrr, silly github cut/paste
15:18 pmichaud config  => pir::perl6ize_type__PP(
15:18 pmichaud nqp::atpos(pir::getinterp, pir::const::IGLOBALS_CONFIG_HASH))
15:18 pmichaud that turns the config hash into a valid nom EnumMap type, but it doesn't perl6ize the values
15:18 pmichaud i.e., the hash itself still contains Parrot objects
15:18 jnthn o/ pmichaud
15:19 pmichaud jnthn: o/
15:19 kboga oh, ic.
15:19 * JimmyZ wonder what's the difference between 'self.value' and '$!value'
15:19 pmichaud JimmyZ: the first is a method call
15:19 daniel-s left #perl6
15:20 moritz nom: class A { has $!value = 5; method value() { 42 }; method decide() { say $!value, self.value } }; A.new.decide
15:20 p6eval nom: OUTPUT«542␤»
15:20 jnthn pmichaud: Regex day still? :)
15:20 pmichaud jnthn: yes, but need to finish making the 2011.07 star release first
15:22 JimmyZ nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; A.new.decide
15:22 p6eval nom: OUTPUT«55␤»
15:22 jnthn pmichaud: OK. I'm about for the evening and will be pretty free. :)
15:23 hanekomu left #perl6
15:23 moritz nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; class B is A { method value() { 2 * callsame() } }; say B.new.decide
15:23 p6eval nom: OUTPUT«510␤Bool::True␤»
15:23 moritz nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; class B is A { method value() { 2 * callsame() } }; B.new.decide
15:23 p6eval nom: OUTPUT«510␤»
15:23 ron__ joined #perl6
15:25 kboga pmichaud: so to perl6ize the values, something similar to what is done with %*ENV has to be done?
15:26 pmichaud I think so, yes.
15:26 ron__ coke and benabik - noticed the chatter about old commodore computers and since no one brought it up I thought I'd mention that they and the C64 are back at http://www.commodoreusa.net/
15:26 moritz maybe write a function perl6ize_hash or so
15:27 pmichaud not sure it needs a separate function
15:28 pmichaud also, the Env hash and Config hash are subtly different in several respects, so not sure that one function would be able to handle both easily
15:28 kboga nom: say $*VM<config><osname>.WHAT
15:28 p6eval nom: OUTPUT«Str()␤»
15:28 moritz loks right-ish
15:28 pmichaud nom:  say nqp::atkey(%*VM<config>, 'osname').WHAT
15:28 JimmyZ nom: say $*VM<config><osname>; say $*VM<config><osver>;
15:29 p6eval nom: OUTPUT«Method 'at_key' not found for invocant of class 'Failure'␤current instr.: 'postcircumfix:<{ }>' pc 510376 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:625)␤»
15:29 p6eval nom: OUTPUT«linux␤Any()␤»
15:29 wamba left #perl6
15:29 pmichaud looks wrongish
15:29 jnthn nom: say nqp::atkey($*VM<config>, 'osname').WHAT
15:29 p6eval nom: OUTPUT«get_pmc_keyed_str() not implemented in class 'Hash'␤current instr.: '_block1002' pc 104 ((file unknown):68264786) (/tmp/lTNcwJ_a0K:1)␤»
15:29 pmichaud oh, wait.
15:30 moritz aren't int/str/num also marshalled automagically?
15:30 jnthn pmichaud: Note that method call return values get perl6ized.
15:30 jnthn pmichaud: .at_key is a method call
15:30 jnthn So it "works" :)
15:30 pmichaud jnthn: right, that was going to be my next point
15:30 pmichaud the problem is that we can't be certain all accesses will go through .at_key
15:30 jnthn Yeah
15:31 pmichaud and I'd prefer not to perl6ize on every access
15:32 jnthn yeah, same
15:32 pmichaud otoh, access to the config hash is rare enough that perhaps perl6ize on access isn't a big issue.  (more)
15:32 kboga oh, i see now.
15:33 pmichaud so, to me, it depends on how strict we want to be about not letting Parrot objects into the Rakudo ecosystem, versus the startup cost of establishing %*VM
15:33 pmichaud (although perhaps it could be made lazy somehow)
15:33 Tanktalus left #perl6
15:33 moritz isn't it lazy already? :-)
15:34 pmichaud moritz: nope, happens every time the core setting is loaded.  :)
15:35 jnthn Well, in the Awesome Future we can do the work in a BEGIN block in the setting and have it magically serialized. :)
15:35 pmichaud huh?
15:35 pmichaud %*VM is runtime values
15:36 jnthn ...what, I thought Parrot's config was fixed at compile time?
15:36 JimmyZ I think it's compile time
15:36 pmichaud what about bytecode produced by one Parrot and run by another?
15:37 jnthn Hm, true.
15:37 pmichaud or is that not even possible anymore?
15:37 jnthn Dunno
15:37 jnthn I mostly prefer to see bytecode as cache these days.
15:37 ron__ left #perl6
15:37 JimmyZ parrot doesn't know runtime OS, iirc
15:38 jnthn Thing is that you end up linking against the setting.
15:38 jnthn And thus you link against a certain version of the setting.
15:38 pmichaud beyond that, I suspect that other VM's might have dynamic information in their config
15:38 pmichaud even if Parrot doesn't.
15:38 moritz nom: say %*ENV<HOME>
15:38 jnthn True.
15:38 p6eval nom: OUTPUT«/home/p6eval␤»
15:41 soh_cah_toa joined #perl6
15:45 mberends joined #perl6
15:46 mberends good *, 6folk!  Been working offline on 6model/c :-)
15:46 takadonet mberends: sweet
15:46 mj41_nb left #perl6
15:47 JimmyZ 6model on C ?
15:47 jnthn mberends: nice :)
15:47 jnthn mberends: How goes it?
15:48 mberends yes, a bit like 6model/java. It's a long haul, don't hold your breath for results yet.
15:48 soh_cah_toa left #perl6
15:48 mberends it goes well, I have conceptually sorted out memory management and am now working on threads
15:49 JimmyZ threads? that's a  great feature
15:50 birdwindupbird left #perl6
15:51 mberends all the work so far has been on bottom-up foundations, and the challenge is to ensure that it works on most of the popular C platforms.
15:51 jnthn Awesome.
15:51 eiro a documentation about binding C/C++ libs in perl6 ?
15:51 mberends I'm testing it on Linux/gcc, Win32/msvc and Win32/Mingw
15:52 eiro i think it's more parrot centric ?
15:52 mberends eiro: yes. https://github.com/jnthn/zavolaj
15:53 mberends any C library you write yourself, you can bind. Other libs, ymmv :-/
15:53 eiro thanks
15:54 JimmyZ left #perl6
15:59 eiro mberends, i see you're the author: i know where to ask if i need help :)
16:00 odoacre left #perl6
16:00 thou left #perl6
16:01 soh_cah_toa joined #perl6
16:01 mberends eiro: jnthn++ is of course the author of the foundation, I wrote most of the tests and examples, which I therefore recommend ;-)
16:01 pmichaud http://gist.github.com/1111820  # draft announcement for 2011.07 star release, comments welcome (especially on the first few paragraphs, which describe the upcoming plan)
16:03 ab5tract left #perl6
16:03 pmichaud actually, look at http://pmichaud.com/sandbox/2011.07 instead, so that you can see the latest updates as they're made :)
16:03 moritz +1
16:03 moritz pmichaud: should I create a new "Using Perl 6" .pdf?
16:03 colomon pmichaud:  * 10%-30% improvement in compile and execution speed
16:03 colomon * Improved compile and execution speeof 10%-30%
16:03 jjore left #perl6
16:04 moritz pmichaud: I think I have some markup fixes
16:04 jjore_ joined #perl6
16:04 pmichaud moritz: that would be awesome
16:04 colomon I know it's good news, but I don't think it needs to be said twice in a row.  :)
16:04 pmichaud colomon: yes, I forgot to delete the old bullet after rewording.  thanks.
16:04 eiro oh! it's a wrapper on FFI :)
16:04 jnthn For nom we should sya it like, 10 times :P
16:05 pmichaud reload with a couple of fixes
16:05 eiro jnthn++ mberends++ perl6dev++ : it looks simple to use!
16:05 jnthn pmichaud: Maybe worth defining nom
16:06 jnthn ("New Object Model")
16:06 jnthn :)
16:06 cognominal_ left #perl6
16:06 cognominal_ joined #perl6
16:06 pmichaud jnthn: added
16:07 moritz pmichaud: http://moritz.faui2k3.org/tmp/UsingPerl6.a4.pdf
16:07 jnthn "will have some backward-incompatibility"
16:07 jnthn Sounds a bit off
16:07 moritz also with s/a4/letter/
16:07 jerome left #perl6
16:07 jnthn "will not be backward compatible in some areas" maybe
16:08 s1n left #perl6
16:08 pmichaud changed to " but also
16:08 pmichaud will not be 100% backwards-compatible due to"
16:09 sjn pmichaud: "Improved compile and execution speeof 10%-30%"
16:10 sjn also, some capitalization inconsistencies :)
16:11 mls left #perl6
16:12 * moritz -> commute
16:13 * mberends .«nom
16:13 dalek rakudo/nom: 00ad1de | moritz++ | src/core/Hash.pm:
16:13 dalek rakudo/nom: implement basic Hash.delete
16:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00ad1deeaa
16:13 dalek rakudo/nom: 6eabc3a | moritz++ | src/core/Str.pm:
16:13 dalek rakudo/nom: remove workaround, now that we have Hash.delete
16:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6eabc3ab4f
16:14 pmichaud moritz: there should be a nqp::deletekey
16:15 pmichaud (instead of pir::delete)
16:15 pmichaud s/should be/is/
16:15 pmichaud sjn: updated
16:16 donri joined #perl6
16:17 Holy_Cow joined #perl6
16:17 sjn pmichaud: new url?
16:18 pmichaud http://www.pmichaud.com/sandbox/2011.07
16:19 Holy_Cow left #perl6
16:21 MayDaniel joined #perl6
16:22 bluescreen10 left #perl6
16:25 mj41_nb joined #perl6
16:27 MayDaniel left #perl6
16:28 envi left #perl6
16:29 colomon moritz: S03-smartmatch/array-array.rakudo aborted 36 test(s)  -- are you seeing this one?
16:30 soh_cah_toa left #perl6
16:35 colomon oh, ugh, ran through when I ran it alone.  :(
16:36 pmichaud colomon: I've had that happen on a couple of tests too.
16:36 pmichaud I wonder if the "sometimes fails under 'make'" effects we've seen in Parrot tests are coming through in Rakudo tests now.  :(
16:36 colomon wandering seg fault?
16:37 colomon I'm also seeing "non-zero exit status" errors on things that appear to work otherwise.
16:38 TimToady pmichaud: I wonder if it would be worth mentioning the features matrix
16:38 pmichaud TimToady: oooh, good thought
16:38 pmichaud it definitely deserves a post of its own on rakudo.org
16:38 pmichaud but makes sense for the announcement to mention it also
16:39 pmichaud one difficulty is that I expect the column labels will have to change soon
16:39 pmichaud because "Rakudo master" will soon no longer be "Rakudo master"
16:40 jnthn colomon: I get loads of non-zero exit statuses here. Always have.
16:40 pmichaud perhaps "Rakudo master" should really say "Rakudo 2011.07"
16:41 colomon jnthn: me too, which is why I usually use tools/test_summary.pl (which seems to ignore them) instead of make spectest.  I was just hoping things had changed, what with nom, moritz++'s clean spectest run, and all.
16:42 pmichaud I can either refer to the current master branch as "Rakudo ng" or as "Rakudo 2011.07".  Opinions?
16:42 jnthn ng makes more sense to me...
16:42 TimToady we use 2011.7 form on RC usually
16:42 jnthn Though hm
16:42 jnthn It's not "next generation" any more
16:42 jnthn It's more lg :)
16:43 TimToady ng == No Good :)
16:43 pmichaud I'm leaning towards 2011.07, myself.
16:43 jnthn :P
16:43 pmichaud ng is Good.  nom is Better.
16:43 pmichaud (still working on "Best")
16:43 TimToady because it doesn't implement NFG :)
16:43 soh_cah_toa joined #perl6
16:43 jnthn Once nom is ubiquitous, multiple Rakudo columns are probably redundant.
16:43 jnthn Particularly when nom does a superset of the things master does.
16:44 jnthn Which is probably not far off.
16:44 pmichaud yes, I expect that 2011.07 will disappear soonish
16:44 moritz colomon: array-array.rakudo works here - is your test failure reproducible?
16:44 pmichaud probably not before 2011.10, but shortly thereafter
16:44 jnthn pmichaud: OK, then I'm not so opinionated about the label :)
16:44 colomon moritz: not with my first couple of tries at reproducing it.  :(
16:45 moritz colomon: there are still intermittent segfaults in nom, it seems
16:45 pernatiy left #perl6
16:45 dalek features: 7cff54f | pmichaud++ | features.json:
16:45 dalek features: Rename "Rakudo/master" as "Rakudo 2011.07".
16:45 dalek features: review: https://github.com/perl6/f​eatures/commit/7cff54fb37
16:46 jnthn TimToady: Guess NFG will need attacking in the not too distant future.
16:46 pmichaud jnthn: I've been thinking we can do a little of that in nom
16:46 jnthn I'm probably willing to look at that, though not in the next couple of months.
16:46 moritz colomon: yesterday I golfed a segfault in assign.t for jnthn++ - I hope he can track it down eventually
16:46 jnthn pmichaud: Oh?
16:47 jnthn moritz: From my initial look in the debugger, I think the fix you did in NQP this morning may have helped.
16:47 pmichaud jnthn: yes, I need to look at the details more.  but it helps a bunch that the new regex engine is less dependent on Parrot's STRING implementation
16:47 rdesfo joined #perl6
16:47 dalek features: 66ab05f | larry++ | features.json:
16:47 dalek features: add NFG entry
16:47 dalek features: review: https://github.com/perl6/f​eatures/commit/66ab05fd75
16:48 moritz jnthn: then I need to find a new segfault for you
16:48 pmichaud qregex tends to think of "strings" as arrays of integers instead of chars
16:48 jnthn moritz: :P
16:48 jnthn pmichaud: That sounds closer to what NFG wants. :)
16:48 jnthn moritz: Did you bump NQP_REVISION?
16:48 moritz jnthn: yes
16:49 jnthn moritz: Building latest and checking.
16:49 jnthn Seems my @other-task are sufficiently done for today :)
16:51 pmichaud afk, lunch
16:51 dalek star: 39f0b00 | pmichaud++ | skel/docs/UsingPerl6-draft.pdf:
16:51 dalek star: Update UsingPerl6-draft.pdf .
16:51 dalek star: review: https://github.com/rakudo/star/commit/39f0b005aa
16:51 dalek star: c060cfc | pmichaud++ | skel/docs/announce/2011.07:
16:51 dalek star: Add draft 2011.07 announcement.
16:51 dalek star: review: https://github.com/rakudo/star/commit/c060cfce1f
16:51 dalek star: f504bbf | pmichaud++ | Makefile:
16:51 dalek star: Initial Makefile updates for 2011.07 release.
16:51 dalek star: review: https://github.com/rakudo/star/commit/f504bbf990
16:51 soh_cah_toa left #perl6
16:52 awoodland left #perl6
16:53 dakkar left #perl6
16:56 soh_cah_toa joined #perl6
16:57 * PerlJam prepares for a storm
16:57 wtw left #perl6
16:58 pmichaud PerlJam: yeah, hope Don's visit isn't too violent :)
16:58 * [Coke] storms for a... I got nothing.
16:59 pmichaud PerlJam: any chance you could angle it a bit more northward?  ;-)
16:59 PerlJam to houston?  :)
16:59 pmichaud well, so that it reaches Plano.
16:59 pmichaud I don't mind if it's a curving trajectory.
17:00 PerlJam If it swings too far north I don't think we'll get enough rain in our watershed.
17:00 pmichaud In fact, when the storm hits Friday night, go outside and blow in a northeasterly direction.  That might be enough to turn it towards us.  :-)
17:00 pmichaud or set a bunch of fans to point to the northeast :)
17:01 PerlJam I still think its ridiculous that the campus is closing today
17:01 pmichaud are there classes going on?
17:01 PerlJam yes.
17:01 pmichaud hmmm
17:01 pmichaud canceling classes probably makes sense.  what time does campus close today?
17:02 PerlJam 5pm  like normal.  Won't be open tomorrow
17:02 pmichaud oh, I think that's reasonable.
17:02 stephanepayrard_ joined #perl6
17:02 pmichaud so really the campus is just closed tomorrow
17:03 PerlJam yeah, except we're supposed to follow the hurricane preparedness stuff, so it's virtually closed today (people aren't going to be able to get a lot of work done while moving equipment around)
17:03 pmichaud if nothing else, it's a good drill.
17:03 PerlJam that's what I keep telling myself
17:04 pmichaud nice to be able to go through it and (1) have it actually mean something and (2) without actually being a hurricane (yet)
17:04 PerlJam pmichaud: *and* this time I'm more in the adminisphere than ever before so my total involvement it to tell other people "make it so" and to only move my own machine.
17:05 thou joined #perl6
17:05 [Coke] is nom going to make it easier to split up the setting?
17:05 cognominal_ left #perl6
17:05 [Coke] (and or is there anything I can do to help on that? it's soooo slow. :(
17:05 pmichaud [Coke]: perhaps... but I'm not sure that splitting up the setting is on our radar.
17:05 pmichaud it should be tons faster when I finish the new regex stuff (eta... today unless I get distracted)
17:06 [Coke] oh, I can happily wait until today. ;)
17:06 pmichaud well, it may be tomorrow at the rate things are going here.
17:06 [Coke] NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO​OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO​OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO   ok.
17:06 PerlJam Doesn't nom include serialization stuff?  That should help with splitting the setting.
17:06 pmichaud the primary issue is getting the lexical scope correct
17:07 jnthn moritz: Hm. That example yesterday that segv'd no longer does.
17:07 jnthn Splitting the setting would just be hiding the real problem.
17:07 jnthn Plus a bunch of effort.
17:07 jnthn I'm not really sure how to sanely go about it.
17:08 pmichaud jnthn: could it be done via a bunch of 'use' statements with precompiled .pbcs?
17:08 embed joined #perl6
17:09 pmichaud anyway, the setting is 5K lines long.... we definitely need to get ourselves to a point where compiling a 5k-line script isn't painful.
17:09 pmichaud if we can't do that... well, there's little point in much of this.  :)
17:10 [Coke] right, just trying to find a local minimum of pain in the meantime.
17:10 pmichaud we'll see what the regex engine improvements hand us.
17:10 PerlJam just use niecza  ;>
17:10 [Coke] something that might help is docs on how to prototype something outside of the setting.
17:10 [Coke] but after the regex stuff hits. ;)
17:10 pmichaud prototyping stuff outside of setting is much easier if 'augment' works :)
17:11 wamba joined #perl6
17:11 pmichaud if you're just creating a new class or function, prototyping outside of setting is trivial.
17:11 PerlJam pmichaud: what are the regex improvements?
17:11 PerlJam all speed hacks like ltm?
17:11 pmichaud PerlJam: well, qregex is a lot better about avoiding creation of gcables and probably reduces method calls by 75%
17:11 * [Coke] misread that as "where are..." like PerlJam was getting antsy.
17:12 [Coke] qriky!
17:12 pmichaud so, I'm expecting 75% fewer method calls, and 80% fewer gcables.  Might be even more.
17:12 jnthn That's gotta help.
17:12 PerlJam [Coke]: I'm infinitely patient with rakudo right now as I have nothing that depends on it nor any expectations of cool new features :)
17:13 pmichaud then, we'll also have LTM via parallel NFA which hopefully means we'll be able to prune a lot of the false parse paths much earlier
17:14 pmichaud so, I'm expecting at least a 2x-3x parsing improvement.  It wouldn't surprise me if we get 10x.
17:16 [Coke] if it's 10x I'll buy you a six pack. ;)
17:17 pmichaud well, at the 10x level I think we start to run into the PAST generation as the bottleneck instead of pure parsing
17:17 pmichaud but yes, 10x would be awesome.
17:17 masak joined #perl6
17:17 masak oh hai, #perl6
17:18 pmichaud really afk lunch this time... bbiah
17:18 [Coke] S04-exception-handlers/catch.t seems to chew up a LOT of memory on nom. up to 6.3G resident now.
17:20 [Coke] (almost no cpu, but memory keeps ^^)
17:20 jnthn o/ masak
17:20 jnthn [Coke]: CATCH is kinda busted still
17:22 [Coke] k. I just always trip on that when doing my "are things still failing as I think they are" updates.
17:22 [Coke] no worries.
17:23 Chillance joined #perl6
17:24 moritz [Coke]: I recommend ulimit
17:25 embed left #perl6
17:28 PerlJam ulimit++
17:28 moritz jnthn: fwiw the segfaulting snipped I golfed down yesterday still segfaults for me today
17:28 bluescreen10 joined #perl6
17:31 jnthn aww
17:32 jnthn moritz: Not here with latest. Hm.
17:33 jnthn moritz: It is https://gist.github.com/1109277 that you're referring to?
17:33 jnthn (just checking :_))
17:37 moritz yes
17:38 jnthn OK. I'll try it now and then and hope it reappears.
17:39 [particle] left #perl6
17:39 moritz nom: my  @p; { my $x; @p = $x ^^= 42, 43; $x ^^= 15; }
17:40 p6eval nom: OUTPUT«Segmentation fault␤»
17:40 moritz jnthn: shorter, and reliable here too
17:45 moritz nom: my $x; $x ^^= 42; $x ^^= 15
17:45 p6eval nom: OUTPUT«Segmentation fault␤»
17:45 moritz even shorter
17:45 espadrine joined #perl6
17:46 moritz nom: my $x; $x ^^= 42; pir::say($x) $x ^^= 15
17:46 p6eval nom: OUTPUT«Confused at line 1, near "pir::say($"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
17:46 moritz nom: my $x; $x ^^= 42; pir::say($x); $x ^^= 15
17:46 p6eval nom: OUTPUT«42␤Segmentation fault␤»
17:46 [Coke] moritz: which ulimit flag to use? -m doesn't seem to have an effect.
17:47 moritz [Coke]: -v (virtual)
17:47 rdesfo left #perl6
17:47 risou is now known as risou_awy
17:49 [Coke] hurm. -m seems to restrict -v also. perhaps I have an order of magnitude problem.
17:50 [Coke] virtual memory          (kbytes, -v) 1000000
17:50 [Coke] that's a gig or close enough, still going out in the weeds.
17:50 [Coke] ah well.
17:51 moritz a gig ulimit -v works well here
17:51 moritz nom: say log10(1000000)
17:51 p6eval nom: OUTPUT«6␤»
17:51 [particle] joined #perl6
17:52 jan333 joined #perl6
17:55 jan333 perl6: say 3;
17:55 p6eval pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«3␤»
17:55 masak Pugs, Rakudo and Niecza greet you :)
17:57 jan333 left #perl6
17:58 impious joined #perl6
17:59 jnthn moritz: Thanks, segv here too
18:01 Kivutarrr joined #perl6
18:02 [Coke] nom: my @foo = 1,2; say @foo Z @foo;
18:02 p6eval nom: OUTPUT«1 1 2 2␤»
18:03 [Coke] nom: my @foo = 1,2; @foo = @foo Z @foo; @foo.perl.say
18:03 p6eval nom: OUTPUT«splice() not implemented in class 'Mu'␤current instr.: '_block14081' pc 537584 (src/gen/CORE.setting.pir:146678) (src/gen/CORE.setting:2614)␤»
18:03 masak nice!
18:03 soh_cah_toa left #perl6
18:03 masak nom: my @foo = 1, 2; @foo = @foo Z @foo; say "alive"
18:03 p6eval nom: OUTPUT«splice() not implemented in class 'Mu'␤current instr.: '_block14081' pc 537584 (src/gen/CORE.setting.pir:146678) (src/gen/CORE.setting:2614)␤»
18:04 * masak thought so
18:04 KyleHa joined #perl6
18:05 jnthn splice?
18:05 soh_cah_toa joined #perl6
18:05 masak jnthn: it's used for cutting and pasting arrays. see 'perldoc -f splice'.
18:05 masak :P
18:06 masak see? *this* is what it would be like to have an infobot on the channel. all the time. :)
18:06 jnthn masak: Yeah, I wondered where it was used, but guess Z uses it :P
18:07 masak jnthn: that's a safe bet. notice that it only occurs in conjunction with infix:<=>, though.
18:07 Kivutarrr left #perl6
18:07 jnthn Yeah, that made me curious too
18:08 benabik joined #perl6
18:09 kboga left #perl6
18:09 jnthn nom: enum Foo <Bar Baz>; say Baz.Numeric; say +Baz
18:09 p6eval nom: OUTPUT«1␤Foo::Baz␤»
18:09 jnthn huh...prefix:<+> doesn't call Numeric?
18:11 jnthn ah
18:11 jnthn multi prefix:<+>(Numeric \$a) { $a }
18:11 KyleHa In Perl 5, prefix:<+> does not numify.
18:11 masak I do not like all these new backslashes in core code signatures :/
18:11 jnthn That's probably optimalish but OTOH Baz ~~ Numeric
18:11 masak KyleHa: in Perl 6, it does.
18:12 masak jnthn: why does Baz ~~ Numeric?
18:12 mj41_nb left #perl6
18:12 jnthn masak: Because it's an Int really
18:12 * masak thought it was an Enum
18:12 jnthn (yes, spec says so)
18:13 jnthn No.
18:13 jnthn Spec doesn't say that.
18:13 masak ok.
18:13 masak then, if there are things that are Ints really but can still be further numified, maybe the prefix:<+> need to be changed. :)
18:14 jnthn Guess we could add a candidate for NumericEnumeration too but I fear it'd be a tied dispatch with Numeric.
18:14 masak nod
18:14 PerlJam KyleHa: moving between perl 6 and perl 5, prefix:<+> nummification is the thing that most trips me up
18:15 PerlJam (I keep expecting it to work, but it doesn't)
18:16 masak PerlJam: interesting. I don't have that at all. not one bit. for me, it's various parentheses and sigil variance.
18:16 benabik PerlJam: In P5 it can be spelled -+-
18:16 flussence that's...       argh.
18:16 benabik PerlJam: Or 0+
18:17 masak or - - I guess
18:17 KyleHa I usually spell it 0+
18:18 jnthn nom: say 1 <=> 2
18:18 p6eval nom: OUTPUT«-1␤»
18:18 PerlJam masak: I've adequately compartmentalized those things that I know when to use (or not to use) them.  But for some reason I'm always using  +@foo in perl5
18:19 PerlJam though ... I guess the required parens on given/when always trip me up too
18:20 masak PerlJam: I've compartmentalized those things too. it's just when I'm tired or inattentive that they show up again.
18:21 KyleHa I'm nearly always tired or inattentive.
18:21 masak PerlJam: for me it's parens on if, for, while (etc), the strange rules with print() and print (), and the seemingly necessary parens around something like (subcall())[$index]
18:21 masak around 'subcall()', that is.
18:22 PerlJam you're just more of a Perl 6 programmer than I am.
18:22 jferrero left #perl6
18:22 PerlJam I still think primarily in Perl 5 terms, so all of those things seem "natural"
18:22 masak the former two categories trip me up when I don't think about it.
18:23 masak the last on trips me up because "hey, this oughta work", but then it doesn't :)
18:23 masak why can't I do subcall()[$index] ? please, tell me.
18:24 masak even $array[$i1][$i2] works in Perl 5.
18:26 PerlJam because lists are second-class citizens in Perl 5
18:26 masak o.O
18:30 sjohnson (=゚ω゚=)
18:31 [Coke] nom: o.O
18:31 p6eval nom: OUTPUT«Could not find sub &o␤current instr.: '_block1002' pc 70 ((file unknown):21937811) (/tmp/RoG2K8mjLS:1)␤»
18:32 Kivutarrr joined #perl6
18:34 moritz masak: parsing issue
18:35 masak well, yeah.
18:35 moritz (subcall)[1] works
18:35 masak as I said.
18:35 masak (modulo the () after 'subcall')
18:35 masak subcall[1] doesn't work.
18:38 mls joined #perl6
18:39 mls The STORE method of Hash.pm contains: "for $x.list { self.STORE_AT_KEY(.key.Str, lvaue) }"
18:39 mls lvaue doesn't seem correct, should that be .value?
18:40 masak yeah.
18:40 masak lvaue is a call to a non-existent subroutine.
18:40 pmichaud back from lunch
18:41 tokuhir__ joined #perl6
18:41 dalek rakudo/nom: 56e2229 | jonathan++ | src/core/traits.pm:
18:41 dalek rakudo/nom: Make $x is readonly work on parameters.
18:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56e2229935
18:41 dalek rakudo/nom: 49ede3c | jonathan++ | src/binder/multidispatch.c:
18:41 dalek rakudo/nom: Missing decontainerize in junctional argument check in the multi-dispatcher. Gets us further with the junction tests.
18:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/49ede3c3f5
18:41 dalek rakudo/nom: 1aa1163 | jonathan++ | src/core/Numeric.pm:
18:41 dalek rakudo/nom: Remove an optimization that busts +SomeEnumValue.
18:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1aa1163608
18:43 mls Oddly enough, fixing the type also fixes the assigning-refs.t wants 34740112 arguments bug
18:43 mls s/type/typo
18:43 * tadzik has fixed his laptop o/
18:43 tadzik I'll never laugh about duct tape again
18:43 masak good. duck tape is serious business. :)
18:43 masak duct*
18:44 mls because there's no longer an exception thrown in the try {} block
18:44 moritz duck typing tape
18:45 mls I still have no clue why the exception breaks things, though
18:47 dalek rakudo/nom: b420e0d | moritz++ | src/core/Hash.pm:
18:47 dalek rakudo/nom: fix typo in Hash.pm, mls++
18:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b420e0ddf1
18:51 moritz ok, as a result I get a test failure in assigning-ref.rakudo
18:51 moritz but since it's similar to two other already fudged tests, I'm happy to fudge it out
18:52 dalek roast: 0b33da3 | moritz++ | S02-builtin_data_types/assigning-refs.t:
18:52 dalek roast: rakudo fudge in assigning-refs.t
18:52 dalek roast: review: https://github.com/perl6/roast/commit/0b33da3cc0
18:53 mls left #perl6
18:53 jnthn mls++ :)
18:59 KyleHa How do I test whether every element in @unique_sorted is in @unsorted_stuff ?  I thought @unsorted_stuff ~~ all(@unique_sorted), but it turns up false when I want true.
19:00 moritz all(@unsorted_stuff) ~~ all(@unique_sorted)
19:00 moritz iirc
19:01 KyleHa It seems no. I guess I'll do it the hard way.
19:01 masak moritz: no, that would test all against all.
19:02 masak would only be true if they were two arrays of just the same elem.
19:02 flussence KyleHa: by defining an infix:<⊂>? :)
19:02 masak it is defined.
19:02 masak well, kinda.
19:02 simcop2387 left #perl6
19:02 masak (<) is.
19:02 masak in core/Set.pm
19:02 moritz right, all(@a) ~~ any(@b)
19:02 masak right.
19:04 flussence rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; say 2..5 ⊂ 1..40
19:04 p6eval rakudo 922500: OUTPUT«No applicable candidates found to dispatch to for 'infix:<⊂>'. Available candidates are:␤:(@a, @b)␤␤  in main program body at line 22:/tmp/Yj91p0hO73␤»
19:05 KyleHa I think @unsorted_stuff.sort.uniq ~~ @sorted_unique
19:05 flussence oh right, I need @-thingies there.
19:05 birdwindupbird joined #perl6
19:05 flussence rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = 2..5; my @b = 1..40; say @a ⊂ @b
19:05 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:05 masak rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; say (2..5).list ⊂ (1..40).list
19:05 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:06 simcop2387 joined #perl6
19:06 masak I would expect Bool::True there.
19:06 flussence me too
19:06 flussence rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = <2 3 4 5>; my @b = <1 2 3 4 5 6>; say @a ⊂ @b
19:06 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:06 flussence huh.
19:07 flussence rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = <2 3 4 5>; my @b = <1 2 3 4 5 6>; say all(@a) ~~ any(@b)
19:07 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:08 flussence rakudo: say all(1, 2) ~~ any(1, 2, 3)
19:08 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:08 flussence rakudo: say all(1, 2) ~~ any(1, 2, 3, 1|2)
19:08 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:08 flussence rakudo: say all([1, 2] ~~ any(1, 2, 3))
19:09 p6eval rakudo 922500: OUTPUT«all(Bool::True)␤»
19:09 flussence rakudo: say all([1, 2, 10] ~~ any(1, 2, 3))
19:09 p6eval rakudo 922500: OUTPUT«all(Bool::True)␤»
19:09 dalek roast: 13af15f | moritz++ | S02-literals/quoting.t:
19:09 dalek roast: fudge quoting.t for rakudo
19:09 dalek roast: review: https://github.com/perl6/roast/commit/13af15f8c1
19:09 lichtkind joined #perl6
19:11 moritz wow, t/spec/S02-literals/pairs.t is totally busted
19:11 flussence rakudo: say none(any([1, 2, 10]) !~ any(1, 2, 3))
19:11 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unsupported use of !~ to do negated pattern matching; in Perl 6 please use !~~ at line 22, near "any(1, 2, "␤»
19:12 flussence .oO( hm, I think this needs a different approach. )
19:14 masak rakudo: say all(1) ~~ any(1)
19:14 p6eval rakudo 922500: OUTPUT«Bool::True␤»
19:14 masak rakudo: say all(1) ~~ any(1, 2)
19:14 p6eval rakudo 922500: OUTPUT«Bool::True␤»
19:14 jnthn moritz: busted?
19:14 masak rakudo: say all(1, 2) ~~ any(1, 2)
19:14 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:14 jnthn moritz: Regressed, or we never passed it?
19:15 moritz jnthn: the first ~20 tests assume you can pass positionals by name
19:15 jnthn ah
19:15 jnthn hm
19:15 jnthn May have to shuffle some operators around in the setting
19:16 jnthn (Ones that want enum Order)
19:16 masak ah. all(1, 2) ~~ any(1, 2) doesn't work, because it's parsed as 1&2 ~~ 1 || 1&2 ~~ 2, not 1 ~~ 1|2 && 2 ~~ 1|2
19:16 masak rakudo: say not none(1, 2) ~~ any(1, 2, 3)
19:16 p6eval rakudo 922500: OUTPUT«Bool::False␤»
19:17 masak dang :)
19:17 jnthn Numeric.pm is too early to use an enum in the setting, it seems.
19:17 jnthn The joys of bootstrapping.
19:17 jnthn Guess this tells us Bool's change of becoming an enum very soon.
19:18 masak rakudo: say [and] ($_ ~~ any(1..40) for 2..5)
19:18 p6eval rakudo 922500: OUTPUT«Bool::True␤»
19:18 masak \o/
19:18 * jnthn suspects it can't be one. enums are too complex for something so low level.
19:18 masak isn't Bool already an enum in Niecza?
19:19 jnthn masak: Dunno.
19:20 jnthn niecza: BEGIN { say "ok" }; blah$%59fna93!!!syntax error
19:20 p6eval niecza v8-3-g838bc38: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Confused at /tmp/ILn7_cEe6q line 1:␤------> [32mBEGIN { say "ok" }; blah[33m⏏[31m$%59fna93!!!syntax error[0m␤␤Undeclared routine:␤     'blah' used at line 1␤␤Parse failed␤␤»
19:20 jnthn nom: BEGIN { say "ok" }; blah$%59fna93!!!syntax error
19:20 p6eval nom: OUTPUT«ok␤Confused at line 1, near "blah$%59fn"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
19:21 jnthn Yeah, Niecza doesn't (yet) seem to have to deal with begin time in the same way nom does.
19:21 jnthn We could get away with more in master by not doing so also.
19:21 masak jnthn: does what you said earlier imply that Bool::True ~~ Int ? :/
19:22 jnthn masak: Only if Bool is an enum, which is something that more people than just me are not convinced of.
19:22 jnthn masak: And even then it could define a different base type.
19:22 masak S12:1959: our enum Bool does Boolean <False True>;
19:23 masak not sure what that implies about Int-ness.
19:23 daxim left #perl6
19:23 jnthn That'd imply Int-ness.
19:23 masak hm.
19:24 jnthn look for
19:24 jnthn Fri ~~ Int  # True, because derived from Int
19:24 jnthn It's fine that enum elements are their base type.
19:24 jnthn It's maybe not fine that Bool ~~ Int though.
19:24 jnthn But it's maybe also not fine that implementors have their hands tied so much about how they implement something so primitive as booleans.
19:25 cryptographrix joined #perl6
19:25 masak I wouldn't know -- I haven't tried implementing Bool as an enum.
19:25 moritz would it turn to not have Bool an enum, but provide all the methods that enums have?
19:25 cryptographrix left #perl6
19:25 moritz s/turn/hurt/
19:26 masak not if you ask me.
19:26 jnthn moritz: If done late enough, the enum-ish roles could also be included.
19:26 jnthn oh heh
19:26 jnthn That'd be a backdoor way to do it :)
19:26 masak sure, why not?
19:26 jnthn Well, maybe there's a sane way to chop this one up with the circularity saw. It just lookes painful.
19:27 jnthn masak: It'd not have EnumHOW as its HOW then I guess...
19:27 jnthn oh
19:27 moritz nom: say (package => 1).key
19:27 p6eval nom: OUTPUT«Malformed $*PKGDECL at line 1, near "=> 1).key"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
19:27 jnthn no, we can'd do that.
19:27 masak awww
19:27 jnthn Because we have to instantaite bool
19:27 jnthn *Bool
19:27 masak right.
19:27 jnthn Before we'd get to add the roles
19:27 jnthn Which contain attributes.
19:27 masak jnthn: if you could *show* that this is somehow impossible...
19:28 jnthn masak: Impossible may be a little strong. Painful may be easier. :)
19:28 jnthn masak: I can just see it being painful for every implementor, that's all.
19:28 jnthn And I'm not sure what users win from Bool being an enum.
19:31 pmichaud I don't think that Bool ~~ Int
19:31 sorear fwiw, niecza doesn't have anything like an 'EnumHOW'
19:31 sorear in niecza, enums are desugared to classes almost immediately
19:31 pmichaud many years ago, TimToady++ once said on the mailing list that Bool was more like a bit1
19:31 pmichaud or int1
19:31 masak pmichaud: int1, the 0 or -1 one? :P
19:32 pmichaud masak: yes.  :-)
19:32 masak pmichaud: that'd screw up ++ and -- :)
19:32 jnthn Note that int1 ~~ Int.
19:32 pmichaud well, Bool.succ and Bool.pred are specially defined anyway
19:32 masak heh :)
19:32 sorear -1 to non-transitive ~~
19:32 jnthn nom: say int ~~ Int
19:32 p6eval nom: OUTPUT«Bool::False␤»
19:32 jnthn huh.
19:32 masak sorear: agreed.
19:33 jnthn nom: say int.isa(Int)
19:33 p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: '_block1002' pc 77 ((file unknown):523) (/tmp/YnvTELM2qh:1)␤»
19:33 jnthn Oh.
19:33 pmichaud in some ways, Bool ~~ Int implies some level of surprise.
19:33 pmichaud sub xyz(Int $x) { ... };   say xyz(Bool::True);
19:33 dalek rakudo/nom: 19c000b | moritz++ | t/spectest.data:
19:33 dalek rakudo/nom: run two more test files
19:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/19c000b3a7
19:33 jnthn pmichaud: Yeah, I don't like that either.
19:34 pmichaud thus far I think I'm firmly in the camp of "Bool is not an enum"
19:34 pmichaud what are the reasons for having it be an enum, ooc?
19:34 sorear I'm not firmly in any camp, but I like having the enum tools
19:35 sorear Bool("True") is awesome
19:37 cryptographrix joined #perl6
19:38 Tedd1 joined #perl6
19:38 flussence rakudo: my @a = a => 1, b => 2; say @a.perl; say @a.hash.perl; say @a.perl;
19:38 p6eval rakudo 922500: OUTPUT«["a" => 1, "b" => 2]␤{"a" => 1, "b" => 2}␤[]␤»
19:38 flussence ^
19:38 birdwindupbird left #perl6
19:39 flussence @a.hash is eating @a...
19:39 pmichaud nom: my @a = a => 1, b => 2;  say @a.perl;  say @a.hash.perl;  say @a.perl;
19:39 p6eval nom: OUTPUT«Array.new("a" => 1, "b" => 2)␤("a" => 1, "b" => 2).hash␤Array.new()␤»
19:40 masak I'm firmly in the "Bool is an enum". because it has all the characteristics of one.
19:40 sorear masak: the issue at stake is "Bool ~~ Int"
19:40 masak yes, I see that. I raised that issue.
19:40 pmichaud well, and some circularity sawing.
19:40 sorear pm likes strong typing and wants to make 1 + (3 > 2) die
19:41 pmichaud not at all
19:41 pmichaud there can still be a Bool.Numeric
19:41 masak sure.
19:41 pmichaud what I said above doesn't say anything about   1 + (3 > 2)  dying
19:42 masak sorear likes hyperbole and wants to put words in people's mouths :P
19:42 pmichaud I've noticed.  :)
19:42 bluescreen10 left #perl6
19:42 pmichaud in fact, I snapped a photo of it this last weekend while in philadelphia
19:42 masak a photo of a hyperbole? :D
19:43 pmichaud picahttps://picasaweb.google.com/lh/photo/uPbeOwll-AW​HsLPnsbhcw8KdzmMP6WNhVTB5qqqYSfQ?feat=directlink
19:43 pmichaud er
19:43 pmichaud https://picasaweb.google.com/lh/photo/uPbeOwll-AW​HsLPnsbhcw8KdzmMP6WNhVTB5qqqYSfQ?feat=directlink
19:44 masak :)
19:46 kaare_ left #perl6
19:46 * masak submits the @a.hash eats @a bug above
19:47 nebuchadnezzar left #perl6
19:47 moritz nom: my @a = <bacon bacon>; @a.hash; say @a
19:48 p6eval nom: OUTPUT«␤»
19:48 moritz anti-double-bacon bug!
19:48 pmichaud fix coming
19:48 jnthn If only tadzik had done both... :)
19:48 maja joined #perl6
19:49 * pmichaud wonders when we get to the double-bacon-lol-cheezburger bug.
19:49 masak any day now.
19:50 masak and then we can cool off with a hot snowman-comet bug.
19:50 maja left #perl6
19:51 * sorear is stunned by this accusation
19:51 masak sorear: sometimes it's hard to know how seriously you take things, or mean things.
19:52 masak partly due to the textual format, of course. partly because we haven't met AFK.
19:53 tadzik oh :)
19:54 flussence rakudo: my @a = [1,2,3], 1..3; say @a.perl
19:54 p6eval rakudo 922500: OUTPUT«[[1, 2, 3], 1, 2, 3]␤»
19:54 flussence how do I write that so +@a == 2?
19:54 pmichaud > my @a = a => 1, b => 2; say @a.perl; say @a.hash.perl; say @a.perl
19:54 pmichaud Array.new("a" => 1, "b" => 2)
19:54 pmichaud ("a" => 1, "b" => 2).hash
19:54 pmichaud Array.new("a" => 1, "b" => 2)
19:55 flussence yay
19:55 masak rakudo: my @a = [1, 2, 3], [1..3]; say +@a
19:55 p6eval rakudo 922500: OUTPUT«2␤»
19:55 flussence oh, that makes sense :)
19:55 moritz rakudo: my @a = [1, 2, 3], my $ = 1..3; say @a[1].WHAT
19:55 p6eval rakudo 922500: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤  in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
19:55 moritz rakudo: my @a = [1, 2, 3], my $ = (1..3); say @a[1].WHAT
19:55 p6eval rakudo 922500: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤  in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
19:56 shinobicl joined #perl6
19:56 moritz nom: my @a = [1, 2, 3], my $ = (1..3); say @a[1].WHAT
19:56 p6eval nom: OUTPUT«Int()␤»
19:56 moritz nom: my @a = [1, 2, 3], my $ = (1..3); say @a.perl
19:56 p6eval nom: OUTPUT«Array.new(1, 2)␤»
19:56 moritz wtf?
19:57 moritz nom: my @a = [1, 2, 3], (my $ = (1..3)); say @a.perl
19:57 p6eval nom: OUTPUT«Array.new([1, 2, 3], 1..3)␤»
19:57 pmichaud precedence, likely.
19:57 moritz right
19:57 moritz that's what I wanted to do
19:57 moritz nom: my @a = [1, 2, 3], (my $ = (1..3)); say @a[1].WHAT
19:57 p6eval nom: OUTPUT«Range()␤»
19:57 moritz that way you can preserve the ranginess
19:57 bluescreen10 joined #perl6
19:57 pmichaud nom:  my @a = [1,2,3], $(1..3); say @a[1].WHAT
19:57 p6eval nom: OUTPUT«Range()␤»
19:57 pmichaud easier.
19:58 moritz nom: my @a = [1, 2, 3], (my $ = (1..3)); say eval(@a.perl).perl
19:58 shinobicl_ joined #perl6
19:58 p6eval nom: OUTPUT«Array.new([1, 2, 3], 1, 2, 3)␤»
19:58 moritz bug?
19:58 shinobicl_ i just installed rakudo from git. but when i run perl6 from other place than $HOME/rakudo, it gives the error :  PARROT VM: Could not load bytecode   Could not load oplib `perl6_ops'
19:58 moritz shinobicl_: did you 'make install'?
19:58 tadzik did you 'make install'?
19:58 shinobicl_ i have $HOME/rakudo in my $PATH
19:59 moritz nom: say (my @a = (1..3).item).perl
19:59 p6eval nom: OUTPUT«Array.new(1..3)␤»
19:59 masak shinobicl_: did you 'make install'?
19:59 shinobicl_ oops.. that fixes it, sorry... and thanks :)
19:59 tadzik ok, since there's a crowd...
19:59 nebuchadnezzar joined #perl6
20:00 pmichaud moritz: yes, looks like some sort of bug.
20:00 tadzik so, any further comments on http://irclog.perlgeek.de/​perl6/2011-07-28#i_4180407 maybe?
20:00 shinobicl left #perl6
20:00 tadzik (up to 13:27)
20:02 dalek rakudo/nom: 118befb | pmichaud++ | src/core/Hash.pm:
20:02 dalek rakudo/nom: Make sure that Hash.STORE doesn't consume the thing it's storing.
20:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/118befba26
20:06 AndroUser2 joined #perl6
20:08 masak tadzik: I can't extract much from that discussion, sadly. would it be too much to ask for a gist with a clear example or two, highlighting the issue(s)?
20:09 cryptographrix left #perl6
20:09 tadzik sure
20:10 tadzik yesterday's demo: http://wklej.org/id/567822/
20:10 tadzik more detailed one coming...
20:10 jnthn iiuc, it's about how #= gets associated with the thing it's documenting.
20:10 masak yes, I got that bit.
20:11 masak I also understood that it's tricker than I'd thus far assumed :)
20:11 AndroUser2 left #perl6
20:11 * jnthn has had it in the back of his mind and didn't come up with a clean answer yet.
20:11 jnthn Mostly becuase
20:11 jnthn #= blah blah awesomeness
20:11 jnthn class Beer {
20:11 jnthn }
20:11 jnthn Is another way to do
20:11 jnthn class Beer {
20:11 jnthn #= blah blah awesomeness
20:11 jnthn }
20:11 jnthn Or something
20:11 masak hm.
20:12 jnthn Or certainly it's true that
20:12 jnthn #= oh lol
20:12 pernatiy joined #perl6
20:12 jnthn has $!clown;
20:12 araujo left #perl6
20:12 jnthn is possible as well as
20:12 jnthn has $!clown; #= oh lol
20:12 pmichaud I thought we had discussed the possibility of having specialized markers to indicate whether the comment was for the declaration before or the declaration after
20:12 masak would it help if we spec'd the splitting-up of those two into two different "twigils" right away?
20:12 masak pmichaud: right.
20:12 jnthn masak: Yes
20:13 masak we certainly concluded that that would be better.
20:13 jnthn #< document that thingy
20:13 jnthn #\/ document that thingy
20:13 jnthn :)
20:13 masak :P
20:13 tadzik https://gist.github.com/1112434
20:13 * masak thought it was #^ and #=, but isn't sure
20:13 TimToady #> and #< would be symmetrical
20:14 pmichaud I'd prefer #> and #<, myself, reserving #= for something else possibly (maybe the dwimmy version when we figure it out)
20:14 TimToady though maybe it'd have to be #v and #<
20:15 masak would #< really work?
20:15 masak what with #< ... >, I mean.
20:15 TimToady #`<>
20:15 masak oh right.
20:15 masak good call :)
20:15 TimToady but it could be confusing
20:16 pmichaud #=< and  #=>   are available
20:16 masak waitwait.
20:16 TimToady #∥ and #=
20:16 masak before we have this discussion, *again*... :)
20:16 pmichaud #=+ and #=-   too :)
20:16 masak can't we just look at the last time?
20:16 masak we did bikeshed quite thoroughly back then.
20:16 pmichaud masak: I'm just waiting for you to locate + post the link
20:16 masak oh!
20:16 masak :)
20:16 * masak locates
20:16 * TimToady sneaks off to work on his talk again
20:17 pmichaud until then, we can fill empty space with more bikeshedding and brainstorming :)
20:17 masak TimToady: good luck! hope to hear a reprise at YAPC::EU! :)
20:18 masak pmichaud (and others): http://irclog.perlgeek.de/​perl6/2010-06-18#i_2453678
20:18 pmichaud nom:  say "./perl6".IO.x
20:18 p6eval nom: OUTPUT«Bool::True␤»
20:18 masak it's nice to have a word-based brain when searching logs :)
20:18 araujo joined #perl6
20:21 pmichaud looks like previous bikeshedding settled on #|  (after) and #= (before)
20:22 pmichaud i.e., #| documents the next decl,  #= documents the previous one
20:22 pmichaud nom: say "./perl6".IO.d
20:22 p6eval nom: OUTPUT«Bool::False␤»
20:22 pmichaud nom: say "./perl6".IO ~~ :d
20:22 p6eval nom: OUTPUT«Bool::False␤»
20:22 pmichaud nom: say "./perl6".IO ~~ :x
20:22 p6eval nom: OUTPUT«Bool::True␤»
20:22 jnthn nom: say "./".IO.d
20:22 p6eval nom: OUTPUT«Bool::True␤»
20:22 sorear That is what I remember of the discussion too.
20:22 jnthn nom: say "/".IO.d
20:22 p6eval nom: OUTPUT«Bool::True␤»
20:22 jnthn nom: say "/doesn't-exist".IO.d
20:22 p6eval nom: OUTPUT«stat failed: No such file or directory␤current instr.: 'd' pc 558756 (src/gen/CORE.setting.pir:155599) (src/gen/CORE.setting:3854)␤»
20:23 pmichaud nom:  say "/doesn't-exist".IO.e
20:23 p6eval nom: OUTPUT«Bool::False␤»
20:23 pmichaud nom:  say "/doesn't-exist".IO.f
20:23 p6eval nom: OUTPUT«stat failed: No such file or directory␤current instr.: 'f' pc 558862 (src/gen/CORE.setting.pir:155643) (src/gen/CORE.setting:3862)␤»
20:24 pmichaud nom:  say "/doesn't-exist".IO.w
20:24 p6eval nom: OUTPUT«Bool::False␤»
20:24 pmichaud nom:  say "/doesn't-exist".IO.r
20:24 p6eval nom: OUTPUT«Bool::False␤»
20:24 pmichaud nom:  say "/doesn't-exist".IO.s
20:24 p6eval nom: OUTPUT«stat failed: No such file or directory␤current instr.: 's' pc 559065 (src/gen/CORE.setting.pir:155699) (src/gen/CORE.setting:3876)␤»
20:25 pmichaud (fixing)
20:31 Vlavv` joined #perl6
20:32 uvtc joined #perl6
20:33 Vlavv_ left #perl6
20:33 uvtc Anyone know if there's videos available for any Perl 6 -related OSCON talks?
20:34 pmichaud uvtc: no, I don't know.  in the past I don't think any of OSCON's Perl 6 talks have made it to public video
20:35 uvtc On the main oscon page, I clicked on the gray "VIDEOS" link/area at the bottom of the streaming video, and there are some listed. Did not see Damian's there though.
20:36 uvtc Thanks for the info, pmichaud.
20:36 uvtc Do you know if Larry's SOTO will be available?
20:38 sorear TimToady, uvtc wants to know if the SOTO will be available online
20:41 uvtc Wait a sec. Is this the first SOTO in a while? The ones listed at  http://www.perlfoundation.org/perl​6/index.cgi?state_of_the_oniononly go until 2007...
20:41 pmichaud there have been soto's every year since 2007
20:41 pmichaud they haven't always been transcribed
20:41 uvtc Ah.
20:42 pmichaud and the perlfouncation.org page is likely out of date
20:42 * [Coke] sighs.
20:42 molaf left #perl6
20:44 uvtc TimToady: excited about this year's SOTO, but I'm not at OSCON. Hoping it's made available online.
20:45 TimToady dunno, last few years have been more in the category of live demos
20:45 [Coke] STII:: the wrath oscooooooooon.
20:45 flussence so, er, I went and wrote «⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉» infixes: https://github.com/flussen​ce/Mathematical-Operators
20:46 masak 'night, #perl6ers.
20:46 shinobicl_ left #perl6
20:46 flussence o/
20:46 masak left #perl6
20:46 moritz \o
20:47 tadzik flussence: is it already in the ecosystem?
20:47 uvtc TimToady: Thanks. If I don't see it anywhere, will ask around for a summary of it.
20:47 jnthn pmichaud: ping
20:47 flussence tadzik: I only uploaded it just now so no :)
20:47 tadzik very nice :)
20:50 dorlamm joined #perl6
20:50 Jackneill left #perl6
20:51 dalek roast: 1395cad | moritz++ | S02-literals/pairs.t:
20:51 dalek roast: rewrite pairs.t to conform to current spec
20:51 dalek roast: review: https://github.com/perl6/roast/commit/1395cad56b
20:51 pmichaud jnthn: pong
20:52 pmichaud (nfa/qregex is going to have to be tomorrow... too many house distractions here today)
20:53 jnthn pmichaud: Seems return 1,2,3; does not yet work - known?
20:54 pmichaud aha!  we can solve the debt ceiling by finding a couple of coins in the couches!  http://nymag.com/daily/intel/2011/07/tril​lion_dollar_coin_debt_ceiling_balkin.html
20:54 jnthn pmichaud: Just ran into it after fixing the other reason recurse.t fails.
20:54 pmichaud jnthn: in nom?
20:54 jnthn pmichaud: aye
20:55 pmichaud nom:  sub f() { return 1,2,3; };   say f().WHAT
20:55 p6eval nom: OUTPUT«Rebuild in progress␤»
20:55 pmichaud nom:  sub f() { 1,2,3; };   say f().WHAT
20:55 p6eval nom: OUTPUT«Rebuild in progress␤»
20:55 pmichaud grr
20:55 pmichaud looking.
20:55 * jnthn has one in progress too :)
20:56 pmichaud yeah, it's a bug in &return
20:56 moritz speaking of bugs...
20:56 pmichaud fixing.
20:56 jnthn pmichaud: thanks :)
20:56 moritz nom: say 42 &[+] 24
20:56 p6eval nom: OUTPUT«Rebuild in progress␤»
20:56 moritz locally that say all(42, 24)
20:56 jnthn rakudo: say 42 &[+] 24
20:57 p6eval rakudo 922500: OUTPUT«all(42, 24)␤»
20:57 jnthn ah, not a regression
20:57 jnthn Just a mis-parse.
20:57 pmichaud parse bug
20:57 jnthn Yeah, I can see what it's doing.
20:57 jnthn Not sure if we actually have the stuff to parse &[+] in the grammar though.
20:58 * moritz doesn't see it
20:58 jnthn Does it always mean infix:<+>?
20:58 * jnthn has some weird memories of it being fluffier.
20:58 moritz if it parses & as an infix, and the [+] as term after it, shouldn't the 24 be TTIAR?
20:59 moritz jnthn: I think it's "only the arity-2 candidates of infix:+" or so
20:59 jnthn [+] is being parsed as the reduction operator
20:59 pmichaud the [+] is being par.... what jnthn++ said
20:59 jnthn And 24 as an argument to that.
20:59 moritz ah
20:59 jnthn moritz: Only the arity two ones? Whoa. :)
21:00 * jnthn wonders how to best implement that.
21:00 moritz jnthn: don't take my word for it
21:04 dalek roast: 7761c24 | moritz++ | S (2 files):
21:04 dalek roast: some nom fudges
21:04 dalek roast: review: https://github.com/perl6/roast/commit/7761c24b80
21:04 dalek features: e271948 | larry++ | features.json:
21:04 dalek features: code for multi methods
21:04 dalek features: review: https://github.com/perl6/f​eatures/commit/e271948d12
21:05 dorlamm left #perl6
21:06 * jnthn feels like he returned from vacation but his brane is still somehow on it
21:08 [Coke] jnthn: I think that's how my brain feels all the time now. :P
21:08 jnthn :P
21:09 uvtc [Coke]: I find that some vigorous exercise tends to wake my brain up. Trouble is convincing it that the exercise is a good idea.
21:09 dalek rakudo/nom: 29058a9 | jonathan++ | src/Perl6/Actions.pm:
21:09 dalek rakudo/nom: &?ROUTINE
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29058a9b0e
21:09 dalek rakudo/nom: 1c335ac | jonathan++ | src/core/Routine.pm:
21:09 dalek rakudo/nom: Support Routine.assuming as well as master did (some day we may want to do some magic with generating an updated signature and some such, but that's teh tricky).
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1c335ac7f5
21:09 dalek rakudo/nom: 5161c8b | jonathan++ | t/spectest.data:
21:09 dalek rakudo/nom: Two more passing test files.
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5161c8be35
21:14 uvtc When one pushes to github, and dalek tells irc about it, how does it determine which name to use? For example,
21:15 uvtc jnthn's github username seems to be jnthn, and his real name is there too, but dalek calls him jonathan (see above).
21:15 tadzik parrot/CREDITS
21:16 [Coke] there's a CREDITs file somewhere.
21:16 [Coke] tadzik++
21:18 uvtc Ah, thanks, tadzik.
21:20 bluescreen10 left #perl6
21:23 timbunce left #perl6
21:26 [Coke] left #perl6
21:26 uvtc left #perl6
21:27 [Coke] joined #perl6
21:39 pmichaud the return fix is going to take a bit
21:40 jnthn pmichaud: I glanced at it and thought "hmm, how to efficiently do this"
21:40 pmichaud yeah
21:40 jnthn oh
21:41 jnthn Isn't there a way to get the arguments parcel...
21:41 pmichaud there's a way to get the arguments RPA, yes.
21:41 pmichaud but if it's a single element, you need to unpack it
21:41 jnthn ah
21:41 pmichaud and if it's zero elements, it needs to be nil
21:41 pmichaud *Nil
21:42 jnthn ah, non-trivial.
21:42 pmichaud and I'm looking for a way to do that without copy+paste the code each time, and without incuring an extra function call overhead each time.
21:42 jnthn dynop :P
21:42 pmichaud yeah, I'm considering that option too.
21:42 jnthn (Getting the arguments RPA already is one anyway...)
21:42 pmichaud oh, that's true.
21:43 pmichaud would probably want to pass Nil as an operand
21:43 pmichaud rather than try to look it up
21:43 pmichaud (Nil isn't bootstrapped at the moment, iirc.)
21:45 dalek features: f0652f5 | pmichaud++ | features.json:
21:45 dalek features: Nom has filetest methods.
21:45 dalek features: review: https://github.com/perl6/f​eatures/commit/f0652f5370
21:45 impious left #perl6
21:46 jnthn Yeah, as an operand is fine.
21:46 dalek roast: 498ffb2 | jonathan++ | S06-routine-modifiers/scoped-named-subs.t:
21:46 dalek roast: Bring a test up to latest spec on our names.
21:46 dalek roast: review: https://github.com/perl6/roast/commit/498ffb2d96
21:47 Patterner left #perl6
21:48 dalek rakudo/nom: b0a7bcd | jonathan++ | t/spectest.data:
21:48 dalek rakudo/nom: One more passing test file.
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b0a7bcdd7a
21:48 dalek rakudo/nom: d9d0d00 | pmichaud++ | src/core/IO.pm:
21:48 dalek rakudo/nom: Fix filetest operators for non-existent files.
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d9d0d00a11
21:48 Psyche^ joined #perl6
21:48 Psyche^ is now known as Patterner
21:51 dalek roast: 02418cf | jonathan++ | S06-multi/syntax.t:
21:51 dalek roast: Correct a test that relied on the old Int ~~ Num semantics.
21:51 dalek roast: review: https://github.com/perl6/roast/commit/02418cf7e7
21:51 jnthn std: Multi
21:51 p6eval std 516268a: OUTPUT«ok 00:01 118m␤»
21:53 KyleHa left #perl6
21:55 Vlavv_ joined #perl6
21:58 Vlavv` left #perl6
22:01 Kivutarrr left #perl6
22:02 dalek roast: 340e9d4 | jonathan++ | S06-multi/syntax.t:
22:02 dalek roast: A fudge for nom.
22:02 dalek roast: review: https://github.com/perl6/roast/commit/340e9d4aa7
22:03 drbean joined #perl6
22:05 shinobicl joined #perl6
22:05 dalek rakudo/nom: c2794a4 | jonathan++ | src/core/Routine.pm:
22:05 dalek rakudo/nom: Routine.candidates
22:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2794a44d9
22:05 dalek rakudo/nom: 333a91f | jonathan++ | t/spectest.data:
22:05 dalek rakudo/nom: Run S06-multi/syntax.t.
22:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/333a91ff19
22:08 jnthn nom: say NaN ~~ NaN
22:08 p6eval nom: OUTPUT«Bool::False␤»
22:08 jnthn perl6: say NaN ~~ NaN
22:08 p6eval rakudo 922500: OUTPUT«Bool::True␤»
22:08 p6eval ..pugs: OUTPUT«1␤»
22:08 p6eval ..niecza v8-3-g838bc38: OUTPUT«Bool::False␤»
22:10 shinobicl left #perl6
22:12 dalek roast: 7d3cc6e | jonathan++ | S06-multi/type-based.t:
22:12 dalek roast: A couple of spec updates to S06-multi/syntax.t.
22:12 dalek roast: review: https://github.com/perl6/roast/commit/7d3cc6e454
22:16 shinobicl joined #perl6
22:22 kboga joined #perl6
22:23 shinobicl rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; $T.assign("stuff"); if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is $T.data" };
22:23 p6eval rakudo 922500: OUTPUT«Your data is Thing()<0x427e438>.data␤»
22:24 shinobicl rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is $T.data" };
22:24 p6eval rakudo 922500: OUTPUT«You have no data yet␤»
22:25 shinobicl how is that i can evaluate $T.data in the 'if' but can't show it as "say $T.data"?
22:25 flussence rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; $T.assign("stuff"); if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is {$T.data}" };
22:25 p6eval rakudo 922500: OUTPUT«Your data is stuff␤»
22:26 dalek roast: 666e44c | jonathan++ | S12-methods/defer-call.t:
22:26 dalek roast: Update defer-call.t to match latest proto/multi semantics.
22:26 dalek roast: review: https://github.com/perl6/roast/commit/666e44c151
22:26 dalek roast: 266464f | jonathan++ | S12-methods/defer-next.t:
22:26 dalek roast: Update defer-next.t to match latest proto/multi semantics.
22:26 dalek roast: review: https://github.com/perl6/roast/commit/266464ff4c
22:26 shinobicl rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is " ~ $T.data };
22:26 p6eval rakudo 922500: OUTPUT«You have no data yet␤»
22:27 shinobicl thanks flussence :)
22:40 dalek rakudo/nom: 764d2f9 | jonathan++ | src/core/traits.pm:
22:40 dalek rakudo/nom: A couple more trait handlers (though nothing yet answers them).
22:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/764d2f948d
22:40 dalek rakudo/nom: 075104d | jonathan++ | t/spectest.data:
22:40 dalek rakudo/nom: Two more passing test files.
22:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/075104d015
22:41 jferrero joined #perl6
22:50 dalek rakudo/nom: 9246ce6 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:50 dalek rakudo/nom: Add logic to attribute meta-object so it may be explicitly marked readonly, and able to default itself to rw if it wasn't marked readonly.
22:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9246ce6de0
22:50 dalek rakudo/nom: 0ca6dad | jonathan++ | src/Perl6/Metamodel/ (2 files):
22:50 dalek rakudo/nom: Implement rw handling for types in AttributeContainer role; also factor attribute composition into that role to take a little more bulk out of ClassHOW.
22:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ca6dad381
22:50 dalek rakudo/nom: caf5d1a | jonathan++ | t/spectest.data:
22:50 dalek rakudo/nom: Run S12-class/rw.t.
22:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/caf5d1aa5c
23:11 shinobicl left #perl6
23:21 lichtkind thou: cheers
23:23 thou hola
23:26 jnthn eek, I just tried to declare a struct element in C with the "has" keyword... :/
23:27 thou left #perl6
23:29 orafu left #perl6
23:30 orafu joined #perl6
23:36 impious joined #perl6
23:43 wamba left #perl6
23:45 kboga :)
23:47 kboga wow the argv go a long way from perl6.c
23:48 dalek rakudo/nom: b05b391 | jonathan++ | LHF.markdown:
23:48 dalek rakudo/nom: Update LHF; remove a dupe entry...nice as minmax op would be, it only needs to be listed once. :-)
23:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b05b391310
23:48 dalek rakudo/nom: 5d31774 | jonathan++ | src/ (3 files):
23:48 dalek rakudo/nom: Allow state declarator and pass along a flag to the lexpad when something is state scoped.
23:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d31774cc1
23:48 dalek rakudo/nom: 24c07b6 | jonathan++ | src/Perl6/Grammar.pm:
23:48 dalek rakudo/nom: Re-enable state scope declarator, in preparation for restoring state var functionality.
23:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/24c07b6466
23:48 dalek rakudo/nom: 2d89f4a | jonathan++ | src/Perl6/Actions.pm:
23:48 dalek rakudo/nom: Need action method for state scope declarator also.
23:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2d89f4ac56
23:49 sorear kboga: perl6.c is a generated file
23:51 whiteknight joined #perl6
23:51 kboga still, it passes the argv to parrot somehow no?
23:53 kboga nom: say nqp::p6box_s(nqp::atpos(nqp::atpos(pir::getinterp, pir::const::IGLOBALS_ARGV_LIST), 0)); # $*PROGRAM_NAME, but pir isn't allowed here right?
23:53 p6eval nom: OUTPUT«Rebuild in progress␤»
23:55 kboga that’s a way to get the $*PROGRAM_NAME but master does it differently
23:55 kboga say @*ARGS
23:55 kboga nom: say @*ARGS
23:55 p6eval nom: OUTPUT«Rebuild in progress␤»
23:55 kboga rakudo: say @*ARGS
23:55 p6eval rakudo 922500: OUTPUT«␤»
23:56 kboga right, interactive mode =/
23:56 kboga rakudo: say $*PROGRAM_NAME; # 'interactive' ?
23:56 p6eval rakudo 922500: OUTPUT«/tmp/dGhcSuttZH␤»
23:58 sorear kboga: please explain what you are trying to accomplish
23:58 sorear perl6.c is generated by parrot's pbc_to_exe
23:58 sorear perl6 X Y Z == parrot perl6.pbc X Y Z
23:58 sorear the main command line parsing is done by HLL/Compiler.pir in the NQP repo

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

Perl 6 | Reference Documentation | Rakudo