»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
k1lldash9 joined
|
|||
k1lldash9 | hi there | 00:01 | |
Mouq | hello | ||
k1lldash9 | any recommendtations to the best "distro" to attempt perl 6 on? | 00:02 | |
I mainly use centos 6 | |||
I am very curious to see it! | 00:03 | ||
timotimo | if you're on linux, it's easy enough to build stuff for yourself if your distro doesn't have up-to-date packages for you | ||
k1lldash9 | ahh okay, I wasn't sure if there were maybe glibc or gcc dependencies that I may not have on cent 6 | ||
timotimo | you could just build a java rakudo and not need gcc at all :) | 00:04 | |
k1lldash9 | ahh okay, that makes sense :) | ||
timotimo | but you will need a java that's new enough to have invokedynamic and that stuff, i think that's java 7? | ||
k1lldash9 | I do have java 7 | ||
guessing if you can do that.. you could then run it under Windows, yeah? | 00:05 | ||
(not that I want to, just curious) | |||
timotimo | great. all you need in that case is a clone of github.com/rakudo/rakudo and run ConfigureJVM.pl - i *think* it will give you the option to run --gen-nqp for java as well, though if it won't, just get a checkout of github.com/perl6/nqp in place and run ConfigureJVM.pl there, then "make all install" | 00:06 | |
(no need to sudo make install, it'll just install inside the checkout by default) | |||
rakudo on jvm will give you terrible startup times, though :( | 00:07 | ||
and you can use our evalbot to run snippets of code in here by starting lines with r: | |||
r: "greetings kill -9".words.perl.say | 00:08 | ||
camelia | rakudo e55c66: OUTPUT«(signal SEGV)» | ||
timotimo | … | ||
r: say "hello?" | |||
camelia | rakudo e55c66: OUTPUT«hello?» | ||
timotimo | r: say "foo bar baz".words | ||
camelia | rakudo e55c66: OUTPUT«foo bar baz» | ||
timotimo | r: say "foo bar baz".words.perl | ||
camelia | rakudo e55c66: OUTPUT«("foo", "bar", "baz").list» | ||
timotimo | r: "foo bar baz".words.perl.say | ||
camelia | rakudo e55c66: OUTPUT«("foo", "bar", "baz").list» | ||
timotimo | r: "greetings kill -9".words.perl.say | ||
camelia | rakudo e55c66: OUTPUT«("greetings", "kill", "-9").list» | ||
timotimo | well, whatever that was didn't happen twice | ||
jnthn | Maybe got unlucky when it was part way through installing the latest build or something | 00:09 | |
00:11
sftp left
|
|||
k1lldash9 | wow thanks for the input! | 00:12 | |
timotimo | good sources for example code and things to try are rosettacode and the perl6 advent calendar | ||
TimToady | factored out common code on rosettacode.org/wiki/Zhang-Suen_thi...thm#Perl_6 | 00:23 | |
timotimo | gather for 1..v-2 X 1..h-2 -> \y,\x { take y*h + x } - is this not the same without the gather and take? | 00:26 | |
dalek | rl6-roast-data: f617131 | coke++ | perl6_pass_rates.csv: today (automated commit) |
00:30 | |
00:30
sftp joined
|
|||
lue | TimToady: do I do 'perl6 zst.p6 FILE' or 'FILE > perl6 zst.p6' ? (I'm guessing the first one) | 00:35 | |
nvm, it just took a while to start :) | |||
Mouq | I like how rosettacode.org/wiki/Hofstadter_Q_s...nce#Perl_6 has an OO version about the same size as all the other languages, and then it has this increadibly tiny, easier to understand, idiomatic solution | 00:36 | |
timotimo | those methods for postcircumfix will no longer work, though | ||
lue | .oO(If only there were an antithesis to U+2588 FULL BLOCK for monospacing purposes, Timtoady's solution with " █" would align) |
00:42 | |
timotimo: wait, why wouldn't those multi methods work? Seem fine to me. | 00:43 | ||
timotimo | spec change | ||
postcircumfix:<[ ]> is now a sub with multi dispatch rather than a method | |||
i thought it got committed into nom alread | |||
lue | Why could it not simply be specified as a method though? Is it just more annoying to generate or something? | 00:44 | |
Mouq | If so, S13 hasn't been updated: perlcabal.org/syn/S13.html#Type_Casting | ||
(I don't think those pretty "@.[ **@slice ]" methods have been implemented anywhere though) | 00:45 | ||
grondilu | TimToady: why not 'constant DEBUG = True' instead of 'my $DEBUG = 1;'? | 00:46 | |
timotimo | good point. | ||
lue: all i know is that methods cannot easily be dispatched at compiletime, whereas subs can | |||
jnthn | Yeah, it's a performance thing, largely | 00:47 | |
Also consistency: postfixes are subs, so why not postcircumfixes? | |||
But we really want the inlining for native arrays. | |||
When somebody finally gets around to implementing them. ;) | 00:48 | ||
TimToady | don't use the csv file, use an image of the .# file | 00:49 | |
lue | Oh. Too late :) | 00:50 | |
lue hopes image wasn't meant in the .png sense | |||
TimToady | no, just ascii graphics | ||
lue | that's what I thought :) | 00:52 | |
actually, I did take the image, and not the csv file. | 00:54 | ||
lue is a couple minutes away from a fun gist :) | |||
Incidentally, you can do the low bit/high bit thing with a couple of particular characters: gist.github.com/lue/7063531 (I only changed the output here, not the original file's .# usage) | 01:01 | ||
TimToady | unfortunately, FULL BLOCk is 0 :/ | 01:04 | |
lue | :( Not like it mattered, there's no guaranteed-same-width EMPTY BLOCK | 01:05 | |
jnthn | Hah! Snowmen and comets! :P | 01:07 | |
TimToady | okay, modified to use contant and avoid gather/take where list comprehension works | ||
(still needs a "do" though) | |||
tried ==> but it isn't a statement separator in rakudo yet | 01:08 | ||
jnthn | Will try and get to that during my upcoming vacation/hacking | 01:09 | |
'cus I want to work on the parallelism aspects of ==> too | |||
lue | jnthn: annoyingly, the bits mean it has to be COMET SNOWMAN for low/high, instead of the right way 'round. But other than that, :) | ||
jnthn | I'm pretty sure the average comet has a lower temperature than the average snowman... :P | ||
Been pondering what the API is for a ==> chain | 01:10 | ||
geekosaur | maybe they're measuring ISON :p | ||
jnthn | I'm wondering if we should do a Linq-ish thing where you use the type of the first thing to choose the monad or something... | ||
So we can maybe do the observer pattern for reactive programming in a robuster way than I did in my YAPC::NA talk... | 01:11 | ||
Wiring the subscriptions up with ==> I mean | |||
In fact, I think it was that talk that motivated the change of ==> to a statement sep... :) | 01:12 | ||
01:13
telex left
|
|||
TimToady | well, my motivation had nothing to do with that, and everything to do with statement-terminating right curly working as expected when ==> is on the next line | 01:13 | |
01:14
telex joined
|
|||
TimToady | and also just a general feeling that pipes should connect larger pieces than mere expressions | 01:14 | |
after all, they connect entire processes in shell programming | 01:15 | ||
jnthn | TimToady: Oh, I know that was the motivation for the fix, I just recalled it was me writing parens in a bunch of examples that were the trigger :) | ||
TimToady | and we want more control of scoping into the sides of feeds ops | ||
ah, that may well be :) | 01:16 | ||
jnthn | It caught me out, so I'm happy to see that bit fixed | ||
Just pondering the rest :) | |||
Though, I've gotta catch a train at some point tomorrow, so maybe I should be pondering sleep... )) | 01:17 | ||
'night o/ | |||
TimToady | if we need to make guarantees about external data structures are readable/writeable to one of the feed or the other | 01:18 | |
in order to preserve sanity, then we can do so | |||
o/ | |||
*one side | |||
01:30
PZt left
01:31
ssutch left
01:32
ssutch joined
01:37
berekuk left
02:17
benabik joined
02:20
grondilu left
02:25
PZt joined
02:43
benabik left
02:46
cognominal left
02:47
{amon} joined
02:49
LWA left
02:55
REPLeffect left
03:08
REPLeffect joined
03:40
preflex left
03:42
preflex joined,
ChanServ sets mode: +v preflex
04:07
xinming joined
04:11
xinming_ left
04:20
raiph left
04:40
rindolf joined
04:41
rindolf left
|
|||
[Coke] | nqp-j: say(nqp::jvmeqaddr(Int,Num)) | 04:46 | |
camelia: help | |||
camelia | [Coke]: Usage: <(rakudo-jvm|nqp-jvm|star|pugs|nqp|std|niecza|rakudo|p5-to-p6|b|nqp-moarvm|nom|r|j|nqp-m|nqp-mvm|pnr|p6|nr|npr|n|perl6|rj|p56|prn|rn|r-j|r-jvm|p|rnp|nrp|rpn)(?^::\s) $perl6_program> | ||
[Coke] | nqp-jvm: say(nqp::jvmeqaddr(Int,Num)) | ||
camelia | nqp-jvm: OUTPUT«1» | ||
[Coke] | .to jnthn : is this a bug? say(nqp::jvmeqaddr(Int,Num)) - returns true if they are both type objects, even if they aren't the same type | 04:47 | |
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
diakopter | :-)=-O | 05:12 | |
05:14
bruges left,
bruges joined
|
|||
TimToady | updated the OO solution for rosettacode.org/wiki/Hofstadter_Q_s...nce#Perl_6 | 05:15 | |
but the idiomatic solution *still* doesn't work under rakudo | |||
Mouq | r: my @Q = 1, 1, -> $a, $b { (state$n=1)++; @Q[$n-$a] + @Q[$n-$b] } ... *; | 05:18 | |
camelia | ( no output ) | ||
Mouq | rakudo doesn't like recursive constants, it seems | ||
r: my @Q = 1, 1, -> $a, $b { (state$n=1)++; @Q[$n-$a] + @Q[$n-$b] } ... *; @Q[^10].say | 05:19 | ||
camelia | rakudo e55c66: OUTPUT«1 1 2 3 3 4 5 5 6 6» | ||
Mouq | n: constant @Q = 1, 1, -> $a, $b { (state$n=1)++; @Q[$n-$a] + @Q[$n-$b] } ... *; @Q[^10].say | ||
camelia | niecza v24-98-g473bd20: OUTPUT«1 1 2 3 3 4 5 5 6 6» | ||
TimToady | recursive constants are, like, 90% of Haskell... | 05:21 | |
Mouq | I think the it's just not being added the scope soon enough | 05:26 | |
TimToady | agreed | ||
moritz | \o | 05:28 | |
Mouq | o/ | ||
TimToady | the my form happens to work because it notices that it's infinite and de-eagerizes it | 05:29 | |
Mouq | r: constant @time-out = 1...*; | 05:30 | |
camelia | ( no output ) | ||
TimToady | constant = is really more like a binding or a definition | 05:31 | |
not really assignment, so not eager | |||
the semantics of pseudoassignment to any declaration depends on the declarator | 05:33 | ||
05:36
odoacre left
|
|||
TimToady | for a constant, it's purely definitional, not even binding, since binding changes the meaning of the symbol after the fact, which keeps recursion from working | 05:39 | |
it has to be kind of a before-the-fact binding, if it's a binding | 05:42 | ||
05:54
SamuraiJack joined
06:09
BenGoldberg left
|
|||
Mouq hates emitting tons of debugging statements only to realize that the mistake is a dumb typo | 06:17 | ||
06:21
{amon} left
|
|||
moritz | Mouq: that's an experience we have all made several times :-) | 06:21 | |
06:22
LWA joined
06:40
silumantengkorak joined
06:41
silumantengkorak left
06:42
kaare_ joined
06:45
LWA left,
LWA joined
06:47
rhr left
06:53
rhr joined
|
|||
lue suddenly envisioned a module that adds a say statement after every existing statement, emitting the state of variables used in the previous statement | 06:58 | ||
07:06
ssutch left
07:21
clkao left
07:30
darutoko joined
07:49
denisboyun joined
07:55
SamuraiJack left
|
|||
yogan | I'm trying a little tail recursion example with pattern matching, and can't get it to work. I have those two multi subs: | 07:57 | |
multi sub sum () returns Int { 0 } | |||
multi sub sum (*$x, *@xs) returns Int { $x + sum(@xs) } | |||
sum(1, 2, 3); # gives me "max. recursion depth exceeded" with rakudo | 07:58 | ||
Is my syntax wrong, or is this not supported? | |||
Mouq | r: multi sum(){0}; multi sum ($x, *@xs) { $x + sum(|@xs) }; say sum(1,2,3) | 08:07 | |
camelia | rakudo e55c66: OUTPUT«6» | ||
Mouq | n: multi sum(){0}; multi sum ($x, *@xs) { $x + sum(|@xs) }; say sum(1,2,3)a | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Two terms in a row at /tmp/zpwCmOBhdn line 1:------> *@xs) { $x + sum(|@xs) }; say sum(1,2,3)⏏aParse failed» | ||
Mouq | n: multi sum(){0}; multi sum ($x, *@xs) { $x + sum(|@xs) }; say sum(1,2,3) | ||
camelia | niecza v24-98-g473bd20: OUTPUT«6» | ||
Mouq | r: multi sum(--> Int){0}; multi sum (Int $x, *@xs --> Int) { $x + sum(|@xs) }; say sum(1,2,3) # still works | 08:08 | |
camelia | rakudo e55c66: OUTPUT«6» | ||
Mouq | yogan: In Perl 5 something like what you wrote would work. Perl 6, however, doesn't automatically flatten lists (for good reason), and so @xs ends up getting assigned to $x. |@xs flattens it | 08:11 | |
08:12
Rotwang joined
|
|||
yogan | Mouq: Ah, got it! So I ended up with the whole list in $x on every call... no wonder it won't terminate. :-) | 08:13 | |
Oh, and making $x slurpy was also redundant. That made no sense. | 08:15 | ||
Mouq | Yeah, that confused me. I'm surprised it's valid | 08:16 | |
std: sub w (*$x) { 1 } | 08:17 | ||
camelia | std a0bcfb1: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/p6na5bgWfa line 1:------> sub w (*⏏$x) { 1 }ok 00:01 124m» | ||
Mouq | std: sub w (*$x) { $x } | ||
camelia | std a0bcfb1: OUTPUT«ok 00:01 125m» | ||
yogan | Makes only sense for @ and %... | 08:18 | |
Mouq | Oh, nvm | ||
yogan | Well, I guess it doesn't hurt, either. | ||
FROGGS | r: sub w(*$x) { say $x }; w() | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!===CHECK FAILED:Calling 'w' will never work with no arguments (lines 1, 1) Expected: :($x)» | ||
Mouq | "To match the first element of the slurpy list, use a "slurpy" scalar: sub quicksort (:$reverse, :$inplace, *$pivot, *@data)" | ||
FROGGS | r: sub w(*$x) { say $x }; w(1) | ||
camelia | rakudo e55c66: OUTPUT«1» | ||
FROGGS | r: sub w(*$x) { say $x }; w(1, 2) | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!===CHECK FAILED:Calling 'w' will never work with argument types (Int, Int) (lines 1, 1) Expected: :($x)» | ||
08:18
berekuk joined
|
|||
FROGGS | okay, it doesn't affect $x on rakudo | 08:19 | |
n: sub w(*$x) { say $x }; w() | |||
camelia | niecza v24-98-g473bd20: OUTPUT«» | ||
FROGGS | n: sub w(*$x) { say $x }; w(1) | ||
camelia | niecza v24-98-g473bd20: OUTPUT«1» | ||
FROGGS | n: sub w(*$x) { say $x }; w(1, 2) | ||
08:19
donaldh left
|
|||
camelia | niecza v24-98-g473bd20: OUTPUT«1 2» | 08:19 | |
FROGGS | interesting | ||
so, both are wrong | 08:20 | ||
08:20
berekuk left
|
|||
FROGGS | nn: sub w(*$x) { say $x }; w([1, 2]) # should say 1, right? | 08:20 | |
nr: sub w(*$x) { say $x }; w([1, 2]) # should say 1, right? | |||
camelia | rakudo e55c66, niecza v24-98-g473bd20: OUTPUT«1 2» | 08:21 | |
FROGGS | no | ||
nr: sub w(*$x) { say $x }; w(1, 2) # but this | |||
camelia | niecza v24-98-g473bd20: OUTPUT«1 2» | ||
..rakudo e55c66: OUTPUT«===SORRY!===CHECK FAILED:Calling 'w' will never work with argument types (Int, Int) (lines 1, 1) Expected: :($x)» | |||
08:21
donaldh joined
|
|||
Mouq | nr: sub w(*$x,*@x) { say $x; say @x }; w(1, 2) | 08:21 | |
FROGGS needs moar coffee | |||
camelia | rakudo e55c66: OUTPUT«12» | ||
yogan | Adding a slurpy array as Mouq showed in the quicksort example helps. | 08:22 | |
camelia | ..niecza v24-98-g473bd20: OUTPUT«1 2» | ||
FROGGS | ahh, yes | ||
Mouq++ | |||
Mouq | nr: sub w($x,*@x) { say $x; say @x }; say &w.candidates | 08:26 | |
camelia | rakudo e55c66: OUTPUT«sub w($x, *@x) { ... }» | ||
..niecza v24-98-g473bd20: OUTPUT«sub w(Any $x, *@x) { ... }» | |||
Mouq | nr: sub w(*$x,*@x) { say $x; say @x }; say &w.candidates | ||
camelia | niecza v24-98-g473bd20: OUTPUT«sub w(Any *$x, *@x) { ... }» | ||
..rakudo e55c66: OUTPUT«sub w($x, *@x) { ... }» | |||
Mouq | nr: sub w(*@x) { say @x }; w() | 08:27 | |
camelia | rakudo e55c66, niecza v24-98-g473bd20: OUTPUT«» | ||
dalek | p: cfaf30e | dwarring++ | examples/rubyish/ (7 files): rubyish - added .nil? method. removed non-standard // op |
||
retupmoca | is there a good way to get the local machine's hostname in perl6? | 08:38 | |
I have some code that's calling out to /bin/hostname, but that just feels like a bad idea | |||
and won't work on windows | |||
k1lldash9 | look for the reverse DNS resolution maybe? | 08:39 | |
that's of course if the RDNS is setup correctly, so that might be a bad idea as well | |||
retupmoca | Ideally there would be something similar to perl5's Sys::Hostname | 08:40 | |
maybe I'll have to write that | 08:41 | ||
k1lldash9 | ahh good point | ||
FROGGS | nr: say gethost # this is what is specced at S29:488 | 08:43 | |
synopsebot | Link: perlcabal.org/syn/S29.html#line_488 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Undeclared routine: 'gethost' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.com…» | ||
..rakudo e55c66: OUTPUT«===SORRY!===no ICU lib loaded» | |||
retupmoca | my local rakudo says gethost is undeclared | 08:45 | |
since that's in the spec, I'll just run /bin/hostname until gethost is implemented then | 08:48 | ||
FROGGS | on the other hand you could implement it :o) | 08:49 | |
retupmoca | could do that too | 08:50 | |
it would be a good excuse to open up rakudo's source | 08:51 | ||
08:51
dmol joined
09:00
denisboyun left
09:31
Mouq left
09:35
pecastro joined
09:57
Rotwang left
10:00
Rotwang joined
|
|||
arnsholt | jnthn: I think I've binary-searched my way to the appropriate patch for the bug from last night | 10:01 | |
I don't understand the inner workings of P6Opaque.class and friends well enough to understand *why*, but it seems we need to create a new delegate in change_type if the original object has a delegate, even though the derived type has the same number of attributes | 10:03 | ||
That sound reasonable? | |||
10:04
spider-mario joined
10:08
denis_boyun joined
10:13
benabik joined,
benabik left
10:30
berekuk joined
10:37
denis_boyun__ joined
10:39
denis_boyun left
10:44
dmol left
|
|||
jnthn | arnsholt: That sounds like we might be hiding/working around a real bug... | 10:44 | |
yoleaux | 04:47Z <[Coke]> jnthn: : is this a bug? say(nqp::jvmeqaddr(Int,Num)) - returns true if they are both type objects, even if they aren't the same type | ||
jnthn | arnsholt: If they're the same number of attributes they should also be the exact same attributes... | ||
10:45
berekuk left,
dmol joined
|
|||
jnthn | arnsholt: If you put in such a fix, I'd file an issue saying that it needs a closer look | 10:46 | |
arnsholt | Hmm. Right | ||
I'll pick at it some more then | 10:49 | ||
10:49
dmol left
|
|||
jnthn | What does the patch that you have that avoids the problem look like, ooc? | 10:50 | |
arnsholt | gist.github.com/arnsholt/7068002 | 10:51 | |
The only thing that's really changed is the if condition | 10:52 | ||
I factored out the repeated casts to P6OpaqueBaseInstance while I was at it, since the condition wouldn't gotten really overlong | 10:53 | ||
*would've gotten | |||
jnthn | yeah, that's the kinda thing I thought you meant. Hm | 11:00 | |
11:04
berekuk joined
|
|||
arnsholt | I tried just redoing the loop setting the delegate thingies, but that didn't work | 11:08 | |
For some reason it has to create a new delegate | |||
Oh, but the old delegate has the wrong type, doesn't it? | 11:10 | ||
Could it be that inside the postcircumfix:<( )> it tries to look up the method via the delegate? | |||
11:12
xenoterracide left
11:15
PacoAir joined
|
|||
jnthn | arnsholt: Method dispatch *shouldn't* ever do that... | 11:23 | |
arnsholt | Hmm | 11:24 | |
11:24
sqirrel joined
|
|||
jnthn | That is, it's meant to look at the st | 11:24 | |
Which is update din the top-level object | |||
arnsholt | Yeah | ||
jnthn | The delegate should only be known on the inside of P6opaque | ||
That is, if we're screwing something up with it, it should most probably be something in one of the REPR methods not checking for the delegate, or something... | 11:25 | ||
arnsholt | Yeah, that makes sense | 11:26 | |
11:28
berekuk left
11:29
berekuk joined
11:31
hummeleB1 joined
11:39
colomon left
11:47
SamuraiJack joined
|
|||
jnthn | travel & | 11:53 | |
FROGGS | jnthn: have fun | ||
11:57
colomon joined
12:02
SamuraiJack left
12:11
zakharyas joined
12:17
cognominal joined
12:23
kaare_ left
12:27
berekuk left
12:38
hummeleB1 left,
dmol joined
12:39
hummeleB1 joined
12:43
hummeleB1 left
|
|||
dalek | p/unified-build: 43315a1 | moritz++ | / (8 files): factor out common definitions from the Makefile-$backend.in files to a Makefile-common.in |
12:49 | |
moritz | 8 files changed, 103 insertions(+), 202 deletions(-) | 12:50 | |
arnsholt | Nice! | ||
13:07
denis_boyun__ left
13:08
denis_boyun joined
13:09
zakharyas left
13:10
sqirrel left
13:13
GlitchMr left,
GlitchMr joined
13:20
denis_boyun left
13:23
stevan_ left
13:31
grondilu joined
13:36
xinming left
13:38
xinming joined
13:45
kaare_ joined
13:58
ggoebel10 joined
13:59
berekuk joined,
ggoebel9 left
14:00
ajr joined,
berekuk left,
ajr is now known as Guest73241,
Guest73241 is now known as ajr_
14:07
ggoebel11 joined
14:10
ggoebel10 left
14:11
BenGoldberg joined
|
|||
dalek | p/unified-build: bc9e3ce | moritz++ | tools/build/Makefile-Moar.in: [moar] start to move generated files to gen/moar |
14:22 | |
p/unified-build: 0dee6c2 | moritz++ | tools/build/Makefile-Moar.in: [moar] move moar generated files to gen/moar/ |
|||
p/unified-build: 9b35f5d | moritz++ | / (2 files): [parrot] get rid of useless gen/ subdirs now that we build stuff in gen/parrot, it is redundant also clean up cleanup list |
|||
14:26
aindilis left
14:27
stevan_ joined
14:37
spider-mario left
14:44
rindolf joined
14:47
denisboyun joined
14:54
denisboyun left
14:59
denisboyun joined
15:26
jaffa4 joined
|
|||
jaffa4 | hi all | 15:27 | |
does anyone use panda? | |||
timotimo | most people here do | 15:30 | |
jaffa4 | it fails with Failed to remove the file '.work\1382200940_1\.git\objects\pack\pack-0c0f1cd3bec5dca5469eff761cf3bc2ac89d1d61.pack': unlink failed: Access is denied. | 15:31 | |
timotimo | did you do anything as root recently? with sudo? | ||
jaffa4 | that is windows | ||
timotimo | rakudo recently learned to really delete files on windows, that should work | 15:32 | |
out of curiosity, what did you try to do? | |||
jaffa4 | you know top secret, I do not know if I should tell you ,I tried to install a module | 15:33 | |
timotimo | the exact command please? what module? | ||
that should be happening after the build is complete, right? | |||
jaffa4 | not sure maybe it is complete | 15:34 | |
How can I check that? | |||
masak | jaffa4: I guess the interesting thing is whether you can recreate the exact error. | 15:35 | |
timotimo | well, what's the output? | ||
there should be many lines of output normally | |||
masak | jaffa4: if you can, then someone with their fingers in the panda guts will be able to help you much better. | ||
jaffa4 | panda install XML::Writer | 15:36 | |
dalek | p/unified-build: 4a1558c | moritz++ | tools/build/Makefile-JVM.in: [JVM] remove useless gen/ dirs that stuff is in gen/jvm/ anyway |
||
15:37
Mouq joined
|
|||
jaffa4 | where does panda install the modules? | 15:37 | |
pastebin.com/Z9MRRtAq | 15:39 | ||
masak: like who? | 15:40 | ||
timotimo | parrot 5.5, eh? i think you're on an outdated rakudo, but that's understandable, the new compiler is out, iirc, but not our rakudo star release | ||
rm_rf in shell::command has been taught to handle stubborn files on windows recently | 15:41 | ||
github.com/tadzik/Shell-Command - see if you can get this into panda and bootstrap it again? | 15:42 | ||
jaffa4 | I have ini file module for perl 5, is it worth translating into perl 6? | 15:43 | |
japhb__ | Those long backtraces are insane, BTW. I see in one of them unlink happening supposedly inside mkdir. | ||
timotimo | there is a Config::INI module for perl6, you could see if it lacks features you have | ||
github.com/tadzik/perl6-Config-INI/ | 15:44 | ||
oh, whaaaat? that's weird, japhb__ | |||
jaffa4 | yes, mine is different, much more functions | ||
I used mine for a small memory database | 15:45 | ||
japhb__ | Oh, in answer to the question about install location, it installs to the site lib. | 15:47 | |
r: say %*CUSTOM_LIB<site> | |||
camelia | rakudo e55c66: OUTPUT«/home/p6eval/nom-inst/lib/parrot/5.9.0-devel/languages/perl6/site» | ||
15:49
dmol left
|
|||
jaffa4 | C:/rakudo/lib/parrot/5.5.0/languages/perl6/site | 15:53 | |
masak | jaffa4: like who? tadzik, timo, donaldh, moritz -- or so it seems from the panda commit log. | 15:59 | |
jaffa4 | timotimo: bootstraping? how do I do that? | ||
timotimo | run bootstrap.pl or what it's called | ||
it's just a perl6 script | |||
inside the panda folder | |||
16:00
patspam left,
dmol joined
|
|||
jaffa4 | there is no such a file | 16:03 | |
timotimo | 16:06 | ||
timotimo | there is not? | 16:07 | |
jaffa4 | no | ||
timotimo | in that case, you have to clone github.com/tadzik/panda | ||
that way you should get a sufficiently up-to-date Shell::Command, too, to get around the rm_rf problem | |||
at least i hope so | |||
for now i gotta run | 16:08 | ||
japhb__ | jaffa4: Remember to clone with --recursive | 16:12 | |
16:18
k1lldash9 left
16:19
denisboyun left
|
|||
Mouq | :D | 16:32 | |
Mouq figured out how to bootstrap his changes | |||
…And it worked! | |||
moritz | \o/ | 16:33 | |
16:36
denis_boyun joined,
jaffa4 left
16:43
denis_boyun left
16:54
kurahaupo joined
16:56
berekuk joined
16:58
berekuk left
17:00
Vlavv` left
17:07
kurahaupo left,
kurahaupo_ joined
17:12
Vlavv` joined
17:13
kurahaupo_ is now known as kurahaupo
17:16
kurahaupo left,
kurahaupo joined
17:25
cognominal left
17:26
cognominal joined
17:28
ajr_ left
17:29
kurahaupo left
17:30
kurahaupo joined
|
|||
masak accidentally trips over a box of pins, dropping some of them on the floor | 17:36 | ||
oh! by the way, | |||
I had some macro thoughts today. but I haven't had the tuits to write them up yet. | |||
got pulled into a very ambitious dumpling making session. :) | |||
moritz | masak: sounds fun :-) | 17:42 | |
moritz made some bløtkake for $wife | 17:43 | ||
17:43
rindolf left
17:46
timotimo left
17:50
timotimo joined
|
|||
yogan | What's the reason that private attributes of classes are undefined by default, but public attributes are initialized with Any? | 17:51 | |
timotimo | i don't understand. Any is undefined, too | 17:52 | |
yogan | moritz: Du weißt, wie komisch bløtkake auf deutsch klingt, gell? ;-) | ||
timotimo | do you have a snippet of code to show that behavior? | ||
yogan | Sure, let me make it compact... | ||
17:53
darutoko left
|
|||
yogan | r: class A { has $.x; has $!y }; A.new.perl.say; | 17:53 | |
camelia | rakudo e55c66: OUTPUT«A.new(x => Any)» | ||
masak | yogan: that just means private-only attributes are not visible from the outside. | 17:54 | |
yogan: (as they shouldn't be, since they are not public) | |||
yogan | Oh, I see. .perl tricked me... | 17:55 | |
Is there some built-in way to dump an object? | |||
timotimo | there is .DUMP | ||
r: class A { has $.x; has $!y }; A.new.DUMP.say | |||
camelia | rakudo e55c66: OUTPUT«A<1>( :x(▶Any), :$!y(Any))» | ||
yogan | Ha! Nice. | 17:56 | |
FROGGS | .perl is what Data::Dumper is for p5 | ||
masak | r: class A { { has $.x; has $!y }; .say for A.^attrs | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!=== Error while compiling /tmp/O6vLABCQf_Unable to parse expression in block; couldn't find final '}'at /tmp/O6vLABCQf_:1------> { has $.x; has $!y }; .say for A.^attrs⏏<EOL> expecting any of: …» | ||
timotimo | (implementation specific) | ||
Mouq | r: class A { has $.x; has $!y }; .say for A.^attrs | ||
camelia | rakudo e55c66: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW' in block at /tmp/BaR1tRi6sS:1» | 17:57 | |
timotimo | r: class A { has $.x; has $!y }; .say for A.^attributes | ||
camelia | rakudo e55c66: OUTPUT«Mu $!xMu $!y» | ||
17:59
[Sno] left
|
|||
dalek | p/unified-build: 09388f6 | moritz++ | tools/build/Makefile-Parrot.in: [parrot] start to rename Makefile variables the idea is to join the various Makefiles eventually, so we should avoid name collisions. No functional changes |
18:00 | |
18:00
[Sno] joined
18:06
GlitchMr left
18:07
GlitchMr joined
|
|||
masak | moritz++ | 18:11 | |
japhb__ | Didn't panda used to be able to | 18:14 | |
'panda install .'? Or am I just forgetting? | 18:15 | ||
18:17
kurahaupo left
|
|||
moritz | fiddling that much with the build system isn't all too much fun | 18:19 | |
most changes need a full recompile, and error messages are often cryptic | 18:20 | ||
masak | long builds kill the fun of most things. | 18:24 | |
humans enjoy rapid feedback. | |||
moritz | and that's the second problem | ||
most of my patches don't improve much for themselves | 18:25 | ||
yogan | What is the meaning of ▶ in the output of .DUMP? | 18:26 | |
japhb__ | yogan: The thing in question is containerized | 18:27 | |
moritz | yogan: I have no idea, but my guess would be a scalar container | ||
japhb__ | (inside a scalar container) | ||
yogan: A few other things are marked tersely like that, such as using the infinity symbol for infinite lists. | 18:29 | ||
Mouq | r: (1...*).DUMP.say | 18:31 | |
camelia | rakudo e55c66: OUTPUT«∞List<1>( :$!flattens(Mu), :$!items(▶Mu), :$!nextiter(∞ListIter<3>( :$!list(=List<1>), :$!reified(▶Mu), :$!nextiter(▶Mu), :$!rest(QRPA<4>( ∞List<5>( :$!flatten…» | ||
yogan | japhb__: Sorry, but what is containerized? | ||
japhb__ | moritz: It's definitely really important work, though. It's going to make my life easier. | 18:32 | |
18:32
jferrero left
|
|||
japhb__ | yogan: As I said, held inside a scalar container. Basically, held at a level of indirection. | 18:32 | |
18:32
jferrero joined
|
|||
yogan | japhb__: As in, lazy evaluated? Or what implications does the holding in a scalar container have? | 18:33 | |
Mouq | r: (1, * * (1+1/2)...2).DUMP.say | ||
camelia | rakudo e55c66: OUTPUT«List<1>( :$!flattens(Mu), :$!items(▶Mu), :$!nextiter(ListIter<3>( :$!list(=List<1>), :$!reified(▶Mu), :$!nextiter(▶Mu), :$!rest(QRPA<4>( List<5>( :$!flattens(Mu),…» | ||
japhb__ | Mouq: DUMP output can rapidly get really large. Sometimes there's a LOT of magic going in seemingly simple things. | 18:35 | |
Hmmm, there are a lot of hits for 'git grep container' in the specs tree. | 18:37 | ||
yogan: I think any answer I could give would be either oversimplify or else immediately beg another question. I defer to the specs on this. | 18:38 | ||
yogan | japhb__: Sure. I'll read it up. | 18:39 | |
Mouq | Aha! I can't compile because I did what I was trying to do too well :p / :s $<capture> = [a|b] / means / $<capture> = [[a|b]<.ws>] /, according to the rules. Kinda un-dwimmy though | ||
japhb__ | The short answer is that you often don't care about whether something is inside a scalar container or not; they are "translucent" in the sense that most of the time, Perl 6 just sees through scalar containers to whatever is inside. There are of course operations for which it matters (otherwise it wouldn't be visible at all), but the specs will give you the details on that. | 18:40 | |
masak | interesting, a live programming language: research.microsoft.com/en-us/people...spx?iedz00 | ||
research.microsoft.com++ | 18:41 | ||
lue | hello world o/ | 18:42 | |
japhb__ | If the entire world greets you back, that could get rather deafening. So I'll just say: "o/ lue!" | 18:43 | |
18:43
berekuk joined
|
|||
masak | japhb__: that certainly puts the "hello world" program into some perspective. | 18:45 | |
lue | r: # say "HELLO LUE!" for ^7_000_000_000 | 18:48 | |
camelia | ( no output ) | ||
japhb__ | :-D | ||
masak | well, that's if "world" is "Earth humans", sure... :) | 18:50 | |
Mouq | r: say "Combined recording of the world saying hello back: {55 + 10*log(7_000_000_000)} decibles" | ||
camelia | rakudo e55c66: OUTPUT«Combined recording of the world saying hello back: 281.691759860017 decibles» | ||
Mouq | I'm sure you'll be fine | 18:51 | |
geekosaur | iirc 110's enough to cause deafness | ||
18:52
xenoterracide joined
18:53
SamuraiJack joined
|
|||
masak | Mouq++ # science | 18:54 | |
19:11
denis_boyun joined
19:16
denis_boyun left
19:18
SamuraiJack left
|
|||
Mouq un-afk | 19:18 | ||
www.gcaudio.com/resources/howtos/loudness.html "Loudest sound possible — 194dB" | |||
That doesn't seem right though | 19:19 | ||
moritz would be surprised if a nuclear bomb produces less than 194dB | |||
jnthn | evening, #perl6 | 19:20 | |
geekosaur | exponential scale, remember | 19:22 | |
Mouq | Ah, apparently after 194dB in air, it stops being 'sound' :p | ||
moritz | Mouq: and is "explosion"? | 19:23 | |
geekosaur | 194dB is probably the point at which molecules stop vibrating because they're completely disrupted | ||
timotimo | Mouq: that's probably where air liquefies or something like that :) | ||
geekosaur | although technically that doesn't stop sound | ||
Mouq | en.wikipedia.org/wiki/Sound_pressu...ure_levels | 19:24 | |
geekosaur | liquids carry sound though | ||
ah, ok, clipping, that makes sense | 19:25 | ||
for some reason I thought it would take a higher amplitude than that to lead to vacuum in the troughs | 19:27 | ||
19:28
Rotwang left
19:30
dmol left
|
|||
lue | .oO(It should be possible to use either gravitational waves (should they exist) or somehow cause ripples in the fabric of spacetime to send sounds around IN SPACE.) |
19:35 | |
timotimo | those would still be clipped to the speed of light, though? | 19:37 | |
19:44
Rotwang joined
|
|||
geekosaur | unclear | 19:47 | |
if general relativity is correct then gravitational waves *are* ripples in the fabric of spacetime, and as such are not constrained by the speed of light | 19:49 | ||
dalek | p/unified-build: 3b237b5 | moritz++ | tools/build/Makefile- (4 files): put more variables into Makefile-common.in |
19:50 | |
p/unified-build: 86406eb | moritz++ | / (6 files): More Makefile unification and disambiguation Makefile fix for PERL |
|||
19:50
dalek left
19:51
dalek joined,
ChanServ sets mode: +v dalek
19:53
denis_boyun joined
|
|||
japhb__ | I have a collection of modules, some of which can be compiled with all rakudo variants, and some of which need concurrency (so don't work on rakudo-parrot). I'd like to be able to install this collection into each rakudo I build, regardless of backend. However, panda will refuse to do the install on rakudo-parrot because some modules don't compile. | 19:57 | |
Thoughts on working around this? | |||
I could split into multiple module collections (doesn't represent how I treat them, really), I could hack panda to take some kind of ignore compile failures flag, ... | 19:59 | ||
masak | japhb__: what's the simplest thing that could possibly work? | 20:00 | |
moritz | eval | ||
20:00
ssutch joined
|
|||
masak | suggestion: make that work now. | 20:00 | |
arnsholt | jnthn: I've whacked a bit at the bug we talked about, and think I've found something potentially interesting | 20:12 | |
Consider the updated version of the test script in gist.github.com/arnsholt/7059777 | 20:15 | ||
20:16
denis_boyun left
|
|||
arnsholt | After the mixin with does, inside the trait handlers, $r has the correct type. But outside of them in the normal script, it's a Sub+{Foo} instead of the Sub+{Foo}+{Bar[Str]} we want | 20:16 | |
Does that give you any thoughts? | |||
20:17
denisboyun joined
|
|||
FROGGS | maybe it is just its gistification? | 20:19 | |
arnsholt | No, there's a behvaiour bug as well | 20:20 | |
The bar method isn't visible for some reason | 20:22 | ||
FROGGS | you want to mixin a method into a sub? | 20:23 | |
arnsholt | I want to add a method to the sub object | 20:24 | |
(This is an actual regression in NativeCall on Rakudo/JVM, FWIW) | 20:25 | ||
I'm just having a devil of a time figuring out what's going on (and whether it's a Rakudo or NQP bug) | 20:26 | ||
jnthn | arnsholt: I wonder if the clone (from taking a closure) is to blame... | 20:27 | |
p/unified-build: 1a09cc6 | moritz++ | Configure (2 files): Unify Configure.pl and ConfigureMoar.pl now "perl Configure.pl --backends=moar" creates a Makefile suitable for building nqp on Moar |
|||
moritz | ok, enough build and Configure hacking for today | ||
what's up with dalek? | 20:29 | ||
jnthn | arnsholt: Also, if maybe when we don't make a fresh delegate, it has an .st that needs updating | 20:30 | |
20:31
Exodist left
|
|||
arnsholt | Right | 20:31 | |
So it's just the subs themselves being closures, or something else I'm not seeing? | |||
masak | lol, I... didn't quite blog, but I wrote some thoughts about a possible "each" macro. gist.github.com/masak/7074924 -- comments welcome. | 20:32 | |
20:34
Exodist joined
|
|||
grondilu | r: sub f { $^x**2 }; say f each ^10 | 20:34 | |
camelia | rakudo e55c66: OUTPUT«===SORRY!=== Error while compiling /tmp/ZMIa04MpZ8Undeclared routine: each used at line 1» | ||
grondilu | std: sub f { $^x**2 }; say f each ^10 | 20:35 | |
camelia | std a0bcfb1: OUTPUT«ok 00:01 125m» | ||
grondilu | n: sub f { $^x**2 }; say f each ^10 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Undeclared routine: 'each' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_u…» | ||
masak | grondilu: conjectural feature :) | ||
arnsholt & # bedtime | 20:36 | ||
FROGGS | moritz: it is obviously not dalek's day | ||
masak | grondilu: especially since it depends (as the gist explains) on a conjectural macro feature... | 20:39 | |
lue | masak: this is "eager Junction" each, right? | ||
grondilu | masak: I was not sure if the gist was suggesting an alternative implementation other an existing one. | 20:41 | |
20:43
kaare_ left
|
|||
masak | lue: dunno what you mean by "eager Junction". | 20:44 | |
lue: but one of the (small) problems with the each junction is that it's quite different in semantics from the spec'd four. | |||
lue | not "eager", but "ordered" rather | 20:45 | |
masak | I think I see what you mean by "eager" -- an "each" basically "evaporates" wherever you put it -- you can never store an "each" in a container like you can with the other junction types. | ||
lue | masak: no, I just misremembered the description of Each. S02 set me straight :P | 20:46 | |
masak | an "each" is basically a for loop that pretends to be a single item value. | ||
lue | that's a better way to describe it actually. An ordered superposition doesn't make much sense outright. | 20:48 | |
moritz | .oO( ordered superstition ) |
20:50 | |
dalek | p/unified-build: ef0d520 | moritz++ | Configure (2 files): munge ConfigureJVM.pl into Configure.pl |
20:54 | |
20:55
pmurias joined
|
|||
FROGGS | cool! | 20:55 | |
pmurias | masak: re the live programming language it would be nice if they provided an executable | 20:56 | |
moritz | next up: sleep, really & | 20:57 | |
FROGGS | moritz: sleep well! #parrot spammer | ||
gnight | 21:12 | ||
timotimo | gnite froggs | 21:14 | |
21:15
LWA left
|
|||
Ulti | this sounds oddly like all the goals of Perl6... x.rubini.us/ | 21:23 | |
which is kind of funny considering the ending | 21:24 | ||
"Purge the Perl | |||
In general, anything inspired by Perl should be removed" | |||
:S | |||
lue | (I almost guarantee the first thing you'll see someone picking up Rubinius-X doing is creating a way to emulate global variables.) | 21:28 | |
timotimo | thought so as well | 21:31 | |
they'll probably get it up and running in less than 13 years, though | |||
jnthn | sleep & | 21:36 | |
geekosaur | but it will be Less Than Awesome | 21:37 | |
timotimo | maybe we'll have a working implementation of rubinius x on nqp before they do on rubinius :P | 21:42 | |
and then we make one more iteration of the design and write "purge all the ruby" where we mention forbidding to open classes at runtime and such | 21:43 | ||
geekosaur | that said, this is about the future of Ruby? I'm actually inclined to agree with removing the Perlisms, because in general Ruby took the worst of Perl instead of the best | ||
timotimo | this is more like a fork, actually | ||
21:47
dmol joined
21:50
colomon left
21:51
colomon joined
21:53
Rotwang left
22:05
denisboyun left
|
|||
dalek | p/stdsigspace: 22fc9a6 | Mouq++ | src/QRegex/P6Regex/ (2 files): Attempt at getting sigspacing right |
22:24 | |
p/stdsigspace: 9939724 | Mouq++ | src/ (3 files): Try to do sigspace better in NQP::Grammar |
|||
p/stdsigspace: 729fab5 | Mouq++ | src/QRegex/P6Regex/ (2 files): Do sigspace even more right Now only finds sigspace after an allowed metachar |
|||
p/stdsigspace: 8ad1461 | Mouq++ | src/ (3 files): Small fixes to sigspace |
|||
p/stdsigspace: 3b73abb | Mouq++ | src/NQP/Grammar.nqp: Replace sigspace in NQPGrammar so we can bootstrap |
|||
p/stdsigspace: 7f835ad | Mouq++ | src/ (11 files): Bootstrap sigspace and get up to make |
|||
Mouq had to push eventually | |||
It doesn't pass make test yet | 22:25 | ||
timotimo | :) | 22:27 | |
cool stuff | |||
22:27
d4l3k_ joined,
dalek left,
d4l3k_ is now known as dalek
|
|||
pmurias | re rubinius x are the issues they claim to solve serious problems in ruby? | 22:33 | |
22:33
langdon_ joined
|
|||
pmurias | or is the main reason for the fork to bring interest to rubinius itself? | 22:34 | |
22:38
langdon_ left
23:04
berekuk_ joined
23:06
grondilu left,
berekuk left
|
|||
dalek | p: d44b791 | Mouq++ | docs/ops.markdown: [docs] nqp::getcomp and nqp::bindcomp |
23:11 | |
timotimo | Mouq: it confuses me, that you would do my $lang = My::Lang::Compiler.new() rather than passing just the class | 23:17 | |
[Coke] | Mouq++ | 23:18 | |
dalek | p: bc45c01 | Mouq++ | docs/ops.markdown: [docs] missing apos |
||
Mouq | nqp: class A {}; nqp::bindcomp('bla', A.new) | 23:19 | |
camelia | ( no output ) | ||
Mouq | nqp: class A {}; nqp::bindcomp('bla', A) | ||
camelia | ( no output ) | ||
23:20
dwarring left
|
|||
retupmoca | p5eval: print hex("0F"); # what's the perl6 version of this? | 23:20 | |
p5eval | retupmoca: 151 | ||
Mouq | nqp: class A {}; nqp::bindcomp('bla', A); say(nqp::what(nqp::getcomp('bla'))) | 23:21 | |
camelia | nqp: OUTPUT«» | ||
Mouq | nqp: class A {}; nqp::bindcomp('bla', A.new); say(nqp::what(nqp::getcomp('bla'))) | ||
camelia | nqp: OUTPUT«» | ||
Mouq | nqp: class A {}; class bla {}; nqp::bindcomp('bla', A.new); say(nqp::what(nqp::getcomp('bla'))) | ||
camelia | nqp: OUTPUT«» | ||
Mouq | Hrm | ||
timotimo: I'm not sure if it makes a difference. HLL::Compiler passes self to it, so I went with a .new()ed class | 23:22 | ||
retupmoca | r: say '0x0f'.Num | 23:23 | |
camelia | rakudo e55c66: OUTPUT«15» | ||
retupmoca | oh | ||
ok | |||
timotimo | Mouq: ok | ||
Mouq | r: say 0x0f | 23:24 | |
camelia | rakudo e55c66: OUTPUT«15» | ||
timotimo | since you can call .new on instances usually... yeah | ||
Mouq | r: say :16<0f> | ||
camelia | rakudo e55c66: OUTPUT«15» | ||
Mouq | r: say :16<f> | ||
camelia | rakudo e55c66: OUTPUT«15» | ||
Mouq | r: say :16(15) | 23:25 | |
camelia | rakudo e55c66: OUTPUT«Nominal type check failed for parameter '$str'; expected Str but got Int instead in sub unbase at src/gen/CORE.setting:6446 in block at /tmp/9yj7nQt8IN:1» | ||
Mouq | r: say :16('0f') | ||
camelia | rakudo e55c66: OUTPUT«15» | ||
retupmoca | and that works even better | 23:26 | |
lue | going through the slides again, it's fun to force yourself to not give up on a particular exercise (just because you want to go to the next ones) and then succeed. | ||
r: say "0x0F".Int; say +"0x0F" | |||
camelia | rakudo e55c66: OUTPUT«1515» | ||
23:28
pmurias left
23:32
xenoterracide left
23:34
gshank left
|
|||
dalek | osystem: 1f6efff | (Andrew Egeler)++ | META.list: Add MIME::QuotedPrint |
23:38 | |
retupmoca | ^ that code is probably the slow way to do it, but it seems to work | 23:39 | |
timotimo | yeah, string concat is pretty slow, you'd be better off having the bytes pushed into a list, then joining them at the end | 23:40 | |
you can do some timings | |||
23:42
gshank joined
|
|||
retupmoca | so, is there a base64 module that isn't parrot-specific? | 23:43 | |
I saw Enc::MIME::Base64, but panda won't compile it here | |||
because there are already two base64 modules - I'd rather not write another one | 23:44 | ||
dalek | rl6-most-wanted: 285a60a | (Andrew Egeler)++ | most-wanted/modules.md: Update modules.md |
23:50 | |
timotimo | r: say "retupmoca".list.reverse.join("") | 23:52 | |
camelia | rakudo e55c66: OUTPUT«retupmoca» | ||
timotimo | r: say "retupmoca".comb.reverse.join("") | ||
camelia | rakudo e55c66: OUTPUT«acomputer» | ||
timotimo | r: say "retupmoca".reverse | ||
camelia | rakudo e55c66: OUTPUT«retupmoca» | ||
23:52
dmol left
23:55
colomon left
23:56
colomon joined
|
|||
retupmoca | huh, irssi didn't highlight on that | 23:56 | |
and yes, I came up with this name when I was...13 or so? | |||
japhb__ | It appears that nqp::copy on JVM does not by default copy over an existing file, while it does on parrot. The JVM behavior results in being unable to successfully update modules installed with panda without manually removing the old installed files first. | 23:57 | |
lue | r: say "bolton".flip | 23:58 | |
camelia | rakudo e55c66: OUTPUT«notlob» |