»ö« 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. |
|||
vendethiel | wendy++ | 00:00 | |
pretty amazing, if you ask me ;-) | |||
00:00
skids joined
|
|||
tadzik | oh, I'm on the internet :) | 00:02 | |
woolfy++ | |||
masak_grr | internet++ | ||
woolfy | tadzik: I still have lots of troubles finding a flattering picture of you... | 00:03 | |
tadzik | heh | ||
well, there's always the one with red mohawk... : | |||
:P | |||
woolfy | By the way, this is certainly a El_Che++ for putting all the info into the FOSDEM system, not an easy task... | ||
tadzik | El_Che++ | ||
woolfy | I got a lovely one of you at the French Perl Workshop in 2012 | 00:04 | |
adu | tadzik: lol | ||
tadzik | oh, I had some nice ones from there :) | ||
woolfy: well, if you can't find anything by tomorrow I can try to take one of myself :) | 00:05 | ||
now I'm too sleepy | |||
00:05
sivoais_ left
|
|||
tadzik | zzz * | 00:05 | |
woolfy | Nope, got it. On to the next fotogenic person. Three to go. | ||
tadzik | & | ||
masak_grr | tadzik: sleep well | ||
woolfy | tadzik: sleep well | ||
El_Che | doesn't the intertubes have shameful pics of you all to put on the fosdem site? | ||
:) | |||
tadzik | thank you, and so to you, when you decide to :) | 00:06 | |
woolfy | No, but Wendy's backup does have pictures of many people, including El_Che! :-) | ||
El_Che | omg | ||
:) | |||
woolfy | Muhahaha! | ||
El_Che: go to bed!!! | |||
:-) | |||
El_Che | yeah, getting up in 5h18 minutes :( | 00:07 | |
damn, I need to win the lottery :) | |||
woolfy | Ouch... | ||
El_Che | goingto bed, good idea | ||
bye | |||
woolfy | \o | ||
00:08
sivoais joined
00:11
Guest19303 is now known as felher
00:25
gfldex left
00:31
Sqirrel joined,
Ugator left
|
|||
adu | I figured it out! | 00:42 | |
masak_grr | let's hear it. | ||
00:42
masak_grr is now known as masak
|
|||
adu | I put the long enums in C::AST::Ops, and everything else in a single file | 00:44 | |
so much cleaner | |||
I think I made a number of mistakes | 00:45 | ||
I was doing "use C::AST3", but the thing at the top was "module C::AST;" | 00:46 | ||
github.com/andydude/p6-c-parser/bl...C/AST3.pm6 | 01:02 | ||
isn't it pretty? | 01:03 | ||
01:03
Guest37082 left
01:10
retupmoca left
01:12
retupmoca joined
01:13
IllvilJa left
01:14
Alina-malina left
01:22
IllvilJa joined
|
|||
masak | 'night, #perl6 | 01:22 | |
01:22
kurahaupo joined
01:26
dj_goku joined
01:31
dj_goku left
01:48
Sqirrel left,
dj_goku joined,
dj_goku left,
dj_goku joined,
Sqirrel joined
01:49
BenGoldberg joined
|
|||
skids | m: my @in = (Num.^methods.gist x 400).split(/\s+/); now.say; my @t = @in.grep({ /ee/ }); now.say; my $in = @in.join(" "); my @v = $in ~~ m:g/\w*ee\w*/; @v = @v».Str; now.say; say so (@v) eq (@t) # drastic performance difference | 01:50 | |
camelia | rakudo-moar 0463a4: OUTPUT«Instant:1421373078.155182Instant:1421373081.166052Instant:1421373081.401042True» | ||
01:59
skids left
|
|||
TimToady | subtraction...hard... | 02:07 | |
why not use @v eqv @t, which will hopefully short circuit if an early element is different | 02:12 | ||
m: my @in = (Num.^methods.gist x 400).split(/\s+/); now.say; my @t = @in.grep(/ee/); now.say; my $in = @in.join(" "); my @v = $in ~~ m:g/\w*ee\w*/; @v = @v».Str; now.say; say @v eqv @t | 02:15 | ||
camelia | rakudo-moar 0463a4: OUTPUT«Instant:1421374540.527195Instant:1421374543.173888Instant:1421374543.408081True» | ||
TimToady | you can get rid of ⅔ of the time just be losing the closure around the /ee/ | ||
*by | |||
02:16
skids joined
|
|||
TimToady | hopefully you can lose most of the other ⅓ by implementing the GLR | 02:16 | |
skids: see backlog | |||
skids | Yeah actually I put the closure in at one point to see if it helped the rx stay compiled (assuming that was part of it) and forgot to take it back out before pasting. | 02:20 | |
The parens/lists were just superstitious | 02:22 | ||
TimToady | so was the so :) | 02:23 | |
02:25
bonsaikitten left
02:26
chenryn joined,
xiaomiao joined
02:30
cbk1090 joined
|
|||
cbk1090 | When installing Rakudo what does "Parrot without ICU is not supported anymore." mean and how do I fix it? | 02:32 | |
leont | Parrot uses the ICU library for unicode support | ||
02:33
77CAABY7Q left,
CAABY7Q joined
|
|||
cbk1090 | Ok so just fix unicode. got it. Thanks | 02:34 | |
adu | You can't fix unicode | 02:36 | |
geekosaur | you need to make sure the ICU development headers and libraries are installed when parrot is built (usually Configure ... --gen-parrot) | 02:38 | |
02:39
chenryn left
|
|||
cbk1090 | It looks like the ICU headers are not being installed with the Configure --gen-parrot option. At least for me | 02:39 | |
02:40
chenryn joined
|
|||
geekosaur | ... | 02:40 | |
maybe I need to rephrase that | |||
gen-parrot does not install ICU for you; you must install it, however you need to do it on your OS, *before* the gen-parrot | |||
or parrot will build without it, and will not work for rakudo-parrot | 02:41 | ||
cbk1090 | oh ok. | ||
02:52
vendethiel left
02:54
vendethiel joined
03:06
frew left
03:12
vukcrni joined
03:15
vendethiel left
03:17
vendethiel joined
03:24
noganex joined
03:28
noganex_ left
03:39
vendethiel left
03:45
leont left
03:50
cbk1090 left
04:07
IllvilJa left
04:15
IllvilJa joined
04:19
Rounin joined
04:38
anaeem1_ joined
04:56
Rounin left
04:59
kurahaupo left
05:02
frew joined
05:03
yeahnoob joined,
yeahnoob left
05:04
yeahnoob joined,
yeahnoob left,
BenGoldberg left,
yeahnoob joined
05:05
yeahnoob left,
yeahnoob joined,
yeahnoob left
05:06
yeahnoob joined
|
|||
adu | hmm | 05:12 | |
05:21
vendethiel joined
05:25
Guest24916 is now known as ponbiki
|
|||
raydiak | hm? | 05:44 | |
05:44
vendethiel left
|
|||
raydiak | m: my $a = 'foo'; $a.substr-rw(2,1) = 'x'; say $a; | 05:56 | |
camelia | rakudo-moar 0463a4: OUTPUT«No such method 'substr-rw' for invocant of type 'Str' in block <unit> at /tmp/FXDKKGCLEh:1» | ||
raydiak | can anyone suggest a good way to replace 1 character in a string by index? | ||
thought we had substr-rw implemented already, but guess it's gone | 05:57 | ||
05:57
kaleem joined
06:01
dwarring left
|
|||
raydiak | rn: my $a = 'foo'; $a.substr-rw(2,1) = 'x'; say $a; | 06:01 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace: at <unknown> <0xffffffff> at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff> at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff> at string…» | ||
..rakudo-{parrot,moar} 0463a4: OUTPUT«No such method 'substr-rw' for invocant of type 'Str' in block <unit> at /tmp/tmpfile:1» | |||
06:02
IllvilJa left
|
|||
adu | o raydiak | 06:09 | |
raydiak | omg adu where'd yer arm go!? | 06:10 | |
adu | pastie.org/9834616 | ||
my arm? | |||
TimToady | I found it over here --> / | 06:11 | |
adu | I don't get it | ||
raydiak | ^^^^^^ thought " o " was a o/ missing the part that TimToady found :) | ||
adu | o that's what it means | 06:12 | |
I always though "\o" was just a lazy way of spelling "hello" | |||
06:12
Rounin joined
|
|||
raydiak | heh I spent a good few months lurking here wondering what kind of escape sequence "\o" was | 06:12 | |
nice adu++ # tenacity | 06:13 | ||
adu | I apparently spent several years doing the same | ||
raydiak | so you've got CAST starting to work? | 06:14 | |
adu | yes | ||
I'm on my second major rewrite, CAST3 | |||
github.com/andydude/p6-c-parser/bl...C/AST3.pm6 | 06:15 | ||
isn't it beautiful? | |||
TimToady | 11 more rewrites and you can get it to CASTE if you stick to hex | 06:16 | |
06:16
IllvilJa joined
|
|||
raydiak | oh pretty | 06:16 | |
TimToady | I guess that would be B momre rewrites though | ||
adu | TimToady: lol | 06:17 | |
TimToady | *more | ||
adu | 0x65 | ||
JimmyZ | why AST3? not AST | ||
adu | JimmyZ: because I like to copy some things instead of write from scratch, when I'm ready I'll rename s/AST3/AST/ when I merge into master branch | 06:18 | |
06:21
kaleem left
06:22
Alina-malina joined
06:27
chenryn_ joined
06:28
chenryn left
|
|||
TimToady | crud, the civil time idiots are adding another leap-second in June | 06:36 | |
I thought they were getting over that | |||
xiaomiao | TimToady: you could convince earth to wobble less ;) | 06:38 | |
TimToady | let's also persuade all our timezones to relocate all of their positions to the exact center of each timezone, then maybe leap seconds would matter slightly | 06:39 | |
all leap seconds do is screw things up | 06:40 | ||
06:40
dj_goku left
|
|||
TimToady | it doesn't matter if civil time drifts a minute or two over the next century | 06:40 | |
06:42
[Sno] left
06:43
dj_goku joined,
dj_goku left,
dj_goku joined,
adu left
|
|||
TimToady | we should've just nail civil time to atomic time in 2000, and the let the people in 3000 decide whether it's got bad enough to warrant an adjustment yet | 06:45 | |
*nailed | |||
*then | 06:46 | ||
can't type tonight | |||
probably some leap-microseconds in there I didn't account for | |||
06:47
telex left
06:48
telex joined
06:49
mr-fooba_ left,
dj_goku left
06:54
dj_goku joined,
dj_goku left,
dj_goku joined
06:57
kjs_ joined
06:58
nebuchadnezzar joined
07:02
dj_goku left,
kjs_ left
07:06
chenryn_ left
07:10
chenryn_ joined
07:11
dj_goku joined,
dj_goku left,
dj_goku joined
07:29
rindolf joined
07:33
gfldex joined
07:34
FROGGS left
07:35
[Sno] joined
07:36
vendethiel joined
07:39
darutoko joined
07:44
vukcrni left
07:45
vukcrni joined
07:46
jack_rabbit left
07:50
abraxxa joined,
abraxxa left
|
|||
moritz agrees 100% with TimToady++ | 07:51 | ||
07:55
jack_rabbit joined
07:56
kjs_ joined
07:58
brrt joined
07:59
vendethiel left
08:04
FROGGS joined
|
|||
TimToady | rosettacode.org/wiki/Ulam_spiral_%2...%29#Perl_6 | 08:07 | |
08:08
gfldex left
|
|||
jnthn | hah, I read the var name as $yolo... | 08:08 | |
08:09
kaleem joined
08:21
vukcrni left
08:22
chenryn_ left,
chenryn_ joined
08:24
simcop2387 left,
simcop2387_ joined,
simcop2387_ is now known as simcop2387,
zakharyas joined
08:25
vukcrni joined,
kaleem left
08:32
petercommand left,
petercommand joined
08:56
dayangkun joined
08:57
mvuets joined
09:01
chenryn_ left,
TuxCM left,
chenryn_ joined
09:04
Shozan is now known as SHODAN
09:06
abraxxa joined
09:07
vendethiel joined,
TuxCM joined
09:21
pecastro joined
09:30
vendethiel left
09:31
yeahnoob left
09:41
xfix joined,
xfix left,
xfix joined
09:44
Ven joined
09:45
Ven left,
vendethiel joined
09:56
donaldh joined
10:00
TuxCM left
|
|||
masak | $yolo, #perl6 | 10:00 | |
moritz | \o masak | ||
10:00
TuxCM joined
|
|||
masak | I've been back to the drawing board, and I now have a new 4x4 maze generator algorithm, Correct This Time™, which I will implement. | 10:01 | |
10:01
krunen joined
|
|||
moritz | oh, was the previous one buggy? | 10:03 | |
masak | subtly so. | 10:04 | |
which is good, because that'll make for an even better blog post ;) | |||
10:05
TuxCM left,
spider-mario joined
10:10
TuxCM joined
10:11
virtualsue joined
10:13
rurban joined
10:14
dayangkun left
|
|||
ab5tract | yay for blogpost :) | 10:15 | |
10:18
sqirrel_ joined
10:20
araujo left
10:21
araujo joined
10:22
virtualsue left
10:28
virtualsue joined
10:29
rurban left
10:30
araujo left
|
|||
dalek | p: 081cde2 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java: Fix compilation warnings on Java 1.8 |
10:30 | |
kudo/nom: 6f79fcc | lizmat++ | src/core/Str.pm: Implement Str.substr-rw, raydiak++ for spotting |
10:33 | ||
lizmat_ | .tell raydiak my $a = "foo"; $a.substr-rw(2,1) = "x"; say $a # -> fox | ||
yoleaux | lizmat_: I'll pass your message to raydiak. | ||
10:33
lizmat_ is now known as lizmat
10:34
araujo joined
|
|||
lizmat | .tell raydiak github.com/rakudo/rakudo/commit/6f79fcc296 implements it, tests welcome | 10:34 | |
yoleaux | lizmat: I'll pass your message to raydiak. | ||
Woodi_ | hallo today :) | 10:44 | |
Perl5 have some problems with regexes and non ascii chars, yes ? $_ =~ /(\w+)'s$/ sometimes not catch 's words... | 10:45 | ||
10:45
araujo left
|
|||
masak finds a use for infix:<^^> | 10:45 | ||
FROGGS | cute | 10:46 | |
10:46
araujo joined
10:48
araujo left
10:49
araujo joined
10:51
sqirrel_ left
10:58
andreoss joined
11:01
pdcawley_ left
11:03
virtualsue left
|
|||
lizmat | .tell jnthn from an optimization point of view, would it make sense to move functionality like Str.substr(|c) to sub substr(Str, |c) ? as a sub call optimizes better ? | 11:04 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
11:06
virtualsue joined
11:07
TuxCM left
11:08
TuxCM joined
|
|||
moritz | it would | 11:13 | |
lizmat | ok, I'll see if I can get that together | 11:14 | |
moritz | but please run some non-trivial benchmarks | 11:15 | |
it could be that we're calling the method form everywhere | |||
lizmat | in the setting, it's about 2/3 method, 1/3 sub | 11:16 | |
moritz | and thus moving the functionality to the sub introduces a redispatch, and makes things slower | ||
dunno if we care about the semantics if somebody subclasses Str and overrides substr | |||
lizmat | no, my idea would be that the sub case would *not* do a redispatch | ||
it does a redispatch now | |||
moritz | well | 11:17 | |
sorry | |||
I meant that calling the method would introduce a re-dispatch to the sub | |||
unless you want to implement it twice | |||
lizmat | the method version of .substr would call the sub version of substr | 11:18 | |
moritz | thus making the method form slower | ||
that's what I meant | |||
lizmat | not necessarily, as the sub call inside the method could be inlined | ||
11:18
rurban joined
|
|||
lizmat | so, the idea is that the method version would not get slower, but the sub version would | 11:19 | |
s/slower/faster | |||
*sigh* | |||
the sub version would get faster | |||
moritz | aye | ||
worth a trial, at the very least | 11:20 | ||
dalek | p/parrot-rpa: 7d370c8 | rurban++ | / (7 files): Replace unneeded QRPA with ResizablePMCArray |
11:22 | |
nqp/parrot-rpa: d91e5e2 | rurban++ | tools/build/Makefile-Parrot.in: | |||
nqp/parrot-rpa: Makefile-Parrot: simplify ops2c rule, no chdir needed | |||
11:22
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
ab5tract | we would we not inline a method in the same way that we would inline a sub in a method? | 11:26 | |
that seems weird to me | |||
masak | ab5tract: and you say this knowing about the late binding of method dispatch, I take it? | 11:27 | |
11:27
chenryn_ left
|
|||
jnthn | moritz, lizmat: As a design principle we've almost always had it that sub versions of things delegte to method versions, not the other way around. | 11:28 | |
yoleaux | 11:04Z <lizmat> jnthn: from an optimization point of view, would it make sense to move functionality like Str.substr(|c) to sub substr(Str, |c) ? as a sub call optimizes better ? | ||
lizmat | jnthn: that's not how the implementation looks atm :-) | ||
jnthn | lizmat: It does in many cases. | ||
lizmat | in about 1/3 | ||
but glad I'm on to something here | 11:29 | ||
11:29
chenryn_ joined,
brrt left,
espadrine joined
|
|||
jnthn | On performance, the answer is that you really want to avoid |c when you can just delegate with normal parameters. | 11:30 | |
Then it doesn't matter much which way around we have it. | |||
Whichever one is doing the delegating will be a good inlining candidate. | 11:31 | ||
The static optimizer has an easier time of subs, but it's also extremely restrictive in what it will do | |||
It exists mainly to inline native operations so they get good code-gen from the start. | 11:32 | ||
ab5tract | masak: i say this not comprehending how inlining the sub in a late-bound dispatch makes it any less late-bound | ||
jnthn | The majority of interesting inlining for non-natives is done dynamically by the VM | ||
ab5tract | i am admittedly out of my depth here :) | ||
jnthn | And it can see through dynamic dispatch. | ||
And is only going to get better at doing so. | 11:33 | ||
masak | jnthn: I'm still taken aback by that at times. | ||
jnthn | masak: Which bit? :) | 11:34 | |
masak | it being able to see through dynamic dispatch. | ||
lizmat | jnthn: so to gist what you're saying: don't bother, but kill any occurrences of |c | ||
ab5tract | and if the answer to speed up method calls is to call a sub from the method, then why not wire that together implicitly | 11:35 | |
jnthn | lizmat: Well, not *any* occurences, but if you can write a couple of specific candidates rather than one general one, then yes, it's worth it. | ||
lizmat | ok | ||
jnthn | lizmat: |c is not well optimized, and it's a multi-day project to make things significantly better (with at least a day thinking hard about how on earth to make it better :)) | 11:36 | |
lizmat | I hear ya... :-) | ||
masak | ab5tract: because method calls dispatch depending on the type you call them on. | 11:37 | |
jnthn | masak: Type specialization done by Moar and also using indy on the JVM is done on exact types, and if you know the exact type you know its exact method table, and if you know its exact method table you know the method. :) | ||
11:37
mls_ is now known as mls
|
|||
jnthn | Most programs are "eventually static" in most places. | 11:38 | |
masak | *nod* | ||
does that mean that, in some sense, the dynamism put in by the programmer is "for people to read, and only occasionally for computers to execute"? | 11:39 | ||
11:40
robins left
|
|||
dalek | kudo/nom: 2004789 | lizmat++ | src/core/ (8 files): Make .infinite faster by using MMD |
11:41 | |
jnthn | I'm not sure you put in dynamism knowingly. Or at least, I don't. It's just that the code doesn't demand much. | ||
11:42
jack_rabbit left
|
|||
masak | well, not dynamism for the sake of it. | 11:42 | |
11:42
robinsmidsrod joined
|
|||
masak | maybe it just sneaks in because of other things that are straightforward to write. | 11:43 | |
jnthn | And we tend to like that because the less demanding a piece of code is on the world/data it interacts with, the easier it is to keep it working as the world/data changes around it. | ||
masak | more "lack of explicit constraints" than "dynamism", perhaps. | ||
jnthn | Up to a point, at least. | ||
*least | |||
masak | jnthn: right -- a program can spesh differently based on different inputs, I guess. | ||
jnthn | Oh, very much so. | ||
Consider a method foo($a) { $a.bar } | 11:44 | ||
In a module. | |||
If one program passes the method a Gym, and another program passes it a Pub, you'll get different specializations :) | 11:45 | ||
The Gym bar may be short enough to inline, but a good Pub bar probably won't. :P | |||
masak | :P | 11:46 | |
jnthn | But yeah, the same code can, depending on how it gets used in a program, specialize in a different way. | ||
That extends to the runtime and even the compiler. | |||
11:47
spider-mario left
11:51
robinsmidsrod left
11:52
robinsmidsrod joined
11:53
denis_boyun_ joined
12:02
chenryn_ left
12:04
chenryn_ joined
12:05
chenryn_ left
12:06
denis_boyun__ joined
12:07
denis_boyun_ left
12:08
andreoss left,
chenryn_ joined
12:10
donaldh left
12:14
abraxxa left
12:17
kjs_ left
12:18
kjs_ joined
|
|||
Mouq | 'morning #perl6! | 12:18 | |
I ran the 4x4 last night: | |||
100352 | |||
perl6 reboot.clean.p6 9293.29s user 109.52s system 99% cpu 2:36:46.80 total | |||
masak | that number looks familiar from oies | 12:19 | |
it's the one that counts symmetric mazes multiple times. | 12:20 | ||
Mouq | I'd really like to find a way to only generate the symmetric ones, without having to build a list and subsequently filter it | 12:22 | |
masak | the number of symmetric ones is 12600 | ||
see gist.github.com/masak/eb8e9a370300c666a0ec for the newest, Correct This Time™, algorithm | 12:24 | ||
oeis* | |||
12:24
rindolf left
|
|||
Mouq | masak++ | 12:25 | |
12:25
rindolf joined
12:29
kjs_ left,
fhelmberger joined
12:32
chenryn_ left,
chenryn__ joined
12:33
kjs_ joined
|
|||
lizmat | .tell jnthn could you tell me if there's something wrong with gist.github.com/lizmat/6176e1bfab8a9e5289c4 | 12:40 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | .tell jnthn it makes things siginificantly slower | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | .tell jnthn I guess having just a single method still beats MMD | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
masak | Mouq: and 28 symmetric 3x3 mazes. (where before I had 24.) | 12:42 | |
12:43
kjs_ left
|
|||
timotimo | o/ | 12:48 | |
lizmat | timotimo o\ | 12:49 | |
need to be afk, unfortunately & | |||
timotimo | did i miss something good today already? | ||
masak .oO( afk is a cruel and barren place to be ) | 12:50 | ||
timotimo: leap seconds, inlined subs and methods, mazes. | 12:51 | ||
timotimo | we had multiple leap second in the mean time? | ||
damn it | |||
masak | no. we will have one in July. | 12:53 | |
masak .oO( Not So Great Leap Forward ) | |||
12:53
anaeem1_ left
12:54
kjs_ joined
|
|||
jnthn fails to melt down all his possessions | 12:54 | ||
yoleaux | 12:40Z <lizmat> jnthn: could you tell me if there's something wrong with gist.github.com/lizmat/6176e1bfab8a9e5289c4 | ||
12:40Z <lizmat> jnthn: it makes things siginificantly slower | |||
12:40Z <lizmat> jnthn: I guess having just a single method still beats MMD | |||
12:55
anaeem1_ joined
|
|||
masak | jnthn: is this a case for "smelt", or are both OK? | 12:55 | |
12:55
xfix left
|
|||
masak | Mouq: if I switch off the symmetry checking, I get 100352 for 4x4 too, which is promising. | 12:56 | |
jnthn | masak: Well, I'm sure the process smelt too :P | ||
lizmat: Well, did you check how often you hit the delegation-y cases? | 12:57 | ||
lizmat: self.gimme(*) if nqp::isnanorinf(nqp::unbox_n(target)); for example | 12:58 | ||
12:58
kjs_ left
12:59
anaeem1_ left,
skids left
13:03
kjs_ joined
13:04
kjs_ left
13:06
chenryn__ left,
Guest34430 joined,
Guest34430 left
13:07
kjs_ joined
13:20
breinbaas left
13:22
breinbaas joined,
kaare__ joined
13:23
kaleem joined
13:24
jluis left
13:25
robinsmidsrod left,
robinsmidsrod joined
|
|||
timotimo | is anyone TGIFing today? | 13:26 | |
hoelzro | o/ #perl6 | 13:28 | |
13:30
xfix_ joined,
xfix_ is now known as xfix
13:31
leont joined
|
|||
dalek | kudo-star-daily: 8680f63 | coke++ | log/ (9 files): today (automated commit) |
13:31 | |
[Coke] | what do I need to install on hack.p6c.org to make modules/DBIish tests pass? | 13:32 | |
hoelzro | I would like to add some text describing how Grammar actions' methods work with look[ahead|behind]; where would that go best? | 13:33 | |
[Coke] | still a bunch of failures on rakudo-star-jvm | ||
jnthn | timotimo: As in, being glad it's Friday? :) | 13:35 | |
timotimo | yeah | ||
jnthn | Yes, very | ||
timotimo | and having something cool planned for the weekend | ||
jnthn | 'cus I've been teachign the last 3 days with a cold. | ||
And at the weekend can rest enough to get rid of it :) | |||
timotimo | my condolences | ||
jnthn | Planning to hack on Perl 6 stuffs at the weekend :) | 13:36 | |
timotimo | \o/ | ||
Mouq | masak: \o/ | 13:37 | |
jnthn | Given 6pe a shove further along and start using it a bit, I hope :) | ||
*Give | |||
Mouq | jnthn: \o/ | ||
13:37
robinsmidsrod left
|
|||
Mouq needs to put his hands down if he hopes to drive to school | 13:37 | ||
o/ #perl6 | |||
13:38
Mouq left
|
|||
timotimo | sounds great! | 13:38 | |
we have all of the tests passing on moar and jvm now, yes? | |||
13:39
adu joined,
anaeem1_ joined
13:40
robinsmidsrod joined
13:42
kaleem left
|
|||
[Coke] | news.perlfoundation.org/2015/01/gra...pid-a.html - only one submittal this period, leave a comment if you have the feels. | 13:48 | |
masak | jnthn: what's 6pe? | ||
timotimo | "sixpack of 'eer" | 13:50 | |
masak | :P | ||
13:51
donaldh joined
|
|||
adu | TimToady: what about the civilians who calculate the probability of asteroid collisions with Earth? | 13:55 | |
masak | that sounds like a question screaming for more context. | 13:56 | |
adu | masak: lol | 13:57 | |
"<TimToady> crud, the civil time idiots are adding another leap-second in June" | 13:58 | ||
13:59
brrt joined,
Rounin left
|
|||
donaldh | Java 7 reaches end of public updates in April - www.oracle.com/technetwork/java/jav...35779.html | 14:00 | |
14:03
kaleem joined,
pmurias joined
|
|||
pmurias | if I have a chunk of QAST how should I run it on moarvm? | 14:04 | |
(when running on moarvm) | |||
14:05
xinming left,
xinming joined
|
|||
timotimo | you can feed it to what you get from getcomp | 14:07 | |
getcomp gives you the HLL::Compiler subclass for the given name | 14:08 | ||
adu | pmurias: something along the lines of Perl6::Compiler.eval() or something | 14:10 | |
timotimo | you can feed it to the stage that comes after qast | 14:13 | |
pmurias | what I have thus far: pastie.org/9835301 | ||
dalek | jo6: aa71078 | hoelzro++ | t/mojo/css.t: Test E[attr] |
14:14 | |
jo6: 7c63f76 | hoelzro++ | lib/Mojo/DOM/CSS.pm: Implement E[attr] |
|||
jo6: 48e4f5e | hoelzro++ | lib/Mojo/DOM/CSS.pm: Notes for cleanup |
|||
jo6: a94613f | hoelzro++ | t/mojo/css.t: Test E[attr="value"] |
|||
jo6: 45d0362 | hoelzro++ | lib/Mojo/DOM/CSS.pm: Implement E[attr="value"] |
|||
jo6: cb2254d | hoelzro++ | lib/Mojo/DOM/CSS.pm: A bit of refactoring |
|||
donaldh | I don't think there is a compiler exposed for QAST tho | ||
timotimo | every compiler turns their stuff into qast | 14:15 | |
masak | well. NQP and Rakudo do. | ||
14:15
IllvilJa left
|
|||
masak | adu: I guessed that it was a continuation of that conversation. where you're heading with that question still eludes me, though. what would be a possible answer? "well, I guess they might be one second too late in their estimated impact calculations..." ? | 14:17 | |
pmurias | nqp::getcomp('nqp') does seem to be available from Perl 6 | ||
donaldh | Oh, they do expose their stages :D | ||
timotimo | that's what i meant | 14:20 | |
[Coke] | hoelzro++ | ||
pmurias | just abusing the Perl6 compiler and turning of optimalisation works | ||
donaldh | Something like nqp::getcomp('perl6').compile($qast, :from('ast')) | 14:21 | |
jnthn | timotimo: Yes, but only 'cus I didn't write enough tests :P | ||
timotimo | :D | ||
jnthn | masak: "6model parametric extensions" | ||
nqp::getcomp('QAST') may also work :) | 14:23 | ||
pmurias | jnthn: that gets me mast | ||
jnthn | Yes, true :) | ||
pmurias | which I figured how to save to disk but not how to run | 14:24 | |
I'm not sure what to do with the result of assemble_and_load | |||
jnthn | Invoke it, iirc :) | 14:25 | |
See what method eval in HLL::Compiler does | |||
pmurias | doesn't seem to work from Perl6 land | ||
jnthn | oh, wait, it refers to the whole compilation unit | ||
So you need to get the mainline code iirc | |||
But yeah, using the pipeline of one of the existing compilers using HLL::Compiler is likely easier. | 14:26 | ||
pmurias | abusing the pipeline of an existing compiler should be enough for stage 1 of secret project | 14:27 | |
jnthn | Ooh, what does it do? :) | 14:29 | |
donaldh | r: nqp::getcomp('perl6').compile('say "hi"'))() | ||
camelia | rakudo-{parrot,moar} 200478: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnexpected closing bracketat /tmp/tmpfile:1------> qp::getcomp('perl6').compile('say "hi"')⏏)()» | ||
donaldh | r: nqp::getcomp('perl6').compile('say "hi"')() | ||
camelia | rakudo-{parrot,moar} 200478: OUTPUT«hi» | ||
14:29
kaare__ left
14:32
skids joined
|
|||
lizmat | jnthn: before gimme MMD patch: Files=935, Tests=34357, 197 wallclock secs ( 8.92 usr 3.03 sys + 1194.02 cusr 144.41 csys = 1350.38 CPU) | 14:34 | |
after: Files=935, Tests=34357, 217 wallclock secs ( 9.54 usr 3.40 sys + 1329.13 cusr 151.26 csys = 1493.33 CPU) | 14:35 | ||
14:35
IllvilJa joined
|
|||
lizmat | that's 10% more CPU and wallclock | 14:36 | |
14:36
hugme left,
synopsebot left,
Util_ left,
Juerd left
|
|||
vendethiel | all(@names.map: { $attrs{$^name}:exists }); <- can't that be all($attrs{@names}:exists) ? | 14:37 | |
14:38
pmichaud_ left
14:39
Juerd joined,
pmichaud joined
|
|||
lizmat | vendethiel: feels that it should | 14:40 | |
timotimo | i'd prefer [&&] tbh | ||
vendethiel | right | ||
[&&] is definitely better when just using the junction as a bool :) | 14:41 | ||
timotimo | and yeah, putting @names inside the { } as an array should be optimizabler. | 14:42 | |
14:42
hugme joined,
ChanServ sets mode: +v hugme
|
|||
[Coke] | in github.com/rakudo/rakudo/commit/20...a4be06e90, a method is changed to multi but there don't appear to be any actual multi methods; isn't this a behavioral change (now we can have multis, before we couldn't) to get a speedup? is this right? | 14:42 | |
14:43
synopsebot joined
|
|||
lizmat | [Coke]: that's what I understand | 14:43 | |
14:43
Util joined
14:44
chenryn joined
|
|||
timotimo | having the :D check in a place that's closer to the MMD itself lets us optimize (or rather: introspect) it more easily | 14:44 | |
FROGGS | I understand [Coke]++'s question more as: do we want to make changes to behaviour for the sake of performance? | 14:45 | |
and... is this behaviour wanted? | |||
14:45
anaeem1_ left
|
|||
sjn | woolfy++ # great fosdem devroom schedule! | 14:46 | |
oh and good *, #perl6 :) | |||
moritz | without answering the actual question, I'd like to add that the specs are not very explicit about which methods are multis and which aren't | ||
pmurias | jnthn: 007.js | ||
lizmat | [Coke]: in any case, I try to batch my commits for easy revertability | 14:47 | |
PerlJam | FROGGS: what's the downside of changing the behavior? (I can't think of one) | ||
sjn | woolfy: a few typos though, but nothing horrible :) | ||
FROGGS | PerlJam: I am just formulating how I understood [Coke]'s question :o) | 14:48 | |
pmurias | jnthn: stage 1 is a Q -> QAST translator | ||
FROGGS | I also think that there is no pro or contra to the behaviour change... | ||
woolfy | sjn: the texts are from the speakers... and we did remove some typos. You're very much welcome to send me (and/or El_Che) any corrections. | ||
sjn: The corrections can/will be put into the texts online. It's too late to change anything in the printed texts. FOSDEM has sent all texts to the printer. The whole schedule for the Perl-devroom will be in the booklet. | 14:49 | ||
14:51
gfldex joined,
chenryn left
|
|||
sjn | woolfy: s/""/"/g; s/^"|"$//g; | 14:52 | |
[Coke] | FROGGS++ has it. just wondering if the behavior change is worth it. to moritz++'s point, we should probably decide if we want multis or not for core class methods. | ||
also, lizmat++ for doing the work in the first place. | |||
14:52
chenryn joined
|
|||
woolfy | sjn: in my thoughts, I will distribute your ++ to the speakers, of which several can be found in this awesome channel! jnthn++ tadzik++ nine++ pmichaud++ FROGGS++ CurtisOvidPoe++ mst++ rjbs++ sawyer++ stevanlittle++ mickeyn++ | 14:52 | |
sjn agrees :) | 14:53 | ||
PerlJam | woolfy++ too for doing the work :) | ||
[Coke] | as a generic OO user, I'm still kind of surprised we have multi methods and non multi methods. | ||
moritz | and [Coke]++ for raising the issue | ||
woolfy | and El_Che++ !!! | ||
moritz | and hugs for everybody! | ||
lizmat | [Coke]: jnthn can explain that one better, from an implementation point of view | 14:54 | |
FROGGS | free hugs /o/ | ||
sjn | El_Che++ # deserves lots of praise | ||
PerlJam | moritz++ for the FindBin patch that you submitted in 2011 and I just noticed that it was you today ;) | ||
14:54
beastd joined
|
|||
woolfy | sjn: I don't understand... | 14:54 | |
moritz | PerlJam: tinita++ has been nagging about that FindBin thingy | 14:55 | |
sjn | woolfy: there are a couple of the talk descriptions that are in quotes | ||
14:56
Ven joined
|
|||
woolfy | Just got word that somebody from the city of Perl has an extra special surprise for the Perl 6 speakers at FOSDEM... I hope it works out. | 14:56 | |
sjn | hehe | ||
woolfy | sjn: ah. Yes, I saw that. I will leave that to El_Che to fix. | ||
sjn vaguely remembers one more typo, but can't seem to find it any more | 14:57 | ||
donaldh | r: my Mu $c := nqp::getcomp('perl6'); $c.compile($c.compile('say "hi"', :target('ast'), :compunit_ok), :from('ast')) | ||
camelia | ( no output ) | ||
donaldh | my Mu $c := nqp::getcomp('perl6'); $c.compile($c.compile('say "hi"', :target('ast'), :compunit_ok), :from('ast'))() | ||
PerlJam | woolfy: some random person from the city of Perl or an offical of the city? | ||
*official | |||
sjn | well, there are still some capitalization bugs in mst's text :) | ||
14:57
rurban left
|
|||
sjn | nothing major though | 14:57 | |
PerlJam | sjn: I haven't looked, but are you sure mst didn't captialize that way on purpose ? :) | 14:58 | |
sjn | heheh | ||
woolfy | mst's text might be from Mark... ;-) | ||
14:59
chenryn left
|
|||
woolfy | PerlJam: neither... and if I explain, the surprise is gone. :-) | 14:59 | |
14:59
chenryn joined
|
|||
dalek | kudo/nom: 1b59b0b | lizmat++ | src/core/GatherIter.pm: Use natives in GatherIter.reify |
15:01 | |
15:01
kaleem left
|
|||
PerlJam | woolfy: Just make sure the interaction is recorded so that those of us who are locationally challenged can fee like we were there :) | 15:02 | |
woolfy | sjn: the awesome El_Che already fixed the "..." typos. Thanks for mentioning. | ||
PerlJam | *feel | ||
woolfy | PerlJam: see video.fosdem.org/ and that will happen this year again! | 15:03 | |
Though, we have one volunteer now for doing the videorecording. And we could use another one or two. There will be 8 hours of recording to do... | 15:04 | ||
15:04
[Sno] left,
adu left,
eMBee left
|
|||
woolfy | So if anybody here would like to volunteer for doing some video recording... please message me. | 15:04 | |
Ow, this was the Perl-room last year: K.3.201 video.fosdem.org/2014/K3201/Saturday/ | 15:05 | ||
The volunteer will get a little bit of training: push this button to start, that one to end, that one to focus, etc. Take care of the cables, microphone, aim camera at the speaker and/or at the screen and sometimes at the audience. | 15:06 | ||
espadrine | I'm tempted, but I haven't even got my train ticket to fosdem | 15:09 | |
(yet) | |||
15:11
PZt joined
|
|||
sjn hopes the videos this year work out | 15:11 | ||
too many bad ones last year :-( | 15:12 | ||
15:12
rurban joined
|
|||
dalek | kudo/nom: 3b0cef5 | lizmat++ | src/core/Str.pm: Lose |c on signature |
15:16 | |
kudo/nom: 997864d | lizmat++ | src/core/ (6 files): Reify is always called with parameters So lose the defaults for faster MMD dispatch / smaller binary |
|||
woolfy | sjn: we hope the same... problem with cables (to microphones, and power cables), and the power units... It was driving VanHoesel crazy (our volunteer). | 15:17 | |
sjn | mm | 15:18 | |
woolfy | This has been reported to FOSDEM, and we were not the only ones. | ||
15:18
xinming left
|
|||
sjn | one useful trick would be to offer some headphones so that one might at least hear what's being recorded | 15:18 | |
woolfy | So, let's hope lessons were learned. It was the first time every room got a videorecording setup | ||
15:18
xinming joined
15:19
pmurias left
15:20
anaeem1_ joined,
telex left
15:21
Mso150 joined
15:22
chenryn left,
telex joined
|
|||
sjn | woolfy, El_Che: Oh, one more thing for the schedule! Stevan Little should be Stevan "#damnitstevan" Little! :D | 15:24 | |
woolfy | Oh no, absolutely not, that meme should have died some time ago! | ||
sjn | aw :-( | 15:25 | |
El_Che | hi sjn thx for the fixes | ||
woolfy | well, we can change your name to dammitsalve! | ||
sjn isn't competent enough to deliver #p5mop and that goodness, so damning me wouldn't make any difference :-| | 15:26 | ||
El_Che | sjn: we can try :) | 15:27 | |
15:27
adu joined
|
|||
El_Che | sjn: will we be honoured by your gracious presence at fosdem this year? | 15:28 | |
woolfy | sjn: the dammit was because of something else... | ||
lizmat | afk for a few hours | 15:29 | |
sjn | El_Che: I'll be there, arriving friday, leaving monday | 15:30 | |
although s/gracious/bumbling/ :) | |||
El_Che | sjn: nice | 15:31 | |
woolfy | sjn: \o/ | ||
afk for some time | |||
El_Che | woolfy: don't let lizmat escape now she's afk | ||
:) | |||
15:32
Mso150 left
|
|||
woolfy | -> ...(bicycle trip...) | 15:32 | |
15:33
Mso150 joined
|
|||
rurban | found the blocking parrot resizablepmcarray bug github.com/parrot/parrot/issues/1174 | 15:36 | |
15:41
anaeem1_ left,
anaeem1 joined
|
|||
masak | pmurias: did you say... 007.js? | 15:42 | |
15:42
anaeem1 left
15:44
anaeem1 joined,
Ven left
|
|||
hoelzro | there's no shorthand for $<foo>.defined ?? $<foo>.Str !! '', is there? | 15:44 | |
moritz | ~($<foo> // '') | 15:45 | |
hoelzro | ah, that makes sense | ||
15:46
beastd left
|
|||
hoelzro | I was thinking something along the lines of $<foo>.?Str | 15:46 | |
15:50
treehug88 joined
16:01
anaeem1 left
16:02
anaeem1 joined
16:06
anaeem1 left
|
|||
mst | woolfy: actually, I think it's recycled from a previous submission | 16:06 | |
16:10
robinsmidsrod left
16:12
robinsmidsrod joined
16:15
rurban left
16:16
leont left
16:20
jdv79_ is now known as jdv79
16:22
zakharyas left
16:23
mr-foobar joined
|
|||
dalek | ast: a31f1e7 | lizmat++ | test_summary: Fix deprecation |
16:26 | |
timotimo | lizmat: "reify is always called with parameters" and then + method reify() { () } | 16:27 | |
seems wrong? | |||
lizmat | timotimo: excellent catch | 16:28 | |
timotimo | :) | ||
ugexe | re META6.json: if a module B emulates module A, and module C depends on module A, if module B is already installed should module A be pulled in as a dependency of module C? or should module B satisify that dependency? | ||
dalek | kudo/nom: 407630f | lizmat++ | src/core/Nil.pm: Nil.reify always called with 1 param, timotimo++ |
16:29 | |
16:29
anaeem1 joined
16:30
anaeem1 left,
kaleem joined
16:31
anaeem1_ joined
16:32
anaeem1_ left
16:33
anaeem1 joined
16:34
mvuets left
|
|||
dalek | ast: 2fe1e1f | lizmat++ | S32-io/copy.t: Replace deprecated .path by .IO |
16:36 | |
16:37
anaeem1 left
|
|||
dalek | ast: 01dd57f | lizmat++ | S32-io/io-path-cygwin.t: Replace deprecated .directory by .dirname |
16:40 | |
16:42
kaleem left
|
|||
dalek | ast: 2e63301 | lizmat++ | S32-io/io-path.t: Replace deprecated .path by .IO |
16:43 | |
16:43
anaeem1_ joined
|
|||
dalek | ast: 3c0f230 | lizmat++ | S32-io/io-path.t: Replace deprecated .directory by .dirname |
16:44 | |
16:45
molaf joined
16:47
[Sno] joined,
anaeem1_ left
|
|||
dalek | ast: 42a5d1b | lizmat++ | S32-list/uniq (2 files): .uniq is now .unique |
16:48 | |
ast: 6bbf7c3 | lizmat++ | S32-list/unique.t: Change all the references of .uniq to .unique |
|||
kudo/nom: 63402e5 | lizmat++ | t/spectest.data: We renamed the .uniq testfile, so follow suit |
16:49 | ||
16:50
Alina-malina left,
Alina-malina joined,
anaeem1 joined
|
|||
dalek | ast: 8c129b3 | lizmat++ | integration/advent2011-day23.t: Replace deprecated .uniq by .unique |
16:52 | |
16:54
kjs_ left
16:59
berekuk_ left
17:00
fhelmberger left
17:07
brrt left
|
|||
TimToady | adu: the location of the earth in its orbit has almost nothing to do with the earth's wobble, so astronomers will already be using a timebase independent of leap seconds for that purpose | 17:19 | |
but it's true that astronomers are really the only group of people who care much about exactly where to point their telescopes when | 17:20 | ||
but they're already used to doing complicated calculations | |||
inflicting that damage on all users of civil time, a much larger group, is not really supportable | 17:21 | ||
17:21
denis_boyun__ left
17:22
reshtnk71 joined
|
|||
tadzik | hmm, didn't github use to use gravatar for avatars? | 17:22 | |
dalek | kudo/nom: a3e5f25 | lizmat++ | src/core/ListIter.pm: Presize array with 5 for .reify(Whatever) This seems to have a slightly beneficial effect on the spectest. Please revert if this is showing up as badness in other ways. |
17:26 | |
17:41
rmgk_ joined,
rmgk is now known as Guest75643,
Guest75643 left,
rmgk_ is now known as rmgk,
espadrine left
17:46
sqirrel_ joined
17:56
sivoais left
17:58
FROGGS left
18:01
Rounin joined
|
|||
hoelzro | does Perl 6 have something like \Q ... \E or quotameta from Perl 5? | 18:01 | |
flussence | er... normal ' and " should do it | 18:02 | |
hoelzro | I would like to see if a string begins with an arbitrary substring, where the latter can contain regex meta characters | ||
oh, really? | |||
so $str ~~ /^ "$prefix" /? | |||
flussence | exactly! | ||
psch | m: say '$prefix' ~~ / '$prefix' / | 18:03 | |
camelia | rakudo-moar 63402e: OUTPUT«「$prefix」» | ||
flussence | wait... you don't need quotes there | ||
$vars just interpolate as strings. | |||
hoelzro | oooooh | ||
thanks flussence | |||
osfameron | what if you *wanted* them to expand to regexp metachars? ;-) | ||
psch | m: my $prefix = '$%foo'; say '$%foo-baz' ~~ / ^ $prefix / | ||
camelia | rakudo-moar 63402e: OUTPUT«「$%foo」» | ||
flussence | if you *want* a variable interpreted as regex, <$var> iirc | ||
osfameron | cute | ||
18:04
eternaleye left
|
|||
TimToady | osfameron: note that changing the default here is what allows us to combine Perl 5's $1 and \1 into a consistent $0 | 18:05 | |
and we can do that because regexes are no longer considered strings, but a language of their own | 18:06 | ||
so it's easy to flip the semantics of interpolation | |||
18:07
donaldh left,
eternaleye joined
|
|||
masak | oh, nice. I had never put those two facts together before. | 18:07 | |
18:08
kjs_ joined
18:11
Mso150_y joined
18:12
Mso150 left
18:17
sqirrel_ left,
Sqirrel left
18:20
kjs_ left
|
|||
timotimo | hoelzro: i'm surprised you didn't know that o_O | 18:20 | |
hoelzro | timotimo: regexes are one of my weaker areas in P6 =/ | 18:21 | |
and I seldom use / $var / | |||
timotimo | but they are one of the stronger areas in P6 :) | ||
hoelzro | yes | ||
so I need to work on that =) | |||
18:21
dwarring joined
18:23
kjs_ joined
18:25
kjs_ left
|
|||
nwc10 | did you see how close they got to pulling it off? vine.co/v/OjqeYWWpVWK | 18:26 | |
masak | nwc10: o.O | 18:28 | |
TimToady | the problem appears to be attidude more than velocity | ||
masak .oO( think positive thoughts! ) :P | |||
TimToady | unless it fell over from knocking one of the legs off | ||
nwc10 | there's an explanation here twitter.com/elonmusk/with_replies | ||
jercos | So... is there anything practical to do with lists constructed from pairs, like [=>] 1, 2, 3, 4? Sorta vaugely resembles lispy cons lists, but doesn't seem too useful given the higher level datastuctures available. | 18:29 | |
nwc10 | with the lovely final (so far) comment "At least it shd explode for a diff reason." | ||
TimToady | they said it wouldn't be a slamdunk, but it might be a slam or a dunk; looks like the slam won... :) | ||
nwc10 | TimToady: explanation in twitter suggests your observations are spot on, and explain why | ||
TimToady | *attitude | 18:30 | |
is an 'attidude' like an 'attaboy'? | |||
masak | jercos: only "practical" uses of it I've seen are when the problem was specified such that cons lists were required. (on RC, for example) | 18:31 | |
18:32
FROGGS joined
|
|||
TimToady | masak: it's a useful data structure when you want to share tails of lists | 18:33 | |
masak | troo | ||
TimToady | and trim the fronts visibly to the GC | ||
masak read that as "and trim the fronds" | 18:34 | ||
TimToady | you have a fern grasp of the facts | ||
jercos | with fronds like these, who needs anemones? | 18:35 | |
TimToady has only a spore grasp of the facts | |||
masak | I just need to read the sentence slower and more palmly | ||
TimToady | for that you need more date-time | 18:36 | |
18:36
sqirrel_ joined
|
|||
raydiak | m: my int $a = 1; say $a.WHAT; | 18:42 | |
yoleaux | 10:33Z <lizmat_> raydiak: my $a = "foo"; $a.substr-rw(2,1) = "x"; say $a # -> fox | ||
camelia | rakudo-moar a3e5f2: OUTPUT«(Int)» | ||
yoleaux | 10:34Z <lizmat> raydiak: github.com/rakudo/rakudo/commit/6f79fcc296 implements it, tests welcome | ||
raydiak | oh brilliant, lizmat++ | 18:43 | |
m: my int $a = 1; say $a.WHAT; # anyway, what is going on here? | |||
camelia | rakudo-moar a3e5f2: OUTPUT«(Int)» | ||
TimToady | boxing | 18:47 | |
natives can only be storage types, not object types | 18:48 | ||
at least until we get typed pointers of some sort | |||
raydiak | I see...thank you | 18:50 | |
TimToady | but letting in pointers without the rest of C's ills is somewhat...fraught... | ||
especially since JVM goes out of its way to make pointers very difficult | |||
jnthn++ is working on native arrays with the 6pe branch, which should help with that sort of thing some | 18:52 | ||
but Perl 6 is defined to keep temporary values in the widest types by default, so for any normal method call, the int has to be boxed into an Int | 18:54 | ||
we may add pragmas that change the default at some point | |||
keeping integer temps in an int64 is going to be indistinguishable for most practical purposes, which typically excludes math :) | 18:56 | ||
defaulting to correct is important though | 18:57 | ||
raydiak | so using native types in pure P6 code isn't likely to gain you anything, then...not speed, memory savings...nothing? | 18:58 | |
TimToady | native arrays are very compact | ||
lizmat | m: class A { multi method a(int $a) { say "int" }; multi method a(Int $a) { say "Int" } }; A.a(my int $ = 42); A.a(42) # native int multis work | ||
camelia | rakudo-moar a3e5f2: OUTPUT«intInt» | ||
TimToady | and certainly if the optimizer can determine that your temps won't exceed a certain value, they can substitute faster representations | 18:59 | |
s/they/it/ | |||
and the spesher can deal with that sort of thing dynamically to some extent | 19:01 | ||
jnthn | The actual rules at the moment de facto are that if you declared at least one of the things involved in a computation as a native int, then you'll get native int operations. | 19:02 | |
TimToady | m: my int $x = 2 ** 60; say $x * $x | 19:03 | |
camelia | rakudo-moar a3e5f2: OUTPUT«0» | ||
TimToady | I see | ||
jnthn | Which imo is fair game; you opted in. | 19:04 | |
literal op literal will never go for native int versions | |||
otoh, it'll probably also have gotten constant folded by the time you're doing runtime. But still, it's the same interpreter on both sides of the fence... | 19:05 | ||
TimToady | m: my int $x = 2 ** 60; say $x * 2 ** 60 | ||
camelia | rakudo-moar a3e5f2: OUTPUT«1329227995784915872903807060280344576» | ||
TimToady | in this case it looks like both args have to be int to get int semantics | 19:06 | |
jnthn | Hm, odd | ||
Oh | |||
TimToady | perhaps that a good thing? | 19:07 | |
jnthn | I wonder if the 2 ** 60 gets constant folded to something that doesn't look like a normal literal | ||
TimToady | sez it's an Int | ||
jnthn | m: my int $x = 2 ** 60; say $x * 1329227995784915872903807060280344576 | ||
camelia | rakudo-moar a3e5f2: OUTPUT«1532495540865888858358347027150309183618739122183602176» | ||
jnthn | oh, what on earth am I doing... :) | 19:08 | |
TimToady | beats me | ||
jnthn survived 3 days teaching with a cold, but probably ain't good for much tonight :) | |||
It's almost gone, though, so I should be able to have a good run at the parametric stuffs at the weekend :) | 19:09 | ||
TimToady prefers his parameters without goobers all over them... | 19:10 | ||
adu | TimToady: I suppose | 19:11 | |
b2gills | I think I would settle for parametric types with "goobers" on them, than no parametric types at all. | 19:12 | |
adu just saw the "timebase independent of leap seconds" comment | |||
TimToady | hmm, maybe that slang term for snot is more of a regionalism than I thot | 19:13 | |
jnthn | We call 'em bogies where I'm from :P | ||
TimToady thinks the 'goober' slang is probably a metathesis of 'boogers' | 19:14 | ||
which is obviously related etymologically to 'bogies' | 19:15 | ||
jercos | so *that's* what a bat bogey hex does. | ||
jnthn | .oO( They asked me to defend my thesis, so I wrote them a metathesis... ) |
||
jercos | defend your thesis, take up a sword! | 19:16 | |
TimToady | syncpe, apocop, methatesis... | ||
garden pathological | 19:17 | ||
jdv79 | isn't goobers a candy? | ||
raydiak | yum | ||
jnthn | If you're desparate enough, I guess... :P | ||
TimToady | probably, it's also peanuts in the south | ||
jdv79 | that might be a regional and/or generational slang | ||
TimToady | the original is apparently a rube or hick sort of person | 19:18 | |
oh, and our favorite: vowul harmonu | 19:19 | ||
we used to collect linguistic terms that were examples of themselves :) | 19:20 | ||
jnthn | :D | ||
TimToady | epinethesis | 19:21 | |
er, epenethesis | |||
jnthn | *groan* | ||
arnsholt | Vowul harmonu is pretty nice! | 19:22 | |
I like epenenthesis too =D | |||
lizmat | m: sub a(\b) { b(42) }; say a(*-1) # would expect to see 41 there | ||
camelia | rakudo-moar a3e5f2: OUTPUT«===SORRY!=== Error while compiling /tmp/dOJoqUuttEVariable '&b' is not declaredat /tmp/dOJoqUuttE:1------> sub a(\b) { ⏏b(42) }; say a(*-1) # would expect to » | ||
lizmat | jnthn: is that a bug or something that we just cannot expect to work ? | 19:23 | |
TimToady | garden pathological is the one I made up after grad school, and wish we could've thunk of it in time to impress our profs | ||
jnthn | lizmat: Your expectations are off. | ||
m: sub a(&b) { b(42) }; say a(*-1) | |||
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
jnthn | That's how to write it. | 19:24 | |
lizmat | ok, and if b could be something else, we need to write $b | ||
TimToady | m: sub a(\b) { b.(42) }; say a(*-1) | ||
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
TimToady | or that way | ||
but b is defined as a term | |||
lizmat | that's probably sub-optimal from a performance point of view | ||
TimToady | so it will never expect arguments | ||
it's like saying pi() | 19:25 | ||
dalek | ast: 6740efe | raydiak++ | S32-str/substr-rw.t: Add a test for method form of substr-rw |
||
jnthn | b.(42) should compile into something sensible | ||
lizmat | ok, I'll go with that then | ||
TimToady | m: sub a(\b) { (b)(42) }; say a(*-1) | ||
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
TimToady | m: sub a(\b) { b\(42) }; say a(*-1) | 19:26 | |
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
TimToady | that almost works visually :) | ||
or should I say :\ | |||
m: sub a(\b) {\ b\(42)\ }; say a(*-1); # if you can't convince 'em, confuse 'em | 19:27 | ||
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
TimToady | m: sub a(\b) { b andthen .(42) }; say a(*-1) | 19:28 | |
camelia | rakudo-moar a3e5f2: OUTPUT«Nil» | ||
TimToady | aww | ||
m: sub a(\b) { .(42) given b }; say a(*-1) | |||
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
19:29
Sqirrel joined
|
|||
TimToady | m: sub a(\b) { b andthen 41 }; say a(*-1) | 19:30 | |
camelia | rakudo-moar a3e5f2: OUTPUT«41» | ||
TimToady | so it's not topicalizing correclty | ||
I guess that was a tpyo | 19:33 | ||
19:34
kaare__ joined
19:38
rindolf left
|
|||
jnthn | Hm, yeah. Though I can never quite remember the spec of andthen... :) | 19:38 | |
jnthn back in 20 or so | |||
19:40
kaare__ left,
kaare__ joined
19:42
Guest38736 left
19:43
Khisanth joined,
robinsmidsrod left
19:44
robinsmidsrod joined
|
|||
japhb | goobers are peanuts, in my mind | 19:45 | |
Heh | |||
Backscrolled, didn't realize it. :-) | |||
19:47
robinsmidsrod left
19:50
robinsmidsrod joined
|
|||
lizmat | hmmm... interesting state of affairs: | 19:51 | |
nice patch to make substr() a lot faster | 19:52 | ||
it fails *every* spec test when run under make | |||
it runs all of them fine with perl6 | |||
19:53
robinsmidsrod left
19:54
robinsmidsrod joined
19:56
robinsmidsrod left
19:58
kaare__ left,
kaare__ joined,
robinsmidsrod joined
19:59
robinsmidsrod left,
robinsmidsrod joined
|
|||
lizmat | it appears PERL6LIB setting is the difference | 20:08 | |
20:09
sqirrel_ left
|
|||
ugexe | if i create a CompUnit with a module that already has a precompiled version, and then delete that precompiled version, am i supposed to create a new CompUnit or somehow tell the CompUnit that it no longer $has-precomp? | 20:11 | |
im creating a CompUnit, then checking for precomp-path.e and deleting if true. then calling .precomp but get cannot pre-compile an already pre-compiled file | 20:12 | ||
lizmat | A CompUnit for a given source path is a sentinel for the process | ||
ugexe: in that case, there is a bug | |||
you can also specify the :force flag with .precomp | |||
ugexe | force doesnt affect that specific die statement | 20:13 | |
lizmat | on another note: vine.co/v/OjqeYWWpVWK # close but no cigar | ||
20:13
darutoko left
|
|||
lizmat | ugexe: oops, wrong order in checks | 20:14 | |
ugexe | die <message> if $.has-precomp; | ||
github.com/rakudo/rakudo/blob/0154...#L113-L114 | 20:15 | ||
lizmat | ugexe: yeah, looking at it now | 20:16 | |
testing a fix | 20:17 | ||
ugexe | cool | ||
20:21
araujo left
|
|||
dalek | kudo/nom: 2cd9645 | lizmat++ | src/core/CompUnit.pm: Make CompUnit.precomp(:force) work, ugexe++ |
20:23 | |
jnthn back | 20:24 | ||
20:24
araujo joined
|
|||
ugexe | lizmat: just so i understand correct... if i create a CompUnit that already has a precomp, then delete the precompiled file, its correct for $comp-unit.has-precomp to return true? | 20:38 | |
lizmat | well, fwiw, I'd like to think that the location of the precomped file is not important | ||
so, if you want to create a new one regardless of existing, use :force | 20:39 | ||
ugexe | right, but the existence of the file is | ||
lizmat | if you remove the file underneath the object, you will get failure later | 20:40 | |
I'm just trying to reduce the number of stat calls | |||
I mean, during the lifetime of a CompUnit object, you'd expect it to be the same all the time | |||
creating a new precomp would be ok, I guess, but not much more | 20:41 | ||
ugexe | so i should treat .has-precomp's value as what it was during .new, not during the time it was called? | 20:42 | |
i understand how to work around it and what you are saying | |||
lizmat | yeah, that's the idea | 20:43 | |
ugexe | ok. thanks for fixing it lizmat++ | ||
lizmat | yw | ||
jnthn: will ~ box unboxed strings ? | 20:47 | ||
20:47
skids left
|
|||
moritz | m: say .signature.perl for &prefix:<~>.candidates | 20:50 | |
camelia | rakudo-moar a3e5f2: OUTPUT«:(Any \a):(Str:D \a --> Str):(str $a --> str)» | ||
lizmat | I guess that would be a yes then | ||
? | |||
moritz | no | ||
str $a --> $str | |||
the last one looks suspiciously like a no-op to me | |||
lizmat | m: say .signature.perl for &infix:<~>.candidates | 20:51 | |
camelia | rakudo-moar a3e5f2: OUTPUT«:(Any $x = { ... }):(Any \a, Any \b):(Blob:D $a, Blob:D $b):(Str:D \a, Str:D \b --> Str):(str $a, str $b --> str)» | ||
lizmat | that would be a yes then :-) | ||
sorry for not being clear I meant infix ~ | |||
20:56
Rounin left
|
|||
moritz | except infix ~ on two str | 20:57 | |
which doesn't box | 20:58 | ||
jnthn | What moritz said. :) | 21:00 | |
moritz++, I mean :) | 21:01 | ||
dalek | c: 280c3c4 | moritz++ | lib/Type/Metamodel/AttributeContainer.pod: document set_rw |
21:08 | |
21:09
leont joined
|
|||
dalek | c: 77cac07 | moritz++ | lib/Type/Metamodel/AttributeContainer.pod: Metamodel::AttributeContainer: document rw |
21:10 | |
21:11
denis_boyun_ joined
|
|||
moritz wonders if those docs are actually of use to anybody | 21:11 | ||
21:11
skids joined
|
|||
masak | that one in particular, or all of the doc effort? | 21:11 | |
moritz | masak: the metamodel docs | 21:12 | |
masak | ah. | ||
21:12
adu left
|
|||
masak | it's hard for me to gauge. I think what I'd most expect to find as a newcomer, is a document giving an overview of *all* of the MOP. | 21:12 | |
there could well be individual articles with stuff too, but the overview would be the valuable/central one. | 21:13 | ||
kind of a `perldoc perlmop` thing, if you see what I mean. | |||
21:17
anaeem1 left,
anaeem1 joined
|
|||
jnthn | I can imagine various module authors wanting to do MOP stuff. | 21:21 | |
21:22
anaeem1 left
21:26
xfix left
21:28
bcode left
|
|||
psch | fwiw, i hope MOP docs will help me with a fully functional JavaHOW | 21:28 | |
21:28
bcode joined
21:34
denis_boyun_ left,
rurban joined
|
|||
dalek | kudo/nom: 1b417d8 | lizmat++ | src/core/ (2 files): Streamline substr()/.substr substr-rw/.substr-rw - substr() is about 15% faster - .substr() is about 7% *SLOWER* - substr-rw is almost 4x as fast - .substr-rw is just over 3x as fast |
21:38 | |
21:39
jack_rabbit joined
21:42
virtualsue left
21:44
telex left
21:46
telex joined
21:47
anaeem1 joined,
virtualsue joined
21:49
sivoais joined
21:58
skids left
|
|||
psch | gist.github.com/peschwa/45ff88238adc74aa2405 <- fixed this just now \o/ | 22:01 | |
jnthn | psch++ | 22:04 | |
FROGGS | dang, how I love documentation.... >.< | 22:05 | |
xmlXPathObjectPtrxmlXPathNewString(const xmlChar * val) | |||
Create a new xmlXPathObjectPtr of type string and of value @val | |||
val:the xmlChar * value | |||
Returns:the newly created object. | |||
? | 22:06 | ||
22:06
Mso150_y left
|
|||
jnthn | "the newly created object" :D | 22:06 | |
So insight! | |||
psch | ah yes, the "reorder the objects in the description" documentation method, often seen in javadoc as well | ||
FROGGS | absolutely... | ||
I'd like to know what I'd use it for | 22:07 | ||
dalek | ast: 47d0d01 | lizmat++ | S32-str/substr.t: Fudge dubious test |
22:08 | |
raydiak | can anyone suggest something faster than but equally portable to "my &clear = $*DISTRO.is-win ?? {shell 'cls'} !! {run 'clear'};" ? | 22:09 | |
22:11
rurban left
|
|||
lizmat | not me :-( | 22:14 | |
psch .oO( readline bindings..? ) | 22:15 | ||
oh hm. during debugging i merged my JavaHOW work that implements .^methods and .^add_method, but now the PR wouldn't be minimally scoped anymore | 22:17 | ||
that's what cherry-picking is for i think? | |||
jnthn | The depressing Windows answer... support.microsoft.com/kb/99261 | ||
dalek | kudo/nom: 46e92b2 | lizmat++ | src/core/ (17 files): Favour substr(foo,...) over foo.substr(...) as substr() is 13% faster than .substr() |
22:18 | |
lizmat | .oO( shell 'cls' it is then ) |
22:19 | |
psch | oh, now, cherry-picking is for repacking changes into different commits apparently | 22:20 | |
*no | |||
raydiak | thanks jnthn++, won't be wasting any more time on that for now :) | 22:21 | |
22:24
eiro left
|
|||
dalek | Heuristic branch merge: pushed 22 commits to rakudo/newio by lizmat | 22:24 | |
22:25
eiro joined
22:30
ajr joined,
sivoais left,
ajr is now known as Guest55315,
Guest55315 is now known as ajr_
|
|||
lizmat | good night, #perl6! | 22:34 | |
raydiak | sleep well lizmat | 22:35 | |
psch | jnthn: is it sensible/feasible to bring this into the JavaHOW? gist.github.com/peschwa/0f8830ba3c6a2eb852ba | 22:41 | |
jnthn: that is, for every method pair of the form set_$ident generate a method named just $ident that wraps the previous two in a Proxy | |||
*set_$ident and get_$ident | 22:42 | ||
jnthn | psch: For public fields? | 22:44 | |
psch | jnthn: right. my qualms about this is more about the perl6 side though | 22:45 | |
jnthn | But yeah, that'd seem helpful...I just wonder if there's cases where it collides with a method name. But that'd be odd I guess. | ||
psch | jnthn: as in, i have no clue how to Proxy.new in JavaHOW.nqp | 22:46 | |
jnthn | Ah | ||
Yeah...hmm. "With difficulty." | |||
psch | afaict we don't have $*W in Metamodel/, so i can't find_symbol | 22:47 | |
jnthn | I wonder if we could write JavaHOW in Perl 6 | ||
And include it in the CORE.setting instead somehow. | |||
Then we would have easy access :) | 22:48 | ||
psch | i suppose i could call a method on the JavaHOW from the vm in RakudoJavaInterop too, but i don't know if that's actually easier... | 22:49 | |
as for having the JavaHOW in Perl 6, i'm not sure where i'd start :) | 22:50 | ||
22:51
araujo left
|
|||
timotimo | m: if 1 ~~ True { } | 22:51 | |
camelia | rakudo-moar 1b417d: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at /tmp/G_NH7xOKPE:1 ------> if 1 ~~⏏ True { }» | ||
22:51
sivoais joined
|
|||
timotimo | m: enum Frob <Hello Goodbye>; if 1 ~~ Hello { } | 22:51 | |
camelia | ( no output ) | ||
psch | as for collisions, my idea was to warn and drop the field, seeing as we still get set_$ident and get_$ident as fallback | ||
timotimo | hum. | ||
psch | but reaching the method isn't as easy when the shortname gets dropped | ||
22:52
reshtnk71 left
|
|||
timotimo | oh | 22:52 | |
m: enum Frob <Hello Goodbye>; if 1 ~~ Helloo { } | |||
camelia | rakudo-moar 1b417d: OUTPUT«===SORRY!===Function Helloo needs parens to avoid gobbling blockat /tmp/hiMtyy9z5f:1------> Frob <Hello Goodbye>; if 1 ~~ Helloo { }⏏<EOL>Missing block (apparently taken by 'Helloo')at /tmp/hiMtyy9z5f:1…» | ||
psch | and telling users "if you have a field and overloaded methods of the same name you have to call the method with 'method/mmd+$methName/([Ljava/lang/Object;)java/lang/Object' instead" feels kind of unreasonable | 22:53 | |
22:53
araujo joined
|
|||
psch | because that's (at least close to) the descriptor for the generated dispatch method | 22:54 | |
i'm not 100% sure on the return type, might be SixModelObject :) | |||
22:56
eiro left
22:58
eiro joined
23:06
adu joined
|
|||
adu | hey | 23:08 | |
why does this not work? pastie.org/9836063 | |||
I get the error "Variable '$op' is not declared" | |||
timotimo | i think you want to put a : before "our" | 23:09 | |
um | |||
actually | |||
you're putting perl6 code directly into a rule | |||
that is parsed as regex syntax | |||
that's kinda weird | |||
psch | that's a weird mixture of action method and rule | ||
timotimo++ for the details | 23:10 | ||
adu | o crap, s/rule/method/ works | ||
timotimo | :) | ||
adu | sorry guys | ||
my bad | 23:11 | ||
timotimo | :) | ||
adu | another thing | 23:14 | |
CAST::TransUnit or | 23:15 | ||
C::AST::TransUnit ? | |||
psch | adu: isn't that between C::Parser::CAST::TransUnit and C::Parser::C::AST::TransUnit? | ||
adu | psch: github.com/andydude/p6-c-parser/bl...C/AST3.pm6 | 23:16 | |
psch: I'm thinking of just removing the 3, and merging that into the master branch | 23:17 | ||
I think the ${SingleChar}AST system works for 2 or 3 systems, but it's not extensible to every language and/or Slang that will be written | 23:18 | ||
so I think C::AST is better | |||
psch | adu: right. having CAST in the root namespace seems pollute-y to me | ||
there's an argument to be made for having Language::C::* instead, but i'm not gonna make. i think it's probably mostly traditional | 23:19 | ||
adu | psch: right, but using C::AST in a package called "C::Parser" is also a little poluty | ||
Language::C is how Haskell does it | 23:20 | ||
but I don't know anything about Perl5 convention, I'm just guessing, basically | |||
psch | adu: but people could only use C::AST if they don't need the Parser, couldn't they? which imho justifies having it next to Parser instead of below | ||
s/only use/use only/ | 23:21 | ||
23:21
treehug88 left
|
|||
adu | I'm a convert from Java ANTLR to Perl6, so all that "oh it's just like Perl5" means nothing to me | 23:21 | |
psch: should I put C::AST into a different github repo? | 23:22 | ||
dalek | p: 0556d2e | donaldh++ | src/HLL/Compiler.nqp: Fixed thinkos in HLL::Compiler.removestage |
||
adu | psch: or should I just declare it in the META.info thing? | ||
psch | adu: i think the latter, iirc provides allows this kinda of thing | ||
adu | ok :) thanks for the help | 23:23 | |
psch | i.e. "the 'provides' field allow one repo to supply multiple packages" | ||
adu: in the end this is just what i think, and i'm far from a champion for our cpan-ish thingy | 23:24 | ||
adu | cpanish, that's a new one | ||
I think "C::AST" and "C::Parser" is a good example of that | 23:25 | ||
23:36
anaeem1 left
23:37
anaeem1 joined
23:38
skids joined
23:40
prime- left
23:42
anaeem1 left
23:45
prime joined
|