»ö« 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:00
Alula joined
00:05
thou left
00:16
ab5tract left
00:21
ajr_ left
00:33
risou is now known as risou_awy,
risou_awy is now known as risou
00:37
grettis joined
00:38
fhelmberger joined
00:42
grettis left
00:43
fhelmberger left
00:54
legrady left
00:59
thou joined
01:03
thou left
01:16
erkan joined,
erkan left,
erkan joined
01:19
immortal left
01:23
jfredett left
|
|||
TimToady | m: say [=>] <a b c d> | 01:44 | |
camelia | rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"» | ||
TimToady | S-EXPR in a can... | ||
m: say [=>] <a b c d>, Nil | 01:45 | ||
camelia | rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"» | ||
TimToady | m: say [=>] <a b c d>, Mu | ||
camelia | rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d" => Mu» | ||
TimToady | if you want everyhing in the CARs | 01:46 | |
01:56
jfredett joined
02:04
hypolin joined
02:06
hypolin left
02:08
jack_rabbit joined
02:12
chenryn joined
02:21
tinyblak left
02:26
davido__ left
02:33
dayangkun joined
02:35
leont left
02:39
davido__ joined
02:41
davido__ left
02:47
thou joined
02:51
thou left
03:07
gfldex joined
03:08
tinyblak joined
03:12
noganex_ joined
03:14
noganex left
03:21
bjz left,
davido_ left
03:22
davido_ joined
03:25
araujo left
03:52
vendethiel- joined
03:53
vendethiel left
03:56
rmgk left
03:57
rmgk joined
04:03
vendethiel- left
04:06
mauke_ joined
04:07
anaeem1_ joined
04:09
mauke left
04:12
mauke_ is now known as mauke
04:27
molaf left
04:28
chenryn left
04:29
chenryn joined
04:35
thou joined
04:36
tinyblak left
04:37
tinyblak joined
04:39
thou left
04:40
gfldex left
04:41
chenryn left
04:49
Alina-malina joined,
dj_goku joined
|
|||
dj_goku | I brought this up awhile back, but I want to take what is on rosetta code and add it to perl6/roast | 04:55 | |
05:05
BenGoldberg left
05:07
chenryn joined
05:18
gtodd left
05:19
gtodd joined
05:22
kaare_ joined
05:24
anaeem___ joined
05:26
tinyblak left
05:27
tinyblak joined,
anaeem1_ left
05:31
tinyblak_ joined
05:32
tinyblak left
05:45
jfredett left
06:12
anaeem___ left,
anaeem1 joined
|
|||
moritz | +1 | 06:15 | |
06:24
thou joined
06:28
kaleem joined,
thou left
06:36
tinyblak_ left
06:39
fhelmberger joined
06:43
fhelmberger left
06:53
dayangkun left
06:56
jack_rabbit left
06:57
vendethiel joined
07:00
vendethiel left
|
|||
masak | mornin', #perl6 | 07:06 | |
timotimo | blogs.perl.org/users/brad_gilbert/2...tions.html | 07:07 | |
07:09
erkan left
07:10
erkan joined
|
|||
timotimo | especially that last loop that wants to find out what the most precise rat representation of pi is should be much, much easier with a ... | 07:10 | |
but i don't understand the line "last unless $current.Rat"; probably has to do with the exact way pi-fraction is implemented | 07:13 | ||
also, why start the calculation of pi-fraction from the start each time; should be doable with a lazy list, too | |||
07:16
FROGGS joined
|
|||
masak | it's quite good code. | 07:18 | |
m: sub prefix:<1/>($x) { "it works!" }; say 1/ "test" | 07:19 | ||
camelia | rakudo-moar 315ec6: OUTPUT«it works!» | ||
masak | m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say 1/ 3/4; say 1/ 42; | 07:20 | |
camelia | rakudo-moar 315ec6: OUTPUT«0.0833330.023810» | ||
masak | m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say (1/ 3/4).perl; say (1/ 42).perl; | 07:21 | |
camelia | rakudo-moar 315ec6: OUTPUT«FatRat.new(1, 12)FatRat.new(1, 42)» | ||
masak | m: say (3/4).perl | ||
camelia | rakudo-moar 315ec6: OUTPUT«0.75» | ||
timotimo | ah, precedence too tight? | ||
masak | oh! | ||
m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say (1/ (3/4)).perl; say (1/ 42).perl; | |||
camelia | rakudo-moar 315ec6: OUTPUT«<4/3>FatRat.new(1, 42)» | ||
masak | indeed. | 07:22 | |
timotimo++ | |||
07:22
darutoko joined
|
|||
timotimo | that's exactly what brad gilbert was worried about :) | 07:22 | |
masak | heh :) | ||
masak .oO( unfounded, I tell you! unfounded! ) | |||
timotimo | the rosettacode on continued fraction has a pretty sweet bit of code that makes a lazy list for the continued fraction | 07:23 | |
rosettacode.org/wiki/Continued_fraction#Perl_6 - at the bottom of this section | |||
mapping .($x) over the triangle-reduction of the composition operator is a bit brainfucky if you're not familiar with continued fractions :D | 07:24 | ||
map { @a[$_] + @b[$_] / * } - this is supposed to create a WhateverCode for every step of the way? | 07:25 | ||
masak | stability as a deliverable -- blog.rust-lang.org/2014/10/30/Stability.html -- interesting. | ||
timotimo | that is quite crafty, but close to "obscure", IMO | 07:26 | |
07:27
abraxxa joined
07:29
abraxxa left
07:30
abraxxa joined
07:32
Exodist left
07:36
immortal joined
07:39
erkan left
07:47
virtualsue joined,
rindolf joined
07:49
Sqirrel joined
|
|||
masak | timotimo: hm yes. not so obvious, IMO. | 07:51 | |
07:52
jack_rabbit joined
07:56
[Sno]_ joined
07:57
[Sno]_ left,
[Sno]_ joined,
[Sno] left,
[Sno]_ is now known as [Sno]
08:00
rindolf left
08:09
jack_rabbit left
08:11
rindolf joined
08:12
thou joined
08:16
thou left
08:19
gfldex joined
08:26
denis_boyun_ joined
|
|||
sergot | hi o/ | 08:28 | |
08:31
tgt joined,
denis_boyun_ left
|
|||
FROGGS | hi sergot | 08:37 | |
sergot: do we want to start working on server support based on HTTP::UserAgent code? | 08:38 | ||
because... HTTP::Easy is not that reliable | |||
nor fast... | |||
08:39
zakharyas joined
08:51
sqirrel_ joined
|
|||
masak | hi sergot | 08:55 | |
timotimo | i'd also like to find out at what places in the server code and farabi6 itself we can apply async i/o and concurrency | 08:59 | |
09:02
grondilu joined
|
|||
grondilu | say Blob.new but role {}; | 09:02 | |
m: say Blob.new but role {}; | |||
camelia | rakudo-moar 315ec6: OUTPUT«This REPR cannot change type in any mixin at src/gen/m-Metamodel.nqp:1178 in sub infix:<but> at src/gen/m-CORE.setting:18615 in block <unit> at /tmp/ndgTcgM7NT:1» | ||
09:02
brrt joined
|
|||
grondilu | p: say Blob.new but role {}; | 09:03 | |
camelia | rakudo-parrot 315ec6: OUTPUT«Representation does not implement change_type in any mixin at gen/parrot/Metamodel.nqp:1173 in sub infix:<but> at gen/parrot/CORE.setting:18736 in sub infix:<but> at gen/parrot/CORE.setting:18731 in block <unit> at /tmp/DzTxL_ZNoI:1» | ||
grondilu | n: say Blob.new but role {}; | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Undeclared name: 'Blob' used at line 1Unhandled exception: Check failed at /home/camelia/niecza/boot/lib/CORE.setting line 1502 (die @ 5)  at /home/camelia/niecza/src/STD.pm6 line 1147 (P6.comp_u…» | ||
grondilu | can't Blob be mixed in? | ||
moritz | nope | ||
09:04
virtualsue left
09:05
kjs_ joined
09:15
ptc_p6 joined
09:17
kjs_ left
|
|||
arnsholt | r-m: say Blob.new.REPR | 09:19 | |
camelia | rakudo-moar 315ec6: OUTPUT«VMArray» | ||
arnsholt | VMArray is the REPR that implements packed arrays. Adding fields to that wouldn't be a good idea, I think | 09:20 | |
09:26
bjz joined
09:30
rurban joined
09:32
mls left
09:33
mls joined
09:41
fhelmberger joined
09:45
davido__ joined,
kjs_ joined
09:46
kjs_ left
09:48
davido_ left,
sqirrel_ left
09:51
spider-mario joined
09:58
kjs_ joined
|
|||
dalek | rlito: 629bbbe | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - TODO update |
09:58 | |
10:00
thou joined
10:04
thou left
10:05
simcop2387 left
10:06
simcop2387 joined
|
|||
dalek | rlito: 2417608 | (Flavio S. Glock)++ | / (2 files): Perlito5 - parser - VSTRING tweak |
10:14 | |
rlito: 4d5d7c5 | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - parser - VSTRING tweak |
10:15 | ||
10:18
abraxxa left
10:19
abraxxa joined
10:25
virtualsue joined
|
|||
dalek | rlito: 1b95122 | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - TODO update |
10:26 | |
10:26
onur joined
|
|||
onur | Hi guys. I am wondering why $fh.say ("something"); is different than $fh.say("something"); | 10:26 | |
moritz | onur: background is that in perl 5, print (1 + 2) * 3 will print 3, not 9 | 10:28 | |
onur: that's because it allows whitespace between the routine name and the parameter list | |||
10:29
pecastro joined
|
|||
moritz | onur: to avoid that pitfall, Perl 6 disallows the whitespace | 10:29 | |
masak | parentheses-as-argument-list-container versus parentheses-as-grouping-circumfix-operator | ||
onur | I see, I am used to space after routine names. Need to change this habit. | 10:31 | |
masak | yes :) | ||
moritz | though for methods, you can also the colon | ||
$fh.say: 'something' | |||
onur: also, Perl 6 uses it disambiguate subruotines and keywards | |||
*keywords | |||
masak | and for subs you can `say\ ("something");` | ||
moritz | m: sub if() { 42 }; say if() | ||
camelia | rakudo-moar 315ec6: OUTPUT«42» | ||
masak | m: say\ ("something"); | 10:32 | |
camelia | rakudo-moar 315ec6: OUTPUT«something» | ||
moritz | that way later-introduced keywords won't break your function calls | ||
masak | or just not use the parens, of course. | ||
m: say "something"; | |||
camelia | rakudo-moar 315ec6: OUTPUT«something» | ||
onur | thats great. tyvm for explanation. | 10:33 | |
masak | yvw. | ||
sergot | FROGGS: I'm in! :) | 10:34 | |
masak | .tell lizmat getting a deprecation warning (in one of my in-production tools) for this line in the setting: github.com/rakudo/rakudo/blob/nom/...mar.pm#L16 | 10:41 | |
yoleaux | masak: I'll pass your message to lizmat. | ||
lizmat | messages, please | 10:42 | |
yoleaux | 10:41Z <masak> lizmat: getting a deprecation warning (in one of my in-production tools) for this line in the setting: github.com/rakudo/rakudo/blob/nom/...mar.pm#L16 | ||
lizmat | masak: what is the warning (more precisely?) | ||
masak | Method slurp (from IO::Handle) called at: src/gen/m-CORE.setting, lines 14114,14116 | ||
Deprecated since v2014.10, will be removed with release v2015.10! | |||
Please use IO::Path.slurp instead. | 10:43 | ||
sergot | FROGGS: btw. can't we apply timotimo's PR (github.com/supernovus/perl6-http-e.../17/files) to the HTTP::UserAgent module as well? | ||
10:43
ghostlines joined,
prevost joined
|
|||
masak | I don't really see why one'd need to do open/slurp/close there instead of just slurp. | 10:45 | |
we don't even take in a filehandle, we take in a string. | |||
lizmat | testing this diff now: | ||
- my $fh := open($filename); | |||
- my $match := self.parse($fh.slurp, |%opts); | |||
- $fh.close; | |||
+ my $match := self.parse($filename.IO.slurp, |%opts); | |||
masak | lizmat++ | ||
is `$filename.IO.slurp` preferable to `slurp($filename)`? | 10:46 | ||
10:46
rurban left
|
|||
lizmat | Stage parse : moar(22247,0x7fff7bf29310) malloc: *** error for object 0x7ff92d0efd10: pointer being freed was not allocated | 10:46 | |
*** set a breakpoint in malloc_error_break to debug | |||
grrrr | |||
masak | :( | ||
lizmat | (sorry Grrrr) | ||
sometimes this happens... could be just a matter of adding some whitespace to not have that anymore | |||
did I mention that rakudo feels less stable lately ? | 10:47 | ||
masak | dunno, but that's something to take seriously. | 10:49 | |
Grrrr | :) | ||
masak | can this be traced back to some point? | ||
FROGGS | sergot: hmmm, but then we should also profile it... so that we can be sure it is a speedup for HTTP::UA | ||
masak | maybe even worth doing a bisect to try to find what introduced the instability. | ||
lizmat | but what to bisect? | ||
FROGGS | you cannot bisect a Heisenbug | 10:50 | |
lizmat | Moar? nqp? rakudo? we don't really have bisect tool that works on all 3 parts | ||
FROGGS: this is not a Heisenbug: it reliably fails with the same error | 10:51 | ||
FROGGS | that's not the problem... the problem is that this is likely to be a bug in moarvm (or rakudo's extops), and you can't just build a very old moar | ||
(because current rakudo uses nqp::closefh_i, which is just a few days old) | |||
and that's just one recent example | 10:52 | ||
lizmat: to me a Heisenbug is something that changes its behaviour when you poke it... | |||
so when you add diagnostics to the setting for example, it is likely that it will vanish | 10:53 | ||
lizmat | to me a Heisenbug is different results *without* poking | ||
FROGGS | or remove unrelated stuff for that matter | ||
"In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it." | |||
wikipedia - always right :P | |||
lizmat | hehe | ||
ok, fair enough | 10:54 | ||
10:55
brrt left
|
|||
FROGGS | if I had an osx box I'd probably build the setting under valgrind | 10:55 | |
though, it could also mean that it works out in that combination | |||
lizmat | yeah | 10:56 | |
in this case, adding a dummy method, makes it work :-( | |||
dalek | rlito: 5946b0f | (Flavio S. Glock)++ | src5/lib/Perlito5/Javascript2/Runtime.pm: Perlito5 - js - overload wip |
||
lizmat gets valgrind | 10:58 | ||
masak: slurp $filename will just do the $filename.IO.slurp for you | 10:59 | ||
dalek | kudo/nom: 6fc0d5e | (Elizabeth Mattijsen)++ | src/core/Grammar.pm: Simplify .parsefile, spotted by masak++ Please note there is a dummy method in there, as without it, the settings would not compile: instead you would get: Stage parse : moar(22277,0x7fff7bf29310) malloc: *** error for object 0x7fda5c32bf40: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug |
11:01 | |
11:02
ptc_p6 left
|
|||
sergot | FROGGS: when do you want to start working on this HTTP server? | 11:06 | |
11:06
TuxCM left
11:10
TuxCM joined
|
|||
Ulti | another second off of my little benchmark :) so that's a 12.5% speedup in a couple of days! I assume it's the changes I noticed to Grammar? | 11:14 | |
FROGGS | sergot: maybe this evening? | 11:26 | |
lizmat | alas, valgrind doesn't build for me :-( | 11:27 | |
11:27
chenryn left
|
|||
lizmat | make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'. Stop. | 11:27 | |
sergot | FROGGS: ok :) | 11:28 | |
11:31
kurahaupo joined
11:38
kaleem left,
kaleem joined
|
|||
lizmat | putting a symlink in /usr/include to XCode's mach dir, brings me a lot further | 11:38 | |
11:38
kaleem left,
kaleem joined
|
|||
lizmat | now problems in linking :-( | 11:39 | |
11:41
kaleem left
|
|||
lizmat gives up on valgrind for now | 11:43 | ||
11:45
bjz left
11:48
thou joined
11:49
bjz joined
11:50
mls left
11:52
thou left
11:58
tinyblak joined
|
|||
dalek | kudo/nom: 4187566 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm: Initial version of IO::Dir Not used anywhere yet |
11:59 | |
12:01
abraxxa left
|
|||
timotimo didn't notice changes to Grammar | 12:02 | ||
moritz | we really are running in circles | 12:04 | |
12:04
tinyblak_ joined
|
|||
moritz | we had IO::File and IO::Dir objects in the path, and unified them to IO::Path; now we have IO::Path and IO::Dir again :-) | 12:05 | |
lizmat | so, are you saying I should stop working on this ? | ||
moritz | I'm not | 12:06 | |
lizmat | I mean, if we really are running in circles, it just show we haven't found the real solution yet | ||
*shows | |||
moritz | I'm merely remarking that we had that in the past, and it turned out to be not beneficial | ||
maybe the version you are writing will be, though | |||
lizmat | what was the reason for getting rid of it in the past ? | ||
moritz | 1) there was a big overlap between IO::Path and IO::Dir | 12:07 | |
2) it was a hassle to always generate the right one (Path vs. Dir), with not much benefit | |||
12:07
tinyblak left
|
|||
moritz | 3) it put the hassle of creating the right type onto the user too | 12:07 | |
lizmat | not much benefit from a perfomance point of view ? | 12:08 | |
fwiw, I would never put that in the hands of the user, unless they really want to | |||
moritz | I didn't benchmark it; I argued from a conceptual and ease-of-use PoV | ||
lizmat | I'm trying to make it easier to use *and* get better performance | ||
the user need not know whether it is an IO::Dir or an IO::Path that got created | 12:09 | ||
or returned from e.g. a dir() | |||
moritz | but if dir() returns a list of either, there should be a common role with the common functionality | 12:10 | |
12:10
leont joined
|
|||
masak | lizmat++ # doing really good work which incidentally has similarities to some good (but superseded) work from the past | 12:10 | |
lizmat | not sure of a common role yet | ||
but yes, I'm thinking of usurping the IO role for that | |||
moritz | both should support file tests, at the very least? | ||
lizmat | which would make perfect sense in light of the .IO coercer | 12:11 | |
yes, they wouild | |||
of course, .d on IO::Dir would just be True :-) | |||
12:11
ggoebel111111118 joined
|
|||
timotimo | the common role would be like FileTestable? | 12:12 | |
moritz | ... which lizmat++ killed at the start of the month :-) | ||
lizmat | yes, and which may get resurrected after all | 12:13 | |
shit happens :-) | |||
moritz | well, IMHO they should both also have in common that there's an absolute path and a basename | ||
luckily, 'git revert' is very easy | |||
12:15
ggoebel111111117 left
|
|||
lizmat | absolute path I agree with, basename I'm not sure yet :-) | 12:15 | |
indeed :-) | |||
12:16
ghostlines left
12:18
ghostlines joined
|
|||
PerlJam | greetings Perl people! | 12:28 | |
timotimo | hello PerlJam | 12:29 | |
thanks again for doing the release :) | 12:30 | ||
12:33
mauke_ joined
|
|||
PerlJam | timotimo: welcome :) | 12:35 | |
Woodi | hallo #perl6 :) | 12:36 | |
PerlJam | hey Woodi | ||
12:36
mauke left
|
|||
masak | gureetings, PerlJam, Woodi | 12:36 | |
timotimo | saluton Woodi | ||
Woodi | is it possible in Perl 6 to use scalar as "base" of the class (like in Perl5) ? | ||
timotimo | "the class"? | 12:37 | |
masak | Woodi: what do you want to accomplish? :) | ||
Woodi | in v5 you usually use blessed hash refference, but using plain scalar was possible too.. | ||
masak | Woodi: what do you want to accomplish? :) | ||
12:38
mauke_ is now known as mauke
|
|||
Woodi | masak: just consider using strings as base for io::dir_or_something :) | 12:38 | |
but question is general | |||
masak | ah, so subclassing Str? | ||
lizmat | m: my $s = Set; $s.new(<a b c>).perl.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«set("a","b","c")» | ||
PerlJam | masak: IF you ever give the "goto" talk again (or just talk about your pause feature), consider mentioning pause as a testing or upgrade feature (you pause the execution and transport the cont to another machine for testing or you can upgrade software in place while it's paused) | ||
Woodi | no, just give methods to scalar | ||
12:39
kaleem joined
|
|||
masak | PerlJam: good point. | 12:39 | |
lizmat | m: my $s = "Set"; ::($s).new(<a b c>).perl.say | ||
camelia | rakudo-moar 315ec6: OUTPUT«set("a","b","c")» | ||
lizmat | Woodi: something like that? ^^ | ||
masak | Woodi: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo | ||
12:39
anaeem___ joined
|
|||
masak | m: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo | 12:39 | |
camelia | rakudo-moar 315ec6: OUTPUT«OH HAI» | ||
Woodi | lizmat: I do not know :) | ||
masak | Woodi: something like that? ^^ | ||
timotimo | m: my $s = "foo"; $s.VAR does role { method foo { say "OH HAI" } }; $s.foo; $s = "bar"; $s.foo | 12:40 | |
camelia | rakudo-moar 315ec6: OUTPUT«OH HAICannot assign to an immutable value in block <unit> at /tmp/aRXvvr19NP:1» | ||
timotimo | hmm. | ||
12:40
anaeem1 left
|
|||
Woodi | masak: probably... | 12:41 | |
moritz | m: my $s; $s := $s but role { method foo { say "OH HAI" } }; say $s.foo | ||
camelia | rakudo-moar 315ec6: OUTPUT«OH HAITrue» | ||
moritz | m: my $s; $s := $s but role { method foo { say "OH HAI" } }; $s.foo; $s = 42; $s.foo | ||
camelia | rakudo-moar 315ec6: OUTPUT«OH HAICannot assign to an immutable value in block <unit> at /tmp/pIy_t_P2h_:1» | ||
moritz | hah, it becomes immutable by mixing in | ||
timotimo | strange | 12:43 | |
moritz | actually I'm surprise that containers don't have an optimized representation | 12:44 | |
timotimo | as in: why doesn't this say "this repr cannot change type"? | 12:45 | |
12:45
mls joined
|
|||
moritz | m: my $s; $s := $s but role { method foo { say "OH HAI" } }; $s.foo; say $s.VAR.^name | 12:48 | |
camelia | rakudo-moar 315ec6: OUTPUT«OH HAIAny+{<anon>}» | ||
moritz | uhm | 12:49 | |
it didn't mix into the container :( | |||
timotimo | ah, hmm | ||
Woodi | but about IO::thingies, what we realy want ? end effect ~~ user experience... becouse for me it looks we want to _allow_ users to program exactly like in sh and in Perl5. and _this_ destroys clean api design... | ||
moritz | m: my $s; say $s.VAR.^name | ||
camelia | rakudo-moar 315ec6: OUTPUT«Scalar» | ||
timotimo | so "but" will decont | ||
which makes sense | |||
moritz notices he has no idea how VAR works | 12:50 | ||
12:50
mls left
|
|||
Woodi | C and Java do not care about users like sh, they just give api, user must use it :) | 12:50 | |
moritz | and there are reasons we want to program in Perl 6 instead of C and Java :-) | ||
12:51
mls joined
|
|||
Woodi | moritz: that's not explaining anything ;) | 12:51 | |
masak | no, it's more of a recommendation ;) | 12:52 | |
Woodi | so sh like user experience ? @a = dir "/etc"; for @a { chmode 000, $_ } # ? :) | ||
lizmat | dir("/etc")>>.chmod(0) | 12:53 | |
Woodi | it's perlish way, I like it :) | ||
12:53
ugator joined
|
|||
PerlJam | Woodi: Perl is glue still. Also, TMTOWTDI is about not constraining the user into some paradigm. IF the problem has more of a "sh-feel", then why not let the programmer have easy access to all the power Perl has to offer *and* let them code in a sh-way? | 12:54 | |
Woodi | but that convenience sugar must be wrapper over c/java-like apis | ||
in c you have struct DIR an you readdir it | |||
lizmat | Woodi: also on WIn32 ?? | 12:55 | |
12:55
anaeem___ left
|
|||
dalek | kudo/nom: 3f0f5ce | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm: Add chdir/open, handle //unc/ |
12:56 | |
Woodi | lizmat: c is just an example....... we _create_ our own api... | 12:57 | |
12:57
notfix is now known as xfix
|
|||
moritz | Woodi: right; and that's why we try to make them usable and so that they make sense | 12:58 | |
Woodi | but in c and java you have some object like Path or File or DIR and in sh you have just strings everywhere... what our api need to use ? | ||
and c/win/java/ whatever is all the same just use other names... | |||
moritz | Woodi: github.com/perl6/doc/blob/master/htmlify.p6#L88 | 12:59 | |
if we just used strings, file tests wouldn't be so easy | |||
and you'd have to worry about absolute vs. relative paths | |||
there are dozens of questions on perlmonks why some custom recursive directory traversal isn't working, and the answer is always "because readdir returns relative paths, and you have to prepend the current path" | 13:00 | ||
with IO::Path, those worries are all gone | |||
not to mention platform-specific path manipulations, which are a real PITA to get right | 13:01 | ||
huf | it's a pita even in unix-only stuff | ||
moritz | aye | ||
timotimo | fwiw, i hate paths :P | ||
huf | "did i add the trailing slash? can i concat to this string?" | ||
timotimo | you *never* concat paths as strings unless you *are* the path implementation :) | ||
huf | that's because they're a separate datastructure but we always use them in their string-serialied format | 13:02 | |
which is weeeeeird :) | |||
13:02
jfredett joined
|
|||
huf | the syscalls expect strings instead of path objects too :) | 13:02 | |
it's a bit like not having arrays, and just using csv-strings instead... | 13:03 | ||
moritz | tcl, I'm looking at you :-) | ||
PerlJam | heh | 13:04 | |
timotimo | huf: that's a very, very apt comparison | ||
huf | ... i've seen similar solutions when someone wanted to store arrayesque data in a mysql column :D | 13:05 | |
timotimo | yes, of course | ||
PerlJam | ... or multi-level data structures in Perl 4 ;) | ||
13:06
guru joined
|
|||
Woodi | moritz: with IO::Path you worry about directories... so you don't like 'sh'-like code: @a = dir; ? | 13:06 | |
13:06
guru is now known as Guest99576,
Guest99576 is now known as ajr_
|
|||
moritz | Woodi: I don't understand your question | 13:07 | |
m: my @a = dir | |||
camelia | ( no output ) | ||
moritz | that's how it can work with and without IO::Path | ||
Woodi | which one we need to implement ? :) | 13:08 | |
PerlJam | moritz: I think he's assuming a dichotomy between "objects" and "strings" there. | ||
Woodi | PerlJam: maybe I see difference in usage | ||
PerlJam | Woodi: Then please elaborate :) | 13:09 | |
dalek | rlito: 4b51a26 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - 0+ overload |
13:11 | |
13:12
Grrrr left
|
|||
PerlJam | It should be light outside but a passing storm makes it look like it's still early morning just before the sun comes up. | 13:13 | |
13:13
ajr_ left
13:15
ajr joined,
ajr left
13:17
ptc_p6 joined,
ajr joined,
mls_ joined,
ajr left
13:19
ajr joined,
ajr is now known as Guest28598
|
|||
lizmat | cycling& | 13:19 | |
Woodi | PerlJam: for me: a) we have IO::namehere package (or few of it) using objects like struct DIR in C and wrappers for users returning strings to allow shell like programming; b) grammar-like magical and complex objets; c) strings everywhere... which one is prefered ? | ||
13:21
mls left,
Guest28598 left
13:22
ajr_ joined
13:25
ugator left
13:26
Grrrr joined
|
|||
PerlJam | Woodi: Are you differentiating a) and b) based on efficiency concerns? Because I'd like to think that we can achieve something akin to a) *and* b) (simple, low-level-ish objects that can wield complex magic if needed) | 13:26 | |
13:27
kaare_ left
|
|||
Util | #ps time | 13:30 | |
moritz | there's still a parrotsketch? | 13:32 | |
PerlJam | heh ... that's exactly what I was thinking :) | 13:33 | |
moritz | and judging from the logs, it's even active-ish | 13:34 | |
13:35
kaleem left
13:37
thou joined
13:41
thou left
13:44
tinyblak_ left
13:46
ptc_p6 left
13:47
thou joined
|
|||
Woodi | PerlJam: I think that first part is user question: "how to use that thing ??". traditional or XXII-century like :) second: different implementation; and next is performance question. for now I have problems with using Match objects. and they are slow right now ? | 13:51 | |
timotimo | hmm, not sure match objects are much slower than they should be | ||
of course if you iterate over the list part, that's a GLR thing | 13:52 | ||
dalek | rlito: 2263d03 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - fix scope in "if" statement |
13:53 | |
Woodi | timotimo: so it's just my invalid "hunch" from gigantic output from 'say Match.perl' :) | ||
timotimo | if perlito6 is not going to be developed further, should we just get rid of the dalek notifications? | 13:54 | |
Woodi: .perl is slow, yes :( | |||
also it's kind of weird to see a "tree" of Match objects that all have the orig string set | |||
moritz | well, that's what they all | 13:55 | |
have | |||
timotimo | right | ||
moritz | .perl isn't supposed to be pretty, it's supposed to be exact | ||
timotimo | in theory, the perl output could have a local $foo that gets set once and referenced over and over again :P | ||
moritz | amusing fact: .perl on a match could just return "'abc' ~~ /(b)/" or so (that is, original string + regex that reproduces this match object) | 13:56 | |
timotimo | right, could :) | ||
13:57
kjs_ left
|
|||
Woodi | hey, I'm talking about gigantic size of Match object not .perl performance :) | 13:59 | |
big so must be slow :) | |||
if context could help to reduce unsed features in compile time then design in that way cold be perfect | |||
*unused... | |||
13:59
ajr_ left
|
|||
timotimo | Match objects all just reference the same string for orig, so that part is cheap | 13:59 | |
the from and to parts are just integers, so that's cheap, too | |||
13:59
tinyblak joined
|
|||
Woodi | still, yo need to get memory for all of that lists :) | 14:00 | |
timotimo | yeah | ||
Woodi | and allocating takes time | ||
timotimo | you'll get a little performance improvement if you turn not-really-needed captures into non-captures | ||
Woodi | huh ? :) | 14:01 | |
timotimo | well, if you have a (foo) inside your regex and you don't ever use the result, you could write [foo] instead | ||
then the list would be 1 shorter | |||
and lists are nested in perl6 match objects | |||
re-ordering groups and such can make a difference | |||
i have no measurements to back this up | 14:02 | ||
Woodi | will try to test it with grammar | ||
timotimo | good idea | ||
extra good idea if you can contribute a little benchmark to perl6-bench :) | |||
moritz | timotimo: you could just introduce a capture in token ws in the Perl 6 grammar, and measure setting compilation before and after | ||
timotimo | that reminds me, i should work the excel formula evaluation thingie into a benchmark | 14:03 | |
Woodi | so IO::Path idesign is specced as such automagic structre ? | ||
timotimo | i don't know what you mean | 14:04 | |
Woodi keyboard have problems... | |||
PerlJam probably wanted to have IO:: package to be like Match object... | |||
moritz | it's not a tree, if that's what you're asking | 14:05 | |
14:05
guru joined,
guru left
|
|||
Woodi | moritz: for now I just stuck on "automagic or not automagic" part :) | 14:06 | |
14:06
guru joined
14:07
guru left,
ggherdov_ left,
ggherdov_ joined,
ggherdov_ left,
ggherdov_ joined
|
|||
timotimo | what does that difference mean for IO::Path? | 14:07 | |
14:07
ggherdov_ is now known as ggherdov
|
|||
moritz | Woodi: an IO::Path is just a structure of three components: a volume, a directory, and a basename | 14:07 | |
Woodi: there's nothing magical about it | |||
14:08
guru joined
|
|||
Woodi | moritz: but IO::Dir appeared again... | 14:08 | |
moritz | Woodi: but IO::Dir isn't IO::Path | ||
14:09
anaeem1 joined,
guru is now known as Guest29601
|
|||
moritz | so I don't see how IO::Dir can affect the magicalness of IO::Path | 14:09 | |
Woodi | I just assume that IO subsystem wants to have nice design... | ||
moritz | it's a bit like "is this pen magical?" -- "no, it's just a pen" -- "but a glass of water showed up!" | ||
timotimo | i want that pen | 14:10 | |
moritz | then commit it :-) | ||
14:10
Exodist joined
|
|||
Woodi | I'm not sure I have skills to code something nicely... just can't stand circularity in discusions... | 14:11 | |
14:13
Guest29601 left
|
|||
masak | a very important quality in a language designer is the ability to entertain several, often conflicting world views at once, for comparison purposes. | 14:14 | |
timotimo | i sometimes imagine five impossible things before breakfast | 14:16 | |
PerlJam never really thought of cognitive dissonance as a feature | 14:17 | ||
masak | I'm not saying put the cognitive dissonance in the language :) | ||
just be able to handle it in order to evolve the language in a useful manner | |||
14:18
exixt left
|
|||
masak | basically be prepared for "the rules just changed, and here are the new rules", at all levels: parsing, AST manipulation, operators, builtins, types... | 14:18 | |
14:19
exixt joined
|
|||
moritz is glad he only designed tiny bits of the language | 14:19 | ||
[Coke] | dj_goku: (from backscroll) 2 tests are already checked in. theoretically, ingy has a repo with the code ready to go in it. These two efforts could probably be combined. they should probably not be run as part of "spectest", but maybe stresstest would work. | 14:22 | |
14:26
ajr joined
|
|||
PerlJam | moritz: I guess it's also good to design tiny bits because no one is going to name something after you. ("... then I performed the moritz maneuver to get my data in the right shape" :-) | 14:26 | |
14:26
kjs_ joined
14:27
ajr is now known as Guest19752,
Guest19752 is now known as ajr_
14:34
ruoso left
14:36
funjon left
14:39
anaeem1 left
|
|||
masak | well, now I just have to name something "the moritz maneuver"... | 14:39 | |
14:40
anaeem1 joined
14:41
dg left
|
|||
moritz | lying on your back, gazing at the sky | 14:41 | |
though given my history on the channel, it's more likely creating a useful but extremly ugly website/service, in the hope that somebody will make it pretty | 14:42 | ||
PerlJam | ... then I did the masak mangle so that my data sets were uniquely identified. | ||
14:43
funjon joined
|
|||
moritz | ... and I used the PerlJam Push to get them to the remote database | 14:43 | |
masak .oO( ...so the data didn't end up in a big Perl-jam ) | |||
PerlJam | heh | ||
14:43
ruoso joined
|
|||
masak | though "jamming with your Perl data" sounds like a pretty awesome talk title. | 14:43 | |
dalek | rlito: 19efcc6 | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - js - TODO update |
14:44 | |
[Coke] | tcl has arrays. :P | ||
moritz | [Coke]: I knew you'd speak up :-) | 14:45 | |
[Coke] | arrrr. | ||
14:47
ruoso left,
funjon left,
ruoso joined,
funjon joined
|
|||
[Coke] | looks like today is parrot's day to die. | 14:51 | |
masak | could you be more specific? | 14:52 | |
14:53
funjon left
|
|||
[Coke] | build failure (I assume) as all spectests are dying. | 14:53 | |
14:53
dg joined
|
|||
[Coke] | S02-lexical-conventions/begin_end_pod.t............"load_bytecode" couldn't find file 'CORE.setting.pbc' | 14:53 | |
masak confesses to having read that in a different way before the explanation... | |||
[Coke] | looks like the same error bit moarvm-jit | 14:54 | |
moarvm-nojit seems fine. | |||
96d6011 : introduce method for what? | 14:56 | ||
(yes, I get it. :P) | 14:57 | ||
14:57
ruoso left,
anaeem1 left
14:58
funjon joined
|
|||
masak | ah, use and mention. we meet "again". | 14:59 | |
moritz | [Coke]: 10 seconds after I pushed I realized I should have used quotes :-) | 15:01 | |
15:03
ruoso joined
|
|||
[Coke] | jvm seems mostly ok today. | 15:04 | |
15:05
liztormato joined
15:07
araujo joined,
kaare_ joined
15:13
anaeem1_ joined
15:18
tinyblak_ joined,
tinyblak left
15:19
kurahaupo left
|
|||
[Coke] hurls blogs.perl.org/users/brad_gilbert/2...tions.html | 15:24 | ||
liztormato | BradGilbert++ | 15:26 | |
Or is he known by another name here? | 15:28 | ||
15:29
mls joined,
treehug88 joined
|
|||
masak | one very powerful idea of Qtree-powered macros -- just throwing this out there now because I'm really doing $work -- is the ability to take a Qtree node -- a class declaration, say -- and from that ask for the corresponding class type object. | 15:29 | |
that is, at compile time, you can correlate the definition of (say) a type with its actual runtime representation. | 15:30 | ||
that makes it very much not just "a game of words", a transformation of the source text itself (or the structure it induces), but also an interplay between that text and the things it represents during execution. | 15:31 | ||
15:32
mls_ left
15:39
tinyblak_ left
15:40
tinyblak joined
15:43
DetroitDan joined
|
|||
ugexe | whats the most perl6 way to swap 3 arrays? like (@a,@b,@c)=(@c,@a,@b)? i figured (@a,@b,@c).=rotate(-1); but that treats the array on the right hand of the assignment as a single array so its rotating the values of all arrays into 1 array which isnt what i mean to do | 15:48 | |
liztormato | And with $@a? | 15:50 | |
masak | m: my @a = <1 2>; my @b = <3 4>; my @c = <5 6>; :(@a, @b, @c) := (@c, @a, @b); say @a.perl # seems to work | ||
camelia | rakudo-moar 315ec6: OUTPUT«Array.new("5", "6")» | ||
PerlJam | ugexe: what was wrong with the straight-forward assignment? | ||
15:50
oetiker_ joined
|
|||
masak | PerlJam: it flattens (@c, @a, @b) | 15:50 | |
15:51
xinming_ left
|
|||
PerlJam | oh | 15:51 | |
masak | pre-GLR and post-GLR. | ||
PerlJam | masak++ for reading my mind on the follow-up question :) | ||
TimToady | the issue isn't so much flattening as it that assignment can't rebind a symbol | 15:52 | |
15:53
DetroitDan left
|
|||
ugexe | straight assignment works but if your array names are longer the code doesnt look quite so nice | 15:54 | |
15:54
DetroitDan joined
|
|||
TimToady | m: my $a = [<a a>]; my $b = [<b b>]; my $c = [<c c>]; ($a,$b,$c) = $c, $a, $b; say $a.perl | 15:55 | |
camelia | rakudo-moar 315ec6: OUTPUT«["c", "c"]» | ||
TimToady | there's how you could do it with assigment | ||
ugexe | i see | ||
TimToady | or you could put them into an array, and .rotate that | 15:56 | |
any reason the arrays have to be named? | |||
15:57
darutoko left
|
|||
TimToady | m: my @abc = (<a a>; <b b>; <c c>); @abc .= rotate(-1); say @abc[0].perl | 15:57 | |
camelia | rakudo-moar 315ec6: OUTPUT«$("c", "c")» | ||
15:59
darutoko joined
|
|||
TimToady | m: my @abc = (<a a>; <b b>; <c c>); my @a := @abc[0]; @abc .= rotate(-1); say @a.perl; # curious | 16:00 | |
camelia | rakudo-moar 315ec6: OUTPUT«("a", "a")» | ||
TimToady | nope, alias to array elem stays with the elem | ||
16:05
kaleem joined
|
|||
japhb | TimToady: Curious about the implementation's current semantics, or curious about whether you would agree or disagree with the result? :-) | 16:07 | |
16:13
anaeem1_ left
16:23
liztormato left
16:26
ajr_ left,
guru joined
16:27
guru is now known as Guest20677,
Guest20677 is now known as ajr_
16:34
kaleem left
16:38
kaleem joined,
[particle] left,
kaleem left
|
|||
TimToady | was just wanting to make sure my intuition matched reality, and it did :) | 16:41 | |
16:48
zakharyas left
17:00
ajr_ left
17:01
pecastro left
17:20
anaeem1 joined
17:21
araujo left
17:28
grettis joined
17:32
ghostlines left,
erkan joined,
davido__ left,
tgt left
17:33
immortal left
17:34
DetroitDan left
17:35
guru joined,
guru is now known as Guest48751,
Guest48751 is now known as ajr_
17:37
tgt joined
17:39
ghostlines joined,
ghostlines left
17:40
davido_ joined
|
|||
raydiak | good morning #perl6 | 17:49 | |
17:50
FROGGS_ joined
17:51
[particle] joined
17:52
virtualsue left
17:53
FROGGS left
17:54
Sqirrel left
17:57
Sqirrel joined
|
|||
dalek | rl6-roast-data: 02993e9 | coke++ | / (4 files): today (automated commit) |
18:06 | |
18:08
grettis left,
tgt left
18:15
grettis joined
|
|||
[Coke] | ^^ moar jit and parrot, DOA. | 18:19 | |
lizmat | [Coke]: at which commit ? | 18:20 | |
dalek | ast: bfa19a5 | (Elizabeth Mattijsen)++ | integration/advent2013-day14.t: winner is now called earliest |
18:23 | |
18:24
fhelmberger left,
tgt joined,
prevost left,
fhelmberger joined
|
|||
[Coke] | parrot: gist.github.com/coke/f2575a058941847dca6e | 18:25 | |
at rakudo 3f0f5ce | |||
18:26
molaf joined
|
|||
timotimo | could someone please implement select-your-own-installation-path for the rakudo star msi for moarvm at least? | 18:28 | |
18:28
fhelmberger left
18:31
bowtie joined
18:32
bowtie is now known as Guest93762
18:33
molaf_ joined
18:34
tinyblak left,
molaf left,
Alina-malina left
18:35
Alina-malina joined,
Alina-malina left,
Alina-malina joined
18:42
kjs_ left
|
|||
lizmat | [Coke]: I only see different flappers each run: gist.github.com/lizmat/a64eca487f56b35c6a61 | 18:43 | |
all of these run fine by themselves :-( | |||
18:57
kurahaupo joined
18:59
cognominal joined
19:01
kjs_ joined
19:05
kjs_ left
19:10
Isp-sec joined,
mauke left
19:15
cognominal left
|
|||
TimToady is testing a patch to make /$string/ run 7 times faster | 19:15 | ||
lizmat | b2gills++ (blogs.perl.org/users/brad_gilbert/2...ions.html) | 19:16 | |
19:17
immortal joined
19:18
erkan left
19:20
ivanshmakov left
19:24
araujo joined
|
|||
dalek | ast: 64db5b5 | TimToady++ | S05-metasyntax/litvar.t: \@array is not an array ref |
19:31 | |
kudo/nom: b908ce2 | TimToady++ | src/core/Cursor.pm: speed up /$string/, fix /$array/ to stringify INTERPOLATE was setting up a very slow loop to traverse a single item. It was also depending on $order sometimes being a Perl 6 value and sometimes being an NQP value. It was also incorrectly introspecting positionals that are supposed to be hidden inside of scalars. This method is still doing far too much introspection and should be split up into more specialized routines. |
|||
FROGGS_ | TimToady++ # you're fixing my mess :o) | 19:32 | |
TimToady | actually, more like 10 times faster on the s/$stuff/.../ test | ||
19:35
ivanshmakov joined
|
|||
geekosaur | wow, valgrind on the spectests is painfully slow | 19:37 | |
lizmat | geekosaur: are you on OS X? if so, how did you get valgrind to work ? | ||
geekosaur | macports install works fine, if sloooow, on 10.9.5 | ||
it doesn't like git for some reason but seems to be working otherwise | 19:38 | ||
but it's taken 3 hours to reach S01-magicals/args.t | |||
er, S02-magicals | |||
timotimo | oh wow. | 19:42 | |
[Coke] | geekosaur: oh, it's like spectesting jvm without the eval server. :) | 19:43 | |
FROGGS_ | Error while compiling, type X::Comp::AdHoc | ||
payload: Please use !! rather than : | |||
line: 14795 | |||
on parrot | 19:44 | ||
lizmat: does your setting build when you fix that? | 19:45 | ||
rakudo/src/core/IO/Handle.pm:56: $!pipe = $p ?? 1 : 0; | |||
timotimo | nativecall needs a bit of adjusting to be able to find the SDL2 libs ... | ||
lizmat | FROGGS_: will check | 19:46 | |
timotimo | hm actually | ||
maybe not! | |||
dalek | kudo/nom: cb99523 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Fix stupid P5o that crippled rakudo on parrot FROGGS++ for pointing it out |
19:47 | |
lizmat | did I mention how I hate VM dependent code ? | 19:48 | |
FROGGS_ | :o) | ||
ohh, then it can't have an effect for you on moar | 19:49 | ||
masak | m: my $p = 5; say $p ?? 1 : 0 | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/_dxlRLRSl7Please use !! rather than :at /tmp/_dxlRLRSl7:1------> my $p = 5; say $p ?? 1 ⏏: 0 expecting any of: postfix infix stopper …» | ||
lizmat | indeed, that's why I didn't notice it | ||
I run parrot only a few times a week | 19:50 | ||
masak | wait, you wrote code for parrot... but compiled it on moar...? | ||
19:50
anaeem1 left
|
|||
lizmat | no, if it had compiled on moar, I would have noticed it was broken | 19:50 | |
dir() is one of those areas in the settings that has VM dependent code for all 3 backends | 19:51 | ||
masak | I see. | ||
lizmat | actually, open() | ||
in this case | |||
masak | well, Rakudo's error message is pretty good in this case. | ||
[Coke] | so the moar failure was probably something else? checking... | 19:52 | |
lizmat | yes, it is.. :-) | ||
masak | the problem was more that the code didn't get tried before it got pushed. | ||
lizmat | masak: yup | 19:53 | |
19:53
grettis left
|
|||
lizmat | [Coke]: have you tried running spectest with MVM_SPESH_DISABLE=1 ? | 19:53 | |
I get a lot fewer test failures that way | |||
[Coke] | lizmat: no. | ||
moar jit didn't even build here. | 19:54 | ||
lizmat | huh? | ||
[Coke] | I just went back to the folder and typed "make" and it started building the setting. | ||
lizmat | is that a memory alloc error you're getting? | ||
[Coke] | ... and now it's building fine. probably the random moarvm segfault. | ||
19:54
kjs_ joined
|
|||
[Coke] | so yes, moarvm on osx, less stable :P | 19:55 | |
19:55
araujo left
|
|||
lizmat | I'll see if I can start a build late tonight under valgrind | 19:55 | |
japhb | TimToady: Is there a perl6-bench test that exposes the performance problem you fixed today, and if not, can you add one pretty please? | 19:56 | |
19:56
kjs_ left
|
|||
lizmat | FROGGS_: parrot builds again, running spectest now | 19:56 | |
FROGGS_ | cool | ||
[Coke] | lizmat: I have a beefy box here, I can try that also. | 19:59 | |
19:59
darutoko left
|
|||
lizmat | [Coke]: could you take 6fc0d5e980f and remove the dummy method from Grammar.pm ? | 20:00 | |
[Coke] | and see if it builds? | ||
lizmat | that was for me *the* way to create a memory allocation error during parsing | ||
that way it did not build for me | |||
adding the dummy method made it work | |||
20:01
anaeem1 joined
|
|||
lizmat | method wemusthavethishereotherwiserakudowontcompile { } | 20:01 | |
[Coke] | ok, doing a fresh build (at head, but minus that method) | ||
lizmat | not at 6fc0d5e980f ? | ||
at HEAD without that method, it builds for me | 20:03 | ||
FROGGS_ | timotimo++ # cpandatesters feels way faster today | 20:04 | |
lizmat | [Coke]: confirmed: only 6fc0d5e980f minus method breaks for me | 20:05 | |
[Coke] | so, rollback to that commit? ok. (head minus that worked fine) | ||
FROGGS_ | hmpf | 20:06 | |
[2014-10-31T20:05:53Z] GET /dists HTTP/1.1 | |||
Commands out of sync; you can't run this command now | |||
in method execute at lib/DBDish/mysql.pm6:170 | |||
timotimo | FROGGS_: oh no! what did i do! :-P | ||
FROGGS_ | timotimo: the HTTP::Easy PR | ||
[Coke] | ok. I can't easily rebuild nqp/moarvm here (because there's no way to force a rebuild of the defaults), building... | ||
worked fine. let me try in my non-standard build dir where I can start over easily... | 20:07 | ||
20:08
kjs_ joined
|
|||
b2gills | timotimo: "last unless $current.Rat" checks for a failure to convert to a Rat, originally I used Rats instead of FatRats and just checked for silent conversion to a Num | 20:08 | |
timotimo | ah, interesting | ||
also, ah that's you! :) | |||
b2gills | /msg nickserve info Brad-Gilbert | 20:09 | |
*nickserv | 20:10 | ||
20:10
BenGoldberg joined,
grettis joined
|
|||
[Coke] | lizmat: using defaults nqp/moarvm on a fresh build (building everything), at that rakudo rev, without that method, I have no issues. | 20:11 | |
20:12
anaeem1 left
|
|||
lizmat | [Coke]: ok, I'll try later tonight then myself under valgrind | 20:12 | |
20:13
anaeem1_ joined
20:15
anaeem1_ left
20:17
anaeem1 joined
|
|||
dalek | rl6-bench: 0192ab8 | TimToady++ | microbenchmarks.pl: add a test for scanning /$string/ |
20:18 | |
[Coke] | do we have a "how to use valgrind" doc somewhere? | 20:19 | |
sweet! I complain about stuff, and TimToady++ fixes it, write benchmarks, the whole deal! ;) | 20:20 | ||
TimToady | japhb: I did not test ^^^ except on the command line, so was just guessing on scale | 20:21 | |
20:22
anaeem1 left
|
|||
timotimo | [Coke]: usually you just "cat (which perl6) and call that with "valgrind" in front | 20:23 | |
20:24
virtualsue joined
|
|||
moritz | github.com/lucasbuchala/specs/comm...8b731L1628 is the s/general/specific/ correct here? | 20:26 | |
BenGoldberg | Or even, valgrind $(which perl6) ..., depending on your shell | 20:27 | |
[Coke] | danke. | 20:28 | |
dalek | nda/reporter: 14223c6 | (Tobias Leich)++ | lib/Panda/ (2 files): switch to new pipe() sub |
||
lizmat | FROGGS_: is that wise ? | 20:29 | |
won't that break code that is running on 2014.10 ? | 20:30 | ||
FROGGS_ | lizmat: it is a branch, which won't get merged soon | ||
lizmat | ok :-) | ||
FROGGS_ | this branch already relies on the new nqp::closefh_i op... so I can't merge it before 2014.11 | ||
20:36
xfix is now known as notfix
|
|||
tony-o | is there a way to find installed modules that *do* a role? | 20:39 | |
lizmat | installed? probably never, unless we add it to the META6.json | 20:41 | |
loaded? some introspection magic might be possible, but I wouldn't know atm | |||
tony-o | maybe available is a better word | ||
not loaded but present in the system | |||
japhb | TimToady: Understood. You can always just do: `./bench --tests=some,test_names --verbose time ...` or even `./bench --tests-tagged=included_tag,-excluded_tag --verbose time ...` to try out your new benchmark definition, and see how it's scaling and such | 20:42 | |
lizmat | tony-o: then only if it is somehow available in the meta info, and it isn't atm afaik | ||
tony-o | lizmat: thank you | ||
20:47
anaeem1_ joined
20:54
anaeem1_ left
20:56
lucas_ joined
|
|||
geekosaur wonders if this thing just froze or something. it took forever to get to args.t but now isn't even consuming cpu time | 20:58 | ||
lucas_ | moritz: hello. thanks for the note. | 20:59 | |
should it be spelled "an heredoc introduction line", then? | 21:00 | ||
I'm in doubt about the generic/specific roles as well. | 21:01 | ||
Does concatenation and replication/repetition makes sense on Blobs or just on Strs? | |||
21:02
jack_rabbit joined
|
|||
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: 5770453 | (Tobias Leich)++ | setup/cpandatesters_pg.sql: add initial postgresql setup |
21:02 | |
timotimo | postgres! <3 | 21:03 | |
if you have postgres trouble, feel free to ask me | |||
i may be able to halp | |||
masak | 'night, #perl6 | ||
FROGGS_ | timotimo: ohh, nice :o) | ||
colomon | o/ | ||
lizmat | gnight masak! | ||
colomon \o | 21:04 | ||
colomon | lizmat, o/ | ||
FROGGS_ | timotimo: that's the first thing I am going to do with postgres... | ||
colomon hopes #perl6 has been having a good Halloween while he was out and about. | |||
21:05
cognominal joined
|
|||
FROGGS_ | colomon: I had! it was fun to stroll around with $kids :D | 21:05 | |
lizmat | Halloween++ | ||
colomon | afk # back to carving out pumpkin guts. :) | ||
dalek | kudo/nom: aa28c0f | (Elizabeth Mattijsen)++ | src/core/IO.pm: Introduce filetest and abspath primitives At one point we probably want to have these live in a role. But at the moment it is unclear to me how that role would work in the different classes. So for now, I create these as primitive subs. And maybe they will stay this way, because they are better optimizing / inlining targets this way. |
21:07 | |
kudo/nom: 8117cbc | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Use filetest primives, add .rw and .rwx |
21:12 | ||
kudo/nom: b7f32f4 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm: More work on IO::Dir |
21:13 | ||
21:15
kjs_ left
|
|||
dalek | ast: 7bcc20a | (Elizabeth Mattijsen)++ | S17-supply/uniq (2 files): It's .unique now! |
21:16 | |
ast: 31e6e32 | (Elizabeth Mattijsen)++ | S17-supply/unique.t: Really, it's .unique now |
|||
kudo/nom: ba7eee2 | (Elizabeth Mattijsen)++ | t/spectest.data: It's really, really .unique now |
21:17 | ||
moritz | you are a .uniq*ue* snowflake! | 21:19 | |
[Coke] | I of course got the spec test and the rakudo in between thoe 2 commits. | 21:20 | |
geekosaur | mrr, I think this thing really did get stuck. guess valgrind doesn't quite work after all | 21:21 | |
21:22
firefish5000 joined
|
|||
lizmat | [Coke]" sorry | 21:23 | |
timotimo | valgrind does make things extraordinarily slow | ||
geekosaur | took kill -9 to exorcise it, even | ||
lizmat | well, valgrind takes the concept of a VM to a very high level :-) | ||
geekosaur | in 2 hours it had accrued zero cpu time | 21:24 | |
colomon | OO::Monitors and Text::Levenshtein::Damerau both failed the last two days smoke run | 21:26 | |
21:33
kjs_ joined
21:38
wollmers joined
|
|||
wollmers | \0 | 21:40 | |
timotimo | hi! | ||
21:41
kaare_ left
|
|||
japhb | In my console font, that looks like a large cyclops waving | 21:42 | |
(It uses a dotted 0) | |||
wollmers | m: "ab" ~~ :p5/a/; | 21:47 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/SAUsxEXZv4Bogus statementat /tmp/SAUsxEXZv4:1------> "ab" ~~ :p5/a/⏏; expecting any of: argument list postfix infix stopper …» | ||
wollmers | the specs lacck examples | ||
lack | |||
21:51
kjs_ left
|
|||
wollmers | m: "ab" ~~ m:P5/a/; | 21:52 | |
camelia | ( no output ) | ||
wollmers | m: "ab" ~~ m:P5/\X/; | 21:53 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/UwhrFp2zUHUnrecognized Perl 5 regex backslash sequenceat /tmp/UwhrFp2zUH:1------> "ab" ~~ m:P5/\⏏X/; expecting any of: colon pair (restricted)» | ||
wollmers | Is this a known bug? | 21:54 | |
BenGoldberg | p56: "ab" =~ /a/; | ||
camelia | p5-to-p6 : OUTPUT«'ab' ~~ m:P5!a!» | ||
21:54
treehug88 left
|
|||
BenGoldberg | p56: "ab" =~ /\X/; | 21:54 | |
camelia | p5-to-p6 : OUTPUT«'ab' ~~ m:P5!\X!» | ||
BenGoldberg | std: 'ab' ~~ m:P5!\X!; | 21:55 | |
camelia | std 14ad63b: OUTPUT«ok 00:01 160m» | ||
BenGoldberg | m: 'ab' ~~ m:P5!\X!; | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/8aoeIxFUdOUnrecognized Perl 5 regex backslash sequenceat /tmp/8aoeIxFUdO:1------> 'ab' ~~ m:P5!\⏏X!; expecting any of: colon pair (restricted)» | ||
dalek | osystem: b3337ee | tony-o++ | META.list: Add Fuzzy Equals operator 'feq' and related role adds clean, fuzzy distance operator for pleasant to say and read if statements (if $i feq $me { ... }) - |
||
21:56
kjs_ joined,
kjs_ left
|
|||
timotimo | how come we have uint32, but NativeCall doesn't know how to use it? | 21:57 | |
22:00
erkan joined,
erkan left,
erkan joined
|
|||
tony-o | colomon: ugexe is working on fixing Test::Levenshtein::Damerau | 22:00 | |
22:02
immortal left
22:05
raiph joined
|
|||
wollmers | std: "ab".comb(m:P5/\X/) | 22:05 | |
camelia | std 14ad63b: OUTPUT«ok 00:01 160m» | ||
wollmers | m: "ab".comb(m:P5/\X/) | 22:06 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/GLsnjuT06fUnrecognized Perl 5 regex backslash sequenceat /tmp/GLsnjuT06f:1------> "ab".comb(m:P5/\⏏X/) expecting any of: colon pair (restricted)» | ||
wollmers | std: "ab".comb(m:P5/\w/).say; | 22:07 | |
camelia | std 14ad63b: OUTPUT«ok 00:01 160m» | ||
wollmers | m: "ab".comb(m:P5/\w/).say; | ||
camelia | rakudo-moar 315ec6: OUTPUT«Cannot call 'match'; none of these signatures match::(Cool:D: Any $target, *%adverbs) in block <unit> at /tmp/wmYjaZ1NUc:1» | ||
22:09
cognominal left
22:11
virtualsue left
|
|||
moritz | wollmers: that can't ever work | 22:11 | |
wollmers: m// is an immediate match against $_ | |||
so you call .comb with a Match object, not with a regex | 22:12 | ||
m: say 'ab'.comb(rx:P5/\w/) | |||
camelia | rakudo-moar 315ec6: OUTPUT«a b» | ||
raiph | wollmers: say 'nope' if not $*RT.search: <\X backslash P5> :by 'raiph'; # prints 'nope' | ||
wollmers | moritz: this an example for the specs being not understandable | 22:18 | |
raiph: \X is valid P5 | 22:20 | ||
timotimo | hum. | 22:21 | |
i'd really like a "has CArray[uint8] $.bytes is length(58);" for NativeCall | |||
wollmers | it allows me to work with graphemes in Perl 5 | 22:22 | |
my @graphemes = $string =~ m/(\X)/g; | 22:24 | ||
raiph | wollmers: so \X is both NYI (not yet implemented) and a striking omission. | 22:25 | |
22:25
kjs_ joined
|
|||
wollmers | raiph: \X in P6 is specced as not \x (AFAIK) | 22:27 | |
raiph | wollmers: I meant \X under :P5 | 22:28 | |
timotimo | well, "int64 $.dummy1; int32 $.dummy2; int16 $.dummy3; int8 $.dummy4" is less terrible than having 56 int8 fields | 22:29 | |
wollmers | raiph: if :P5 should be fully compatible, then yes. | 22:30 | |
timotimo | spec says it's fully compatible! | 22:31 | |
raiph | wollmers: I personally think :P5 should be declared a post 6.0 feature | ||
22:35
kjs_ left
|
|||
wollmers | std: "ab" ~~ /\w/; | 22:35 | |
camelia | std 14ad63b: OUTPUT«ok 00:00 139m» | ||
wollmers | std: "!" ~~ /\w/; | ||
camelia | std 14ad63b: OUTPUT«ok 00:00 139m» | ||
wollmers | m: "!" ~~ /\w/; | ||
camelia | ( no output ) | ||
wollmers | m: "!" ~~ /\x/; | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/_OQBxrC7bDUnrecognized backslash sequence: '\x'at /tmp/_OQBxrC7bD:1------> "!" ~~ /\x⏏/; expecting any of: postfix infix stopper inf…» | ||
wollmers | std: "!" ~~ /\x/; | 22:36 | |
camelia | std 14ad63b: OUTPUT«===SORRY!===Unrecognized regex backslash sequence at /tmp/KK7cVrZPY3 line 1:------> "!" ~~ /\⏏x/;Check failedFAILED 00:00 139m» | ||
wollmers | std: "!" ~~ /\X/; | ||
camelia | std 14ad63b: OUTPUT«===SORRY!===Unrecognized regex backslash sequence at /tmp/8yHFCns1T7 line 1:------> "!" ~~ /\⏏X/;Check failedFAILED 00:00 139m» | ||
22:38
spider-mario left
|
|||
wollmers | std: "!" ~~ /\X7F/; | 22:38 | |
camelia | std 14ad63b: OUTPUT«ok 00:00 139m» | ||
22:38
tgt left
|
|||
wollmers | m: "!" ~~ /\X7F/; | 22:40 | |
camelia | ( no output ) | ||
wollmers | m: "!" ~~ /\x7F/; | ||
camelia | ( no output ) | ||
22:40
j4janicej is now known as j4jackj
22:45
grettis left,
lucas_ left
|
|||
raiph | wollmers: Have you tried mixing P6 and P6 using Inline::P5 yet? | 22:46 | |
22:48
cognominal joined
|
|||
raiph | s/P6/P5/ | 22:48 | |
wollmers | No. At the moment I am deeply lost in the details of diff (LCS) algorithms, where P6 is very slow, and P5 is not fast enough. | 22:49 | |
22:50
ClarusCogitatio left
|
|||
timotimo | oh damn, even p5 is too slow? | 22:50 | |
what chance do we have! | |||
22:53
rindolf left
|
|||
wollmers | timotimo: the port of the P5 Algorithm::Diff to P6 is 300 times slower. And I got A::Diff in pure P5 50% faster for average cases. | 22:53 | |
japhb | Sounds like an excellent benchmark to add to perl6-bench. *cough* | 22:56 | |
wollmers | The XS version is 4 times faster, i.e 80 kHz for n=10, d=4 (which is my average case for spelling correction) | ||
22:56
j4jackj is now known as j4janicej
|
|||
japhb adds "build a nice Perl 6 environment" to his "setup a new box" script | 22:57 | ||
22:59
raiph left
23:00
wollmers left
23:01
thou left
23:03
raiph joined
|
|||
timotimo | damn. i can't nativecast a CStruct | 23:13 | |
whhyyyyy | |||
FROGGS_: i have a feature request :) | 23:14 | ||
23:15
ajr_ left
|
|||
timotimo | it is now a zavolaj issue | 23:19 | |
23:20
virtualsue joined
23:23
Isp-sec left
23:24
grettis joined
|
|||
dalek | kudo/nom: 7ee9752 | (Elizabeth Mattijsen)++ | src/core/IO.pm: Primitives for basename and dir, for 3 backends |
23:26 | |
23:29
grettis left
23:34
wollmers joined
|
|||
wollmers | timotimo: This sort of algorithms is better written in C, a step better with bit vectors, and even fastest with bit vectors in the GPU (OpenGL/OpenCL) | 23:42 | |
timotimo | mhh, fair enough | 23:47 | |
dalek | kudo/nom: c7e4401 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm: Some more work on IO::Dir |
||
lizmat | and with that, I wish #perl6! good night! | ||
timotimo | good night, lizmat! | ||
wollmers | Oh, P6 has bitwise shift etc. Very nice for prototyping algorithms. | 23:50 | |
What would be idiomatic P6 for the P5: unshift @{ $bMatches->{$_} },$index++ for @$b[$bmin..$bmax]; | 23:55 |