Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-13

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:03 skids joined #perl6
00:04 larion joined #perl6
00:09 vendethiel joined #perl6
00:17 timotimo m: my Int sub foo() { }
00:17 camelia rakudo-moar e2b01f: ( no output )
00:17 timotimo m: Int sub foo() { }
00:17 camelia rakudo-moar e2b01f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Asxl2hBszZâ�¤Two terms in a rowâ�¤at /tmp/Asxl2hBszZ:1â�¤------> [32mInt [33mâ��[31msub foo() { }[0mâ�¤    expecting any of:â�¤        infix stopperâ�¤        infix or meta-infixâ�¤        state…»
00:17 timotimo m: sub Int foo() { }
00:17 camelia rakudo-moar e2b01f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/1UYMhlF8nx�Missing block�at /tmp/1UYMhlF8nx:1�------> [32msub Int [33m�[31mfoo() { }[0m�»
00:17 timotimo ^- i want to build a better error message for this
00:17 timotimo sounds good?
00:20 masak fine by me :)
00:21 timotimo i really dislike that --rxtrace is useless in modern rakudo
00:29 bronco_creek joined #perl6
00:31 timotimo perl6 -e 'sub Int foobar() { }'
00:31 timotimo Did you mean to write my Int sub foobar?
00:31 timotimo ^- takes the names from the actual source code
00:34 lea joined #perl6
00:34 [Coke] http://www.perl-6.com/
00:35 timotimo cute
00:37 masak oh, and it's a github repo: https://github.com/songzan/perl-6.com
00:38 [Coke] songzan++
00:42 timotimo some spec test failures, though
00:45 timotimo but now i pulled a bunch of commits to all repos
00:52 timotimo is not ok 33 - xx works on a lazy list known? from t/spec/S03-operators/repeat.t
00:52 timotimo what about having t/spec/integration/weird-errors.t with not ok 5 - multi sub with where clause + temp stress
00:54 timotimo fish: Job 1, “perl6-m -e 'my $x; multi sub foo($n where True) { temp $x; }; foo($_) for 1 ... 1000; say "alive"'” terminated by signal SIGSEGV (Address boundary error)
00:54 timotimo :(
00:55 * masak read 'fish: Job 1' and thought it might be a Bible verse
00:56 timotimo :D
00:56 timotimo well, at least it's not caused by my commit
00:57 timotimo and there's a TODO passed :)
01:04 timotimo OK, same output from spec tests with or without my commit
01:04 timotimo excellent
01:05 dalek rakudo/nom: e5c533c | timotimo++ | src/Perl6/Grammar.nqp:
01:05 dalek rakudo/nom: hint at "my Type sub name" when writing "sub Type name"
01:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5c533cf2d
01:05 timotimo ^- enjoy
01:09 masak m: my $s = "ABCDEFGHI"; say $s.comb.grep({ state $i = 0; $i++ %% 3 }).join
01:09 camelia rakudo-moar e2b01f: OUTPUT«ADG␤»
01:09 * masak nods approvingly
01:17 dalek rakudo/nom: f2d4b88 | timotimo++ | src/Perl6/Grammar.nqp:
01:17 dalek rakudo/nom: tune the error message some more
01:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2d4b88129
01:26 * TimToady added the test for xx but didn't report a bug for it
01:27 TimToady except here on irc
01:27 TimToady I figured someone would add the bug report if the spectests failed :)
01:28 skids joined #perl6
01:28 * TimToady no cookie, but then I'm generally allergic to cookies anyway
01:30 b2gills m: say (1/81).fmt("%.40f") # should be a repeating number https://www.youtube.com/watch?v=daro6K6mym8
01:30 camelia rakudo-moar e2b01f: OUTPUT«0.01234567901234570​00000000000000000000000␤»
01:31 TimToady known bug, fmt goes though floating point
01:32 TimToady m: say <1/81>.base(10)
01:32 camelia rakudo-moar e2b01f: OUTPUT«No such method 'base' for invocant of type 'Str'␤  in block <unit> at /tmp/cB5sXF3lqa:1␤␤»
01:32 TimToady m: say (1/81).base(10)
01:32 camelia rakudo-moar e2b01f: OUTPUT«0.012346␤»
01:32 TimToady and that doesn't figure the precision of 81 is all that great in the first place :)
01:33 TimToady I think there's an RC entry that gets repeats though
01:33 jercos <3 Rosetta Code
01:36 TimToady maybe I'm thinking of http://rosettacode.org/wiki/Convert​_decimal_number_to_rational#Perl_6 which goes the other direction
01:39 TimToady anyway, I'm quite certain I wrote that function at some point
01:40 dayangkun joined #perl6
01:43 TimToady it's a fairly trivial modification of .base, just keep a map of partial results for each remainder mapping back to which position we saw that remainder before
01:45 squirrel joined #perl6
01:50 Mouq joined #perl6
01:58 vendethiel joined #perl6
02:02 timotimo m: sub Int trololo { }
02:02 camelia rakudo-moar e5c533: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Z7A3GIj757�Did you mean to write my Int sub trololo?�at /tmp/Z7A3GIj757:1�------> [32msub Int trololo[33m�[31m { }[0m�»
02:02 timotimo that's still the old one
02:04 dj_goku_ joined #perl6
02:04 dj_goku_ joined #perl6
02:08 lex joined #perl6
02:10 Mr0rris0 joined #perl6
02:11 Mr0rris0 joined #perl6
02:11 Mr0rris0 joined #perl6
02:11 adu joined #perl6
02:12 Mr0rris0 joined #perl6
02:13 Mr0rris0 joined #perl6
02:13 Mr0rris0 joined #perl6
02:14 Mr0rris0 joined #perl6
02:15 Mr0rris0 joined #perl6
02:15 Mr0rris0 joined #perl6
02:16 Mr0rris0 joined #perl6
02:16 Mr0rris0 joined #perl6
02:17 Mr0rris0 joined #perl6
02:17 Mr0rris0 joined #perl6
02:18 Mr0rris0 joined #perl6
02:18 Guest51406 I just read about the Perl 6 release announcement. Google pointed me to perl.org which seems to be the official website for Perl 6. The design of the website looks too outdated. The content is disorganized hence finding the documentation/tutorials was hard.
02:18 Mr0rris0 joined #perl6
02:19 Guest51406 I'll be trying the language once I go through some documentation. I hope the language is worth spending the time.
02:19 Mr0rris0 joined #perl6
02:19 raydiak Guest51406: the official website for Perl 6 is perl6.org
02:19 Mr0rris0 joined #perl6
02:20 Mr0rris0 joined #perl6
02:20 Mr0rris0 joined #perl6
02:21 Mr0rris0 joined #perl6
02:23 masak the design of perl.org was updated a couple years ago. it looks better now than before, IIRC.
02:24 masak 'night, #perl6
02:25 raydiak g'night masak
02:47 vendethiel joined #perl6
02:48 ilbot3 joined #perl6
02:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
02:54 chenryn joined #perl6
03:09 noganex_ joined #perl6
03:18 Psyche^ joined #perl6
03:24 vendethiel joined #perl6
03:26 nick_____ joined #perl6
03:33 skids joined #perl6
03:51 vendethiel joined #perl6
03:51 chenryn joined #perl6
04:02 echowuhao joined #perl6
04:02 chenryn_ joined #perl6
04:05 chenryn_ joined #perl6
04:06 raydiak adu: ping
04:07 adu raydiak: hey
04:08 raydiak hey...I noticed there's some uncommented says in C::AST::Utils
04:09 raydiak which kinda raises the question, other than toggling comments all over the place, how would you like to handle debug output?
04:11 raydiak I put 'if $*debug' after all of them, and now I can toggle them in my script by doing 'my $*debug = True', and wuold be a simple matter to add --debug to cdump from there, but many would consider that bad form, and would cascade the option down the call chain instead of (ab)using global dynamics
04:11 adu raydiak: oops
04:11 adu my bad
04:12 raydiak well it's useful when I hit errors, which is why I wonder how you want to toggle stuff like that
04:13 raydiak maybe better to have a debug() function or something that handles the logic and stderr and such encapsulated...what do you think?
04:14 adu raydiak: I usually do whatever is conventional in the language I'm working in
04:14 adu but I don't know any Perl5 conventions, so I'm a little lost
04:15 adu like in C assert() is one way
04:16 adu in some languages it's just a global DEBUG = False thing
04:16 adu at the top of each file
04:16 adu which is probably the worst way to do it
04:17 adu loggers are probably the best way to deal with it
04:17 raydiak not aware of a consistent perl convention wrt logging...in p5 the answer is usually "use a module"
04:17 adu then if you have no log handlers, then there's no output
04:17 adu is there a log4p6?
04:17 * raydiak noticed avuserow++ has been working on https://github.com/avuserow/perl6-log-simple
04:20 raydiak though I notice it's not in the ecosystem, so maybe not ready
04:20 raydiak really I don't see *any* logging modules on modules.perl6.org
04:21 adu hmm
04:21 adu maybe we should write one
04:23 raydiak could be fun...I don't think I have any basic, unintimidating things I'm workin on yet :)
04:23 Woody joined #perl6
04:29 vendethiel joined #perl6
04:35 raydiak though I'd hate to make a logging module right as someone else is actively working on one...another options is we could have a C::Parser::Utils for internal use that you use from other places which exports a debug()/log()/whatever
04:36 raydiak afk dinner
04:40 avuserow hi adu, raydiak :)
04:40 adu hi
04:40 avuserow I haven't put TONS of time into Log::Simple, but my intention was for it to be something to serve my own simple uses and tide people over until a Log4p6 or similar happens
04:41 avuserow if you have good use cases, I'd like to chat about either possibility
04:42 avuserow let me backlog to see what you had to say earlier :)
04:46 avuserow so basically, my thoughts are influenced by Python's standard logging module, which I use in $dayjob and I'm aware of some of its pitfalls and good bits
04:47 avuserow if any of that sounds interesting, I'll hand out commitbits and I'm open to fairly radical API changes at this point since it's not on the ecosystem
04:49 davido__ joined #perl6
04:51 avuserow the next thing that I want it to have in the module (and the main thing before putting it into the ecosystem) is some way to configure things at a per-package level
04:54 avuserow (at least I think per-package is the right default, so that way if you have a bunch of log statements in C::AST then the calling application could log them to a specific file or ignore them entirely
05:01 adu well, avuserow I was thinking something similar to Python "logger" or log4j
05:04 adu avuserow: what is "&LOG"?
05:04 kurahaupo1 joined #perl6
05:04 avuserow it's the sub called LOG
05:04 avuserow m: sub LOG() {}; say &LOG
05:04 camelia rakudo-moar f2d4b8: OUTPUT«sub LOG () { #`(Sub|97586680) ... }␤»
05:04 avuserow m: sub LOG() {}; say &LOG.WHAT
05:04 camelia rakudo-moar f2d4b8: OUTPUT«(Sub)␤»
05:04 adu oh
05:05 avuserow m: sub LOG($msg) {say $msg}; my &foo = &LOG.assuming("Hello world"); foo();
05:05 camelia rakudo-moar f2d4b8: OUTPUT«Hello world␤»
05:05 adu avuserow: can you have multiple appenders?
05:05 adu like one appender for stdout, and one for a file?
05:06 avuserow not yet, I need to support this. I'll probably make a "Tee" appender that lets you combine them
05:08 avuserow or maybe just combine the two appenders
05:13 avuserow my thought is that it'd be best to do one appender per "route" (which would be package/package-prefix in most cases, I think)
05:16 vendethiel joined #perl6
05:18 avuserow oh, but I should also support the case where STDERR gets INFO and up, where a logfile gets ERROR and up
05:18 avuserow hmmm
05:30 * raydiak will still be back eventually :)
05:33 adu oh, are you going to sleep?
05:35 raydiak no no that's why I checked in to let you know I'm still coming back
05:35 raydiak still reading just kinda afk still
05:36 adu ok
05:37 Mouq joined #perl6
05:42 chenryn_ joined #perl6
05:51 chenryn_ joined #perl6
06:00 avuserow hm, would it be bad to put all the configurability into appenders for simplicity so they are easier to reconfigure?
06:00 avuserow I'm really wanting to avoid having a half dozen functions just to reconfigure things
06:01 avuserow that's a usecase I am wanting to make sure I handle properly, since reconfiguring log levels of an application at runtime is a reasonable thing
06:06 jack_rabbit joined #perl6
06:07 Mouq avuserow: Instead of having a private $routes var, maybe you could have $*LOGGER variable or something that would be easier to configure?
06:08 vendethiel joined #perl6
06:09 avuserow hmm, hadn't thought about using a $*FOO style var
06:09 avuserow those are more global right?
06:11 avuserow anyway, regarding configuration, my main use case is you have script A use modules B and B::C. I think that script A should be able to reconfigure the logging levels and destinations for B and B::C (perhaps as a pair) for its needs
06:11 avuserow does that make some amount of sense?
06:12 diana_olhovik_ joined #perl6
06:12 avuserow (hmm, if it wasn't for $*LOGGER being so long and a bit awkward to type, I could provide methods on it instead of exported functions... maybe I could do both)
06:12 sivoais joined #perl6
06:20 Mouq avuserow: $*FOO is a dynamic variable
06:21 Mouq m: sub bar { say $*FOO }; { my $*FOO = "foo"; bar; } bar
06:21 camelia rakudo-moar f2d4b8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/C3kw8Q7KYcâ�¤Two terms in a rowâ�¤at /tmp/C3kw8Q7KYc:1â�¤------> [32msay $*FOO }; { my $*FOO = "foo"; bar; } [33mâ��[31mbar[0mâ�¤    expecting any of:â�¤        infix stopperâ�¤        infix or …»
06:21 Mouq m: sub bar { say $*FOO }; { my $*FOO = "foo"; bar; }; bar
06:21 camelia rakudo-moar f2d4b8: OUTPUT«foo␤Dynamic variable $*FOO not found␤  in method gist at src/gen/m-CORE.setting:14619␤  in sub say at src/gen/m-CORE.setting:17376␤  in sub bar at /tmp/7w65i9SzsN:1␤  in block <unit> at /tmp/7w65i9SzsN:1␤␤»
06:21 chenryn__ joined #perl6
06:22 Mouq So exported functions can call functions on whatever the using module defines $*FOO to be. I'm not sure if you can set a default dynamic variable, but you should be able too...
06:26 avuserow m: sub bar {say $*FOO;}; {$*FOO = "foo"}; bar; module x {bar;};
06:26 camelia rakudo-moar f2d4b8: OUTPUT«Dynamic variable $*FOO not found␤  in method <anon> at src/gen/m-CORE.setting:14623␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2823␤  in any find_method at src/gen/m-Metamodel.nqp:1001␤  in block <unit> at /tmp/AIijlftJ68:1␤␤»
06:27 Mouq m: module GetFoo { our $*FOO is export = "default foo" }; use GetFoo; say $*FOO
06:27 camelia rakudo-moar f2d4b8: OUTPUT«===SORRY!===␤Could not find GetFoo in any of: /home/camelia/rakudo-inst-1/languages/perl6/lib, /home/camelia/rakudo-inst-1/languages/perl6␤»
06:27 Mouq m: module GetFoo { our $*FOO is export = "default foo" }; import GetFoo; say $*FOO
06:27 camelia rakudo-moar f2d4b8: OUTPUT«(Any)␤»
06:27 Mouq ^^ Defines $*FOO, the value seems to be lost, though :(
06:28 avuserow m: our $*FOO; module GetFoo { our $*FOO is export = "default foo" }; import GetFoo; say $*FOO
06:28 camelia rakudo-moar f2d4b8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/QlmFewDPoM�Cannot import symbol $*FOO from GetFoo, because it already exists in this lexical scope�at /tmp/QlmFewDPoM:1�------> [32m export = "default foo" }; import GetFoo[33m�[31m; say …»
06:28 avuserow m: our $*FOO; module GetFoo { our $*FOO is export = "default foo" }; say $*FOO
06:28 camelia rakudo-moar f2d4b8: OUTPUT«(Any)␤»
06:28 avuserow m: our $*FOO; module GetFoo { $*FOO is export = "default foo" }; say $*FOO
06:28 camelia rakudo-moar f2d4b8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/zWh7gtOzYxâ�¤Two terms in a rowâ�¤at /tmp/zWh7gtOzYx:1â�¤------> [32mour $*FOO; module GetFoo { $*FOO [33mâ��[31mis export = "default foo" }; say $*FOO[0mâ�¤    expecting any of:â�¤        infix…»
06:28 avuserow m: our $*FOO; module GetFoo { $*FOO = "default foo" }; say $*FOO
06:28 camelia rakudo-moar f2d4b8: OUTPUT«default foo␤»
06:28 avuserow not quite what I want here
06:29 avuserow m: module GetFoo { GLOBAL::<$FOO> = "default foo" }; import GetFoo; say $*FOO
06:29 camelia rakudo-moar f2d4b8: OUTPUT«default foo␤»
06:29 avuserow from S02:Dynamic variable creation
06:30 avuserow I'm surprised that doesn't work with GLOBAL::<$*FOO>
06:31 kaleem joined #perl6
06:37 dalek rakudo/nom: 929945a | TimToady++ | src/core/ (3 files):
06:37 dalek rakudo/nom: add optional digits arg to .base
06:37 dalek rakudo/nom:
06:37 dalek rakudo/nom: Note that we add the argument even to Int.base because we want to be
06:37 dalek rakudo/nom: robust in the face of type narrowing.  it's just that the fractional
06:37 dalek rakudo/nom: digits on an integer, if requested, are always going to be 0s.
06:37 dalek rakudo/nom:
06:37 dalek rakudo/nom: Also, Real.base was not correctly rounding in the last place.
06:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/929945a000
06:37 dalek rakudo/nom: 94c51c7 | TimToady++ | src/core/Rational.pm:
06:37 dalek rakudo/nom: base-repeating puts parens around repeating group
06:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/94c51c77cf
06:37 dalek rakudo/nom: 322c46d | TimToady++ | src/core/Rational.pm:
06:37 dalek rakudo/nom: make sure stays Rat; stomp debugging fossil
06:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/322c46d548
06:38 TimToady b2gills: that should let you do arbitrarily precise formatting of Rats
06:40 TimToady well, it's not gonna find the repeating group for numbers tinier than about 1/(2**48) or so, since it's capped at 100000 digits for now
06:41 TimToady if someone wants to write some tests for .base($base,$digits) and .base-repeating($base), that'd be cool
06:41 TimToady likewise if someone wants to spec 'em
06:42 FROGGS[mobile] joined #perl6
06:42 xfix joined #perl6
06:44 kaleem joined #perl6
06:46 Foxcool joined #perl6
06:46 bjz joined #perl6
06:47 TimToady er...design 'em :)
06:47 xfix joined #perl6
06:48 vendethiel joined #perl6
06:55 [particle] joined #perl6
07:09 gfldex joined #perl6
07:15 rurban joined #perl6
07:17 diana_olhovik joined #perl6
07:26 Rounin joined #perl6
07:27 virtualsue joined #perl6
07:30 vendethiel joined #perl6
07:34 raydiak hm composable logging is hard
07:36 avuserow I'm finding it to be yet another lesson in API design being hard
07:36 avuserow if you have thoughts, I'm interested :)
07:37 jack_rabbit joined #perl6
07:37 fhelmberger joined #perl6
07:39 raydiak after bumbling around the problem for a while...that was my first articulate thought :)
07:39 raydiak just brainstorming, I have a few random ideas but they all have obvious problems
07:40 raydiak like a role "does Loggable" or so, might be interesting
07:40 raydiak but I don't want to tie people to OO style to be able to just log stuff
07:41 brrt joined #perl6
07:41 raydiak and for some reason the phrase "routing table" popped into my head, might be an interesting way to look at it
07:41 avuserow oh yeah, I want to do something like that
07:41 avuserow kind of inspired by web frameworks how they route URLs
07:42 avuserow but with $?PACKAGE (by default)
07:45 raydiak probably goes without saying but...we also need really, really sane defaults...Log::"Simple" should not require the user to conceive of "routing tables" unless they want to do complicated stuff
07:46 avuserow for my application at $dayjob, we have a bunch of processes, most of which have their own logfile. I'd like something like that to be like: Log::Simple.route('*', $appender)
07:47 avuserow we have one place that has some special package, which wants its own file
07:47 avuserow so that'd be a second call
07:47 avuserow potentially. just tossing out ideas
07:47 FROGGS joined #perl6
07:50 avuserow it seems to me that we really have 4 things that I want Log::Simple to be able to configure: package of some sort, output method, format of string, and logging level
07:51 avuserow does that seem like the right complexity?
07:51 raydiak we have different log levels...and different sources (the package by default)...and different destinations ($*OUT/ERR, some file, connection to external logging daemon, etc)...
07:52 raydiak right and formatting
07:55 avuserow I don't think we need anything like file-based configuration, custom logging levels, etc
07:55 darutoko joined #perl6
07:57 Guest45 joined #perl6
07:57 raydiak likely not
07:58 avuserow is this something you're interested in helping with?
07:58 baest joined #perl6
07:59 avuserow I know you mentioned a potential log4p6, not sure if you'd rather try to port something like that instead of make something new and simple
07:59 raydiak it's a bad time for me to make specific promises, but yes
07:59 raydiak that was adu++, I don't know much about other logging solutions :)
07:59 adu oh what?
08:00 telex joined #perl6
08:00 avuserow I'll just give you both commitbits :)
08:02 raydiak needs a solid plan though, it's all still very murky to me
08:02 prime- joined #perl6
08:03 avuserow okay. I'm going to sleep on it, and then see what makes sense
08:03 avuserow overall, do you like the exported function style of thing for the main usage?
08:04 raydiak yes it's very unobstrusive
08:04 raydiak unobtrusive
08:05 average joined #perl6
08:06 dalek doc: d81e22b | moritz++ | / (2 files):
08:06 dalek doc: Document missing DateTime methods.
08:06 dalek doc:
08:06 dalek doc: also correct some signatures, and remove from WANTED file
08:06 dalek doc: review: https://github.com/perl6/doc/commit/d81e22bd76
08:06 dalek doc: c59ffcf | moritz++ | lib/Type/DateTime.pod:
08:06 dalek doc: DateTime usage example
08:06 dalek doc: review: https://github.com/perl6/doc/commit/c59ffcf565
08:06 TimToady m: say (1/81).base(10,40)
08:06 camelia rakudo-moar 322c46: OUTPUT«0.01234567901234567​90123456790123456790123␤»
08:07 TimToady m: say (1/81).base-repeating(10)
08:07 camelia rakudo-moar 322c46: OUTPUT«0.(012345679)␤»
08:07 TimToady m: say (1/8100).base-repeating(10)
08:07 camelia rakudo-moar 322c46: OUTPUT«0.00(012345679)␤»
08:08 TimToady m: say (1/(2**32-1)).base-repeating(16)
08:08 camelia rakudo-moar 322c46: OUTPUT«0.(00000001)␤»
08:08 Sir_Ragnarok joined #perl6
08:08 TimToady m: say (1/(2**32-1)).base-repeating(10)
08:08 camelia rakudo-moar 322c46: OUTPUT«0.0(0000000023283064370807973754314699​618684756480782468915167839479438923178110020​975142256583818759905132176332439337003147075​186284974959279637541454200991767971076017238​915901919574453942378622931982069958928523109​97632404555946682709256811698259974759…»
08:09 moritz base-repeating? Is that new?
08:09 TimToady yes
08:09 TimToady m: say (1/6).base-repeating(10)
08:09 camelia rakudo-moar 322c46: OUTPUT«0.1(6)␤»
08:09 * moritz guesses the camelia rakudo rebuild works fine :-)
08:09 TimToady looks like :)
08:10 TimToady the second arg to .base is also new
08:10 TimToady and should probably be used by fmt
08:10 avuserow raydiak: okay, great. I'll start to think of an idea for configuration and work from there. I'll try to keep an updated tasks list in the repo. thanks for the interest :)
08:10 * avuserow sleep &
08:10 raydiak avuserow: I figure we're competing with things like say and note, and it's going to feel more clumsy if we don't provide something equally easy to reach for on the keyboard, so exported functions seem appropriate to me
08:11 raydiak g'night
08:11 TimToady m: say 42.7777777777e0.base(10)
08:11 camelia rakudo-moar 322c46: OUTPUT«42.77777778␤»
08:12 TimToady star: say 42.7777777777e0.base(10)
08:12 camelia star-{m,p} 2015.01: OUTPUT«42.77777777␤»
08:12 TimToady note the bug in star as well
08:12 TimToady m: say 42.7777777777e0.base(10,0)
08:12 camelia rakudo-moar 322c46: OUTPUT«Index out of range. Is: -1, should be in 0..Inf␤  in method <anon> at src/gen/m-CORE.setting:14663␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2823␤  in any find_method at src/gen/m-Metamodel.nqp:1001␤  in sub prefix:<++> at src/gen/m-…»
08:13 TimToady hmm
08:13 TimToady m: say 42.7777777777e0.base(16,0)
08:13 camelia rakudo-moar 322c46: OUTPUT«Index out of range. Is: -1, should be in 0..Inf␤  in method <anon> at src/gen/m-CORE.setting:14663␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2823␤  in any find_method at src/gen/m-Metamodel.nqp:1001␤  in sub prefix:<++> at src/gen/m-…»
08:13 TimToady coulda sworn that worked
08:14 moritz what's it supposed to do?
08:14 TimToady return 43.base(16), basically
08:14 TimToady m: say 42.7777777777e0.base(16,1)
08:14 camelia rakudo-moar 322c46: OUTPUT«2A.C␤»
08:16 TimToady m: say ^0
08:16 camelia rakudo-moar 322c46: OUTPUT«0..^0␤»
08:16 TimToady m: say (^0).list
08:16 camelia rakudo-moar 322c46: OUTPUT«␤»
08:17 raydiak adu: so we have commit bits to Log::Simple in case you wanted to work on a logging solution, pooling the effort there might be cool...in the mean time you have a PR on C::Parser which disables those says and fixes a bug :)
08:19 adu yey
08:19 TimToady I think I see the problem
08:20 adu raydiak: thanks :)
08:20 adu raydiak: and merged
08:25 average left #perl6
08:25 raydiak adu: you're quite welcome...thanks for making C::Parser; unfortunately I ought to sleep soon, but I started converting my 0mq binding-gen test script to use C::AST...will let you know how it goes/open PRs/issues whatever as I go
08:25 adu raydiak: cool :)
08:27 FROGGS adu / raydiak: it would be quite awesome to implement that using your parser... http://eli.thegreenplace.net/2012/12/17/dum​ping-a-c-objects-memory-layout-with-clang/
08:27 FROGGS (for C)
08:27 adu FROGGS: oOo
08:28 FROGGS as a helper for library binding authors and perhaps as a binding generator later too
08:28 wicope joined #perl6
08:28 adu well that could be a logging level
08:29 adu NOTE could be for structs and functions
08:29 adu and DEBUG could be for "we just encountered a greater than sign"
08:30 FROGGS hmmm, sounds good
08:30 raydiak oh that's neat
08:31 dalek rakudo/nom: e1eebb3 | TimToady++ | src/core/Real.pm:
08:31 dalek rakudo/nom: fix Real.base to round right when 0 frac digits
08:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1eebb3d3d
08:32 raydiak adu: btw here is where the output of the pre-C::AST script looked like, where I was only using the grammar by itself: https://gist.github.com/ra​ydiak/e6f2e34c0589620253c2
08:32 raydiak never actually tried using it yet tbh :)
08:32 raydiak I think we already have a 0mq module anyway though, iirc
08:33 adu raydiak: o wait, that's Perl6
08:33 adu *mind blown*
08:34 raydiak yeah *that's* what many of us want to use C::Parser for more than anything right now :)
08:39 vendethiel joined #perl6
08:40 FROGGS :o)
08:44 raydiak adu: the goal in that particular direction, or at least mine if nobody else does it faster and better, is to eventually end up with a decent general-purpose (not for a specific library) module on top of C::Parser for converting .h to nativecall .pm, or at least for doing most of the heavy lifting if full automation isn't practical
08:44 adu raydiak: kind of like swig?
08:44 FROGGS seems so :D
08:45 FROGGS raydiak: call it pig!
08:45 Ven joined #perl6
08:45 FROGGS (Perl 6 interface generator)
08:45 raydiak ha!
08:45 raydiak nice :)
08:45 * raydiak is looking up swig
08:46 FROGGS raydiak: so you try next to put class type names into the signatures instead of the opaquepointers?
08:49 raydiak FROGGS: yes that'd certainly be nicer
08:49 FROGGS but I see the level of complexity that it carries :o)
08:51 raydiak for simple structs and such it wouldn't be bad
08:54 virtualsue joined #perl6
08:55 raydiak adu: yeah like swig, though I hadn't really thought to have it autogen conversion code, since NativeCall largely handles such things for us, so kinda like a simpler version of the idea
08:56 adu raydiak: sw6p
08:57 adu or do you have a name in mind?
08:57 raydiak nope, that could work...
08:58 raydiak well, PIG was pretty good... FROGGS++ idea
08:59 tengignick joined #perl6
09:02 raydiak afk a few, preparing for bed
09:03 FROGGS swag would also work I guess
09:03 moritz panda, pig, FROGGS, camelia... seems' we're pretty animalistic in here :-)
09:03 FROGGS sleep well raydiak
09:03 FROGGS :D
09:04 FROGGS raydiak: swag is better me thinks :o)
09:09 zakharyas joined #perl6
09:13 adu swa6
09:15 adu good night
09:18 jnthn If it's changing C into Perl 6, you could call it Cameleon :P
09:20 rindolf joined #perl6
09:21 rindolf joined #perl6
09:25 raydiak I do like animals very much...
09:25 Ven joined #perl6
09:26 alini joined #perl6
09:31 [particle]1 joined #perl6
09:34 kaleem joined #perl6
09:34 spider-mario joined #perl6
09:39 Ovid joined #perl6
09:40 raydiak good night #perl6
09:40 abraxxa joined #perl6
09:41 espadrine joined #perl6
09:45 moritz www.p6c.org had 11GB traffic in January, hack.p6c.org had 4GB
09:45 moritz that's surprisingly little, IMHO
09:46 nwc10 so run a CPAN mirror? :-)
09:46 Mouq joined #perl6
09:46 moritz :-)
09:46 moritz though traffic to the debian mirror isn't included, because there's one inside the AS where the servers lives
09:46 moritz (and only traffic from/to the outside is counted)
09:47 jnthn Bah, just make and host Perl 6 screencasts. In 4K high definition. :P
09:47 moritz :-)
09:47 moritz it's *not* a problem that they use so little traffic
09:51 Hor|zon joined #perl6
09:52 [ptc] hrm, I get the Debian/Apache "it works!" page on hack.p6c.org
09:52 [ptc] is it supposed to do that??
09:57 moritz [ptc]: I haven't got around to configure it to show a different website
09:57 moritz [ptc]: it currently only runs an apache at all to be able to export home dirs
09:57 moritz http://home.p6c.org/~moritz/ like this
09:58 [ptc] ah, ok
10:04 _mg_ joined #perl6
10:07 moritz but maybe hack.p6c.org as a website should simply show the same as http://www.p6c.org/
10:08 nwc10 moritz: could you make it show the most useful "how to get involved" page?
10:08 rurban joined #perl6
10:08 arnsholt FROGGS: I'm a bit suspicious of the MoarVM patch you linked in the Zavolaj 32 bit issue
10:09 FROGGS arnsholt: why?
10:09 arnsholt For one thing, it should be work that way already
10:09 arnsholt And what's up with the "if (bits == 64 && spec->boxed_primitive == MVM_STORAGE_SPEC_BP_INT)" test?
10:09 arnsholt Both int and int64 will match that
10:10 FROGGS ohh
10:10 FROGGS good point
10:10 arnsholt Anyways, get_int should read the correct number of bits depending on the attribute type already, I think
10:10 arnsholt (At least it does on Parrot, IIRC)
10:11 arnsholt But it fixes things on 32-bit for you?
10:11 FROGGS but it does not work that way already to pick that sentence... we read in 64 bits when we are meant to read 32
10:11 FROGGS arnsholt: it does
10:12 arnsholt Hmm. I'll try to look at it this weekend
10:12 FROGGS though, the proper solution is of course to get the knowledge about int being 32..* bits down to the vm somehow
10:12 FROGGS because int can happily be 128 in theory
10:12 FROGGS 128bits*
10:13 FROGGS so, we really really need a 'long' type for library bindings
10:14 FROGGS int itself is nice to write optimizable code, but it does not map to C semantics
10:18 sqirrel__ joined #perl6
10:22 dalek nqp: 71e9494 | lizmat++ | docs/ops.markdown:
10:22 dalek nqp: Document nqp::lstat
10:22 dalek nqp: review: https://github.com/perl6/nqp/commit/71e9494217
10:25 FROGGS arnsholt: look at #moarvm, we get to a better solution me thinks
10:25 FROGGS arnsholt: now it just needs to work :o)
10:30 pecastro joined #perl6
10:38 tengignick joined #perl6
10:54 alini joined #perl6
10:58 Ven joined #perl6
11:03 masak good noon, #perl6
11:05 vendethiel joined #perl6
11:05 moritz \o masak
11:06 Ven o/ masak
11:07 jnthn o/ masak
11:08 coffee` joined #perl6
11:11 [ptc] moritz: I'm currently trying to get the syntax highlighting in htmlify working.  Question: is it possible to use methods in the namespace of the module where the callback is defined?
11:11 chenryn__ joined #perl6
11:11 [ptc] moritz: for instance, can one call from htmlify the node2inline (or other) method from Pod::To::HTML?
11:11 masak [ptc]: no, but you can pass `self` to the callback.
11:12 [ptc] moritz: that could work.  I'll try it out.  Thanks!
11:12 masak I'm over here :)
11:12 masak you're welcome -- good luck.
11:12 [ptc] masak: sorry!
11:12 jnthn The m-space is crowded... :P
11:12 [ptc] was tab completion in irssi  :-/
11:14 [ptc] ... or just a bad case of PEBKAC
11:21 sqirrel__ joined #perl6
11:27 masak no worries ;)
11:27 masak we find it amusing, most of the time.
11:28 masak in fact moritz and I speculate that we might be the Heir of Gryffindor.
11:29 nwc10 masak: for some value of noon, strangely consistent with the exact time that various sirens are tested in Schwechat every Saturday.
11:35 masak mwhahaha
11:35 masak er. I mean. wasn't me.
11:40 jnthn You gotta admit though, "Schwe chat" does sound like something involving Swedes making noise :P
11:40 lizmat .tell nine Thinking about P6 concurrence and Inline::Perl5
11:40 yoleaux lizmat: I'll pass your message to nine.
11:41 lizmat .tell nine You might want to make sure that all Inline::Perl5 accesses are done from the same $*THREAD.id
11:41 yoleaux lizmat: I'll pass your message to nine.
11:41 lizmat jnthn: am I making sense here?  ^^^
11:42 lizmat thinking about calling Perl 5 from start blocks
11:42 lizmat which would basically give you the mess that perl 5.005 threads were
11:42 lizmat nwc10: thoughts?  ^^^
11:43 jnthn lizmat: From what I've heard so far from folks doing Perl 6 threading + Inline::Perl5, Perl 5 seems to care more than you only ever call into a given interpreter from one thread at a time
11:43 nwc10 lizmat: right now I'm thinking `find . -name .git -prune -o -type f -not \( -perm 0644 -o -perm 0755 \) -exec ls -l \{\} \+`
11:43 jnthn lizmat: But if it migrates over threads over time, it doesn't appear to get so upset...
11:43 jnthn lizmat: Just matters 2 threads ain't in there at once
11:44 jnthn lizmat: In which case having a lock protecting usage of the interpreter would suffice.
11:44 lizmat but if I understand P5 interpreters correctly, that would mean that global var changes in one interp are not seen in the other
11:44 btyler lizmat: we actually hacked up a pretty successful prototype of a perl5 worker pool using OO::Monitors to disallow multiple-thread access to the same Inline::P5 object
11:44 lizmat ok, so my worries are moot
11:44 lizmat cool
11:45 btyler unfortunately our $work perl is compiled without multiplicity, so we couldn't take the experiment much further
11:46 lizmat but at $work, you build your own Perl's anyway, right ?
11:46 lizmat so building one *with* multiplicity, would just make life on the sysadmins a bit more difficult  :-)
11:46 btyler yes, so something still -might- happen, it just becomes confusing if there's a seperate build of perl5 + associated libs specifically for use with inline::p5
11:46 btyler right :P
11:47 lizmat gotcha
11:47 lizmat was the difference between building with / without multiplicity actually measurable ?
11:48 [Sno] joined #perl6
11:50 btyler I don't know when it was last measured, but the people who know p5 guts said it would be certainly be a hit. something between 2% and 10%, depending who you ask
11:55 nwc10 lizmat: thoughts on what?
11:55 lizmat calling Inline::Perl5 code from start blocks in P6
11:55 nwc10 I have no idea what might go wrong with that.
11:56 lizmat but there's potential, right ?  :-)
11:56 nwc10 as far as thread IDs - I think that mod_perl2 multithreaded pushes the limits of what can be done
11:56 nwc10 IIRC it changes which OS thread is associated with an interpreter
11:56 nwc10 rules being
11:56 nwc10 1) only one OS thread can run the interpreter at any time
11:57 nwc10 2) you must update the Thread Local Storage used by the Perl 5 VM so that it's consistent
11:57 nwc10 lizmat: there's always potential. But I think that the only real potential is 1) which thread is running it 2) managing to re-enter the same Perl 5 interpreter in ways it didn't expect
11:58 lizmat is my thinking correct that each P5 interpreter has its own "World" ?   (aka globals, code refs, etc. ?)
11:58 xiaomiao joined #perl6
11:58 nwc10 lizmat: when compiled with -DMULTIPLICITY, yes
11:58 nwc10 otherwise some things are in static variables
11:59 lizmat ok
11:59 btyler you get segfaults very quickly if you try to create multiple Inline::Perl5 objects against a perl5 compiled without multiplicity
12:00 btyler you can hear the stomping in the background
12:00 lizmat and if you *do* have multiplicity, you have different worlds in each thread
12:00 lizmat much like ithreads
12:01 lizmat so when we get P5 hipsters coming along combining their P5 code with P6 concurrency
12:01 nwc10 ithreads builds atop multiplicity
12:01 lizmat it's most likely to become a big disappointment
12:01 lizmat nwc10: yeah, ithreads are basically, spawn new interpreter, copy everyting from parent interpreter, right ?
12:02 nwc10 yes, exactly that, and IIRC "keep the mapping of what was copied to where"
12:02 nwc10 (for return values)
12:03 lizmat ack, and create a hidden interpreter for sharing values through tie()
12:03 btyler this works pretty well: https://gist.github.com/kanat​ohodets/66978923c5006b45a67b (perl 5 worker pool)
12:03 nwc10 I think that's technically in threads::shared, but yes, that's the implemnentation
12:03 nwc10 it's not directly tie, but it's built on the same internals
12:03 btyler if you crank up the number of workers in the pool really high, you start seeing problems from OO::Monitors, but that's not too shocking (written in a few hours for a conf presentation)
12:04 * jnthn will give the concurrency stuff some love once he's done with natives and got some headway on NFG :)
12:06 btyler lizmat: fwiw, I didn't have any expectation of cross-thread state between perl5 VMs when wrangling them from multithreaded p6
12:07 nwc10 it's not going to be possible to do anything better than ithreads within Perl 5, even if embedded
12:07 nwc10 *however*
12:08 nwc10 I think you will be able to orchestrate Perl 5 threads using Perl 6 concurrency, if each Perl 5 thread is only communicating with Perl 6
12:08 H2O1 joined #perl6
12:08 nwc10 *that* could be quite a win.
12:08 jnthn nwc10: Yes, I think that's the sane approach.
12:08 |Tux| if inside a «for @ch -> $f { ... }» I push onto @ch, will it be visited inside the block (due to the loop being lazy)?
12:08 H2O1 left #perl6
12:08 lizmat so each P5 thread would only do lexicals ?
12:09 nwc10 however, the downside is that it ought to be possible "post Christmas" to optimise bits of the implementation of Inline::Perl5 to avoid copying data between the two interpreters
12:09 nwc10 but such an optimisation would prevent the orchestration idea
12:09 nwc10 you can either avoid copies
12:09 nwc10 or avoid free-running threads
12:09 nwc10 in the end, free-running threads might be the bigger win
12:10 nwc10 KISS on the Inline::Perl5, lots of copying, and then give a business case for migrating
12:11 |Tux| hmm, it does not
12:11 dalek Heuristic branch merge: pushed 169 commits to doc/add_pygments_highlighting by paultcochrane
12:13 |Tux| https://gist.github.com/Tux/f75151ca740edc6e79e3
12:13 lizmat |Tux| could you try with --optimize=0 ?
12:14 jnthn I highly doubt that's opt related :)
12:14 ggoebel111111114 joined #perl6
12:14 jnthn It has to be a literal range as the argument to for
12:14 |Tux| same
12:18 lizmat jnthn: just making sure  :)
12:20 lizmat ok, seems P5 gets it right  (if we would consider that the right behaviour, of course)
12:21 jnthn I'm not sure I consider writing code that depends on such things as "right behavior" :P
12:24 lizmat m: my @a = ^5; while @a { {.say; @a.push(5..10) if $_ == 4}(@a.shift) } # |Tux|  maybe this way?
12:24 camelia rakudo-moar e1eebb: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
12:24 vendethiel joined #perl6
12:25 _mg_ joined #perl6
12:25 |Tux| lizmat, no, I need the rest of the lsit intact, as I also use indices to surrounding elements
12:26 jnthn If you're using indices anyway, then a loop (...) { } that checks against @a.elems each time round might be easier.
12:26 |Tux| that is what I am doing right now :)
12:28 Mouq joined #perl6
12:35 lizmat avuserow: shouldn't a generic logger just be a Supply, to which anybody can create a .tap ?
12:36 lizmat a tap that would note() everything, or one that would say() everything, or one that would say to a specific (perhaps dynamic) handle ?
12:39 dalek rakudo/newio: e5c533c | timotimo++ | src/Perl6/Grammar.nqp:
12:39 dalek rakudo/newio: hint at "my Type sub name" when writing "sub Type name"
12:39 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/e5c533cf2d
12:39 dalek rakudo/newio: f2d4b88 | timotimo++ | src/Perl6/Grammar.nqp:
12:39 dalek rakudo/newio: tune the error message some more
12:39 lizmat sorry dalek
12:39 rmgk_ joined #perl6
12:39 dalek joined #perl6
12:40 kurahaupo1 joined #perl6
12:46 dalek specs/newio: faedde9 | lizmat++ | S16-io.pod:
12:46 dalek specs/newio: .IO.l-o doesn't make sense
12:46 dalek specs/newio: review: https://github.com/perl6/specs/commit/faedde9c70
12:47 Woodi joined #perl6
12:49 timotimo o/
12:49 dalek rakudo/nom: 8895666 | timotimo++ | src/Perl6/Grammar.nqp:
12:49 dalek rakudo/nom: important not to succeed this match when not panicking
12:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8895666398
12:50 |Tux| @keep = @ch[ $i .. * ]; <= is that legal for index $i till the end?
12:50 lizmat yeah?
12:51 lizmat m: my @a = ^10; my $i = 3; say @a[ $i .. * ]
12:51 camelia rakudo-moar e1eebb: OUTPUT«3 4 5 6 7 8 9␤»
12:52 |Tux| toppie. that was intuitive :)
12:52 lizmat m: my @a = ^10; my $i = 3; say @a[ $i .. * ]:splice   # might be a nice addition
12:52 camelia rakudo-moar e1eebb: OUTPUT«Unexpected named parameter 'splice' passed␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3343␤  in block <unit> at /tmp/yr7Umgc7Mn:1␤␤»
12:53 lizmat although technically hard to do, as @a could be aliased to an infinite list
12:54 lizmat m: my @a = ^Inf; my $i = 3; say @a[ $i .. * ]
12:54 lizmat m: my @a := ^Inf; my $i = 3; say @a[ $i .. * ]
12:54 lizmat m: my @a := ^Inf; my $i = 3; say @a[ $i .. 10 ]
12:54 lizmat sorry camelia  :-(
12:54 camelia rakudo-moar e1eebb: OUTPUT«(timeout)»
12:54 camelia rakudo-moar e1eebb: OUTPUT«(timeout)»
12:54 camelia rakudo-moar e1eebb: OUTPUT«3 4 5 6 7 8 9 10␤»
12:55 FROGGS m: my @a = ^10; my $i = 3; say @a[ { say $_ }; $i .. * ]
12:55 camelia rakudo-moar e1eebb: OUTPUT«10␤␤»
12:55 Ven joined #perl6
12:57 timotimo what do we expect :splice to do?
12:57 MadcapJake joined #perl6
12:59 kurahaupo1 joined #perl6
13:01 moritz error out
13:02 |Tux| no goto in perl6?
13:03 Ven |Tux|: "not yet"
13:03 |Tux| ok
13:03 lizmat @a = ^100; my @keep = @a[ ^10 ]:splice; say @a.elems # 90
13:06 FROGGS |Tux|: if you are searching for 'goto &subref' there is callsame, callwith, nextsame and nextwith
13:07 |Tux| I was looking for the old goto
13:07 FROGGS goto is like eval in P5, it had to serve more than one purpose
13:07 FROGGS k
13:07 |Tux| now I need a nested loop
13:07 |Tux| with additional indent :(
13:07 FROGGS and with your indentation style :o)
13:07 * masak usually prefers the loop
13:07 FROGGS me too
13:08 |Tux| well, it is inherent to playing with $/
13:08 |Tux| you might need to read more, but one doesn't know ahead
13:09 lizmat |Tux|: generic goto is not implement
13:09 lizmat but labeled loops and "next label" *are*
13:09 |Tux| that sounds evil :)
13:10 FROGGS aye, the exception stuff and the labels are there, one would "just" need to get his/her hands dirty :o)
13:10 lizmat m: LABEL: for ^10 { next LABEL if $_ < 5; .say }
13:10 camelia rakudo-moar e1eebb: OUTPUT«5␤6␤7␤8␤9␤»
13:10 |Tux| «LOOP: loop {} next LOOP;» allowed?
13:10 FROGGS m: LABEL: for ^10 { next LABEL if $_ < 5; .say }; say LABEL
13:10 camelia rakudo-moar e1eebb: OUTPUT«5�6�7�8�9�Label<LABEL>(at /tmp/JqSVfQf6Wi:1, '[32m[33m�[31mLABEL[32m: for ^10 { next LAB[0m')�»
13:10 FROGGS |Tux|: that does not make sense
13:10 lizmat m: LABEL: for ^10 { next LABEL if $_ < 5; .say }; next LABEL
13:10 camelia rakudo-moar e1eebb: OUTPUT«5␤6␤7␤8␤9␤»
13:10 |Tux| yes, it does: goto LABEL :P
13:11 FROGGS lizmat: that should blow up
13:11 lizmat m: LABEL: for ^10 { next LABEL if $_ < 5; .say }; say "done"; next LABEL; say "after label"
13:11 camelia rakudo-moar e1eebb: OUTPUT«5␤6␤7␤8␤9␤done␤»
13:11 FROGGS |Tux|: not in my world :o)
13:11 vendethiel joined #perl6
13:11 FROGGS lizmat: it misses the handle and exists
13:11 FROGGS there is a ticket for that AFAIK
13:11 * |Tux| regrets the shalow imagination of FROGGS :P
13:11 FROGGS *g*
13:13 dalek rakudo/newio: 9389a54 | lizmat++ | src/core/IO.pm:
13:13 dalek rakudo/newio: Remove some internal helper subs we don't need
13:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/9389a546dd
13:13 dalek rakudo/newio: 0a42459 | lizmat++ | src/core/IO (2 files):
13:13 dalek rakudo/newio: Fix two missed .i/.v -> .inode/.device refactors
13:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/0a42459d6e
13:13 dalek rakudo/newio: 688e218 | lizmat++ | src/core/IO (3 files):
13:13 dalek rakudo/newio: Implement IO.l-* methods as in S16-io (newio)
13:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/688e218d7a
13:13 |Tux| is $io.get auto-chomped?
13:14 lizmat yes, unless you specify :!chomp
13:14 |Tux| that explains a lot ...
13:15 * masak likes it
13:15 * Ven kinda likes that lizmat's internal helpers are CL-CASED
13:16 lizmat afk for a bit
13:16 |Tux| can I - already having an IO - (temporarily) - disable that using a method?
13:17 |Tux| «my Bool $chomped = $io.chomp;» => Cannot modify an immutable Bool
13:18 |Tux| http://doc.perl6.org/language/io is empty now
13:23 _mg_ joined #perl6
13:25 |Tux| https://gist.github.com/Tux/4dbf087e5718a1dfee7f - My opinion on exit/return/dia before else
13:30 |Tux| IO::Handle does IO => has $.chomp = Bool::True;
13:30 |Tux| should that not be has $.chomp is rw = Bool::True;
13:33 |Tux| Grrr, auto-chomp cost me 1 hour of debugging
13:33 * |Tux| learned a lot though
13:34 rurban1 joined #perl6
13:37 timotimo lizmat: fwiw, in the code tux posted, you could probably do well by using nqp ops like "eqat"
13:37 larion joined #perl6
13:38 timotimo i remember building an optimization that'll turn eqat with a one-character-long needle into an ordat op instead
13:40 Ven |Tux|: your comment line 4 seems misguided
13:40 Ven or maybe it's me instead
13:41 timotimo eqat also creates one fewer P6Str object for comparison than eq with a substr
13:41 |Tux| might be over-annoyed. It really bothers me to see «if (expression) { return; } else { statement; }»
13:48 virtualsue joined #perl6
13:49 jnthn afk until late-ish this evening o/
13:52 FROGGS o/
13:53 Mr0rris0 joined #perl6
13:53 Mr0rris0 joined #perl6
13:54 Mr0rris0 joined #perl6
13:55 Mr0rris0 joined #perl6
13:55 Mr0rris0 joined #perl6
13:56 vendethiel joined #perl6
13:56 Ven joined #perl6
13:58 H2O1 joined #perl6
13:59 timotimo the optimization i talked about there is only on parrot :\
13:59 timotimo i wonder if i should port it
13:59 tinyblak joined #perl6
14:00 H2O1 left #perl6
14:01 rurban joined #perl6
14:03 colomon |Tux|: love your reworking of the conditionals on MAKE-ABSOLUTE-PATH, but not at all sure I like using “and” instead of “if”
14:04 |Tux| whatever
14:04 |Tux| thank you!
14:12 Hor|zon joined #perl6
14:12 masak colomon: if it were anyone else, I'd agree with you completely that it's better to keep to the coding style established by the group...
14:13 lizmat |Tux|: in the newio branch MAKE-ABSOLUTE-PATH is reimagined
14:13 masak colomon: ...but |Tux| has set down his coding style in stone once and for all 20 years ago, and it's right by definition, so... not much to do.
14:14 moritz old habits die hard
14:15 rindolf joined #perl6
14:16 |Tux| masak: I have no preference between if and and, but with and I do not need braces
14:16 colomon OMG, I just realized *I’ve* been coding in Perl for 20 years now.  Where did the time go?
14:16 masak oh, sorry, 30+ years ago.
14:17 |Tux| and minor things *did* change during my programming years, but not the logic behind the style
14:17 masak somehow that does not reassure me.
14:17 |Tux| again, are there compelling reasons why IO::Handle.chomp not is rw?
14:18 dalek rakudo/newio: ae33f3d | lizmat++ | src/core/IO.pm:
14:18 dalek rakudo/newio: Refactor MAKE-ABSOLUTE-PATH with Tux++ inspiration
14:18 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/ae33f3dd43
14:19 |Tux| :)
14:19 |Tux| compact!
14:19 masak |Tux|: "Because braces are just syntactic sugar to keep a block together, it should visually also bind to the block, and not to the conditional." -- from http://tux.nl/style.html
14:19 masak |Tux|: I don't understand the connection between those two things in that sentence.
14:20 |Tux| neither does the code examples?
14:20 masak |Tux|: I could equally well imagine a sentence saying "Because braces are just syntactic sugar to keep a block together, it should of course not be indented together with the code inside the block."
14:20 masak and that would actually make more sense to me.
14:21 |Tux| as {} bind the statements inside the block, IMHO it belongs to the block
14:21 kjs_ joined #perl6
14:21 dalek rakudo/nom: 742b018 | lizmat++ | src/core/IO/Handle.pm:
14:21 dalek rakudo/nom: Make .chomp rw, Tux++
14:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/742b0185f0
14:21 masak hence your "Because..." sentence does not feel like an explanation to me.
14:21 lizmat afk for an hour or so
14:21 masak emotionally, the indented '}' brace in those example looks off-putting to me. and rationally, I fail to see the benefit.
14:22 |Tux| lets agree to disagree. If you don't understand how my mind works, I'm ok with that
14:22 masak socially, you're putting yourself in a 1% category, which makes you likely to grate against most people's coding style out there.
14:22 masak which, of course, is your choice.
14:22 pecastro joined #perl6
14:23 masak |Tux|: I wasn't aiming for understanding how your mind works. far less ambitiously, I was trying to see the connection between the thing before the comma and the thing after in that sentence.
14:23 masak still don't see it.
14:23 |Tux| hey, I'm not forcing *anyone* outside of my own projects to follow my style, and I go though big trouble to try to match existing coding style when submitting patches (which is *very* hard for me because of the missing logic)
14:23 muraiki do we need a perl 6 version of gofmt?
14:23 muraiki :)
14:24 moritz muraiki: timtowtdi
14:24 |Tux| if statements inside a block indent at the same level, and the braces are part of the block (as I see it), they ought to also indent at the same level
14:24 |Tux| makes more sense now?
14:24 masak |Tux|: I'm glad to hear you're not forcing anyone. hm. just consider this your bi-monthly remainder that someone out there considers your coding style to be very odd.
14:24 muraiki I also consider that very odd. so two people
14:24 muraiki no offense intended :)
14:25 masak |Tux|: yes, that makes more sense.
14:25 |Tux| pheeuw :)
14:25 * |Tux| updates the page ...
14:25 masak |Tux|: I... I don't think I consider the '}' to be "part of the block" in that sense.
14:25 |Tux| I do understand that!
14:25 masak it's sort of already ending the block, so it's definitely not "inside" the block, if you see what I mean.
14:26 masak to me, the symmetry of the '{' not being indented and the '}' not being indented is pleasing and easy to explain.
14:27 |Tux| paragraph added
14:28 alini_ joined #perl6
14:28 masak nice.
14:28 masak yes, I understand your reasoning better now.
14:28 masak it's just the premise I disagree with.
14:32 |Tux| thanks for asking though and being persistent in having me explain
14:34 |Tux| right, so chomp is now rw, but it still doesn't work as I hoped
14:35 |Tux| https://gist.github.com/Tux/9e4a125bfe499e63c9eb
14:35 |Tux| apart from style and indent :) what is wrong there?
14:38 Hor|zon joined #perl6
14:40 skids joined #perl6
14:45 pdcawley joined #perl6
14:48 El_Che pdcawley: I saw yesterday your oscon presentation! :)
14:54 pdcawley El_Che: Which one?
15:04 xiaomiao joined #perl6
15:04 pmurias joined #perl6
15:10 xiaomiao joined #perl6
15:11 Ven joined #perl6
15:11 adu joined #perl6
15:13 chenryn__ joined #perl6
15:15 xfix joined #perl6
15:15 masak |Tux|: it's admirable that you have a consistent style. compared to that, my (and others') individual disagreements aren't that important. I'd rather someone be consistent and wrong, than inconsistent.
15:16 |Tux| me too
15:16 |Tux| hé, we agree!
15:20 pdcawley I used to think that too. Then I got stuck with our current work style and it makes me want to inflict pain every time I try to read it - completely misleads me a lot of the time too.
15:20 pdcawley Actually had to hack cperl-style's internals to make it so that it could actually indent in that style too.
15:22 masak pdcawley: I'm not saying that all styles are equally pleasant, or equally helpful.
15:23 pdcawley masak: I know. But there is a point at which the difficulty of reading a style trumps the fact that it's being applied consistently.
15:23 pdcawley I know this, because I've experienced it :)
15:23 masak I even find it likely that, weren't it for all these meddling programmers and their pernicious "opinions", there's one best possible coding style. or at least a small set of them.
15:23 alini_ joined #perl6
15:24 pdcawley masak: the work style is sane, _except_ that the closing braces/parens aren't outdented - they're at the same indentation level as the code in the block that they're closing.
15:25 pdcawley it completely misleads me every time I try to get a high level view of code.
15:25 masak pdcawley: the *horror*! o.O
15:25 pdcawley masak: :)
15:25 pdcawley It shouldn't be awful, but it is.
15:26 masak fortunately, no-one from the last couple of hours of #perl6 backlog would think to do something that awful.
15:26 masak much less advocate it. :P
15:26 FROGGS *g*
15:26 Mouq joined #perl6
15:26 * pdcawley taps his sarcasm detector and wonders if he missed something :)
15:27 masak at this point, I encourage you to backlog.
15:27 * FROGGS stays silent then
15:27 Ven .oO( the froggs know )
15:27 FROGGS Ven: he always knows :o)
15:28 pdcawley masak: Ah... I don't have that backlog in this client... probably for the best :)
15:28 masak pdcawley: http://irclog.perlgeek.de/perl6/2015-02-13
15:28 masak pdcawley: maybe from here: http://irclog.perlgeek.de/p​erl6/2015-02-13#i_10110933
15:30 pdcawley masak: oh god. That's utterly evil.
15:30 FROGGS :P
15:31 El_Che pdcawley: the one about data type and your RSI :)
15:31 pdcawley El_Che: Ah. Yes.
15:32 |Tux| pdcawley, I get misleaded the other way round all the time
15:32 pdcawley |Tux|: I'm sure. It's such an important cue.
15:32 wicope joined #perl6
15:32 |Tux| It shouldn't be awful, but it is.
15:33 FROGGS |Tux|: but how do you spot where a block ends when the closing curly is not aligned to the keyword that introduced the block?
15:33 araujo joined #perl6
15:33 araujo joined #perl6
15:33 pdcawley |Tux|: And you probably suffer more - you're in a minority when it comes to } style.
15:33 |Tux| naturally
15:33 |Tux| as the answer to both pdcawley and FROGGS
15:34 FROGGS hehe
15:34 |Tux| 30+ years of being used to it
15:34 FROGGS yeah, probably
15:34 masak |Tux|: how do you indent XML?
15:34 |Tux| likewise :)
15:35 masak ...the closing tag is aligned with its contents?
15:35 |Tux| yep
15:35 masak I'm at a loss for words.
15:35 |Tux| same for html
15:35 |Tux| got to that style url and look at the source
15:36 |Tux| and for json idem
15:37 b2gills m: (2264129042459209/36561584400​62975).base-repeating(36).say
15:37 camelia rakudo-moar 742b01: OUTPUT«0.(MAKEITSTOP)␤»
15:37 masak |Tux|: why is the closing part naturally (in your mind) part of the content, but not the opening tag?
15:38 Mouq b2gills: :D
15:38 * pdcawley discovers that |Tux| also writes `funcname (@args)', which may even be worse than the } part. Though less likely to completely throw me when reading code.
15:39 |Tux| most likely because xml and html (with somewhat verbose closing t
15:39 b2gills I think of the opening and closing delimiters as equal, so I indent them equally
15:39 masak pdcawley: there's a Perl 6 slang to accommodate for |Tux|'s desire for whitespace in that spot.
15:39 |Tux| pascal looks so much better this way:
15:39 |Tux| IF expression THEN
15:39 |Tux| BEGIN
15:39 |Tux| ....
15:39 |Tux| END;
15:39 |Tux| that is where it all started
15:40 btyler I started writing `funcname (@args)` in javascript, and took a liking to it...unfortunately few other languages support that style
15:40 masak |Tux|: seems to me you're applying that criterion on all other languages, when they don't look like Pascal.
15:40 |Tux| pdcawley, did you ever took the time to read http://tux.nl/style.html ?
15:40 pdcawley |Tux|: skimming it.
15:40 btyler it's a nice bit of visual differntiation in js for definition vs invocation for me
15:40 FROGGS |Tux|: that reminds me of a dailywtf where somebody #defined BEGIN and END to { and } respectively to write BASIC style code in C
15:40 Kristien joined #perl6
15:41 pdcawley btyler: ?
15:41 * |Tux| has «#define unless(e) if (!(e))» in C :)
15:41 FROGGS |Tux|: we all love 'unless' :o)
15:41 pdcawley generally, I do 'function foo (args...) { ... }' when defining a function, and 'foo(...)' when applying it in JS.
15:41 Kristien m: say 2.sqrt * 2.sqrt == 2
15:41 camelia rakudo-moar 742b01: OUTPUT«False␤»
15:42 btyler pdcawley: exactly :)
15:42 btyler space between foo and (args...)
15:42 pdcawley btyler: Yeah, but |Tux| is talking about using the whitespace in the _call_, not the definition.
15:42 b2gills Mouq: I didn't come up with it Kristien did http://irclog.perlgeek.de/perl6/​search/?nick=&amp;q=MAKEITSTOPM
15:43 FROGGS m: say 2.sqrt.WHAT
15:43 camelia rakudo-moar 742b01: OUTPUT«(Num)␤»
15:43 btyler oh, missed that aspect of Slang::Tuxic
15:44 pdcawley I'm slightly confused to see |Tux| railing against GNU style indentation - AFAICT almost nobody actually uses that style. You're far more likely to see K&R style.
15:44 hoelzro o/ #perl6
15:45 |Tux| what is the default auto-indent style for vim and emacs?
15:46 pdcawley Not one any sane person uses :)
15:46 |Tux| heh again, something to agree on :)
15:46 pdcawley if (...)\n  {\n    code;\n  }
15:47 pdcawley ie, the braces floating on a half-indent and on their own bloody line.
15:47 FROGGS that's GNU style, isnt it?
15:47 Kristien b2gills: wrong
15:48 chenryn__ joined #perl6
15:48 b2gills brought to attention then
15:48 masak btyler: in Perl 6, it's fine to leave out or put in whitespace between 'foo' and '()' in the *definition* of a routine.
15:48 |Tux| yeah, so much for consistency :P
15:48 pdcawley FROGGS: yes. Which is the style that |Tux| specifically refers to in his article about indent styles.
15:48 masak btyler: in all cases except one: when the name ends with something like ':bar'. then the whitespace is mandatory, or the colon thing will gobble the '()'
15:49 Kristien b2gills: yes!
15:49 adu joined #perl6
15:49 pdcawley masak: What's legal in a symbol name these days?
15:50 * pdcawley rather likes haskell/lisp's approach to tokenising symbols :)
15:50 Ven haskell's approach?
15:50 Kristien I like C's apart from macros.
15:50 pdcawley Ven: basically if it starts with a letter, the symbol runs 'til there's whitespace (or possibly an open paren/bracket)
15:51 Kristien That's not the case in Haskell.
15:51 Kristien a+b is three tokens in Haskell.
15:51 Ven ^
15:51 Ven that's the case in agda, though
15:51 pdcawley Kristien, but a' is one.
15:51 Ven yeah, but ' is an exception...
15:51 Kristien yes, but + is not whitespace or a parenthesis
15:51 Ven a-z A-Z _ '
15:52 pdcawley Ven: Really? You can't have "test?" as a function name?
15:52 Kristien Ven: digits
15:52 Ven we have ' in perl6 as well, tho we dont allow primes
15:52 Ven pdcawley: no
15:52 Ven Kristien: whoops, right
15:52 pdcawley Ven: fair enough.
15:52 masak pdcawley: same as most languages: alphanumerics and underscores, except first has to be alphabetic.
15:53 Kristien I like identifiers restricted to only letters, digits, underscores and question marks that are available in ASCII.
15:53 geekosaur if you want to be truly pedantic, it uses the Unicode letter and digit classes
15:53 masak pdcawley: we also allow hyphen and apostrophe before alphabetics.
15:53 geekosaur andlikewise operators are Unicode symbol class
15:53 pdcawley so $foo-bar is legal.
15:53 masak yes.
15:53 pdcawley $foo-9 is $foo - 9
15:53 masak m: say my $foo-bar = "OH HAI"
15:53 camelia rakudo-moar 742b01: OUTPUT«OH HAI␤»
15:53 masak m: say my $foo-9 = "OH HAI"
15:53 camelia rakudo-moar 742b01: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/ci4b4EHsnh:1␤␤Cannot modify an immutable Int␤  in block <unit> at /tmp/ci4b4EHsnh:1␤␤»
15:54 pdcawley text->str parses as  text -> str, I assume then.
15:54 masak aye.
15:54 geekosaur that error seems a little LTA
15:54 pdcawley $value.zero?
15:54 masak pdcawley: '.' is attr access.
15:54 masak pdcawley: '?' is not allowed in identifiers.
15:55 pdcawley masak: Aw :)
15:55 masak pdcawley: make a slang :)
15:55 pdcawley One of the bits of ruby/scheme style I rather like.
15:55 pdcawley masak: I'm more likely to make a slang for control structures than for tokenization rules :)
15:56 pdcawley control structures are additive (and composable potentially). Tokenisation is just too far down the stack.
15:56 b2gills depending on the control structures you might be able to add them without slangs
15:57 pdcawley b2gills: Point.
15:57 masak FROGGS: if you build a Slang::Piersing that allows '!' and '?' at the end of identifiers (including subs and methods), I will buy you a book. :)
15:57 masak (or anyone else, for that matter)
15:57 pdcawley masak: So... what's legal in an operator name :)
15:57 masak pdcawley: almost anything.
15:58 timotimo nonprintables aren't allowed though
15:58 pdcawley timotimo: because we're crazy, but not _that_ crazy.
15:58 Ven masak: would you? *g*
15:58 masak Ven: I've been known to before.
15:59 masak also, I'm all for imbuing our approach to slangs with a sense of fun and play.
15:59 masak &
16:00 * pdcawley is surprised to see that for all his contrarianism, |Tux| doesn't go with "foo "n  . "bar" in his style and leaves operators hanging out on the right hand margin and getting cuddly with the end weight problem.
16:00 Kristien cool, LLVM optimised my naive non-tail recursive factorial implementation into a tail recursive one and vectorised it
16:01 |Tux| maybe that doesn't bother me
16:01 |Tux| not do I care if people use tables and/or mixed whitespace
16:01 |Tux| tabs
16:02 timotimo Kristien: i'm a bit worried we may never be able to get that kind of sophisticated optimization into moarvm
16:02 timotimo not enough money and people-time :(
16:02 Ven timotimo: skilled-people-time* :P
16:02 Kristien http://coliru.stacked-croo​ked.com/a/22a853e80acbf99e
16:02 Kristien it generates quite a lot of code though
16:02 Kristien I wonder whether the vectorisation buys anything
16:04 Kristien Optimising non-tail recursive to tail recursive functions may not be an incredibly difficult task for simple functions, though.
16:05 timotimo though, i must say ... how often do you actually end up with tail recursive functions in a more imperative language?
16:05 timotimo if you're purely functional, it's worth a lot i'm sure
16:06 FROGGS ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; sub foo? ($a) { say $a }; foo? 42'
16:06 FROGGS 42
16:06 FROGGS ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; sub foo? ($a) { say $a }; foo! 42'
16:06 FROGGS ===SORRY!=== Error while compiling -e
16:06 FROGGS Undeclared routine:
16:06 FROGGS foo! used at line 1. Did you mean 'foo?'?
16:06 FROGGS seems to do :o)
16:07 Ven FROGGS, the slang guy
16:07 Ven .oO( FROGGS , da slang gui )
16:09 timotimo "slangence"?
16:09 b2gills Calling it Piersing is actually quite apt https://duckduckgo.com/?q=Piers+Cawley+library
16:10 jdv79 where is a good example of identifiers with punctuation in the wild?
16:11 Kristien jdv79: question marks for Boolean return values
16:11 Kristien they're everywhere
16:11 timotimo ruby and lisps?
16:11 Kristien yes
16:11 Kristien mainly
16:12 timotimo FROGGS: works for methods, too?
16:12 |Tux| I got working what I planned today. WEEKEND!
16:12 Kristien Ruby also uses bangs for destructive functions, e.g. sort is pure and sort! is in-place.
16:12 jdv79 i just can't remember where i've seen them.  thanks.
16:12 dalek ecosystem: ac91fbe | FROGGS++ | META.list:
16:12 dalek ecosystem: add Slang::Piercing, masak++
16:12 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/ac91fbe133
16:12 mr-foobar joined #perl6
16:13 timotimo if it's too early for you to start weekend, |Tux|, you could contribute something to rakudo or so :P
16:13 Kristien Oh right, it's friday. http://rebecca.blackfriday/
16:13 |Tux| I think I already did today: chomp is rw
16:13 FROGGS ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; class Foo? { method bar! ($a) { $a ** $a } }; say Foo?.bar!(42)'
16:13 FROGGS 15013093754529657235677197216425445​7814047970568738777235893533016064
16:14 pmurias Inline-Perl6 requires perl5.20?
16:14 FROGGS ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; class Foo? { method bar! ($a) { $a ** $a } }; say Foo?.bar!: 42'
16:14 FROGGS 15013093754529657235677197216425445​7814047970568738777235893533016064
16:14 timotimo there is a blackfriday top level domain?
16:14 timotimo wowsers.
16:14 timotimo well, there's everything, i suppose
16:14 |Tux| and as that doesn't work yet as intended, I might go dig a bit in why
16:14 timotimo thank you, FROGGS :)
16:14 FROGGS timotimo: it is just copy&paste + mixing in... https://github.com/FROGGS/p6-Slang-Pier​sing/blob/master/lib/Slang/Piersing.pm
16:15 pdcawley Kristien: I think Matz lifted that style from scheme, tbh.
16:15 FROGGS ohh, I dont even need the atkeyish there
16:15 Kristien Clojure does it too.
16:15 FROGGS masak: where is my book! :P
16:15 Ven scheme did it first... :)
16:15 Kristien But destruction is extremely rare in Clojure.
16:15 Ven common lisp used "n" suffix
16:15 timotimo "<[?!]>?" :)
16:15 pdcawley Though scheme/lisp's tokenization is pretty extreme. "number->string" is a single token, for instance.
16:15 Ven pdcawley: scheme's tokenization is what you described earlier
16:16 pdcawley Ven: I sometimes think Scheme's motto is "Can we do that with less?"
16:16 Kristien I wish F# used -> instead of . so it would fit nicely in |> pipelines. :P
16:16 Ven Kristien: I wish F# had currying. And didn't depend on tuples for interop...
16:17 Kristien F# has currying.
16:17 Ven inference on currying, then
16:17 Kristien You cannot do currying for iterop since foreign functions may be arity-overloaded.
16:17 Ven oh, that I agree with, but (foo(1,2)) (or (foo (1,2)) really looks awkward
16:19 Ven Kristien: but the fact I have to specify the type of the arg my "fn" function receives in "map" really makes me sad.
16:19 Kristien use |> map
16:19 dalek nqp/longer: bb5a1c1 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
16:19 dalek nqp/longer: add constants for C data types
16:19 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/bb5a1c1216
16:19 Kristien I wish >> were map instead of being merely a special case of map.
16:19 johnjohn101 joined #perl6
16:19 timotimo where?
16:20 Kristien in F#
16:20 johnjohn101 hi perl6 peeps
16:20 timotimo ah
16:20 timotimo hello johnjohn
16:20 Kristien >> is function composition, which is a special case of map
16:20 Ven Kristien: ...tell that to people discussing "fmap vs map" in haskell atm
16:20 Ven .oO( won't somebody think of the << ? )
16:20 Kristien Haskell must get rid of map and rename fmap to map.
16:20 Ven "but then we break prelude!"
16:21 johnjohn101 when wall says perl 6 will out in december what version is he talking about?
16:21 Kristien Ven you can't break code that doesn't exist :D
16:21 Ven johnjohn101: 6.0
16:21 johnjohn101 whose version of perl 6?
16:21 Ven Kristien: but for f#, I just wanted to iter, so no "map.
16:22 timotimo the community's version of perl 6
16:22 timotimo i suppose? is that accurate?
16:22 Kristien you can implement map in terms of iter!
16:22 FROGGS johnjohn101: the specification and an implementation will be released as being 'what we think 6.0 means'
16:23 Ven Kristien: sure, just combine it with ignore. but the fact stays the same, I have to write out the type of the argument
16:23 Ven it can't infer from the type of the list
16:23 FROGGS johnjohn101: so, the language spec will gets its stamp as well as rakudo on moarvm
16:23 johnjohn101 FROGGS: ok, thanks.
16:24 Kristien In December, regressions can begin! :0
16:24 Kristien From then on the language will slowly start to suck. :P
16:24 FROGGS :P
16:24 muraiki haha
16:25 Alina-malina joined #perl6
16:26 telex joined #perl6
16:28 vendethiel joined #perl6
16:29 b2gills Kristien: my response to your friday link https://duckduckgo.com/?q=ginny+di​guiseppi+ravenclaws+friday+parody
16:29 FROGGS[mobile] joined #perl6
16:30 jdv79 that is an interseting point.  after 6.0 is released would a really important but massively backcompat breaking change be allowed?
16:32 dalek nqp/longer: f82ceb0 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
16:32 dalek nqp/longer: add constant for C type long
16:32 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/f82ceb05f8
16:33 FROGGS jdv79: "depends"
16:33 johnjohn101 i'm happy to see the end of the beginning for perl 6.
16:33 moritz jdv79: we can always declare a new language version, though we must be aware of the costs for maintenance
16:35 gfldex joined #perl6
16:36 Sqirrel joined #perl6
16:44 pmurias with slang it will be possible to make large changes without breaking backcompat
16:48 moritz pmurias: maybe syntactic changes, but I don't see how it would help with a change in a central class in core
16:50 pmurias per lexical scope monkey patching?
16:50 moritz methods aren't lexically scoped
16:53 timotimo versioned classes?
16:53 masak FROGGS[mobile]: wow. I'm impressed.
16:53 masak FROGGS[mobile]: let's handle book in privmsg.
16:53 timotimo hm?
16:53 echowuhao joined #perl6
16:54 timotimo oh, you promised him a book :D
16:55 vendethiel joined #perl6
17:02 nine_ pmurias: Inline::Perl6 surely works on older Perls, too. It's just the default of h2xs to require the installed Perl version
17:04 Ven joined #perl6
17:05 dalek perl6-roast-data: 5628778 | coke++ | / (5 files):
17:05 dalek perl6-roast-data: today (automated commit)
17:05 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/5628778082
17:06 pmurias nine_: it requires multiplicity?
17:08 nine_ pmurias: have'nt tested without multiplicity so there's probably a place or two where I accidentally require it.
17:09 [Coke] 3 consistent failures in rakudo-moar that need to be addressed.
17:09 [Coke] S03-operators/repeat.t 33; S17-supply/start.t 9 ; integration/weird-errors.t 5  - happening on JIT & NOJIT
17:09 [Coke] I tried sussing out S17-supply/start, but it's very sensitive to adding debug output to the test or to Test.pm
17:12 pmurias nine_: so I should just clone Inline-Perl6 from github and purge those places?
17:12 [Coke] JVM is also failing S03-operators/repeat.t 33 (parrot is not)
17:13 [Coke] JVM is aborting on integration/advent2014-day05.rakudo.jvm
17:14 nine_ pmurias: that'd be great :)
17:16 pdcawley joined #perl6
17:20 Mso150 joined #perl6
17:20 spider-mario joined #perl6
17:32 Kristien joined #perl6
17:34 Kristien hi
17:39 dalek doc: 53a206e | paultcochrane++ | lib/Type/IO.pod:
17:39 dalek doc: Document the open() function
17:39 dalek doc: review: https://github.com/perl6/doc/commit/53a206e563
17:39 dalek doc: aefce9d | paultcochrane++ | lib/Language/io.pod:
17:39 dalek doc: Remove IO-related todo items
17:39 dalek doc:
17:39 dalek doc: The open() sub has now been documented
17:39 dalek doc: The options to open() have now been documented.
17:39 dalek doc: review: https://github.com/perl6/doc/commit/aefce9d5a6
17:41 diana_olhovik_ joined #perl6
17:46 TimToady m: say (22/7).base-repeating(10)
17:46 camelia rakudo-moar 742b01: OUTPUT«3.(142857)␤»
17:46 TimToady is there a better notation for the repeating digits than parens?
17:46 TimToady underscore doesn't quite work, since ._ is illegal
17:47 TimToady m: say 3._142857
17:47 camelia rakudo-moar 742b01: OUTPUT«No such method '_142857' for invocant of type 'Int'␤  in block <unit> at /tmp/dB32IN1l0w:1␤␤»
17:47 TimToady like that...
17:47 TimToady say 3.¹
17:47 TimToady m: say 3.¹
17:47 camelia rakudo-moar 742b01: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/qPEDUcw8bH�Missing semicolon.�at /tmp/qPEDUcw8bH:1�------> [32msay 3.[33m�[31m¹[0m�»
17:48 TimToady that could be made to work, I suppose
17:49 TimToady but maybe we should just return two strings
17:49 sqirrel__ joined #perl6
17:49 TimToady m: 42.777e0.base(10,0)
17:49 camelia rakudo-moar 742b01: ( no output )
17:50 TimToady m: say 42.777e0.base(10,0)
17:50 camelia rakudo-moar 742b01: OUTPUT«43␤»
17:50 Kristien why is there no camelia command that implicitly uses say?
17:51 TimToady m: say (1/3).base(10,40)
17:51 camelia rakudo-moar 742b01: OUTPUT«0.33333333333333333​33333333333333333333333␤»
17:51 Kristien forgetting say happens too often
17:51 ashleydev TimToady: whats the "e0" part mean?
17:51 TimToady they other way also clutters the channel, so it's a tradeoff
17:51 TimToady make it a floater
17:51 TimToady otherwise it's a rat
17:51 ashleydev is there a pneumoic for that?
17:52 TimToady m: say Num(1/3).base(10,40)
17:52 camelia rakudo-moar 742b01: OUTPUT«0.33333333333333330​37273860099958255887032␤»
17:53 TimToady well, it pretty well matches the internals, when you have floating point, there's an exponent
17:53 TimToady we just don't automatically translate 3.14159625 into Num automatically like most language, but into Rat
17:53 TimToady m: say 3.1416.WHAT
17:53 camelia rakudo-moar 742b01: OUTPUT«(Rat)␤»
17:54 TimToady m: say 3.1416.perl
17:54 camelia rakudo-moar 742b01: OUTPUT«3.1416␤»
17:54 TimToady m: say 3.1416.nude
17:54 camelia rakudo-moar 742b01: OUTPUT«3927 1250␤»
17:54 TimToady m: say .1 + .2 - .3
17:54 camelia rakudo-moar 742b01: OUTPUT«0␤»
17:55 TimToady as a consequence, most other languages don't produce 0 for that expression
17:55 TimToady m: say .1 + .2 - .3e0
17:55 camelia rakudo-moar 742b01: OUTPUT«0␤»
17:55 TimToady m: say .1e0 + .2 - .3
17:55 camelia rakudo-moar 742b01: OUTPUT«5.55111512312578e-17␤»
17:56 TimToady and since anything to the 0th power is 1, it's a convenient notation for floating literals
17:57 Kristien wrong!
17:57 TimToady picky, picky
17:57 TimToady :)
17:57 TimToady all rules of thumb are wrong, including this one
17:58 ashleydev m: say 2e3
17:58 camelia rakudo-moar 742b01: OUTPUT«2000␤»
17:58 ashleydev m: say 2e0
17:58 camelia rakudo-moar 742b01: OUTPUT«2␤»
17:58 TimToady m: say Num(.1) + .2 - .3
17:58 camelia rakudo-moar 742b01: OUTPUT«5.55111512312578e-17␤»
17:59 TimToady in particular, we only need 10 ** 0 to be 1 in this case :)
17:59 ashleydev ah
17:59 ashleydev see it now
17:59 Kristien I will never make a rat keeping game in Perl 6.
17:59 TimToady well, they're there for correctness, not for speed
18:00 TimToady fortunately, as soon as a calculation flips into floating point, it sticks
18:00 ashleydev but the programer gets to make that choice in p6
18:00 TimToady so you only need to start it out that way, as with the examples above where only the first term is forced to Num
18:01 TimToady ashleydev: yes, but we don't force people to make that choice until they're ready for it
18:01 TimToady just as in P5, we didn't tell people that anonymous subs were really true closures
18:01 Kristien Where can I find the rationale behind types not being values of some Type type?
18:01 Kristien Rather than Int.WHAT returning Int.
18:01 TimToady but when they want to make a callback that treats external lexicals correctly, they are then ready to learn about closures
18:03 TimToady Kristien: well, logic, basically, and being able to reason about types or instances of those types the same way
18:03 TimToady Socrates is a man, and all that
18:03 moritz [ptc]: re http://irclog.perlgeek.de/p​erl6/2015-02-13#i_10110243 only if the module exports those functions
18:03 kjs_ joined #perl6
18:04 TimToady to start out with, it was just a WAG by a linguist, but it seems to have worked out well in practice
18:05 moritz [ptc]: my idea with the code callbacks was the a callback can always decide not to do the work itself, and defer to the :$default instead
18:05 Kristien TimToady: but why'd you want to reason about them the same way?
18:05 TimToady because that's how people do it in natural languages
18:05 moritz [ptc]: IMHO the *proper* solution would be to have some kind of propessing pipeline in Pod::To::HTML, and the ability to hook into the pipeline
18:06 moritz Kristien: if the type object were not of the same type as instances, it would make it quite a stretch to define methods than ca be called as class or instance methods
18:07 moritz class Flurb { method thing() { 42 } }; Flurb.thing constrains the invocant to Flurb. If the type object weren't Flurb, you couldn't call static methods
18:07 moritz and normal method dispatch wouldn't apply to static methods
18:08 TimToady moritz: which is, of course, a debatable feature for just that reason, if you follow the conventional CS thinking on such things
18:09 * TimToady has never particularly approached language design from the CS direction, however, as you may have noticed :)
18:09 Mouq joined #perl6
18:09 TimToady o/
18:10 moritz well, we do the other thing too. Int.^HOW is an instance of ClassHOW, which is close enough to Kristien's Type
18:10 TimToady troo
18:11 TimToady but those are officially outside the language, because of the HOW :)
18:11 TimToady Deep Magic From The Beginning Of Time
18:11 Kristien m: say Int.HOW === Int.^HOW
18:11 camelia rakudo-moar 742b01: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/yQMn4wVQ72â�¤Cannot use .^ on a non-identifier method callâ�¤at /tmp/yQMn4wVQ72:1â�¤------> [32msay Int.HOW === Int.^HOW[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
18:11 [ptc] moritz: thanks for the answers :-)
18:12 Kristien m: say Int.HOW; say 42.^HOW
18:12 camelia rakudo-moar 742b01: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/6lE0iyNNgeâ�¤Cannot use .^ on a non-identifier method callâ�¤at /tmp/6lE0iyNNge:1â�¤------> [32msay Int.HOW; say 42.^HOW[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
18:12 TimToady .^HOW is a misnomer
18:12 Kristien m: say Int.HOW
18:12 camelia rakudo-moar 742b01: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
18:12 Kristien OK :P
18:12 [ptc] moritz: have you had time to look at how I implemented syntax highlighting?
18:12 TimToady $foo.^bar(args) means $foo.HOW($foo, args)
18:12 TimToady er
18:13 TimToady $foo.^bar(args) means $foo.HOW.bar($foo, args)
18:13 Kristien right
18:13 Kristien so .^HOW would be .HOW.HOW
18:13 TimToady since there are basically two different invocants that have to come in
18:13 moritz [ptc]: today? or some time ago in the branch?
18:13 nine_ |Tux|: can you still reproduce the No such method '' for invocant of type 'Foo' error in Inline::Perl5? I cannot.
18:14 TimToady m: say Int.HOW.HOW
18:14 camelia rakudo-moar 742b01: OUTPUT«No such method 'gist' for invocant of type 'NQPClassHOW'␤  in sub say at src/gen/m-CORE.setting:17426␤  in block <unit> at /tmp/qNCilVPBCE:1␤␤»
18:14 TimToady m: say Int.HOW.HOW.Str
18:14 camelia rakudo-moar 742b01: OUTPUT«No such method 'Str' for invocant of type 'NQPClassHOW'␤  in block <unit> at /tmp/KjFVxjJZOl:1␤␤»
18:14 [ptc] moritz: today
18:14 TimToady m: say Int.HOW.HOW.name
18:14 camelia rakudo-moar 742b01: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤  in any name at gen/moar/stage2/nqpmo.nqp:1201␤  in block <unit> at /tmp/rbZwPYoLAA:1␤␤»
18:14 adu TimToady: but I do think you have a firm grasp of ergonomics
18:14 TimToady m: say Int.HOW.HOW.name(Int.HOW)
18:14 camelia rakudo-moar 742b01: OUTPUT«Perl6::Metamodel::ClassHOW␤»
18:14 vendethiel joined #perl6
18:14 TimToady m: say Int.HOW.HOW.HOW.name(Int.HOW.HOW)
18:14 camelia rakudo-moar 742b01: OUTPUT«NQPClassHOW␤»
18:15 TimToady m: say Int.HOW.HOW.HOW.HOW.name(Int.HOW.HOW.HOW)
18:15 camelia rakudo-moar 742b01: OUTPUT«KnowHOW␤»
18:15 ashleydev you sound like a 2-yr old
18:15 TimToady that's the bottom, or the top, or the inside
18:15 [ptc] moritz: I added a note about it in issue #28
18:15 TimToady m: say Int.HOW.HOW.HOW.HOW.HOW.name(Int.HOW.HOW.HOW.HOW)
18:15 camelia rakudo-moar 742b01: OUTPUT«KnowHOW␤»
18:15 ashleydev or maybe that would be WHY.WHY.WHY...
18:15 TimToady KnowHOW is our turtle
18:15 [ptc] moritz: no probs if you haven't!  Was just asking :-)
18:16 moritz [ptc]: (how) does it deal with :allow<...> in code blocks?
18:16 adu the bottom? the top? how about the part with the fewest dependencies?
18:17 [ptc] moritz: I basically overrode how node2inline to effectively ignore them.
18:17 [ptc] moritz: as a first-cut solution it'd probably be ok
18:17 TimToady except that it's not KnowHOWs all the way down, you have to go past several non-turtles first
18:17 * TimToady blames spontaneous symmetry breaking
18:18 [ptc] moritz: I wasn't overly happy about how I'd solved the problem though, hence my questions regarding how to hook into the Pod::To::HTML code
18:18 TimToady Kristien: I hope that if we haven't convinced you, we've confused you.  :)
18:19 Kristien m: say 42.new
18:19 camelia rakudo-moar 742b01: OUTPUT«0␤»
18:19 TimToady m: say 42.clone
18:19 camelia rakudo-moar 742b01: OUTPUT«42␤»
18:20 TimToady m: say Int.clone;  # curious
18:20 camelia rakudo-moar 742b01: OUTPUT«(Int)␤»
18:20 Ven m: sub foo(Int) {}; foo(Int.clone)
18:20 camelia rakudo-moar 742b01: ( no output )
18:20 Ven heh.
18:20 TimToady m: say Int === Int.clone
18:20 camelia rakudo-moar 742b01: OUTPUT«True␤»
18:21 TimToady good, it's immutable, whew!
18:23 Ven *g*
18:23 Ven m: say Int =:= Int.clone
18:23 camelia rakudo-moar 742b01: OUTPUT«True␤»
18:23 flussence joined #perl6
18:23 TimToady for non-containers =:= is equivalent to ===
18:24 Ven ah, alright
18:24 TimToady it just worked out that way, and we kept it rather than getting mad
18:24 Ven I guess the semantics are for the best...
18:25 TimToady m: my $x = 42; say $x =:= 42
18:25 camelia rakudo-moar 742b01: OUTPUT«False␤»
18:25 TimToady m: my $x = 42; say $x === 42
18:25 camelia rakudo-moar 742b01: OUTPUT«True␤»
18:25 TimToady better than throwing an exception
18:26 TimToady I agree with those who say that most "modern" languages are way too exception-happy
18:26 * TimToady is not just looking at Python here
18:27 TimToady Exceptions should not be used for rocket guidance; they should be used to blow up rockets with an awesome error message.
18:28 Ven "exceptions for flow control", right..
18:28 TimToady well, except for those exceptions :)
18:28 TimToady the exception to exceptions, as it were...
18:29 fhelmberger joined #perl6
18:30 TimToady expected excepted, if you want anagrams
18:31 TimToady expected exceptions we optimize heavily, unexpected exceptions we pessimize
18:32 TimToady and CONTROL/CATCH is the dividing line there
18:39 itz joined #perl6
18:40 rindolf joined #perl6
18:42 TimToady m: 42.base(16,40)
18:42 camelia rakudo-moar 742b01: ( no output )
18:42 TimToady m: 42.base(16,40).say
18:42 camelia rakudo-moar 742b01: OUTPUT«2A.0000000000000000​000000000000000000000000␤»
18:57 Kristien I use exceptions for errors I don't wanna handle often.
18:57 Kristien such as I/O errors and OOB errors
18:58 _mg_ joined #perl6
18:58 grettir joined #perl6
18:59 TimToady but running out of I/O is generally expected
18:59 TimToady so it's better if your loop just quits automatically
19:00 Kristien I mean stuff like database disconnected or disk borked, not EOF.
19:00 Kristien EOF is something I do want to handle often.
19:00 TimToady nod
19:00 Kristien EOF is not really an error IMO, it's just a state
19:01 FROGGS joined #perl6
19:01 TimToady it's just an instance of "the generator stopped"
19:02 moritz Kristien: integers are also something I want to handle often; that doesn't mean I want them to be exceptions :-)
19:02 TimToady um, there's a not missing on some level there
19:02 Kristien moritz: I think you read my statement wrong.
19:02 TimToady the argument was "not usual"
19:03 moritz [ptc]: do you know which version of pygments first shipped with perl6 support?
19:04 [ptc] moritz: not off the top of my head
19:04 johnjohn101 left #perl6
19:04 dalek doc/add_pygments_highlighting: 559a6e8 | moritz++ | htmlify.p6:
19:04 dalek doc/add_pygments_highlighting: use $*TMPDIR instead of hard-coded /tmp
19:04 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/559a6e811f
19:05 dalek doc/add_pygments_highlighting: da9b40a | moritz++ | htmlify.p6:
19:05 dalek doc/add_pygments_highlighting: Improve detection of pygmentize
19:05 dalek doc/add_pygments_highlighting:
19:05 dalek doc/add_pygments_highlighting: we should not rely on it being in /usr/bin
19:05 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/da9b40a081
19:06 [ptc] moritz: it's version 2.0 in debian/jessie
19:06 moritz [ptc]: 1.6 doesn't have it
19:06 hoelzro nice moritz
19:07 hoelzro I think it was 1.7?
19:07 * hoelzro checks
19:07 hoelzro hahah
19:07 hoelzro I never noticed this on the pygments home page:
19:07 hoelzro "... and it highlights even Perl 6!"
19:08 moritz \o/
19:08 [ptc] moritz: the changelog from pygments says it was added in 2.0
19:09 hoelzro 2.0
19:09 Mouq hoelzro: Haha, that's great, I think that's recent! The Perl 6 support is your work, right?
19:09 [ptc] moritz++  ; that's a much better way to detect pygmentize!
19:09 hoelzro yes, it is
19:09 Mouq hoelzro+++
19:10 hoelzro I should probably update it with more recent language changes...
19:11 [ptc] hoelzro++
19:14 [ptc] dinner&
19:18 dalek doc/add_pygments_highlighting: d000f1e | moritz++ | htmlify.p6:
19:18 dalek doc/add_pygments_highlighting: Only syntax-hilight code blocks without formatting codes
19:18 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/d000f1e242
19:18 moritz [ptc]: I can't really test it on my workstation, since my pygments is too old
19:19 hoelzro moritz: can you try a virtualenv?
19:19 hoelzro then you can use a newer pygments
19:19 moritz hoelzro: I could. Or I could try on hack.p6c.org
19:19 moritz hoelzro: but then I'd have to stop wining and actually do stuff :-)
19:19 hoelzro heh =)
19:21 timotimo i know that feeling
19:24 [ptc] moritz: I'll test it out soon
19:24 [ptc] moritz: thanks for the code cleanup!  It's a much more elegant solution :-)
19:25 [ptc] afk
19:48 masak programming: poetry with observable side effects.
19:49 El_Che masak: you don't like functional poetry? :)
19:50 kaare_ joined #perl6
19:50 beastd joined #perl6
19:50 vendethiel El_Che: surely you mean
19:50 vendethiel *pure* functional poetry
19:51 El_Che yeah, they kind everyone looks up to but no one understands :)
19:51 dalek zavolaj/longer: b6c78ed | FROGGS++ | / (8 files):
19:51 dalek zavolaj/longer: s/int/long/ and use long and int32 correctly
19:51 dalek zavolaj/longer: review: https://github.com/jnthn/zavolaj/commit/b6c78ed7c6
19:52 nic77 joined #perl6
19:53 TimToady and obviously 'short double' on the C side :)
19:53 skids vendethiel: Maybe your keyboard a haiku keyboard?
19:53 TimToady sorry, ww
19:53 nic77 joined #perl6
19:53 [particle] joined #perl6
19:54 nic77 joined #perl6
19:55 Kristien What is kinda the progress on native?
19:55 Kristien I want to use LLVM C API from Perl 6.
19:55 Kristien But if that's not yet possible I'll use another language instead.
19:57 vendethiel skids: I have both azerty and qwerty, does that count?
19:57 vendethiel or am I still missing one
19:58 FROGGS Kristien: our NativeCall interface is quite awesome tbh
19:58 Kristien I currently get "Can't use unknown trait 'is native' in a sub declaration."
19:58 FROGGS Kristien: 'use NativeCall'
19:58 Kristien ok
19:59 Kristien "Could not find NativeCall in any of: /Users/rightfold/rakudo/in​stall/languages/perl6/lib, /Users/rightfold/rakudo/install/languages/perl6" :P
19:59 FROGGS star-m: use NativeCall; sub foo is native { * }
19:59 camelia star-m 2015.01: ( no output )
19:59 FROGGS Kristien: well, install it via panda
19:59 Kristien OK
19:59 dalek rakudo/nom: fec2339 | TimToady++ | src/core/Rational.pm:
19:59 dalek rakudo/nom: base-repeating now returns two strings
19:59 dalek rakudo/nom:
19:59 dalek rakudo/nom: This is more useful to anyone for downstream tweaks to how the
19:59 dalek rakudo/nom: repeat is displayed or used.  I can imagine code that does
19:59 dalek rakudo/nom: my ($n,$r) = $rat.base-repeating(10); my $c = cat($n, $r xx *);
19:59 dalek rakudo/nom: to get an infinite Cat string for whatever precision you want.
19:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fec233964e
19:59 geekosaur also, maybe rakudo star is more for you, since it comes with stuff like that
19:59 Kristien btw are there any plans for allowing Grammar.parse to signal error positions instead of just returning Nil?
19:59 [Coke] ... developer managed to get our svn repo in a state where "git svn fetch" against a git-svn copy of the repo is now infinitely updating. w. t. f.
20:00 geekosaur (star lags a bit but comes with a starter ecosystem)
20:01 FROGGS Kristien: internally there is a highwater mark that we use to know how far we got when we parse Perl 6... though, I think it is not exposed yet
20:01 Kristien there's subparse
20:01 FROGGS Kristien: ... but it was discussed and wanted often
20:03 lizmat .tell |Tux| what's the problem with IO::Handle.chomp and a loop with .get ? I don't see any problem
20:03 yoleaux lizmat: I'll pass your message to |Tux|.
20:04 dalek rakudo/longer: 7d49693 | FROGGS++ | src/Perl6/Metamodel/NativeHOW.nqp:
20:04 dalek rakudo/longer: handle C type names in "is nativesize" trait
20:04 dalek rakudo/longer: review: https://github.com/rakudo/rakudo/commit/7d49693e3b
20:06 Kristien can't decide between perl and d
20:07 kjs_ joined #perl6
20:09 FROGGS I don't know D so I cannot help deciding here :o)
20:09 FROGGS and I gave a presentation about NativeCall so...
20:10 Kristien scala it is
20:10 dalek rakudo/newio: 8895666 | timotimo++ | src/Perl6/Grammar.nqp:
20:10 dalek rakudo/newio: important not to succeed this match when not panicking
20:10 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/8895666398
20:10 dalek rakudo/newio: 742b018 | lizmat++ | src/core/IO/Handle.pm:
20:10 dalek rakudo/newio: Make .chomp rw, Tux++
20:10 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/742b0185f0
20:10 dalek rakudo/newio: fec2339 | TimToady++ | src/core/Rational.pm:
20:10 dalek rakudo/newio: base-repeating now returns two strings
20:10 dalek rakudo/newio:
20:10 dalek rakudo/newio: This is more useful to anyone for downstream tweaks to how the
20:10 dalek rakudo/newio: repeat is displayed or used.  I can imagine code that does
20:10 dalek rakudo/newio: my ($n,$r) = $rat.base-repeating(10); my $c = cat($n, $r xx *);
20:10 dalek rakudo/newio: to get an infinite Cat string for whatever precision you want.
20:10 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/fec233964e
20:10 dalek rakudo/newio: 672de3c | lizmat++ | src/ (2 files):
20:10 dalek rakudo/newio: Merge branch 'nom' into newio
20:10 dalek rakudo/newio:
20:10 dalek rakudo/newio: Conflicts:
20:10 dalek rakudo/newio: src/core/IO/Handle.pm
20:10 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/672de3c792
20:10 dalek rakudo/newio: 8f6d7db | lizmat++ | src/core/PIO.pm:
20:10 dalek rakudo/newio: Make PIO.chomp adjustable
20:10 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/8f6d7db7c2
20:13 lizmat .tell jnthn I know you dislike the PIO role name, perhaps "Streamer" would be a better name?  other suggestions?
20:13 yoleaux lizmat: I'll pass your message to jnthn.
20:13 * lizmat is in severe lack of inspiration and is also tired, so calls it a day
20:14 Mouq lizmat++
20:15 Mouq lizmat: Have any idea when you think newio'll land?
20:23 Alina-malina joined #perl6
20:27 moritz http://hack.p6c.org:3000/type/DateTime.html # doc.perl6.org with syntax hilighting, [ptc]++
20:28 timotimo way cool
20:28 timotimo thanks, [ptc]++
20:28 masak wow. [ptc]++
20:29 masak my only kvetch is that 'new' is highlighted, I think :)
20:29 fhelmberger joined #perl6
20:32 timotimo i'm still way reluctant to allow people to just run code on our community server even with sandboxing and stuff in place ...
20:32 timotimo but i really want us to have something where people can evaluate code or have repls on line
20:33 moritz timotimo: well, when you have some software to do that, I'll set up a separate VM for it
20:34 timotimo yeah
20:34 alini joined #perl6
20:34 timotimo do we have a favourite solution for sandboxing? i hear docker is still hip?
20:35 timotimo also, where are we on the road towards having https for all p6c hosted things?
20:35 moritz timotimo: docker is not suitable for sandbox security-wise
20:35 timotimo OK, but piling selinux on top could help?
20:35 moritz timotimo: p6c is kvm based, so that's what I'd use
20:36 moritz timotimo: also cgroups are there
20:36 timotimo at least docker would prevent persistent hacks
20:36 timotimo docker uses cgroups already, no?
20:36 timotimo or do you just mean cgroups is activated on the host as well as the guests?
20:36 moritz as does systemd
20:37 moritz timotimo: yes
20:37 moritz timotimo: my approach would be to have a VM as the main line of defense
20:37 moritz timotimo: and as a secondary line, inside the VM the services runs in a cgroup with a separate /dev and /tmp mounted
20:37 moritz timotimo: and /usr/ read-only
20:38 moritz I've set those things up before, so I can be of help :-)
20:39 moritz my experience with selinux is less positive, though it's also a few years old
20:40 El_Che selinux? isn't that the first thing you disable if you want an usable box?
20:40 El_Che :)
20:41 moritz timotimo: if you really care, you could automate provisioning of the the VM, then we could throw it away regularly and re-create from scratch
20:42 gfldex moritz: you mean like http://man7.org/linux/man-p​ages/man1/lxc-create.1.html ?
20:43 Alina-malina joined #perl6
20:44 * moritz wonders if he has been speaking swahili or something
20:45 gfldex you dont need to speak swahili to be misunderstood by me
20:45 gfldex i can misunderstand you all day long if i have to :)
20:45 colomon moritz: No, ilionekana kama Kiingereza na mimi.
20:46 timotimo moritz: huh?
20:47 moritz sorry, I'm tired and easily irritated
20:47 timotimo *hug*
20:47 timotimo i'm not yet 100% sure what exactly the software that handles the perl6 processes should have, feature-wise
20:49 moritz the first instance could be a very easy web page with a big text area and an output window
20:50 moritz and by clicking a button, it evaluates the input
20:50 moritz https://github.com/moritz/try.rakudo.org was much more ambitious, and much less maintainable
20:51 moritz and crashed far too often
20:51 moritz it tried to give you a repl by keeping multiple rakudo repl sessions open in the background
20:52 timotimo i'd like to have the service that serves the html and the service that does the REPL/compiler management on separate VMs, does that sound all right?
20:53 moritz timotimo: to me, it sounds like over-engineering
20:53 [Coke] http://blogs.perl.org/users/shadowcat_m​dk/2015/02/gsoc-i-need-your-ideas.html , btw.
20:54 moritz timotimo: what's the purpose? not breaking the frontend when the backend is compromised?
20:54 timotimo i want to overengineer ALL the things!
20:54 timotimo but you're right, it'll probably be fair enough
20:55 moritz the advantage of having them on the same machine is that you don't need authentication/authorization
20:55 moritz you can just do local network
20:55 timotimo right
20:56 moritz or maybe not even network
20:56 moritz just write the program to a temp file
20:56 timotimo anything i can do to help https setup accelerate?
20:56 timotimo a shared temp folder, eh?
20:57 timotimo at least having the two parts in different cgroups would be good
20:57 moritz and run  sudo -u unprivilegeduser perl6-m inputfile > out
20:57 timotimo ah, yeah, suexec style
20:57 moritz well, I'm open to suggestions
20:57 moritz re https, I've been lazy and kinda hoped to defer until letsencrypt.org is live
20:58 timotimo i'd actually prefer writing the frontend server in python, as i've never done perl5 web dev, and i'd like the frontend to be very low performance impact
20:58 Kristien I wrote a monadic parser combinator library in C++. :)
20:58 moritz timotimo: if you don't want to wait, get some certificates and install them, configure the apache. I'll give you sudo/root if you don't have it already
20:59 FROGGS timotimo: somebody will help with P5...
20:59 moritz https://www.ohling.org/blog/2015/02/​wosign-free-2y-ssl-certificate.html # or use them as a CA
21:00 timotimo i have root, yeah. but i've never done https
21:00 timotimo like, set up https
21:00 * flussence spent the last few months tweaking ssl setups... one thing I've learned is that simpler is better
21:01 timotimo FROGGS: i don't actually want to touch perl5 :P
21:01 moritz flussence: what exactly is simple?
21:01 FROGGS timotimo: :P
21:01 moritz flussence: one domain per IP?
21:01 moritz timotimo: I'm fine with python
21:01 FROGGS moritz: either that or you need a wildcard cert
21:01 timotimo i hear wildcard certs are super expensive
21:02 moritz yes
21:02 FROGGS aye
21:02 moritz 400USD+
21:02 moritz more like 2k USD usually
21:02 moritz and then they are only valid for one year
21:03 timotimo right
21:03 flussence moritz: I tried experimenting with self-signed stuff (it's for a home server I wanted to access things on while away)... ended up just using one certificate shared between all services, with a bit of SNI. I wouldn't do it on a production server looking at *those* numbers though...
21:03 timotimo there's security considerations to that, right?
21:04 flussence (also, turns out it's much easier to use proxy features built into a webserver than trying to secure multiple webservers.)
21:04 kjs_ joined #perl6
21:04 timotimo how should the service handle updating rakudo impls?
21:05 moritz timotimo: not :-)
21:05 timotimo good
21:05 moritz timotimo: I'd say rakudobrew, or reuse camelia's rakudo rebuild scripts
21:05 moritz timotimo: but that's not done by the service itself; it's done by cron (or even manually)
21:06 timotimo good
21:06 dalek specs: 081e2aa | TimToady++ | S32-setting-library/Numeric.pod:
21:06 dalek specs: document .base and .base-repeatig changes
21:06 dalek specs: review: https://github.com/perl6/specs/commit/081e2aa76e
21:06 moritz the service itself won't have write access to the install dir
21:06 timotimo ah, yes, it should definitely not be able to change anything in there
21:06 timotimo do we have any sort of monitoring in place yet?
21:07 moritz nope
21:07 timotimo to see if some progress has gone out of control and noms cpu cores or ram continuously?
21:07 timotimo maybe i could set something up for that?
21:07 pippo joined #perl6
21:07 timotimo the only thing i have experience with yet in that domain is munin, though
21:07 moritz timotimo: my approach has rather been to limit resources, so that those programs get killed
21:07 pippo o/ #perl6
21:07 timotimo aye, sensible
21:08 pippo Could somebody help me? I need to know how can I add a method on the Date object.
21:09 TimToady use a mixin?
21:09 PerlJam pippo: why do you want to add a method to the Date object?
21:09 timotimo do you mean add to the type, so that every even existing instance gets it, too?
21:09 timotimo or is it enough to add that method to one existing instance of Date?
21:09 flussence pippo: if you really want to - http://doc.perl6.org/type/Me​tamodel%3A%3AMethodContainer
21:09 TimToady or N of them, if you control the construction
21:10 timotimo flussence: we have syntax for that, you know?
21:10 pippo I wnat to do my $date = Date.new; and then $date.prettyprint or so
21:10 moritz pippo: use a sub instead
21:10 timotimo aye
21:10 moritz prettyprint($date)
21:10 TimToady does it have to be Date?  can it be MyDate?
21:10 timotimo or even $date.&prettyprint if you have a "sub prettyprint($date) { ... }"
21:10 moritz pippo: mutli subs make it quite easy to extend that to many types
21:10 pippo It can be MyDate
21:10 moritz pippo: then inheritance would work
21:11 FROGGS m: Date.^add_method('prettyprint', -> \self { 42 }); my $d = Date.new; say $d.prettyprint # pippo
21:11 camelia rakudo-moar fec233: OUTPUT«42␤»
21:11 FROGGS that's one way
21:11 Mouq flussence: Oh gosh, the typegraph on that page…
21:11 timotimo not recommended at all, FROGGS
21:11 FROGGS :o)
21:11 TimToady FROGGS: don't teach evil :)
21:11 FROGGS damn
21:11 moritz m: class PrettyDate is Date { method pretty { "pretty " ~ self.Str } }; say PrettyDate.today.pretty
21:11 camelia rakudo-moar fec233: OUTPUT«pretty 2015-02-13␤»
21:11 TimToady at least force them to declare MONKEY_TYPING
21:11 pippo FROGGS: That's waht I was looking for!
21:11 moritz pippo: ^^
21:12 FROGGS that's probably better
21:12 PerlJam oh no!
21:12 FROGGS pippo: nooooooo
21:12 pippo FROGGS: Thank you!
21:12 moritz pippo: don't go to the dark side!
21:12 FROGGS pippo: look at moritz's example
21:12 TimToady we'd better break that quick
21:12 PerlJam FROGGS: Remember ... with great power comes great responsibility
21:12 FROGGS pippo: they dont even have cookies!
21:12 pippo OK I'll use moritz solution then :-))
21:12 TimToady we do NOT believe in monkey patching here as a cultural norm
21:13 FROGGS pippo++
21:13 pippo Thank you all again!
21:13 timotimo mhhh cultural nom
21:13 FROGGS was fun anyway *g*
21:14 dalek doc/add_pygments_highlighting: 017a076 | moritz++ | htmlify.p6:
21:14 dalek doc/add_pygments_highlighting: Check for minimal pygmentize version
21:14 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/017a0769b1
21:14 pippo BTW, I really like the Date object and his methods. I think it is very useful. Tks #pelr6
21:14 moritz anyway, should I merge that branch?
21:14 moritz pippo: it's 90% stolen from Perl 5's Date::Simple :-)
21:15 moritz pippo: and you're welcome.
21:15 FROGGS pippo: I'd love to see a DateTime::SpanSet port from P5 :/
21:15 * TimToady wishes all these highlighters wouldn't treat setting functions and methods as reserved words; they're just functions and methods
21:17 moritz TimToady: agreed
21:18 * flussence wishes perl6.vim didn't highlight Test.pm functions as reserved words either...
21:18 TimToady in http://rosettacode.org/wiki/Textonyms#Perl_6 why is They highlighted in the heredoc; I can understand 'words' being highlit by accident
21:19 TimToady and it's pretty pathetic to ignore the sigil in @words and highlight the words as a "keyword"
21:21 flussence I'd much rather have all words (outside of strings) unhighlighted, it'd encourage me to pick good ones :)
21:21 [Tux] lizmat++; #  \o/ chomp change works!!!
21:21 * [Tux] is happy
21:21 pippo FROGGS: I did not have to use it in my very little programming :-)
21:22 TimToady oh, I think They is highlit as a method because the *previous* line ends with .
21:22 FROGGS pippo: but I enjoy its API very much and would like to see a P6 port because it usually improves a lot then :o)
21:22 hoelzro flussence: if you want to submit a PR to address that, I'll mere it
21:22 hoelzro I don't like it either
21:23 * hoelzro started a fresh perl6.vim because of performance issues with what's in vim-perl
21:23 [Tux] I now have 17394 tests passing
21:23 flussence hoelzro: I may do that, but I'll put a lot more thought into it first
21:24 hoelzro perl6.vim could use some love, and that's a failing on my part
21:24 flussence for what it does, and what it has to work with, it's pretty impressive :)
21:25 pippo FROGGS: I agree.
21:26 TimToady flussence: indeed, I'm just never completely satisfied, you may have noticed :)
21:27 FROGGS TimToady: if you were we would not be here :o)
21:27 moritz any votes on syntax hilighting on doc.perl6.org as pygments gives it now?
21:27 FROGGS moritz: how can I see an example?
21:27 echowuhao joined #perl6
21:28 moritz FROGGS: http://hack.p6c.org:3000/type/DateTime.html
21:28 jnthn evening, #perl6
21:28 yoleaux 20:13Z <lizmat> jnthn: I know you dislike the PIO role name, perhaps "Streamer" would be a better name?  other suggestions?
21:28 FROGGS moritz: ohh, it is quite nice
21:29 FROGGS moritz: so, +1 from me
21:29 moritz or http://hack.p6c.org:3000/language/functions.html which has some non-hilighted examples too
21:30 FROGGS moritz: it is still better than no highlighting at all
21:30 hoelzro purdy
21:30 hoelzro moritz: +1 from me
21:31 hoelzro ah, I see that single line highlighting bug is there =/
21:31 hoelzro s/single line/single line comment/
21:31 dolmen joined #perl6
21:32 FROGGS evening jnthn
21:33 hoelzro moritz: what are you using as a stylesheet for the pygments sections?
21:34 masak \o, jnthn
21:34 hoelzro o/ jnthn
21:35 jnthn .tell lizmat Hm, that doesn't quite strike me as correct either. The $!PIO attribute is really a handle...so something along those lines may fit better. I guess we already used IO::Handle...or did that change in newio, or does places with PIO overlap with that anyway? :)
21:35 yoleaux jnthn: I'll pass your message to lizmat.
21:35 jnthn yay, syntx highlighting! :D
21:36 jnthn I'm *really* happy to see the pygments Perl 6 work get put to good use, after Github moved on to something else...
21:36 hoelzro moritz: may I suggest that you duplicate the 'body .c' rule to create a 'body .c-Singleline' one; that'll fix that bug until I've fixed it
21:37 hoelzro jnthn: Bitbucket is still on pygments ;)
21:37 flussence jnthn: github may have lost it, but cgit still gets pretty perl6 highlighting :)
21:37 hoelzro and they also detect Perl 6 properly!
21:37 jnthn hoelzro: Ah, then cool :)
21:38 moritz hoelzro: uhm, I haven't touched the CSS at all; could you do it please?
21:39 hoelzro sure!
21:40 skids "Missing serialize REPR function for REPR VMException" /o\  I'm sure that means something to someone, but not me.
21:41 FROGGS skids: that means that you let an exception slip somewhere... maybe a BEGIN block or a EXPORT sub
21:41 FROGGS so, a 'my $/' helps there IIRC
21:41 FROGGS err, $!
21:45 muraiki how do I make the foo.pm.moarvm file for a module? I'm trying to put a module into my site lib...
21:45 muraiki and I"m not even sure what to google to get a useful result, heh
21:46 moritz muraiki: perl6-m --target=mbc --output=foo.pm.moarvm foo.pm
21:46 FROGGS muraiki: perl6-m --target=moar --output=foo.pm.moarvm foo.pm
21:46 FROGGS ohh, mbc, right
21:46 moritz muraiki: though 'ufo && make' might be easier
21:46 FROGGS or creating a META.info and run `panda install .`
21:47 dalek doc: 66250c2 | lumimies++ | lib/Type/DateTime.pod:
21:47 dalek doc: Fix some typos
21:47 dalek doc: review: https://github.com/perl6/doc/commit/66250c22ff
21:57 hoelzro moritz: is there something I should be doing to enable the pygments when running app.pl?
21:57 flussence hoelzro: make sure you're on the right branch?
21:57 hoelzro I did =)
21:57 flussence ah, k
21:58 hoelzro ah, I might want to install pygments.
21:58 flussence m: say Version.new('2.0pre') ~~ v2.0+
21:58 camelia rakudo-moar fec233: OUTPUT«True␤»
21:59 flussence whoa, that line's pretty cool.
21:59 tadzik :o
22:00 Mouq m: say Version.new('2.1') ~~ v2.0+
22:00 camelia rakudo-moar fec233: OUTPUT«True␤»
22:00 Mouq m: say Version.new('2.0pre') ~~ v2.0.*
22:00 camelia rakudo-moar fec233: OUTPUT«True␤»
22:00 masak m: say Version.new('2.0alpha') ~~ v2.0+
22:00 camelia rakudo-moar fec233: OUTPUT«True␤»
22:00 masak m: say Version.new('2.0alpha') ~~ v2.0
22:00 camelia rakudo-moar fec233: OUTPUT«True␤»
22:01 rurban joined #perl6
22:01 masak m: say Version.new('2.1') ~~ v2.0
22:01 camelia rakudo-moar fec233: OUTPUT«False␤»
22:02 eiro hello people
22:02 ugexe is <sp> not a character class shortcut anymore? or what am i doing wrong here:
22:02 ugexe m: my $x = "abas df"; say $x ~~ /<alnum>/; say $x ~~ /<sp>/;
22:02 camelia rakudo-moar fec233: OUTPUT«「a」␤ alnum => 「a」␤No such method 'sp' for invocant of type 'Cursor'␤  in method ACCEPTS at src/gen/m-CORE.setting:15138␤  in block <unit> at /tmp/irlkVaIjKa:1␤␤»
22:03 jnthn I don't remember there being an sp rule in Cursor...
22:03 PerlJam ugexe: maybe you wanted <space> ?
22:03 jnthn Only other guess is that I think once we punned Unicode property names as method names
22:04 jnthn But that became <:Ll> iirc
22:04 jnthn But not sure sp is one of those...
22:04 TimToady there's always \s
22:04 FROGGS_ joined #perl6
22:05 ugexe \s makes syntax highlighting whacky when writing grammars :(
22:05 ugexe https://github.com/perl6/specs/blob/maste​r/S05-regex.pod#character-class-shortcuts does mention <sp> and <-sp> tho
22:05 * jnthn looks
22:05 PerlJam S05:2293 does say ... yeah, what ugexe said
22:05 synopsebot Link: http://design.perl6.org/S05.html#line_2293
22:06 jnthn hah, who knew... :)
22:06 dalek doc/add_pygments_highlighting: 1ee80b8 | hoelzro++ | html/css/pygments.css:
22:06 dalek doc/add_pygments_highlighting: Add CSS rule for c-Singleline
22:06 dalek doc/add_pygments_highlighting:
22:06 dalek doc/add_pygments_highlighting: Due a bug in the Perl 6 pygments lexer, single line comments
22:06 dalek doc/add_pygments_highlighting: are given a CSS class that doesn't exist in the normal set
22:06 dalek doc/add_pygments_highlighting: of classes that pygments provides.  This will allow single-line
22:06 dalek doc/add_pygments_highlighting: comments to be highlighted until that bug is fixed
22:06 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/1ee80b813f
22:06 hoelzro moritz: that *should* work
22:06 jnthn Well, the patch is token sp { \s } I guess... :)
22:07 ugexe is <sp> different than <space>?
22:07 * jnthn doesn't find a <space> in S05
22:07 ugexe m: my $x = "abas df"; say $x ~~ /<alnum>/; say $x ~~ /<space>/;
22:07 camelia rakudo-moar fec233: OUTPUT«「a」␤ alnum => 「a」␤「 」␤ space => 「 」␤»
22:07 Sqirrel joined #perl6
22:07 jnthn Oh... :)
22:08 PerlJam jnthn: S05:2131
22:08 synopsebot Link: http://design.perl6.org/S05.html#line_2131
22:08 jnthn Looking.
22:08 jnthn Bah
22:08 pippo Good night #perl6!
22:08 jnthn So it specs <sp> and <space> to mean \s
22:08 pippo left #perl6
22:08 jnthn I really don't think we need both :)
22:08 jnthn <space> fits nicer with <digit> and <alnum> I guess.
22:09 jnthn So I'd be tempted to update the design doc to read space where it reads sp...
22:09 TimToady it's really from [:space:]
22:09 masak 'night, jnthn
22:09 jnthn masak: Uhh...is it my bed time? :P
22:09 masak er. 'night, pippo
22:09 masak way to misread.
22:09 TimToady jnthn: NO!
22:09 masak jnthn: yes! go to bed, now! :P
22:10 hoelzro moritz: ok, yeah, that works for me
22:10 telex joined #perl6
22:10 * masak .oO( you're GROUNDED! you have to stay up and play video games until you're *begging* to go to sleep! )
22:10 TimToady m: say ' ' ~~ /\s/
22:10 camelia rakudo-moar fec233: OUTPUT«「 」␤»
22:10 bauerbob joined #perl6
22:10 TimToady m: say ' ' ~~ /<space>/
22:10 camelia rakudo-moar fec233: OUTPUT«「 」␤ space => 「 」␤»
22:11 TimToady hmm
22:11 TimToady that's a non-breaking space, btw
22:11 jnthn Looks like any other space to me :P
22:12 TimToady m: say < foo bar >[0]
22:12 camelia rakudo-moar fec233: OUTPUT«foo bar␤»
22:12 TimToady well, at least it works right there
22:15 bauerbob hi. i know i'm not the first one to think that it might be a good idea to implement perl6 on the jvm. i've read that it didn't work out so well. but i'm curious: did they try it on oracle's graal jvm or was it the regular jvm?
22:16 TimToady it worked out fine
22:16 ugexe lol
22:16 bauerbob it did? so why have they stopped?
22:16 TimToady we havne't
22:16 TimToady *en
22:16 PerlJam bauerbob: where did you read these things?
22:17 bauerbob on the internet :-)
22:17 bauerbob don't remember
22:17 PerlJam so it must be true!
22:17 jnthn bauerbob: The Perl 6 JVM support has been improved even within the last week or two.
22:17 jnthn bauerbob: It's not only maintained, but actively developed. :)
22:17 TimToady we've only said that if push comes to shove, only the MoarVM backend needs to be done by Christmas
22:17 bauerbob cool
22:17 TimToady but push hasn't come to shove yet
22:17 TimToady j: say "here?"
22:17 camelia rakudo-jvm fec233: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
22:17 masak :(
22:18 Kristien joined #perl6
22:18 bauerbob so do you use the graal vm?
22:18 jnthn No, it's standard JVM.
22:18 masak bauerbob: do you seek the graal?
22:18 masak bauerbob: what is your name?
22:18 bauerbob i just stumbled over it
22:18 masak bauerbob: what is your favorite color?
22:18 TimToady that's a strange name
22:18 bauerbob green. no, blue! ;-)
22:18 * masak catapults bauerbob
22:18 TimToady sounds like a racehorse's name
22:18 masak haha
22:19 bauerbob oh, it's german
22:19 Mouq joined #perl6
22:19 bauerbob farmer bob
22:19 jnthn It really wants a JVM 1.8, though... 1.7 ones could be SEGVesque on invokedynamic stuff. :)
22:19 TimToady and I Just Stumbled Over It takes the triple crown!
22:19 masak I Just Stumbled Über It would be German.
22:20 TimToady surely it'd be Ich
22:20 timotimo StolpertÜber
22:20 masak TimToady: triple crown sounds really uncomfortable. especially for a horse. kinda like the Iron Throne.
22:21 bauerbob perl6@jvm is it part of rakudo
22:21 bauerbob is part of rakudo?
22:21 masak bauerbob: right.
22:21 masak bauerbob: it's one of Rakudo's supported backends.
22:21 bauerbob oh.. in that case i already have it on my hard disk
22:21 masak one of three, going on four... or two. we haven't decided.
22:22 TimToady by Christmas we'll have 1 ± 5
22:22 masak I like some of those outcomes.
22:22 bauerbob thank you guys!
22:23 TimToady yer welcum
22:23 Kristien by Christmas I might have sunglasses
22:23 masak ní!
22:23 masak Kristien: because of all the shiny?
22:23 hoelzro I wish that the JVM stuff could run on Android =(
22:23 hoelzro but unless it gets invokedynamic, I fear that may never happen
22:24 Kristien masak: I've been craving one for a long time but for some reason I still haven't acquired one.
22:24 TimToady I'm afraid they only come in pairs
22:24 Kristien Having two implies having one.
22:24 masak except sun-monocles.
22:24 Kristien For all n > 0, having n of x implies having n-1 of x.
22:25 TimToady I could actually use one of those, since only one of my pupils is paralyzed
22:25 masak TimToady: you are a harsh mentor :P
22:25 * TimToady is a harsh persontor
22:25 * masak wonders if that pun works in AmE
22:26 TimToady or would that be personstor? peopletor?
22:26 masak being politically correct is hard work.
22:26 masak but someone's gotta do it.
22:26 Alina-malina joined #perl6
22:27 TimToady As long as it's merely political correctness, it is not yet equality. :)
22:28 masak I find the term "merely" is offensive towards merfolk.
22:28 PerlJam I think one of these might go well with your hat:  http://www.ebay.com/itm/like/3​60910501251?lpid=82&amp;chn=ps   :-)
22:29 TimToady well, and zombies and such are werefolk, but I'm sure they think of themselves as isfolk, to the extent they think at all
22:29 Kristien the world would be better without political correctness — oh wait, that's politically incorrect
22:34 masak it's a sad fact that it's easier to cargo-cult and regurgitate stale wisdom than it is to generate fresh insights.
22:34 masak that goes for political correctness as much as for people appropriating or perpetuating coding styles in contexts where they no longer help.
22:36 TimToady Amen, brother!  Er...sibling!
22:36 masak :)
22:43 kurahaupo1 joined #perl6
23:13 Sysaxed joined #perl6
23:14 vendethiel joined #perl6
23:17 dalek doc/add_pygments_highlighting: bb4de66 | paultcochrane++ | htmlify.p6:
23:17 dalek doc/add_pygments_highlighting: Add option to turn off syntax highlighting
23:17 dalek doc/add_pygments_highlighting: review: https://github.com/perl6/doc/commit/bb4de66155
23:18 Kristien joined #perl6
23:23 BenGoldberg joined #perl6
23:25 dalek doc: 651c45a | paultcochrane++ | lib/Type/IO.pod:
23:25 dalek doc: Mention that text mode is default in open()
23:25 dalek doc: review: https://github.com/perl6/doc/commit/651c45ab63
23:25 dalek doc: 5b8f838 | paultcochrane++ | lib/Type/IO.pod:
23:25 dalek doc: Document close() method and sub
23:25 dalek doc:
23:25 dalek doc: to balance the now documented open() function.
23:25 dalek doc: review: https://github.com/perl6/doc/commit/5b8f8382e8
23:25 dalek doc: 7ae718d | paultcochrane++ | lib/Language/io.pod:
23:25 dalek doc: Generalise I/O section's subtitle
23:25 dalek doc: review: https://github.com/perl6/doc/commit/7ae718d9cd
23:26 BenGoldberg joined #perl6
23:38 fwilson joined #perl6
23:45 avuserow lizmat: (logging via supplies) really interesting idea. it occurred to me at one point that it might be useful, but got distracted. I'll give it a whirl tonight, certainly seems promising
23:45 bcode hi fwilson o/
23:48 timotimo avuserow: may want to make sure you use .act instead of .do for logging, so that it'll do logging for you properly
23:49 xinming_ joined #perl6
23:56 virtualsue joined #perl6
23:58 avuserow hm, doesn't look like either of those are documented on doc.perl6.org. I imagine it's referenced in one of jnthn++'s presentations?
23:58 timotimo oh? they are not?
23:58 timotimo but yeah, they are referenced there
23:59 timotimo "act" will give you actor semantics, as in: the code you supply will be guaranteed to only be entered by a single thread at a time
23:59 masak briefly, .act imposes "actor semantics" on the operations, avoiding races that can happen with .do
23:59 masak slower maybe, but safer.
23:59 avuserow sounds like the right thing to do for the IO part of logging

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

Perl 6 | Reference Documentation | Rakudo