»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
00:03
skids joined
00:04
larion joined,
coffee` left
00:09
vendethiel joined,
larion left
|
|||
timotimo | m: my Int sub foo() { } | 00:17 | |
camelia | ( no output ) | ||
timotimo | m: Int sub foo() { } | ||
camelia | rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/Asxl2hBszZTwo terms in a rowat /tmp/Asxl2hBszZ:1------> Int ⏏sub foo() { } expecting any of: infix stopper infix or meta-infix state…» | ||
timotimo | m: sub Int foo() { } | ||
camelia | rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/1UYMhlF8nxMissing blockat /tmp/1UYMhlF8nx:1------> sub Int ⏏foo() { }» | ||
timotimo | ^- i want to build a better error message for this | ||
sounds good? | |||
masak | fine by me :) | 00:20 | |
timotimo | i really dislike that --rxtrace is useless in modern rakudo | 00:21 | |
00:28
tengignick left,
pmurias left
00:29
pRiVi is now known as michiwend1,
bronco_creek joined
00:30
vendethiel left
|
|||
timotimo | perl6 -e 'sub Int foobar() { }' | 00:31 | |
Did you mean to write my Int sub foobar? | |||
^- takes the names from the actual source code | |||
00:33
michiwend1 is now known as pRiVi
00:34
lea left,
lea joined
|
|||
[Coke] | www.perl-6.com/ | 00:34 | |
00:34
lichtkind_ left
|
|||
timotimo | cute | 00:35 | |
masak | oh, and it's a github repo: github.com/songzan/perl-6.com | 00:37 | |
[Coke] | songzan++ | 00:38 | |
timotimo | some spec test failures, though | 00:42 | |
but now i pulled a bunch of commits to all repos | 00:45 | ||
00:45
bronco_creek left
|
|||
timotimo | is not ok 33 - xx works on a lazy list known? from t/spec/S03-operators/repeat.t | 00:52 | |
what about having t/spec/integration/weird-errors.t with not ok 5 - multi sub with where clause + temp stress | |||
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 | ||
:( | |||
masak read 'fish: Job 1' and thought it might be a Bible verse | 00:55 | ||
timotimo | :D | 00:56 | |
well, at least it's not caused by my commit | |||
and there's a TODO passed :) | 00:57 | ||
01:03
skids left
|
|||
timotimo | OK, same output from spec tests with or without my commit | 01:04 | |
excellent | |||
dalek | kudo/nom: e5c533c | timotimo++ | src/Perl6/Grammar.nqp: hint at "my Type sub name" when writing "sub Type name" |
01:05 | |
timotimo | ^- enjoy | ||
masak | m: my $s = "ABCDEFGHI"; say $s.comb.grep({ state $i = 0; $i++ %% 3 }).join | 01:09 | |
camelia | rakudo-moar e2b01f: OUTPUT«ADG» | ||
masak nods approvingly | |||
01:12
kurahaupo1 left
|
|||
dalek | kudo/nom: f2d4b88 | timotimo++ | src/Perl6/Grammar.nqp: tune the error message some more |
01:17 | |
01:25
echowuhao left
|
|||
TimToady added the test for xx but didn't report a bug for it | 01:26 | ||
except here on irc | 01:27 | ||
I figured someone would add the bug report if the spectests failed :) | |||
01:28
skids joined
|
|||
TimToady no cookie, but then I'm generally allergic to cookies anyway | 01:28 | ||
b2gills | m: say (1/81).fmt("%.40f") # should be a repeating number www.youtube.com/watch?v=daro6K6mym8 | 01:30 | |
camelia | rakudo-moar e2b01f: OUTPUT«0.0123456790123457000000000000000000000000» | ||
TimToady | known bug, fmt goes though floating point | 01:31 | |
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» | ||
TimToady | m: say (1/81).base(10) | ||
camelia | rakudo-moar e2b01f: OUTPUT«0.012346» | ||
TimToady | and that doesn't figure the precision of 81 is all that great in the first place :) | ||
I think there's an RC entry that gets repeats though | 01:33 | ||
jercos | <3 Rosetta Code | 01:34 | |
TimToady | maybe I'm thinking of rosettacode.org/wiki/Convert_decima...nal#Perl_6 which goes the other direction | 01:36 | |
anyway, I'm quite certain I wrote that function at some point | 01:39 | ||
01:40
dayangkun joined
|
|||
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:43 | |
01:45
squirrel joined
01:46
squirrel is now known as Guest28116
01:47
Guest28116 left
01:48
dayangkun left
01:50
Mouq joined
01:58
vendethiel joined
|
|||
timotimo | m: sub Int trololo { } | 02:02 | |
camelia | rakudo-moar e5c533: OUTPUT«===SORRY!=== Error while compiling /tmp/Z7A3GIj757Did you mean to write my Int sub trololo?at /tmp/Z7A3GIj757:1------> sub Int trololo⏏ { }» | ||
timotimo | that's still the old one | ||
02:04
dj_goku_ joined,
dj_goku_ left,
dj_goku_ joined
02:05
dj_goku left
02:06
dj_goku_ left
02:08
lex joined
02:09
lex is now known as Guest51406
02:10
Mr0rris0 joined,
Mr0rris0 left
02:11
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined,
adu joined
02:12
Mr0rris0 left,
Mr0rris0 joined
02:13
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
02:14
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
02:15
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
02:16
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
02:17
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
02:18
Mr0rris0 joined,
Mr0rris0 left
|
|||
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 | |
02:18
Mr0rris0 joined,
Mr0rris0 left
|
|||
Guest51406 | I'll be trying the language once I go through some documentation. I hope the language is worth spending the time. | 02:19 | |
02:19
Mr0rris0 joined
|
|||
raydiak | Guest51406: the official website for Perl 6 is perl6.org | 02:19 | |
02:19
vendethiel left,
Mr0rris0 left,
Mr0rris0 joined
02:20
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
02:21
Mr0rris0 joined,
Mr0rris0 left,
Guest51406 left,
Mr0rris0 joined
|
|||
masak | the design of perl.org was updated a couple years ago. it looks better now than before, IIRC. | 02:23 | |
'night, #perl6 | 02:25 | ||
raydiak | g'night masak | ||
02:45
vendethiel joined
02:46
ilbot3 left
02:48
ilbot3 joined
02:54
chenryn joined
02:56
skids left
03:05
grettir left
03:07
vendethiel left
03:09
noganex_ joined
03:11
noganex left
03:18
Psyche^ joined
03:21
Woodi left
03:22
Patterner left
03:24
vendethiel joined
03:26
nick_____ joined
03:33
skids joined
03:35
nick_____ left
03:41
chenryn left
03:46
vendethiel left
03:51
vendethiel joined,
chenryn joined
03:56
Mr0rris0 left
04:02
echowuhao joined,
chenryn_ joined,
chenryn left,
chenryn_ left
04:05
chenryn_ joined
|
|||
raydiak | adu: ping | 04:06 | |
adu | raydiak: hey | 04:07 | |
raydiak | hey...I noticed there's some uncommented says in C::AST::Utils | 04:08 | |
which kinda raises the question, other than toggling comments all over the place, how would you like to handle debug output? | 04:09 | ||
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 | ||
my bad | |||
raydiak | well it's useful when I hit errors, which is why I wonder how you want to toggle stuff like that | 04:12 | |
maybe better to have a debug() function or something that handles the logic and stderr and such encapsulated...what do you think? | 04:13 | ||
04:13
vendethiel left
|
|||
adu | raydiak: I usually do whatever is conventional in the language I'm working in | 04:14 | |
but I don't know any Perl5 conventions, so I'm a little lost | |||
like in C assert() is one way | 04:15 | ||
in some languages it's just a global DEBUG = False thing | 04:16 | ||
at the top of each file | |||
which is probably the worst way to do it | |||
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" | ||
adu | then if you have no log handlers, then there's no output | ||
is there a log4p6? | |||
raydiak noticed avuserow++ has been working on github.com/avuserow/perl6-log-simple | |||
though I notice it's not in the ecosystem, so maybe not ready | 04:20 | ||
really I don't see *any* logging modules on modules.perl6.org | |||
adu | hmm | 04:21 | |
maybe we should write one | |||
raydiak | could be fun...I don't think I have any basic, unintimidating things I'm workin on yet :) | 04:23 | |
04:23
Woody joined
04:25
Woody left
04:29
vendethiel joined
04:33
Mouq left
|
|||
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 | |
afk dinner | |||
avuserow | hi adu, raydiak :) | 04:40 | |
adu | hi | ||
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 | ||
if you have good use cases, I'd like to chat about either possibility | 04:41 | ||
let me backlog to see what you had to say earlier :) | 04:42 | ||
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:46 | ||
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:47 | ||
04:49
davido__ joined,
BenGoldberg left
|
|||
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:51 | |
04:51
davido_ left
04:52
vendethiel left
|
|||
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 | 04:54 | |
adu | well, avuserow I was thinking something similar to Python "logger" or log4j | 05:01 | |
avuserow: what is "&LOG"? | 05:04 | ||
05:04
kurahaupo1 joined
|
|||
avuserow | it's the sub called LOG | 05:04 | |
m: sub LOG() {}; say &LOG | |||
camelia | rakudo-moar f2d4b8: OUTPUT«sub LOG () { #`(Sub|97586680) ... }» | ||
avuserow | m: sub LOG() {}; say &LOG.WHAT | ||
camelia | rakudo-moar f2d4b8: OUTPUT«(Sub)» | ||
adu | oh | ||
avuserow | m: sub LOG($msg) {say $msg}; my &foo = &LOG.assuming("Hello world"); foo(); | 05:05 | |
camelia | rakudo-moar f2d4b8: OUTPUT«Hello world» | ||
adu | avuserow: can you have multiple appenders? | ||
like one appender for stdout, and one for a file? | |||
avuserow | not yet, I need to support this. I'll probably make a "Tee" appender that lets you combine them | 05:06 | |
or maybe just combine the two appenders | 05:08 | ||
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:13 | ||
05:15
chenryn_ left
05:16
vendethiel joined
|
|||
avuserow | oh, but I should also support the case where STDERR gets INFO and up, where a logfile gets ERROR and up | 05:18 | |
hmmm | |||
05:27
kurahaupo1 left
|
|||
raydiak will still be back eventually :) | 05:30 | ||
adu | oh, are you going to sleep? | 05:33 | |
raydiak | no no that's why I checked in to let you know I'm still coming back | 05:35 | |
still reading just kinda afk still | |||
adu | ok | 05:36 | |
05:37
Mouq joined
05:42
chenryn_ joined
05:46
chenryn_ left
05:50
sivoais left
05:51
chenryn_ joined
|
|||
avuserow | hm, would it be bad to put all the configurability into appenders for simplicity so they are easier to reconfigure? | 06:00 | |
I'm really wanting to avoid having a half dozen functions just to reconfigure things | |||
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:01 | ||
06:05
vendethiel left
06:06
jack_rabbit joined
|
|||
Mouq | avuserow: Instead of having a private $routes var, maybe you could have $*LOGGER variable or something that would be easier to configure? | 06:07 | |
06:08
vendethiel joined
|
|||
avuserow | hmm, hadn't thought about using a $*FOO style var | 06:09 | |
those are more global right? | |||
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 | ||
does that make some amount of sense? | |||
06:12
diana_olhovik_ joined
|
|||
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 | |
06:12
sivoais joined
|
|||
Mouq | avuserow: $*FOO is a dynamic variable | 06:20 | |
m: sub bar { say $*FOO }; { my $*FOO = "foo"; bar; } bar | 06:21 | ||
camelia | rakudo-moar f2d4b8: OUTPUT«===SORRY!=== Error while compiling /tmp/C3kw8Q7KYcTwo terms in a rowat /tmp/C3kw8Q7KYc:1------> say $*FOO }; { my $*FOO = "foo"; bar; } ⏏bar expecting any of: infix stopper infix or …» | ||
Mouq | m: sub bar { say $*FOO }; { my $*FOO = "foo"; bar; }; bar | ||
camelia | rakudo-moar f2d4b8: OUTPUT«fooDynamic 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
06:22
chenryn_ left
|
|||
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:22 | |
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» | ||
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» | ||
Mouq | m: module GetFoo { our $*FOO is export = "default foo" }; import GetFoo; say $*FOO | ||
camelia | rakudo-moar f2d4b8: OUTPUT«(Any)» | ||
Mouq | ^^ Defines $*FOO, the value seems to be lost, though :( | ||
avuserow | m: our $*FOO; module GetFoo { our $*FOO is export = "default foo" }; import GetFoo; say $*FOO | 06:28 | |
camelia | rakudo-moar f2d4b8: OUTPUT«===SORRY!=== Error while compiling /tmp/QlmFewDPoMCannot import symbol $*FOO from GetFoo, because it already exists in this lexical scopeat /tmp/QlmFewDPoM:1------> export = "default foo" }; import GetFoo⏏; say …» | ||
avuserow | m: our $*FOO; module GetFoo { our $*FOO is export = "default foo" }; say $*FOO | ||
camelia | rakudo-moar f2d4b8: OUTPUT«(Any)» | ||
avuserow | m: our $*FOO; module GetFoo { $*FOO is export = "default foo" }; say $*FOO | ||
camelia | rakudo-moar f2d4b8: OUTPUT«===SORRY!=== Error while compiling /tmp/zWh7gtOzYxTwo terms in a rowat /tmp/zWh7gtOzYx:1------> our $*FOO; module GetFoo { $*FOO ⏏is export = "default foo" }; say $*FOO expecting any of: infix…» | ||
avuserow | m: our $*FOO; module GetFoo { $*FOO = "default foo" }; say $*FOO | ||
camelia | rakudo-moar f2d4b8: OUTPUT«default foo» | ||
avuserow | not quite what I want here | ||
m: module GetFoo { GLOBAL::<$FOO> = "default foo" }; import GetFoo; say $*FOO | 06:29 | ||
camelia | rakudo-moar f2d4b8: OUTPUT«default foo» | ||
06:29
vendethiel left
|
|||
avuserow | from S02:Dynamic variable creation | 06:29 | |
I'm surprised that doesn't work with GLOBAL::<$*FOO> | 06:30 | ||
06:31
kaleem joined
06:34
diana_olhovik_ left
|
|||
dalek | kudo/nom: 929945a | TimToady++ | src/core/ (3 files): add optional digits arg to .base Note that we add the argument even to Int.base because we want to be robust in the face of type narrowing. it's just that the fractional digits on an integer, if requested, are always going to be 0s. Also, Real.base was not correctly rounding in the last place. |
06:37 | |
kudo/nom: 94c51c7 | TimToady++ | src/core/Rational.pm: base-repeating puts parens around repeating group |
|||
kudo/nom: 322c46d | TimToady++ | src/core/Rational.pm: make sure stays Rat; stomp debugging fossil |
|||
TimToady | b2gills: that should let you do arbitrarily precise formatting of Rats | 06:38 | |
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:40 | ||
06:40
kaleem left
|
|||
TimToady | if someone wants to write some tests for .base($base,$digits) and .base-repeating($base), that'd be cool | 06:41 | |
likewise if someone wants to spec 'em | |||
06:42
FROGGS[mobile] joined,
xfix joined
06:44
xfix left,
kaleem joined
06:46
Foxcool joined,
bjz joined
|
|||
TimToady | er...design 'em :) | 06:47 | |
06:47
xfix joined
06:48
vendethiel joined
06:51
jack_rabbit left
06:54
[particle]1 left
06:55
[particle] joined
07:02
spider-mario left
07:08
mr-foobar left
07:09
gfldex joined
07:11
vendethiel left
07:15
rurban joined
07:17
diana_olhovik joined
07:23
gfldex left
07:26
FROGGS left,
Rounin joined
07:27
virtualsue joined
07:28
kaleem left
07:30
vendethiel joined
|
|||
raydiak | hm composable logging is hard | 07:34 | |
avuserow | I'm finding it to be yet another lesson in API design being hard | 07:36 | |
if you have thoughts, I'm interested :) | |||
07:37
jack_rabbit joined,
fhelmberger joined
|
|||
raydiak | after bumbling around the problem for a while...that was my first articulate thought :) | 07:39 | |
just brainstorming, I have a few random ideas but they all have obvious problems | |||
like a role "does Loggable" or so, might be interesting | 07:40 | ||
but I don't want to tie people to OO style to be able to just log stuff | |||
07:41
brrt joined
|
|||
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 | ||
kind of inspired by web frameworks how they route URLs | |||
but with $?PACKAGE (by default) | 07:42 | ||
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:45 | |
07:45
echowuhao left
|
|||
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:46 | |
we have one place that has some special package, which wants its own file | 07:47 | ||
so that'd be a second call | |||
potentially. just tossing out ideas | |||
07:47
FROGGS joined
|
|||
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:50 | |
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)... | ||
right and formatting | 07:52 | ||
07:53
FROGGS[mobile] left
|
|||
avuserow | I don't think we need anything like file-based configuration, custom logging levels, etc | 07:55 | |
07:55
darutoko joined
07:56
jack_rabbit left
07:57
Guest45 joined
|
|||
raydiak | likely not | 07:57 | |
avuserow | is this something you're interested in helping with? | 07:58 | |
07:58
baest joined,
telex left
|
|||
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 | ||
that was adu++, I don't know much about other logging solutions :) | |||
adu | oh what? | ||
08:00
telex joined
|
|||
avuserow | I'll just give you both commitbits :) | 08:00 | |
08:01
Mouq left
|
|||
raydiak | needs a solid plan though, it's all still very murky to me | 08:02 | |
08:02
prime- joined
|
|||
avuserow | okay. I'm going to sleep on it, and then see what makes sense | 08:03 | |
overall, do you like the exported function style of thing for the main usage? | |||
raydiak | yes it's very unobstrusive | 08:04 | |
unobtrusive | |||
08:04
prime left
08:05
average joined
08:06
Sir_Ragnarok left
|
|||
dalek | c: d81e22b | moritz++ | / (2 files): Document missing DateTime methods. also correct some signatures, and remove from WANTED file |
08:06 | |
c: c59ffcf | moritz++ | lib/Type/DateTime.pod: DateTime usage example |
|||
TimToady | m: say (1/81).base(10,40) | ||
camelia | rakudo-moar 322c46: OUTPUT«0.0123456790123456790123456790123456790123» | ||
TimToady | m: say (1/81).base-repeating(10) | 08:07 | |
camelia | rakudo-moar 322c46: OUTPUT«0.(012345679)» | ||
TimToady | m: say (1/8100).base-repeating(10) | ||
camelia | rakudo-moar 322c46: OUTPUT«0.00(012345679)» | ||
TimToady | m: say (1/(2**32-1)).base-repeating(16) | 08:08 | |
camelia | rakudo-moar 322c46: OUTPUT«0.(00000001)» | ||
08:08
Sir_Ragnarok joined
|
|||
TimToady | m: say (1/(2**32-1)).base-repeating(10) | 08:08 | |
camelia | rakudo-moar 322c46: OUTPUT«0.0(000000002328306437080797375431469961868475648078246891516783947943892317811002097514225658381875990513217633243933700314707518628497495927963754145420099176797107601723891590191957445394237862293198206995892852310997632404555946682709256811698259974759…» | ||
moritz | base-repeating? Is that new? | 08:09 | |
TimToady | yes | ||
m: say (1/6).base-repeating(10) | |||
camelia | rakudo-moar 322c46: OUTPUT«0.1(6)» | ||
moritz guesses the camelia rakudo rebuild works fine :-) | |||
TimToady | looks like :) | ||
the second arg to .base is also new | 08:10 | ||
and should probably be used by fmt | |||
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 :) | ||
avuserow sleep & | |||
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 | ||
g'night | 08:11 | ||
TimToady | m: say 42.7777777777e0.base(10) | ||
camelia | rakudo-moar 322c46: OUTPUT«42.77777778» | ||
TimToady | star: say 42.7777777777e0.base(10) | 08:12 | |
camelia | star-{m,p} 2015.01: OUTPUT«42.77777777» | ||
TimToady | note the bug in star as well | ||
m: say 42.7777777777e0.base(10,0) | |||
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-…» | ||
TimToady | hmm | 08:13 | |
m: say 42.7777777777e0.base(16,0) | |||
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-…» | ||
TimToady | coulda sworn that worked | ||
moritz | what's it supposed to do? | 08:14 | |
TimToady | return 43.base(16), basically | ||
m: say 42.7777777777e0.base(16,1) | |||
camelia | rakudo-moar 322c46: OUTPUT«2A.C» | ||
TimToady | m: say ^0 | 08:16 | |
camelia | rakudo-moar 322c46: OUTPUT«0..^0» | ||
TimToady | m: say (^0).list | ||
camelia | rakudo-moar 322c46: OUTPUT«» | ||
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:17 | |
adu | yey | 08:19 | |
TimToady | I think I see the problem | ||
adu | raydiak: thanks :) | 08:20 | |
raydiak: and merged | |||
08:25
average left
|
|||
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 :) | ||
FROGGS | adu / raydiak: it would be quite awesome to implement that using your parser... eli.thegreenplace.net/2012/12/17/du...ith-clang/ | 08:27 | |
(for C) | |||
adu | FROGGS: oOo | ||
FROGGS | as a helper for library binding authors and perhaps as a binding generator later too | 08:28 | |
08:28
wicope joined
|
|||
adu | well that could be a logging level | 08:28 | |
NOTE could be for structs and functions | 08:29 | ||
and DEBUG could be for "we just encountered a greater than sign" | |||
FROGGS | hmmm, sounds good | 08:30 | |
raydiak | oh that's neat | ||
dalek | kudo/nom: e1eebb3 | TimToady++ | src/core/Real.pm: fix Real.base to round right when 0 frac digits |
08:31 | |
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: gist.github.com/raydiak/e6f2e34c0589620253c2 | 08:32 | |
never actually tried using it yet tbh :) | |||
I think we already have a 0mq module anyway though, iirc | |||
adu | raydiak: o wait, that's Perl6 | 08:33 | |
*mind blown* | |||
08:34
virtualsue left
|
|||
raydiak | yeah *that's* what many of us want to use C::Parser for more than anything right now :) | 08:34 | |
08:37
vendethiel left,
Guest45 left
08:39
vendethiel joined
|
|||
FROGGS | :o) | 08:40 | |
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? | ||
FROGGS | seems so :D | ||
raydiak: call it pig! | 08:45 | ||
08:45
Ven joined
|
|||
FROGGS | (Perl 6 interface generator) | 08:45 | |
raydiak | ha! | ||
nice :) | |||
raydiak is looking up swig | |||
FROGGS | raydiak: so you try next to put class type names into the signatures instead of the opaquepointers? | 08:46 | |
08:48
Ven left
|
|||
raydiak | FROGGS: yes that'd certainly be nicer | 08:49 | |
FROGGS | but I see the level of complexity that it carries :o) | ||
raydiak | for simple structs and such it wouldn't be bad | 08:51 | |
08:54
virtualsue joined
|
|||
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:55 | |
adu | raydiak: sw6p | 08:56 | |
or do you have a name in mind? | 08:57 | ||
raydiak | nope, that could work... | ||
well, PIG was pretty good... FROGGS++ idea | 08:58 | ||
08:59
tengignick joined,
rurban left
|
|||
raydiak | afk a few, preparing for bed | 09:02 | |
FROGGS | swag would also work I guess | 09:03 | |
moritz | panda, pig, FROGGS, camelia... seems' we're pretty animalistic in here :-) | ||
FROGGS | sleep well raydiak | ||
:D | |||
raydiak: swag is better me thinks :o) | 09:04 | ||
09:06
pmqs left
09:09
zakharyas joined
|
|||
adu | swa6 | 09:13 | |
good night | 09:15 | ||
09:15
adu left
|
|||
jnthn | If it's changing C into Perl 6, you could call it Cameleon :P | 09:18 | |
09:20
rindolf joined,
rindolf left
09:21
rindolf joined
09:25
vendethiel left
|
|||
raydiak | I do like animals very much... | 09:25 | |
09:25
Ven joined
09:26
alini joined
09:31
[particle]1 joined
09:34
[particle] left,
kaleem joined,
spider-mario joined
09:39
Ovid joined,
Ovid is now known as Guest11706
|
|||
raydiak | good night #perl6 | 09:40 | |
09:40
abraxxa joined
09:41
espadrine joined
09:43
Ven left
|
|||
moritz | www.p6c.org had 11GB traffic in January, hack.p6c.org had 4GB | 09:45 | |
that's surprisingly little, IMHO | |||
nwc10 | so run a CPAN mirror? :-) | 09:46 | |
09:46
Mouq joined
|
|||
moritz | :-) | 09:46 | |
though traffic to the debian mirror isn't included, because there's one inside the AS where the servers lives | |||
(and only traffic from/to the outside is counted) | |||
jnthn | Bah, just make and host Perl 6 screencasts. In 4K high definition. :P | 09:47 | |
moritz | :-) | ||
it's *not* a problem that they use so little traffic | |||
09:50
Mouq left
09:51
Hor|zon joined
|
|||
[ptc] | hrm, I get the Debian/Apache "it works!" page on hack.p6c.org | 09:52 | |
is it supposed to do that?? | |||
moritz | [ptc]: I haven't got around to configure it to show a different website | 09:57 | |
[ptc]: it currently only runs an apache at all to be able to export home dirs | |||
home.p6c.org/~moritz/ like this | |||
[ptc] | ah, ok | 09:58 | |
09:59
[Sno]_ left
10:04
_mg_ joined
|
|||
moritz | but maybe hack.p6c.org as a website should simply show the same as www.p6c.org/ | 10:07 | |
nwc10 | moritz: could you make it show the most useful "how to get involved" page? | 10:08 | |
10:08
rurban joined
|
|||
arnsholt | FROGGS: I'm a bit suspicious of the MoarVM patch you linked in the Zavolaj 32 bit issue | 10:08 | |
FROGGS | arnsholt: why? | 10:09 | |
arnsholt | For one thing, it should be work that way already | ||
And what's up with the "if (bits == 64 && spec->boxed_primitive == MVM_STORAGE_SPEC_BP_INT)" test? | |||
Both int and int64 will match that | |||
FROGGS | ohh | 10:10 | |
good point | |||
arnsholt | Anyways, get_int should read the correct number of bits depending on the attribute type already, I think | ||
(At least it does on Parrot, IIRC) | |||
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 | ||
arnsholt: it does | |||
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
_mg_ left,
tengignick left
|
|||
FROGGS | because int can happily be 128 in theory | 10:12 | |
128bits* | |||
so, we really really need a 'long' type for library bindings | 10:13 | ||
int itself is nice to write optimizable code, but it does not map to C semantics | 10:14 | ||
10:18
sqirrel__ joined
|
|||
dalek | p: 71e9494 | lizmat++ | docs/ops.markdown: Document nqp::lstat |
10:22 | |
10:23
chenryn__ left
|
|||
FROGGS | arnsholt: look at #moarvm, we get to a better solution me thinks | 10:25 | |
arnsholt: now it just needs to work :o) | |||
10:31
pecastro joined
10:38
tengignick joined
10:51
rindolf left
10:52
alini left,
sqirrel__ left
10:54
alini joined
10:58
Ven joined,
wicope left
|
|||
masak | good noon, #perl6 | 11:03 | |
11:05
vendethiel joined
|
|||
moritz | \o masak | 11:05 | |
Ven | o/ masak | 11:06 | |
jnthn | o/ masak | 11:07 | |
11:08
coffee` joined,
asdf12z_ left
|
|||
[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 | |
11:11
chenryn__ joined
|
|||
[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. | ||
[ptc] | moritz: that could work. I'll try it out. Thanks! | 11:12 | |
masak | I'm over here :) | ||
you're welcome -- good luck. | |||
[ptc] | masak: sorry! | ||
jnthn | The m-space is crowded... :P | ||
[ptc] | was tab completion in irssi :-/ | ||
... or just a bad case of PEBKAC | 11:14 | ||
11:21
sqirrel__ joined
|
|||
masak | no worries ;) | 11:27 | |
we find it amusing, most of the time. | |||
in fact moritz and I speculate that we might be the Heir of Gryffindor. | 11:28 | ||
nwc10 | masak: for some value of noon, strangely consistent with the exact time that various sirens are tested in Schwechat every Saturday. | 11:29 | |
masak | mwhahaha | 11:35 | |
er. I mean. wasn't me. | |||
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 | ||
yoleaux | lizmat: I'll pass your message to nine. | ||
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. | ||
lizmat | jnthn: am I making sense here? ^^^ | ||
thinking about calling Perl 5 from start blocks | 11:42 | ||
which would basically give you the mess that perl 5.005 threads were | |||
nwc10: thoughts? ^^^ | |||
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 \{\} \+` | ||
jnthn | lizmat: But if it migrates over threads over time, it doesn't appear to get so upset... | ||
11:43
spider-mario left
|
|||
jnthn | lizmat: Just matters 2 threads ain't in there at once | 11:43 | |
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 | ||
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 | ||
lizmat | ok, so my worries are moot | ||
cool | |||
btyler | unfortunately our $work perl is compiled without multiplicity, so we couldn't take the experiment much further | 11:45 | |
lizmat | but at $work, you build your own Perl's anyway, right ? | 11:46 | |
so building one *with* multiplicity, would just make life on the sysadmins a bit more difficult :-) | |||
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 | ||
right :P | |||
lizmat | gotcha | 11:47 | |
was the difference between building with / without multiplicity actually measurable ? | |||
11:48
[Sno] joined
|
|||
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:50 | |
11:55
xiaomiao left
|
|||
nwc10 | lizmat: thoughts on what? | 11:55 | |
lizmat | calling Inline::Perl5 code from start blocks in P6 | ||
nwc10 | I have no idea what might go wrong with that. | ||
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 | ||
IIRC it changes which OS thread is associated with an interpreter | |||
rules being | |||
1) only one OS thread can run the interpreter at any time | |||
2) you must update the Thread Local Storage used by the Perl 5 VM so that it's consistent | 11:57 | ||
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 | |||
lizmat | is my thinking correct that each P5 interpreter has its own "World" ? (aka globals, code refs, etc. ?) | 11:58 | |
11:58
xiaomiao joined
|
|||
nwc10 | lizmat: when compiled with -DMULTIPLICITY, yes | 11:58 | |
otherwise some things are in static variables | |||
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 | ||
you can hear the stomping in the background | 12:00 | ||
lizmat | and if you *do* have multiplicity, you have different worlds in each thread | ||
much like ithreads | |||
so when we get P5 hipsters coming along combining their P5 code with P6 concurrency | 12:01 | ||
nwc10 | ithreads builds atop multiplicity | ||
lizmat | it's most likely to become a big disappointment | ||
12:01
Ven left
|
|||
lizmat | nwc10: yeah, ithreads are basically, spawn new interpreter, copy everyting from parent interpreter, right ? | 12:01 | |
nwc10 | yes, exactly that, and IIRC "keep the mapping of what was copied to where" | 12:02 | |
(for return values) | |||
lizmat | ack, and create a hidden interpreter for sharing values through tie() | 12:03 | |
btyler | this works pretty well: gist.github.com/kanatohodets/66978...006b45a67b (perl 5 worker pool) | ||
nwc10 | I think that's technically in threads::shared, but yes, that's the implemnentation | ||
it's not directly tie, but it's built on the same internals | |||
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) | ||
jnthn will give the concurrency stuff some love once he's done with natives and got some headway on NFG :) | 12:04 | ||
btyler | lizmat: fwiw, I didn't have any expectation of cross-thread state between perl5 VMs when wrangling them from multithreaded p6 | 12:06 | |
nwc10 | it's not going to be possible to do anything better than ithreads within Perl 5, even if embedded | 12:07 | |
*however* | |||
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 | ||
12:08
H2O1 joined
|
|||
nwc10 | *that* could be quite a win. | 12:08 | |
jnthn | nwc10: Yes, I think that's the sane approach. | ||
|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
|
|||
lizmat | so each P5 thread would only do lexicals ? | 12:08 | |
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 | |
but such an optimisation would prevent the orchestration idea | |||
you can either avoid copies | |||
or avoid free-running threads | |||
in the end, free-running threads might be the bigger win | |||
KISS on the Inline::Perl5, lots of copying, and then give a business case for migrating | 12:10 | ||
12:10
vendethiel left
|
|||
|Tux| | hmm, it does not | 12:11 | |
dalek | Heuristic branch merge: pushed 169 commits to doc/add_pygments_highlighting by paultcochrane | ||
|Tux| | gist.github.com/Tux/f75151ca740edc6e79e3 | 12:13 | |
lizmat | |Tux| could you try with --optimize=0 ? | ||
jnthn | I highly doubt that's opt related :) | 12:14 | |
12:14
ggoebel111111114 joined
|
|||
jnthn | It has to be a literal range as the argument to for | 12:14 | |
|Tux| | same | ||
12:15
ggoebel111111113 left
12:16
abraxxa left
|
|||
lizmat | jnthn: just making sure :) | 12:18 | |
ok, seems P5 gets it right (if we would consider that the right behaviour, of course) | 12:20 | ||
jnthn | I'm not sure I consider writing code that depends on such things as "right behavior" :P | 12:21 | |
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«012345678910» | ||
12:24
vendethiel joined
12:25
_mg_ joined
|
|||
|Tux| | lizmat, no, I need the rest of the lsit intact, as I also use indices to surrounding elements | 12:25 | |
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
|
|||
lizmat | avuserow: shouldn't a generic logger just be a Supply, to which anybody can create a .tap ? | 12:35 | |
a tap that would note() everything, or one that would say() everything, or one that would say to a specific (perhaps dynamic) handle ? | 12:36 | ||
12:36
Mouq left
|
|||
dalek | kudo/newio: e5c533c | timotimo++ | src/Perl6/Grammar.nqp: hint at "my Type sub name" when writing "sub Type name" |
12:39 | |
rakudo/newio: f2d4b88 | timotimo++ | src/Perl6/Grammar.nqp: | |||
rakudo/newio: tune the error message some more | |||
12:39
dalek left
|
|||
lizmat | sorry dalek | 12:39 | |
12:39
rmgk_ joined,
rmgk is now known as Guest19248,
rmgk_ is now known as rmgk,
dalek joined,
ChanServ sets mode: +v dalek
12:40
kurahaupo1 joined
12:42
Guest19248 left
12:43
kaare_ left
12:45
kurahaupo1 left
|
|||
dalek | ecs/newio: faedde9 | lizmat++ | S16-io.pod: .IO.l-o doesn't make sense |
12:46 | |
12:46
vendethiel left
12:47
Woodi joined
|
|||
timotimo | o/ | 12:49 | |
dalek | kudo/nom: 8895666 | timotimo++ | src/Perl6/Grammar.nqp: important not to succeed this match when not panicking |
||
|Tux| | @keep = @ch[ $i .. * ]; <= is that legal for index $i till the end? | 12:50 | |
lizmat | yeah? | ||
m: my @a = ^10; my $i = 3; say @a[ $i .. * ] | 12:51 | ||
camelia | rakudo-moar e1eebb: OUTPUT«3 4 5 6 7 8 9» | ||
|Tux| | toppie. that was intuitive :) | 12:52 | |
lizmat | m: my @a = ^10; my $i = 3; say @a[ $i .. * ]:splice # might be a nice addition | ||
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» | ||
lizmat | although technically hard to do, as @a could be aliased to an infinite list | 12:53 | |
m: my @a = ^Inf; my $i = 3; say @a[ $i .. * ] | 12:54 | ||
m: my @a := ^Inf; my $i = 3; say @a[ $i .. * ] | |||
m: my @a := ^Inf; my $i = 3; say @a[ $i .. 10 ] | |||
sorry camelia :-( | |||
camelia | rakudo-moar e1eebb: OUTPUT«(timeout)» | ||
rakudo-moar e1eebb: OUTPUT«3 4 5 6 7 8 9 10» | |||
FROGGS | m: my @a = ^10; my $i = 3; say @a[ { say $_ }; $i .. * ] | 12:55 | |
camelia | rakudo-moar e1eebb: OUTPUT«10» | ||
12:55
Ven joined
|
|||
timotimo | what do we expect :splice to do? | 12:57 | |
12:57
MadcapJake left,
skids left,
MadcapJake joined
12:59
kurahaupo1 joined
|
|||
moritz | error out | 13:01 | |
|Tux| | no goto in perl6? | 13:02 | |
Ven | |Tux|: "not yet" | 13:03 | |
|Tux| | ok | ||
lizmat | @a = ^100; my @keep = @a[ ^10 ]:splice; say @a.elems # 90 | ||
FROGGS | |Tux|: if you are searching for 'goto &subref' there is callsame, callwith, nextsame and nextwith | 13:06 | |
|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 | ||
k | |||
|Tux| | now I need a nested loop | ||
with additional indent :( | |||
FROGGS | and with your indentation style :o) | ||
masak usually prefers the loop | |||
FROGGS | me too | ||
|Tux| | well, it is inherent to playing with $/ | 13:08 | |
you might need to read more, but one doesn't know ahead | |||
lizmat | |Tux|: generic goto is not implement | 13:09 | |
but labeled loops and "next label" *are* | |||
13:09
chenryn__ left
|
|||
|Tux| | that sounds evil :) | 13:09 | |
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 } | ||
camelia | rakudo-moar e1eebb: OUTPUT«56789» | ||
|Tux| | «LOOP: loop {} next LOOP;» allowed? | ||
FROGGS | m: LABEL: for ^10 { next LABEL if $_ < 5; .say }; say LABEL | ||
camelia | rakudo-moar e1eebb: OUTPUT«56789Label<LABEL>(at /tmp/JqSVfQf6Wi:1, '⏏LABEL: for ^10 { next LAB')» | ||
FROGGS | |Tux|: that does not make sense | ||
lizmat | m: LABEL: for ^10 { next LABEL if $_ < 5; .say }; next LABEL | ||
camelia | rakudo-moar e1eebb: OUTPUT«56789» | ||
|Tux| | yes, it does: goto LABEL :P | ||
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" | ||
camelia | rakudo-moar e1eebb: OUTPUT«56789done» | ||
FROGGS | |Tux|: not in my world :o) | ||
13:11
vendethiel joined
|
|||
FROGGS | lizmat: it misses the handle and exists | 13:11 | |
there is a ticket for that AFAIK | |||
|Tux| regrets the shalow imagination of FROGGS :P | |||
FROGGS | *g* | ||
13:12
sqirrel__ left
|
|||
dalek | kudo/newio: 9389a54 | lizmat++ | src/core/IO.pm: Remove some internal helper subs we don't need |
13:13 | |
kudo/newio: 0a42459 | lizmat++ | src/core/IO (2 files): Fix two missed .i/.v -> .inode/.device refactors |
|||
kudo/newio: 688e218 | lizmat++ | src/core/IO (3 files): Implement IO.l-* methods as in S16-io (newio) |
|||
|Tux| | is $io.get auto-chomped? | ||
lizmat | yes, unless you specify :!chomp | 13:14 | |
|Tux| | that explains a lot ... | ||
masak likes it | 13:15 | ||
Ven kinda likes that lizmat's internal helpers are CL-CASED | |||
13:15
Hor|zon left
|
|||
lizmat | afk for a bit | 13:16 | |
|Tux| | can I - already having an IO - (temporarily) - disable that using a method? | ||
«my Bool $chomped = $io.chomp;» => Cannot modify an immutable Bool | 13:17 | ||
doc.perl6.org/language/io is empty now | 13:18 | ||
13:21
_mg_ left
13:23
_mg_ joined
|
|||
|Tux| | gist.github.com/Tux/4dbf087e5718a1dfee7f - My opinion on exit/return/dia before else | 13:25 | |
13:30
_mg_ left
|
|||
|Tux| | IO::Handle does IO => has $.chomp = Bool::True; | 13:30 | |
should that not be has $.chomp is rw = Bool::True; | |||
13:32
kurahaupo1 left,
vendethiel left
|
|||
|Tux| | Grrr, auto-chomp cost me 1 hour of debugging | 13:33 | |
|Tux| learned a lot though | |||
13:33
kaleem left
13:34
rurban1 joined
|
|||
timotimo | lizmat: fwiw, in the code tux posted, you could probably do well by using nqp ops like "eqat" | 13:37 | |
13:38
larion joined
|
|||
timotimo | i remember building an optimization that'll turn eqat with a one-character-long needle into an ordat op instead | 13:38 | |
Ven | |Tux|: your comment line 4 seems misguided | 13:40 | |
or maybe it's me instead | |||
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:44
Sqirrel left
13:47
virtualsue left
13:48
virtualsue joined
|
|||
jnthn | afk until late-ish this evening o/ | 13:49 | |
FROGGS | o/ | 13:52 | |
13:52
Ven left
13:53
rurban left,
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
13:54
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
13:55
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
13:56
vendethiel joined,
Ven joined
13:58
H2O1 joined
|
|||
timotimo | the optimization i talked about there is only on parrot :\ | 13:59 | |
i wonder if i should port it | |||
13:59
tinyblak joined
14:00
H2O1 left
14:01
rurban joined
|
|||
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:03 | |
|Tux| | whatever | 14:04 | |
thank you! | |||
14:12
Hor|zon joined
|
|||
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:12 | |
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. | ||
moritz | old habits die hard | 14:14 | |
14:15
pecastro left,
rindolf joined
|
|||
|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? | ||
masak | oh, sorry, 30+ years ago. | ||
14:16
Hor|zon left
|
|||
|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. | ||
|Tux| | again, are there compelling reasons why IO::Handle.chomp not is rw? | ||
dalek | kudo/newio: ae33f3d | lizmat++ | src/core/IO.pm: Refactor MAKE-ABSOLUTE-PATH with Tux++ inspiration |
14:18 | |
|Tux| | :) | 14:19 | |
compact! | |||
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 tux.nl/style.html | ||
|Tux|: I don't understand the connection between those two things in that sentence. | |||
|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." | ||
and that would actually make more sense to me. | |||
|Tux| | as {} bind the statements inside the block, IMHO it belongs to the block | 14:21 | |
14:21
kjs_ joined
|
|||
dalek | kudo/nom: 742b018 | lizmat++ | src/core/IO/Handle.pm: Make .chomp rw, Tux++ |
14:21 | |
masak | hence your "Because..." sentence does not feel like an explanation to me. | ||
lizmat | afk for an hour or so | ||
masak | emotionally, the indented '}' brace in those example looks off-putting to me. and rationally, I fail to see the benefit. | ||
|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. | ||
which, of course, is your choice. | |||
14:22
pecastro joined
|
|||
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 | |
still don't see it. | |||
|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) | ||
muraiki | do we need a perl 6 version of gofmt? | ||
:) | |||
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 | ||
makes more sense now? | |||
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. | ||
muraiki | I also consider that very odd. so two people | ||
no offense intended :) | |||
masak | |Tux|: yes, that makes more sense. | 14:25 | |
|Tux| | pheeuw :) | ||
|Tux| updates the page ... | |||
masak | |Tux|: I... I don't think I consider the '}' to be "part of the block" in that sense. | ||
|Tux| | I do understand that! | ||
masak | it's sort of already ending the block, so it's definitely not "inside" the block, if you see what I mean. | ||
to me, the symmetry of the '{' not being indented and the '}' not being indented is pleasing and easy to explain. | 14:26 | ||
14:27
Ven left
|
|||
|Tux| | paragraph added | 14:27 | |
14:28
alini_ joined
|
|||
masak | nice. | 14:28 | |
yes, I understand your reasoning better now. | |||
it's just the premise I disagree with. | |||
14:29
alini left,
alini_ is now known as alini
|
|||
|Tux| | thanks for asking though and being persistent in having me explain | 14:32 | |
right, so chomp is now rw, but it still doesn't work as I hoped | 14:34 | ||
gist.github.com/Tux/9e4a125bfe499e63c9eb | 14:35 | ||
apart from style and indent :) what is wrong there? | |||
14:38
Hor|zon joined
14:40
skids joined
14:45
pdcawley joined
|
|||
El_Che | pdcawley: I saw yesterday your oscon presentation! :) | 14:48 | |
pdcawley | El_Che: Which one? | 14:54 | |
15:01
xiaomiao left
15:04
xiaomiao joined,
pmurias joined
15:09
xiaomiao left
15:10
xiaomiao joined
15:11
Ven joined,
brrt left,
adu joined
15:13
chenryn__ joined
15:14
xfix left
15:15
xfix joined
|
|||
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:15 | |
|Tux| | me too | 15:16 | |
hé, we agree! | |||
15:19
adu left
|
|||
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 | |
Actually had to hack cperl-style's internals to make it so that it could actually indent in that style too. | |||
masak | pdcawley: I'm not saying that all styles are equally pleasant, or equally helpful. | 15:22 | |
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 | |
I know this, because I've experienced it :) | |||
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
15:24
alini left,
alini_ is now known as alini
|
|||
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:24 | |
it completely misleads me every time I try to get a high level view of code. | 15:25 | ||
masak | pdcawley: the *horror*! o.O | ||
pdcawley | masak: :) | ||
It shouldn't be awful, but it is. | |||
masak | fortunately, no-one from the last couple of hours of #perl6 backlog would think to do something that awful. | 15:26 | |
much less advocate it. :P | |||
FROGGS | *g* | ||
15:26
Mouq joined
|
|||
pdcawley taps his sarcasm detector and wonders if he missed something :) | 15:27 | ||
masak | at this point, I encourage you to backlog. | ||
FROGGS stays silent then | |||
Ven | .oO( the froggs know ) |
||
FROGGS | Ven: he always knows :o) | ||
pdcawley | masak: Ah... I don't have that backlog in this client... probably for the best :) | 15:28 | |
masak | pdcawley: irclog.perlgeek.de/perl6/2015-02-13 | ||
pdcawley: maybe from here: irclog.perlgeek.de/perl6/2015-02-13#i_10110933 | |||
pdcawley | masak: oh god. That's utterly evil. | 15:30 | |
FROGGS | :P | ||
El_Che | pdcawley: the one about data type and your RSI :) | 15:31 | |
pdcawley | El_Che: Ah. Yes. | ||
|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
|
|||
|Tux| | It shouldn't be awful, but it is. | 15:32 | |
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 | |
15:33
araujo joined,
araujo left,
araujo joined
|
|||
pdcawley | |Tux|: And you probably suffer more - you're in a minority when it comes to } style. | 15:33 | |
|Tux| | naturally | ||
15:33
Rounin left
|
|||
|Tux| | as the answer to both pdcawley and FROGGS | 15:33 | |
FROGGS | hehe | 15:34 | |
|Tux| | 30+ years of being used to it | ||
FROGGS | yeah, probably | ||
masak | |Tux|: how do you indent XML? | ||
|Tux| | likewise :) | ||
masak | ...the closing tag is aligned with its contents? | 15:35 | |
|Tux| | yep | ||
masak | I'm at a loss for words. | ||
|Tux| | same for html | ||
got to that style url and look at the source | |||
and for json idem | 15:36 | ||
b2gills | m: (2264129042459209/3656158440062975).base-repeating(36).say | 15:37 | |
camelia | rakudo-moar 742b01: OUTPUT«0.(MAKEITSTOP)» | ||
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 | ||
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. | |||
|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 | ||
masak | pdcawley: there's a Perl 6 slang to accommodate for |Tux|'s desire for whitespace in that spot. | ||
|Tux| | pascal looks so much better this way: | ||
IF expression THEN | |||
BEGIN | |||
.... | |||
END; | |||
that is where it all started | |||
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. | ||
|Tux| | pdcawley, did you ever took the time to read tux.nl/style.html ? | ||
pdcawley | |Tux|: skimming it. | ||
btyler | it's a nice bit of visual differntiation in js for definition vs invocation for me | ||
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
|
|||
pdcawley | btyler: ? | 15:41 | |
|Tux| has «#define unless(e) if (!(e))» in C :) | |||
FROGGS | |Tux|: we all love 'unless' :o) | ||
pdcawley | generally, I do 'function foo (args...) { ... }' when defining a function, and 'foo(...)' when applying it in JS. | ||
Kristien | m: say 2.sqrt * 2.sqrt == 2 | ||
camelia | rakudo-moar 742b01: OUTPUT«False» | ||
btyler | pdcawley: exactly :) | 15:42 | |
space between foo and (args...) | |||
pdcawley | btyler: Yeah, but |Tux| is talking about using the whitespace in the _call_, not the definition. | ||
b2gills | Mouq: I didn't come up with it Kristien did irclog.perlgeek.de/perl6/search/?ni...AKEITSTOPM | ||
FROGGS | m: say 2.sqrt.WHAT | 15:43 | |
camelia | rakudo-moar 742b01: OUTPUT«(Num)» | ||
btyler | oh, missed that aspect of Slang::Tuxic | ||
15:44
chenryn__ left
|
|||
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 | ||
|Tux| | what is the default auto-indent style for vim and emacs? | 15:45 | |
pdcawley | Not one any sane person uses :) | 15:46 | |
|Tux| | heh again, something to agree on :) | ||
pdcawley | if (...)\n {\n code;\n } | ||
ie, the braces floating on a half-indent and on their own bloody line. | 15:47 | ||
FROGGS | that's GNU style, isnt it? | ||
Kristien | b2gills: wrong | ||
15:48
chenryn__ joined
|
|||
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. | ||
|Tux| | yeah, so much for consistency :P | ||
pdcawley | FROGGS: yes. Which is the style that |Tux| specifically refers to in his article about indent styles. | ||
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 '()' | ||
Kristien | b2gills: yes! | 15:49 | |
15:49
adu joined
|
|||
pdcawley | masak: What's legal in a symbol name these days? | 15:49 | |
pdcawley rather likes haskell/lisp's approach to tokenising symbols :) | 15:50 | ||
Ven | haskell's approach? | ||
15:50
chenryn__ left
|
|||
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) | ||
Kristien | That's not the case in Haskell. | 15:51 | |
a+b is three tokens in Haskell. | |||
Ven | ^ | ||
that's the case in agda, though | |||
pdcawley | Kristien, but a' is one. | ||
Ven | yeah, but ' is an exception... | ||
Kristien | yes, but + is not whitespace or a parenthesis | ||
Ven | a-z A-Z _ ' | ||
pdcawley | Ven: Really? You can't have "test?" as a function name? | 15:52 | |
Kristien | Ven: digits | ||
Ven | we have ' in perl6 as well, tho we dont allow primes | ||
pdcawley: no | |||
Kristien: whoops, right | |||
pdcawley | Ven: fair enough. | ||
masak | pdcawley: same as most languages: alphanumerics and underscores, except first has to be alphabetic. | ||
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 | ||
masak | pdcawley: we also allow hyphen and apostrophe before alphabetics. | ||
geekosaur | andlikewise operators are Unicode symbol class | ||
pdcawley | so $foo-bar is legal. | ||
masak | yes. | ||
pdcawley | $foo-9 is $foo - 9 | ||
masak | m: say my $foo-bar = "OH HAI" | ||
camelia | rakudo-moar 742b01: OUTPUT«OH HAI» | ||
masak | m: say my $foo-9 = "OH HAI" | ||
camelia | rakudo-moar 742b01: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/ci4b4EHsnh:1Cannot modify an immutable Int in block <unit> at /tmp/ci4b4EHsnh:1» | ||
pdcawley | text->str parses as text -> str, I assume then. | 15:54 | |
masak | aye. | ||
geekosaur | that error seems a little LTA | ||
pdcawley | $value.zero? | ||
masak | pdcawley: '.' is attr access. | ||
pdcawley: '?' is not allowed in identifiers. | |||
pdcawley | masak: Aw :) | 15:55 | |
masak | pdcawley: make a slang :) | ||
pdcawley | One of the bits of ruby/scheme style I rather like. | ||
masak: I'm more likely to make a slang for control structures than for tokenization rules :) | |||
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 | ||
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. :) | ||
(or anyone else, for that matter) | |||
pdcawley | masak: So... what's legal in an operator name :) | ||
masak | pdcawley: almost anything. | ||
timotimo | nonprintables aren't allowed though | 15:58 | |
pdcawley | timotimo: because we're crazy, but not _that_ crazy. | ||
Ven | masak: would you? *g* | ||
masak | Ven: I've been known to before. | ||
also, I'm all for imbuing our approach to slangs with a sense of fun and play. | 15:59 | ||
& | |||
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 | ||
|Tux| | maybe that doesn't bother me | 16:01 | |
not do I care if people use tables and/or mixed whitespace | |||
tabs | |||
timotimo | Kristien: i'm a bit worried we may never be able to get that kind of sophisticated optimization into moarvm | 16:02 | |
not enough money and people-time :( | |||
Ven | timotimo: skilled-people-time* :P | ||
Kristien | coliru.stacked-crooked.com/a/22a853e80acbf99e | ||
it generates quite a lot of code though | |||
I wonder whether the vectorisation buys anything | |||
Optimising non-tail recursive to tail recursive functions may not be an incredibly difficult task for simple functions, though. | 16:04 | ||
timotimo | though, i must say ... how often do you actually end up with tail recursive functions in a more imperative language? | 16:05 | |
if you're purely functional, it's worth a lot i'm sure | |||
FROGGS | ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; sub foo? ($a) { say $a }; foo? 42' | 16:06 | |
42 | |||
~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; sub foo? ($a) { say $a }; foo! 42' | |||
===SORRY!=== Error while compiling -e | |||
Undeclared routine: | |||
foo! used at line 1. Did you mean 'foo?'? | |||
seems to do :o) | |||
Ven | FROGGS, the slang guy | 16:07 | |
.oO( FROGGS , da slang gui ) |
|||
timotimo | "slangence"? | 16:09 | |
b2gills | Calling it Piersing is actually quite apt duckduckgo.com/?q=Piers+Cawley+library | ||
jdv79 | where is a good example of identifiers with punctuation in the wild? | 16:10 | |
Kristien | jdv79: question marks for Boolean return values | 16:11 | |
they're everywhere | |||
16:11
tengignick left
|
|||
timotimo | ruby and lisps? | 16:11 | |
Kristien | yes | ||
mainly | |||
timotimo | FROGGS: works for methods, too? | 16:12 | |
|Tux| | I got working what I planned today. WEEKEND! | ||
Kristien | Ruby also uses bangs for destructive functions, e.g. sort is pure and sort! is in-place. | ||
jdv79 | i just can't remember where i've seen them. thanks. | ||
dalek | osystem: ac91fbe | FROGGS++ | META.list: add Slang::Piercing, masak++ |
||
16:12
mr-foobar joined
|
|||
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. rebecca.blackfriday/ | ||
|Tux| | I think I already did today: chomp is rw | ||
FROGGS | ~/dev/p6-Slang-Piersing$ perl6-m -Ilib -e 'use Slang::Piersing; class Foo? { method bar! ($a) { $a ** $a } }; say Foo?.bar!(42)' | ||
150130937545296572356771972164254457814047970568738777235893533016064 | |||
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' | ||
150130937545296572356771972164254457814047970568738777235893533016064 | |||
timotimo | there is a blackfriday top level domain? | ||
wowsers. | |||
well, there's everything, i suppose | |||
|Tux| | and as that doesn't work yet as intended, I might go dig a bit in why | ||
timotimo | thank you, FROGGS :) | ||
FROGGS | timotimo: it is just copy&paste + mixing in... github.com/FROGGS/p6-Slang-Piersin...iersing.pm | ||
pdcawley | Kristien: I think Matz lifted that style from scheme, tbh. | 16:15 | |
FROGGS | ohh, I dont even need the atkeyish there | ||
Kristien | Clojure does it too. | ||
FROGGS | masak: where is my book! :P | ||
Ven | scheme did it first... :) | ||
Kristien | But destruction is extremely rare in Clojure. | ||
Ven | common lisp used "n" suffix | ||
timotimo | "<[?!]>?" :) | ||
pdcawley | Though scheme/lisp's tokenization is pretty extreme. "number->string" is a single token, for instance. | ||
Ven | pdcawley: scheme's tokenization is what you described earlier | ||
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 | ||
Ven | Kristien: I wish F# had currying. And didn't depend on tuples for interop... | ||
16:17
diana_olhovik left
|
|||
Kristien | F# has currying. | 16:17 | |
Ven | inference on currying, then | ||
Kristien | You cannot do currying for iterop since foreign functions may be arity-overloaded. | ||
Ven | oh, that I agree with, but (foo(1,2)) (or (foo (1,2)) really looks awkward | ||
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 | ||
dalek | p/longer: bb5a1c1 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: add constants for C data types |
||
Kristien | I wish >> were map instead of being merely a special case of map. | ||
16:19
johnjohn101 joined
|
|||
timotimo | where? | 16:19 | |
Kristien | in F# | 16:20 | |
johnjohn101 | hi perl6 peeps | ||
timotimo | ah | ||
hello johnjohn | |||
Kristien | >> is function composition, which is a special case of map | ||
Ven | Kristien: ...tell that to people discussing "fmap vs map" in haskell atm | ||
.oO( won't somebody think of the << ? ) |
|||
Kristien | Haskell must get rid of map and rename fmap to map. | ||
Ven | "but then we break prelude!" | ||
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 | ||
Ven | johnjohn101: 6.0 | ||
johnjohn101 | whose version of perl 6? | ||
Ven | Kristien: but for f#, I just wanted to iter, so no "map. | ||
timotimo | the community's version of perl 6 | 16:22 | |
i suppose? is that accurate? | |||
Kristien | you can implement map in terms of iter! | ||
FROGGS | johnjohn101: the specification and an implementation will be released as being 'what we think 6.0 means' | ||
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 | |
it can't infer from the type of the list | |||
FROGGS | johnjohn101: so, the language spec will gets its stamp as well as rakudo on moarvm | ||
johnjohn101 | FROGGS: ok, thanks. | ||
Kristien | In December, regressions can begin! :0 | 16:24 | |
16:24
telex left
|
|||
Kristien | From then on the language will slowly start to suck. :P | 16:24 | |
FROGGS | :P | ||
muraiki | haha | ||
16:24
Alina-malina left
16:25
Alina-malina joined
16:26
Kristien left,
telex joined
16:27
vendethiel left
16:28
vendethiel joined
|
|||
b2gills | Kristien: my response to your friday link duckduckgo.com/?q=ginny+diguiseppi...day+parody | 16:29 | |
16:29
FROGGS[mobile] joined
16:30
Ven left
|
|||
jdv79 | that is an interseting point. after 6.0 is released would a really important but massively backcompat breaking change be allowed? | 16:30 | |
dalek | p/longer: f82ceb0 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: add constant for C type long |
16:32 | |
FROGGS | jdv79: "depends" | 16:33 | |
johnjohn101 | i'm happy to see the end of the beginning for perl 6. | ||
16:33
FROGGS left
|
|||
moritz | jdv79: we can always declare a new language version, though we must be aware of the costs for maintenance | 16:33 | |
16:35
gfldex joined
16:36
Sqirrel joined
16:40
rindolf left
|
|||
pmurias | with slang it will be possible to make large changes without breaking backcompat | 16:44 | |
moritz | pmurias: maybe syntactic changes, but I don't see how it would help with a change in a central class in core | 16:48 | |
pmurias | per lexical scope monkey patching? | 16:50 | |
16:50
zakharyas left
|
|||
moritz | methods aren't lexically scoped | 16:50 | |
16:52
pdcawley left
16:53
vendethiel left
|
|||
timotimo | versioned classes? | 16:53 | |
masak | FROGGS[mobile]: wow. I'm impressed. | ||
FROGGS[mobile]: let's handle book in privmsg. | |||
timotimo | hm? | ||
16:53
echowuhao joined
|
|||
timotimo | oh, you promised him a book :D | 16:54 | |
16:55
vendethiel joined
|
|||
nine_ | pmurias: Inline::Perl6 surely works on older Perls, too. It's just the default of h2xs to require the installed Perl version | 17:02 | |
17:04
Ven joined,
Mouq left
|
|||
dalek | rl6-roast-data: 5628778 | coke++ | / (5 files): today (automated commit) |
17:05 | |
pmurias | nine_: it requires multiplicity? | 17:06 | |
nine_ | pmurias: have'nt tested without multiplicity so there's probably a place or two where I accidentally require it. | 17:08 | |
[Coke] | 3 consistent failures in rakudo-moar that need to be addressed. | 17:09 | |
S03-operators/repeat.t 33; S17-supply/start.t 9 ; integration/weird-errors.t 5 - happening on JIT & NOJIT | |||
I tried sussing out S17-supply/start, but it's very sensitive to adding debug output to the test or to Test.pm | |||
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) | ||
JVM is aborting on integration/advent2014-day05.rakudo.jvm | 17:13 | ||
nine_ | pmurias: that'd be great :) | 17:14 | |
17:16
pdcawley joined
17:20
Mso150 joined,
spider-mario joined
17:28
wicope left
17:29
Mso150 left
17:32
Kristien joined
|
|||
Kristien | hi | 17:34 | |
17:37
vendethiel left
|
|||
dalek | c: 53a206e | paultcochrane++ | lib/Type/IO.pod: Document the open() function |
17:39 | |
c: aefce9d | paultcochrane++ | lib/Language/io.pod: Remove IO-related todo items The open() sub has now been documented The options to open() have now been documented. |
|||
17:41
diana_olhovik_ joined
|
|||
TimToady | m: say (22/7).base-repeating(10) | 17:46 | |
camelia | rakudo-moar 742b01: OUTPUT«3.(142857)» | ||
17:46
pmurias left
|
|||
TimToady | is there a better notation for the repeating digits than parens? | 17:46 | |
underscore doesn't quite work, since ._ is illegal | |||
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» | ||
TimToady | like that... | ||
say 3.¹ | |||
m: say 3.¹ | |||
camelia | rakudo-moar 742b01: OUTPUT«===SORRY!=== Error while compiling /tmp/qPEDUcw8bHMissing semicolon.at /tmp/qPEDUcw8bH:1------> say 3.⏏¹» | ||
TimToady | that could be made to work, I suppose | 17:48 | |
but maybe we should just return two strings | 17:49 | ||
17:49
sqirrel__ joined
|
|||
TimToady | m: 42.777e0.base(10,0) | 17:49 | |
camelia | ( no output ) | ||
TimToady | m: say 42.777e0.base(10,0) | 17:50 | |
camelia | rakudo-moar 742b01: OUTPUT«43» | ||
Kristien | why is there no camelia command that implicitly uses say? | ||
TimToady | m: say (1/3).base(10,40) | 17:51 | |
camelia | rakudo-moar 742b01: OUTPUT«0.3333333333333333333333333333333333333333» | ||
Kristien | forgetting say happens too often | ||
ashleydev | TimToady: whats the "e0" part mean? | ||
TimToady | they other way also clutters the channel, so it's a tradeoff | ||
make it a floater | |||
otherwise it's a rat | |||
ashleydev | is there a pneumoic for that? | ||
TimToady | m: say Num(1/3).base(10,40) | 17:52 | |
camelia | rakudo-moar 742b01: OUTPUT«0.3333333333333333037273860099958255887032» | ||
TimToady | well, it pretty well matches the internals, when you have floating point, there's an exponent | 17:53 | |
we just don't automatically translate 3.14159625 into Num automatically like most language, but into Rat | |||
m: say 3.1416.WHAT | |||
camelia | rakudo-moar 742b01: OUTPUT«(Rat)» | ||
TimToady | m: say 3.1416.perl | 17:54 | |
camelia | rakudo-moar 742b01: OUTPUT«3.1416» | ||
TimToady | m: say 3.1416.nude | ||
camelia | rakudo-moar 742b01: OUTPUT«3927 1250» | ||
TimToady | m: say .1 + .2 - .3 | ||
camelia | rakudo-moar 742b01: OUTPUT«0» | ||
TimToady | as a consequence, most other languages don't produce 0 for that expression | 17:55 | |
m: say .1 + .2 - .3e0 | |||
camelia | rakudo-moar 742b01: OUTPUT«0» | ||
TimToady | m: say .1e0 + .2 - .3 | ||
camelia | rakudo-moar 742b01: OUTPUT«5.55111512312578e-17» | ||
17:56
alini left
|
|||
TimToady | and since anything to the 0th power is 1, it's a convenient notation for floating literals | 17:56 | |
Kristien | wrong! | 17:57 | |
TimToady | picky, picky | ||
:) | |||
all rules of thumb are wrong, including this one | |||
ashleydev | m: say 2e3 | 17:58 | |
camelia | rakudo-moar 742b01: OUTPUT«2000» | ||
ashleydev | m: say 2e0 | ||
camelia | rakudo-moar 742b01: OUTPUT«2» | ||
TimToady | m: say Num(.1) + .2 - .3 | ||
camelia | rakudo-moar 742b01: OUTPUT«5.55111512312578e-17» | ||
TimToady | in particular, we only need 10 ** 0 to be 1 in this case :) | 17:59 | |
ashleydev | ah | ||
see it now | |||
Kristien | I will never make a rat keeping game in Perl 6. | ||
TimToady | well, they're there for correctness, not for speed | ||
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 | ||
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 | ||
ashleydev: yes, but we don't force people to make that choice until they're ready for it | 18:01 | ||
just as in P5, we didn't tell people that anonymous subs were really true closures | |||
Kristien | Where can I find the rationale behind types not being values of some Type type? | ||
Rather than Int.WHAT returning Int. | |||
TimToady | but when they want to make a callback that treats external lexicals correctly, they are then ready to learn about closures | ||
18:02
kjs_ left
|
|||
TimToady | Kristien: well, logic, basically, and being able to reason about types or instances of those types the same way | 18:03 | |
Socrates is a man, and all that | |||
moritz | [ptc]: re irclog.perlgeek.de/perl6/2015-02-13#i_10110243 only if the module exports those functions | ||
18:03
kjs_ joined
|
|||
TimToady | to start out with, it was just a WAG by a linguist, but it seems to have worked out well in practice | 18:04 | |
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? | ||
TimToady | because that's how people do it in natural languages | ||
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
kjs_ left
|
|||
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:06 | |
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 | ||
and normal method dispatch wouldn't apply to static methods | |||
TimToady | moritz: which is, of course, a debatable feature for just that reason, if you follow the conventional CS thinking on such things | 18:08 | |
TimToady has never particularly approached language design from the CS direction, however, as you may have noticed :) | 18:09 | ||
18:09
Mouq joined
|
|||
TimToady | o/ | 18:09 | |
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 | ||
but those are officially outside the language, because of the HOW :) | 18:11 | ||
Deep Magic From The Beginning Of Time | |||
Kristien | m: say Int.HOW === Int.^HOW | ||
camelia | rakudo-moar 742b01: OUTPUT«===SORRY!=== Error while compiling /tmp/yQMn4wVQ72Cannot use .^ on a non-identifier method callat /tmp/yQMn4wVQ72:1------> say Int.HOW === Int.^HOW⏏<EOL> expecting any of: method arguments» | ||
[ptc] | moritz: thanks for the answers :-) | ||
Kristien | m: say Int.HOW; say 42.^HOW | 18:12 | |
camelia | rakudo-moar 742b01: OUTPUT«===SORRY!=== Error while compiling /tmp/6lE0iyNNgeCannot use .^ on a non-identifier method callat /tmp/6lE0iyNNge:1------> say Int.HOW; say 42.^HOW⏏<EOL> expecting any of: method arguments» | ||
TimToady | .^HOW is a misnomer | ||
Kristien | m: say Int.HOW | ||
camelia | rakudo-moar 742b01: OUTPUT«Perl6::Metamodel::ClassHOW.new()» | ||
Kristien | OK :P | ||
[ptc] | moritz: have you had time to look at how I implemented syntax highlighting? | ||
TimToady | $foo.^bar(args) means $foo.HOW($foo, args) | ||
er | |||
$foo.^bar(args) means $foo.HOW.bar($foo, args) | 18:13 | ||
Kristien | right | ||
so .^HOW would be .HOW.HOW | |||
TimToady | since there are basically two different invocants that have to come in | ||
moritz | [ptc]: today? or some time ago in the branch? | ||
nine_ | |Tux|: can you still reproduce the No such method '' for invocant of type 'Foo' error in Inline::Perl5? I cannot. | ||
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» | ||
TimToady | m: say Int.HOW.HOW.Str | ||
camelia | rakudo-moar 742b01: OUTPUT«No such method 'Str' for invocant of type 'NQPClassHOW' in block <unit> at /tmp/KjFVxjJZOl:1» | ||
[ptc] | moritz: today | ||
TimToady | m: say Int.HOW.HOW.name | ||
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» | ||
adu | TimToady: but I do think you have a firm grasp of ergonomics | ||
TimToady | m: say Int.HOW.HOW.name(Int.HOW) | ||
camelia | rakudo-moar 742b01: OUTPUT«Perl6::Metamodel::ClassHOW» | ||
18:14
vendethiel joined
|
|||
TimToady | m: say Int.HOW.HOW.HOW.name(Int.HOW.HOW) | 18:14 | |
camelia | rakudo-moar 742b01: OUTPUT«NQPClassHOW» | ||
TimToady | m: say Int.HOW.HOW.HOW.HOW.name(Int.HOW.HOW.HOW) | 18:15 | |
camelia | rakudo-moar 742b01: OUTPUT«KnowHOW» | ||
ashleydev | you sound like a 2-yr old | ||
TimToady | that's the bottom, or the top, or the inside | ||
[ptc] | moritz: I added a note about it in issue #28 | ||
TimToady | m: say Int.HOW.HOW.HOW.HOW.HOW.name(Int.H...W.HOW.HOW) | ||
camelia | rakudo-moar 742b01: OUTPUT«KnowHOW» | ||
ashleydev | or maybe that would be WHY.WHY.WHY... | ||
TimToady | KnowHOW is our turtle | ||
[ptc] | moritz: no probs if you haven't! Was just asking :-) | ||
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? | ||
[ptc] | moritz: I basically overrode how node2inline to effectively ignore them. | 18:17 | |
moritz: as a first-cut solution it'd probably be ok | |||
TimToady | except that it's not KnowHOWs all the way down, you have to go past several non-turtles first | ||
TimToady blames spontaneous symmetry breaking | |||
[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. :) | ||
Kristien | m: say 42.new | 18:19 | |
camelia | rakudo-moar 742b01: OUTPUT«0» | ||
TimToady | m: say 42.clone | ||
camelia | rakudo-moar 742b01: OUTPUT«42» | ||
TimToady | m: say Int.clone; # curious | 18:20 | |
camelia | rakudo-moar 742b01: OUTPUT«(Int)» | ||
Ven | m: sub foo(Int) {}; foo(Int.clone) | ||
camelia | ( no output ) | ||
Ven | heh. | ||
TimToady | m: say Int === Int.clone | ||
camelia | rakudo-moar 742b01: OUTPUT«True» | ||
TimToady | good, it's immutable, whew! | 18:21 | |
18:21
fhelmberger left
|
|||
Ven | *g* | 18:23 | |
m: say Int =:= Int.clone | |||
camelia | rakudo-moar 742b01: OUTPUT«True» | ||
18:23
flussence joined
|
|||
TimToady | for non-containers =:= is equivalent to === | 18:23 | |
Ven | ah, alright | 18:24 | |
TimToady | it just worked out that way, and we kept it rather than getting mad | ||
Ven | I guess the semantics are for the best... | ||
TimToady | m: my $x = 42; say $x =:= 42 | 18:25 | |
camelia | rakudo-moar 742b01: OUTPUT«False» | ||
TimToady | m: my $x = 42; say $x === 42 | ||
camelia | rakudo-moar 742b01: OUTPUT«True» | ||
TimToady | better than throwing an exception | 18:26 | |
I agree with those who say that most "modern" languages are way too exception-happy | |||
TimToady is not just looking at Python here | |||
18:27
sqirrel__ left
|
|||
TimToady | Exceptions should not be used for rocket guidance; they should be used to blow up rockets with an awesome error message. | 18:27 | |
Ven | "exceptions for flow control", right.. | 18:28 | |
TimToady | well, except for those exceptions :) | ||
the exception to exceptions, as it were... | |||
18:29
fhelmberger joined
|
|||
TimToady | expected excepted, if you want anagrams | 18:30 | |
expected exceptions we optimize heavily, unexpected exceptions we pessimize | 18:31 | ||
and CONTROL/CATCH is the dividing line there | 18:32 | ||
18:33
fhelmberger left
18:39
itz joined
18:40
itz_ left,
rindolf joined
18:41
virtualsue left
|
|||
TimToady | m: 42.base(16,40) | 18:42 | |
camelia | ( no output ) | ||
TimToady | m: 42.base(16,40).say | ||
camelia | rakudo-moar 742b01: OUTPUT«2A.0000000000000000000000000000000000000000» | ||
18:43
Alina-malina left
18:48
Ven left
|
|||
Kristien | I use exceptions for errors I don't wanna handle often. | 18:57 | |
such as I/O errors and OOB errors | |||
18:58
_mg_ joined,
grettir joined
|
|||
TimToady | but running out of I/O is generally expected | 18:59 | |
so it's better if your loop just quits automatically | |||
Kristien | I mean stuff like database disconnected or disk borked, not EOF. | 19:00 | |
EOF is something I do want to handle often. | |||
TimToady | nod | ||
Kristien | EOF is not really an error IMO, it's just a state | ||
19:01
FROGGS joined
|
|||
TimToady | it's just an instance of "the generator stopped" | 19:01 | |
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
FROGGS[mobile] left
|
|||
Kristien | moritz: I think you read my statement wrong. | 19:02 | |
TimToady | the argument was "not usual" | ||
moritz | [ptc]: do you know which version of pygments first shipped with perl6 support? | 19:03 | |
[ptc] | moritz: not off the top of my head | 19:04 | |
19:04
johnjohn101 left
|
|||
dalek | c/add_pygments_highlighting: 559a6e8 | moritz++ | htmlify.p6: use $*TMPDIR instead of hard-coded /tmp |
19:04 | |
c/add_pygments_highlighting: da9b40a | moritz++ | htmlify.p6: Improve detection of pygmentize we should not rely on it being in /usr/bin |
19:05 | ||
[ptc] | moritz: it's version 2.0 in debian/jessie | 19:06 | |
moritz | [ptc]: 1.6 doesn't have it | ||
hoelzro | nice moritz | ||
19:07
rindolf left
|
|||
hoelzro | I think it was 1.7? | 19:07 | |
hoelzro checks | |||
hahah | |||
I never noticed this on the pygments home page: | |||
"... and it highlights even Perl 6!" | |||
moritz | \o/ | 19:08 | |
[ptc] | moritz: the changelog from pygments says it was added in 2.0 | ||
hoelzro | 2.0 | 19:09 | |
Mouq | hoelzro: Haha, that's great, I think that's recent! The Perl 6 support is your work, right? | ||
[ptc] | moritz++ ; that's a much better way to detect pygmentize! | ||
hoelzro | yes, it is | ||
Mouq | hoelzro+++ | ||
hoelzro | I should probably update it with more recent language changes... | 19:10 | |
[ptc] | hoelzro++ | 19:11 | |
dinner& | 19:14 | ||
dalek | c/add_pygments_highlighting: d000f1e | moritz++ | htmlify.p6: Only syntax-hilight code blocks without formatting codes |
19:18 | |
moritz | [ptc]: I can't really test it on my workstation, since my pygments is too old | ||
hoelzro | moritz: can you try a virtualenv? | 19:19 | |
then you can use a newer pygments | |||
moritz | hoelzro: I could. Or I could try on hack.p6c.org | ||
hoelzro: but then I'd have to stop wining and actually do stuff :-) | |||
hoelzro | heh =) | ||
timotimo | i know that feeling | 19:21 | |
[ptc] | moritz: I'll test it out soon | 19:24 | |
moritz: thanks for the code cleanup! It's a much more elegant solution :-) | |||
afk | 19:25 | ||
masak | programming: poetry with observable side effects. | 19:48 | |
El_Che | masak: you don't like functional poetry? :) | 19:49 | |
19:50
kaare_ joined,
beastd joined
|
|||
vendethiel | El_Che: surely you mean | 19:50 | |
*pure* functional poetry | |||
El_Che | yeah, they kind everyone looks up to but no one understands :) | 19:51 | |
dalek | volaj/longer: b6c78ed | FROGGS++ | / (8 files): s/int/long/ and use long and int32 correctly |
||
19:52
nic77 joined
|
|||
TimToady | and obviously 'short double' on the C side :) | 19:53 | |
19:53
nic77 left,
[particle]1 left
|
|||
skids | vendethiel: Maybe your keyboard a haiku keyboard? | 19:53 | |
TimToady | sorry, ww | ||
19:53
nic77 joined,
nic77 left,
[particle] joined
19:54
nic77 joined
|
|||
Kristien | What is kinda the progress on native? | 19:55 | |
I want to use LLVM C API from Perl 6. | |||
But if that's not yet possible I'll use another language instead. | |||
19:56
Mr0rris0 left
|
|||
vendethiel | skids: I have both azerty and qwerty, does that count? | 19:57 | |
or am I still missing one | 19:58 | ||
FROGGS | Kristien: our NativeCall interface is quite awesome tbh | ||
Kristien | I currently get "Can't use unknown trait 'is native' in a sub declaration." | ||
FROGGS | Kristien: 'use NativeCall' | ||
Kristien | ok | ||
"Could not find NativeCall in any of: /Users/rightfold/rakudo/install/languages/perl6/lib, /Users/rightfold/rakudo/install/languages/perl6" :P | 19:59 | ||
FROGGS | star-m: use NativeCall; sub foo is native { * } | ||
camelia | ( no output ) | ||
FROGGS | Kristien: well, install it via panda | ||
Kristien | OK | ||
dalek | kudo/nom: fec2339 | TimToady++ | src/core/Rational.pm: base-repeating now returns two strings This is more useful to anyone for downstream tweaks to how the repeat is displayed or used. I can imagine code that does my ($n,$r) = $rat.base-repeating(10); my $c = cat($n, $r xx *); to get an infinite Cat string for whatever precision you want. |
||
geekosaur | also, maybe rakudo star is more for you, since it comes with stuff like that | ||
Kristien | btw are there any plans for allowing Grammar.parse to signal error positions instead of just returning Nil? | ||
[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. | ||
geekosaur | (star lags a bit but comes with a starter ecosystem) | 20:00 | |
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 | ||
FROGGS | Kristien: ... but it was discussed and wanted often | ||
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|. | ||
dalek | kudo/longer: 7d49693 | FROGGS++ | src/Perl6/Metamodel/NativeHOW.nqp: handle C type names in "is nativesize" trait |
20:04 | |
Kristien | can't decide between perl and d | 20:06 | |
20:07
kjs_ joined
|
|||
FROGGS | I don't know D so I cannot help deciding here :o) | 20:09 | |
and I gave a presentation about NativeCall so... | |||
Kristien | scala it is | 20:10 | |
dalek | kudo/newio: 8895666 | timotimo++ | src/Perl6/Grammar.nqp: important not to succeed this match when not panicking |
||
kudo/newio: 742b018 | lizmat++ | src/core/IO/Handle.pm: Make .chomp rw, Tux++ |
|||
kudo/newio: fec2339 | TimToady++ | src/core/Rational.pm: base-repeating now returns two strings This is more useful to anyone for downstream tweaks to how the repeat is displayed or used. I can imagine code that does my ($n,$r) = $rat.base-repeating(10); my $c = cat($n, $r xx *); to get an infinite Cat string for whatever precision you want. |
|||
kudo/newio: 672de3c | lizmat++ | src/ (2 files): Merge branch 'nom' into newio Conflicts: src/core/IO/Handle.pm |
|||
kudo/newio: 8f6d7db | lizmat++ | src/core/PIO.pm: Make PIO.chomp adjustable |
|||
20:12
espadrine left
|
|||
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. | ||
lizmat is in severe lack of inspiration and is also tired, so calls it a day | |||
Mouq | lizmat++ | 20:14 | |
lizmat: Have any idea when you think newio'll land? | 20:15 | ||
20:23
Alina-malina joined
|
|||
moritz | hack.p6c.org:3000/type/DateTime.html # doc.perl6.org with syntax hilighting, [ptc]++ | 20:27 | |
timotimo | way cool | 20:28 | |
thanks, [ptc]++ | |||
masak | wow. [ptc]++ | ||
my only kvetch is that 'new' is highlighted, I think :) | 20:29 | ||
20:29
fhelmberger joined
|
|||
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 | |
but i really want us to have something where people can evaluate code or have repls on line | |||
moritz | timotimo: well, when you have some software to do that, I'll set up a separate VM for it | 20:33 | |
timotimo | yeah | 20:34 | |
20:34
alini joined
|
|||
timotimo | do we have a favourite solution for sandboxing? i hear docker is still hip? | 20:34 | |
20:34
fhelmberger left
|
|||
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
kjs_ left
|
|||
timotimo | OK, but piling selinux on top could help? | 20:35 | |
moritz | timotimo: p6c is kvm based, so that's what I'd use | ||
timotimo: also cgroups are there | 20:36 | ||
timotimo | at least docker would prevent persistent hacks | ||
docker uses cgroups already, no? | |||
or do you just mean cgroups is activated on the host as well as the guests? | |||
moritz | as does systemd | ||
timotimo: yes | 20:37 | ||
timotimo: my approach would be to have a VM as the main line of defense | |||
timotimo: and as a secondary line, inside the VM the services runs in a cgroup with a separate /dev and /tmp mounted | |||
timotimo: and /usr/ read-only | |||
I've set those things up before, so I can be of help :-) | 20:38 | ||
20:38
_mg_ left,
darutoko left
|
|||
moritz | my experience with selinux is less positive, though it's also a few years old | 20:39 | |
El_Che | selinux? isn't that the first thing you disable if you want an usable box? | 20:40 | |
:) | |||
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:41 | |
gfldex | moritz: you mean like man7.org/linux/man-pages/man1/lxc-create.1.html ? | 20:42 | |
20:43
Alina-malina left,
Alina-malina joined
|
|||
moritz wonders if he has been speaking swahili or something | 20:44 | ||
gfldex | you dont need to speak swahili to be misunderstood by me | 20:45 | |
i can misunderstand you all day long if i have to :) | |||
colomon | moritz: No, ilionekana kama Kiingereza na mimi. | ||
20:46
sunnavy left
|
|||
timotimo | moritz: huh? | 20:46 | |
moritz | sorry, I'm tired and easily irritated | 20:47 | |
timotimo | *hug* | ||
i'm not yet 100% sure what exactly the software that handles the perl6 processes should have, feature-wise | |||
moritz | the first instance could be a very easy web page with a big text area and an output window | 20:49 | |
and by clicking a button, it evaluates the input | 20:50 | ||
github.com/moritz/try.rakudo.org was much more ambitious, and much less maintainable | |||
and crashed far too often | 20:51 | ||
it tried to give you a repl by keeping multiple rakudo repl sessions open in the background | |||
20:52
spider-mario left
|
|||
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:52 | |
moritz | timotimo: to me, it sounds like over-engineering | 20:53 | |
[Coke] | blogs.perl.org/users/shadowcat_mdk/...ideas.html , btw. | ||
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! | ||
but you're right, it'll probably be fair enough | |||
moritz | the advantage of having them on the same machine is that you don't need authentication/authorization | 20:55 | |
you can just do local network | |||
timotimo | right | ||
moritz | or maybe not even network | 20:56 | |
just write the program to a temp file | |||
timotimo | anything i can do to help https setup accelerate? | ||
a shared temp folder, eh? | |||
at least having the two parts in different cgroups would be good | 20:57 | ||
moritz | and run sudo -u unprivilegeduser perl6-m inputfile > out | ||
timotimo | ah, yeah, suexec style | ||
moritz | well, I'm open to suggestions | ||
re https, I've been lazy and kinda hoped to defer until letsencrypt.org is live | |||
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++. :) | ||
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 | ||
FROGGS | timotimo: somebody will help with P5... | 20:59 | |
moritz | www.ohling.org/blog/2015/02/wosign...icate.html # or use them as a CA | ||
timotimo | i have root, yeah. but i've never done https | 21:00 | |
like, set up https | |||
flussence spent the last few months tweaking ssl setups... one thing I've learned is that simpler is better | |||
timotimo | FROGGS: i don't actually want to touch perl5 :P | 21:01 | |
moritz | flussence: what exactly is simple? | ||
FROGGS | timotimo: :P | ||
moritz | flussence: one domain per IP? | ||
timotimo: I'm fine with python | |||
FROGGS | moritz: either that or you need a wildcard cert | ||
timotimo | i hear wildcard certs are super expensive | ||
moritz | yes | 21:02 | |
FROGGS | aye | ||
moritz | 400USD+ | ||
more like 2k USD usually | |||
and then they are only valid for one year | |||
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... | ||
timotimo | there's security considerations to that, right? | ||
flussence | (also, turns out it's much easier to use proxy features built into a webserver than trying to secure multiple webservers.) | 21:04 | |
21:04
kjs_ joined
|
|||
timotimo | how should the service handle updating rakudo impls? | 21:04 | |
moritz | timotimo: not :-) | 21:05 | |
timotimo | good | ||
moritz | timotimo: I'd say rakudobrew, or reuse camelia's rakudo rebuild scripts | ||
timotimo: but that's not done by the service itself; it's done by cron (or even manually) | |||
timotimo | good | 21:06 | |
21:06
araujo left
|
|||
dalek | ecs: 081e2aa | TimToady++ | S32-setting-library/Numeric.pod: document .base and .base-repeatig changes |
21:06 | |
moritz | the service itself won't have write access to the install dir | ||
timotimo | ah, yes, it should definitely not be able to change anything in there | ||
do we have any sort of monitoring in place yet? | 21:07 | ||
moritz | nope | ||
timotimo | to see if some progress has gone out of control and noms cpu cores or ram continuously? | ||
maybe i could set something up for that? | |||
21:07
pippo joined,
echowuhao left
|
|||
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 | ||
pippo | o/ #perl6 | ||
timotimo | aye, sensible | ||
pippo | Could somebody help me? I need to know how can I add a method on the Date object. | 21:08 | |
TimToady | use a mixin? | 21:09 | |
PerlJam | pippo: why do you want to add a method to the Date object? | ||
timotimo | do you mean add to the type, so that every even existing instance gets it, too? | ||
or is it enough to add that method to one existing instance of Date? | |||
flussence | pippo: if you really want to - doc.perl6.org/type/Metamodel%3A%3AM...dContainer | ||
TimToady | or N of them, if you control the construction | ||
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 | ||
moritz | pippo: use a sub instead | ||
timotimo | aye | ||
moritz | prettyprint($date) | ||
TimToady | does it have to be Date? can it be MyDate? | ||
timotimo | or even $date.&prettyprint if you have a "sub prettyprint($date) { ... }" | ||
moritz | pippo: mutli subs make it quite easy to extend that to many types | ||
pippo | It can be MyDate | ||
moritz | pippo: then inheritance would work | ||
FROGGS | m: Date.^add_method('prettyprint', -> \self { 42 }); my $d = Date.new; say $d.prettyprint # pippo | 21:11 | |
camelia | rakudo-moar fec233: OUTPUT«42» | ||
FROGGS | that's one way | ||
Mouq | flussence: Oh gosh, the typegraph on that page… | ||
timotimo | not recommended at all, FROGGS | ||
FROGGS | :o) | ||
TimToady | FROGGS: don't teach evil :) | ||
FROGGS | damn | ||
moritz | m: class PrettyDate is Date { method pretty { "pretty " ~ self.Str } }; say PrettyDate.today.pretty | ||
camelia | rakudo-moar fec233: OUTPUT«pretty 2015-02-13» | ||
TimToady | at least force them to declare MONKEY_TYPING | ||
pippo | FROGGS: That's waht I was looking for! | ||
moritz | pippo: ^^ | ||
FROGGS | that's probably better | 21:12 | |
PerlJam | oh no! | ||
FROGGS | pippo: nooooooo | ||
pippo | FROGGS: Thank you! | ||
moritz | pippo: don't go to the dark side! | ||
FROGGS | pippo: look at moritz's example | ||
TimToady | we'd better break that quick | ||
PerlJam | FROGGS: Remember ... with great power comes great responsibility | ||
FROGGS | pippo: they dont even have cookies! | ||
pippo | OK I'll use moritz solution then :-)) | ||
TimToady | we do NOT believe in monkey patching here as a cultural norm | ||
FROGGS | pippo++ | 21:13 | |
pippo | Thank you all again! | ||
timotimo | mhhh cultural nom | ||
FROGGS | was fun anyway *g* | ||
dalek | c/add_pygments_highlighting: 017a076 | moritz++ | htmlify.p6: Check for minimal pygmentize version |
21:14 | |
pippo | BTW, I really like the Date object and his methods. I think it is very useful. Tks #pelr6 | ||
moritz | anyway, should I merge that branch? | ||
pippo: it's 90% stolen from Perl 5's Date::Simple :-) | |||
pippo: and you're welcome. | 21:15 | ||
FROGGS | pippo: I'd love to see a DateTime::SpanSet port from P5 :/ | ||
TimToady wishes all these highlighters wouldn't treat setting functions and methods as reserved words; they're just functions and methods | |||
moritz | TimToady: agreed | 21:17 | |
flussence wishes perl6.vim didn't highlight Test.pm functions as reserved words either... | 21:18 | ||
TimToady | in rosettacode.org/wiki/Textonyms#Perl_6 why is They highlighted in the heredoc; I can understand 'words' being highlit by accident | ||
and it's pretty pathetic to ignore the sigil in @words and highlight the words as a "keyword" | 21:19 | ||
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!!! | ||
[Tux] is happy | |||
pippo | FROGGS: I did not have to use it in my very little programming :-) | ||
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) | ||
hoelzro | flussence: if you want to submit a PR to address that, I'll mere it | ||
I don't like it either | |||
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 | ||
flussence | hoelzro: I may do that, but I'll put a lot more thought into it first | ||
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 :) | ||
pippo | FROGGS: I agree. | 21:25 | |
TimToady | flussence: indeed, I'm just never completely satisfied, you may have noticed :) | 21:26 | |
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? | ||
FROGGS | moritz: how can I see an example? | ||
21:27
echowuhao joined
|
|||
moritz | FROGGS: hack.p6c.org:3000/type/DateTime.html | 21:28 | |
jnthn | evening, #perl6 | ||
yoleaux | 20:13Z <lizmat> jnthn: I know you dislike the PIO role name, perhaps "Streamer" would be a better name? other suggestions? | ||
FROGGS | moritz: ohh, it is quite nice | ||
moritz: so, +1 from me | 21:29 | ||
moritz | or hack.p6c.org:3000/language/functions.html which has some non-hilighted examples too | ||
FROGGS | moritz: it is still better than no highlighting at all | 21:30 | |
hoelzro | purdy | ||
moritz: +1 from me | |||
ah, I see that single line highlighting bug is there =/ | 21:31 | ||
s/single line/single line comment/ | |||
21:31
dolmen joined
|
|||
FROGGS | evening jnthn | 21:32 | |
21:32
xfix left
|
|||
hoelzro | moritz: what are you using as a stylesheet for the pygments sections? | 21:33 | |
masak | \o, jnthn | 21:34 | |
hoelzro | o/ jnthn | ||
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. | ||
jnthn | yay, syntx highlighting! :D | ||
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 | ||
jnthn: Bitbucket is still on pygments ;) | 21:37 | ||
flussence | jnthn: github may have lost it, but cgit still gets pretty perl6 highlighting :) | ||
hoelzro | and they also detect Perl 6 properly! | ||
jnthn | hoelzro: Ah, then cool :) | ||
moritz | hoelzro: uhm, I haven't touched the CSS at all; could you do it please? | 21:38 | |
hoelzro | sure! | 21:39 | |
skids | "Missing serialize REPR function for REPR VMException" /o\ I'm sure that means something to someone, but not me. | 21:40 | |
FROGGS | skids: that means that you let an exception slip somewhere... maybe a BEGIN block or a EXPORT sub | 21:41 | |
so, a 'my $/' helps there IIRC | |||
err, $! | |||
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 | |
and I"m not even sure what to google to get a useful result, heh | |||
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 | ||
ohh, mbc, right | |||
moritz | muraiki: though 'ufo && make' might be easier | ||
FROGGS | or creating a META.info and run `panda install .` | ||
21:47
rurban left
|
|||
dalek | c: 66250c2 | lumimies++ | lib/Type/DateTime.pod: Fix some typos |
21:47 | |
21:51
kjs_ left
|
|||
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? | ||
hoelzro | I did =) | ||
flussence | ah, k | ||
hoelzro | ah, I might want to install pygments. | 21:58 | |
flussence | m: say Version.new('2.0pre') ~~ v2.0+ | ||
camelia | rakudo-moar fec233: OUTPUT«True» | ||
flussence | whoa, that line's pretty cool. | 21:59 | |
tadzik | :o | ||
21:59
Kristien left
|
|||
Mouq | m: say Version.new('2.1') ~~ v2.0+ | 22:00 | |
camelia | rakudo-moar fec233: OUTPUT«True» | ||
Mouq | m: say Version.new('2.0pre') ~~ v2.0.* | ||
camelia | rakudo-moar fec233: OUTPUT«True» | ||
masak | m: say Version.new('2.0alpha') ~~ v2.0+ | ||
camelia | rakudo-moar fec233: OUTPUT«True» | ||
masak | m: say Version.new('2.0alpha') ~~ v2.0 | ||
camelia | rakudo-moar fec233: OUTPUT«True» | 22:01 | |
22:01
rurban joined
|
|||
masak | m: say Version.new('2.1') ~~ v2.0 | 22:01 | |
camelia | rakudo-moar fec233: OUTPUT«False» | ||
22:01
skids left
|
|||
eiro | hello people | 22:02 | |
ugexe | is <sp> not a character class shortcut anymore? or what am i doing wrong here: | ||
m: my $x = "abas df"; say $x ~~ /<alnum>/; say $x ~~ /<sp>/; | |||
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» | ||
jnthn | I don't remember there being an sp rule in Cursor... | 22:03 | |
PerlJam | ugexe: maybe you wanted <space> ? | ||
jnthn | Only other guess is that I think once we punned Unicode property names as method names | 22:04 | |
But that became <:Ll> iirc | |||
But not sure sp is one of those... | |||
TimToady | there's always \s | ||
22:04
FROGGS_ joined
|
|||
ugexe | \s makes syntax highlighting whacky when writing grammars :( | 22:05 | |
github.com/perl6/specs/blob/master...-shortcuts does mention <sp> and <-sp> tho | |||
22:05
Mouq left
|
|||
jnthn looks | 22:05 | ||
PerlJam | S05:2293 does say ... yeah, what ugexe said | ||
synopsebot | Link: design.perl6.org/S05.html#line_2293 | ||
jnthn | hah, who knew... :) | 22:06 | |
dalek | c/add_pygments_highlighting: 1ee80b8 | hoelzro++ | html/css/pygments.css: Add CSS rule for c-Singleline Due a bug in the Perl 6 pygments lexer, single line comments are given a CSS class that doesn't exist in the normal set of classes that pygments provides. This will allow single-line comments to be highlighted until that bug is fixed |
||
hoelzro | moritz: that *should* work | ||
22:06
Sqirrel left
|
|||
jnthn | Well, the patch is token sp { \s } I guess... :) | 22:06 | |
ugexe | is <sp> different than <space>? | 22:07 | |
jnthn doesn't find a <space> in S05 | |||
22:07
rurban left
|
|||
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
|
|||
jnthn | Oh... :) | 22:07 | |
PerlJam | jnthn: S05:2131 | 22:08 | |
synopsebot | Link: design.perl6.org/S05.html#line_2131 | ||
jnthn | Looking. | ||
22:08
FROGGS left
|
|||
jnthn | Bah | 22:08 | |
pippo | Good night #perl6! | ||
jnthn | So it specs <sp> and <space> to mean \s | ||
22:08
pippo left
|
|||
jnthn | I really don't think we need both :) | 22:08 | |
22:08
telex left
|
|||
jnthn | <space> fits nicer with <digit> and <alnum> I guess. | 22:08 | |
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:] | ||
masak | 'night, jnthn | ||
jnthn | masak: Uhh...is it my bed time? :P | ||
masak | er. 'night, pippo | ||
way to misread. | |||
TimToady | jnthn: NO! | ||
masak | jnthn: yes! go to bed, now! :P | ||
hoelzro | moritz: ok, yeah, that works for me | 22:10 | |
22:10
telex joined
|
|||
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/ | ||
camelia | rakudo-moar fec233: OUTPUT«「 」» | ||
22:10
bauerbob joined
|
|||
TimToady | m: say ' ' ~~ /<space>/ | 22:10 | |
camelia | rakudo-moar fec233: OUTPUT«「 」 space => 「 」» | ||
TimToady | hmm | 22:11 | |
that's a non-breaking space, btw | |||
jnthn | Looks like any other space to me :P | 22:12 | |
TimToady | m: say < foo bar >[0] | ||
camelia | rakudo-moar fec233: OUTPUT«foo bar» | ||
TimToady | well, at least it works right there | ||
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:15 | |
TimToady | it worked out fine | 22:16 | |
ugexe | lol | ||
22:16
diana_olhovik_ left
|
|||
bauerbob | it did? so why have they stopped? | 22:16 | |
TimToady | we havne't | ||
*en | |||
PerlJam | bauerbob: where did you read these things? | ||
bauerbob | on the internet :-) | 22:17 | |
don't remember | |||
PerlJam | so it must be true! | ||
jnthn | bauerbob: The Perl 6 JVM support has been improved even within the last week or two. | ||
bauerbob: It's not only maintained, but actively developed. :) | |||
TimToady | we've only said that if push comes to shove, only the MoarVM backend needs to be done by Christmas | ||
bauerbob | cool | ||
TimToady | but push hasn't come to shove yet | ||
j: say "here?" | |||
camelia | rakudo-jvm fec233: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory» | ||
masak | :( | 22:18 | |
22:18
Kristien joined
|
|||
bauerbob | so do you use the graal vm? | 22:18 | |
jnthn | No, it's standard JVM. | ||
masak | bauerbob: do you seek the graal? | ||
bauerbob: what is your name? | |||
bauerbob | i just stumbled over it | ||
masak | bauerbob: what is your favorite color? | ||
TimToady | that's a strange name | ||
bauerbob | green. no, blue! ;-) | ||
masak catapults bauerbob | |||
TimToady | sounds like a racehorse's name | ||
masak | haha | ||
bauerbob | oh, it's german | 22:19 | |
22:19
Mouq joined
|
|||
bauerbob | farmer bob | 22:19 | |
jnthn | It really wants a JVM 1.8, though... 1.7 ones could be SEGVesque on invokedynamic stuff. :) | ||
TimToady | and I Just Stumbled Over It takes the triple crown! | ||
masak | I Just Stumbled Über It would be German. | ||
TimToady | surely it'd be Ich | 22:20 | |
timotimo | StolpertÜber | ||
masak | TimToady: triple crown sounds really uncomfortable. especially for a horse. kinda like the Iron Throne. | ||
bauerbob | perl6@jvm is it part of rakudo | 22:21 | |
is part of rakudo? | |||
masak | bauerbob: right. | ||
bauerbob: it's one of Rakudo's supported backends. | |||
bauerbob | oh.. in that case i already have it on my hard disk | ||
masak | one of three, going on four... or two. we haven't decided. | ||
TimToady | by Christmas we'll have 1 ± 5 | 22:22 | |
masak | I like some of those outcomes. | ||
bauerbob | thank you guys! | ||
TimToady | yer welcum | 22:23 | |
Kristien | by Christmas I might have sunglasses | ||
masak | ní! | ||
Kristien: because of all the shiny? | |||
hoelzro | I wish that the JVM stuff could run on Android =( | ||
but unless it gets invokedynamic, I fear that may never happen | |||
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 | ||
Kristien | Having two implies having one. | ||
masak | except sun-monocles. | ||
Kristien | For all n > 0, having n of x implies having n-1 of x. | ||
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 | ||
TimToady is a harsh persontor | |||
masak wonders if that pun works in AmE | |||
TimToady | or would that be personstor? peopletor? | 22:26 | |
masak | being politically correct is hard work. | ||
but someone's gotta do it. | |||
22:26
Alina-malina left,
Alina-malina joined
|
|||
TimToady | As long as it's merely political correctness, it is not yet equality. :) | 22:27 | |
masak | I find the term "merely" is offensive towards merfolk. | 22:28 | |
PerlJam | I think one of these might go well with your hat: www.ebay.com/itm/like/360910501251?...amp;chn=ps :-) | ||
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:33
Alina-malina left
|
|||
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 | |
that goes for political correctness as much as for people appropriating or perpetuating coding styles in contexts where they no longer help. | |||
TimToady | Amen, brother! Er...sibling! | 22:36 | |
masak | :) | ||
22:43
kurahaupo1 joined
22:59
vendethiel left
23:07
Kristien left
23:13
Sysaxed joined
23:14
vendethiel joined
|
|||
dalek | c/add_pygments_highlighting: bb4de66 | paultcochrane++ | htmlify.p6: Add option to turn off syntax highlighting |
23:17 | |
23:18
Kristien joined
23:20
rurban1 left
23:22
Mouq left
23:23
BenGoldberg joined
|
|||
dalek | c: 651c45a | paultcochrane++ | lib/Type/IO.pod: Mention that text mode is default in open() |
23:25 | |
c: 5b8f838 | paultcochrane++ | lib/Type/IO.pod: Document close() method and sub to balance the now documented open() function. |
|||
c: 7ae718d | paultcochrane++ | lib/Language/io.pod: Generalise I/O section's subtitle |
|||
23:26
BenGoldberg left,
BenGoldberg joined
23:29
kurahaupo1 left
23:37
vendethiel left
23:38
bauerbob left,
fwilson joined
|
|||
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
alini left
|
|||
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:48 | |
23:49
xinming_ joined
23:52
xinming left
23:56
virtualsue joined
|
|||
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? | ||
but yeah, they are referenced there | |||
"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 | ||
slower maybe, but safer. | |||
avuserow | sounds like the right thing to do for the IO part of logging |