»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:06
thou left
00:11
virtualsue left
00:12
avuserow left
|
|||
timotimo | weird. | 00:14 | |
even with panda it's sporadic rather than happening every time | |||
00:22
kuimacro left
00:24
kuimacro joined
00:37
Alina-malina left
00:40
Alina-malina joined
00:44
pierrot left
00:55
Alina-malina left
00:59
bjz joined
01:00
raiph joined
01:01
ghostlines left
01:02
j4janicej left
01:03
Alula left
01:06
dayangkun joined
01:09
j4jackj joined
01:11
avuserow joined
01:15
j4jackj is now known as j4janicej
01:17
Alina-malina joined
01:20
tinyblak joined
01:28
tinyblak left
01:30
tinyblak joined
01:34
tinyblak left
01:35
xenoterracide_ joined
01:45
SevenWolf left
01:49
colomon left
01:56
tinyblak joined
01:57
colomon joined
02:02
m_athias left
02:03
raiph left
02:10
m_athias joined
02:15
leont left
02:24
xenoterracide_ left
02:27
xenoterracide_ joined
02:30
chenryn joined
02:34
xinming left
02:35
xinming joined
02:46
xenoterracide_ left,
kaleem joined
02:55
Alula joined
03:00
pierrot joined
03:02
panchiniak left
03:14
dayangkun left
03:15
bjz left
03:25
Mso150 joined
03:31
gfldex joined
03:32
kaleem left
03:41
bjz joined
|
|||
dalek | ecs: 845eb79 | (Lucas Buchala)++ | S02-bits.pod: Typos and POD fixes in S02 |
03:58 | |
04:01
rmgk_ joined,
rmgk is now known as Guest21717,
Guest21717 left,
rmgk_ is now known as rmgk
04:11
yeahnoob joined
04:20
xenoterracide joined
04:25
thou joined
04:28
gfldex left
04:36
thou left
04:44
chenryn left
05:00
chenryn joined
05:15
xenoterracide left
05:25
kaare_ joined
05:29
raiph joined
05:47
Ben_Goldberg joined,
BenGoldberg left
05:48
Ben_Goldberg is now known as BenGoldberg
06:05
yeahnoob left
06:12
yeahnoob joined
06:13
kaleem joined
06:16
BenGoldberg left
06:19
yeahnoob left
06:32
yeahnoob joined
|
|||
tony-o | failing build on moar - anyone else having trouble with a fresh build? | 06:33 | |
06:34
jfredett left
07:04
dayangkun joined
07:10
rurban joined
07:13
dayangkun left
|
|||
masak | mornin', #perl6 | 07:22 | |
tony-o: trying -- hold on. | |||
07:23
yeahnoob left
07:25
denis_boyun_ joined
|
|||
masak | tony-o: built just fine here. | 07:25 | |
tony-o: maybe do a `git clean -xdf` and try again? | 07:26 | ||
07:31
rurban_phone joined
07:34
rurban left
07:37
yeahnoob joined
|
|||
dalek | Iish: 23711dd | masak++ | t/99-common.pl6: fix typo |
07:44 | |
07:44
virtualsue joined
07:46
chenryn left
|
|||
moritz | \o | 07:57 | |
masak | o/ | ||
masak is writing a SYNOPSIS section for DBIish | 07:58 | ||
07:58
pecastro_ left
|
|||
moritz | ++masak | 07:59 | |
07:59
baest_ is now known as baest
|
|||
masak | # Connect failed with error Cannot locate native library 'libsqlite3.so' | 07:59 | |
...this is after I did `sudo apt-get install sqlite3`. | |||
what am I missing? | |||
I suppose it's NativeCall that expects to find libsqlite3.so in a certain place. but where? | 08:01 | ||
08:02
FROGGS joined
|
|||
masak | doing a `locate libsqlite3.so` turns up 5 hits. | 08:02 | |
08:03
ptc_p6 joined
|
|||
moritz | masak: hopefully somewhere where ld finds it | 08:04 | |
masak | ok, backing up a bit. | ||
I'm on a sensible Linux system. I want to use DBIish with SQLite. what do I do? | 08:05 | ||
the DBIish project doesn't seem to contain instructions for how to get started. I'd love to be proven wrong on this. | |||
assume I'm good at following instructions, but not an expert at things that end with .so | 08:06 | ||
moritz | TBH, I don't know | 08:08 | |
last time I tried it, it simply worked | |||
masak | I skimmed `man ld`. now I'm more confused. | ||
bonsaikitten | masak: by default things should be in the paths defined in /etc/ld.so.conf | ||
that's where the dynamic linker will search | |||
moritz | so I guess I installed libsqlite3-dev | 08:09 | |
bonsaikitten | if you have it in divergent locations you could use LD_PRELOAD to hack around it | ||
masak | ok, my /etc/ld.so.conf includes another file, /etc/ld.so.conf.d/i686-linux-gnu.conf, which mentions /lib/i386-linux-gnu, in which I *do* have a file libsqlite3.so.0 | 08:11 | |
so by that measure, it oughta work. | |||
masak tries installing libsqlite3-dev | |||
that did it. moritz++ | |||
bonsaikitten | actually ld.so.conf is only the human-readable config, 'ldconfig' command creates a ld.so.cache that is a more efficient binary format | 08:12 | |
so any updates will only become 'visible' after running ldconfig (which package managers usually trigger themselves) | 08:13 | ||
moritz | masak: if you're on a 64 bit linux, the /lib/i386-linux-gnu is probably a directory for 32bit libs, or something | ||
08:14
ghostlines joined
08:19
raiph left
|
|||
dalek | Iish: fb833c6 | masak++ | / (2 files): introduce a SYNOPSIS A good synopsis helps someone get started by providing a likely code template that can be modified and built upon. The README.md had no SYNOPSIS, and the main module file had one that targets developers of the module, not users. |
08:21 | |
masak | it's fun to play the role of "enlightened end user", who goes ahead and contributes an improvement rather than rant and rave about its absence. | 08:26 | |
:> | |||
08:27
rindolf joined
|
|||
moritz | masak++ | 08:28 | |
bonsaikitten | with some upstreams proper ranting is needed | 08:31 | |
"You're doing it wrong" as a reply to bugreports can be a bit *hnyeargh!!1* | |||
sadly the perl6 ecosystem is too functional for such deviations ;) | |||
08:56
telex left
08:58
telex joined,
tinyblak left
08:59
tinyblak joined
09:00
tinyblak_ joined
09:02
darutoko joined
09:03
tinyblak left
09:04
rurban joined
09:07
rurban_phone left
09:10
Mso150_n joined
09:11
Mso150 left
09:14
yeahnoob left,
kjs_ joined
09:18
virtualsue left,
virtualsue joined
|
|||
FROGGS | nqp: say("foo" ~~ /<+alpha+[\< \[ \« ]>>/) | 09:22 | |
camelia | nqp-moarvm: OUTPUT«Confused at line 2, near "say(\"foo\" " at gen/moar/stage2/NQPHLL.nqp:481 (/home/camelia/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105) from gen/moar/stage2/NQP.nqp:913 (/home/camelia/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872)…» | ||
..nqp-jvm: OUTPUT«(signal ABRT)» | |||
..nqp-parrot: OUTPUT«Confused at line 2, near "say(\"foo\" "current instr.: 'panic' pc 15673 (gen/parrot/stage2/NQPHLL.pir:5731) (gen/parrot/stage2/NQPHLL.nqp:425)» | |||
09:23
virtualsue left
|
|||
FROGGS | nqp: say(":foo" ~~ /<?before ':' <+alpha+[\< \[ \« ]>> ..../) | 09:23 | |
camelia | nqp-jvm: OUTPUT«(signal ABRT)» | ||
..nqp-{moarvm,parrot}: OUTPUT«:foo» | |||
FROGGS | with latest parrot: | 09:24 | |
$ nqp-p -e 'say(":foo" ~~ /<?before ":" <+alpha+[\< \[ \« ]>> ..../)' | |||
Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "+[\\< \\[ \\\x{ab}" | |||
I am adding a nqp test now | |||
moritz | nqp-p: /<?before ":" <+alpha+[\< \[ \« ]>>/ | 09:25 | |
camelia | ( no output ) | ||
FROGGS | yes, parrot 6.8.0 does that correctly | 09:27 | |
nqp-p -e 'say("foo" ~~ /<-[\«]>/)' | 09:29 | ||
Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<-[\\\x{ab}]>/)" | |||
nqp-p -e 'say("«" ~~ /<[\«]>/)' | |||
Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<[\\\x{ab}]>/)" | |||
nqp-p -e 'say("«" ~~ /<[«]>/)' | 09:30 | ||
« | |||
nqp: say("\\«" ~~ /<[\«]>+/) | 09:34 | ||
camelia | nqp-jvm: OUTPUT«(signal ABRT)» | ||
..nqp-{moarvm,parrot}: OUTPUT««» | |||
masak | bonsaikitten: I think our biggest weakness in the Perl 6 community is that things get abandoned. | ||
rurban | That's probably tripping over a wrong .lex "" | ||
masak | bonsaikitten: few people spread over many modules. | 09:35 | |
rurban | So a nqp problem | ||
FROGGS | it should also translate to <[\x{ab}]>, not <[\\\x{ab}]> | 09:36 | |
rurban: is the .lex bug already fixed? | 09:37 | ||
rurban | Not in parrot yet. Will be major imcc string handling rewrite | 09:38 | |
09:38
kjs_ left
|
|||
rurban | I only mentioned the problem and workaround in the change log and docs | 09:39 | |
FROGGS | then I wonder how something should 'trip over a wrong .lex ""' as you say | ||
rurban | I guess it's the new nqp, not the new parrot | ||
FROGGS | hmmm, I don't think so, but I can easily check that | 09:40 | |
09:40
novice314 joined
09:41
tinyblak joined
|
|||
rurban | Which puts more statements into blocks, hence the regex is now a lex. It worked fine for a global | 09:41 | |
FROGGS | wait, it cant be a new nqp, because the nqp here on this channel is new, but uses parrot 6.8.0 | ||
and it passes here | |||
nqp-p: say("«" ~~ /<[\«]>/) | 09:42 | ||
camelia | nqp-parrot: OUTPUT««» | ||
09:42
fhelmberger joined
|
|||
FROGGS | but I'll build nqp-2010.09 on parrot 6.9.0 now | 09:42 | |
09:43
tinyblak_ left
|
|||
FROGGS | 2014.09* | 09:43 | |
novice314 | perl6: 1,2,3 >>~>>';' | 09:44 | |
camelia | ( no output ) | ||
rurban | wait. Getting better irc client | ||
FROGGS | m: say 1,2,3 >>~>>';' | ||
camelia | rakudo-moar 315ec6: OUTPUT«123;» | ||
09:44
rurban left
|
|||
FROGGS | novice314: ^^ | 09:44 | |
09:45
rurban joined
|
|||
FROGGS | m: say (1,2,3) >>~>>';' | 09:45 | |
camelia | rakudo-moar 315ec6: OUTPUT«1; 2; 3;» | ||
rurban | see github.com/parrot/parrot/issues/1095 | 09:47 | |
novice314 | m: say ( (1,2,3) >>~>>';' ) Z (4,5,6,7) | ||
camelia | rakudo-moar 315ec6: OUTPUT«1; 4 2; 5 3; 6» | ||
FROGGS | nqp-p -e 'say("«" ~~ /<[\«]>/)' | 09:48 | |
Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<[\\\x{ab}]>/)" | |||
nqp-p --version | |||
This is nqp version 2014.09 built on parrot 6.9.0 revision RELEASE_6_9_0-20-g9e8c7f1 | |||
rurban: see ^^ | |||
rurban: shall I use an older nqp? | |||
so it really looks like something happened in parrot post 6.8.0 that introduces this problem | 09:49 | ||
(which prevents rakudo from building) | 09:50 | ||
masak | m: say (((1,2,3) >>~>>';') Z (4,5,6,7)).perl | ||
camelia | rakudo-moar 315ec6: OUTPUT«(("1;", 4), ("2;", 5), ("3;", 6)).list» | ||
novice314 | m: say ( (1,2,3) >>~>>';' ) Z~ (4,5,6,7) | ||
camelia | rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6» | ||
masak | novice314: in Z, shortest side wins. | ||
FROGGS | like a zipper | ||
09:58
kuimacro left
|
|||
FROGGS | hmm, I do not remember putting debug statements in nqp or parrot, but: | 10:01 | |
C:\nqp>nqp-p --version | |||
win32 | |||
This is nqp version 2014.08-36-gf84a159 built on parrot 6.7.0 revision RELEASE_6_7_0 | |||
rurban: did you do that by any chance? | 10:02 | ||
novice314 | m: say (1,2,3) >>~>>';'<< (4,5,6,7) | 10:07 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/yJktnnGBDYUnable to parse quote-words subscript; couldn't find right double-angle quoteat /tmp/yJktnnGBDY:1------> say (1,2,3) >>~>>';'<< (4,5,6,7)⏏<EOL> expecti…» | ||
novice314 | m: say ((1,2,3) >>~>>';')>>~<< (4,5,6,7) | 10:08 | |
camelia | rakudo-moar 315ec6: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<~> are not of the same lengthleft: 3 elements, right: 4 elements in sub hyper at src/gen/m-CORE.setting:19157 in block at src/gen/m-CORE.setting:19137 in block <unit> at /tmp/nnlDQTOn7z:1…» | ||
novice314 | m: say ((1,2,3) >>~>>';')>>~<< (4,5,6) | 10:09 | |
camelia | rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6» | ||
FROGGS | rurban: parrot 6.8.0 spits out 'index $I11, ucs4:"\x{ab}", $S11', where 6.9.0 probably spits out two extra backslashes | ||
masak | novice314: ...you can also download Rakudo and run it locally, on your own machine. ;) | ||
FROGGS++ | 10:10 | ||
10:10
kurahaupo joined,
kurahaupo left
|
|||
novice314 | i havn't right machine now, only ipad )) | 10:10 | |
10:11
kurahaupo joined
10:12
kjs_ joined
10:13
rurban left
|
|||
novice314 | m: say (1,2,3) >>~>>';' >>~<< (4,5,6) | 10:13 | |
camelia | rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6» | ||
lizmat | good *, #perl6! | ||
I was wondering, do we have any quick way to compare 2 strings and find out how many characters they are the same from the beginning ? | |||
peteretep | You want the count of the longest mutual head? | 10:14 | |
lizmat | yup | ||
10:14
chenryn joined
|
|||
lizmat | m: say "foo" ~^ "foobar" # somehow with this | 10:15 | |
camelia | rakudo-moar 315ec6: OUTPUT«␀␀␀bar» | ||
novice314 | quit | ||
lizmat | goodbye novice314 | ||
10:15
novice314 left
|
|||
lizmat | I guess a quick way to get rid of nulls would also work | 10:16 | |
jnthn | m: say ('beetroot'.comb Zeq 'beer'.comb).first-index(!*) | 10:18 | |
yoleaux | 28 Oct 2014 22:40Z <FROGGS> jnthn: that's a real life report: froggs.de/perl6/cpantesters/ (though, statically put there for review) | ||
camelia | rakudo-moar 315ec6: OUTPUT«3» | ||
yoleaux | 29 Oct 2014 00:22Z <japhb> jnthn: Finally a short stress test for Rakudo threading that fails many different ways, relatively quickly: irclog.perlgeek.de/perl6/2014-10-29#i_9579979 | ||
FROGGS | hi jnthn! | ||
10:18
pecastro joined
|
|||
jnthn | o/ | 10:18 | |
lizmat | jnthn \o | ||
I was hoping to be able to get something lower level :-) | 10:19 | ||
jnthn | lizmat: Oh...well if I want it fast I'd use nqp::ordat or so to pull out char codes in a loop and increment a native until I failed :) | 10:20 | |
Well, actually the thing you're incrementing is also the input to ordat :) | |||
lizmat | yeah, I figured something like that | ||
jnthn | The above is a cute way, thogh. | 10:21 | |
lizmat | the ~^ you mean ? | ||
jnthn | No, what I wrote. | 10:22 | |
10:22
Isp-sec joined
|
|||
lizmat | ah, ok :-) yeah, true, !* :-) | 10:23 | |
jnthn | The ~^ one sufers from being O(input lenght) rather than O(prefix length) | ||
And yes, I CAN totally abuse the big O 'cus I'm on vacation still :P | |||
FROGGS++ # cpan da testers | 10:24 | ||
(And others who've contributed too) | |||
10:24
virtualsue joined
|
|||
jnthn | Anyways, I'm heading home at the weekend, so will be more active here again from next week. :) | 10:30 | |
lizmat hopes jnthn has been able to have a good time away from it all :-) | |||
jnthn | Yes. Not always been so lucky with the weather, but still it's a good time down here :) | 10:31 | |
10:32
tinyblak_ joined
|
|||
jnthn | Also, it's very pretty :) | 10:33 | |
10:35
tinyblak left
10:39
dayangkun joined
10:41
rurban joined
|
|||
masak | m: say "foo/bar/baz.txt".IO.basename | 10:42 | |
camelia | rakudo-moar 315ec6: OUTPUT«baz.txt» | ||
lizmat | but what if the current dir is "foo" ? | 10:43 | |
masak | then... the basename of the IO::Path remains the same, because it's independent of the directory components...? | 10:48 | |
10:49
cognominal joined
|
|||
masak | I have "basename" as meaning "the thing after all the slashes". | 10:49 | |
lizmat | yup, and that's what basename is | ||
10:49
dayangkun left
|
|||
lizmat | it's just not what I'm looking for :-) | 10:49 | |
masak | oh, sorry. | ||
I have no idea what you were looking for :) | |||
I needed .basename, though. | |||
just now. | 10:50 | ||
lizmat | and that's there and will stay there :-) | ||
masak | ok, glad to hear it. | ||
lizmat | again, I'm not about changing the API | ||
I'm just about streamlining the underlying mess :-) | |||
sometimes things may have to change, e.g. as in the use of relative paths | 10:51 | ||
masak | *nod* | ||
I... feel like I'm falling into a bigger discussion here. | |||
lizmat | in a world where everything is async, the concept of "current directory" is even more volatile | ||
masak | I was just testing .basename so I could use it in some code. | 10:52 | |
lizmat | than it already is in a completely serial world | ||
please continue to do so :-) | |||
masak is using Perl 6 at $work, in production | 10:54 | ||
& | |||
11:05
tinyblak joined
11:07
tinyblak_ left
11:15
Mso150_n left
11:16
Mso150_n joined
11:19
Isp-sec left
11:20
TuxCM left
11:22
vendethiel- left
11:23
vendethiel joined,
Mso150_n left
11:26
TuxCM joined
11:36
rurban left
11:37
kaleem left
11:40
rurban joined
|
|||
woolfy | masak++ | 11:47 | |
12:14
leont joined
12:22
kjs_ left
12:24
kjs_ joined
|
|||
masak | I'm trying to formulate something about how I use the "cool" features of Perl 6 much less than I think I would have predicted back in 2005. | 12:29 | |
junctions, hypers, chained comparisons, metaoperators in general, even defining operators. | |||
when I *do* use them, I'm very glad they're there. | 12:30 | ||
but something like 95% of code I write is very down-to-earth and doesn't use such features. | |||
lizmat | perhaps a blog post about this is in order ? | ||
masak | on balance, I'm much more happy about bigger features like classes/roles/methods/attributes, grammars, and Perl 6's tendency to be very refactorable. | 12:31 | |
lizmat | because I think that's a very important point to make from someone in the "frontline" of using Perl6 in production | ||
masak | yes, it could easily be a blog post. | ||
we'll see :) | 12:34 | ||
12:35
kjs_ left
12:36
bartolin left
12:37
kjs_ joined
12:42
cognominal left
12:46
user3 joined
12:48
kaleem joined
|
|||
user3 | I have rakudo on Windows (3 Sept version) and Linux (parrot, 30 Aug). when I type perl6 at the command line and enter a session I can cycle through my commands with the up/down arrow keys on Windows but not on Linux. on Windows, is that a Perl 6 feature or is it just the up/down arrows mechanism of the cmd.exe command line? | 12:49 | |
moritz | user3: it's a perl 6 feature | 12:50 | |
user3: different backends use different libraries for that | 12:51 | ||
FROGGS | user3: it depends on what readline library we use on these systems | ||
on linux we can use libreadline or liblinenoise | |||
moritz | user3: for example if you use the parrot backend, you need "readline" and its development libraries installed when you configure rakudo and parrot | ||
FROGGS | user3: in case you want to build rakudo on MoarVM on linux there is an interesting option to MoarVM's configure script: | 12:53 | |
--use-readline | |||
Disable Linenoise and try to use the system version of GNU Readline | |||
instead. | |||
12:53
ptc_p6 left
12:54
ptc_p6 joined
|
|||
user3 | noted. thx | 13:00 | |
FROGGS | user3: rakudo on moarvm does the history be default | 13:01 | |
just tested | |||
user3 | I think I don't have readline's development libraries installed | 13:02 | |
13:03
guru joined,
JimmyZ joined
13:04
guru is now known as Guest51819
|
|||
JimmyZ | user3: you can try the moarvm backends, which is much better | 13:04 | |
13:04
Guest51819 is now known as ajr_
|
|||
JimmyZ | *backend | 13:04 | |
13:04
azawawi joined
|
|||
azawawi | m: say "Hello world ~$_" for 1..5; | 13:05 | |
camelia | rakudo-moar 315ec6: OUTPUT«Hello world ~1Hello world ~2Hello world ~3Hello world ~4Hello world ~5» | ||
azawawi | m: say "Hello world $_" for 1..5; | ||
camelia | rakudo-moar 315ec6: OUTPUT«Hello world 1Hello world 2Hello world 3Hello world 4Hello world 5» | ||
azawawi | m: say "Hello world {$_}" for 1..5; | ||
camelia | rakudo-moar 315ec6: OUTPUT«Hello world Hello world Hello world Hello world Hello world » | ||
azawawi | hi everyone | ||
is the above behavior by design or a bug? | |||
masak | hi azawawi | ||
it's by design, unfortunately. | 13:06 | ||
azawawi | confusing | ||
masak | m: say "Hellow world $($_)" for 1..5 | ||
camelia | rakudo-moar 315ec6: OUTPUT«Hellow world 1Hellow world 2Hellow world 3Hellow world 4Hellow world 5» | ||
masak | Hello* | ||
azawawi: every bare block has an implicit -> $_? parameter | |||
azawawi: the {$_} in side the qq string is such a bare block. | 13:07 | ||
azawawi: when it gets called (by the string interpolator), no value is passed to it | |||
inside* | |||
azawawi | so what's the closest to #{ ... } in ruby? | 13:08 | |
masak | $(), as demonstrated above. | ||
azawawi | cool... | ||
masak | alternatively, {} works fine, as long as you're not relying on $_ | ||
azawawi rewires his mind circuits | |||
masak: thx | 13:09 | ||
masak++ | |||
masak kowtows | |||
azawawi | has perl6-debug been deprecated or removed? | 13:11 | |
i.e. perl6advent.wordpress.com/2012/12/0...-debugger/ | |||
oh perl6-debug-m | 13:12 | ||
interesting i need panda install Debugger::UI::CommandLine to use it | 13:14 | ||
colomon | right | 13:15 | |
azawawi | it is included in rakudo star right? | 13:16 | |
colomon has no idea | 13:17 | ||
azawawi thinks no rakudo 2014.10 ? | |||
JimmyZ | m: $_ = 'hello world'; say $($($_)) | 13:18 | |
camelia | rakudo-moar 315ec6: OUTPUT«hello world» | ||
JimmyZ doesn't know what $() is .. | |||
13:18
tinyblak left,
Mouq joined
13:19
tinyblak joined
|
|||
masak | JimmyZ: well, (a) first off, it starts with a '$' so it interpolates | 13:19 | |
(b) secondly, what it does is take a value and put it in item context, just like .item does | |||
Mouq | m: .say for $([1, 2, 3]); .say for @([1, 2, 3]) | 13:20 | |
camelia | rakudo-moar 315ec6: OUTPUT«1 2 3123» | ||
JimmyZ | something like my $ = xxx? | ||
masak | guess so. | ||
Mouq | also o/ | ||
masak | \o | ||
PerlJam | JimmyZ: $() is like @() only itemy ;) | 13:21 | |
greets too | |||
13:21
user3 left
|
|||
masak | ohaio, PerlJam | 13:21 | |
JimmyZ | oh, I remember it ... I have discussed about @$xxx and $@xxxx | ||
and @%xxx , %@xxxx | |||
13:23
kaleem left,
tinyblak left
|
|||
Mouq | m: +()+@$@$@$@$@$@$@$@$@$@$@$@$$@$@(1)+() | 13:23 | |
camelia | ( no output ) | ||
masak | rules in grammars suffer from a systemic problem similar to that in cooperative multitasking: that of a "rogue" player not handing back control to its caller. | 13:24 | |
sometimes I find myself having a mental model of grammars that ignores issues related to this. | |||
PerlJam | isn't that almost a feature though? | ||
masak | for example, I sometimes expect callee rule to understand when it's time to stop parsing, because a caller rule has some kind of stopper. | 13:25 | |
I think that's part of what made me upset about strings like "foo { bar("baz") }" once upon a time, because I (partly) have such a mental model. | 13:26 | ||
PerlJam: possibly. just because I subconsciously assume that that model is in place, doesn't mean that such a model would be preferable, let alone internally consistent. | |||
13:27
kaare_ left
|
|||
PerlJam | kinda sounds like "functional grammars" where a rule { <a> <b> <c> } could be thought of as "call rule a with rules b and c as parameters" (I mean, if things worked this way, callees could "know" about stoppers) | 13:28 | |
13:28
Akagi201 joined
|
|||
masak | yes, but I don't think that's what I mean. :) | 13:29 | |
I mean, I'm not even hunting for a mechanism to do this. | 13:30 | ||
Mouq | It sounds like a grammar that does classical tokenizing, I think... | ||
masak | I just find that sometimes that's the expectation I have on my own grammars, before reality sets in. | ||
Mouq: yes, it hints at a "flat" model like that of tokenizing. | 13:31 | ||
PerlJam | masak: right, I understand. I sometimes fall into the same trap. But the way you phrased it made me think of FP | ||
masak | PerlJam: it's an interesting notion. by the way, rules in grammars can already take parameters. I don't tend to use that much, but some people have. | ||
PerlJam | (of course, saying "callee" in my head sounded more like "collie" and then I was wondering how to work in a pun involving Lassie ... but maybe I'm sharing too much ;) | 13:33 | |
Mouq | Most of the time it's easier to use a dynamic var than parameters even if the var is only being set from the callee, since it makes it eaiser to refactor and you don't have to worry so much about how deeply nested a parameter will need to be carried | ||
masak | PerlJam: I think your pun fell down a well. :P | 13:34 | |
lizmat | .oO( well put ) |
13:35 | |
PerlJam | heh | ||
masak | Mouq: dynamic variables are easier on refactoring in some sense, and harder in some sense. | ||
PerlJam | #perl6++ I can always count on you guys to make me smile :) | ||
masak | m: say "$_ guys to make PerlJam smile" for 1..200 | 13:36 | |
camelia | rakudo-moar 315ec6: OUTPUT«1 guys to make PerlJam smile2 guys to make PerlJam smile3 guys to make PerlJam smile4 guys to make PerlJam smile5 guys to make PerlJam smile6 guys to make PerlJam smile7 guys to make PerlJam smile8 guys to make PerlJam smile9 guys t…» | ||
masak .oO( groan ) | 13:37 | ||
PerlJam | .oO( 99 smiles on the channel. take one down, pass it around ... 105 smiles on the channel ) |
13:38 | |
tchrist once said something similar about linux distributions, but I think it's more apt about smiles and #perl6 | 13:39 | ||
colomon is intrigued that there were like 19 seasons of the Lassie TV show, 10+ theatrical movies, and yet the only plot point anyone ever remembers is a kid down a well. | 13:40 | ||
huf | has anyone seen any of them? | ||
PerlJam | 19 seasons? really? | ||
azawawi farabi6 + perl6-debug-m integration in progress github.com/azawawi/farabi6/issues/16 | |||
huf | frankly, i'm not even sure how i know about lassie | ||
colomon | PerlJam: 1954-1973 | ||
Mouq | m: say (grammar :: {token TOP { <baz("bar")> }; token baz ($p) { foo }}).parse("foo", :actions(class :: { method TOP($/) { make $<bar> }; method baz ($/, $p) { make $p } })).ast | 13:41 | |
camelia | rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 3 arguments but got 2 in method baz at /tmp/GbS6U67pWv:1 in any !reduce at gen/moar/stage2/QRegex.nqp:771 in any !cursor_pass at gen/moar/stage2/QRegex.nqp:732 in regex baz at /tmp/GbS6U67pWv:1 in re…» | ||
colomon | PerlJam: also books and a radio show | ||
masak | m: say "$_ guy$($_ == 1 ?? '' !! 's') to make PerlJam smile" for 1..200 | ||
camelia | rakudo-moar 315ec6: OUTPUT«1 guy to make PerlJam smile2 guys to make PerlJam smile3 guys to make PerlJam smile4 guys to make PerlJam smile5 guys to make PerlJam smile6 guys to make PerlJam smile7 guys to make PerlJam smile8 guys to make PerlJam smile9 guys to…» | ||
Mouq | Yeah, also pretty important: you need dynamic vars if you want to be able to access them from the actions. Forgot about that pretty important bit | ||
masak | colomon: I think it's a trope -- at least for me, who didn't really grow up with Lassie. I kind of associate "Lassie" <-> "kid fell down a well" | 13:42 | |
colomon: mostly, I guess, because of pop culture that made jokes using that association. | |||
Mouq | std: class :: { method foo { say "bar" }.foo | ||
camelia | std 14ad63b: OUTPUT«===SORRY!===Unable to parse block at /tmp/_hboH5y3x9 line 1:------> class :: ⏏{ method foo { say "bar" }.fooCouldn't find final '}'; gave up at /tmp/_hboH5y3x9 line 1 (EOF):------> class :: { method foo { sa…» | ||
colomon | masak: as far as I can tell, *everyone* has that association and little else | ||
Mouq | ^^ Vote to make that legal? | ||
std: sub :: { say "bar" }() # similar to | 13:43 | ||
camelia | std 14ad63b: OUTPUT«ok 00:00 139m» | ||
[Coke] is older than half you jokers, Coke has never even seen a real ep of lassie. | |||
lizmat is older still and has to confess she has | |||
Mouq | std: class :: { method foo { say "bar" }}.foo #erm | ||
camelia | std 14ad63b: OUTPUT«ok 00:01 139m» | ||
Mouq | Oh | ||
m: class :: { method foo { say "bar" }}.foo #erm | |||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/lUc6mT_uJKTwo terms in a rowat /tmp/lUc6mT_uJK:1------> class :: { method foo { say "bar" }}⏏.foo #erm expecting any of: postfix statement end…» | ||
Mouq | Okay, so just a rakudobug | 13:44 | |
geekosaur has seen them but they left little impression (except kid always getting into some kind of trouble lassie had to save him from), the well being the one that everyone remembers) | |||
PerlJam | lizmat: did you watch it voluntarily? | 13:45 | |
I remember Lassie episodes on TV when I was a kid, but I also remember seeing the dog, going "oh, that's Lassie", then changing the channel. | |||
lizmat | well, only having 3 channels narrowed down the choices a bit :-) | 13:46 | |
[Coke] is reminded by the slow test runs to ||-ize test_summary.pl again. | |||
lizmat also admits not even really remembering any plots, let alone wells | |||
PerlJam | From en.wikipedia.org/wiki/Lassie_(1954_TV_series) "Jon Provost called his autobiography Timmy's in the Well! because a well was the one place Timmy never fell into—abandoned mine shafts, off cliffs, into rivers, lakes, and quicksand, but never a well." | 13:53 | |
colomon | lizmat: we had four channels, because we also picked up a decent signal from Canada. :) | 13:54 | |
lizmat | 2NL, 1BE | ||
colomon | technically we should have also gotten three UHF channels from Detroit, but someone (probably me) put a magnet inside the TV set which completely wrecked UHF reception. | 13:57 | |
13:59
kuimacro joined
14:02
jfredett joined,
zakharyas joined
|
|||
dalek | kudo/nom: ba385fa | Mouq++ | src/Perl6/Grammar.nqp: Allow methods to be called on class definitions |
14:11 | |
ast: c5545ff | Mouq++ | S12-class/basic.t: Test that methods can be called on class definitions |
14:12 | ||
14:12
raiph joined
14:16
grondilu left,
grondilu joined
14:19
notfix is now known as xfix
|
|||
JimmyZ | std: class :: { method foo { 42 }}.foo | 14:20 | |
camelia | std 14ad63b: OUTPUT«ok 00:00 137m» | ||
lizmat | colomon: :-) | 14:23 | |
14:30
Mouq left
14:31
Alina-malina left
14:32
Alina-malina joined
14:36
molaf joined
14:40
Alina-malina left
14:41
vendethiel left
14:43
vendethiel joined
14:44
chenryn_ joined,
chenryn left
14:45
azawawi left
14:46
Alina-malina joined
14:55
chenryn__ joined
14:56
chenryn_ left
15:00
kaare_ joined
|
|||
timotimo | o/ | 15:02 | |
lizmat | timotimo \o | ||
15:06
thou joined
|
|||
masak | m: class Dog {}; sub foo(&block (Dog --> Bool)) { say "OH HAI" }; foo(sub (Dog $x) { $x }) | 15:16 | |
camelia | rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature of parameter &block in sub foo at /tmp/wV8sisOFFO:1 in block <unit> at /tmp/wV8sisOFFO:1» | ||
masak | what am I doing wrong here? | ||
m: class Dog {}; sub foo(&block:(Dog --> Bool)) { say "OH HAI" }; foo(sub (Dog $x) { $x }) | |||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Cannot invoke this object (REPR: P6opaque, cs = 0)» | ||
masak | o.O | ||
15:16
hoelzro left,
hoelzro joined
15:17
brrt joined
|
|||
brrt | \o | 15:17 | |
what did i miss :-) | |||
masak | brrt: Perl 6 was released -- world peace -- Nobel prize -- world hunger solved. not much :P | 15:18 | |
15:18
mattp_ left
|
|||
masak swiftly declares Eternal Christmas | 15:18 | ||
15:18
mattp_ joined
|
|||
[Coke] tries to onboard a consultant today. what a PITA. You'd think this was a solved problem by now. :P | 15:20 | ||
timotimo | brrt: if you blog fast enough, i'll link to your post via the weekly :P | ||
moritz | weekly \o/ | ||
gtodd | !! | 15:21 | |
lizmat has been banging her head on a failure while optimizing :-( | |||
masak | PerlJam: I think you forgot to move #81 down in github.com/rakudo/rakudo/blob/nom/...e-releases | ||
lizmat: please be more careful with your head :/ | 15:22 | ||
masak hugs lizmat's head | |||
lizmat suddenly gets a fuzzy feeling | |||
masak | probably just asphyxiation. I won't hug as hard next time. | 15:23 | |
PerlJam | masak: huh. I'm sure I did it. Must not have pushed | ||
dalek | kudo/nom: 1f42001 | duff++ | docs/release_guide.pod: update release_guide to move release #81 into the past :) |
15:25 | |
15:25
xfix is now known as notfix
|
|||
PerlJam | yep ... forgot to push it. | 15:25 | |
FROGGS | m: sub foo ( &cb (int) ) { }; sub bar (int) { }; foo(&bar) # masak: no idea why that fails | ||
camelia | rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature of parameter &cb in sub foo at /tmp/vCDVCggbtk:1 in block <unit> at /tmp/vCDVCggbtk:1» | ||
masak | FROGGS: the error message doesn't make any sense. | 15:26 | |
FROGGS | masak: and that feature works in nativecall | ||
it is in its test suite for example | 15:27 | ||
masak | even curiouser. | ||
FROGGS | and it also fails under 2014.09 | 15:28 | |
(using star-m) | |||
masak | m: sub foo { 2 }; say 1 ?? foo !! 3 | 15:29 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Found ?? but no !!at /tmp/R5ijrCZXEB:1------> sub foo { 2 }; say 1 ?? foo !! 3⏏<EOL>Confusedat /tmp/R5ijrCZXEB:1------> sub foo { 2 }; say 1 ?? foo !! 3⏏<EOL> e…» | ||
masak | that's an LTA error message (even knowing what's going on there) | ||
std: sub foo { 2 }; say 1 ?? foo !! 3 | |||
camelia | std 14ad63b: OUTPUT«===SORRY!===Found ?? but no !! at /tmp/ZYLcGrJPqx line 1 (EOF):------> sub foo { 2 }; say 1 ?? foo !! 3⏏<EOL>Confused at /tmp/ZYLcGrJPqx line 1 (EOF):------> sub foo { 2 }; say 1 ?? foo !! 3⏏<EOL…» | ||
masak | and STD.pm6 is no better. hm. | ||
15:29
vendethiel left
|
|||
masak | I ran into it in code like this: | 15:31 | |
m: module M { enum A is export <B C> }; import M; say 1 ?? B !! C | |||
15:31
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Jonathan Scott Duff 'update release_guide to move release #81 into the past :)' | 15:31 | |
travis-ci.org/rakudo/rakudo/builds/39843266 github.com/rakudo/rakudo/compare/b...4200169a22 | |||
15:31
travis-ci left
|
|||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Found ?? but no !!at /tmp/OMplHJ066n:1------> xport <B C> }; import M; say 1 ?? B !! C⏏<EOL>Confusedat /tmp/OMplHJ066n:1------> xport <B C> }; import M; say 1 ?? B !! C⏏<…» | 15:31 | |
masak | PerlJam: you broke the build by updating release_guide!? | ||
FROGGS | Start argument to substr out of range. Is: -1, should be in 0..0 | ||
make: *** [RESTRICTED.setting.moarvm] Error 1 | |||
masak | m: module M { enum A is export <B C> }; import M; say 1 ?? A::B !! A::C | 15:32 | |
camelia | rakudo-moar 315ec6: OUTPUT«B» | ||
PerlJam | :-( | ||
15:32
chenryn__ left
|
|||
masak | m: module M { enum A is export <B C> }; import M; say B | 15:32 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/lblTGtdIWsUndeclared name: B used at line 1» | ||
masak | is this right? I thought exporting A would export B and C, too. | ||
brrt | timotimo: no blog yet :-$ | ||
timotimo | OK :) | ||
brrt | masak: ah great, then i'm done | ||
FROGGS | m: module M { enum A is export <B C> }; import M; say M:: | 15:33 | |
camelia | rakudo-moar 315ec6: OUTPUT«"A" => A, "B" => A::B, "C" => A::C, "EXPORT" => EXPORT» | ||
FROGGS | m: module M { enum A is export <B C> }; import M; say M::B | ||
camelia | rakudo-moar 315ec6: OUTPUT«B» | ||
masak submits enum export rakudobug | |||
masak submits ?? !! LTA rakudobug | 15:34 | ||
15:34
notfix is now known as xfix
|
|||
masak submits code object subsignature strangeness rakudobug | 15:34 | ||
apparently I work in a LIFO manner today. | |||
gtodd | rakudobug must be feeling dizzy | ||
15:34
broquaint left
|
|||
gtodd | with the excitement ... | 15:35 | |
15:35
JimmyZ left,
vendethiel joined
15:36
broquaint joined
|
|||
masak | PerlJam: confirming that you pushed only a change to docs/release_guide.pod | 15:36 | |
PerlJam: meaning that travis-ci is drunk, I guess. | |||
15:37
betterwo1ld left
15:38
betterworld joined,
woshty left
15:40
Bucciarati left
15:41
kjs_ left
15:42
Bucciarati joined
|
|||
masak | m: for lines { .say } | 15:42 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Function lines needs parens to avoid gobbling blockat /tmp/s7drjzvj1Y:1------> for lines { .say }⏏<EOL>Missing block (apparently taken by 'lines')at /tmp/s7drjzvj1Y:1------> for line…» | ||
15:45
woshty joined
15:55
Alula left,
sqirrel_ joined
16:00
grondilu left
16:01
grondilu joined
|
|||
masak | idiomatic way to compare against an enum? `$value == B` or `$value ~~ B` ? or something else? | 16:09 | |
16:09
Alina-malina left
16:10
kuimacro left
|
|||
lizmat | +B ? | 16:12 | |
16:12
kjs_ joined
|
|||
lizmat | I guess the == already numifies right hand side | 16:12 | |
16:15
kaleem joined
|
|||
moritz | m: enum A <B C>; say C ~~ Numeric | 16:15 | |
camelia | rakudo-moar 315ec6: OUTPUT«True» | ||
16:15
kjs_ left
|
|||
moritz | lizmat: it's already numified :-) | 16:15 | |
timotimo | could someone rephrase the paragraph beginning with "Other than that, the "not quite done" parts are things /usr/bin/perl5 can't do right now:" on perl6.guide? | 16:16 | |
github.com/sheriff/perl6status/ ← this page accepts pull requests i bet | |||
masak | I tend to do `==` on enum values, fwiw. | 16:17 | |
because I know they're numeric, and I like to compare as specifically as possible. | |||
16:17
denis_boyun_ left,
hobbs left
16:18
hobbs joined
|
|||
masak | moritz: ooc, do you tend to write `* - 1` or `*-1` ? | 16:18 | |
16:19
kjs_ joined
|
|||
moritz | masak: *-1 | 16:20 | |
lizmat | masak: fwiw, *-1 and * - $var | ||
masak | moritz: I was just thinking of github.com/moritz/perl6-wtop/blob/...pod#___top | 16:21 | |
moritz: I think that's another exception; and you just confirmed it. | |||
moritz | masak: you're right | 16:22 | |
dalek | osystem: 8bde620 | (Timo Paulssen)++ | META.list: add the sugar-free SDL2 binding module |
16:24 | |
moritz | free of processed carbon hidrates? :-) | ||
timotimo | yup | ||
raydiak | timotimo++ | ||
timotimo | :) | ||
masak | m: enum A <B C>; say 1 ~~ B | 16:30 | |
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
raydiak | m: enum A <B C>; say +B; say ?B; say ?C; | 16:32 | |
camelia | rakudo-moar 315ec6: OUTPUT«0FalseTrue» | ||
16:34
grondilu left
16:36
brrt left
16:37
grettis joined
|
|||
masak finds a use for `repeat while <expr> { ... }` | 16:37 | ||
doesn't happen often. | |||
timotimo | p6weekly.wordpress.com/?p=250&s...7afa52d940 - please remind me of anything i may have missed over the last week | 16:39 | |
16:42
kjs_ left
|
|||
lizmat | timotimo: actually, all I did was spec the current behaviour, and use it in the spectest | 16:42 | |
all the work had been done by jnthn previously | |||
16:42
vendethiel left
|
|||
timotimo | oh! | 16:43 | |
dalek | kudo/nom: c430c02 | (Elizabeth Mattijsen)++ | src/core/IO.pm: Many moer primitives |
||
kudo/nom: 2fcc17c | (Elizabeth Mattijsen)++ | src/core/IO/File.pm: Introducing: IO::File, for existing files Well, actually anything that's not a directory, at this stage |
|||
kudo/nom: a426325 | (Elizabeth Mattijsen)++ | src/core/IO/Local.pm: Introducing: IO::Local, a role for existing paths |
|||
kudo/nom: 501b3ce | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm: Now uses the new IO::Local role |
|||
kudo/nom: f570202 | (Elizabeth Mattijsen)++ | tools/build/ (3 files): Make sure we also compile IO::Local/File |
|||
timotimo | oooh i love moér primitives! | ||
16:43
zakharyas left
|
|||
lizmat | FWIW, ^^^ is mostly scaffolding: most of that is not actually used yet | 16:43 | |
actually using the above breaks panda at the moment in an interesting way :-( | 16:44 | ||
16:44
vendethiel joined
|
|||
timotimo | lizmat has been working on splitting a new class IO::Dir off from IO::Path, in the hopes of getting overheads down, performance up and to reach more clarity. ← does this sound representative of your efforts? | 16:44 | |
lizmat | (aka no error messages whatsoever, just saying everything is done when nothing was) | 16:45 | |
timotimo: well, actually, it goes deeper than that | |||
when I'm done, IO::Path is obsolete :-) | |||
timotimo | ah | ||
FROGGS | lizmat: maybe remove the CATCH from the panda script | ||
timotimo | so IO::Path turns into IO::Dir and IO::File? | ||
lizmat | which both consume the IO::Local role | 16:46 | |
I also envision an IO::Link (for symlinks) | |||
timotimo | how do we represent relative paths we may want to plop onto different IO::Dir instances? | ||
lizmat | an IO::PIO (for all IO objects that read / write) | ||
typically, you wouldn't make any IO::Dir instances yourself | 16:47 | ||
dir() (and its method cally friends) will create them for you | |||
16:47
Alina-malina joined
|
|||
timotimo | what does the P stand for this time? :) | 16:47 | |
lizmat | I have no idea | 16:48 | |
IO::Handle has a $!PIO, IO::Socket as a $!PIO | |||
it is a parameter to many nqp:: functions | |||
timotimo | that used to be the parrot IO object | ||
lizmat | aha :-) | ||
timotimo | i suggest not holding on to that too much | ||
lizmat | well, maybe it's time to name it something else then | ||
in any case, all basic IO operations (except reading/writing) will be possible by using subs with just strings | 16:49 | ||
open() dir() pipe() rename() symlink() unlink() mkdir() rmdir() etc.etc. | |||
gtodd | oh | ||
lizmat | dir() is the one that returns IO::File/Dir/Link objects | 16:50 | |
(unless you ask for strings) | |||
16:50
grondilu joined
|
|||
timotimo | IO::PIO is a role? or a class? | 16:50 | |
lizmat | a role | ||
timotimo | and IO::Link a class? | ||
lizmat | yup, for symlinks (although I'm not 100% sure about that yet) | 16:51 | |
timotimo | OK | ||
lizmat | so, now that most of the scaffolding is there, I can start rebuilding stuff so that I don't break the API | ||
16:51
sqirrel_ left
|
|||
lizmat | but still get massively better performance | 16:52 | |
timotimo | that'd be lovely :) | ||
16:52
kaleem left
|
|||
timotimo | OK, i rewrote that paragraph | 16:52 | |
i'll briefly be AFK, but i'd appreciate more feedback | 16:53 | ||
tony-o | masak: i get an error on 'make' for Stage Parse - make: *** [CORE.setting.moarvm] Error 137 | ||
for moar ^^ | |||
lizmat | timotimo: actually, it's not about a file's contents, but about reading/writing (so both file, as well as socket IO) | 16:54 | |
gtodd | August: | ||
time perl6 -e 'say "/usr/share/dict/web2".IO.slurp.lines(:eager).grep("zygote");' --> 61.24s user 0.26s system 0% cpu 1:04.1 | |||
timotimo | oh | ||
masak | tony-o: did you `git clean -xdf` before configuring? | ||
16:54
Alina-malina left
|
|||
tony-o | yea it was a clean clone | 16:54 | |
gtodd | October: | ||
perl6 -e 'say "/usr/share/dict/web2".IO.slurp.lines(:eager).grep("zygote");' 10.25s user 0.25s system 6% cpu 11.751 total | |||
tony-o | i just did a clean and am trying the whole build again | 16:55 | |
16:55
ghostlines left
16:56
sftp left
|
|||
gtodd | wheee!! :-) ... I know those are silly naive tests but 60 versus 10 seconds must partly be due to all the IO changes because my disks are still super slow :) | 16:56 | |
16:56
treehug88 joined
|
|||
gtodd | IO IO it's off to disk I go .... | 16:56 | |
tony-o | nice | ||
lizmat | gtodd: glad to see it's working out | ||
gtodd | lizmat: that's a key adoption test for me ;-) | 16:57 | |
timotimo | p6weekly.wordpress.com/?p=250&s...7b40029164 | ||
10 seconds is still not terribly good, though :\ | |||
how big is that file? | 16:58 | ||
gtodd | lizmat: I tried following your commits to see what magical stuff you were up to but ... | ||
timotimo: it's a unix thing I think it's on most systems no? | |||
timotimo: about 200k lines | |||
timotimo | i have only …are/dict/linux.words …are/dict/words | 16:59 | |
gtodd | ~ 2.4Mb | ||
timotimo | which are 480k lines each | ||
gtodd | linux is more wordy :-) | ||
timotimo | 4.8 Mb | ||
gtodd | here BSDs | ||
lizmat | gtodd: if you grep for "a" ? | ||
hmmm.. I mean, .first("a") ? | |||
timotimo | interestingly, my system takes 10 seconds as well | 17:00 | |
lizmat | or drop the grep/first altogether, what is the timing then? | ||
17:00
telex left
|
|||
gtodd | perl6 -e 'say "/usr/share/dict/web2".IO.slurp.lines(:eager).first("a");' 0.73s user 0.13s system 100% cpu | 17:00 | |
17:01
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Make sure we also compile IO::Local/File' | 17:01 | |
travis-ci.org/rakudo/rakudo/builds/39852911 github.com/rakudo/rakudo/compare/1...702027d6bf | |||
17:01
travis-ci left,
gfldex joined
|
|||
gtodd | "zygote" I made it a longish word that would be near the end (file is sorted) so there'd be more going on :-) | 17:02 | |
17:02
telex joined,
sftp joined
|
|||
tony-o | how long does it take grep to find it? | 17:03 | |
17:05
vendethiel left
|
|||
gtodd | well it takes ruby ~ .20 seconds and bsdgrep and gnugrep are ~ 0.01 | 17:05 | |
17:05
guru joined,
guru is now known as Guest56976
17:06
fhelmberger left,
ajr_ left
17:07
vendethiel joined
|
|||
gtodd | on these weird little tests ruby does something to go fast ... usually ruby python perl5 python3 are pretty close | 17:07 | |
lizmat looks at Travis | 17:08 | ||
17:08
kjs_ joined
|
|||
colomon | hmmm, is it possible to set up Travis to ping the commit's author? | 17:08 | |
17:09
treehug88 left
|
|||
lizmat | can anyone the build failure or the restricted settings ? | 17:10 | |
*confirm | |||
*of | |||
tony-o | masak: i'm still getting the error building moar | 17:11 | |
making rakudo on moar | |||
lizmat | tony-o: do you have a gist ? | ||
tony-o | is there a log or do you just want the line that it's crapping out on? | 17:12 | |
lizmat | let's start with the line | ||
tony-o | gist.github.com/tony-o/eb3f96defe6ab155de6f | ||
lizmat | could it be that the OOM-killer hits the build provess ? | 17:13 | |
*process | |||
tony-o: ^^^ | 17:14 | ||
tony-o | OOM killer? | ||
it could, i have only 445M of memory free on that box | 17:15 | ||
lizmat | Out Of Memory | ||
then I guess you don't have enough to build rakudo there :-( | 17:16 | ||
tony-o | ouch | ||
lizmat | Re Jarvis: rakudo builds ok for me on moar, parrot *and* jvm | ||
17:17
treehug88 joined,
rurban left
|
|||
lizmat | tony-o: rakudo typically takes about 700 MB when building on OSX | 17:18 | |
[Coke] | 8:30 - 8:35 - "Running Perl6 on top of Google AppEngine", Attila Mihaly Balazs | ||
^^ from www.cluj.pm/pages/events.html | |||
is Attila on #perl6 ? | 17:19 | ||
lizmat | not sure | 17:21 | |
tony-o | lizmat: thanks - i was trying to set up evalbot for another channel from an AWS micro :-) | 17:22 | |
timotimo | the profiler seems to be a tiny bit b0rken now ... | 17:24 | |
lizmat | fwiw, I feel more than just the profiler is flaky atm | 17:25 | |
at least on OSX | |||
17:25
sqirrel_ joined,
Guest56976 left
|
|||
timotimo | the profile only contains a single call to "unshift" and that's it | 17:25 | |
i profiled the thing gtodd pasted up there | 17:26 | ||
lizmat | timotimo: lemme try that as well | ||
timotimo | anyway, i'll post the weekly in a few minutes | ||
17:26
FROGGS left,
rurban joined
|
|||
dalek | rl6-roast-data: 6a65ed7 | coke++ | / (5 files): today (automated commit) |
17:28 | |
timotimo | post'd | ||
[Coke] | moar has LOADS of failures again on OS X. | ||
17:29
vendethiel left
|
|||
japhb | timotimo++ | 17:29 | |
raiph | .tell b2gills I've commented on your pi blog post; it says it awaits your moderation | ||
yoleaux | raiph: I'll pass your message to b2gills. | ||
lizmat | $ 6 'say "words".IO.slurp.lines(:eager).grep("zygote")' | ||
zygote | |||
real0m5.191s | |||
$ 6 'say "words".IO.slurp.lines(:eager).grep("zygote").elems' | |||
1 | |||
real0m0.839s | |||
timotimo | japhb: i just noticed i didn't even mention your stresstest feature work on p6bench | ||
lizmat | how can that be so many times faster ??? | 17:30 | |
timotimo | lizmat: warm cache? | ||
lizmat | is the .elems making the grep eager ?? | ||
timotimo | hm, perhaps. and the say is not? | ||
lizmat | nono, done this quite some times already | ||
$ 6 '"words".IO.slurp.lines(:eager).grep("zygote")' | |||
real0m0.734s | |||
timotimo | er ... wat | 17:31 | |
lizmat | sink context making it eager ? | ||
yes | |||
timotimo | could be | ||
lizmat | what indeed | ||
perhaps hence the unshift() only ? | |||
17:31
ClarusCogitatio joined
|
|||
japhb | timotimo: Well, maybe next week then. :-) | 17:33 | |
afk, bus stop & | |||
timotimo | where the hell are these failures in S32? | ||
i can't find them | |||
oh | |||
delete-adverb.t | |||
lizmat | yeah, that flaps | 17:34 | |
quite a lot for me | |||
timotimo | ah, damn. | ||
17:35
vendethiel joined
|
|||
b2gills | raiph: Should be visible now. ( good thing you messaged me, I don't normally check that ) | 17:35 | |
yoleaux | 17:29Z <raiph> b2gills: I've commented on your pi blog post; it says it awaits your moderation | ||
lizmat | timotimo: confirmed, the profiler is borked | 17:36 | |
timotimo | maybe it now only works if you use exit() ;) | 17:37 | |
17:37
ponbiki left
|
|||
lizmat | hehe... you wish | 17:38 | |
17:39
flussence left
17:45
ponbiki joined
17:48
pecastro left
|
|||
timotimo | running delete-adverb.t outside of the spectest suite 10 times doesn't give me a crash | 17:49 | |
lizmat | yup | ||
17:49
kjs_ left
|
|||
lizmat | but have you tried running a few of them simultaneously ? | 17:49 | |
17:50
sqirrel__ joined
|
|||
timotimo | i shall trý | 17:52 | |
17:52
Sqirrel left
17:53
sqirrel_ left
|
|||
japhb | .oO( It's like 'try', but more of an accent on why you are trying ... ) |
17:53 | |
timotimo | seems hard to make it fail on my machine | 17:54 | |
i may need to update to the latest masters | 17:55 | ||
17:57
treehug88 left
|
|||
timotimo | actually, it seems like i had this local change: gist.github.com/timo/3dc2ff93c49e0fd241ae | 17:57 | |
17:58
treehug88 joined,
virtualsue left
18:07
sqirrel__ left
18:13
raiph left
18:19
vendethiel left
18:24
molaf left
|
|||
dalek | kudo/nom: 5f9a6be | (Elizabeth Mattijsen)++ | src/core/IO/ (2 files): IO::Dir/File need to be Cool (at least for now) |
18:27 | |
18:29
vendethiel joined
18:34
leont left,
flussence joined
18:42
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'IO::Dir/File need to be Cool (at least for now)' | 18:42 | |
travis-ci.org/rakudo/rakudo/builds/39863372 github.com/rakudo/rakudo/compare/f...9a6be563b9 | |||
18:42
travis-ci left
18:43
guru joined
18:44
guru is now known as ajr_
18:50
Sqirrel joined
18:51
vendethiel left
18:53
Alina-malina joined
|
|||
japhb | lizmat: It seems like you've done a fair amount of code-first experimental work on IO in nom, which is causing some churn for the rest of us. Can you do the experimentation in a branch instead? | 18:58 | |
18:58
baest left,
vendethiel joined,
FROGGS joined
|
|||
japhb | It feels like the IO stuff isn't going to settle down until there's a decent mapping to the *entire* POSIX I/O functionality space, and that sounds more design-heavy to me. | 18:59 | |
19:00
grondilu left
|
|||
japhb | (I'm all for experimentation, but it's caused breakage that doesn't feel like it's settling down.) | 19:00 | |
lizmat | I'm sorry if I'm causing any churn | ||
could you give me an example of breakage? | |||
fwiw, I'm not pushing unless I know the spectest is ok, and panda builds | |||
japhb | Directory produces paths/strings/dirs/files ... | ||
lizmat | then, after I push, I build parrot / jvm immediately | 19:01 | |
as in dir() ? | |||
japhb | right | ||
19:01
grondilu joined
|
|||
lizmat | well, it's not going to return strings anymore unless you specifically ask for it | 19:02 | |
that much I'm sure | |||
and I'd rather get immediate feedback | |||
then being hit by strange phenomena whenever I merge... | |||
this work is at the heart of all IO, I know | |||
dalek | rlito: 43c85a0 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - create %SIG |
19:03 | |
lizmat | and it's not like there are many other people committing at the moment :-( | ||
japhb | Sure, but I just meant, you've changed your mind a couple times, and each time pushed the new code to nom, did the deprecations, changed the spec, etc. But it won't be really settled down until the IO code can handle *all* the IO needs, and I have fears that this will cause design changes again -- which hit nom and spec each time. | ||
The work and experimentation are great, I'm just asking if it can go in a branch. And we can add test runs for that branch if need be. I know Travis can do this ... I don't want to speak for [Coke], but it sounds like nothing in his automation would *prevent* such a change. | 19:05 | ||
19:05
rindolf left
|
|||
lizmat | well, Travis atm says the build is broken, but I can't reproduce this on any backend | 19:05 | |
19:05
rindolf joined
|
|||
lizmat | nor does anybody else seem to have the problem | 19:05 | |
(so far) | 19:06 | ||
japhb | As for committing to Rakudo, yes, I know I haven't been ... but that's mostly because I'm trying to fulfill my promise to get us a good stress-test framework. :-) | ||
lizmat | japhb++ | ||
but what would automated testing of a branch bring? | 19:07 | ||
I run a spectest at least 3 times an hour when I'm working | |||
the most important reason is that working in the setting for such a deep part | |||
breaks in interesting ways at interesting moments | |||
japhb | Feedback from *another* platform about breakage -- and in theory, we could test against e.g. all of the ecosystem to look for regressions. | 19:08 | |
Yeah, working in the setting is a real pain. :-( | |||
lizmat | well, in that case: yes, if I could have a branch tested against the eco-system, that'd be great | 19:09 | |
19:09
baest joined
19:10
Alina-malina left
|
|||
japhb | FROGGS: How is your cpandatesters work coming? | 19:10 | |
tadzik: Is Emmentaler still alive? | |||
FROGGS | japhb: the service is ready to get on its host, and I got my server just an hour ago... | ||
installing the os right now :o) | |||
so, I hope that my service is accessible via ip within the next hours | 19:11 | ||
japhb | \o/ | 19:12 | |
FROGGS++ | |||
FROGGS | *g* | ||
I am happy too :D | |||
japhb | FROGGS: What was the status of your big Panda and Rakudo branches? Did they get merged already? | 19:13 | |
FROGGS | there are no outstanding rakudo branches | ||
just the panda/reporter and panda/CPAN | 19:14 | ||
19:14
kjs_ joined
|
|||
japhb | panda/reporter is for your new service, I assume. What's the state of panda/CPAN? | 19:14 | |
FROGGS | the former can be merged after 2014.11 release, the latter needs more work on portability of NativeCall, Compress::Zlib etc | ||
japhb: it only works on linux x64 so far | 19:15 | ||
maybe osx, not sure | |||
but since NativeCall has issues on 32bit I can't just ship it with panda | |||
japhb | Ah, gotcha. | 19:16 | |
FROGGS | these are the new deps btw: github.com/tadzik/panda/tree/CPAN/ext | ||
quite a lot :/ | |||
japhb | Are the 32-bit NativeCall issues some really nasty deep problem, or just a SMOP that hasn't been done yet? | ||
FROGGS | somewhere in between I suppose | 19:17 | |
I tried twice to fix it, without luck | |||
japhb | Woah, yeah, that's quite a bit of new deps, though I understand the reasons. | ||
FROGGS | and jnthn++'s upcoming work could help in that area | ||
japhb | nodnod | ||
japhb is fighting the problem of portability (in Perl 5) for his stress-testing code, so is currently feeling related pain. | 19:18 | ||
FROGGS | yeah | ||
japhb | .oO( Why is it so bloody hard to portably time out and kill a spawned subprocess? ) |
19:19 | |
FROGGS | at $dayjob I am suffering because of a SOAP::Lite application... it is meant to task to soap1.1 and soap1.2 services, and SOAP::Lite is not made for switching between versions | ||
ohh yeah | |||
japhb | Eww. | ||
19:20
rindolf left,
rindolf joined
|
|||
colomon | ye gads, that's a lot more deps for Panda. :\ | 19:21 | |
FROGGS | I know :S | 19:22 | |
19:24
molaf joined
|
|||
japhb | I thought temp file generation was going to be a builtin, due not wanting to have different mistakes from the Perl 5 one of doing it wrong all over CPAN? | 19:25 | |
colomon | FROGGS: does panda/reporter also add new deps? | ||
FROGGS | there is no built-in yet | 19:26 | |
colomon: no | |||
colomon | \o/ | ||
lizmat | japhb: I feel this needs to be done at the nqp:: level | ||
japhb would really like a reliable thread-safe does-the-best-it-can-on-the-local-OS tempfile builtin. | |||
19:26
kurahaupo left
|
|||
lizmat | otherwise I would have specced and done it already | 19:26 | |
japhb | lizmat: tempfiles? | ||
FROGGS | colomon: it is just that: github.com/tadzik/panda/compare/reporter | 19:27 | |
grondilu | talking about NativeCall issues with 32bits, is it related to the lack of JIT on intel/32? | ||
lizmat | japhb: yes I would want a tempfile builtin as well | ||
FROGGS | grondilu: no | ||
grondilu | k | ||
colomon | FROGGS: is your server for that up and running? | ||
FROGGS | grondilu: the bug is that int should mean 32/64 bits depending on the platform... and it somehow always means 64bits atm | 19:28 | |
japhb | lizmat: It may need nqp support, though it feels at a similar level to SPEC in terms of portability layer. Not wedded to that idea, though. | ||
FROGGS | colomon: in an hour perhaps :o) | ||
19:28
kurahaupo joined
|
|||
colomon | FROGGS++ | 19:28 | |
colomon will go rake leaves until FROGGS is done. ;) | |||
lizmat | on the subject of IO specs: this is my current plan (which I have tested and implemented mostly): | ||
1. IO::Spec / $*SPEC is on the way out | 19:29 | ||
many of the current methods need a $*CWD and a $*SPEC specification | |||
jnthn pointed out that we have a race condition there | |||
since all foreseeable OSes on which rakudo will run use / as a directory delimiter (or at least can work with it) | 19:30 | ||
we only need / for dir delimiter | |||
the only Win specific thing for which IO::Spec was testing, was Driveletter:/ and //UNC/ | 19:31 | ||
I think I found a cheap way of handling them as well | |||
the only other things IO::Spec is really doing, is providing sensible defaults for different OSes (like tempdir) | 19:33 | ||
FROGGS | true | ||
lizmat | and many path modifying functions | ||
so, long term goal: IO::Spec out of the core | 19:34 | ||
2. most OS operations work on simple absolute paths at the lowest level | |||
so, if you want to do a dir(), you shouldn't have to make an object of the path first before, only to get the path out of that again to do the operation | 19:35 | ||
internally, the default of doing a dir, is returning a string | 19:36 | ||
to easily differentiate dirs from other dirs entries, these strings get a '/' appended | 19:37 | ||
this also makes it much easier to concatenate a dir with a relative path to get an absolute path | |||
since we need to know whether something is a directory or not, we need to check, and therefore we can encapsulate that knowledge into an object of a different class | 19:38 | ||
one that shares a lot with the generic file class | |||
all objects returned by dir(), have the same API | |||
except of course, when it doesn't make sense, or is not allowed (like open() on a directory) | 19:39 | ||
fwiw, it seems that directories being represented with a trailing slash, seems to cause the most woe at the moment | 19:40 | ||
I think it would be very nice if we could keep that, as it is simple, and a good visual cue whether something is a dir or not | |||
3. IO::Path is trying to do too many things | 19:41 | ||
19:41
vendethiel left
|
|||
lizmat | it tries to handle local file paths *and* pipe commands *and* connection strings for sockets | 19:41 | |
therefore I would like to see IO::Path go as well | 19:42 | ||
instead, the .IO function (which is the main creator of IO::Path objects, IO::Handle objects before) will create an IOU object | |||
19:42
denis_boyun_ joined
|
|||
FROGGS | IOU? | 19:42 | |
lizmat | the "U" meaning Unidentified" | 19:43 | |
FROGGS | ahh | ||
lizmat | pun intended | ||
hmmm.... dinner ready need to go now& | |||
FROGGS | :o) | ||
19:44
rindolf left,
vendethiel joined,
rindolf joined
19:45
ClarusCogitatio left
19:48
rindolf left
19:49
rindolf joined
19:50
ClarusCogitatio joined
19:51
daxim left
19:57
Mso150 joined
|
|||
masak | m: say "pun".indent(4) # pun, indented | 19:57 | |
camelia | rakudo-moar 315ec6: OUTPUT« pun» | ||
masak | I can't believe no-one has done that one until now. | 19:58 | |
FROGGS | >.< | 19:59 | |
japhb | .oO( Girl, Interrupted is just begging to be written ... ) |
||
FROGGS | yeah, like someone missed an opportunity for years :P | ||
masak | m: for "Girl".comb { .say; last if ++state $ == 2 } # interrupted | 20:00 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/aeyMOSgZQjPreceding context expects a term, but found infix = insteadat /tmp/aeyMOSgZQj:1------> "Girl".comb { .say; last if ++state $ ==⏏ 2 } # interrupted» | ||
masak | m: for "Girl".comb { .say; last if ++(state $ ) == 2 } # interrupted | ||
camelia | rakudo-moar 315ec6: OUTPUT«Gi» | ||
20:00
rindolf left
|
|||
masak | m: for "Girl".comb { .print; last if ++(state $ ) == 2 } # interrupted | 20:00 | |
camelia | rakudo-moar 315ec6: OUTPUT«Gi» | ||
japhb | I can think of so many interpretations -- concurrency seems a particularly ripe area for exploration. | 20:01 | |
.oO( Girl received SIGINT ) |
|||
masak | ooh, can I trigger a SIGINT in Perl 6 code? | 20:02 | |
japhb | I can see code for it in Proc::Async.kill .... | 20:03 | |
masak urges japhb to produce a one-liner for camelia | |||
japhb | Damn you! | ||
masak | :> | ||
20:05
kjs_ left,
darutoko left
|
|||
japhb | 'Proc::Async is disallowed in restricted setting' # Had a feeling that would happen | 20:06 | |
masak | aww | 20:08 | |
japhb | Hmmm, it looks like we currently can only send a signal to a process for which we have a handle, which we have to get via Proc::Async. | ||
Now if only we could get a handle on an arbitrary process .... | 20:09 | ||
20:12
rindolf joined
20:14
rmgk left
20:16
rmgk joined
|
|||
lizmat | where was I? ah yes, 3. the IOU class | 20:16 | |
in a lot of ways, that will be like the IO::Path of today, except it won't pretend to be doing paths | 20:17 | ||
depending on the method called on the object, it will do the right thing using the string (and $*CWD when needed) | 20:18 | ||
so "foo".IO.open( :named ) | |||
will do an open( $*CWD ~ "foo", :named ) | 20:19 | ||
FROGGS | japhb / colomon: the service is running at 85.25.222.109:3000/dist/Text::Indented | ||
japhb / colomon: next step is to get it to run on port 80 and then get a proper name | |||
lizmat | FROGGS: that URL doesn't work for me :-( | 20:20 | |
FROGGS | try again | ||
lizmat | FROGGS: better! | ||
FROGGS | yeah, something manages to kill the server :o) | 20:21 | |
20:22
Alula joined
|
|||
lizmat | (to continue) would return an IO::Handle object | 20:22 | |
doing "echo Hello World".IO.pipe would do a pipe("echo Hello World") and return an IO::Pipe object | 20:23 | ||
"localhost:25".IO.connect would return an IO::Socket object | 20:24 | ||
(not sure whether we want a connect() sub) | |||
4. IO::Handle, IO::Socket and IO::Pipe would be conumers of the IO::PIO role (PIO or some other name indicating the underlying common attribute) | 20:26 | ||
:r / :w / :a would be likely attributes for IO::PIO | |||
japhb FROGGS moritz other people: am I making sense so far ? | 20:27 | ||
FROGGS | lizmat: I guess... I am not concentrated enough to think of consequences | 20:29 | |
20:30
vendethiel left
|
|||
moritz | lizmat: sounds sane | 20:30 | |
20:36
vendethiel joined
|
|||
dalek | nda/reporter: 36135eb | (Tobias Leich)++ | lib/Panda/Reporter.pm: add ip of publi cpandatesters server |
20:36 | |
lizmat | 5. all paths are absolute | ||
if you call .relative on a IO::Local, it will take C*WD and match it against the path and remove the part that's in C*CWD | 20:37 | ||
*$*CWD | |||
.absolute will just return the absolute path verbatim | |||
moritz | why? | ||
in other languages, open($filename) works fine for relative file names without any conversions to absolute | 20:38 | ||
lizmat | moritz: and open("foo") will just DTRT | ||
just like other languages | |||
it will take $*CWD of the moment of open and prepend that if it's a relative path | 20:39 | ||
FROGGS | moritz: we absolutify filenames passed to open already | ||
moritz | why? | ||
FROGGS | correct, so when you change $*CWD one statement later, you still know what was meant | ||
lizmat | because $*CWD is volatile in a threaded, async world | ||
moritz | oh right, we have $*CWD | 20:40 | |
lizmat | my previous approach was to keep whatever was given (absolute or relative), and keep $*CWD along as well | ||
moritz | which can be different from the OSes idea of the working directory | 20:41 | |
lizmat | moritz: indeed, the OSes idea of the working directory only makes sense for initializing $*CWD at startup | ||
nothing else | |||
20:41
kurahaupo left
|
|||
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: 7ed6c59 | (Tobias Leich)++ | app.pl: bind to public ip |
20:43 | |
20:44
H2O1 joined
|
|||
masak | heh. I'm at a point where I (legitimately) need to implement a binary search -- but I feel a bit nervous because there's a widespread view that very few (something like 5% or so) manage to implement a bug-free binary search on their own. | 20:45 | |
dalek | kudo/nom: 02fad28 | (Elizabeth Mattijsen)++ | src/core/IO/Local.pm: Reminder about a bug |
||
masak | what should I do to increase my chances of success? | ||
lizmat | write many tests? | ||
seriously, I would like to see something like that as a builtin | 20:46 | ||
masak takes lizmat's advice | |||
lizmat | it could e.g. be used to make Supply.sort work gradually, instead of doing all the work at the end | ||
20:46
rindolf left
|
|||
tony-o | is there a big need for that? there are a lot of ways to build it from what i've read and didn't think anybody would use something like that (at least not this early) | 20:46 | |
20:47
rindolf joined
|
|||
lizmat | more generally, it could make sort() be lazy :-) | 20:47 | |
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: 476f600 | (Tobias Leich)++ | app.pl: show stats for all reports on page /recent |
||
masak | I think I agree that binary search could very well be in the core setting. | 20:48 | |
moritz | masak: my approach to writing a binary search is to to only do it until ($right - $left) < 10 or so, and then do a linear scan. That's reputed to be faster (at least if the comparison is cheap), and not so much prone to off-by-one errors | ||
masak | moritz: interestingly, it decidedly wouldn't be faster in my case. | ||
moritz: because the decision "am I too far right or not?" is lazily computed, and expensive. | 20:49 | ||
20:49
kjs_ joined
|
|||
masak | moritz: something on the order of 0.1 s | 20:49 | |
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: b77224e | (Tobias Leich)++ | app.pl: fix increment of native int |
20:50 | |
masak | and so I really want to make as few computations as possible. | ||
20:52
immortal joined,
immortal left,
immortal joined
|
|||
tony-o | moritz: do you have a write up or anything for that? | 20:54 | |
20:54
erkan left
|
|||
moritz | tony-o: nope | 20:54 | |
though I do think I've benchmarked it once in perl 5 or C, with integer comparisons (which are really dirt cheap) | 20:55 | ||
tony-o | do you have the code? i started writing something in p6 but it was mostly a learning exercise and couldn't find much other than contrived examples (so i don't know if i was making something useful or not) | 20:56 | |
20:56
pecastro joined
20:57
vendethiel left
20:58
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Reminder about a bug' | 20:58 | |
travis-ci.org/rakudo/rakudo/builds/39877428 github.com/rakudo/rakudo/compare/5...fad2897691 | |||
20:58
travis-ci left
|
|||
moritz | tony-o: nope | 20:58 | |
lizmat looks at Travis again :-( | |||
21:00
rindolf left
|
|||
FROGGS | hmmm | 21:01 | |
colomon | masak: List::Utils has binary search | 21:03 | |
21:04
ghostlines joined
|
|||
lizmat | moritz: am I correct in not seeing any RESTRICTED settings for the jvm ?? | 21:04 | |
colomon | no guarentees it works and is efficient | ||
but it does pass a few tests | |||
masak | colomon: looking. | ||
21:04
kjs_ left
|
|||
colomon | masak: github.com/colomon/List-Utils/blob...5-search.t | 21:04 | |
masak: if you'd like to add tests, that would be cool. ;) | 21:05 | ||
*more tests | |||
21:06
ghostlines left
|
|||
masak | :) | 21:06 | |
this is not a good starting point for what I need, unfortunately. | |||
I have: a sorted list of values, and a computationally expensive function. | 21:07 | ||
21:07
Mso150_z joined,
Mso150 left
|
|||
masak | I'm running the binary search because I want to run the expensive function the fewest possible number of times. | 21:07 | |
21:08
kjs_ joined
|
|||
btyler_ | git bisect is probably a rather well attended binary search implementation, since the expense of the function is "human intervention" | 21:09 | |
dalek | kudo/nom: 30d6caf | (Elizabeth Mattijsen)++ | tools/build/Makefile- (2 files): Restricted settings are built with --ll-exception So that we at least have some more info when that goes wrong (like it does right now on Jarvis). Unfortunately, I couldn't find the place in the JVM build process to tweak. Patches welcome! |
||
masak | "well attended"? | ||
lizmat | masak: memoizing wouldn't help ? | 21:10 | |
btyler_ | carefully optimized to minimize calls, like the trick moritz mentioned | ||
timotimo | what did i miss in the last few hours? | ||
too tired to backlog :S | |||
masak | lizmat: yes, but only on a level outside of the search -- eliminating having to do exactly the same search twice. | ||
lizmat | Travis still complaining | ||
timotimo | :( | ||
lizmat | masak: why not for each test inside the sort ? | 21:11 | |
21:11
vendethiel joined
|
|||
masak | lizmat: the values are index positions inside a string. but for each new search, the string will differ, the values may differ, and the result may differ. | 21:13 | |
lizmat | ok, gotcha :-) | ||
colomon | masak: I guess I'm not seeing why the lower-bound function isn't what you need, except possibly needing a way of specifying a different comparison function? | ||
lizmat is waiting for Travis to complain again | |||
timotimo | i hope many people who stumbled upon the weekly via perl6.guide have put my blag into their feed reader | 21:14 | |
colomon | well, except possibly for being an incorrect implementation. ;) | ||
masak | colomon: my list of values comparable to your @array is lazily computed, using an expensive function. | ||
lizmat | BTW, timotimo++ # P6 weekly | ||
masak | colomon: the point of my binary search is to avoid computing all elements in that list. | ||
timotimo | :) | ||
colomon | masak: do you mean the list itself is lazy, ie you don't know how many elements it has without computing them? | 21:15 | |
21:16
kaare_ left
|
|||
masak | colomon: I know how many elements it has. but I don't know whether to turn left or right down the binary search tree until I evaluate the expensive function. | 21:16 | |
21:17
Guest58887 is now known as felher
|
|||
colomon | right, that's the comparison | 21:17 | |
List::Utils's search should require ln N comparisons, more or less | 21:18 | ||
dalek | ast: ac87c83 | (Elizabeth Mattijsen)++ | integration/advent2010-day03.t: We can only sensibly compare relative paths |
||
masak | it's a function fn($value) whose value can be "Keep" or "Break". I know that there's a limit somwhere between Keeps and Breaks. I'm trying to find the leftmost "Break". | ||
colomon | and Keeps come first? | 21:19 | |
masak | right. | ||
colomon | this basic algo should do exactly that | ||
masak | ok. | ||
...looks comparable to what I have so far :) | 21:20 | ||
colomon++ | |||
lizmat has been banging her head about a dir() related test | 21:22 | ||
only to find out the *old* implementation has a bug | |||
21:23
ptc_p6 left,
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Restricted settings are built with --ll-exception | 21:23 | |
travis-ci.org/rakudo/rakudo/builds/39880697 github.com/rakudo/rakudo/compare/0...d6caf40429 | |||
21:23
travis-ci left
|
|||
colomon | masak: of course, now that I'm looking at this I'm wanting to make changes. ;) | 21:23 | |
lizmat | m: ".git".IO.dirname.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«.» | ||
masak | colomon: :) | ||
lizmat | would have expected ".git" | 21:24 | |
colomon | lizmat: isn't that the name of the directory for the file? | ||
lizmat | m: "foo.bar".IO.dirname.say' # hmmm.... | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/CBdt4Qbx7QTwo terms in a rowat /tmp/CBdt4Qbx7Q:1------> "foo.bar".IO.dirname.say⏏' # hmmm.... expecting any of: method arguments postfix…» | ||
colomon | which (since it isn't specified) is . | ||
? | |||
lizmat | m: "foo.bar".IO.dirname.say # hmmm... | ||
camelia | rakudo-moar 315ec6: OUTPUT«.» | ||
lizmat | hmmm... good point (I think) ;-) | 21:25 | |
colomon | masak: give me a minute to try something. | ||
lizmat | colomon: thanks for the reality check | ||
21:25
virtualsue joined
|
|||
FROGGS | lizmat: travis is failing for a self.bless(:parts(@parts), :plus($s.substr(*-1) eq '+')); | 21:27 | |
in Version.new | |||
lizmat checks | |||
FROGGS | lizmat: we probably get the same when we delete our VERSION file or so | ||
hmmm, might not be related to the VERSION file.... maybe it is about deprecations? | 21:28 | ||
m: Version.new('') | 21:29 | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Start argument to substr out of range. Is: -1, should be in 0..0» | ||
lizmat | yup | ||
ok, I'll fix that... still | |||
weird that it starts complaining now ?? | |||
FROGGS | and that we don't get that on our machines | 21:30 | |
colomon | masak: OMG, just realized lower-bound / upper-bound only ever worked for numbers. sigh. | ||
vendethiel | hello, #perl6. | 21:31 | |
colomon | in my defense, this is some really old p6 code. | ||
FROGGS | hi vendethiel | ||
masak | howdy, vendethiel | ||
colomon | Sept 2010... | ||
vendethiel | masak, tired, 'twas a long day. what about you | ||
masak | colomon: no matter. I'm halfway through messing up my own binary search now... :) | ||
FROGGS | okay... so who do I need to bug about a subdomain of perl6.org? | ||
masak | vendethiel: same. but doing nice Perl 6, so I'm not complaining ;) | 21:32 | |
colomon | masak: anyway, my new binary-search function does exactly what you need, I think. ;) | ||
masak | :) | ||
FROGGS | [Coke]: do you know who can register subdomains to perl6.org? | ||
21:32
ab5tract joined
21:33
kjs_ left
|
|||
timotimo | maybe if i try again, i'll find that blatantly obvious thing that makes JSON::Tiny slower than it could be ... | 21:33 | |
colomon | timotimo++ # could really use JSON::Tiny being faster for $work | 21:34 | |
FROGGS | me too | ||
timotimo | well, there's the module that binds some c library | ||
that should have been a prefix:<++> rather than postfix:<++>, colomon :) | |||
colomon | timotimo: yes, but it changes how JSON import works (or at least, did so last time I checked) | ||
timotimo | that's true | ||
colomon | timotimo: I reward effort, too. ;) | ||
21:35
H2O1 left
|
|||
colomon | I mean, I could rewrite the script in p5, too. | 21:35 | |
timotimo | you'd perhaps write a little "crawler" that'll turn the data that library gives you into a regular perl6 datastructure | ||
colomon | but if JSON::Tiny just magically got faster, that would be the easiest solution for me. | ||
lizmat | m: Version.new | ||
timotimo | what kind of factor are you looking for? | ||
camelia | ( no output ) | ||
lizmat | m: Version.new(Any) | 21:36 | |
camelia | rakudo-moar 315ec6: OUTPUT«Default constructor for 'Version' only takes named arguments in method new at src/gen/m-CORE.setting:926 in block <unit> at /tmp/BTwyo3nfVh:1» | ||
lizmat | m: Version.new("") | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===Start argument to substr out of range. Is: -1, should be in 0..0» | ||
colomon | masak: Just updated List::Utils. Now has a binary-search which takes a &test argument, and returns the first index for which the test is false. | 21:37 | |
masak: I re-implemented lower-bound and upper-bound in terms of it, which means it has … 22 test cases. Not even vaguely thorough. | 21:38 | ||
m: 110.log(2) | 21:39 | ||
camelia | ( no output ) | ||
colomon | m: say 110.log(2) | ||
camelia | rakudo-moar 315ec6: OUTPUT«6.78135971352466» | ||
masak | colomon: thanks, I guess. I'm not convinced my particular generalization of binary search is a net utility for all possible users of a binary search routine... | 21:40 | |
21:40
xfix is now known as notfix
|
|||
masak | colomon: having to do a &test like that is a fairly fringe-y case. | 21:40 | |
colomon | masak: totally not | 21:41 | |
21:41
firefish5000 joined
|
|||
colomon | lower-bound and upper-bound are both simple one-liners using the new binary-search | 21:41 | |
FROGGS | moritz: from the irc logs it looks like set up doc.perl6.org... can you register a subdomain of perl6.org pointing to my server? | 21:42 | |
ab5tract | colomon: you get to work in p6? | 21:43 | |
ab5tract jealous | |||
masak | ab5tract: we have openings. | 21:44 | |
ab5tract: better grab them quickly, though. | |||
ab5tract | masak: wait, what? :) | ||
masak | ab5tract: Perl 6. we have openings. if you want to work on p6. | ||
colomon | would we have to move to Sweden? | 21:46 | |
moritz | FROGGS: perl6.org has a wildcard subdomain all pointing to 193.200.132.142; it seems you need a different IP, so all I can do for you is contact the domain owner | ||
PerlJam thinks masak needs to clarify who "we" are. | 21:47 | ||
masak | the Perl 6 team. | ||
btyler_ | colomon: if you mean the JSON::Jansson binding I wrote, I ended up adding an option to import it into a regular data structure | ||
dalek | kudo/nom: 8a4b9e8 | (Elizabeth Mattijsen)++ | src/core/Version.pm: Make Version.new("") not die |
||
masak | (but, yeah yeah, Edument is hiring, too...) | ||
:P | |||
colomon | btyler_: ooooo | ||
btyler_ | which crawls the jansson structure, much like timotimo mentioned | ||
lizmat waits for Travis again | |||
btyler_ | anyways, if you have specific requests, leave an issue, I'd be happy to jump back into that now that the dust is starting to settle for me in .nl | 21:48 | |
note that the conversion from jansson-->perl 6 structure sucks up a fair bit of time, so the advantage it enjoyed over JSON::Tiny is likely rather smaller | 21:49 | ||
FROGGS | moritz: I'm not yet sure if I want cpandatester.perl6.org or testers.perl6.org pointing to 85.25.222.109 | ||
moritz | FROGGS: IMOH 'testers.perl6.org' is cleaner | ||
*IMHO | |||
timotimo | btyler_: oooh, way cool :) | 21:50 | |
colomon | timotimo: btw, if you'd like profiles of JSON::Tiny reads…. ;) | ||
FROGGS | moritz: that's what I think too | ||
timotimo | colomon: sure, go ahead :) | ||
masak | colomon: fwiw, here's the binary search I ended up with. gist.github.com/masak/abdbddcb25983fbd8935 | ||
FROGGS | I still can register cpandatesters.org if I want to :o) | ||
masak | colomon: it seems to work now. | ||
lizmat | FROGGS: why not? | 21:51 | |
FROGGS | lizmat: why not what? | ||
lizmat | register cpandatesters.org | 21:52 | |
FROGGS | I dunno | ||
moritz | FROGGS: should I send the mail? | 21:53 | |
FROGGS | moritz: ohh yes please | ||
lizmat: ok, I ordered cpandatesters.org | 21:55 | ||
if someone wanna be a cpanda tester: checkout panda/reporter, rebootstrap, run: PANDA_SUBMIT_TESTREPORTS=1 panda --exclude=Panda smoke (or just install dists while that env var is set) | 21:59 | ||
and then the reports pop up here immediately: 85.25.222.109/recent | |||
colomon | FROGGS: "This webpage is not available" | 22:00 | |
afk # small children jumping in leaves | |||
FROGGS | eww | ||
masak | no, dangit. I want to find the last Keep! :/ | 22:01 | |
masak .oO( user requirements always change. even when you yourself are the user ) | 22:02 | ||
FROGGS | colomon: looks like the service dies for certain requests (via browser), but respawns and happily receives reports | ||
weird that is | |||
22:02
travis-ci joined
|
|||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Make Version.new("") not die' | 22:02 | |
travis-ci.org/rakudo/rakudo/builds/39884644 github.com/rakudo/rakudo/compare/3...4b9e8e92a5 | |||
22:02
travis-ci left
|
|||
FROGGS | lizmat++ | 22:03 | |
lizmat | we still don't know where the empty Version string came from :-( | ||
moritz | FROGGS: is there an IPv6-address too? | ||
lizmat | so in a way, this was treating the symptom, not the cause :-( | ||
FROGGS | lizmat: this can also come from the os version | ||
moritz: I'd have to set it up, but it is able to do ipv6 | 22:04 | ||
moritz | FROGGS: let me rephrase. Should I ask for an AAAA-record right away? | 22:05 | |
FROGGS | cpandatesters.org/ should now work for some of us :o) | ||
moritz: I have no idea | |||
PerlJam | now I can't stop seeing cpan-datesters | 22:06 | |
FROGGS | moritz: does that disallow ipv4? | ||
PerlJam: :P | |||
'sters | |||
moritz | FROGGS: no; but if you have no idea, it's better not to advertise a v6 address | ||
FROGGS | k | ||
22:07
kjs_ joined
|
|||
masak | 'night, #perl6 | 22:07 | |
lizmat | gnight masak | 22:09 | |
FROGGS | gnight masag | 22:10 | |
err, masak | |||
ab5tract | does anyone know what the deal is with all the reverse-oriented tests in S03-operators/ set.t | 22:11 | |
22:12
gfldex left
22:13
tgt joined
|
|||
ab5tract | they seem superflous at first glance | 22:13 | |
timotimo | not seeing anything too helpful for JSON::Tiny yet :\ | 22:14 | |
i'm a bit distraught to see that possibly >>.ast is the fastest way to do what that does ... | |||
22:15
kjs_ left,
PZt joined,
btyler_ left
22:16
btyler joined
|
|||
tgt | Hi. Is there a way to get all of the signatures for a multi sub? | 22:17 | |
m: say (1, 2, 3) div 2 | |||
camelia | rakudo-moar 315ec6: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b --> int) in block <unit> at /tmp/7Ifu3HeLUs:1» | ||
tgt | I was curious about the signatures of infix:</> after seeing that error. | 22:18 | |
lizmat | m: &infix<div>.signatures.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/4JseAwCtfxUndeclared routine: &infix used at line 1. Did you mean '&index', '&indir'?» | ||
moritz | m: say &infix:</>.candidates>>.signature | ||
camelia | rakudo-moar 315ec6: OUTPUT«:() :(Any $x) :(Any \a, Any \b) :(Real \a, Real \b) :(Num:D \a, Num:D \b) :(num $a, num $b) :(Rational \a, Rational \b) :(Rational \a, Int \b) :(Int \a, Rational \b) :(Int \a, Int \b) :(Complex:D \a, Complex:D \b --> Complex) :(Complex:D \a, Real \b --> Co…» | ||
moritz | tgt: ^^ | ||
tgt | Aha, thank you. | ||
The code I posted seems like a bug? | |||
[Coke] | FROGGS: I don't know who owns perl6.org | ||
lizmat | m: &infix:<div>>>,candidates.signature.say | 22:19 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/KqJ_aJxHN1Missing << or >>at /tmp/KqJ_aJxHN1:1------> &infix:<div>>>,⏏candidates.signature.say expecting any of: postfix infix stopper …» | ||
moritz | tgt: nope | ||
lizmat | m: &infix:<div>>>.candidates.signature.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«No such method 'signature' for invocant of type 'Parcel' in block <unit> at /tmp/kqDNiMCnT9:1» | ||
FROGGS | [Coke]: moritz++ is able to help me :o) | ||
lizmat | m: &infix:<div>.candidates>>.signature.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«:(Int:D \a, Int:D \b) :(int $a, int $b --> int)» | ||
ab5tract | m: say (1, 2, 3).map({ $_ div 4}) | ||
camelia | rakudo-moar 315ec6: OUTPUT«0 0 0» | ||
ab5tract | m: say (1, 2, 3).map({ $_ div 2}) | ||
camelia | rakudo-moar 315ec6: OUTPUT«0 1 1» | ||
tgt | I'd have expected @a div $n to be exuivalent to floor(@a / $n) | ||
timotimo | huh, weird. we're doing getlexperinvtype_o for $?CLASS in nqp apparently? | 22:20 | |
PerlJam | "exuivalent" should totally be a word | ||
tgt | :D Not sure how I typoed that. | 22:21 | |
moritz | FROGGS, [Coke]: FTW, perl6.org is registered to Dan Wright, who happens to be treasurer of TPF | ||
ab5tract | m: my @a = 1,2,3; say @a / 2; | 22:22 | |
camelia | rakudo-moar 315ec6: OUTPUT«1.5» | ||
ab5tract | tgt: it looks to me like @a is evaluated as number of elements when in a division | ||
a la arrays in scalar context in p5 | 22:23 | ||
moritz | S03 says about infix:<div>: "Not coercive, so fails on differing types" | ||
that's what rakudo implements. | |||
tgt | Interesting. Do you know the reason behind that? | 22:24 | |
moritz | sleep& | ||
22:25
pecastro left
22:26
hagiri joined
|
|||
hagiri | TimToady, hello man | 22:26 | |
ab5tract | tgt: honestly i don't think @a / $n should be coercive either | ||
hagiri | hello all ;) | ||
ab5tract | it seems easy enough to write @a.elems / $n for the coerced behavior | 22:27 | |
dalek | ake: 5f9404b | (Arne Skjærholt)++ | src/Snake/ (2 files): First pass implementation of list literals. Not very useful yet though, as we don't yet handle variables, which means for loops aren't happening yet. |
22:28 | |
ake: 430570e | (Arne Skjærholt)++ | src/Snake/ (2 files): Rudimentary variable and assignment handling. |
|||
ab5tract | too much contextual twiddling can only lead to trouble | ||
tgt | I'm happy to write +@a div $n. I was just changing some code from floor(@a / $n) to use div and was surprised. | 22:31 | |
ab5tract | tgt: i agree, it is a bit surprising. that's why i'm uncomfortable with the @a / $n coercion :) | 22:33 | |
but perls will perl, as the saying may go | 22:36 | ||
22:40
tgt left
|
|||
timotimo | FROGGS: why does 85.25.222.109/recent take forever to reply? | 22:40 | |
FROGGS | timotimo: I'm not sure... I cannot fetch a single site right now :/ | 22:42 | |
timotimo | OK | ||
my very first optimization attempt resulted in no improvement whatsoever | |||
hm. | 22:43 | ||
maybe i should be reading a json file that takes longer than a second to load in order to profile stuff | |||
FROGGS | timotimo: looks like too many reports are fetched from database for the /recent page... so either perl6 or DBIish has a problem there | 22:44 | |
that looks kinda nice: cpandatesters.org/dist/Acme::Meow | |||
lizmat | FROGGS++ | 22:49 | |
22:52
zakharyas joined,
telex left
|
|||
timotimo | except it takes forever to answer | 22:53 | |
let me have a quick look at your queries or something? | |||
22:54
telex joined
|
|||
timotimo | oh, FROGGS | 22:55 | |
@osnames.push: $<osname> unless $<osname> ~~ any @osnames; | |||
this seems really slow | 22:56 | ||
i'd rather have a hash store these, don't you think? | |||
dalek | ake: f28eca1 | (Arne Skjærholt)++ | src/Snake/ (2 files): Basic for loops. |
||
ast: 0277bfb | (Elizabeth Mattijsen)++ | S32-io/dir.t: Some intermediate dir() fudging |
23:01 | ||
23:09
grettis left
23:10
ab5tract left,
grettis joined
|
|||
timotimo | now i have a big json file, but it's kinda ... too big | 23:10 | |
yeah, 180 mb %) | 23:11 | ||
23:20
denis_boyun_ left
23:21
virtualsue left
|
|||
timotimo | FROGGS: could panda report also send the git commit that was fetched from the repository? | 23:22 | |
23:23
grettis left
23:24
SevenWolf joined
|
|||
timotimo | the rakudo-moar process that's trying to from-json the 100mb file has already reached 6 gigs of ram resident memory :\ | 23:30 | |
just slurping that file gives me a half-gig sized rakudo-moar | 23:31 | ||
which is also less than awesome | |||
23:31
TimToady left
23:32
TimToady joined
|
|||
lizmat | timotimo: just an "path".IO.slurp ??? | 23:34 | |
23:35
treehug88 left
23:36
grettis joined
23:41
vike left
23:45
zakharyas left
|
|||
lizmat | gnight, #perl6! | 23:49 | |
23:54
hagiri left
23:56
ClarusCogitatio left
23:58
ClarusCogitatio joined
|