Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-06-08

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:04 sorear whiteknight: hi
00:25 Chillance left #perl6
00:32 smash left #perl6
00:55 whiteknight hello sorear
01:01 noganex_ joined #perl6
01:04 noganex left #perl6
01:12 woosley joined #perl6
01:21 envi_laptop joined #perl6
01:22 noganex_ left #perl6
01:29 noganex joined #perl6
01:30 Ali_h left #perl6
01:31 Ali_h joined #perl6
01:37 bitpart joined #perl6
01:38 cotto left #perl6
01:40 cotto joined #perl6
01:50 bitpart left #perl6
01:56 whiteknight left #perl6
02:01 dual left #perl6
02:05 dual_ joined #perl6
02:06 tokuhirom joined #perl6
02:06 dual_ is now known as dual
02:09 roen joined #perl6
02:11 cooper left #perl6
02:11 TiMBuS left #perl6
02:11 Trashlord left #perl6
02:11 pjcj left #perl6
02:11 tomaw left #perl6
02:11 jrockway left #perl6
02:11 ggoebel left #perl6
02:11 ilogger2 left #perl6
02:11 revdiablo left #perl6
02:11 Woody2143 left #perl6
02:11 hatseflats left #perl6
02:11 nebuchadnezzar left #perl6
02:11 pmichaud left #perl6
02:11 Juerd left #perl6
02:11 ingy left #perl6
02:11 cxreg left #perl6
02:11 _sri left #perl6
02:11 szabgab left #perl6
02:11 betterworld left #perl6
02:11 jnthn left #perl6
02:11 pmichaud joined #perl6
02:11 ingy joined #perl6
02:11 jnthn joined #perl6
02:11 cxreg joined #perl6
02:11 betterworld joined #perl6
02:11 hatseflats joined #perl6
02:11 Juerd joined #perl6
02:11 szabgab joined #perl6
02:11 __sri joined #perl6
02:11 nebuchadnezzar joined #perl6
02:11 TiMBuS joined #perl6
02:11 jrockway joined #perl6
02:11 cooper joined #perl6
02:11 revdiablo joined #perl6
02:11 pjcj joined #perl6
02:11 Woody2143 joined #perl6
02:11 ggoebel joined #perl6
02:11 Trashlord joined #perl6
02:12 ilogger2 joined #perl6
02:14 dual_ joined #perl6
02:16 dual left #perl6
02:16 dual_ is now known as dual
02:19 tomaw joined #perl6
02:21 kid51 left #perl6
02:21 sftp left #perl6
02:22 sftp joined #perl6
02:24 lumi left #perl6
02:31 dual left #perl6
02:32 sftp left #perl6
02:36 cotto left #perl6
02:36 cotto joined #perl6
02:37 mtk left #perl6
02:40 lumi joined #perl6
02:42 dual joined #perl6
02:45 mtk joined #perl6
02:48 dalek niecza: 11e843d | sorear++ | / (4 files):
02:48 dalek niecza: CREATE gets proper P6 semantics, add bless()
02:48 dalek niecza: review: https://github.com/sorear/niecza/commit/11e843d378
02:50 mberends joined #perl6
02:51 cooper|ipad joined #perl6
02:52 dual left #perl6
02:53 thou joined #perl6
02:54 sftp joined #perl6
02:55 jrockway left #perl6
02:58 dual joined #perl6
02:58 thou left #perl6
03:00 noganex_ joined #perl6
03:04 noganex left #perl6
03:05 dual left #perl6
03:11 satyavvd joined #perl6
03:13 lumi left #perl6
03:17 thou_ joined #perl6
03:18 molaf joined #perl6
03:19 lumi joined #perl6
03:21 dual joined #perl6
03:27 Su-Shee left #perl6
03:28 dual left #perl6
03:29 Su-Shee joined #perl6
03:30 mberends moritz: nom 'perl Configure.pl --gen-parrot --gen-nqp' works again here :)
03:31 dual joined #perl6
03:38 dual left #perl6
03:39 dual joined #perl6
03:39 jaldhar joined #perl6
03:41 molaf left #perl6
03:59 dual_ joined #perl6
03:59 szabgab jnthn: http://yapceurope.lv/ye2011/talk/3388 has no date on it, maybe edit the text so it will include that too?
04:00 szabgab same with http://yapceurope.lv/ye2011/talk/3283
04:01 dual left #perl6
04:02 larks joined #perl6
04:04 dual joined #perl6
04:04 dual_ left #perl6
04:06 lumi left #perl6
04:13 thou_ left #perl6
04:30 dual_ joined #perl6
04:33 dual left #perl6
04:33 dual_ is now known as dual
04:43 sorear hello szabgab
04:49 birdwindupbird joined #perl6
04:51 dual left #perl6
04:57 dual joined #perl6
05:03 dotIN joined #perl6
05:05 dual_ joined #perl6
05:06 dual left #perl6
05:07 in joined #perl6
05:08 koban joined #perl6
05:09 dual joined #perl6
05:10 dual_ left #perl6
05:11 tokuhirom left #perl6
05:11 dotIN left #perl6
05:12 tokuhirom joined #perl6
05:14 dotIN joined #perl6
05:16 in left #perl6
05:19 in joined #perl6
05:20 dalek rakudo/nom: 4d555ae | mberends++ | src/ (6 files):
05:20 dalek rakudo/nom: [src/binder] correct a spello s/Rakduo/Rakudo/g and fix some gcc warnings
05:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d555ae5f0
05:23 dotIN left #perl6
05:25 dotIN joined #perl6
05:25 jrockway joined #perl6
05:28 in left #perl6
05:30 yinyin joined #perl6
05:30 in joined #perl6
05:31 noganex joined #perl6
05:32 lateau joined #perl6
05:33 dual left #perl6
05:34 dotIN left #perl6
05:34 noganex_ left #perl6
05:35 lateau does anyone knows how to execute external commands from rakudo?
05:35 dalek rakudo/nom: 730da9d | mberends++ | src/binder/ (2 files):
05:35 dalek rakudo/nom: [src/binder] eliminate all gcc warnings (hope other C compilers are still ok)
05:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/730da9d345
05:36 mberends lateau: run($command)
05:36 lateau thanks! i'll try it
05:38 lateau mberends: is there any methods or functions capture the result of external commands?
05:38 lateau like my $of = `ls` in perl5
05:38 dalek niecza: 3638568 | sorear++ | lib/ (3 files):
05:38 dalek niecza: Do a bit of compose-time processing on the attribute list for new, suprising win
05:38 dalek niecza: review: https://github.com/sorear/niecza/commit/3638568098
05:38 sorear qx[ls]
05:39 lateau thx sorear, this is exactly what i want. thanks!
05:39 sorear incidentally this works in Perl 5 too; only the short syntax is gone
05:41 dotIN joined #perl6
05:44 in left #perl6
05:45 in joined #perl6
05:47 nymacro joined #perl6
05:48 dotIN left #perl6
05:50 dotIN joined #perl6
05:51 beek joined #perl6
05:53 in left #perl6
05:54 dalek niecza: b40503b | sorear++ | lib/Kernel.cs:
05:54 dalek niecza: Avoid inferior runloops for attributes with defaults
05:54 dalek niecza: review: https://github.com/sorear/niecza/commit/b40503bd55
05:56 sorear has $.x = 12; # no longer 10x slower than has $.x;
05:57 kboga joined #perl6
06:00 in joined #perl6
06:03 dotIN left #perl6
06:05 dotIN joined #perl6
06:07 yinyin left #perl6
06:08 in left #perl6
06:09 lumi joined #perl6
06:10 in joined #perl6
06:12 dalek niecza: ca4d6f1 | sorear++ | / (3 files):
06:12 dalek niecza: Implement use of submethod BUILD
06:12 dalek niecza: review: https://github.com/sorear/niecza/commit/ca4d6f1741
06:13 dotIN left #perl6
06:16 dotIN joined #perl6
06:18 in left #perl6
06:19 wamba joined #perl6
06:19 in joined #perl6
06:20 wamba left #perl6
06:21 wamba joined #perl6
06:22 fhelmberger joined #perl6
06:22 cooper left #perl6
06:23 dotIN left #perl6
06:23 wtw joined #perl6
06:25 sorear perl6: my $s = "foo"; say ($s ~~ s/o//).perl
06:25 dotIN joined #perl6
06:25 p6eval rakudo 484a25, niecza v6-80-g11e843d: OUTPUT«Bool::True␤»
06:25 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
06:25 sorear perl6: my $s = "foo"; say ($s ~~ s:g/o//).perl
06:25 p6eval rakudo 484a25: OUTPUT«Bool::True␤»
06:25 p6eval ..niecza v6-80-g11e843d: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Regex modifier g not yet implemented at /tmp/350yJhu4i8 line 1:␤------> [32mmy $s = "foo"; say ($s ~~ s:g[33m⏏[31m/o//).perl[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @
06:25 p6eval ..2) ␤  at /home…
06:25 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
06:26 sorear perl6: my $s = "foo"; say ($s ~~ s/x//).perl
06:26 p6eval rakudo 484a25: OUTPUT«Bool::True␤»
06:26 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
06:26 p6eval ..niecza v6-80-g11e843d: OUTPUT«Bool::False␤»
06:27 in left #perl6
06:29 in joined #perl6
06:33 dotIN left #perl6
06:35 dotIN joined #perl6
06:35 jfried joined #perl6
06:36 noganex left #perl6
06:38 in left #perl6
06:38 noganex joined #perl6
06:39 wamba left #perl6
06:39 in joined #perl6
06:41 dalek niecza: b0fc18e | sorear++ | / (2 files):
06:41 dalek niecza: Implement s:g///
06:41 dalek niecza: review: https://github.com/sorear/niecza/commit/b0fc18ede4
06:43 dotIN left #perl6
06:45 sorear rakudo: pugs: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT
06:45 p6eval rakudo 484a25: OUTPUT«===SORRY!===␤Confused at line 22, near "pugs: say "␤»
06:45 dotIN joined #perl6
06:45 sorear pugs: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT
06:45 p6eval pugs: OUTPUT«Int␤Int␤Int␤»
06:45 sorear rakudo: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT
06:45 p6eval rakudo 484a25: OUTPUT«Int()␤Method 'ceil' not found for invocant of class 'Num'␤  in main program body at line 22:/tmp/OP6xxNAMb7␤»
06:45 mberends hugme: list projects
06:46 mberends somebody(TM): please add me as a committer to nqp
06:46 sorear hugme: add mberends to nqp
06:47 sorear ENOHUGS
06:47 sorear mberends: perl6/nqp?
06:47 sorear or did you want nqp-rx?
06:48 in left #perl6
06:48 Mowah joined #perl6
06:49 sorear oh, it looks like they're the same bit
06:49 sorear mberends: you have committer access
06:50 sftp left #perl6
06:51 in joined #perl6
06:52 lateau left #perl6
06:52 sorear rakudo: say (1.5+1.5i).floor
06:52 p6eval rakudo 484a25: OUTPUT«floor is only defined for Reals, you have a Complex()␤»
06:53 sorear rakudo: say (1.5+0i).floor
06:53 p6eval rakudo 484a25: OUTPUT«floor is only defined for Reals, you have a Complex()␤»
06:53 mberends sorear: thanks, I'll try again.
06:55 dotIN left #perl6
06:56 dotIN joined #perl6
06:59 in left #perl6
07:01 in joined #perl6
07:05 dotIN left #perl6
07:08 dotIN joined #perl6
07:11 in left #perl6
07:12 in joined #perl6
07:16 dotIN left #perl6
07:17 in left #perl6
07:18 in joined #perl6
07:22 mj41 joined #perl6
07:23 dotIN joined #perl6
07:26 in left #perl6
07:28 in joined #perl6
07:29 cooper|ipad left #perl6
07:32 dotIN left #perl6
07:34 dotIN joined #perl6
07:36 in left #perl6
07:38 in joined #perl6
07:42 dotIN left #perl6
07:48 in left #perl6
07:49 lateau joined #perl6
08:06 dalek rakudo/nom: 3f62167 | moritz++ | build/gen_ (2 files):
08:06 dalek rakudo/nom: [build] make failure of "make realclean" non-fatal
08:06 dalek rakudo/nom:
08:06 dalek rakudo/nom: Without this patch, --gen-parrot and --gen-nqp don't work on
08:06 dalek rakudo/nom: one of my machines, though I don't really understand why.
08:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f6216702e
08:14 beek left #perl6
08:18 dalek roast: 1a7e180 | sorear++ | S06-signature/arity.t:
08:18 dalek roast: Fudge S06-signature/arity for niecza
08:18 dalek roast: review: https://github.com/perl6/roast/commit/1a7e1808a7
08:18 dalek niecza: 17f7681 | sorear++ | lib/ (2 files):
08:18 dalek niecza: Add floor, ceiling, conjugate, round, truncate, sign
08:18 dalek niecza: review: https://github.com/sorear/niecza/commit/17f7681679
08:18 dalek niecza: fbd41a7 | sorear++ | / (3 files):
08:18 dalek niecza: Add .arity to complement .count
08:18 dalek niecza: review: https://github.com/sorear/niecza/commit/fbd41a78ba
08:19 amkrankruleuen left #perl6
08:20 daxim joined #perl6
08:25 amkrankruleuen joined #perl6
08:28 sorear std: our sub A::b { }; A::b
08:28 p6eval std c843201: OUTPUT«ok 00:01 112m␤»
08:28 sorear std: our sub A::b { }; A::b(1)
08:28 p6eval std c843201: OUTPUT«ok 00:01 113m␤»
08:29 sorear std: our sub Niecza::generate-series { }; Niecza::generate-series(1)
08:29 p6eval std c843201: OUTPUT«ok 00:01 113m␤»
08:29 sorear hmm
08:29 sorear niecza's copy of STD is rejecting this
08:29 sorear somehow
08:39 lateau left #perl6
08:41 yinyin joined #perl6
08:42 jfried left #perl6
08:43 dakkar joined #perl6
08:48 jfried joined #perl6
08:56 dalek niecza: 44f7995 | sorear++ | / (3 files):
08:56 dalek niecza: Steal ... and ...^ from Rakudo
08:56 dalek niecza: review: https://github.com/sorear/niecza/commit/44f7995a72
08:57 mberends oooh, that's a big steal!
08:58 sorear fear not, I took only a copy
08:58 moritz :-)
08:58 sorear and with that... sleep
08:58 moritz good night
08:59 mberends 'night sorear
09:00 dalek nqp: 0a8dc8b | (Martin Berends)++ | src/pmc/stable.pmc:
09:00 dalek nqp: [src/pmc/stable.pmc] eliminate gcc 'old-style function declaration' warning
09:00 dalek nqp: review: https://github.com/perl6/nqp/commit/0a8dc8b983
09:01 Chillance joined #perl6
09:10 stephanepayrard_ joined #perl6
09:13 cognominal_ left #perl6
09:16 jfried left #perl6
09:17 jfried joined #perl6
09:17 lumi left #perl6
09:20 roen left #perl6
09:25 daniel-s joined #perl6
09:26 woosley left #perl6
09:28 kboga left #perl6
09:42 moritz Juerd: I seem to recall you had a page which tested a domain for ipv6 readyness - could you please share the URL again?
09:51 daxim http://ipv6test.google.com/ http://omgipv6day.com/ http://test-ipv6.com/
09:53 kboga joined #perl6
09:54 moritz daxim: that tests the current browser and connections, not a domain (presence of AAAA records, reachability of nameservers via ipv6 etc.)
09:54 daniel-s "Yes. This web browser (at this location) looks safe. You'll just keep using IPv4."
09:55 daniel-s yay!
09:55 woosley joined #perl6
09:56 woosley left #perl6
09:57 moritz .u þ
09:57 phenny U+00FE LATIN SMALL LETTER THORN (þ)
10:09 amkrankruleuen left #perl6
10:10 amkrankruleuen joined #perl6
10:11 Juerd moritz: ip6.nl/test
10:18 amkrankruleuen left #perl6
10:19 amkrankruleuen joined #perl6
10:19 dalek nqp: 43f2fc4 | (Martin Berends)++ | src/ (3 files):
10:19 dalek nqp: [nqp.ops P6opaque.c HashAttrStore.c] eliminate gcc 'conversion from void *' warnings
10:19 dalek nqp: review: https://github.com/perl6/nqp/commit/43f2fc4cbe
10:22 Mowah_ joined #perl6
10:24 mtk left #perl6
10:25 moritz mberends++ # nqp C cleanup
10:25 mberends long way to go still...
10:26 mberends also need other_platform_C_compiler validation
10:28 ggoebel left #perl6
10:28 tokuhirom left #perl6
10:29 simcop2387 left #perl6
10:31 simcop2387 joined #perl6
10:33 ggoebel joined #perl6
10:33 mtk joined #perl6
10:35 daniel-s left #perl6
10:35 wamba joined #perl6
10:39 pernatiy left #perl6
10:46 cookys joined #perl6
10:47 cookys left #perl6
10:47 cookys joined #perl6
10:48 cookys left #perl6
10:48 cookys joined #perl6
11:04 jnthn mberends++ # cleaning up my crappy C :)
11:05 icwiener joined #perl6
11:08 mberends I just hope I don't break anything in the process ;)
11:16 frettled mberends: you're worried it could become C#?
11:18 mberends frettled: in Soviet Russia, C# becomes You!
11:19 frettled (:
11:20 jnthn mberends: Hopefully not. I'll yelp tonight if you broke MSVC++ :)
11:20 jnthn mberends: Main way to break things: declarations don't come first :)
11:22 mberends jnthn: your yelps are what I'm worried about...
11:23 jnthn mberends: Well, I'm sure after yelping I'm quite capable of fixing any little breakages too :) So don't worry.
11:23 jnthn I'm happy to lose some warnings on other compilers.
11:23 jnthn fwiw, it *is* clean on my compiler except the ops.
11:24 mberends gcc warning "function call has aggregate value" has me stumped. Move on to next kind.
11:24 jnthn wtf. :/
11:24 moritz mberends: http://trac.parrot.org/parrot/wiki/BuildWarnings
11:25 moritz "The following warnings appear for me (Infinoid) on x86-64 gentoo linux, but are caused by system headers and thus are not Parrot's fault"
11:25 pernatiy joined #perl6
11:26 jnthn oh lol :)
11:27 mberends aye, they appear in nqp in a completely non-Parrot context :/
11:39 jnthn heh
11:39 jnthn I, er, can't imagine how I'd have triggered that
11:41 jnthn mberends: Does it give a guilty line number?
11:44 mberends I can't imagine how either, because the macros in question do type their return values. I know what the warning is trying to say, but I cannot work out how to remedy it.  The source line is src/ops/nqp.ops:1030: storage_spec ss = REPR(var)->get_storage_spec(interp, STABLE(var));
11:46 mberends an aggregate value is a struct in this case, so it's moaning because it would like it to be seen as a pointer to a struct. But inserting a * breaks it more :P
11:46 jnthn Sure. I mean, it's returning a struct rather than a pointer to one but that's what I wanted.
11:47 jnthn No need to heap-allocate it.
11:47 jnthn I dunno why it warns.
11:47 jnthn "HEAP! USE THE HEAP!"
11:47 * moritz also finds that a bit silly
11:48 mberends that's why I'm moving on...
11:48 jnthn .oO( This is where I get glad my compiler is not GCC. :) )
11:50 mberends .oO(typical rationale from the people who brought you FrontPage and Internet Explorer )
11:51 jnthn :P
11:52 nymacro left #perl6
11:52 moritz rakudo: print $*IN.read(1)
11:52 p6eval rakudo 484a25: OUTPUT«Buf()<0x1bfd028>»
11:53 moritz rakudo: print $*IN.read(1).decode
11:53 p6eval rakudo 484a25: OUTPUT«L»
11:53 moritz it's a bit silly that our default IO doesn't support buffers
11:55 mberends did Rakudo get binary IO as well, or only UTF-8?
11:55 moritz it got it last summer (masak++)
11:55 moritz mberends: but not via a flag on the file handle, but rather via read/write methods
11:57 mberends oh nice, I can update my webserver to send favicon files again
11:57 moritz dunno about sockets though
11:58 satyavvd left #perl6
12:01 wamba left #perl6
12:07 arnsholt jnthn/mberends: Some googling seems to indicate that (very) early C compilers didn't allow returning aggregates
12:07 arnsholt http://lists.cistron.nl/pipermail/freeradius-devel/2001-April/000581.html
12:11 mberends arnsholt++: thanks! so at first glance we can choose between having a warning-free program that uses the heap to be truly portable, or ignore/disable a warning to use the current faster but not totally portable version.  Rotten choices :(
12:13 slavik joined #perl6
12:14 wknight8111 joined #perl6
12:15 sirmacik left #perl6
12:15 mberends thanks to pmc2c.pl, we have two files (in different folders) called serialization_context.c and serializationcontext.c
12:17 jnthn Heh, this would seem to mean that I'm expected to write code that targets C compilers that are older than me. :P
12:17 mberends lol
12:17 arnsholt Well, according to that post, C89 alllows it
12:18 arnsholt And since C89 is the minimum C required by Parrot, it's more a problem of a bit too zealous warning settings in the Makefile I think
12:20 envi_laptop left #perl6
12:20 mberends jnthn: if MSVCC compiled without warnings, then either it has a "feature" where every xxx.c gets an invisible #include "xxx.h", or otherwise the concept of function prototypes is alien.
12:22 jnthn mberends: :)
12:29 colomon yeah, I've chaffed at being told (recently) my $code should work with VC++ 6.0 (from circa 1997, I think), but not being about to use C89 features would be a new low.
12:35 envi_laptop joined #perl6
12:38 molaf joined #perl6
12:39 wamba joined #perl6
12:41 frettled Fascinerende.  Omtrent kl 11 tok jeg en server ut av DNS, TTL var én time.  Trafikken har holdt seg stabilt rundt 1,5-2,5 Mbps siden kl 12 (ned fra ordinære 10-12 Mbps).  Det er mange med føkka DNS-cacher der ute.
12:41 frettled oops, wrong channel, embarassing :(
12:42 * frettled considers going home to sleep.
12:42 mberends fascinating, all the same ;)
12:44 dalek nqp: d42ba1c | (Martin Berends)++ | src/6model/ (5 files):
12:44 dalek nqp: [src/6model] fix all gcc 'no prototype' warnings
12:44 dalek nqp: review: https://github.com/perl6/nqp/commit/d42ba1cf5c
12:45 frettled mberends: yup :)  b0rken DNS clients/caches are just so much fun
12:50 jnthn mberends++ \o/
12:54 mberends jnthn: the good news is that these fixes have not exposed any latent bugs in the code. Thus less reward for me, but kudos for you on your crappy compiler :)
13:11 mathw frettled: I like the look of a language which uses é and ø and æ all at once :)
13:13 frettled mathw: \o/
13:14 frettled mathw: it can get better: gi meg én porsjon crème fraîche med blåbærsyltetøy, takk
13:14 * frettled cheated with French loan words, but hey…
13:14 jnthn mberends: heh. Generally I understand C well enough to write working code, but do little enough C to have a good grasp on all the ins and outs of what different compilers like. :-)
13:14 daniel-s joined #perl6
13:15 * jnthn tries to guess how "tøy" is pronounced
13:16 daniel-s left #perl6
13:16 daniel-s joined #perl6
13:16 mathw frettled: that's cheating
13:17 mathw really I just have a soft spot for ø
13:17 mathw I don't know why, I always thought it was a cool letter and English should use it for something
13:17 frettled mathw: Here, no cheating: du får ikke varige mén av å spise blåbærsyltetøy, det er godt fôr for et karrièremenneske.
13:17 frettled mathw: some seem to think of it as a small zero
13:18 wamba left #perl6
13:19 mathw nice! and the a with an o on the top that I can't figure out how to type
13:19 flussence_ å!
13:19 mathw å
13:19 mathw oh, like that
13:19 moritz compose a a
13:19 flussence_ (altgr+{,a for me)
13:20 mathw compose a a on this thing gives me @
13:20 mathw which seems odd
13:20 mathw I got it with compose * a
13:20 mathw but this is PuTTY's compose key, because Windows is too boring to include one
13:20 flussence_ .oO( that's the great thing about keyboard layouts, there's so many to choose from... )
13:20 frettled according to folklore, it's supposed to be a small 'a' on top of the 'a', but it got simplified.
13:21 frettled It's a cheat for writing the Danish 'aa' as a single character.
13:21 moritz did they want to circumvent twitter's 140 char limit back in the days? :-)
13:22 huf why's it look like an a if it's pronounced nothing like it?
13:22 huf that's gotta be intentional trolling :)
13:23 flussence_ or international trolling
13:23 tadzik hello perl6
13:24 moritz why does th look like a t and an h, if it's prononounced nothing like either of them
13:24 mberends hi tadzik
13:25 huf moritz: yeah, it should look more like an f
13:25 moritz .u thorn
13:25 phenny U+00FE LATIN SMALL LETTER THORN (þ)
13:26 * moritz wonders if thorn and the th have a common-ish origin
13:26 tadzik from Thor!
13:26 jnthn I think way back, English had a single letter for th as in the
13:27 huf yes, but then they realized they better fit into ascii or there'll be difficulties
13:27 jnthn I think it may have looked like "y" or ended up looking like "y", thus "ye olde tea shop"
13:27 huf this being before unicode of course
13:27 jnthn Of course, today loads of people read that as literally "yee old-ee tea shop" :)
13:28 huf i only learned how to pronounce it sometime in the last 2 years i think
13:28 huf so yeah
13:30 colomon that's actually a sort of tricky question, isn't it?  I mean, how many places named themselves "Ye Olde Book Store" thinking it was actually "ye" (rather than a funny spelling of "the")?
13:30 frettled Ye \Ye\, Ye \Ye\ ([th][=e]), an old method of printing the article the (AS. [thorn]e), the "y" being used in place of the Anglo-Saxon thorn ([thorn]). It is sometimes incorrectly pronounced y[=e]. See {The}, and {Thorn}, n., 4. [1913 Webster]
13:31 frettled jnthn: thanks, I learned something new and unexpected today as well!
13:31 colomon and as a side note, in the Irish Traditional Music community, seeing someone spell "air" with an "e" on the end is almost always a dead giveaway that they have no clue what they are talking about.
13:34 jnthn frettled: Yes, I discovered that a while ago and was amused at how we mostly all get it so wrong in England. :)
13:35 frettled jnthn: and everywhere else, apparently :D
13:35 daniel-s is there any other good documentation for using grammars other than the using perl6 book and the synopses
13:36 moritz there are examples
13:36 moritz and I wrote http://perlgeek.de/en/article/debug-a-perl-6-grammar
13:45 PerlJam good morning #perl6
13:45 PerlJam daniel-s: and you can always ask questions here :)
13:45 daniel-s lol, thanks
13:46 daniel-s I'm just working through the using perl book
13:46 daniel-s and it all seems mostly straightforward, except gammars, which seems to be the most important part
13:46 PerlJam daniel-s: ah!  What's not straightforward about grammars?
13:47 daniel-s have try/catch statements and exceptions been implemented in rakudo?
13:47 PerlJam (and I hardly think that grammars are the "most important part" of perl 6, but they are rather useful  :)
13:47 tadzik toldya they're tricky :)
13:47 moritz daniel-s: yes, but throwing an exception inside a CATCH statement still causes an infinite loop :/
13:48 moritz oh, and note that CATCH goes *inside* a try { } block
13:48 colomon I think grammars might be the "most important part" in the sense of being the one of the main killer features of p6
13:49 daniel-s moritz, yea, that's something I noticed is different to how Java does them
13:49 daniel-s there's no documentation in the using perl book
13:49 PerlJam colomon: I'll grant that it's one of the main conceptual areas where perl 6 dominates.  :)
13:49 daniel-s and the wiki book is, well, basically useless: https://secure.wikimedia.org/wikibooks/en/wiki/Perl_6_Programming/Exceptions_and_Handlers
13:50 PerlJam daniel-s: so ... you'd like to see a section on exception handling in the book?
13:51 daniel-s PerlJam, well, my plan is to read the synopsis, experiment and figure it out
13:51 PerlJam daniel-s: and then write a section for the book?  :)
13:51 daniel-s sure, I can do that if you want
13:53 daniel-s actually, I'm unemployed in 2.5 weeks, my contract ends
13:53 daniel-s I would be happy to use my extra spare time working on perl6
13:53 PerlJam daniel-s++
13:53 daniel-s I don't really know perl6 that well to be particularly useful developing anything
13:54 moritz daniel-s: the main reason I didn't write anything about exceptions yet is that they aren't very robust in rakudo, and because I've been planning for ages to re-work at least parts of them
13:54 moritz at least the built-in exceptions
13:54 daniel-s what parts of the using perl6 book are missing that are most urgent?
13:54 moritz and I've got a grant for that, and started doing it, but currently I don't spend much time on it (although I should)
13:59 jnthn moritz: Grant distractions are the norm, I think. :)
13:59 moritz jnthn: :-)
13:59 colomon small children as distractions is certainly a norm.  :)
14:01 * moritz is currently unsure if he should start his exception stuff in nom or master
14:01 colomon ah, yes, that can't be helping matters.
14:01 jnthn moritz: Probably nom. It's moving fast.
14:02 jnthn moritz: Feel free to nudge me on blockers you hit with doing it in nom.
14:02 moritz one thing I didn't really consider so far is severity level of exceptions
14:02 hudnix joined #perl6
14:02 moritz currently I think we should just have 'fatal' and 'warning' or so
14:02 jnthn Suggested levels: MEH, OHNOES, OMG, OMFG
14:03 MayDaniel joined #perl6
14:03 moritz OMFGWTF
14:03 yinyin left #perl6
14:03 colomon KYAG
14:05 * colomon is really annoyed that it takes 18 lines of mindless C++ to do what he could have done in one line of p6
14:06 daniel-s "An leading exclamation mark negates the meaning"
14:07 daniel-s in the grammar chapter
14:07 moritz s/An/A/ or what is your point?
14:07 daniel-s should be a
14:08 daniel-s feel like I need to tell someone
14:08 * moritz hopes he remembers until he gets home
14:08 daniel-s want me to change it and send pull request?
14:08 daniel-s or just email someone?
14:09 moritz daniel-s: what's your github ID?
14:09 daniel-s same as on irc
14:09 hugme joined #perl6
14:09 jnthn hugme: hug me!
14:09 moritz hugme: add daniel-s to book
14:09 * hugme hugs me!
14:09 hugme moritz: ERROR: Can't add daniel-s to book:  not authorized
14:09 moritz is now known as moritz_
14:09 moritz_ hugme: add daniel-s to book
14:09 hugme moritz_: ERROR: Can't add daniel-s to book:  not authorized
14:09 moritz_ is now known as moritz
14:10 daniel-s what's the book?
14:10 moritz oh, maybe it's because perl6 is an organization now :/
14:11 moritz the source repo for the "Using Perl 6" book
14:11 moritz daniel-s: you have commit access now. Feel free to fix it there directly
14:12 daniel-s um, sorry, can you undo that
14:12 daniel-s not to sound like a retard, but I haven't really used git alot... I really don't want to stuff it up
14:12 moritz daniel-s: there's nothing you can screw  up that we can't repair
14:12 frettled famous last words :D
14:12 daniel-s lol, ok :)
14:13 moritz daniel-s: if you prefer, I can remover your commit bit again, but I really don't see the need - we've had lots of git newbiew
14:13 moritz *newbies
14:13 * daniel-s accepts that challenge :P
14:14 moritz jnthn: first blocker: multi-part names (X::Base)
14:14 moritz workaroundable, but ugly
14:14 jaldhar left #perl6
14:15 jaldhar joined #perl6
14:20 jaldhar left #perl6
14:24 jnthn moritz: oh
14:24 jnthn moritz: Move them to top of nommap :)
14:24 jnthn moritz: I can do them this evening, or tomorrow.
14:26 simcop2387 left #perl6
14:30 wtw left #perl6
14:32 simcop2387 joined #perl6
14:33 moritz jnthn: are attributes with accessors implemented?
14:34 jnthn moritz: yes
14:34 jnthn nom: class Foo { has $.x is rw }; my $y = Foo.new; $y.x = 42; say $y.x
14:34 jnthn ENONOMBOTYET :)
14:35 jnthn We may be at the point where nom in evalbot would be useful though :)
14:36 moritz jnthn: oddly enough, my class X-Base { has $.backtrace; has $.message; method Str () { 'OH NOEZ' } }   in CORE.setting makes the compilation take very long, I suspect it loops somewhere
14:39 jnthn moritz: take very long as in, not finish?
14:39 moritz jnthn: as in "I got impatient after a few minutes"
14:39 jnthn oh
14:40 jnthn :/
14:40 jnthn ooh, does changing . to ! make the problem go away?
14:40 jnthn *ooc
14:40 moritz commenting out the attributes makes the compilation of the setting finish in ~20s
14:40 moritz I'll try
14:41 jnthn ETOOSLOW
14:41 moritz yes, with ! it seems to work
14:42 kaare_ joined #perl6
14:43 jnthn OK, that tells me where to look :)
14:44 mberends daniel-s: http://gitready.com/
14:47 dalek rakudo/nom: bd689bb | moritz++ | NOMMAP.markdown:
14:47 dalek rakudo/nom: add multi-part names (Foo::Bar) to nommap
14:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd689bbdbf
14:47 dalek rakudo/nom: 22b0fbc | moritz++ | / (2 files):
14:47 dalek rakudo/nom: start to stub in exception classes
14:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22b0fbc7ac
14:48 stephanepayrard_ left #perl6
14:50 kboga left #perl6
14:50 koban left #perl6
14:53 * jnthn -> home
14:55 daniel-s mberends, thanks
14:58 cognominal joined #perl6
15:08 dukeleto left #perl6
15:08 dukeleto joined #perl6
15:30 dalek nqp: fd52b67 | (Martin Berends)++ | src/6model/knowhow_bootstrapper.c:
15:30 dalek nqp: [src/6model/knowhow_bootstrapper.c] fix gcc 'return value not used' warnings
15:30 dalek nqp: review: https://github.com/perl6/nqp/commit/fd52b67245
15:31 JimmyZ joined #perl6
15:32 sahadev joined #perl6
15:35 Chillance left #perl6
15:37 thou joined #perl6
15:38 Chillance joined #perl6
15:42 jfried left #perl6
15:45 dalek nqp: 367a3bc | (Martin Berends)++ | src/6model/multi_dispatch.c:
15:45 dalek nqp: [src/6model/multi_dispatch.c] fix gcc 'parentheses around && within ||' warning
15:45 dalek nqp: review: https://github.com/perl6/nqp/commit/367a3bc5ed
15:47 JimmyZ good evening, #perl6
15:48 molaf left #perl6
15:48 pmichaud good morning, #perl6
15:48 jerome left #perl6
15:49 JimmyZ good early morning, pmichaud
15:49 MayDaniel left #perl6
15:54 jerome joined #perl6
15:57 kboga joined #perl6
16:08 flatwhatson left #perl6
16:10 thou left #perl6
16:19 daxim left #perl6
16:19 flussence_ left #perl6
16:22 flatwhatson joined #perl6
16:22 flussence joined #perl6
16:25 cizpre joined #perl6
16:26 jnthn evening, #perl6
16:29 JimmyZ good night
16:29 * JimmyZ sleeps
16:29 JimmyZ left #perl6
16:30 thou joined #perl6
16:30 thou left #perl6
16:37 tadzik 'evening
16:47 pernatiy left #perl6
16:47 mj41 left #perl6
16:49 Lorn left #perl6
16:49 Lorn joined #perl6
16:51 timbunce joined #perl6
16:52 timbunce left #perl6
16:55 dakkar left #perl6
17:09 BinGOs left #perl6
17:12 mj41 joined #perl6
17:13 dalek nqp: 60387e7 | (Martin Berends)++ | / (3 files):
17:13 dalek nqp: [6model/reprs/P6opaque*] fix gcc 'incompatible pointer type' warnings, tweak .gitignore
17:13 dalek nqp: review: https://github.com/perl6/nqp/commit/60387e7882
17:14 jnthn Time to see if I can still build :)
17:14 mberends jnthn: aye, I've run out of warnings :)
17:15 tadzik and I've run out of memory. Chromium is a pig
17:16 flussence building from source? :)
17:16 _twitch joined #perl6
17:16 jnthn mberends++ # nqp still builds :)
17:16 tadzik also, swap is the worst invention I use
17:16 mberends \o/
17:16 tadzik flussence: yeah, no binary builds for gentoo
17:16 bluescreen10 joined #perl6
17:17 tadzik I think I'm going debian after exams ;)
17:17 cooper joined #perl6
17:17 flussence oh, right, there's chrome but not chromium binaries...
17:17 mj41 left #perl6
17:17 TimToady .oO(virtual memory, which is great except for the virtual part...)
17:18 flussence (Firefox 5 is a *lot* more evil than Chromium - it somehow eats > 3GB of build directory space...)
17:19 Mowah left #perl6
17:19 sorear good * #perl6
17:19 mberends hi sorear
17:19 jnthn mberends: passes tests too
17:19 jnthn o/ sorear
17:20 colomon \o
17:21 mberends jnthn: what do you think of adding a slight performance penalty to eliminate the 'aggregate value' warnings?
17:21 colomon sorear: don't suppose you have an Android phone?
17:22 jnthn mberends: do not want
17:22 jnthn mberends: It's a silly warning anyway. Just pragma it away if it bothers you.
17:23 mberends jnthn: ok
17:24 jnthn mberends: That code ain't on a hot path at the moment but it could very easily get hotter...
17:24 mberends jnthn: so my 'slightly' didn't fool you ;)
17:25 _twitch left #perl6
17:25 simcop2387 left #perl6
17:27 colomon ooooo, nqp just built for me!!!
17:29 kaare_ left #perl6
17:29 tadzik nice
17:29 tadzik colomon: what C compiler do you use?
17:30 colomon tadzik: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)
17:30 mj41 joined #perl6
17:31 TimToady niecza: .say for 1,2,4 ... 65536
17:31 p6eval niecza v6-87-g44f7995: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536␤»
17:31 TimToady \o/
17:32 TimToady colomon++ :)
17:32 colomon TimToady: eh?
17:33 TimToady didn't you do the original sequence stuff?
17:33 simcop2387 joined #perl6
17:33 colomon I did one iteration of it, yup.
17:33 colomon I didn't do the earliest version, and I only helped with the most recent.  :)
17:33 TimToady well, then, everyone++  :)
17:34 colomon though I was there in the trenches when you kept changing it faster than I could implement it.  ;)
17:35 colomon I am excited to see it up and running in niecza!   \o/
17:36 colomon niecza: .say for 1, 2, 3 ... 10
17:36 p6eval niecza v6-87-g44f7995: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
17:36 colomon errr.... interesting
17:36 colomon rakudo: .say for 1, 2, 3 ... 10
17:36 p6eval rakudo 484a25: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
17:37 colomon it's not iterating over the sequence, it's just doing the entire thing as one object?
17:38 TimToady niecza: say("[$_]") for 1,2,3...10
17:38 p6eval niecza v6-87-g44f7995: OUTPUT«[1 2 3 4 5 6 7 8 9 10]␤»
17:38 TimToady ayup
17:38 TimToady niecza: say (1,2,3...10).WHAT
17:38 p6eval niecza v6-87-g44f7995: OUTPUT«␤»
17:39 sorear mathw: møøse not enough for you?
17:39 TimToady o_O
17:39 TimToady sorear: something ^^ is odd about sequences
17:40 sorear how odd!
17:40 TimToady yes, 1 is always odd...
17:41 sorear niecza: say (1,2,3...10).perl
17:41 p6eval niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list.item␤»
17:42 colomon niecza: .say for 1..10
17:42 p6eval niecza v6-87-g44f7995: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
17:42 colomon niecza: .say for 1...10
17:42 p6eval niecza v6-87-g44f7995: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
17:42 TimToady btw, niecza runs http://rosettacode.org/wiki/Kaprekar_numbers pleasantly fast
17:42 orphu left #perl6
17:42 tadzik "it's even, even if some people think it's odd"
17:42 sorear niecza: say &Niecza::generate-series([1,2,3],10).perl
17:42 p6eval niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list␤»
17:42 wamba joined #perl6
17:43 sorear niecza: say &Niecza::series-listop(((1,2,3),10)).perl
17:43 p6eval niecza v6-87-g44f7995: OUTPUT«Unhandled exception: No value for parameter $exclude-limit in CORE series-listop␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE series-listop @ 0) ␤  at /tmp/YJdO4zIzXR line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE
17:43 p6eval ..C830_ANON @ 2) ␤  a…
17:43 sorear niecza: say &Niecza::series-listop(((1,2,3),10), False).perl
17:43 p6eval niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list.item␤»
17:44 sorear niecza: say @(10).perl
17:44 p6eval niecza v6-87-g44f7995: OUTPUT«(10, ).list␤»
17:52 hudnix left #perl6
17:52 sorear found it
17:54 colomon niecza: my @a := 1, 2, 4 ... *; say @a[100]
17:54 p6eval niecza v6-87-g44f7995: OUTPUT«Any()␤»
17:54 * colomon guesses that's related
17:54 diakopter niecza: https://gist.github.com/1014924
17:54 p6eval niecza v6-87-g44f7995: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Any()Confused at /tmp/wzOGASDnal line 1:␤------> [32m<html><body>[33m⏏[31mYou are being <a href="https://raw.githu[0m␤␤Parse failed␤␤»
17:54 sorear niecza: my @a := (1, 2, 4 ... *); say @a[100]
17:54 p6eval niecza v6-87-g44f7995: OUTPUT«Any()␤»
17:54 sorear probably
17:55 diakopter TimToady: how fast
17:55 diakopter hm
17:57 sorear niecza: https://raw.github.com/gist/1014924/48b5f8463d572dd23bbf53191d514ed629b4b4eb/gistfile1.txt
17:57 p6eval niecza v6-87-g44f7995: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Any()Confused at /tmp/0WdNzEPavi line 1:␤------> [32mhttps[33m⏏[31m://raw.github.com/gist/1014924/48b5f8463[0m␤␤Undeclared routine:␤  'https' used at line 1␤␤Parse failed␤␤»
17:58 hudnix joined #perl6
17:58 diakopter bah github changed something
17:58 tadzik p6eval bug?
17:58 dalek niecza: 904bb14 | sorear++ | / (3 files):
17:58 dalek niecza: Fix binding to existing @vars
17:58 dalek niecza: review: https://github.com/sorear/niecza/commit/904bb14c1d
17:58 diakopter niecza: <html><body>
17:58 p6eval niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str␤  at /tmp/FitXkF8mG6 line 0 (MAIN mainline @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57) ␤
17:58 p6eval .. at /home/p6…
17:59 masak joined #perl6
17:59 masak salve, #perl6.
17:59 diakopter niecza: <html><body>masak
17:59 p6eval niecza v6-87-g44f7995: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Any()Confused at /tmp/9xciz8uZMh line 1:␤------> [32m<html><body>[33m⏏[31mmasak[0m␤␤Parse failed␤␤»
17:59 tadzik yayitsmasak!
17:59 sorear o/ masak
17:59 molaf joined #perl6
17:59 mberends salvete masak
17:59 diakopter niecza: <html><body><masak>
17:59 p6eval niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str␤  at /tmp/6cJ9ps6U9p line 0 (MAIN mainline @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57) ␤
17:59 p6eval .. at /home/p6…
17:59 * sorear had something to say to masak but forgot it...
18:00 masak diakopter: I'm having difficulty mapping your actions to a rational intent... :P
18:00 masak maybe I should backlog...
18:00 diakopter attention
18:01 diakopter p6eval's gist downloading broke
18:01 masak ah.
18:01 sorear well, .say for 1,2,4...* works
18:02 kst left #perl6
18:02 masak #perl6, do you think Perl 6 should have a platform-independent way to do getch? (i.e. grab one keypress)
18:03 masak if yes, what should be the syntax? if no, how will the various implementations provide that functionality?
18:03 tadzik is there a platform independent way?
18:03 colomon masak: seems like it should be provided
18:03 tadzik syntax: [] :P
18:03 tadzik .u square
18:03 phenny U+32CC SQUARE HG (㋌)
18:04 tadzik also, this :)
18:04 jnthn .u finger
18:04 phenny jnthn: Sorry, no results for 'finger'.
18:04 jnthn aww
18:04 jnthn :)
18:04 kst joined #perl6
18:04 diakopter .u middle
18:04 phenny U+00B7 MIDDLE DOT (·)
18:04 masak jnthn: did you just give me the finger in a very elaborate way? :P
18:04 flussence .u 2328
18:04 phenny U+2328 KEYBOARD (⌨)
18:04 mberends masak: it would be nice, but historically platforms have made the promise very difficult to keep in a portable way.
18:05 jnthn masak: Would I :P
18:05 sorear masak: use Term::ReadKey; ReadKey()
18:05 masak sorear: finebyme.
18:06 masak mberends: I suspected as much.
18:06 masak sorear: then I guess my question becomes: would Rakudo and Niecza be able to have the same Term::ReadKey?
18:06 TimToady perl6: my $x = ⌨;
18:06 p6eval niecza v6-87-g44f7995: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Any()Bogus term at /tmp/TA5r87G3Ie line 1:␤------> [32mmy $x = [33m⏏[31m⌨;[0m␤␤Parse failed␤␤»
18:06 p6eval ..rakudo 484a25: OUTPUT«===SORRY!===␤Confused at line 22, near "my $x = \u2328;"␤»
18:06 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\9000'␤*** ␤    Unexpected "$x"␤    expecting "=", context, ":" or "("␤    at /tmp/2x6HDudne6 line 1, column 4␤»
18:07 masak ETOOCUTE
18:07 sorear masak: probably niecza-clr and rakudo/nqpnet could share a Term::ReadKey
18:07 sorear based on use System::Console
18:08 masak I meant rakudo/parrot.
18:08 mberends masak: I cannot remember the source, but somewhere there is a good explanation of the futility of trying to be too universal.
18:08 masak mberends: agree. which is why this is probably a good problem for a module to tackle.
18:08 mberends +1
18:08 sorear niecza> (@(1..10)).perl
18:08 sorear "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list"
18:08 sorear niecza> (1...10).perl
18:08 sorear "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list"
18:08 sorear niecza> (1...10)[2]
18:08 sorear Any
18:08 sorear niecza> (@(1..10))[2]
18:08 sorear 3
18:08 masak I'm just wondering whether even making the module VM-independent is too tricky a task...
18:08 tadzik masak: you can add it to our awesome wiki page
18:08 sorear wtf of the day
18:09 TimToady till now I've just used run "stty raw -echo min 1 time 1"; and then push @INPUT, $TTY.read(10)[*]».chr unless @INPUT;   :)
18:09 masak TimToady++
18:09 masak hardly platform-independent, but at least it works, today :)
18:09 masak ...on Unix.
18:10 * TimToady wonders whether cygwin provides stty...
18:10 colomon left #perl6
18:11 flussence just asked some guy with it, he said yes
18:11 jnthn masak: getch is available on Win32.
18:12 mj41 left #perl6
18:12 mtk left #perl6
18:13 tadzik jnthn: t/p6regex/01-regex.t fails for nqp, expected?
18:14 tadzik also, (17 TODO tests unexpectedly succeeded)
18:14 sorear it gets weirder!
18:14 sorear niecza: say (1...10).shift.perl
18:14 p6eval niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list␤»
18:14 mtk joined #perl6
18:14 tadzik niecza: say (1...10).shift
18:14 p6eval niecza v6-87-g44f7995: OUTPUT«12345678910␤»
18:15 sorear oh
18:15 TimToady something being mutable that shouldn't, seems
18:15 sorear it's producing a very un-flat list
18:15 sorear with lots of inner parcels
18:15 colomon joined #perl6
18:15 sorear niecza: say (1,2,4...*).flat.[100]
18:15 p6eval niecza v6-87-g44f7995: OUTPUT«1267650600228229401496703205376␤»
18:16 TimToady niecza: say (1,2,3,4,5).shift
18:16 p6eval niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Unable to resolve method shift in class Parcel␤  at /tmp/ULV2u7sN1e line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57) ␤
18:16 p6eval ..at /home/p6e…
18:18 kst left #perl6
18:19 kst joined #perl6
18:19 dalek niecza: e849cf7 | sorear++ | lib/CORE.setting:
18:19 dalek niecza: Sprinkle .flat in ... impl; my @a := 1,2,4...*; say @a[100] works now
18:19 dalek niecza: review: https://github.com/sorear/niecza/commit/e849cf7f9d
18:21 dalek evalbot: 8129711 | (Perl 6 Evalbot)++ | lib/EvalbotExecuter.pm:
18:21 dalek evalbot: fix gists
18:21 dalek evalbot: review: https://github.com/perl6/evalbot/commit/8129711301
18:21 diakopter evalbot control restart
18:21 p6eval left #perl6
18:21 sftp joined #perl6
18:21 p6eval joined #perl6
18:22 diakopter niecza: https://gist.github.com/1014924
18:22 TimToady it would be nice to find a way not to return extra parcels in the first place, I suppose
18:22 colomon sorear++
18:22 p6eval niecza v6-87-g44f7995: OUTPUT«1 9 45 55 99 297 703 999 2223 2728 4879 4950 5050 5292 7272 7777 9999␤»
18:23 thou joined #perl6
18:23 diakopter gists work again
18:23 masak diakopter++
18:24 ChrisDennis joined #perl6
18:27 * frettled skips the obvious pun.
18:27 diakopter what's the obvious pun :)
18:29 masak ENOTSOOBVIOUS
18:32 cizpre left #perl6
18:32 mberends ENOMEANWHATIMEAN
18:34 frettled Oh, you'll get the gist of it, eventually. :)
18:34 mberends ARGH
18:34 frettled zukzez
18:35 mberends ++frettled
18:37 kst left #perl6
18:38 kst joined #perl6
18:38 masak dåligt. :)
18:40 bluescreen10 left #perl6
18:43 wamba left #perl6
18:53 birdwindupbird left #perl6
18:55 bluescreen10 joined #perl6
18:55 molaf left #perl6
18:55 phenny left #perl6
18:56 phenny joined #perl6
18:57 phenny left #perl6
18:59 phenny joined #perl6
19:03 sorear I am now embarking on a project to make niecza generate Metamodel::StaticSub objects during the parse itself
19:09 pmichaud I have new build systems for rakudo and nom... shall I push now or after I get back from errands?
19:10 pmichaud *nqp and nom
19:10 tadzik how about now?
19:10 pmichaud I can push now but won't be available to troubleshoot/fix issues for about 45 mins (possibly a little longer)
19:10 frettled pmichaud: then them kids will have to cope for themselves for a while ;)
19:11 pmichaud I'll push the nqp changes.
19:11 tadzik we will have time for testing
19:11 dalek nqp: 878e8ff | pmichaud++ | / (5 files):
19:11 dalek nqp: Major refactor of build/Configure system (based on new tools/lib/NQP/Configure.pm being developed for Rakudo's build/Configure system).
19:11 dalek nqp: review: https://github.com/perl6/nqp/commit/878e8ffee1
19:11 frettled \o/
19:11 pmichaud I've an update or two to make on nom... will push it when I get back.  Testing of nqp build/configure welcome.
19:14 jnthn Oh noes...some breakage in nom :(
19:14 donri left #perl6
19:14 jnthn (not related to pmichaud++'s push)
19:15 jnthn darn...this looks bad :/
19:16 PerlJam jnthn: that's okay ... I have every confidence that you can fix it  :)
19:17 jnthn oh ouch
19:17 jnthn -                if (defined && desired == DEFCON_UNDEFINED ||
19:17 jnthn -                        !defined && desired == DEFCON_DEFINED) {
19:17 jnthn +                if ((defined && desired) == DEFCON_UNDEFINED ||
19:17 jnthn +                        (!defined && desired == DEFCON_DEFINED)) {
19:17 jnthn wtf
19:17 jnthn That totally changes the semantics of it
19:17 jnthn gcc-- # stupid warnings
19:18 jnthn <- much smarter than the compiler, but thanks.
19:19 * sjohnson shakes fist at compiler
19:20 jnthn Seriously, how could the conditional have even been worth warning about? && being higher precedence than || is hardly news.
19:21 tyatpi joined #perl6
19:23 slavik left #perl6
19:23 TimToady I suppose they thought someone could think of it the wrong way, and add parens in the wrong place for clarity...oh wait...
19:24 jnthn :P
19:24 daniel-s left #perl6
19:24 jnthn mberends++ # cleanup - especially my misspelling of Rakudo :)
19:25 daniel-s joined #perl6
19:26 tadzik I find it funny that the typo was in so many places. I suppose jnthn++ writes "rak[TAB]" in his ide
19:27 jnthn :)
19:27 jnthn Such things tend to pass me by very easily.
19:27 jnthn Thanks to my crappy eyewight, I'm pretty dependent on reading whole words at once for any kind of decent reading speed. Anything that's the right shape fits.
19:28 dalek rakudo/nom: 503fbd3 | jnthn++ | src/binder/multidispatch.c:
19:28 dalek rakudo/nom: Fix regression introduced by a fix for a warning that GCC shouldn't have bothered giving anyway. Hopefully doesn't bring the warning back... :-/
19:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/503fbd3cfc
19:29 jnthn I realize this when trying to learn new languages that have unfamiliar chars or char clusters. My reading speed becomes depressingly slow if I have to actually read the individual letters. :(
19:31 jnthn So, back to the nommap...
19:33 kboga left #perl6
19:37 tadzik fwiw, nqp builds for me, when I use "--prefix=`parrot_config prefix`". Maybe that should be the default, and cwd()."install" will be used when we use(d) --gen-parrot?
19:39 flussence masak: your latest blog post seems to be suffering from partial dd/mm/yy-itis...
19:40 mj41 joined #perl6
19:46 masak flussence: the date looks wrong, yes.
19:46 lue left #perl6
19:46 masak fixing. hoping it won't spam planet perl 6.
19:46 lue joined #perl6
19:48 slavik joined #perl6
19:52 frettled masak: hey, if it does, _two_ posts!  Can't be worse than the Dear Dave multi-posts @reddit (http://i.imgur.com/jVvPQ.jpg)
19:52 mberends jnthn: I see that I misread your mind about where the closing paren had to go :)
19:54 masak frettled: huh. don't know what that's about, but it looks ambitious in a time-wasting kind of way.
19:56 frettled masak: yup
19:57 frettled masak: basically a bunch of people have submitted the exact same image
19:57 jnthn moritz: ping
19:57 frettled masak: so don't worry about a double-post at Planet Perl 6 :D
19:57 jnthn mberends: I guess if you didn't write the binder it may be less obvious... :)
19:57 moritz jnthn: pong-ish
19:58 jnthn moritz: Good news: I just pushed multi-part names.
19:58 jnthn moritz: Bad news: only for our-scoped stuff and...you're in the setting.
19:58 moritz \o\
19:58 envi_laptop left #perl6
19:58 jnthn moritz: However, easy workaround
19:58 jnthn > my package Foo { class Bar { method m { say 42 } } }; Foo::Bar.m
19:58 jnthn 42
19:59 frettled jnthn++ – looking forward to more
19:59 jnthn Or I could just make my class Foo::Bar { } mean that Foo is lexical and it's packages the rest of the way down. :)
19:59 dalek rakudo/nom: 26dc6d6 | jnthn++ | src/ (5 files):
19:59 dalek rakudo/nom: Get multi-part package names workinger. Note, only for our scope, which probably doesn't help moritz++ quite so much...
19:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/26dc6d6b74
19:59 jnthn The thing is I'm not quite sure what the spec wants it to mean... :)
20:00 jnthn Anyway, nested packages in nom are (though almost certainly not yet perfect) a lot less hosed than in master.
20:03 moritz jnthn: I think that's roughly what the spec wants, except that class Foo::Bar { }; Class Foo { } should not give a redeclaration error
20:03 jnthn moritz: Yeah. I know how to fix that one.
20:03 tadzik yay
20:05 jnthn moritz: Also I golfed the hang you found.
20:06 * jnthn tries to get it under the C debugger
20:06 cooper|ipad joined #perl6
20:07 jnthn oh wow
20:07 * diakopter waits
20:07 jnthn I managed to make exception handler search into an infinite loop
20:07 frettled nice :)
20:08 wamba joined #perl6
20:08 jnthn Turns out 30% speedups thought up in the shower can be slippery...
20:08 frettled Well, is the infinite loop 30% faster than it used to?  :D
20:09 mberends jnthn: so is all that work now down the drain?
20:09 tadzik nehehehehe :)
20:09 tadzik An Actual Laughter Was Produced
20:10 jnthn hehe...I have a call chain that loops back on itself.
20:10 jnthn mberends: I think I can clean up the bug...
20:11 jnthn Better than packing out the change. The optimization puts performance head and shoulders above what it would be otherwise...
20:11 pmichaud back agaub
20:11 pmichaud back again
20:11 mberends jnthn: don't throw the baby out with the bathwater!
20:11 jnthn Hope it's not too hard to fix, or I might throw in the towel
20:12 jnthn pmichaud: o/
20:12 mberends jnthn: you'll manage, you're not wet behind the ears any more
20:12 tadzik fwiw, nqp builds for me, when I use "--prefix=`parrot_config prefix`". Maybe that should be the default, and cwd()."install" will be used when we use(d) --gen-parrot?
20:12 frettled mberends: very droll :D
20:12 tadzik pmichaud: ^
20:13 pmichaud tadzik: nqp is supposed to use the prefix of whatever it finds for parrot, iirc.
20:14 pmichaud is it not doing that?
20:14 tadzik nope. Configure.pl has "prefix = opts<prefix> || cwd()."install/"" or something like that
20:15 pmichaud tadzik: I think that doesn't mean anything if a parrot is found/provided, though.
20:15 tadzik pmichaud: see https://github.com/perl6/nqp/blob/master/Configure.pl#L38
20:15 tadzik and then line 64
20:15 pmichaud pj. tjat
20:15 pmichaud drat
20:15 pmichaud oh, that's a small bug, yes.
20:16 dalek nqp: 9ec488d | pmichaud++ | Configure.pl:
20:16 dalek nqp: Also look for any parrot in the search patch (tadzik++).
20:16 dalek nqp: review: https://github.com/perl6/nqp/commit/9ec488dec5
20:16 pmichaud better?
20:16 tadzik lemee see
20:17 tadzik yeah, it found it instantly now. pmichaud++
20:17 diakopter the fix had wetter work
20:17 pmichaud how were you having it find parrot before?
20:18 tadzik pmichaud: --prefix=`parrot_config prefix`
20:18 pmichaud oh, I see.  You were setting prefix to the location of your parrot.
20:18 pmichaud got it.
20:18 tadzik yep
20:18 wamba left #perl6
20:18 wamba joined #perl6
20:18 lichtkind joined #perl6
20:19 jnthn oh my. In debugging this I'm reading how Parrot looks up exception handlers
20:19 jnthn frankly, :'(
20:20 masak that bad, eh? :(
20:20 lichtkind oh dear johnny it will be all-right :)
20:21 cooper|ipad left #perl6
20:21 cooper|ipad joined #perl6
20:21 * PerlJam wonders how the h in Jonathan migrated to just before the first n
20:21 jnthn yeah. It does a Parrot-level, GCable-allocating, signature-string parsing method invocation...on every call frame it finds that has a plausible handler.
20:22 jnthn ...until it finds one...
20:22 masak smooth.
20:23 pmichaud jnthn: that's whenever an exception is thrown?
20:23 jnthn pmichaud: oh yes
20:23 dorlamm joined #perl6
20:23 jnthn pmichaud: scheduler.c:912
20:25 pmichaud oh yeah, that's been there a while.  :)
20:25 jnthn *sigh*
20:25 * jnthn puts "exceptions" onto his "list of Parrot things to re-invent properly" list
20:25 tadzik 6ceptions!
20:26 jnthn At this rate I'll practically have written a VM.
20:26 masak tadzik: :)
20:26 pmichaud that does seem to be the highest-probability outcome at this point.  Maybe we could call it something like "nqp" or something like that :-P
20:26 masak "your sub call was 6cessful!"
20:27 PerlJam jnthn: But it'll be a VM tailored to Perl 6's needs.  :)
20:27 jnthn 6 sells!
20:27 pmichaud it'll be a vm that is more compatible with perl 6, but can still support other languages (hopefully)
20:27 tadzik heh, not only amazon reads my browsing history, it also thinks I'm programing in Ruby
20:28 masak "Parrot was in the way so we, um, routed around it."
20:28 jnthn pmichaud: Innevitably, since every other language is just a Perl 6 DSL :)
20:29 PerlJam jnthn: I'm going to start telling Ruby people that.
20:29 jnthn PerlJam: I hear they like DSLs, so I expect it'll be well received. ;)
20:30 PerlJam indeed  :)
20:30 masak PerlJam: in order for them not to take offense, prefix it with "don't take this the wrong way, but..." :P
20:30 wknight8111 left #perl6
20:30 mberends masak: there, you drove off whiteknight++
20:30 masak o.O
20:31 PerlJam mberends: he's just retreated to a safer position where he can regroup and launch a better parrot for us  :)
20:31 mberends PerlJam: that's the Right Stuff :)
20:34 tadzik Damn, "Operating Systems Design and Implementation" cost as much as a Kindle
20:35 tadzik mberends: do they cost any less than 120$ in Netherlands?
20:35 mberends tadzik: I'll search for that
20:36 tadzik thank you
20:37 tadzik I now wonder if Tanenbaum wrote it in English originally ;)
20:37 lichtkind moritz: ding :)
20:38 mberends tadzik: €71.51 http://www.selexyz.nl/product/9780135053768//operating-systems-design-and-implementation/
20:39 BinGOs joined #perl6
20:39 tadzik not much better :/
20:39 PerlJam tadzik: if only you'd won masak's contest ...
20:40 moritz lichtkind: pong
20:40 tadzik gah :(
20:42 pmichaud okay, I'm about to push the new rakudo build system :)
20:42 pmichaud any reason to wait?
20:42 Util New RC solution: http://rosettacode.org/wiki/Non-continuous_subsequences#Perl_6
20:42 tadzik pmichaud: no! :)
20:43 moritz tadzik: amazon.de has a used copy for 44.90 Euro + 3 Euro shipment (in .de)
20:43 jnthn pmichaud: yes
20:43 jnthn pmichaud: oh, darn :)
20:44 pmichaud yeah, already pushed :)
20:44 jnthn pmichaud: I was only going to say yes so I could push first ;P
20:44 moritz tadzik: or new for 67€
20:44 tadzik moritz: thanks, I'll consider that. .de is not far :)
20:44 pmichaud jnthn: shouldn't be any big conflicts, I don't think.
20:44 jnthn pmichaud: not unless you were patching Terrifying Op also, no. :)
20:45 benabik left #perl6
20:45 benabik joined #perl6
20:46 bluescreen10 left #perl6
20:46 dalek rakudo/nom: 7ec8cf2 | pmichaud++ | / (6 files):
20:46 dalek rakudo/nom: New Configure/build system, part 1.
20:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7ec8cf266d
20:46 dalek rakudo/nom: 1b81860 | pmichaud++ | tools/lib/NQP/Configure.pm:
20:46 dalek rakudo/nom: Clean up some messages during Configure.pl .
20:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1b818601ae
20:46 dalek rakudo/nom: 412a42e | pmichaud++ | Configure.pl:
20:46 dalek rakudo/nom: Update Configure.pl --help text.
20:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/412a42e78a
20:46 dalek rakudo/nom: 6c9783d | pmichaud++ | / (2 files):
20:46 dalek rakudo/nom: Add some better error message support and option handling.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c9783d208
20:47 dalek rakudo/nom: bcc0773 | pmichaud++ | Configure.pl:
20:47 dalek rakudo/nom: Search for nqp executable if not specified.  Check NQP revision requirements.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bcc0773e64
20:47 dalek rakudo/nom: 39737ca | pmichaud++ | / (2 files):
20:47 dalek rakudo/nom: Clean up verify_install handling.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/39737cac90
20:47 dalek rakudo/nom: 6818837 | pmichaud++ | tools/lib/NQP/Configure.pm:
20:47 dalek rakudo/nom: Re-sync NQP::Configure with version from nqp (bug in gen_parrot failing to return to correct directory).
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6818837390
20:47 dalek rakudo/nom: 424a6df | pmichaud++ | Configure.pl:
20:47 dalek rakudo/nom: Force a "make clean" after running Configure, output a better 'we are done' message.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/424a6df45f
20:47 dalek rakudo/nom: 7f2911c | pmichaud++ | / (6 files):
20:47 dalek rakudo/nom: Merge branch 'nom-build' into nom
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7f2911cac2
20:47 dalek rakudo/nom: 5e2be40 | jnthn++ | src/ops/perl6.ops:
20:47 dalek rakudo/nom: When lying about call frames, be sure to cover our tracks. :-) (Actually, just don't introduce a loop in the call chain...) Fixes hang reported by moritz++.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e2be40fcf
20:47 benabik left #perl6
20:47 daniel-s left #perl6
20:47 daniel-s joined #perl6
20:48 tadzik I can has an umbrella?
20:48 masak it's raining nom!
20:48 pmichaud perl Configure.pl --gen-parrot  # dtrt again  :-)
20:48 mberends flood!
20:48 pmichaud also, one can now do:   perl Configure.pl --gen-parrot=master   and it builds nqp/rakudo using the master branch of Parrot
20:48 tadzik masak: :D
20:49 jnthn pmichaud: What does --gen-parrot actually do?
20:50 jnthn pmichaud: NQP and Parrot?
20:50 jnthn oh, you just said so
20:50 jnthn :)
20:50 pmichaud --gen-parrot automatically implies --gen-nqp
20:50 pmichaud (since it wouldn't make sense to use an already existing nqp on a parrot you just generated)
20:50 jnthn k
20:50 pmichaud --with-parrot also implies --gen-nqp
20:50 PerlJam could you say  --gen-parrot=<some sha1>  --gen-nqp=<some sha1>  ?
20:50 pmichaud PerlJam: Yes.
20:51 PerlJam cool
20:51 pmichaud anything that's a valid argument to "git checkout "
20:51 tadzik niice!
20:51 pmichaud it still performs version checks (and still dies if version checks aren't satisfied).  I'm likely to do a --no-version-check option to disable version checks
20:52 pmichaud or maybe that's just --force
20:52 dalek rakudo/nom: d158f3f | pmichaud++ | build/ (4 files):
20:52 dalek rakudo/nom: Remove some outdated build files and scripts.
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d158f3fcd2
20:52 dalek rakudo/nom: 7291309 | pmichaud++ | src/ops/perl6.ops:
20:52 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72913096cb
20:52 pernatiy joined #perl6
20:52 tadzik pmichaud: nom builds flawlessly for me
20:52 * sorear back
20:52 pmichaud also, nqp and nom now share essentially the same configuration library    (in tools/lib/NQP?Configure.pm)
20:53 pmichaud s{\?}{/}
20:53 frettled pmichaud++ - this is getting cooler and cooler
20:53 pmichaud other languages built using NQP can also use that library, so they don't have to duplicate all of the build scripts
20:53 pmichaud it's essentially just  Configure.pl and tools/lib/NQP/Configure.pm
20:54 pmichaud (and tools/build/NQP_REVISION)
20:54 jnthn pmichaud: oh, excellent!
20:55 jnthn pmichaud++
20:55 moritz just one question I can't resist to ask...
20:55 moritz pmichaud: does it have tests? :-)
20:55 pmichaud moritz: no.  But I'm not a big believer in testing configure/build systems.
20:55 pmichaud I'm fine if someone wants to write them, though.
20:55 pmichaud (they belong in the nqp repo)
20:56 jnthn moritz: re "has $.foo" in the setting, turns out there's an underlying issue and the bug I just fixed was hiding the reporting of it.
20:57 * moritz suddenly feels like a valuable early adaptor :-)
20:57 bluescreen10 joined #perl6
20:59 PerlJam "early adaptor"?
20:59 sorear adopter
20:59 jnthn I dunno, he's adapted to the new codebase pretty quickly too :)
21:00 jnthn moritz++
21:00 mberends moritz is adepter than most early adopters
21:00 slavik ha!
21:01 tadzik this would make a good tongue-twister
21:01 slavik http://clientsfromhell.net/post/6295037815/during-production-of-a-film-we-were-doing-over
21:01 tadzik an early adaptor early adapts to early adopters release
21:01 sorear so now, from the todo list TimToady gave me the other day, I have two items left, and both are problematic at an understanding level
21:02 tadzik slavik: was that in your company? :)
21:02 slavik tadzik: it wouldn't be my company anymore ;)
21:02 slavik tadzik: no, we get dumber people than that
21:02 sorear 1. "sorting lists of pairs" - discussion deadlocked on how cmp should work.  This is bad...
21:03 Patterner left #perl6
21:03 sorear 2. "log" - how best to handle transcedental base arguments?
21:04 Psyche^ joined #perl6
21:04 Psyche^ is now known as Patterner
21:04 masak sorear: what does "transcendental" mean in a number system that only stores finite precision?
21:06 sorear masak: "function that never returns a precise result" :)
21:06 PerlJam that sounds like you just gave a new name to "floating point"
21:06 masak in the sciences, we call it an error bar.
21:07 sorear but that's beside the point
21:07 sbp that's where all the washed up theoreticians go to drink
21:07 masak I don't think I see the point, yet.
21:07 cooper|ipad left #perl6
21:07 sorear the point is that all the exp-related functions take an extra argument
21:07 PerlJam sorear: do the most conservative thing possible.
21:07 moritz FatRats are arbitrary precision
21:07 dalek rakudo/nom: 05e5fab | pmichaud++ | Configure.pl:
21:07 dalek rakudo/nom: Parameterize Configure.pl so it can potentially be used by languages other than Rakudo.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/05e5fabbad
21:08 sorear like the base for logarithms, or the angle type for sin
21:08 masak moritz: difference between arbitrary precision and infinite precision.
21:08 mberends I would not like my log to use this base http://en.wikipedia.org/wiki/Transcendental_number
21:08 moritz masak: I know. But the question remains where to cut off
21:08 masak yes, quite.
21:09 pmichaud All your transcendental base are belong to us.
21:09 sorear optional arguments are expensive.  I don't think "log($num, $base = Num::e)" is viable
21:09 moritz mutlis are OK too
21:09 benabik joined #perl6
21:09 masak I still think we should learn as much from Guido/Python as possible, and not give the user too much precision at the expense of speed.
21:09 pmichaud optional arguments are inherently expensive, or is that implementation dependent?
21:10 masak I doubt I will ever need log or exp or sin with finer precision than the ordinary float/double precisions.
21:10 sorear pmichaud: prooobably the latter
21:11 sorear masak: where did precision come in to this?
21:11 masak sorear: if that's a stumbling point, let me get back to my "transcendental numbers can't be represented in the computer" point, and we'll go from there. :)
21:12 felher I don't know if the following is of any interest since S32::Basics is marked as DRAFT but i think S32-setting-library/Basics.pod has a broken reference in line 198. :)
21:12 masak felher: care to fix it? :)
21:13 sorear masak: I tried to start a conversation about efficient handling of "use trigbase" and optional arguments.  It got derailed by someone wanting to talk about computable reals.
21:13 * pmichaud sees a commitbit preparing for launch
21:13 masak sorear: I'm sorry, I misunderstood you completely, then.
21:14 Zapelius left #perl6
21:14 masak sorear: right around "how to handle transcendental base arguments".
21:14 wamba left #perl6
21:14 masak oh! you meant the type of function!
21:14 masak not the type of number.
21:15 felher masak: how? Wouldn't that require me to have commit-access to perl6/specs? Or am i misunderstanding something?
21:15 pmichaud felher: we can give you commit access to perl6/specs
21:15 sorear felher: what's your github name?
21:15 felher pmichaud, sorear: felher
21:16 felher pmichaud, sorear: just as here :)
21:16 masak rakudo: say "OH HAI".substr(-3)
21:16 p6eval rakudo 484a25: OUTPUT«HAI␤»
21:16 masak rakudo: say "OH HAI".substr(* - 3)
21:16 pmichaud felher: you now have a commitbit
21:16 p6eval rakudo 484a25: OUTPUT«maximum recursion depth exceeded␤  in 'Cool::Num' at line 1934:CORE.setting␤  in 'Cool::Num' at line 1934:CORE.setting␤  in 'Cool::Numeric' at line 1921:CORE.setting␤  in 'Cool::Numeric' at line 1921:CORE.setting␤  in 'Cool::Num' at line 7674:CORE.setting␤  in 'Cool::Numeric'
21:16 p6eval ..at li…
21:16 masak niecza: say "OH HAI".substr(* - 3)
21:16 p6eval niecza v6-89-ge849cf7: OUTPUT«Unhandled exception: Cannot use value like Sub as a number␤  at /home/p6eval/niecza/lib/CORE.setting line 568 (CORE die @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 42 (CORE Any.Numeric @ 4) ␤  at  line 0 (ExitRunloop @ 0) ␤  at
21:16 p6eval ../home/p6eval/niecza/lib/CORE.setting line 0 (…
21:16 * mberends sees ETOOMUCHRESPONSIBILITY flashing on felher's console ;) # Ignore it!
21:17 felher pmichaud: thanks a lot.
21:17 felher mberends: :P
21:17 masak because none of the implementations are conformant, I'm going to write a blog post that's not up to spec today.
21:17 pmichaud felher: please feel free to fix any typos/linkos you happen to find
21:17 masak will update it when implementations start to DTRT.
21:17 pmichaud ..."not up to spec?"
21:17 pmichaud or "up to spec but NYI"?
21:17 masak pmichaud: see the evaluations above.
21:18 flussence I guess in the sense of "here's how to use a <marquee> tag"...
21:18 sorear pugs: say "OH HAI".substr(* - 3)
21:18 p6eval pugs: OUTPUT«OH HAI␤»
21:18 masak pmichaud: neither Rakudo nor Niecza discard negative arguments to .substr. both error out on Whatever.
21:18 pmichaud well, WhateverCode, actually.
21:18 Zapelius joined #perl6
21:18 masak yeah, wh... :)
21:19 pmichaud masak: can you add a test for it?
21:19 benabik left #perl6
21:19 pmichaud or is there one already?
21:19 felher pmichaud: thnx, i will. :)
21:19 masak pmichaud: will investigate after I've blogged today.
21:19 icwiener left #perl6
21:20 flussence there's no *s in the substr.t I'm looking at...
21:21 masak TimToady has been quite clear that that's the way it should work.
21:21 sorear masak: oh! I am sorry for the ambiguity.
21:21 masak sorear: me too. I could have picked it up way earlier.
21:23 bluescreen10 left #perl6
21:33 pmichaud pmichaud@kiwi:~/rakudo$ ./perl6
21:33 pmichaud > say "OH HAI".substr(*-3)
21:33 pmichaud HAI
21:33 pmichaud > say "OH HAI".substr(*-5)
21:33 pmichaud H HAI
21:33 pmichaud >
21:34 pmichaud are the details of the params to substr documented anywhere, either in spec or in test?
21:34 masak possibly not.
21:34 masak pmichaud++
21:35 masak well, there is some wording in S32/Str.
21:35 pmichaud I'm not too comfortable about committing this before it appears somewhere official :)
21:35 mberends it's now officially in the irclogs
21:35 pmichaud I'd even go for a reference in the irclogs :)
21:36 masak I'm sure TimToady has said it in the irclogs.
21:36 masak but I'm writing a blog post right now, so I won't look it up just now.
21:36 flussence the * thing looked odd to me at first, but it's easy to mnemonise it as "the entire string"
21:36 pmichaud well, "chars of the string" in this case.
21:36 masak flussence: it vibes really well with how arrays work.
21:37 Tene left #perl6
21:37 pmichaud I don't mind committing the WhateverCode part, but the behavior on negative values isn't specced.
21:37 pmichaud it's supposed to treat a negative value like zero, then?
21:37 masak no idea.
21:37 pmichaud yeah, that's what bugs me about no spec or tests :)
21:37 masak array indexings treat them like errors. :)
21:38 Tene joined #perl6
21:38 Tene left #perl6
21:38 Tene joined #perl6
21:38 pmichaud so, lacking a spec otherwise, officially it falls back to "the way Perl 5 does it"  :-P
21:39 dalek rakudo/nom: 0132c2e | jnthn++ | src/CORE.setting/Exceptions.pm:
21:39 dalek rakudo/nom: Fix up X::Base a little.
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0132c2ebba
21:39 dalek rakudo/nom: b95108c | jnthn++ | src/CORE.setting/Attribute.pm:
21:39 dalek rakudo/nom: A little circularity sawing so we can use attributes with accessors in the setting. In theory we shouldn't need to do this; can track down the underlying issue later.
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b95108ce53
21:40 tadzik X-Base sounds like Power Rangers or something :)
21:40 pmichaud All your transcendental X-Base are belong to us.
21:41 masak pmichaud: http://irclog.perlgeek.de/perl6/2010-09-17#i_2838129
21:41 masak blog post! http://strangelyconsistent.org/blog/june-8-2011-parts-of-strings
21:42 Psyche^ joined #perl6
21:42 frettled string him up!
21:42 masak now, about those tests... :)
21:44 Patterner left #perl6
21:44 Psyche^ is now known as Patterner
21:45 lichtkind good night
21:45 spq1 left #perl6
21:46 masak night, lichtkind.
21:46 masak it's been a while since I was in roast. I... I suppose the right way to go about this isn't just to indiscriminately change all occurrances for -$N to *-$N, thus breaking all implementations that run S32-str/substr.t ?
21:46 lichtkind left #perl6
21:47 tadzik like both?
21:48 pmichaud I think indiscriminately change is okay, fwiw
21:48 flussence yeah, the test's wrong in this case
21:48 * masak changes indiscriminately
21:48 sorear wrong tests are BAD
21:48 sorear speaking of which, what's "munch"?
21:49 sorear the spectests use it, but it's not mentioned in the specs
21:49 pmichaud munch is part of lists.... although it wasn't necessarily intended to be spec
21:49 pmichaud there will certainly be something like it, so .munch is fine
21:50 mberends "munch" seemed cute, on that day ;)
21:50 pmichaud iirc, it got a tentative approval
21:51 pmichaud "that day" being very hectic, as it was :)
21:51 masak which is correct, substr($str, 2, -3) or substr($str, 2, *-3) ?
21:51 masak we've only discussed the second argument so far.
21:51 pmichaud masak: I thought about that also -- I suspect the latter.
21:51 masak me too.
21:51 pmichaud since a "length" of -3 doesn't really make sense.
21:51 flussence if -3 is a length and not an end point... -3 wouldn't make sense anyway
21:51 masak pmichaud: though it doesn't feel as symmetric as the second argument.
21:52 mberends -3 would surprise me more
21:52 masak when the third argument is negative, it ceases to denote a length and starts meaning position.
21:52 pmichaud well, it means "position from the end"  :-P
21:52 pmichaud which involves "length"
21:52 pmichaud but we don't do "length"  :-)
21:53 y3llow_ joined #perl6
21:53 pmichaud so the argument name is incorrect anyway
21:53 pothos_ joined #perl6
21:53 masak I'll... just go back to indiscriminate changing :)
21:53 dalek specs: 451a32f | larry++ | S32-setting-library/Str.pod:
21:53 dalek specs: spec WhateverCode in substr
21:53 dalek specs: review: https://github.com/perl6/specs/commit/451a32f956
21:53 pmichaud oooh!
21:54 tadzik http://wklej.org/id/543382/ -- nom runs this stupid thingy 15x faster than master
21:54 pothos left #perl6
21:54 pothos_ is now known as pothos
21:55 tadzik perl6: say (2 < 5).WHAT
21:55 p6eval rakudo 484a25, niecza v6-89-ge849cf7: OUTPUT«Bool()␤»
21:55 p6eval ..pugs: OUTPUT«Bool␤»
21:55 y3llow left #perl6
21:55 tadzik perl6: say ((2 < 5)).WHAT
21:55 y3llow_ is now known as y3llow
21:55 p6eval rakudo 484a25, niecza v6-89-ge849cf7: OUTPUT«Bool()␤»
21:55 p6eval ..pugs: OUTPUT«Bool␤»
21:56 mberends about substr, we recently discussed that .chars should more correctly be .graphs
21:56 tadzik otoh, nqp is like 2x slower than nqp-rx on this
21:57 TimToady .chars is less confusing, and supposed to represent the current level, which is supposed to be graphs by default
21:57 dalek roast: 813d445 | masak++ | S32-str/substr.t:
21:57 dalek roast: [S32-str/substr.t] put in lots of Whatevers
21:57 dalek roast:
21:57 dalek roast: It was decided (and spec'd) that negative string indices and lengths
21:57 dalek roast: aren't allowed in substr any more. Adapted the tests to reflect this.
21:57 dalek roast: review: https://github.com/perl6/roast/commit/813d445c66
21:57 masak I'm pretty sure I broke something. but it's hopefully a step in the right direction.
21:58 flussence breaking something is the whole point of TDD :)
21:58 flussence (if it ain't broke, add more tests that are)
21:59 masak :)
21:59 masak 'night, #perl6
21:59 flussence i/
21:59 flussence o/ even
21:59 tadzik I thought the point of TDD is breaking... nothing
21:59 masak left #perl6
21:59 flussence when nothing is broke, that's where you do a git-commit :)
22:00 dorlamm left #perl6
22:01 cooper|ipad joined #perl6
22:02 dalek specs: c788c3d | larry++ | S32-setting-library/Containers.pod:
22:02 dalek specs: treat splice more like substr
22:02 dalek specs: review: https://github.com/perl6/specs/commit/c788c3d437
22:04 dalek specs: 2164c2b | (Felix Herrmann)++ | S32-setting-library/Basics.pod:
22:04 dalek specs: [S32/Basics] remove broken reference (L<Scalar>)
22:04 dalek specs: review: https://github.com/perl6/specs/commit/2164c2bede
22:05 dalek rakudo/nom: cb756d5 | jnthn++ | src/Perl6/Actions.pm:
22:05 dalek rakudo/nom: Get Num literals in place. We work them out at compile time and then just create the boxed constant once, not re-parse it every time at runtime. Note - the code here is probably duplicating something from HLL::Actions and could do with being in NQP, not PIR, where that's not the case. Please can somebody look at that? kthbx.
22:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb756d5548
22:08 pmichaud omg, no
22:08 * pmichaud again cries at the further bloating of handling numeric literals
22:09 sorear heh
22:09 jnthn pmichaud: I can't do everything.
22:09 sorear numeric literal handling in Niecza is... I wouldn't say _bloated_ but chaotic would be charitable
22:09 pmichaud jnthn: I know... it just bugs me that the answer always seems to be "let's add yet another copy of the wrong way to do it into our codebase"
22:09 jnthn pmichaud: We now do *all* the computation at compile time.
22:10 pmichaud well, we don't compute   +"123"  at compile time.
22:10 jnthn ?
22:10 jnthn We could, but that's optimization.
22:10 pmichaud (no, we're not supposed to... but I don't want to have two separate sections of "calculate a number" code either)
22:11 pmichaud and this only handles literals that have an 'e', yes?
22:11 jnthn pmichaud: Yes, if they don't have an exponent, they're Rat.
22:11 pmichaud that's still going through the runtime calculation, then.
22:12 jnthn pmichaud: ?
22:12 jnthn pmichaud: What is?
22:12 pmichaud a literal like 123.45
22:12 jnthn pmichaud: It's not, because the Rat type hasn't even been put back in place yet.
22:12 jnthn pmichaud: But it shouldn't be computed at runtime when it is.
22:13 pmichaud either way, having the str2num functions in Perl6::Actions is wrongish, unless they will also be accessible at runtime.
22:14 jnthn pmichaud: Where should they be?
22:14 pmichaud we should have one set of conversion functions for all string to number calculations
22:14 pmichaud not a separate set for runtime and compile time
22:14 jnthn pmichaud: +1
22:14 jnthn Well, +1ish :)
22:14 jnthn The actual computation should be the same
22:15 jnthn For now we may have to cope with the code to stick it in the constant table and the code to produce the value at runtime being slightly different.
22:15 pmichaud why?
22:15 jnthn Maybe we can make them completely the same anyway.
22:15 bis0n joined #perl6
22:16 bis0n Hello all! How to use regular expression to check if a variable contains only one number?
22:16 sorear Question is both underspecified and overspecified.
22:16 sorear Step back, explain what you're trying to do.
22:16 pmichaud bis0n: in perl 5 or perl 6?
22:17 jnthn pmichaud: Because we don't have full-blown serialization just yet.
22:17 jnthn pmichaud: I may be able to fathom a way to deal with the issue anyway though.
22:17 pmichaud jnthn: I don't understand why that requires two separate ways of doing it
22:17 pmichaud jnthn: no, let me go ahead and write it.
22:18 bis0n pmichaud, in perl 5 but I can't join channel perl I don't know why
22:18 pmichaud bis0n: do you mean "number" or "digit"?
22:18 bis0n number like [0-9]
22:18 sorear bis0n: have you been #perl-help recently?
22:18 pmichaud that's a digit
22:19 pmichaud /^\D*\d\D*$/    only matches strings containing exactly one digit
22:19 pmichaud /^\D*\d\D*$/    only matches strings containing exactly one digit
22:19 bis0n thx you, sorry for my poor english
22:19 bis0n thank you very much
22:20 cooper|ipad_ joined #perl6
22:20 cooper|ipad left #perl6
22:20 cooper|ipad_ is now known as cooper|ipad
22:20 mj41 left #perl6
22:20 bis0n if my entry contain only digit can I use /^\d$/ ? sorry, I just want understand
22:21 jnthn pmichaud: OK.
22:21 jnthn pmichaud: You'll figure out what I mean when you dig in.
22:21 pmichaud jnthn: I can put it in HLL::Compiler, HLL::Actions, or Perl6::Compiler
22:21 pmichaud (or Perl6::Actions)
22:22 jnthn pmichaud: I guess that is runtime visible.
22:22 pmichaud I guess I'm asking if they are runtime visible or not.
22:22 sorear bis0n: I think what you want to do is if ($test >= 0 && $test < 10)
22:23 jnthn pmichaud: Not without an explicit import.
22:23 bis0n oO yes that is simple!
22:23 pmichaud bis0n: yes, if your string contains only digits you can use /^\d$/.  But if your string contains only digits, you can just check if its length is 1.
22:23 sorear bis0n: your problem was saying "regular expressions"
22:24 bis0n yes... but I need to check many possibilities...
22:24 sorear it's called an X/Y problem
22:24 bis0n but now I think that is ok, I will test, thank you
22:24 sorear "How do I use X to do Y?" - classic bad question
22:25 jnthn pmichaud: To clarify, that just means use statement in the setting.
22:25 bis0n yes all is ok now, thx!
22:26 jnthn pmichaud: e.g. use Perl6::Grammar; use Perl6::Actions; at the start of the setting.
22:27 pmichaud jnthn: yes, that's what I expected.
22:27 sorear Is it acceptable for spectests to mention 'Perl6::Compiler'?
22:27 pmichaud sorear: probably not.
22:28 jnthn pmichaud: oh...though...I need to clean up module loading a bit first...need a little more unification there
22:29 jnthn pmichaud: e.g. so NQP and Rakudo use the same "low level" module loading mechanism.
22:29 pmichaud jnthn: no problem
22:29 jnthn pmichaud: At the moment if NQP *and* Rakudo try to load the same module things get messed up.
22:30 jnthn pmichaud: Actually really we should be able to do use Perl6::Compiler; and it'll bring in both of the above.
22:30 jnthn Then we'll ahve the interface to it that we need for implementing eval.
22:31 pmichaud saying "use Perl6::Compiler" would import HLL::Compiler?!
22:31 pmichaud that's.... weird.
22:31 jnthn pmichaud: er, I meant Perl6::Grammar and Perl6::Actions
22:31 pmichaud oh, you meant Perl6::Grammar and Perl6::Actions
22:31 pmichaud I can live with that.
22:32 pmichaud I'm thinking it might want to live as a method on the Compiler object.
22:32 jnthn pmichaud: HLL::Compiler? Or Perl6::Compiler?
22:32 pmichaud "Yes"
22:33 pmichaud on HLL::Compiler, and the overridable if needed by Perl6::Compiler
22:33 pmichaud (or NQP::Compiler or whatever)
22:33 cooper|ipad left #perl6
22:33 jnthn pmichaud: I'm just thinking dependency ordering.
22:33 cooper|ipad joined #perl6
22:33 jnthn pmichaud: Perl6::Compiler needs to use Grammar and Actions
22:33 jnthn pmichaud: So in actions we'd not be able to see Perl6::Compiler
22:33 jnthn Though of course there's compreg.
22:34 pmichaud surely there's a dynvar that points to our current compiler object :-)
22:34 pmichaud (or there ought to be a ...)
22:35 jnthn Oh, that'd also work :)
22:35 jnthn Well
22:35 jnthn but if you come in through pre-comp you may not be in the compiler ;)
22:35 icwiener joined #perl6
22:35 jnthn oh wait
22:35 jnthn that's not a problem :)
22:36 pmichaud anyway, there's a method on HLL::Compiler that lets us find any known compiler object
22:36 jnthn oh, cool
22:36 jnthn :)
22:36 jnthn I didn't know that. :)
22:37 pmichaud HLL::Compiler.compiler("nqp")   -- returns the compiler named "nqp"
22:37 jnthn You'll probably encounter SymbolTable.add_constant at some point. That's the thingy that knows how to add something to the "constant table"
22:37 pmichaud (yes, it currently does a compreg to find the compiler... but it could just as easily look up in an our %compilers shared variable)
22:37 jnthn Yeah, I'm happy we have compreg abstracted away.
22:38 pmichaud the adding of constants isn't the part that bugs me :)
22:38 jnthn Note that add_constant also makes the real object too.
22:38 pmichaud that part's well abstracted
22:38 jnthn So you may want to split add_constant into two parts
22:38 jnthn add_constant and make_constant or some such, so add_constant calls make_constant
22:38 pmichaud and it can be treated as an optimization until we have all of the other pieces (e.g., 'Rat') in place
22:39 jnthn Yeah. I expect us to make Rat and Complex constants at compile time too.
22:40 jnthn May as well go the whole hog.
22:40 pmichaud I just want to get us out of the habit of creating multiple routines for converting string literals into numeric values.
22:40 pmichaud s/literals/values/
22:41 pmichaud if we're doing it for speed/performance, okay, but so far we've been doing it out of poor design
22:42 jnthn Oh, I'm all for the unification.
22:45 TimToady well, to take it to the logical endpoint, all constant folding should be done by the same set of code that would have been called at run time
22:45 TimToady (this is how P5 does it, because that's how P4 didn't...)
22:45 pmichaud exactly.
22:45 pmichaud the notion of separate code handling things at compile time is one of the things I want to avoid.
22:45 TimToady and the P4 constant folder was always getting out of sync with the runtime code
22:46 jnthn Yes, that's exactly the direction I'm going in.
22:46 TimToady all the compiler really has to worry about is purity, and then it's really just a BEGIN <expr>
22:46 cooper|ipad left #perl6
22:47 jnthn TimToady: It's exactly the same mechanism I already built for trait_mod.
22:47 jnthn TimToady: When it goes searching for trait mods, it looks through the lexical scopes, finds the nearest instantiated dispatch and uses that.
22:47 pmichaud trait_mod is accessible at runtime?
22:47 jnthn TimToady: So all the workings are in place.
22:47 jnthn pmichaud: Accessible
22:47 jnthn pmichaud: But never called at runtime
22:47 TimToady cool.  where P5 fell down, of course, was in having any decent serialization that was any faster than just recompiling :)
22:48 jnthn pmichaud: All trait_mods are called at compile time
22:48 jnthn pmichaud: They get dynamically compiled if needed.
22:48 jnthn (e.g. on demand)
22:48 pmichaud jnthn: okay.  the big difference here then is that not all string to number conversions happen at compile time :)
22:48 jnthn pmichaud: Well, not all trait mods do either I guess.
22:49 TimToady there's always BEGIN and eval
22:49 jnthn eval...well, OK, that's compile time. :)
22:49 buubot_backup jnthn: ERROR: syntax error at (eval 28) line 1, near "; .."
22:49 jnthn .oO( eval fork while 1 # shut up... )
22:49 TimToady buubot_backup: eval kill $$
22:49 buubot_backup TimToady: 0
22:51 jnthn Anyway, my point was that if we want to constant fold, we'll do it with whatever operators are in scope at that point, by calling them just as we would at runtime. Same code.
22:51 pmichaud I'm thinking that constant eval should do the same.
22:52 TimToady constant is really BEGIN in disguise
22:52 jnthn "constant eval"?
22:52 pmichaud given a literal like   123, we should use whatever the runtime uses to convert that to a numeric sonstant
22:52 pmichaud *constant
22:53 mberends jnthn: are we worried about whether there is just one instance of this code or that there may be two instances?
22:53 TimToady perl6: constant @fib = 0,1,*+*...*; say @fib[10];
22:53 p6eval rakudo 484a25: OUTPUT«===SORRY!===␤Constant type declarator not yet implemented at line 22, near "= 0,1,*+*."␤»
22:53 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "@fib"␤    expecting "=", context, ":" or "("␤    at /tmp/8PC8xA_7oZ line 1, column 10␤»
22:53 p6eval ..niecza v6-89-ge849cf7: OUTPUT«55␤»
22:53 TimToady niecza++
22:53 jnthn mberends: I don't think that's the issue.
22:54 jnthn pmichaud: OK, which moves the question to, what does the runtime use :)
22:54 mberends jnthn: I didn't think so either.
22:54 TimToady niecza: constant @fib = 0,1,*+*...*; @fib[10] = 42; say @fib[10]
22:55 pmichaud jnthn: right, which is what concerns me about putting it in Perl6::Actions :)
22:55 p6eval niecza v6-89-ge849cf7: OUTPUT«42␤»
22:55 TimToady aha!
22:55 TimToady niecza -= .5
22:55 jnthn pmichaud: Well, that's only an issue if the runtime doesn't call that ;-)
22:55 pmichaud jnthn: right.  anyway, I'll work on it.
22:56 TimToady niecza: constant @fib = 0,1,*+*...*; say @fib[10]; @fib[10] = 42; say @fib[10]
22:56 p6eval niecza v6-89-ge849cf7: OUTPUT«55␤42␤»
22:56 jnthn pmichaud: I mean, in a sense you can put it in the Str class in the setting, as Str.Num, Str.Int, etc.
22:56 jnthn pmichaud: But then we can't write any literal numbers/integers in the setting until after that. :)
22:57 TimToady you just have to use Church numbers :)
22:57 jnthn Which is probably getting too cute with the circularity saw. :)
22:57 pmichaud jnthn: it's not Str.Num or Str.Int anyway
22:57 pmichaud at best, it's Str.Numeric
22:58 jnthn pmichaud: Sure, I was more calling out the general issue.
22:59 dalek 6model: f6f0936 | (Martin Berends)++ | c/README.markdown:
22:59 dalek 6model: [c/README.markdown] begin the 6model/c subproject
22:59 dalek 6model: review: https://github.com/jnthn/6model/commit/f6f0936dc9
22:59 pmichaud jnthn: okay, now that I've got the build systems fixed up... what priority next for me?  Parcel and List?
23:00 jnthn pmichaud: Yes, I think so
23:00 pmichaud okay
23:00 pmichaud I should be able to work on those tonight
23:00 benabik joined #perl6
23:00 jnthn pmichaud: Provided it was performant, how would you feel about at least Array eventually being a role?
23:00 jnthn pmichaud: Same with Hash.
23:01 pmichaud why does it need to be a role, ooc?
23:01 jnthn pmichaud: Otherwise any typing stuff becomes quite the cheat.
23:01 jnthn pmichaud: It needs to do Positional[Foo]
23:01 pmichaud and only roles can do that?
23:01 jnthn Or Associative[Foo
23:01 jnthn ]
23:01 jnthn Yes, only roles are parametric.
23:01 jnthn I mean, OK, we *could* mix in the role to the container at the right point
23:01 jnthn But that's icky.
23:02 benabik left #perl6
23:02 jnthn pmichaud: Thing is that we can do all the "resolution" of the role at compile time.
23:02 jnthn (now...that wasn't possible before)
23:02 pmichaud what would be the declaration so that  Array ~~ List ?
23:03 mberends pmichaud: if you have time, please look at test failures documented in https://github.com/jnthn/zavolaj/blob/master/t/02-resident.t
23:03 pmichaud mberends: will do.
23:03 mberends :)
23:03 pmichaud mberends: that's with latest rakudo release?
23:03 mberends yes
23:03 pmichaud mberends: okay.
23:04 mberends also for you to extend if needed: https://github.com/jnthn/zavolaj/blob/master/t/03-customlib.t
23:04 jnthn pmichaud: role List[::T] does Positional[T] does Iterable { }; role Array[::T = Mu] does List[T] { } # at a guess
23:04 sorear *shudder*
23:05 pmichaud jnthn: and it's okay if Iterable is a class?
23:05 jnthn pmichaud: Feel free to dig into it as a class in the meantime - it'll probably be the weekend before I've got the roles stuff all in place.
23:05 jnthn pmichaud: Does Iterable need to be a class?
23:06 jnthn pmichaud: I thought it was meant to be a role?
23:06 pmichaud jnthn: at some point I get to a class.
23:06 jnthn pmichaud: Array gets punned
23:06 perigrin is there a strong distinction? Syn 6 suggested they were transmutable.
23:06 pmichaud Array ~~ List ~~ Iterable ~~ Cool ~~ Any ~~ Mu
23:06 jnthn e.g. into a class
23:06 jnthn Ah
23:06 icwiener left #perl6
23:06 pmichaud do all of those have to be roles?
23:06 jnthn role Iterable is Cool { } # makes sure we add Cool as the parent
23:06 jnthn No
23:06 jnthn Iterable could be a class as well.
23:07 sorear Are you going to make Any a role now too? :/
23:07 jnthn sorear: What would that gain?
23:07 pmichaud jnthn: so, List will need to be a role so that we can do Positional[T] ?
23:07 jnthn pmichaud: Feels that way.
23:08 pmichaud checking.
23:08 jnthn pmichaud: Only roles can take type parameters.
23:08 jnthn pmichaud: It'd feel weird if Array could be type parametric, but list couldn't.
23:08 jnthn *List
23:08 Chillance left #perl6
23:09 pmichaud well, in general List wants to be   List[Mu}
23:09 pmichaud er,   List[Mu]
23:09 jnthn Yes.
23:09 pmichaud it doesn't have many cases where it cares about the 'of' type
23:09 sorear I think the real problem here is that classes can't have parameters.
23:09 pmichaud same sort of thing goes for Parcel, which also does Positional
23:09 sorear Does anyone else think that int[$x] being a role is completely insane?
23:10 jnthn pmichaud: In what way are Array and List related?
23:10 jnthn pmichaud: Does Array just add mutability?
23:10 jnthn pmichaud: And it uses the same underlying storage?
23:10 pmichaud has container as elements
23:10 pmichaud Array is a list of Scalar
23:11 jnthn pmichaud: I'm thinking ahead to my int @foo
23:11 jnthn (e.g. packed arrays)
23:11 sorear FWIW, I don't like the Array/List/Seq split
23:11 pmichaud I'm certain that Array and List are correct.  Seq I'm less certain of.
23:12 jnthn sorear: Letting classes have parameters would hugely complicate classes.
23:12 sorear it seems too coarse-grained - what happens with @( @list, @array ) ?
23:12 pmichaud sorear: it does exactly what it says :-)
23:12 pmichaud it creates a list from the Parcel containing @list and @array
23:13 pmichaud s/creates/returns/
23:13 jnthn sorear: The immutability of roles helps also.
23:13 jnthn sorear: Augmenting a parametric class makes me shudder.
23:14 flatwhatson left #perl6
23:14 pmichaud jnthn: (thinking ahead to my int @foo)    I don't know that it's much different from   my int $x
23:14 flatwhatson joined #perl6
23:14 jnthn (Yes, I did once wonder why classes didn't have type parameters too. 3 or so implementations of roles later, I've concluded it's the Right Thing.)
23:14 pmichaud the major difference is how @foo handles .at-pos
23:15 jnthn pmichaud: Well, and the storage is allocates.
23:15 jnthn I mean, yes, it could grab the type out of the container descriptor just fine.
23:15 daniel-s good morning
23:15 jnthn We still need it to "does Positional[T]" though
23:15 pmichaud I'm not sure that  my int @foo   results in  @foo being   Array[int]
23:15 pmichaud it might need to be something like PackedArray[int]
23:16 araujo left #perl6
23:16 pmichaud and perhaps it's not   ~~ List
23:16 pmichaud but simply ~~ Positional.  (It could still return Lists where needed, same as Parcel does)
23:18 pmichaud or, perhaps it is Array[int]  which is also List[int], and List[int] is smart enough to know that it has different storage requirements.
23:18 jnthn I suspect the way it should really work is that we have a REPR for array storage that, like P6opaque does, looks at the storage requirements and does the Right Thing.
23:19 jnthn I don't so much want us to do that *now*, I just want to make sure we don't design something now that makes it a horrible refactor to do that later.
23:19 pmichaud anyway, I don't see any immediate problems with making Array and/or List into roles
23:19 jnthn OK. I just have a *really* bad feeling about cheating on that.
23:20 pmichaud I think it falls out fairly naturally.
23:20 jnthn "it"?
23:20 pmichaud (conversion to roles)
23:20 jnthn ah, OK
23:20 jnthn Yes, I think it should.
23:20 pmichaud as long as role can inherit from a class, shouldn't be too much problem.
23:20 sorear What is the "Code" class used for?
23:20 TimToady if we have to start doing type introspection to figure out, say, what's mutable or not, that's maybe a danger sign
23:20 pmichaud Code == anything that is executable
23:21 jnthn sorear: It's generally not instantiated directly, it's the ultimate base class of executable things.
23:21 jnthn Block is the closest thing to it that's directly instantiated.
23:21 jnthn Routine is also never instantiated directly; it's just the case class of Sub, Method, etc.
23:21 sorear jnthn: Is there any circumstance where I might see an $object which is ~~ Code but !~~ Block?
23:21 TimToady Code could be the default punning of Callable
23:22 jnthn sorear: class Thingy is Code { } # :-)
23:22 jnthn sorear: Given an extensible grammar, it only follows on that people will extend meta-objects too.
23:22 jnthn Or created new sorts of them.
23:23 pmichaud I've internally speculated that Code might represent things that are inlinable and aren't blocks
23:23 pmichaud but no, I haven't come up with any actual Code examples yet.
23:23 jnthn pmichaud: Thunks could potentially be Code.
23:23 pmichaud jnthn: yes, that too.
23:23 jnthn sub foo($a = ...) { ... }
23:23 TimToady but surely there are things that are Code that aren't inlineable
23:23 jnthn The default value there is potentially Code.
23:24 jnthn Since it doesn't imply a lexical scope of its own.
23:24 jnthn Whereas Block would.
23:24 pmichaud TimToady: I meant "instances of Code that aren't blocks", not that "Code represents only inlinable things".  Sorry for ambiguity.
23:24 TimToady ah
23:24 TimToady I usually see those...
23:24 pmichaud I agree I phrased it badly.
23:25 pmichaud anyway, Rakudo has Code as a class only because the specs mention it in various places
23:25 pmichaud although it looks like it's not in S02 anymore (I think it used to be...)
23:27 TimToady well, the conservative thing is probably to make too many distinctions and then drop the no-oppy ones; splitting up things that have been confused is much harder
23:27 pmichaud agreed fully
23:27 jnthn +1
23:27 TimToady there's really no way to tell in P5 whether an array was intended to be constant, for instance
23:28 TimToady s/constant/immutable/
23:28 dalek niecza/immediate: e94671e | sorear++ | src/ (2 files):
23:28 dalek niecza/immediate: [immediate] preliminaries; comp_unit
23:28 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/e94671e236
23:29 TimToady so there are a large number of optimizations that are effectively impossible
23:29 pmichaud TimToady: yesterday you mentioned that you were tired of typing --gen-parrot... what would you like to see instead?
23:29 TimToady nothin'
23:29 pmichaud i.e., just "perl Configure.pl"  does the right thing ?
23:30 TimToady that's the idea, at least until we have multiple VMs to pick from...
23:31 pmichaud --gen-parrot is meant to distinguish between "download and build a copy of parrot" versus "use a parrot I already have installed"
23:31 pmichaud not to distinguish among multiple VMs (at least, not yet)
23:31 TimToady yes, but the default optimizes for the uncommon case
23:31 TimToady that's my plaint
23:32 pmichaud "uncommon case" meaning "someone that already has a parrot installed?"
23:32 TimToady yes
23:32 jnthn I suspect it's common case for developer vs common case for user.
23:32 TimToady it would be interesting to poll everyone here as to whether they have a separate parrot
23:32 tadzik I do
23:32 sorear pmichaud: ($x = ... as Code) I made the same speculation
23:32 jnthn (And the user should be who we really optimize for...)
23:33 jnthn (Though we want development to be conveneint too :-))
23:33 tadzik I guess the user is usually a release user/star user
23:33 sorear I did, but stopped when I realized that Parrot's support for being installed was buggy
23:33 flussence I'm lazy and --gen-parrot is less thinking for me than maintaining a separate parrot install
23:33 pmichaud well, the user could be someone that installed "parrot-devel" package (e.g., on Debian)
23:34 flussence it's the same sort of situation as with firefox/xulrunner...
23:34 TimToady "Downloading a newer parrot than you have...type ^C to not do that..."
23:34 Moukeddar joined #perl6
23:34 tadzik I don't mind gen-parrot being default as long as it doesn't gen-parrot if I already have parrot
23:34 pmichaud TimToady: at least on my system, that message scrolls up long before I have a chance to see it.
23:35 tadzik sleep &
23:35 TimToady there's gotta be some way to have my cake and eat it too... :)
23:35 pmichaud TimToady: that's what I'm trying to get to, yes.
23:36 pmichaud would requiring --gen-parrot only once help out?  or is that still too much of a pain?
23:36 flussence .oO( maybe Configure.pl should have a --* flag that fills in any blanks :)
23:36 pmichaud i.e., if there's already a parrot repo in the rakudo dir, assume --gen-parrot ?
23:37 TimToady well, if there's no parrot on the system, it would also seem that you need a parrot...
23:37 TimToady so maybe either of those conditions
23:37 jaldhar joined #perl6
23:37 pmichaud unless the problem is simply that we weren't looking in the right place.  :-)
23:38 TimToady then the onus should be on the configurer to supply the right place, not on the person who just wants to do the subdir thing
23:39 pmichaud would a prompt be okay?
23:39 pmichaud "Presss ENTER if you want me to go ahead and download a parrot..."
23:39 TimToady well, if isatty
23:39 flussence as long as there's a flag to disable it... think of the distro maintainers :)
23:40 jnthn pmichaud: Another thing to consider could be having some configure.defaults file that people can set up locally that we look for.
23:40 pmichaud presumably distro maintainers are specifying the flag that says where to find the parrot
23:40 pmichaud jnthn: I'm thinking primarily "fresh repo"
23:40 TimToady distro maintainers are not us stupid users
23:40 jnthn pmichaud: So folks who have a Parrot to hand to develop against but often want to re-configure often (Makefile.in changes) can also just have perl Configure.pl do the right thing for them.
23:41 pmichaud jnthn: oh, that's even easier, at least on *nix
23:41 pmichaud sh config.status
23:41 pmichaud re-runs Configure.pl with the same options you used the last time.
23:41 jnthn oh sh... I'm on Windows. :)
23:41 pmichaud I'm open to creating a windows equivalent :)
23:41 TimToady surely Configure.pl is, er, a Perl script
23:42 pmichaud yes, it is.
23:42 TimToady and Perl knows how to read in other files
23:42 pmichaud I went with sh config.status because that's what autoconf typically does
23:43 pmichaud yes, I could do   perl Configure.pl --same-options-as-last-time
23:43 TimToady I distinctly remember putting in such capability once upon a time :)
23:43 TimToady BAD DEFAULT
23:44 TimToady I think perl Configure.pl should default to same options as last time, unless it's provable that one of them is bad, or is overridden
23:45 pmichaud do most Configure.pl (and other configuration scripts) use that as the default behavior?
23:45 pmichaud i.e., assume same options as last time?
23:46 flussence the standard unixy ones I've encountered don't
23:46 TimToady P5 keeps a Policy.sh
23:46 TimToady so it saves some of them
23:46 whiteknight joined #perl6
23:47 TimToady and this definitely has the flavor of policy
23:50 pmichaud it's been a long time since I built a P5 from sources
23:51 envi_laptop joined #perl6
23:54 pmichaud anyway, I'll think about all of this some more.
23:54 pmichaud I definitely would be okay with the idea that "cp config.status config.default"   causes Configure.pl to re-use previous options
23:55 pmichaud so then a rebuild is always   perl Configure.pl   to use whatever options are in config.default
23:57 pmichaud afk, errands

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

Perl 6 | Reference Documentation | Rakudo