»ö« 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 diakopter on 14 April 2013. |
|||
00:04
tgt left
00:28
lichtkind left
|
|||
dalek | ast: 7df5f66 | (Brent Laabs)++ | S32-io/ (4 files): fix links to specs, change Path to IO::Path |
00:43 | |
00:57
Yappo______ left
00:58
FROGGS_ joined
01:02
Yappo______ joined,
FROGGS left
01:04
anuby joined
01:06
berekuk left
01:08
shachaf_ joined,
berekuk joined,
shachaf left,
shachaf_ left,
shachaf_ joined
01:09
shachaf_ is now known as shachaf
01:10
berekuk left
|
|||
labster | well well, the recent changes to require broke File::Spec... and rightfully so, according to spec. Ok, easy fix. | 01:10 | |
01:14
berekuk joined
01:16
berekuk left
01:17
rking left,
rking joined
01:27
Patterner left
01:29
Psyche^ joined,
Psyche^ is now known as Patterner
01:38
gdey_ left
01:41
berekuk joined
01:50
sftp left
01:53
sftp joined
01:58
FROGGS__ joined
02:02
FROGGS_ left
02:18
lustlife joined
02:36
berekuk left
02:38
berekuk joined
02:47
berekuk left
02:56
preflex_ joined
02:57
preflex left,
preflex_ is now known as preflex
02:58
gdey joined
03:03
d4l3k_ joined,
dalek left,
GlitchMr left,
d4l3k_ is now known as dalek
03:04
lestrrat left
03:08
GlitchMr joined
03:10
lestrrat joined
03:16
xinming left
03:18
xinming joined
03:33
_jaldhar_ joined
03:39
rindolf joined
03:45
_jaldhar_ left
03:49
_jaldhar_ joined
04:00
ilogger2 joined,
ChanServ sets mode: +v ilogger2
04:02
broquaint joined,
jfried joined
04:04
avar joined
|
|||
japhb | .ask timotimo What error are you seeing at irclog.perlgeek.de/perl6/2013-04-17#i_6713750 ? Can you gist it for me? | 04:05 | |
yoleaux | japhb: I'll pass your message to timotimo. | ||
04:23
Gwyxx joined
04:24
Chillance joined
04:28
thou joined
04:37
rindolf joined
05:44
FROGGS__ joined,
FROGGS__ is now known as FROGGS
|
|||
FROGGS | .ask timotimo Can't we just add a method .push to QRPA? | 05:45 | |
yoleaux | FROGGS: I'll pass your message to timotimo. | ||
FROGGS | .tell labster Sorry that I broke "my own" module... Havn't thought of it.... glad you fixed it though. labster++ | 05:47 | |
yoleaux | FROGGS: I'll pass your message to labster. | ||
05:57
frdmn joined
05:59
Chillance left
06:07
SamuraiJack joined
|
|||
labster | FROGGS: Well, you wrote the code that broke, if you git blame back far enough. Which is just as well, because I would have been completely lost trying to figure out how to begin. | 06:22 | |
yoleaux | 05:46Z <FROGGS> labster: Sorry that I broke "my own" module... Havn't thought of it.... glad you fixed it though. labster++ | ||
06:24
thou left
06:27
thou joined
|
|||
FROGGS | labster: ya, I know that I wrote that part :/ | 06:29 | |
FROGGS cries about not having module tests | |||
labster | Though I finally figured out why your handles branch didn't work -- you can't call access an attribute on a type object, and File::Spec are all used in undefined mode. | 06:30 | |
I know. I'm waiting for feather.perl6.nl/~sergot/modules/ to start getting up to speed. Or tell me why something fails. | 06:31 | ||
FROGGS | what 'handles branch'? | 06:32 | |
labster | github.com/FROGGS/p6-File-Spec/tree/handles | 06:33 | |
FROGGS | ahh, 7 months ago, I totally forgot :o) | 06:34 | |
06:37
thou left
06:39
kaleem joined
06:52
rindolf left,
rindolf joined
|
|||
labster | I have a working version of delegation with "handles" now: github.com/labster/p6-File-Spec/bl...le/Spec.pm | 06:58 | |
06:59
rindolf left
07:00
rindolf joined
|
|||
FROGGS | cool | 07:03 | |
07:06
domidumont joined
07:07
SamuraiJack left
|
|||
FROGGS | I'd like to see panda that clean how File::Spec is now^^ | 07:10 | |
s/clean/readable/ | |||
07:11
SamuraiJack joined,
takesako___ joined
07:13
preflex joined
07:15
sqirrel joined,
hlin_ joined
07:17
rindolf left,
rindolf joined
|
|||
tadzik | hehe | 07:18 | |
me too | 07:19 | ||
07:21
domidumont left
07:22
domidumont joined
07:27
xinming joined
07:32
kaleem left
07:33
kaleem joined
07:36
rindolf left,
rindolf joined
07:48
wooden joined,
wooden left,
wooden joined
|
|||
timotimo | good morning! | 07:54 | |
yoleaux | 17 Apr 2013 22:58Z <FROGGS> timotimo: I think the changes in QAST::Compiler about $ops.push might be wrong, because it a PIRT::Ops and might really have that method... (have a look at QAST::Operations #295) | ||
04:03Z <japhb> timotimo: What error are you seeing at irclog.perlgeek.de/perl6/2013-04-17#i_6713750 ? Can you gist it for me? | |||
05:44Z <FROGGS> timotimo: Can't we just add a method .push to QRPA? | |||
timotimo | FROGGS: that was the last thing i realized before i went to bad that i should revert the $ops.push changes next time i'm conscious | 07:55 | |
japhb: i was getting infinite recursions | |||
hoelzro | morning #perl6! | ||
timotimo | domo arigato mister rob | 07:56 | |
07:56
rindolf left,
rindolf joined
|
|||
hoelzro is building HTML Perl6 docs on his VPS | 07:57 | ||
50% memory atm =/ | |||
timotimo | this runs with a perl6 script? | ||
hoelzro | yes | ||
timotimo | that would explain it | ||
hoelzro | it climbed to 48% really quicky, hung there, and slowly moved to 50 | 07:58 | |
ugh | |||
now it just failed with a "cannot allocate memory" error =/ | |||
moritz | hoelzro: I did warn you that it hogs resources | ||
timotimo | aaw :( | ||
hoelzro | I know, but I thought my VPS could handle it =/ | ||
timotimo | ooc, does parrot have a generational gc with a nursery and all that jazz? | ||
moritz | yes | 07:59 | |
hoelzro | is it all Parrot's fault? or does Rakudo yes memory irresponsibly? | ||
timotimo | and cycle detection, too? | ||
does perl6 maybe use hashmaps for all objects or something? | |||
moritz | no | 08:00 | |
timotimo is already out of ideas | 08:02 | ||
08:03
daxim joined,
berekuk joined
|
|||
diakopter | guessing game: match the # of distributions updated in <3yrs: 7,012 11,820 27,784 46,349 : GHC CPAN NPM JVM | 08:04 | |
er s/JVM/MVN/ | 08:05 | ||
without cheating by looking it up | |||
arnsholt | timotimo: I think cycle detection happens by itself when you have generational/tracing | ||
timotimo | that makes sense | 08:06 | |
hoelzro | I might try to trim htmlify.pl's memory usage | 08:07 | |
diakopter | no one has a guess? | 08:09 | |
sorear | hmm | 08:10 | |
NPM>CPAN>JVM>GHC | |||
hoelzro | CPAN is 46K, GHC is 27K, NPM is 11.8K, JVM is 7K | ||
sorear | is my guess | ||
hoelzro shrugs | |||
diakopter | I'll wait another few minutes to reveal | 08:11 | |
08:11
rindolf left,
rindolf joined
|
|||
diakopter | arnsholt? timotimo? moritz? yoleaux? a guess? | 08:13 | |
yoleaux: you know you want to guess | |||
arnsholt | I think I'd put NPM at 7k, at least | 08:14 | |
timotimo | NPM is the node.js thing, right? | ||
diakopter | yep | ||
timotimo | it's the one with 46k. | ||
arnsholt | NPM < GHC < CPAN < MVN perhaps | ||
diakopter | heh, fairly different from sorear's | 08:15 | |
08:15
woolfy joined
|
|||
diakopter | and hoelzro's | 08:15 | |
nwc10 | what's MVN? | ||
diakopter | maven | ||
diakopter waits 1 more min in case nicholas wants to guess | 08:16 | ||
nwc10 | my network is so slow I probably can't even type something in 1 min | 08:17 | |
ad I don't want to guess | |||
and I'm not sure what maven is | |||
diakopter | heh ok | ||
this is maven: search.maven.org/#stats and www.jarvana.com/jarvana/info/reposi...statistics | |||
answer: they're in the right order already | 08:18 | ||
also, the mvn one is probably a huge underestimate since I was just able to measure the central repo | 08:19 | ||
well maybe not huge, but significant | |||
cpan by comparison: mirrors.cpan.org/stats/ | 08:22 | ||
nwc10: another mvn site: has a pretty graph: mvnrepository.com/ | |||
cpan grew 36% in 2 years in number of files; mvn grew 100% | 08:27 | ||
08:32
rindolf left,
rindolf joined
|
|||
jnthn | morning, #perl6 | 08:33 | |
diakopter | GUGT jnthn | ||
oh, I forgot to include the .NET package management system NuGet, which was only created a couple years ago, but already has 11,000 unique distributions | 08:34 | ||
er, 12,191 to be exact | 08:35 | ||
08:35
tangentstorm joined
|
|||
timotimo | jnthn: does turning .push into nqp::push for nqp-level arrays (rpa and qrpa) help portability at all? | 08:39 | |
08:41
FROGGS left
|
|||
jnthn | timotimo: No. | 08:41 | |
timotimo: Only in the MOP, where it's already been done. | |||
timotimo | hm. | 08:42 | |
so maybe adding a .push to qrpa would be a better idea? | |||
for now, i'll just sift through the rest of nqp ... | |||
08:45
fgomez joined
08:46
dakkar joined
08:52
cognominal joined,
kresike joined
|
|||
kresike | hello all you happy perl6 people | 08:52 | |
08:53
rindolf left
08:54
rindolf joined
|
|||
hoelzro | does the Perl 6 spec dictate what form of GC should be used? (ref counting vs mark and sweep) | 08:55 | |
diakopter | no, but once you handle cycle-detection fully in ref counting you've made a lot of progress toward a precise GC... | 08:56 | |
08:58
berekuk left
|
|||
diakopter | (sort of) | 08:59 | |
jnthn | timotimo: Oh, you're working on RPA => QRPA? Hm. | 09:01 | |
timotimo: Well, the .push method isn't really a portability issue | |||
nqp-jvm: my @a; @a.push(42); say(@a[0]) | |||
camelia | nqp-jvm: OUTPUT«42» | ||
diakopter | nqp-jvm: (my @a).push(42); say(@a[0]) | 09:02 | |
jnthn | timotimo: I suspect adding the push method to QRPA (along with the 3 others) is the most expedient way. | ||
camelia | nqp-jvm: OUTPUT«42» | ||
jnthn | Nice try :P | ||
diakopter | me? | ||
tadzik | there was no try { } ;) | 09:03 | |
jnthn | :P | ||
09:03
fgomez left,
berekuk joined
|
|||
tadzik | "do {} or Acme::Don't. There is no try { }" | 09:03 | |
timotimo | jnthn: it's too late for that now, i just compiled a complete nqp. | 09:04 | |
diakopter | nqp-jvm: (BEGIN my @a)(42); say(@a.elems) | ||
camelia | nqp-jvm: OUTPUT«java.lang.NullPointerException at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1229) at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200) at 32E184A159F2AB2B80B927BE69AB29A193D0E286.qb_25(<generated>) at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240) at | ||
..… | |||
timotimo | a few mistakes remain, though. | ||
diakopter | ftw | ||
timotimo | delete_keyed? what is that even? | ||
tadzik | you know your code is broken when even camelia says "..." | 09:05 | |
jnthn | nqp: (BEGIN my @a)(42); say(@a.elems) | ||
camelia | nqp: OUTPUT«Method 'elems' not found for invocant of class 'ResizablePMCArray'current instr.: '' pc 69 ((file unknown):154827407) (/tmp/4HDpv_PkE7:1)» | ||
diakopter | nqp-jvm: BEGIN my @a | ||
camelia | nqp-jvm: OUTPUT«java.lang.NullPointerException at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1229) at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200) at 32E184A159F2AB2B80B927BE69AB29A193D0E286.qb_25(<generated>) at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240) at | 09:06 | |
jnthn | Hm. :) | ||
camelia | ..… | ||
diakopter | golfed | ||
jnthn | Oh... | ||
Yeah, and there's no tests for BEGIN either... | |||
diakopter | nqp-jvm: my @a := 7; say(@a.WHAT) | 09:07 | |
camelia | nqp-jvm: OUTPUT«» | ||
diakopter | orly | ||
nqp: my @a := 7; say(@a.WHAT) | |||
camelia | nqp: OUTPUT«Can only use get_what on a SixModelObjectcurrent instr.: '' pc 52 ((file unknown):141407052) (/tmp/Cxi7VnLKEA:1)» | ||
diakopter tries to remember what that nqp:: op is to get the parrot type | 09:08 | ||
nqp-jvm: BEGIN 1 | 09:09 | ||
camelia | nqp-jvm: OUTPUT«java.lang.NullPointerException at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1229) at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200) at 32E184A159F2AB2B80B927BE69AB29A193D0E286.qb_25(<generated>) at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240) at | ||
..… | |||
jnthn | There isn't an nqp:: op to do anything Parrot specific. :) | ||
diakopter | "there's just ops that aren't necessary to implement on the others..." | ||
jnthn | You use pir:: to get at those | 09:10 | |
Also, NQP doesn't make a gist/Str distinction, and Str on a type object gives back the empty Str | |||
09:15
berekuk left,
fgomez joined
|
|||
timotimo | what is delete_keyed for? seems like it would be for hashes | 09:16 | |
jnthn | Parrot calls everything keeyed | ||
*keyed | |||
tadzik | keyed_int is for arrays, iirc | ||
jnthn | *nod* | ||
timotimo | oh, ok | 09:17 | |
delete_keyed() not implemented in class 'QRPA' <- this confuses me. | |||
there really is no delete_keyed in there. but why? | 09:18 | ||
if it's supposed to be a drop-in replacement for rpa, why not implement that? maybe because it is only used in test code? | |||
i'll be excited to see if rakudo compiles its setting faster with these nqp changes | 09:20 | ||
oh, i probably need to create lots and lots of nqp::push/pop/shift/unshift changes in rakudo, too :| | |||
jnthn digs back into the NQP bootstrap on JVM stuff | 09:21 | ||
09:22
berekuk joined
|
|||
timotimo | wise jnthn, how do i properly add those methods to the qrpa pmc? | 09:23 | |
would it be sufficient to copy these following lines? github.com/parrot/parrot/blob/mast...y.pmc#L193 | 09:24 | ||
09:24
census joined
|
|||
jnthn | timotimo: I suspect delete_keyed should be delegating to delete_keyed_int. You may be able to steal directly from RPA | 09:24 | |
09:24
census left
|
|||
jnthn | shift_float? | 09:24 | |
jnthn gets curious where we hit that code path in NQP... | 09:25 | ||
Anyway, no, that's not sufficient. You'd be better delegating to shift_pmc and then doing get_number on the result in QRPA, if you have to implement shift_float... | |||
timotimo | qrpa doesn't implement any method with "delete" in it | 09:26 | |
but as i said: the only place that seems to hit that is the test code. | |||
wow, if i did this correctly, implementing .push and friends was super trivial | 09:28 | ||
09:28
rindolf left
09:29
rindolf joined
09:33
frdmn is now known as kalle,
kalle is now known as frdmn
09:36
frdmn is now known as rnarius
|
|||
timotimo | parsing wasn't any farster than it normally is, but maybe rakudo uses nqp::list in many places | 09:38 | |
oh, the optimizer is quite a bit faster though | 09:39 | ||
er, at least i think so. i should do proper tests. | |||
timotimo spectests | |||
09:40
rnarius is now known as frdmn
09:42
berekuk left
09:46
fgomez left
|
|||
timotimo | ah, qrpa doesn't have a .sort method. makes one of the rakudo tests fail | 09:46 | |
.sort being missing seems to cause a big part of all test failures so far | 09:47 | ||
09:49
fgomez joined,
terrencehan joined
|
|||
timotimo | oh, whoops. these aren't supposed to be qrpa's. these are supposed to be List classes! | 09:50 | |
maybe the p6list op needs to learn about qrpa | |||
$ops.add_hll_pirop_mapping('perl6', 'p6list', 'perl6_list_from_rpa', 'PPPP', :inlinable(1)); | 09:51 | ||
yeah, that would be the problem | |||
hm. | 09:55 | ||
oh, that's not it. rakudo just delegates to the list to do the sorting | 09:57 | ||
09:57
tgt joined
|
|||
timotimo | somehow qrpa is meant to inherit a sort method | 09:58 | |
but all the sort tests are commented out | |||
10:07
baest joined
10:19
rindolf left
10:20
rindolf joined
10:21
kshamen joined
10:23
mtk joined
10:24
kshamen left
|
|||
timotimo | so, how do i make nqp link the parrot utils to my qrpa? perl6: symbol lookup error: /home/timo/build/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_group.so: undefined symbol: Parrot_util_quicksort | 10:24 | |
10:31
grondilu joined
|
|||
grondilu | rn: say "a" .. "Z" | 10:33 | |
camelia | rakudo f3c3fe, niecza v24-37-gf9c8fc2: OUTPUT«"a".."Z"» | ||
grondilu | rn: say list "a" .. "Z" | ||
camelia | rakudo f3c3fe, niecza v24-37-gf9c8fc2: OUTPUT«» | ||
timotimo | grondilu: do i remember correctly that you have some involvement in parrot? | ||
grondilu | timotimo: no, I don't. | 10:34 | |
timotimo | hm, okay | ||
jnthn: is it sensible to try to use Parrot_util_quicksort in a pmc created inside the nqp tree, rather than in parrot proper? | 10:37 | ||
if i wanted to copypaste the implementation, i'd need to steal COMPARE, too and whatever hangs off of that :| | |||
jnthn | timotimo: If it's marked PARROT_EXPORT then maybe...but also need to know that it doesn't poke into internals anywhere | 10:38 | |
10:40
hlin_ left
|
|||
timotimo | it is not marked export; i don't see it poke around in internals, though | 10:40 | |
10:40
hlin_ joined
|
|||
timotimo | oh, what is PARROT_NCI? perhaps that's internal-ish? | 10:40 | |
jnthn | Not sure | ||
timotimo | well, now i've gotten it to work by copypasting lots of bits into the qrpa pmc; Parrot_NCI_attributes (and the above macro seems to be a cast to that) seems a little bit internaly in that it would probably change some time in parrots future | 10:42 | |
can i implement a sort method for the pmc in nqp perhaps? that would be lovely. i don't have much experience with C :( | 10:43 | ||
it amuses me that no list is ever sorted in the building process of nqp :) | |||
more tests seem to pass now, i'll be excited to see the end result | 10:48 | ||
and do benchmarks of course | |||
THINE TESTS SHALL PASS | 10:52 | ||
dalek | p/qrpa_experiment: b136109 | (Timo Paulssen)++ | src/pmc/qrpa.pmc: give qrpa the methods instead. |
10:55 | |
p/qrpa_experiment: 91353c0 | (Timo Paulssen)++ | src/pmc/qrpa.pmc: steal the quicksort implementation from parrot |
|||
p/futile_qrpa: af36e92 | (Timo Paulssen)++ | src/ (12 files): search&replace nqp::list -> nqp::qlist; change .push to nqp::push etc |
|||
p/futile_qrpa: 491eec9 | (Timo Paulssen)++ | src/ (6 files): so many search and replace. probably too many. |
|||
p/futile_qrpa: ccfaf88 | (Timo Paulssen)++ | src/ (7 files): lots and lots of nqp::un/shift/push/pop. |
|||
p/futile_qrpa: be526ca | (Timo Paulssen)++ | src/NQP/World.pm: final fixups |
|||
nqp/futile_qrpa: 6c090d2 | (Timo Paulssen)++ | src/pmc/qrpa.pmc: | |||
nqp/futile_qrpa: give qrpa the methods instead. | |||
11:01
grondilu left
|
|||
timotimo | rakudo's setting compile step doesn't seem to become any faster with qrpa. i wonder if i did something wrong? | 11:03 | |
oh, i think i compiled the "pure" rakudo with a qrpa-nqp | 11:10 | ||
11:13
fgomez left
|
|||
timotimo is not sure how to have two different rakudos on the same machine without having multiple users | 11:18 | ||
hoelzro | different prefixes? | 11:19 | |
you probably need two separate parrots as well, I'd guess | |||
nwc10 would hope that if both use the same parrot, life gets easier | 11:21 | ||
[Coke] yawns. | 11:22 | ||
timotimo | hm, if i use two different versions of parrot - like just 5.3 and 5.3 - will that already be enough to allow me to have two different nqps and rakudos? | 11:27 | |
now i made extra sure. there is 0 speed difference in my benchmarks between qrpa and rpa ... >_> | 11:29 | ||
but i've got to go now anyway | |||
tadzik | that's weird | 11:31 | |
timotimo | yes, it is | ||
tadzik | maybe it still uses the old RPA? | ||
timotimo | my code is up on github in perl6/nqp and timo/rakudo if you want to see for yourself if i made any blatantly obvious mistakes | ||
when i still missed the .sort method in qrpa, i got errors in the spectests about it missing, so ... i don't think so. i'd be glad if someone proved me wrong. | 11:32 | ||
gotta run! ttyl | |||
11:32
Heather joined
|
|||
Heather | hi! | 11:32 | |
jnthn | hi, Heather | ||
Heather | how to get file extension? | 11:33 | |
jnthn | Can always regex it... /'.'(\w+)$/ or so | 11:35 | |
[Coke] | r: say "coffee" or die; | ||
camelia | rakudo f3c3fe: OUTPUT«coffee» | ||
[Coke] | smart bot. :P | ||
jnthn | tbh, if you said that to me, I'd say coffee as well... | ||
:P | |||
Heather | ) | 11:38 | |
jnthn thank you! | 11:43 | ||
11:44
rindolf left,
rindolf joined
11:46
spider-mario joined
|
|||
Heather | how to declare enum | 11:47 | |
I see | 11:48 | ||
r: enum <a,b> | |||
camelia | rakudo f3c3fe: ( no output ) | ||
jnthn | Well, best give it a name | ||
moritz | perlgeek.de/blog-en/perl-5-to-6/16-enums.html | ||
jnthn | enum Drink <Tea Coffee> | ||
Heather | r: enum x <a,b>; say x.a | ||
[Coke] | also <a,b> is probably not quite what you meant. | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'a' for invocant of type 'x' in block at /tmp/TNILTaVaRE:1» | ||
[Coke] | Heather: no comma | ||
moritz | oorks, that looks a bit out of date | ||
I have to fix that, eventually | |||
jnthn | And ::, not . | ||
Heather | r: enum Drink <Tea Coffee>; say Drink::Tea | 11:49 | |
camelia | rakudo f3c3fe: OUTPUT«Tea» | ||
Heather | thank you | 11:50 | |
[Coke] | r: enum Drink <Tea Coffee>; say Coffee; #ahhhh. | ||
camelia | rakudo f3c3fe: OUTPUT«Coffee» | ||
Heather | wait ) p6eval is not camelia ) | ||
[Coke] | she's a butterfly of many hats. | ||
Heather | "of many hats." ? | ||
[Coke] | colorful language for "she has many skills" | 11:51 | |
Heather | r: given "a" { when "b" | "a" { say "a" } } | 11:52 | |
camelia | rakudo f3c3fe: OUTPUT«a» | ||
Heather | sometimes perl pretty intuitive | ||
when I get extension with $arg ~~ /'.'(\w+)$/ how can I get file name without extension .... | 12:02 | ||
timotimo | tadzik: were you going to try out the code? | ||
Heather | $arg - $/ ? | ||
) | |||
tadzik | timotimo: no, sorry, no tuits | 12:03 | |
moritz | Heather: $/.prematch iirc | ||
r: 'abc.txt' ~~ /'.'(\w+)$/; say $/.prematch | 12:04 | ||
camelia | rakudo f3c3fe: OUTPUT«abc» | ||
moritz | aye | ||
timotimo | tadzik: no problem | 12:05 | |
Heather | moritz works ! thank you | ||
can I regex in given ? | 12:11 | ||
timotimo | you mean with "when"? | ||
Heather | yes or somehow alike | ||
timotimo | given "foo" { when /.../ { say "at least three letters" }; when /../ { say "at least 2 letters" } } | ||
Heather | r: given "foo" { when /.../ { say "at least three letters" }; when /../ { say "at least 2 letters" } } | 12:12 | |
camelia | rakudo f3c3fe: OUTPUT«at least three letters» | ||
Heather | timotimo cool, thank you | ||
timotimo | sorry my ssh is dying. may need rx/.../ | ||
12:13
rindolf left
12:14
rindolf joined
|
|||
Heather | r: if "a.x" ~~ /z/ | /a/ { say "x" } | 12:16 | |
camelia | rakudo f3c3fe: OUTPUT«x» | ||
Heather | r: if "a.x" ~~ /z/ | /y/ { say "x" } | ||
camelia | rakudo f3c3fe: ( no output ) | ||
Heather | well... it like you write random code and it works... | 12:17 | |
I wonder... | |||
12:18
domidumont left
|
|||
Heather | r: if "a.x" !~~ /z/ | /y/ { say "x" } | 12:18 | |
camelia | rakudo f3c3fe: OUTPUT«x» | ||
Heather | r: if "a.x" !~~ /z/ | /x/ { say "x" } | ||
camelia | rakudo f3c3fe: ( no output ) | ||
timotimo | it would appear the List class doesn't properly use qlist yet m( | 12:19 | |
12:19
domidumont joined
|
|||
timotimo | who ever has the tuits would be very welcome to correct nqp::p6list (apparently in rakudo rather than in nqp) to create qlist instead of list objects. i don't have the necessary overview to see what needs changing | 12:23 | |
Heather | strange | 12:24 | |
r: given "foo" { when /f/ { say "fffff" }; } | |||
camelia | rakudo f3c3fe: OUTPUT«fffff» | ||
timotimo | you seem to expect implicit ^^^H and $? | 12:25 | |
oh. well that's interesting | |||
oh, Heather, that's a optimization bug | 12:26 | ||
i've already fixed it, but the fix hasn't been merged yet | |||
12:27
sqirrel left
|
|||
timotimo | i seem to have forgotten to create a pull request | 12:28 | |
Heather | good. | ||
timotimo | moritz: am i looking wrong or did you close the pullrequest without actually merging? | 12:29 | |
at least github didn't write "branch was merged" | |||
moritz | timotimo: I've done a fast-forward merge, which github didn't recognize | ||
timotimo | it seems i must look closer. | 12:30 | |
moritz | timotimo: but commit 5122e2ead909c61ba2648023bb16f789d1389ac5 is in nom | ||
timotimo | yes, it's there! | ||
moritz | and in fact rakudo's behavior is correct | ||
because !~~ is a negated operator, it desugars to if !('a.x' ~~ /x/|/y/) { ... } | 12:31 | ||
timotimo | my optimization doesn't touch it, either | 12:32 | |
that would explain it | |||
timotimo unpanics | |||
12:32
FROGGS joined
|
|||
timotimo | FROGGS: hey! | 12:32 | |
12:32
terrencehan left
|
|||
FROGGS | \o/ | 12:32 | |
12:32
Nom- joined
|
|||
timotimo | FROGGS: do you have a modicum of tuits for qrpa? | 12:33 | |
FROGGS google modicum | |||
goodles* | |||
timotimo: yes | |||
timotimo | 'perl6_list_from_rpa' seems to need a fix tocreate qrpa instead of rpa | 12:34 | |
FROGGS | "give qrpa the methods instead." timotimo++ | ||
ahh, okay | |||
timotimo | so far it seems to dispatch to a parrot op, so it probably needs to be newly implemented in the rakudo/src/perl6/ops or whereever you'll find that | ||
FROGGS | timotimo: where is that? | ||
k | |||
timotimo | src/Perl6/Ops.pm | ||
FROGGS | will give it a look | 12:35 | |
Nom- | Hey guys... stumbled accross rdstar.wordpress.com/2012/07/12/nqp...w-to-port/ earlier... was wondering if anyone knows anything about whether those efforts might have started at all? | 12:37 | |
12:37
jtpalmer joined
|
|||
moritz | Nom-: lue should know | 12:38 | |
[Coke] | though I imagine if lue is working on it without taking what jnthn is doing with nqp-jvm, that would be odd. | ||
Heather | I want tool to convert batch to bash and backward :) github.com/Heather/script/blob/mas...bin/script | 12:39 | |
Nom- | It's something that interests me is all :) | 12:40 | |
I'm not very proficient with LLVM yet, but i'm learning | |||
arnsholt | Since that blog post was written, jnthn++ has ported almost all of NQP to the JVM | 12:41 | |
How he did that would likely be a good guide for how to do a different backend | |||
jnthn | The JVM provides significantly more runtime infrastructure than LLVM. | ||
Nom- | Yeah, aware of that | ||
arnsholt | Oh, definitely | 12:42 | |
jnthn | Which isn't really a VM in the same sense. | ||
Nom- | I was actually toying with the idea of integrating it into the Rubinius VM | ||
arnsholt | Troo, troo | ||
Rubinius or PyPy would be more similar to JVM I think | |||
jnthn | *nod* | ||
jnthn is currently fighting separate compilation issues in the JVM port... | 12:43 | ||
dalek | osystem: 42c80de | colomon++ | META.list: Change XML (exemel) to point to my working fork |
||
12:43
tgt left
|
|||
Heather | Rubinius VM looks nice | 12:43 | |
FROGGS | colomon++ # resistance is futile | 12:44 | |
Nom- | Yeah, my experience with it has been quite positive... the startup time is slower than CRuby, but runtime performance is substantially faster now | ||
And they're continually improving it | |||
12:46
tgt joined
12:47
brrt joined
|
|||
timotimo | FROGGS: did you make any progress in understanding or implementing? | 12:47 | |
12:51
rindolf left
|
|||
FROGGS | timotimo: beeing at work, I'll let you know if I have something or when I get stuck | 12:51 | |
timotimo | ah, good. thank you! | ||
12:52
rindolf joined
|
|||
timotimo | what, i seem to not be using nqp::qlist at all yet m) | 12:52 | |
i must have reverted those changes some time and forgotten about it | 12:53 | ||
12:54
Heather left,
cognominal left
12:55
crab2313 joined
|
|||
Nom- | So if I follow this right... been a while since I knew this stuff... Parrot has a PIR language... there's a NQP compiler written in PIR | 12:57 | |
Although, from what I'm seeing, the compiler is currently generated from...not sure... perl5 code? | 12:58 | ||
jnthn | Nom-: NQP is written in NQP; it's bootstrapped. | ||
12:58
silug joined
|
|||
Nom- | Ok, so phase 1 in any port is ultimately to rewrite that bootstrap I'm guessing... | 12:59 | |
timotimo | the nqp compiler is being generade from nqp code | ||
Nom- looks back at the JVM code again | |||
timotimo | FROGGS: feel free to sed nqp::list( to nqp::qlist in nqp/src/ | 13:01 | |
jnthn | Nom-: I should write a "how to" doc on porting, but the overall approach is that you write a code generator for the backend, write the bits of runtime support, and then set things up as a cross-compiler. You then get to the point of cross-compiling/running/passing most of the NQP test suite. Then you use the cross-compiler to cross-compile NQP itself. | ||
[Coke] wonders if the nqp repo is going to get a <vm> dir above the various stageN dirs now. | |||
jnthn | [Coke]: See jvm-support branch in NQP for how I have it so far. | ||
FROGGS | timotimo: k | 13:03 | |
jnthn | [Coke]: But short answer is that stage0 is per-vm, and stage1/stage2 are always generated (this second bit is already true) | 13:04 | |
timotimo | alternatively, maybe we should replace code like my @foo := nqp::q?list(); with my @foo; because there's the default_for thing anyway that will create a qlist or list | ||
jnthn: does that make sense to you? | |||
jnthn | timotimo: Only if we were going to declare a variable anyway | 13:05 | |
timotimo | of course | ||
jnthn | my @a := nqp::list() # is kinda a waste of code, for example | ||
13:05
domidumont left
|
|||
timotimo | i was refering to only those kinds of list creation | 13:06 | |
jnthn | ah, then feel to clean them up | ||
pmichaud | I'm worried about the autothreading commit in #128... it checks explicitly for Any in the signature. What about signatures that aren't Any, should they autothread? Or is Junction defined to autothread only over the Any type? | 13:07 | |
timotimo | pmichaud: Junction derives from Mu, Any derives from Mu | 13:08 | |
pmichaud | timotimo: what about another class that derives from Mu | ||
timotimo | oh. that's not a bad point actually. | 13:09 | |
what reason is there to derive from Mu rather than Any? | |||
moritz | r: class A is Mu { }; say A.^mro; sub f($x) { }; f A | ||
camelia | rakudo f3c3fe: OUTPUT«===SORRY!===CHECK FAILED:Calling 'f' will never work with argument types (A) (lines 1, 1) Expected: :($x)» | ||
moritz | timotimo: if one doesn't want the gazillions of methods defined in Any | 13:10 | |
timotimo | mhm | ||
or even any of the gazillion | |||
or even use any of the gazillion already existing subs :) | |||
13:10
Gwyxx left
13:11
SamuraiJack left
|
|||
pmichaud | the fact that there's at least one class outside of Any (Junction) means that there may be models in which there will be more. | 13:11 | |
timotimo | indeed. i will change the code. still curious ;) | ||
pmichaud | for example, S02 currently says that Failure derives from Mu (could be fossil) | ||
moritz | well, non-Any types don't autothread | ||
timotimo | r: say Failure.^mro; | ||
camelia | rakudo f3c3fe: OUTPUT«(Failure) (Any) (Mu)» | ||
moritz | as demonstrated above | 13:12 | |
timotimo | pmichaud: i'll change that piece of spec for you :) | ||
pmichaud | timotimo: no, don't just "change the spec" | ||
there may be a good reason for Failure to derive from Mu and not Any | |||
and rakudo might just have it wrongly placed. | |||
13:12
SamuraiJack joined
|
|||
timotimo | mhm, right | 13:12 | |
pmichaud | moritz: do we know that non-Any types don't autothread? I can't seem to find that anywhere in the spec. | 13:13 | |
dalek | p-jvm-prep: ddd73cb | jnthn++ | / (5 files): Fix HLL types seperate compilation leaks. |
||
p-jvm-prep: 5559d13 | jnthn++ | / (4 files): More assorted separate compilation fixes. |
|||
p-jvm-prep: 9f40bc8 | jnthn++ | nqp-src/NQPCORE.setting: Fix one more sep-comp leak. |
|||
jnthn | pmichaud: Autothreading happens (in current impl, and afaik spec) as a binding failover. | ||
pmichaud | jnthn: right | ||
colomon | \o/ | ||
jnthn | pmichaud: The fact that Junction !~~ Any causes the failure. | 13:14 | |
And then we say "oh, it's a Junction, let's autothread" | |||
pmichaud | jnthn: what about Junction !~~ Foo where Foo isn't an Any | ||
jnthn | So the auto-threader looks for the Junction type in particular. | ||
pmichaud | jnthn: yes, that's my point. | ||
the autothreader looks for Junction type, while the optimization added is looking for Any | |||
moritz | so if you want your custom type to autothread, you have to subclass Junction | ||
pmichaud | let me summarize it this way | 13:15 | |
moritz still doesn't see the case where the optimizer can cause wrong behavior | |||
13:15
domidumont joined
|
|||
jnthn | r: class OutOfAny is Mu { }; sub x(OutOfAny $x) { }; x(all(OutOfAny, OutOfAny)) | 13:15 | |
camelia | rakudo f3c3fe: ( no output ) | ||
jnthn | r: class OutOfAny is Mu { say 'here' }; sub x(OutOfAny $x) { }; x(all(OutOfAny, OutOfAny)) | ||
camelia | rakudo f3c3fe: OUTPUT«here» | ||
jnthn | oops | 13:16 | |
r: class OutOfAny is Mu { }; sub x(OutOfAny $x) { say 'here' }; x(all(OutOfAny, OutOfAny)) | |||
camelia | rakudo f3c3fe: OUTPUT«herehere» | ||
jnthn | Yes, it works | ||
pmichaud++ # noticing things | |||
pmichaud | does f3c3fe have the optimization applied? | ||
here's the summary | |||
the dispatcher is saying "autothread anything that isn't a Junction" | |||
the optimizer is saying "autothread only those things with Any parameters" | 13:17 | ||
the two are not equivalent. | |||
moritz | "autothread only those things with Any parameters" is a subset of "autothread anything that isn't a Junction", no? | 13:18 | |
pmichaud | I didn't say that quite right. | ||
but my point is that it's a subset. | 13:19 | ||
which means that the optimizer won't autothread some things that it should. | |||
moritz | when the optimizer doesn't autothreads it, the runtime can still do it | ||
the optimizer looks for cases where it's safe to perform its operation | 13:20 | ||
it's not a problem that it can't optimize all cases | |||
pmichaud | hmmmm | ||
moritz | at least not a problem with correctness | ||
13:20
cognominal joined
|
|||
moritz | possibly one with performance | 13:20 | |
pmichaud | then at least the comment in the commit is wrong | ||
# only if a chain operator handles Any, rather than Mu, in its signature | |||
+ # will autothreading actually happen. | |||
and also | 13:21 | ||
+ # And the Any type, important for being the "not junction" type. | |||
+ has $!Any; | |||
both of those comments are at least semantically misleading. | |||
timotimo | ~i've changed it :) | 13:22 | |
jnthn | Woo, NQP hosted on the JVM can now spit out an NQP for the JVM. | ||
Now I "just" need to do the stage2 bit of the Makefile and hope it works... :) | 13:23 | ||
pmichaud | there are other issues with the commit. For example, the variable says $!SETTING but what it's really looking for is CORE | ||
arnsholt | jnthn: We eagerly await news of how it goes =) | 13:24 | |
timotimo | my ssh connections are currently misbehaving, else i'd've already pushed the fixing commit | ||
pmichaud | CORE is *a* setting, it's not *the* setting | ||
13:25
bluescreen10 joined
|
|||
Nom- | Just to be sure I'm not going crazy, t/nqp/* is *actual* NQP code I need to parse, right? | 13:25 | |
pmichaud | moritz: I get your point about the optimizer only handling those it knows are safe... point well made. Thanks for clarifying. | 13:27 | |
13:27
nemesys left
|
|||
jnthn | Nom-: I don't suggest porting be done by writing an NQP parser. | 13:28 | |
Nom-: Things are factored so you can use the existing one and just write an extra backend, then plug your backend in. That way, you can focus just on cdoe generation at first. | 13:29 | ||
*code | |||
pmichaud | more importantly, writing an NQP parser means writing a regular expression engine :-) | ||
colomon | do install failures kill pandabrew's rebootstrap? | ||
er, tadzik ^^^ | 13:30 | ||
arnsholt | A key point about NQP, is that there's more to it than the parser and code generation. It also depends on runtime support for the object model and grammar engine, for example | 13:31 | |
Nom- | hmmm | ||
jnthn: You've written a parser, or no? | |||
jnthn | Nom-: I didn't write a parser for the JVM port, no. | 13:32 | |
Nom-: I implemented regex/grammar compilation and the various other bits of infrastructure so that I could cross-compile the existing parser. | |||
13:33
kaare_ joined
|
|||
dalek | p/jvm-support: 613ccd6 | jnthn++ | src/vm/jvm/stage0/ (10 files): Update stage0 to get sep-comp fixes. |
13:33 | |
p/jvm-support: a550ae8 | jnthn++ | / (8 files): Bring in the various sep-comp fixes. |
|||
p/jvm-support: 08c8cb5 | jnthn++ | / (2 files): Final tweaks to get a working stage1. |
|||
jnthn | Nom-: The overall flow is source code => AST => code for the target VM | ||
Nom-: You don't need to re-write the source code => AST bit. | 13:34 | ||
pmichaud | (You probably don't want to re-write the source code => AST bit :) | ||
jnthn | :D | ||
Nom- | Ok | ||
dalek | osystem: 619f286 | colomon++ | META.list: Switch Template6 and XML back to supernovus++ |
13:35 | |
Nom- | So ultimately you need parrot in order to build anything then? | ||
hmmmm i take that back.. i still don't understand this code et | |||
*yet | |||
jnthn | Nom-: You need an existing NQP implementation while you build up your cross-compiler/runtime support, yes. | 13:36 | |
Nom-: Then once you have that, you use it to compile NQP itself. | |||
Nom-: That gives you an NQP that is independent of Parrot. | |||
Nom- | Ok, that's making more sense to me | ||
jnthn | NQP on the JVM doesn't need Parrot at all by now. | ||
moritz | so you can bootstrap your own NQP backend from the JVM? | 13:37 | |
jnthn | moritz: Yeah, you could use NQP on JVM as your starting point, though it's not so battle-hardened/convenient as the Parrot impl yet. I'm getting there with the build... :) | 13:40 | |
dalek | p/jvm-support: 04782d5 | jnthn++ | tools/build/Makefile-JVM.in: Add stage2 build to Makefile. Works. |
13:45 | |
pmichaud | "Works." jnthn++ | 13:47 | |
timotimo | my simple fix make tests fail, great >_< | ||
jnthn | pmichaud: For convenience I'm wondering about having an nqp.bat / nqp.sh that fires off the JVM with the appropriate class path arguments. For the "make install", these could contain the paths we install to, menaing running NQP looks a lot like today, but relocation is just a matter of fixing up paths in a .bat/.sh file (meaning we should get a way to do the relocatable install...) | 13:49 | |
13:49
cibs_ joined
|
|||
jnthn | pmichaud: Does that sound sane? I basically suck at install related things :) | 13:49 | |
[Coke] | jnthn: will perl ConfigureJVM eventually be perl Configure --jvm ? | 13:50 | |
arnsholt | No boom? Cool! | ||
jnthn | Oh, that's another good question :) | ||
[Coke]: I'm wondering if Configure.pl is just a facade and it delegates to ConfigureParrot/ConfigureJVM etc. | 13:51 | ||
[Coke] | if not, we might want to make it configureJVM.java | ||
13:51
skids joined
|
|||
jnthn | [Coke]: Passing all arguments along except the --jvm or --parrot one | 13:51 | |
[Coke] | no need to make the JVM port depend on perl5. | ||
pmichaud | jnthn: I'm not sure that .bat/.sh is the way to go in the long run, but it certainly should work out for the time being. | 13:52 | |
jnthn | pmichaud: OK | ||
arnsholt | How much configuring does ConfigureJVM do ATM? | ||
pmichaud | I suspect the configure/build system will need some love after this, and that's okay. | ||
jnthn | arnsholt: Little. | ||
13:53
crab2313 left
|
|||
arnsholt | Yeah, that's what I thought | 13:53 | |
jnthn | pmichaud: Yeah. I don't feel like the right person to do it, but I know how your tuit supply is... | ||
[Coke] | jnthn: I need to make the nqpjvm generated makefile -j safe. | ||
jnthn | [Coke]: Hm, I thought I'd got he deps right, but maybe not | ||
[Coke] | make -j3 failed pretty quick. | ||
waiting to see if single threaded fails. | |||
jnthn | [Coke]: OK. :) | 13:54 | |
arnsholt | For the time being, I'd argue that consolidating everything into Configure.pl is probably the best solution | ||
[Coke] | jnthn++ # this is so exciting. ;) | ||
arnsholt | But I think pmichaud is right that the build system will likely need some polish now that we have several backends | ||
pmichaud | s/polish/refactoring/ # I suspect | ||
13:55
cibs joined,
cibs_ left
|
|||
pmichaud | anyway, I'll be willing to do the configure/build stuff when I get the tuits, but I don't really know when that will be. Until then we can go with "good enough to work" or hope that someone else comes along and does it. :) | 13:56 | |
jnthn | +1 | 13:57 | |
pmichaud | since I'm giving a talk on p6/jvm at yapc::na, it's likely I'll try to make sure something happens before then :) | ||
[Coke] | jnthn: single threaded works. I'll see if I can get some tuits tonight. | ||
[Coke] still hasn't decided if he's going. :( | |||
jnthn | [Coke]: OK. I'm still Makefile hacking at the moment, so I may catch it | ||
pmichaud | [Coke]: lots of us are going to be there.. might be worth the trip. :) | ||
jnthn | [Coke]: Even I will be at YAPC::NA this year, for the first time... :) | 13:58 | |
pmichaud | just look at the talk schedule and then figure out how you can justify not coming :) :) | ||
[Coke] | pmichaud: the toughest part (aside from self funding) is that I do perl for fun, not for work. | 13:59 | |
well, not directly for work, anyway. | |||
jnthn | [Coke]: ah, I think I may have spotted it.... | 14:01 | |
colomon is still hoping to go... | |||
[Coke] has an nqp.jar, and tries to figure out how to run it. | 14:03 | ||
14:04
cibs_ joined
|
|||
[Coke] could use that .sh file. ;) | 14:04 | ||
pmichaud | [Coke]: yeah, I hear ya. The decision is made a lot easier for me this year since yapc::na is within driving distance. If I was having to fly in, it'd be a much harder call for me to make. | ||
[Coke]: maybe java -jar nqp.jar | 14:05 | ||
jnthn | [Coke]: Gimme a few moments... | ||
14:07
cibs left
|
|||
pmichaud decides he can wait no longer and has to attempt the nqp-jvm build. | 14:08 | ||
jnthn | C:\consulting\rakudo\nqp>nqp -e "say('OH YEAH')" | ||
OH YEAH | |||
pmichaud: 2 minutes, I'll push something to make that easier... :) | |||
14:09
cibs joined
|
|||
dalek | p/jvm-support: c321800 | jnthn++ | tools/build/Makefile-JVM.in: Various Makefile additions. |
14:09 | |
p/jvm-support: 459c817 | jnthn++ | .gitignore: Update .gitignore. |
|||
[Coke] | if I go, it'll be to catch up with my sixies! . o O (we need a better word for this. ;) | 14:10 | |
14:10
cibs_ left
|
|||
jnthn | [Coke]: Hopefully that may fix -j3 | 14:10 | |
[Coke]: Not that a bootstrapped build is very parallelizable... | |||
moritz | can't you compile Actions.pm and Grammar.pm in parallel? | 14:11 | |
jnthn | moritz: In NQP they go all into a single NQP.pm anyway | 14:12 | |
moritz: But even in Rakudo you can't as the grammar mentions Perl6::Actions | |||
PerlJam | [Coke]: you should go to YAPC::NA | 14:14 | |
pmichaud | PerlJam: you are going, yes? | 14:15 | |
14:15
xilo joined
|
|||
PerlJam | I'm planning on it, yes. | 14:15 | |
colomon | BTW, the URI module worked fine yesterday but is broken today. | 14:16 | |
might have been day before yesterday. | |||
colomon needs to get automatic smoke testing running instead of doing it manually every few days.... | |||
PerlJam | (I haven't yet registered or gotten a hotel room, but I've still got over a month, right? :) | ||
timotimo | i'd like to cut up a string into substrings for 1st, nth, 2nth, 3nth char, 2nd, 1+nth, 1+2nth, ... char etc etc; i thought to use classify, but that won't work properly like "foo bar baz".comb.kv.classify({$_.key % 4}) or something similar. advice? | 14:17 | |
14:17
woolfy left
|
|||
moritz | timotimo: small example of what you want to achieve? | 14:17 | |
[Coke] | jnthn++ #makefile fixes. | 14:19 | |
jnthn | [Coke]: It worked? | ||
[Coke] | pmichaud: the -jar complains, basically, that the jar isn't runnable. | ||
colomon hopes PerlJam is right about registering, etc.... | 14:20 | ||
[Coke] | that is fixable (so we could have that automatically run some class) | ||
14:20
PacoAir joined
|
|||
gtodd | are the updates to nqp (ie. those in nqp/jvm-support) that appear in the rakudo repo's nqp "submodule" enough for someone to try getting nqp running on the jvm? ... with presumably some manual hacking in nqp/ somewhere | 14:20 | |
[Coke] | gtodd: that branch is working right now, I think. | ||
check it out, "perl ConfigureJVM.pl", you get a .jar file. shortly you'll have a .sh script that runs the jar file for you. | 14:21 | ||
jnthn: what's the class to run for the command line? | |||
gtodd | ok great ... I didn't see anything after git pull so will dig around a bit | ||
timotimo | moritz: vigenere breaking. "barbarbar" op 3 => "bbb", "aaa", "rrr" | 14:22 | |
gtodd | hmm I guess it's because I'm not on a branch ... still learning git :-) | 14:23 | |
[Coke] | jnthn: at the end, you're copying a lot of .class files (3x each) to the top dir? | ||
gtodd: git checkout -b jvm-support remotes/origin/jvm-support | |||
dalek | p/jvm-support: 6918dfd | jnthn++ | / (5 files): Add convenience .bat/.sh to run NQP on JVM. |
||
moritz | r: say 'barbarbar'.comb.classify({$_}).perl | ||
camelia | rakudo f3c3fe: OUTPUT«("b" => ["b", "b", "b"], "a" => ["a", "a", "a"], "r" => ["r", "r", "r"]).hash» | ||
jnthn | [Coke]: Yeah, I didn't figure out why on earth it copies them multiple times... | 14:24 | |
The .sh there is untested; the .bat is known to work. | |||
moritz | r: say 'barbarbar'.comb.classify({$_}).map({ .key => +.value }).perl | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'Any' in block at /tmp/D9tPDJzNuF:1» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.map({ .key => +.value }).perl | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'Any' in block at /tmp/TyvKh2fBNy:1» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.perl | ||
camelia | rakudo f3c3fe: OUTPUT«("b" => ["b", "b", "b"], "a" => ["a", "a", "a"], "r" => ["r", "r", "r"]).list» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }) | 14:25 | |
camelia | rakudo f3c3fe: OUTPUT«b 3 a 3 r 3» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }).invert | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'invert' for invocant of type 'List' in block at /tmp/swsAQvgvvD:1» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }).classify: *.key | ||
camelia | rakudo f3c3fe: OUTPUT«("b" => ["b" => 3], "a" => ["a" => 3], "r" => ["r" => 3]).hash» | ||
moritz | meh | ||
r: say 'barbarbar'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }).perl | 14:26 | ||
camelia | rakudo f3c3fe: OUTPUT«("b" => 3, "a" => 3, "r" => 3).list» | ||
moritz | r: say 'barbarbar'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }).hash.invert.perl | ||
camelia | rakudo f3c3fe: OUTPUT«(3 => "b", 3 => "a", 3 => "r").list» | ||
moritz | timotimo: close enough? :-) | ||
timotimo | oh, you already count the occurences? | ||
gtodd | [Coke]: thanks | ||
moritz | timotimo: yes | ||
r: say 'barbarossa'.comb.classify({$_}).pairs.map(-> $p { $p.key => +$p.value }).hash.invert.perl | 14:27 | ||
camelia | rakudo f3c3fe: OUTPUT«(2 => "b", 3 => "a", 2 => "r", 1 => "o", 2 => "s").list» | ||
timotimo | neat. now let me try to understand it :D | ||
colomon | r: say bag 'barbarbar'.comb; | ||
camelia | rakudo f3c3fe: OUTPUT«bag("b" => 3, "a" => 3, "r" => 3)» | ||
timotimo | i don't see where it gets sliced, though | ||
moritz | ooh, colomon++ | ||
timotimo: .comb slices it in characters | |||
colomon | bag: it's handy. ;) | ||
moritz | aye. | ||
timotimo | i have to run now, but i'll explain better what i meant when i get back on the puter | 14:28 | |
colomon | rn: say 'barbarbar'.comb.bag | ||
camelia | rakudo f3c3fe, niecza v24-37-gf9c8fc2: OUTPUT«bag("b" => 3, "a" => 3, "r" => 3)» | ||
[Coke] | jnthn: it works. could use a chmod +x | 14:29 | |
jnthn++ | |||
moritz guesses that timotimo actually wants slicings of different lengths | |||
[Coke] | gtodd: now when you build, you can do: | ||
sh src/vm/jvm/nqp.sh -e "say(3)" | |||
3 | |||
pmichaud | pmichaud@kiwi:~/p6/nqp-jvm$ ./nqp.sh -e "say(3)" | 14:30 | |
3 | |||
\o/ | |||
jnthn | [Coke]: Hm, I put the chmod +x in the Makefile, I thought. | ||
pmichaud | no REPL? | ||
[Coke] | (oh, does it install it? I just ran it directly without rebuilding) | 14:31 | |
jnthn: never mind. ;) | |||
pmichaud | my nqp.sh is chmod +x already | ||
jnthn | pmichaud: Didn't figure out why the REPL ain't quite working yet. | ||
[Coke] | looks like parrot is winning on startuptime, but we knew that. | ||
jnthn | pmichaud: Probably because I didn't properly implement fhreadline or so :) | ||
pmichaud | something like that, probably. | ||
probably won't be long to fix :) | |||
14:31
fgomez joined
|
|||
jnthn | No...I've mostly focused on "critical path to bootstrap" | 14:31 | |
pmichaud | pmichaud@kiwi:~/p6/nqp-jvm$ make test | 14:32 | |
make: *** No rule to make target `test'. Stop. | |||
:-( | |||
jnthn | pmichaud: Yes, got that locally :) | ||
Nom- | jnthn: I feel like I'm missing an entire section of code on how you get from nothing to what's in the nqp repo... do I need to look at your other repo? | 14:33 | |
Like I see all the code which parses these JAST statements, but I can't *yet* see what's generating them | 14:34 | ||
14:34
PacoAir left
14:35
PacoAir joined
|
|||
jnthn | Nom-: In the nqp repo (provided you're in jvm-support branch) it lives in src/vm/jvm/QAST/JASTNodes.nqp | 14:37 | |
alester | ack2 is out! Whee! | 14:40 | |
pmichaud | gist.github.com/pmichaud/5413260 # lots of passing tests | 14:41 | |
alester++ # ack2 | 14:42 | ||
jnthn | pmichaud: Matches what I have here, yeah. | ||
14:42
kaleem left
|
|||
moritz | alester++ | 14:42 | |
jnthn | pmichaud: deletepos is just an NYI, 24-modules.t is a but I need to hunt and squish. :) | ||
pmichaud | jnthn: that's.... impressive. Beyond impressive. | ||
jnthn | *bug | ||
moritz | alester: did you release it, or did it escape? :-) | 14:43 | |
pmichaud | I have to go do house-y things for a while... bbl | ||
jnthn | o/ | ||
14:44
frdmn left
|
|||
colomon | well, in the module smoke test, things got better because of Template6 and XML, and worse because a ton of modules depend on URI. :( | 14:44 | |
timotimo | moritz: i wanted to turn "abcdef" into "ace" and "bdf" when i supply 2 or "ad" "be" "cf" when i supply 3 | 14:47 | |
14:48
fgomez left
|
|||
timotimo | the "barbarbar" example was dumb, because all the same letters ended up in the same string each. | 14:49 | |
colomon | r: say "abcdef".comb.kv.perl | 14:50 | |
camelia | rakudo f3c3fe: OUTPUT«((0, "a"), (1, "b"), (2, "c"), (3, "d"), (4, "e"), (5, "f")).list» | ||
moritz | that's what we do with unpack in p5 | ||
timotimo | i got that far, but classify seems to break that | ||
moritz | .comb breaks it | ||
timotimo | oh, maybe i have to .lol.classify? | 14:51 | |
moritz | p5eval: [unpack '(A3)', 'barbarossa'] | ||
p5eval | moritz: ["bar"] | ||
moritz | p5eval: [unpack '(A3)*', 'barbarossa'] | ||
p5eval | moritz: ["bar","bar","oss","a"] | ||
colomon | r: say "abcdef".comb.kv.classify({ $_.key % 3 }) | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'Int' in block at /tmp/11ad1C8sIe:1» | ||
moritz | camelia: .comb.pairs | ||
erm, meant colomon | |||
timotimo | r: say "abcdef".comb.kv.lol.classify({ $_.key % 3 }) | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'ListIter' in block at /tmp/7S5lUtO7yX:1» | ||
colomon | r: say "abcdef".comb.pairs.classify({ $_.key % 3 }) | 14:52 | |
camelia | rakudo f3c3fe: OUTPUT«===SORRY!===Two terms in a rowat /tmp/iRkDrcxwwF:1------> say "abcdef".comb.pairs.cl⏏assify({ $_.key % 3 }) expecting any of: method arguments postfix infix stopper infix or meta-infix … | ||
timotimo | r: say "abcdef".comb.kv.lol.classify({ $_[0].key % 3 }) | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'ListIter' in block at /tmp/0pEFNm9PUV:1» | ||
timotimo | r: say "abcdef".comb.kv.lol.classify({ $_[0] % 3 }) | ||
camelia | rakudo f3c3fe: OUTPUT«Cannot call 'Real'; none of these signatures match::(Mu:U \v: Mu *%_) in method Real at src/gen/CORE.setting:870 in sub infix:<%> at src/gen/CORE.setting:2977 in sub infix:<%> at src/gen/CORE.setting:2974 in block at /tmp/y6_6hTMd5M:1» | ||
moritz | r: say "abcdef".comb.pairs.classify({ $_.key % 3 }) | ||
camelia | rakudo f3c3fe: OUTPUT«("0" => [0 => "a", 3 => "d"], "1" => [1 => "b", 4 => "e"], "2" => [2 => "c", 5 => "f"]).hash» | ||
PerlJam | is this some kind of golf? | 14:53 | |
colomon | PerlJam: collaborative problem solving. | ||
timotimo | ah, .pairs seems better | 14:54 | |
dalek | p/jvm-support: c422bb3 | jnthn++ | src/vm/jvm/QAST/JASTNodes.nqp: Add forgotten JAST node construction opt. |
||
p/jvm-support: 0397e83 | jnthn++ | / (2 files): Add testing targets. Will need some triage. |
|||
moritz | r: sub splitchars($str, $chars) { gather for (0, *+$chars ...^ *>$str.chars) { $str.substr($_, $chars) } }; say splitchars('barbarossa', 3) | ||
timotimo | i think i'll use something very much like classify, but for lists instead. that way i can just >>.value afterwards | ||
camelia | rakudo f3c3fe: OUTPUT«» | ||
moritz | r: sub splitchars($str, $chars) { gather for (0, *+$chars ...^ *>$str.chars) { take $str.substr($_, $chars) } }; say splitchars('barbarossa', 3) | 14:55 | |
camelia | rakudo f3c3fe: OUTPUT«bar bar oss a» | ||
moritz | r: sub splitchars($str, $chars) { gather for (0, *+$chars ...^ *>$str.chars) { take $str.substr($_, $chars) } }; say splitchars('barbarossa', 3).classify({$_}).perl | ||
camelia | rakudo f3c3fe: OUTPUT«("bar" => ["bar", "bar"], "oss" => ["oss"], "a" => ["a"]).hash» | ||
moritz | r: sub splitchars($str, $chars) { gather for (0, *+$chars ...^ *>$str.chars) { take $str.substr($_, $chars) } }; say splitchars('barbarossa', 3).classify({$_}).pairs.map({ .key => +.value }).perl | ||
camelia | rakudo f3c3fe: OUTPUT«No such method 'key' for invocant of type 'Any' in block at /tmp/MNnsf9Q1AM:1» | ||
moritz | r: sub splitchars($str, $chars) { gather for (0, *+$chars ...^ *>$str.chars) { take $str.substr($_, $chars) } }; say splitchars('barbarossa', 3).classify({$_}).pairs.map({; .key => +.value }).perl | 14:56 | |
camelia | rakudo f3c3fe: OUTPUT«("bar" => 2, "oss" => 1, "a" => 1).list» | ||
moritz | timotimo: like this? | ||
timotimo | i'm not sure we're on the same page | ||
moritz neither | |||
timotimo | i'd like "barbarossa" to turn into "bboa", "aas", "rrs" | ||
each string only has every 3rd character | |||
moritz | ah | ||
timotimo fails epically at communicating today | 14:57 | ||
spider-mario | r: ([Z~] 'barbarossa'.comb(/.**3/).map: {[.comb]}).perl | ||
camelia | rakudo f3c3fe: ( no output ) | ||
spider-mario | r: ([Z~] 'barbarossa'.comb(/.**3/).map: {[.comb]}).perl.say | ||
camelia | rakudo f3c3fe: OUTPUT«("bbo", "aas", "rrs").list» | ||
moritz | then I'm totally on the wrong track | ||
PerlJam | timotimo: so, foo("abcdefg",3), you'd want "adg", "be", "cf" (assuming foo does whatever you wanted) > | ||
er ? | |||
moritz | spider-mario: swallows the last letter | ||
spider-mario | I’m having trouble trying to interpolate a variable to replace the hard-coded 3 in the regexp | ||
timotimo | yes, PerlJam | ||
use eval to create the regexp :D | 14:58 | ||
colomon | moritz: why? seems like it's just a matter of transforming ("0" => [0 => "a", 3 => "d"], "1" => [1 => "b", 4 => "e"], "2" => [2 => "c", 5 => "f"]) into a series of strings. Might not be the best golfed method, but will definitely work... | ||
r: ([Z~] 'barbarossa'.comb(/.**1..3/).map: {[.comb]}).perl.say | 14:59 | ||
camelia | rakudo f3c3fe: OUTPUT«("bboa",).list» | ||
14:59
kaleem joined
|
|||
moritz | r: sub slice($str, $chars) { (^$chars).map: -> $m { $chars.comb.pairs.grep(*.key %% $chars == $m)>>.value.join } } | 14:59 | |
camelia | rakudo f3c3fe: ( no output ) | ||
moritz | r: sub slice($str, $chars) { (^$chars).map: -> $m { $chars.comb.pairs.grep(*.key %% $chars == $m)>>.value.join } }; say slice 'barbarossa', 3 | ||
camelia | rakudo f3c3fe: OUTPUT« 3 » | ||
moritz | r: sub slice($str, $chars) { (^$chars).map: -> $m { $chars.comb.pairs.grep(*.key % $chars == $m)>>.value.join } }; say slice 'barbarossa', 3 | 15:00 | |
camelia | rakudo f3c3fe: OUTPUT«3 » | ||
timotimo | you are combing chars | ||
colomon | on URI failure: it looks like require %rfc_grammar_build{$rfc} is now doing require %rfc_grammar_build ?? | ||
timotimo | comb $str instead | ||
moritz | r: sub slice($str, $chars) { (^$chars).map: -> $m { $str.comb.pairs.grep(*.key % $chars == $m)>>.value.join } }; say slice 'barbarossa', 3 | ||
camelia | rakudo f3c3fe: OUTPUT«bboa aas rrs» | ||
moritz | \o/ | ||
timotimo | neat! | ||
moritz | timotimo: thanks | ||
timotimo | still looks a bit ... bewildering :)) | 15:01 | |
but i still like it | |||
thank you! | |||
moritz | well, it's a desperat-ish attempt to fit it all into a single expression | ||
15:01
kbenson joined
|
|||
PerlJam | timotimo: that's why I asked about golf. I would have done it a little more verbosely :) | 15:01 | |
timotimo | right. | 15:02 | |
kresike | bye folks | ||
15:02
kresike left
|
|||
PerlJam | moritz++ that's a nice solution though. | 15:02 | |
alester | moritz: I shoved it out because I knew if I didn't I never would. | ||
moritz | .oO( it wasn't released, it was rejected from dev ) |
15:03 | |
dalek | p/jvm-support: 635e421 | jnthn++ | / (20 files): Add bootstrap-files target; clean up. The file names used for modules in the stage0 from nqp-jvm-prep were not the same as those produced by the build; this gets things to be consistent. Updates the bootstrap as part of doing so. |
15:04 | |
15:06
kaleem left
|
|||
alester | moritz: I was tired of waiting on getting all the ducks in a row, mostly docs. i just had to push it out and deal with docs after the fact. | 15:10 | |
moritz | alester: I think it's a good move | 15:13 | |
15:16
kaleem joined,
sqirrel joined
|
|||
timotimo | er, may i ask what alester has done? | 15:17 | |
alester | moritz: Thanks. I'll make an announcement later in the day but right now I have work to do | ||
timotimo: Released ack 2.00 | |||
beyondgrep.com/ack20/ | |||
timotimo | oh! neat :) | 15:18 | |
15:21
isBEKaml joined
|
|||
PerlJam | alester: for me, the change in default search behavior will have the most impact. I used -a all the time in ack1 | 15:22 | |
alester | You and everyone else, PerlJam. We just had to add other stuff to take into account those who rely on that old behavior. | 15:23 | |
-k/--known-types puts you back to the ack 1.x behavior. | |||
15:24
domidumont left
|
|||
gtodd | ack = killer app :-) | 15:24 | |
beyond its obvious reference, if I recall correctly, ack was the main spoken word of the bulbous green headed invaders in "Mars Attacks" | 15:25 | ||
15:27
brrt left
|
|||
moritz thought they said something "nag nag" or "nack nack" | 15:30 | ||
ggoebel | jnthn++ | ||
looking forward to the blog post on the jvm nqp bootstrap being merged | 15:31 | ||
15:32
supernovus joined
|
|||
supernovus | ping colomon | 15:33 | |
yoleaux | 16 Apr 2013 23:06Z <raiph> supernovus: i didn't see llamarider commit any TZ changes | ||
[Coke] | r: for 1..2 -> $ack { say "alester++ # ack $ack" } | 15:34 | |
camelia | rakudo f3c3fe: OUTPUT«alester++ # ack 1alester++ # ack 2» | ||
isBEKaml | r: 0 ...^ *>5 # that's what S02 says, but times out | 15:36 | |
should that be <= or some such? | |||
camelia | rakudo f3c3fe: OUTPUT«(timeout)» | ||
isBEKaml | r: say 0 ... ^* <= 5 | ||
camelia | rakudo f3c3fe: OUTPUT«0» | ||
isBEKaml | r: say 0 ... ^ <= 5 | ||
camelia | rakudo f3c3fe: OUTPUT«===SORRY!===Unable to parse expression in quote words; couldn't find final '>'at /tmp/_cXE889ZqZ:1------> say 0 ... ^ <= 5⏏<EOL> expecting any of: postfix infix stopper infix or meta-infix … | ||
timotimo | where would i get a value that makes sense in the same context as enum_class_ResizablePMCArray for a "custom" PMC? (qrpa in this case) | 15:37 | |
something like Parrot_pmc_get_type_str(interp, Parrot_str_new(interp, "QRPA", 0));? | |||
15:38
simcop2387 joined,
FROGGS left
|
|||
jnthn | timotimo: search for qrpa in perl6.ops; I think we have something in there for it. | 15:38 | |
timotimo | oh, yes nideed | 15:39 | |
thank you :) | |||
[Coke] | r: print "\x0B HI \x0B" | 15:42 | |
isBEKaml | r: say 0 ... ^*< 5 | ||
camelia | rakudo f3c3fe: OUTPUT« HI » | ||
rakudo f3c3fe: OUTPUT«===SORRY!===Whitespace required before < operatorat /tmp/v9wrTuM3aZ:1------> say 0 ... ^*< 5⏏<EOL> expecting any of: postfix» | |||
timotimo | i'm starting small replacing ReziablePMCArray with qrpa_id and see when it breaks | ||
isBEKaml | ^^ bug? | ||
[Coke] | std: say 0 ... ^*< 5 | ||
camelia | std 86b102f: OUTPUT«===SORRY!===Whitespace required before < operator at /tmp/TgSgZGq7wt line 1:------> say 0 ... ^*<⏏ 5 expecting escapeParse failedFAILED 00:00 42m» | ||
[Coke] | probably not. | 15:43 | |
isBEKaml | std: say 0 ... ^*> 5 | ||
camelia | std 86b102f: OUTPUT«ok 00:00 42m» | ||
isBEKaml | [Coke]: that. | ||
This is from S02:1175 | 15:44 | ||
This is from S02:1176 | |||
r: say 0 ... ^* < 5 | |||
camelia | rakudo f3c3fe: OUTPUT«0» | ||
15:48
sqirrel left
15:54
thou joined
|
|||
colomon | supernovus: pong | 15:55 | |
supernovus | colomon: Thanks for the bug fixes on Template6 and XML, even if I messed up the XML one by updating it before I noticed there was a pull request. My bad. :P | 15:56 | |
colomon | isBEKaml: you can't put a space between the ... and the ^ | ||
supernovus: you're welcome. I've been trying to get more of the modules working, and these things are really LHF | |||
supernovus | I'm currently mucking with XML::Query to get it back into working order. It seems to have been affected by the change in how protos work. | 15:59 | |
16:01
FROGGS joined
|
|||
isBEKaml | colomon: sure, but that's not what the error message says? It seems to carp over the lack of space between * and < | 16:04 | |
masak | oh hai, #perl6 | 16:06 | |
isBEKaml | hello, masak | ||
supernovus | Gah, this is some messed up stuff. "You cannot create an instance of this type". What kind of error message is that? | 16:07 | |
jnthn | An accurate one? | ||
isBEKaml | supernovus: well, that's clear. :P | ||
jnthn | Not all types can be instantiated. | ||
Granted it should probably metion the type name. | 16:08 | ||
supernovus | Apparently XML::Query (a class) is no longer able to be instantiated... oO | ||
The weirdest part is, the tests work fine if the module is loaded from a .pm6 but fail if the module is loaded from a .pir file... | 16:11 | ||
jnthn | Ugh. :/ | 16:13 | |
Not another one of those bloody problems. | |||
16:13
crab2313 joined
|
|||
isBEKaml | precompilation? | 16:13 | |
jnthn | Sounds like | ||
Well, hopefully it's the same as the not_gerd one I've got outstanding to look at. | 16:14 | ||
supernovus | With precompiled modules, if I use one of the overridden new() methods, I get an error of "Default constructor for 'Query' only takes named arguments" and if I use the default new(), I get the "cannot create an instance" error. If I force it to load non-precompiled modules, there are no errors. | 16:15 | |
colomon | isBEKaml: *< may well be illegal as well. | ||
std: *< | |||
camelia | std 86b102f: OUTPUT«===SORRY!===Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/hexIN8CQft line 1:------> *<⏏<EOL> expecting escapeParse failedFAILED 00:00 41m» | ||
jnthn | supernovus: It tends to happen in certain icky arrangements of nested packages. | ||
colomon | std: 1 *< 2 | 16:16 | |
camelia | std 86b102f: OUTPUT«===SORRY!===Unable to parse quote words at /tmp/sj6t7ne352 line 1:------> 1 *⏏< 2Couldn't find final '>'; gave up at /tmp/sj6t7ne352 line 1 (EOF):------> 1 *< 2⏏<EOL>Parse failedFAILED 00:00 42m»… | ||
colomon | std: 1 ^*< 2 | ||
camelia | std 86b102f: OUTPUT«===SORRY!===Whitespace required before < operator at /tmp/defmKMx7xW line 1:------> 1 ^*<⏏ 2 expecting escapeParse failedFAILED 00:00 42m» | ||
colomon | okay, that's kind of weird | ||
isBEKaml | std: 0 ...^ *> 5 # is this a different case? | ||
camelia | std 86b102f: OUTPUT«ok 00:00 42m» | ||
isBEKaml | std: 0 ...^ *< 5 # this is weird. | 16:17 | |
camelia | std 86b102f: OUTPUT«===SORRY!===Whitespace required before < operator at /tmp/3XRloPfE95 line 1:------> 0 ...^ *<⏏ 5 # this is weird. expecting escapeParse failedFAILED 00:00 42m» | ||
supernovus | jnthn: Well, I'll leave it alone for now, as I don't actually use XML::Query in any of my other projects. | ||
jnthn | supernovus: Yeah. I'll get to it eventually. Such precomp bugs tend to be time consuming to hunt down, and that chunk of Rakudo has a bus number of 1 (me)... | 16:20 | |
16:20
frdmn joined
16:24
isBEKaml left
16:28
Nom- left
16:29
Nom- joined
16:31
kaleem_ joined
16:34
kaleem left
|
|||
jnthn | At long last, I blogged: 6guts.wordpress.com/2013/04/18/nqp-...qp-master/ | 16:37 | |
16:38
tgt left
16:40
markov left,
markov joined
|
|||
jnthn | afk for a bit | 16:42 | |
masak | jnthn++ # blug | 16:52 | |
colomon | jnthn++ # blug indeed! | 16:55 | |
16:55
shinobicl joined,
supernovus left
|
|||
daxim | keyboards and terminal applications are weird. I press a keycap that triggers a switch that closes a circuit which is interpreted by a controller which transmits packets on the serial bus which has a hardware driver in the kernel which provides a scancode which is mapped by X to a keycode which is mapped by Xkb to a symbol which is mapped by Konsole to a vt escape sequence which is looked up by terminfo in some fashion *mumble* and finally | 16:56 | |
is interpreted by Konsole again to cause a action, such as scrolling up one page | |||
I don't quite understand what the decoupling at the terminfo step is good for, will someone educate me? | |||
17:00
salv0 joined
17:06
isBEKaml joined
17:09
dakkar left
|
|||
ggoebel | jnthn++ | 17:14 | |
geekosaur | daxim, while there is an ANSI standard for terminals now, originally there wasn't and terminfo was needed to deal with several hundred different kinds of terminals | 17:15 | |
17:15
domidumont joined
|
|||
dalek | ast: eba6362 | coke++ | S32-temporal/calendar.t: directly test .gist instead of going through say |
17:15 | |
geekosaur | also, that standard is (as a standard) somewhat limited and every termina/emulator has its own extensions, which often are intended to be compatible with others but sometimes have bugs... | 17:16 | |
terminfo means every program doesn't have to know exactly what function key escapes *this* terminal emulator supports and what the idiosyncrasies in its line wrap are | 17:17 | ||
(since almost nobody gets the original vt100 algorithm right...) | |||
(but xterm does...) | 17:18 | ||
(and there are programs that Know That) | |||
17:19
isBEKaml left,
thou left
17:25
tgt joined
|
|||
PerlJam | jnthn: you realize it will be about 9 months between jvm-prep creation and merge into nqp repo? Aside from being approximately the same gestation period as a human :), that's a fairly amazing turn-around time. | 17:32 | |
jnthn++ | |||
17:34
crab2313 left
17:35
daxim left
|
|||
masak .oO( did PerlJam just call jnthn fat? ) :P | 17:35 | ||
17:42
japhb_ joined
|
|||
dalek | rl6-roast-data: 572d72e | coke++ | / (4 files): today (automated commit) |
17:45 | |
[Coke] | sorear: how would feel about nqp-mono ? | 17:48 | |
how are we going to deal with fudging once there are 2 rakudos? | 17:52 | ||
#?rakudo-jvm skip vs #?rakudo(-parrot)? #?rakudo skip 'description' -jvm-only | 17:54 | ||
17:55
pupoque joined
|
|||
[Coke] | (I'm leaning towards the latter - make fudge smart enough to deal with tags, then we can skip across the board (feature not even implemented), or for a particular variant (subtle bug on jvm version) | 17:56 | |
pmichaud | iirc, fudge was designed so that you could activate multiple tags | 18:08 | |
so it should be possible to do #?rakudo #?rakudo-jvm and #?rakudo-parrot | 18:09 | ||
when running tests for #?rakudo-parrot, it would activate those fudges marked #?rakudo and #?rakudo-parrot | |||
japhb_ | [Coke], I like that concept (though '-jvm-only' as an exact syntax is a tad limiting, if and when we get to 3 backend VMs) ... certainly we should put very gentle pressure on to keep Rakudo mostly self-compatible | ||
pmichaud | checking | 18:10 | |
japhb_ | Ah, pmichaud responded while I was distracted | ||
pmichaud | oops, looks like fudgeall and fudge only handle one impl. | 18:12 | |
anyway, I'd be in favor of generalizing fudge/fudgeall to accept multiple impl specifiers on their command lines | |||
jnthn | Sounds sane. | 18:15 | |
pmichaud | or, for real ickiness, treat whatever follows #? as a regex to be matched :-P | ||
then you could have #?rakudoparrot, #?rakudojvm, and #?rakudo.* | 18:16 | ||
18:16
DreamingInCode joined
|
|||
Tene | pmichaud: ITYM as a dns TXT record holding a regex | 18:16 | |
jnthn | I agree we should be aiming for mostly self-compatible; I'm also aware that as we work backends towards that the spectests that are passing could be valuable. | ||
(For knowing we aren't taking steps back as well as steps forward.) | 18:17 | ||
diakopter | (that would hurt?) | ||
pmichaud | I kind of like the regex approach, now that I think about it. | 18:18 | |
jnthn | pmichaud: It's evil :) | ||
pmichaud: But maybe good evil :D | |||
pmichaud | #?rakudo(parrot|mono) skip "but it works on rakudojvm" | ||
#?rakudo(?!jvm) skip "every platform but jvm" | 18:19 | ||
FROGGS | #?rakudo(.+o.+) skip "but it works on rakudojvm" | ||
:o) | |||
[Coke] | pmichaud: +1 from me. | 18:20 | |
FROGGS: I will remove your commit access. :P | |||
FROGGS | hehe | ||
but ya, feels sane | |||
(both the pattern and removing my commit access :P) | |||
[Coke] | I would make it end with an implicit .* | 18:21 | |
pmichaud | might want to be sure to use the hyphen, then -- i.e., #?rakudo #?rakudo-parrot and #?rakudo-jvm | 18:22 | |
the hyphen makes a good separator | |||
[Coke] | so that you can say #?rakudo and have it mean all rakudoshudo. | ||
pmichaud | exactly. | ||
looks like fudge:134 is the section that wants changing to use a regex match instead of eq | 18:24 | ||
18:28
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
masak | today's autopun: "As I understand it, the claim is that the less you use Homeopathy, the better it works. Sounds plausible to me." | 18:32 | |
-- David Deutsch | |||
cognominal | jnthn++ # great blogging | ||
timotimo | hehe. | 18:33 | |
pmichaud tweets. | 18:43 | ||
moritz checks planetsix | |||
jnthn++ # very nice blog post, and even better news :-)= | 18:46 | ||
timotimo | so, uh ... perl6 sockets ... what blocks us? | 18:47 | |
why are there dragons there in the spec? | |||
moritz | because the spec hasn't been undragonified yet | 18:48 | |
timotimo | hm. | ||
moritz | basically the old version of the IO spec contained so much bs, that I declared all the parts that I hadn't sanitized as "here be dragons" | 18:50 | |
jnthn | .oO( I'm thinking he's not talking about bounded serialization... ) |
||
moritz | if you review it, and find it to be sane, and loosly matches what's implemented, feel free to remove (or move) that marker | 18:51 | |
masak | moritz++ # dragon slayer | ||
timotimo | well, there's not much in it yet. a readline method for instance would be neat | 18:55 | |
moritz | readline is called get | 18:56 | |
timotimo | oh, that's nice :) | ||
it would be good to have the spec say if the line terminators are returned, too | |||
No such method 'get' for invocant of type 'IO::Socket' - it's called get, but it isn't there yet :( | 18:57 | ||
moritz | IO::Socket::INET has a method get | ||
and I'm sure it can't be too broken, because Net::IRC::Bot and thus ilbot6 use it | 18:58 | ||
timotimo | oooh, i need ::INET, duh | 18:59 | |
19:09
SamuraiJack_ joined
|
|||
timotimo | could it be that get stops too early? | 19:09 | |
19:12
raiph joined,
SamuraiJack left
19:14
SamuraiJack_ left
19:17
lizmat joined
|
|||
timotimo | it seems get stops before a newline actually happens, which is very unfortunate. my very own get implementation is so slow, that my client gets shot down by the server before it can even finish reading the message | 19:18 | |
19:19
domidumont left
19:20
frdmn left,
frdmn joined
19:21
frd|afk joined
|
|||
lizmat | hello #perl6 from the evening before the DPW | 19:23 | |
masak | hello lizmat | ||
moritz idly wonders if lizmat strives for a world record in attending Perl conferences and workshops | 19:25 | ||
19:25
frdmn left
|
|||
lizmat | not really, as we will miss the French Perl workshop this year | 19:25 | |
:-) | |||
moritz | :-) | 19:26 | |
I guess D is Dutch here? | |||
lizmat | still, Perl Oasis, FOSDEM, Israeli PW, GPW, SPW, QA Hackathon, DPW, PLPW, YAPC::NA, OSCON, YAPC::EU, YAPC::Asia, LPW | ||
is the planning so far | 19:27 | ||
yes | |||
19:27
berekuk joined
|
|||
lizmat | I think rafl did more last year | 19:27 | |
oh, and the monthly NL.pm and Niederrhein.pm meetings :-) | 19:28 | ||
cognominal | Perl Oasis? | ||
lizmat | Florida Perl Workshop | 19:29 | |
cognominal | in Dubai? :) | ||
lizmat | in Orlando | ||
cognominal | we will miss you at fpw | ||
lizmat | yes, but it is wedged between YAPC::NA and OSCON | 19:30 | |
rafl | Pretty sure I did fewer conferences than that last year | ||
The most YAPCs a year record is all mine, though, I believe ;-) | 19:31 | ||
19:32
kaleem_ left
19:33
jdv79 joined
|
|||
jdv79 | jnthn: saw your update re nqp on jvm - nice | 19:33 | |
lizmat | argh, much less wedged than I thought | 19:34 | |
suddenly the chance that we'll be at the FPW has significantly increased | 19:35 | ||
timotimo | do i talk to the parrot people about this? | ||
moritz | timotimo: make sure to try on a recent parrot first | 19:37 | |
timotimo | 5.2.0-devel, i'll retry with 5.3.0 now. | ||
19:39
ggoebel joined
|
|||
jnthn | jdv79: Yes, things are moving along :) | 19:41 | |
19:41
labster joined
|
|||
timotimo | couldn't build a parrot from master, though | 19:41 | |
what? ./include/parrot/platform_interface.h:212:59: error: expected declaration specifiers or ‘...’ before ‘Parrot_Stat_Buf’ | 19:44 | ||
for the latest RELEASE as well as master | |||
oh, i accidentally pasted something in there and it didn't get cleaned or re-made | 19:46 | ||
tadzik | good evening #perl6 | 19:56 | |
lizmat | evening tadzik! | 19:57 | |
jnthn | o/ tadzik | 19:58 | |
japhb_ | o/ | ||
tadzik | colomon | do install failures kill pandabrew's rebootstrap? | ||
colomon: I suppose... do they? :) | |||
japhb_ | timotimo: HTTP::Client reveals some problems with the Socket API (it has bugs of its own too though) | 20:00 | |
tadzik | first bicycle day today. Feels good | ||
masak | tadzik! \o/ | ||
tadzik | \o/ | ||
and a new monitor at home. Choices, choices... | |||
20:01
TreyRust joined,
frd|afk left
20:02
frdmn joined
|
|||
japhb_ | timotimo, for instance, trying to fetch the entirety of a large web page will reveal difficulty reaching (and discovering) end of input. And the socket code does evil things to the network buffers when it comes to handling broken encoded character sequences | 20:02 | |
timotimo | same problem on parrot/master | ||
japhb_ | (Note BTW that when testing, the most annoying bug in HTTP::Client is that if there is no content in the outgoing request (headers only), it will forget to put an extra CRLF after the header block -- which will make some HTTP servers error or hang forever. It's an easy fix though, just moving a line.) | 20:04 | |
timotimo | :( | ||
japhb_ | My conclusion is that the existing Rakudo socket code needs to sit down with the current Parrot socket code and a good mediator/coder to hash things out until sanity is achieved. | 20:05 | |
timotimo | may be. | 20:08 | |
japhb_ | Will there be a new Rakudo release today? | 20:11 | |
20:13
kaare_ left
|
|||
[Coke] | tadzik: OOoh, bicyle day! | 20:20 | |
did we ever scam a volunteer for this month? | |||
If not, I'll do it this evening. | |||
tadzik | [Coke]++ | 20:21 | |
masak | ok, then I'll do June. | ||
dalek | kudo/nom: 203e3aa | masak++ | docs/release_guide.pod: sign up Coke and me |
20:22 | |
20:27
pupoque left
20:28
frd|afk joined
20:32
frdmn left,
rindolf left
|
|||
sorear | [Coke]: sounds like a great idea | 20:36 | |
timotimo | [Coke]: neat! :) | ||
japhb_ | sorear, which of [Coke]'s comments were you responding to? nqp-mono? | 20:37 | |
sorear | japhb_: yes | ||
moritz wants nqp in stereo | |||
sorear | I don't read the whole backlog, just the "/lastlog sorear" parts | 20:38 | |
FROGGS | nqp-5.1 | ||
not-quiet-dolby surround | |||
timotimo | :) | 20:46 | |
mathw | o/ | 20:47 | |
dalek | p/qrpa_experiment: 7d9d1ec | (Tobias Leich)++ | src/ (10 files): FROGGS++ did all of the remaining things, like stage0 |
20:50 | |
20:54
rindolf joined
|
|||
masak | mathw! \o/ | 20:57 | |
mathw: long time no see. :) | |||
ooh, nice. didn't know about /lastlog before. sorear++ | 20:58 | ||
shachaf | masak: Also useful: /last -clear | 20:59 | |
mathw | hi masak | ||
masak | shachaf: ooh, yes. I see what you mean. :) | 21:00 | |
mathw | i thought I'd come by and say hello | 21:01 | |
masak | glad that you did :) | 21:02 | |
mathw | I'm trying to decide what to charge per hour for some consulting work with my old job, and it's harder than I thought. I obviously don't want to undervalue my skills but I also really don't want to rip them off. | ||
timotimo | with froggs and mine work of welcoming qrpa to nqp and rakudo, my dumb benchmark now shows that list.join is faster than a naive loop with $foo ~= $_ for @pieces | ||
mathw | \o/ | ||
Tene | qrpa? | 21:03 | |
felher | Good night, good people. | ||
diakopter | o/ | ||
lee_ | timotimo: thats exciting, any chance of it being merged? :D | ||
Tene | mathw: Don't worry about ripping them off; they'll make a decision on whether it's worth it to them or not. Charge them fairly for your time. | 21:04 | |
masak | Tene: Quantum <mumble> PMC Array. | ||
oh! Resizable. | |||
timotimo | lee_: can't tell. others would have to do that. also, there's now stolen code from parrot to implement the .sort | ||
mathw | Tene: okay, so what are gorgeous and talented programmers charging for random consulting these days? :) | 21:06 | |
masak: there are quantum data structures now? Do I need to buy another new computer or can I get a quantum USB 3 stick? | |||
Tene | mathw: What rate would you be willing to pay for an extra few hours in a day? | 21:07 | |
Add some extra on top of that for taxes, etc. | |||
21:07
skids left
|
|||
Tene | It depends on a lot of things, realistically; living costs in your area, what other work you have, etc. | 21:07 | |
tadzik | timotimo: yay! What was wrong with the morning patches? | 21:08 | |
masak | mathw: it's not the data structure that's quantum. it's pmichaud. we upgraded him to an entangled form of existence. | ||
mathw | does that mean he's now capable of solving compiler problems in multiple universes simultaneously? | 21:09 | |
tadzik | he's _now_ capable? | ||
mathw | I'm struggling to think of how pmichaud could become more awesome | ||
Also struggling to stay awake, so goodnight all | 21:11 | ||
mst | cyberisation. | ||
masak | there are hypotheses that state that pmichaud was always quantum, but the rest of us weren't at a suffuciently high plane of existence to understand it until recently. | 21:12 | |
mathw: 'night | |||
dream of being awesome in multiple universes simultaneously. | 21:13 | ||
sorear | masak: there is some talk about quantum radix trees on page 7 of eprint.iacr.org/2013/199.pdf | 21:14 | |
timotimo | tadzik: i can't tell ;) | 21:17 | |
masak | sorear: nice. | 21:20 | |
masak doesn't feel at a sufficiently high plane of existence to understand that paper, though | |||
I'm still enjoying arxiv.org/pdf/1302.6946.pdf in my copious spare time, though. | 21:21 | ||
exactly what I needed to get deeper into that whole cat theory thing. | |||
21:26
DreamingInCode left
21:28
spider-mario left,
bluescreen10 left
21:29
bluescreen10 joined
21:44
rindolf left
|
|||
masak | 'night, #perl6 | 21:46 | |
lizmat | night masak! | ||
japhb_ | o/ | 21:48 | |
21:52
kurahaupo joined
21:55
pupoque joined
21:57
DreamingInCode joined
|
|||
timotimo | will adding "ratchet" to a rule cause speedups even if it wouldn't have backtracked any way? | 22:16 | |
22:16
lizmat left
|
|||
sorear | yes | 22:16 | |
adding ratchet tells perl that it's ok to not store backtrack points | 22:17 | ||
also, a lot of stuff is specially optimized for the ratchet case | |||
22:18
lizmat joined
22:19
lizmat left,
lizmat joined
|
|||
timotimo | that's nice | 22:20 | |
maybe i can add more ratchets to the json tiny grammar without breaking it | |||
22:27
snuffles joined
|
|||
timotimo | i'm feeling tempted to write a one-off parser for this very special json format, just so i get a little bit of performance out of it :( | 22:29 | |
22:29
skids joined
|
|||
FROGGS | there is no libjson which can be used? | 22:31 | |
timotimo | hm. | ||
i can totally try that. | 22:33 | ||
sorear | you'll lose 200% of the performance you gain when you try to convert the native lib objects into Rakudo objects | 22:35 | |
you need a C JSON library which directly constructs Rakudo objects | 22:36 | ||
niecza has a C# JSON parser that's tightly integrated with the runtime, it's an order of magnitude faster than anything you could make with grammars | |||
timotimo | sorear: all i want is not to take 1 second to parse a few lines of json. | 22:37 | |
sorear | n: use JSYNC; say from-json('{"foo":[1,2,3]}') | 22:39 | |
camelia | niecza v24-37-gf9c8fc2: OUTPUT«{"foo" => [1e0, 2e0, 3e0]}» | ||
timotimo | hm. does niecza have IO::Socket::INET? | ||
lizmat | r: say 1e0 | ||
camelia | rakudo 203e3a: OUTPUT«1» | ||
timotimo | kinda-sorta-working? | ||
sorear | n: use JSYNC; my $t1 = times[0]; say times[0]-$t1 say from-json('[]') | ||
timotimo | and kinda-sorta like rakudo does? | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===Two terms in a row at /tmp/9tSKUKXjWp line 1:------> C; my $t1 = times[0]; say times[0]-$t1 ⏏say from-json('[]')Parse failed» | ||
sorear | n: use JSYNC; my $t1 = times[0]; say times[0]-$t1; say from-json('[]') | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«0» | ||
sorear | timotimo: yes and yes | ||
n: use JSYNC; my $t1 = times[0]; '[' x 1e6; say times[0]-$t1; say from-json('[]') | |||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«0» | ||
timotimo | in that case, i have found out how to make my stuff fast. | ||
sorear | n: use JSYNC; my $t1 = times[0]; '[' x 1e8; say times[0]-$t1; say from-json('[]') | 22:40 | |
japhb_ | timotimo, have you been able to test the QRPA change in Rakudo, or just NQP? | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(timeout)» | ||
FROGGS | japhb_: rakudo as well | ||
japhb_ | So ... did that make any difference to Grammar parsing speed? | ||
FROGGS | no | ||
ó.ò | |||
japhb_ | (I know he was testing with join) | ||
sorear | n: use JSYNC; say times; from-json(('[' x 10000) ~ (']' x 10000)); say times; | 22:41 | |
japhb_ is somewhat surprised by that, unless QRegex was already using QRPA | |||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«1.300081 0.064004 1.300081 0.0640041.308081 0.064004 1.308081 0.064004» | ||
sorear | n: use JSYNC; say times; from-json(('[' x 1e5) ~ (']' x 1e5)); say times; | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«1.480092 0.036002 1.480092 0.0360021.6081 0.040002 1.6081 0.040002» | ||
sorear | n: use JSYNC; say times; from-json(('[' x 1e7) ~ (']' x 1e7)); say times; | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(timeout)» | ||
FROGGS | ENOTENOUGHMEMORY | 22:42 | |
sorear | n: use JSYNC; say times; from-json(('[' x 2e6) ~ (']' x 2e6)); say times; | ||
timotimo | japhb_: in rakudo. | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(timeout)5.880367 0.088005 5.880367 0.088005Stacktrace: at (wrapper managed-to-native) object.__icall_wrapper_mono_object_new_fast (intptr) <0xffffffff> at JsyncReader.GetFromJson (bool) <0x0003f> at JsyncReader.GetFromJson (bool) <0x000bb> at Js… | ||
sorear | n: use JSYNC; say times[0]; from-json(('[' x 1e6) ~ (']' x 1e6)); say times[0]; | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(timeout)3.480217Stacktrace: at (wrapper managed-to-native) object.__icall_wrapper_mono_array_new_specific (intptr,int) <0xffffffff> at JsyncReader.GetFromJson (bool) <0x00057> at JsyncReader.GetFromJson (bool) <0x000bb> at JsyncReader.GetFromJso… | ||
diakopter | sorear: stack overflow? | 22:43 | |
timotimo | sorear: i am satisfied with the performance. | ||
it takes 0.0005s instead of 1s per parse. | |||
sorear | diakopter: unchecked malloc return | ||
+ total memory ulimit | |||
timotimo | sorear: do you think putting rakudo onto the jvm will give a similar performance boost to random workloads? :| | 22:44 | |
labster | rn: class Foo is ::("Str") { }; say Foo.can('substr') | 22:45 | |
camelia | rakudo 203e3a: OUTPUT«===SORRY!==='Foo' cannot inherit from '::("Str")' because it is unknown.at /tmp/xPHkAyyzA7:1------> » | ||
..niecza v24-37-gf9c8fc2: OUTPUT«True» | |||
labster | quacks like a rakudobug. | 22:46 | |
japhb_ | Something is wrong if timotimo's case takes 2000x as long to run under Rakudo-parrot. (It's slow, sure -- but when it's more than 1.5-2 orders of magnitude, it almost always turns out to be hitting an outright performance bug, like one of the 10x or bigger improvements jnthn++ or pmichaud++ has found in the past.) | ||
22:46
lizmat left
22:47
lizmat joined
|
|||
sorear | timotimo: i think you'll get half of the perfomance boost that way | 22:47 | |
timotimo | that's excellent | ||
that's already a metric shit-ton | |||
sorear | historically I've been much more prone to say "this needs to go into C# to be fast" while jnthn has been focusing efforts on the optimizer | 22:48 | |
which is probably going to pay off more in the long run, but less so in the past/present | 22:49 | ||
22:52
bluescreen10 left
22:53
shinobicl left,
frd|afk left
|
|||
lizmat | rn: say 10.WHAT; say 1e1.WHAT | 22:55 | |
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(Int)Num()» | ||
..rakudo 203e3a: OUTPUT«(Int)(Num)» | |||
lizmat wonders why 1e1 is a Num and not an Int? | 22:56 | ||
japhb_ | lizmat, using scientific notation explicitly requests Num treatment | 22:57 | |
as per spec | |||
lizmat | ah, ok, must have missed that | 22:58 | |
japhb_ | Otherwise you'd have no way (other than Num.new()) to specify a Num that happened to be a rational or integer value | 22:59 | |
sorear | especially since *all* (finite?) Num values are rational | 23:01 | |
23:01
xinming left
|
|||
lizmat | S02:3307 seems to imply that if a number with e notation can be fit in an Int, it should | 23:02 | |
23:02
xinming joined
|
|||
japhb_ | sorear, perhaps I should have said "happened to fit into a Rat" (as opposed to a FatRat, which must be explicitly requested). | 23:03 | |
23:06
pupoque left
23:10
dovahkin joined
|
|||
lue | lizmat: what you referenced seems to be talking about the previous paragraph, which has nothing to do (directly) with 'e' | 23:11 | |
lizmat | it has to do with all string to number converters… | 23:12 | |
but I was just wondering, nothing to see here :) | 23:13 | ||
lue | [ besides, unless you're a scientist, you're unlikely to use 'e' for simple integers :) ] | 23:14 | |
lizmat | very true | ||
sorear | ultimately, floating point *is* scientific notation | 23:31 | |
when a scientist writes 2.300e6, the semantics are that everything after the second 0 is unknown | |||
this dovetails nicely with floats, though it would be better if we explicitly marked precision | 23:32 | ||
jnthn | sleep; 'night, #perl6 | 23:36 | |
lizmat | gnight jnthn! | 23:37 | |
dalek | : 50cdb0f | (Tobias Leich)++ | Makefile: make it installable via `make install`, even if the locations are not ideal |
23:40 | |
FROGGS | gnight all | ||
japhb_ | o/ | 23:41 | |
23:44
berekuk left
23:50
berekuk joined
23:51
xinming left
|
|||
lizmat | night #perl6! | 23:53 | |
labster | night lizmat | ||
23:55
lizmat left,
xinming joined
|