»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
cxreg you know what i meant 00:00
but yeha
tadzik well 00:03
I see nothing wrong with publishing just grammars and nothing else
00:04 atrodo left 00:27 drbean joined 00:39 Crooky joined
Crooky fufrd go fu hrr`? 00:53
roh
00:53 tokuhirom left
Crooky eh, can't see the keyboard, nbmvmdif .. see yoiu tomorrow 00:53
01:00 am0c joined 01:04 scott_ joined 01:06 lichtkind left, xinming_ joined 01:09 xinming left
cognominal Génération of a json file is very slow. Recursive routine like to-json tends to concatenate at each level of recursion. would it not be possible to do lazy concatenation? Meaning doing the concatenations when the string are really needed. I suppose this is very different from full fledge ropes. 01:16
sorear push onto an array, then call .join at the end 01:22
cognominal sure enough, but I think that's eventually the compiler job. 01:23
anyway I will try it. The cost being loosing a chance to garbage collect the small chunks. 01:25
01:27 PZt joined, PZt left 01:31 Pzt3 joined 01:32 Pzt3 is now known as PZt 01:33 tyatpi left 01:34 mikemol joined 01:35 tyatpi joined 01:37 whiteknight left 01:40 cog_ joined 01:43 cognominal left 01:45 cog_ left, cog_ joined
[Coke] This is like string vs. stringbuilder. We could make an explicit stringBuilder, but @strings is so easy. 01:56
02:05 Crooky left 02:21 orafu left, orafu joined 02:25 arnsholt joined
flussence sorear: that would work... but the last time I had to do that in any language was because of IE6. :) 02:25
(wait, don't we already have a Cat object?) 02:26
sorear [Coke]: TimToady says Str should eventually be a rope with O(log n) concat, fwiw 02:27
03:04 Crooky joined 03:13 shinobicl joined
shinobicl hi 03:13
i'm having problems compiling rakudo .... 03:14
a lot of warnings on NativeCall.c 03:16
03:32 sudokode left 03:46 Crooky left 03:51 tyatpi left 03:58 drbean left 03:59 drbean joined
shinobicl has been any changes on the process of compiling rakudo? any new dependence? 03:59
04:01 _jaldhar joined 04:04 kaleem joined, abercrombie joined 04:15 kaleem left 04:16 abercrombie left 04:32 shinobicl left 04:38 BaggioKwok joined 04:47 mikemol left 04:55 birdwindupbird joined 04:56 BaggioKwok left
TimToady and quietfanatic have now made it to the Pacific Northwet... 05:06
sorear o/ TimToady 05:07
05:07 fhelmberger joined 05:12 prioli joined, prioli left
sorear bah. 05:19
2012/06/22 went by and I forgot to mark it
shachaf What happened on 2012-06-22? 05:20
sorear more to the point what happened on 2010-06-22
diakopter niecza bd?
sorear 2nd anniversary of the first commit 05:21
it's still a little hard to beleive it has been this long
dalek ecza: 414b1d6 | sorear++ | docs/announce.v19:
Draft v19 announcement
05:30
moritz sorear++ # two years niecza 05:33
phenny moritz: 25 Jun 23:44Z <diakopter> ask moritz I'd love to see a histogram of weekly #perl6 activity (the number of messages in a given time slice (1hr? 15min?), averaged over the past N weeks, for the whole week). Does your irclog db support such a thing?
moritz phenny: tell diakopter I pondered a simple activity stat by day, that would be easier on the DB 05:34
phenny moritz: I'll pass that on when diakopter is around.
moritz sorear: it would be even harder to believe you brought niecza to its current shape in less than two years :-) 05:38
05:51 kaleem joined 06:02 brrt joined 06:04 sudokode joined
pmichaud good morning, #perl6 06:09
sorear haha 06:11
good morning pmichaud :p
sorear wonders if pmichaud might not be in Texas today 06:12
pmichaud I'm in Texas, definitely.
my sleep schedule is off, though.
tadzik ho, you're like in Polish timezone :) 06:17
good morning
pmichaud sorear++ niecza++ # happy birthday niecza
sisar where is the .new class constructor specced properly? I can't find it in S12. 06:18
06:19 am0c left
pmichaud sisar: I don't know what "specced properly" means here; but the best is perlcabal.org/syn/S12.html#Construc...ialization 06:19
"All classes inherit a default new constructor from Mu. It expects all arguments to be named parameters initializing attributes of the same name." 06:20
sisar pmichaud: ah. Now that should be C<new> there. 06:21
pmichaud it is C<new> in the pod; I copied/pasted from the webpage 06:22
sisar oh, yes it is, duh !
the fixed width and the non fixed width fonts on the webpage don't look very different. 06:23
06:24 kaleem left 06:25 kaleem joined
sisar especially inline C<> tags are not easily discernible from normal text. 06:25
dalek c: 56fcbe0 | pmichaud++ | lib/Mu.pod:
Add Mu.new.
06:32
06:34 brrt left
dalek c: 6eb95cd | pmichaud++ | lib/Rat.pod:
Rat wordsmithing.
06:36
06:37 wtw joined
sisar r: class Point { has $.x; has $.y;}; my $A = Point.new(:x(1)); 06:37
p6eval rakudo 185f8f: ( no output )
sisar in ^, I did not initialize y to any value. I missed my chance to do it while construction of a new object. Now it is not possible to give a value to y without declaring it as "is rw" in the first place? 06:40
pmichaud sisar: as written, that's correct.
sisar how can I make sure that I when instantiating an object, I initialize all the attribute? 06:41
06:42 Telgalizer joined
pmichaud looking 06:42
sisar that, is can the compiler complain "hey, you missed your chance to give a value to y"
pmichaud I'm not sure there can be a compile-time check, but perhaps: 06:43
r: class Point { has $.x; has $.y; submethod BUILD($x, $y) {} }; my $p = Point.new(:x(1)); 06:44
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤ in submethod BUILD at /tmp/5mh6ODMYxp:1␤ in method BUILDALL at src/gen/CORE.setting:622␤ in method bless at src/gen/CORE.setting:607␤ in method new at src/gen/CORE.setting:592␤ in block <anon> at /…
moritz r: class Point { has $.x; has $.y; method new(:$x!, :$y!) { nextsame } }; my $p = Point.new(:x(1))
p6eval rakudo 185f8f: OUTPUT«Required named parameter 'y' not passed␤ in method new at /tmp/xPkVgVdrDg:1␤ in block <anon> at /tmp/xPkVgVdrDg:1␤␤»
moritz sorear: like this 06:45
sisar why was it expecting 3 parameters? x, y and ... ?
moritz self
sorear moritz: s/sorear/sisar/ ?
06:45 scott___ joined
moritz yes, sorry 06:46
sisar moritz: what is 'self' ?
moritz sisar: the invocant
the thing you call the method on
06:46 scott_ left
sisar moritz: i'm confused. This error "Not enough positional parameters passed; got 1 but expected 3", what would be the correct way to instantiate the object in pmichaud's example. 06:47
?
dalek ecza: bd1bd16 | sorear++ | FETCH_URL:
Update bootstrap
06:48
pmichaud r: class Point { has $.x; has $.y; submethod BUILD($x, $y) {} }; my $p = Point.new(:x(1), :y(2));
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤ in submethod BUILD at /tmp/T4vqcHXyyd:1␤ in method BUILDALL at src/gen/CORE.setting:622␤ in method bless at src/gen/CORE.setting:607␤ in method new at src/gen/CORE.setting:592␤ in block <anon> at /…
pmichaud hmmmmm
sisar yes, that.
pmichaud I wonder if there's a rakudobug there.
oh! 06:49
r: class Point { has $.x; has $.y; submethod BUILD($!x, $!y) {} }; my $p = Point.new(:x(1), :y(2));
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤ in submethod BUILD at /tmp/hZunQD2Gpo:1␤ in method BUILDALL at src/gen/CORE.setting:622␤ in method bless at src/gen/CORE.setting:607␤ in method new at src/gen/CORE.setting:592␤ in block <anon> at /…
moritz pmichaud: :$!x and :!$y in the signature 06:50
need to be named
pmichaud not according to S12
06:48 <dalek> niecza: bd1bd16 | sorear++ | FETCH_URL:
oops
submethod BUILD ($!tail, $!legs) {}
moritz then S12 needs updating 06:52
if they were positional, the BUILDALL routine would have to introsprect the names to determine the call order
s/call/argument/ 06:53
that's just absurd
pmichaud something has to do that introspection anyway 06:54
moritz no
it can just pass all to BUILD
and extra named arguments are ignored
pmichaud it can do that even with positionals 06:55
06:55 am0c joined
moritz but it doesn't need to introspect that way 06:55
and object construction happens often, so we should make it fast
also it doesn't make sense to introspect
pmichaud r: sub xy($x, $y) { say "x=$x y=$y"; }; xy(:y(2), :x(1));
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in sub xy at /tmp/_ipplh99wi:1␤ in block <anon> at /tmp/_ipplh99wi:1␤␤»
moritz because the names of positional arguments are not part of the API of the routine
pmichaud oh, did we get rid of that? 06:56
moritz we got rid of filling positionals by name
pmichaud okay.
then yes, S12 probably needs updating.
moritz I'm doing that
sisar 's learning efforts found a rakudobug yesterday and a wrong piece of code in spec today. Yay(?)
moritz sisar: yay indeed
dalek ecs: 7b1a298 | moritz++ | S12-objects.pod:
[S12] BUILD takes named arguments only

It was a left-over from the times when positional parameters could be filled by name.
06:57
moritz sorear++ # niecza v19
sisar but that has slowed me down
pmichaud S06 still has the sections that allow filling positionals by name.
sisar anyway, lunch & 06:58
sorear but only for explicit only subs, I think
sisar afk
pmichaud I don't see anything that limits it to only subs 06:59
okay, I see it now. 07:01
"Another benefit of this policy is that, for routines that allow it, named arguments may be bound to positional parameters. (This is allowed only on routines that are explicitly declared with either the proto or the only declarator.)"
r: only sub xy($x, $y) { say "x=$x y=$y"; }; xy(:y(2), :x(1));
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in sub xy at /tmp/C_waHma64j:1␤ in block <anon> at /tmp/C_waHma64j:1␤␤»
pmichaud r: only xy($x, $y) { say "x=$x y=$y"; }; xy(:y(2), :x(1)); 07:02
p6eval rakudo 185f8f: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in sub xy at /tmp/wpgjJro57H:1␤ in block <anon> at /tmp/wpgjJro57H:1␤␤»
pmichaud r: class Point { has $.x; has $.y; submethod BUILD(:$!x, :$!y) {} }; my $p = Point.new(:x(1), :y(2)); 07:04
p6eval rakudo 185f8f: ( no output )
pmichaud r: class Point { has $.x; has $.y; submethod BUILD(:$!x, :$!y) {} }; my $p = Point.new(:x(1), :y(2)); say $p.perl;
p6eval rakudo 185f8f: OUTPUT«Point.new(x => 1, y => 2)␤»
pmichaud r: class Point { has $.x; has $.y; submethod BUILD(:$!x!, :$!y!) {} }; my $p = Point.new(:x(1), :y(2)); say $p.perl;
p6eval rakudo 185f8f: OUTPUT«Point.new(x => 1, y => 2)␤»
pmichaud r: class Point { has $.x; has $.y; submethod BUILD(:$!x!, :$!y!) {} }; my $p = Point.new(:x(1)); say $p.perl;
p6eval rakudo 185f8f: OUTPUT«Required named parameter 'y' not passed␤ in submethod BUILD at /tmp/QPTGi4q5H7:1␤ in method BUILDALL at src/gen/CORE.setting:622␤ in method bless at src/gen/CORE.setting:607␤ in method new at src/gen/CORE.setting:592␤ in block <anon> at /tmp/QPTGi4q5H7:1␤␤»…
pmichaud okay, works for me now! 07:05
moritz well, if you do that in new directly, you have a nicer backtrace :-)
pmichaud yes, but then it's possible to still create Points with y uninitialized by deriving a custom new
moritz right
pmichaud by putting it in BUILD, y _must_ be provided. 07:06
(in all cases)
I do like the new version as well; I was just looking for something a little more enforced than what new could do 07:07
moritz pmichaud++ #p6doc patches 07:09
dalek c: 15f988c | moritz++ | lib/Mu.pod:
[Mu] .new only initializes attributes with accessors
07:10 fgomez left
pmichaud moritz++ # better patches 07:11
07:11 brrt joined
moritz pmichaud: well, some of yours were also better than mine. It's the sum (erm, how do you call the sum of two patches? merge?) that counts 07:12
pmichaud sum is good 07:13
07:17 immortal joined 07:18 odoacre joined, jaldhar_ joined 07:19 _jaldhar left, erkan left 07:26 kresike joined
kresike hello all you happy perl6 people 07:26
brrt morning kresike 07:27
pmichaud hello kresike 07:28
szabgab pastebin.com/JrNkCWSV
compile error on ubuntu
pmichaud szabgab: 32 bit, ooc? 07:29
szabgab 64 bit
in a virtualbox
pmichaud hmmmm
ubuntu 12.04 ?
kresike hello brrt, pmichaud 07:30
szabgab 11.04
brrt szabgab, whats HEAD?
szabgab with a perl 5.14.2 brew
just checked out
brrt: just checked out
brrt i have a debian amd64 here, so i'm going to see if i get the same thing 07:31
07:31 arnsholt_ joined
brrt whats your version of gcc? 07:31
07:31 lumi__ joined, orafu left
brrt (mine is 4.4 for the record) 07:31
07:32 libertyp1ime joined, TimToady_ joined, orafu joined
szabgab brrt: 1 min # rebooting 07:32
07:32 Helios joined
pmichaud szabgab: several people have reported things like the "invoke not implemented for class ..." error but I don't know that we've been successful in reproducing it. This looks really helpful. 07:32
szabgab for the record, I was running aptitude safe-upgrade during the same time
so that migth have interfered
I try it again
pmichaud I might try installing 11.04 somewhere and see if I can get the failure.
szabgab pmichaud: wait till I retry 07:33
but for me don't do it, I can install 12.4 instead
brrt .. i have to rebuild nqp first, but it won't take too long
szabgab and probably I should anyway
just let me know if it imporant for you to research this - then I keep the 11.04 otherwise I just install the newer 07:35
ubuntu
07:36 arnsholt left, libertyprime left, Khisanth left, felher left, takesako_ left, Helios` left, TimToady left, lumi_ left 07:37 mtk left 07:38 pupoque joined
brrt i have a similar enough version 07:39
dalek c: 3abb273 | pmichaud++ | lib/Real.pod:
Real.pod wordsmithing on floor and ceiling.
c: 15b5ca0 | pmichaud++ | lib/ (3 files):
Miscellaneous typo and punctuation improvements.
pmichaud szabgab: okay, I'll wait til you retry, at least for now. 07:40
actually, I should get a bit more sleep here; so I'll bbl
sisar n: class foo { has $.x;}; my $obj = foo.new; $obj.x = 42; say $obj.x; 07:41
p6eval niecza v19-1-gbd1bd16: OUTPUT«42␤»
sisar whoa, niczabug !
moritz sisar: niecza doesn't do the whole rw/ro distinction yet 07:42
sisar (niecza allows writing via read-only accesor)
moritz: oh.
ok
r: class foo { has $.x;}; my $obj = foo.new; $obj.x = 42; say $obj.x;
p6eval rakudo 185f8f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at /tmp/8g7OhGqtkQ:1␤␤»
sisar moritz: would you call ^ missing line no. or wrong line no.? 07:43
missing, i think
moritz :1
that's the line number
sisar moritz: that's the line no. of the (start) of block, not where the error occured 07:44
sorear sleep&
moritz sisar: it's all line 1, no? 07:45
I mean, where's the newline that would make it line 2?
07:46 fgomez joined
sisar moritz: oh right, here it is a single line. But if you split it out into sevaral lines, put it in a file, and still we get the same error: gist.github.com/2994193 07:47
diakopter r: class foo {␤ has $.x;};␤ my $obj = foo.new;␤ $obj.x = 42; ␤say $obj.x;
phenny diakopter: 05:34Z <moritz> tell diakopter I pondered a simple activity stat by day, that would be easier on the DB
p6eval rakudo 185f8f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at /tmp/YHN4Q_D4Xm:1␤␤»
moritz yep, looks wrong 07:48
sisar files the bugreport
done, RT #113848 07:51
07:52 mtk joined 07:54 SatoAmbush joined
moritz sisar++ 07:59
08:01 pupoque left 08:04 Khisanth joined 08:05 pupoque joined
szabgab after updating and restarting ubuntu (still 11.04 though) and after removing the parrot subdir, I could successfully run the Configure part 08:07
and the make part
08:09 felher joined, takesako_ joined
dalek kudo/nom: 11b9d5e | pmichaud++ | src/core/Mu.pm:
Add zero and 1 argument forms of infix:<=:=> and infix:<eqv>.
08:12
08:14 fgomez left 08:15 fgomez joined 08:18 Vlavv left
jnthn morning 08:23
RT #113848 may be fixable my marking the auto-generated attribute accessor closure in Attribute.pm with the hidden-from-backtrace trait. 08:25
*by
08:26 ocharles left
moritz jnthn: it's probably not that easy 08:29
jnthn: there's just a single line of backtrace; when we mark one routine as hidden_from_backtrace, and it makes any difference, then we'll have no more backtrace lines at all 08:30
ok, it's better to report nothing than a wrong location, but it'll still be LTA
08:30 ocharles joined 08:31 vmspb joined
jnthn moritz: oh, and of course the error does not occur in the mainline... 08:31
moritz: er, i mean
does not occur in the accessor
It occurs in the mainline. 08:32
moritz right
jnthn Hmm
moritz still there's something odd there 08:34
often the mainline confuses the line number generation
but
if I wrap the whole thing into a routine and all it, it *still* says line 1
s/all/call/ 08:36
perlpunks.de/paste/show/4fe974b5.1907.15c # that's wil --ll-exception 08:37
and the error occurs on line 8
oh 08:38
it seems that all assignment errors produce wrong/missing line numbers
could it be that assignment op simply misses the :node thing?
08:40 dakkar joined
moritz ah yes 08:41
moritz tries to fix
moritz hates passing $/ inwards. It's easy to forget.
yet I don't know if there are better alternatives 08:44
tadzik .u ờ 08:48
phenny U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE (ờ)
jnthn Sounds deadly. 08:50
moritz ok, I have a patch that works. Spectesting now. 08:52
08:56 vmspb left 08:59 felher left, takesako_ left 09:00 felher joined, takesako_ joined
dalek kudo/nom: 1ffd6cf | moritz++ | src/Perl6/Actions.pm:
add line annotations to assignment operator
09:03
jnthn moritz++
moritz
.oO( I have a truely beautiful test for that, but it doesn't fit on this margin. Sorry! )
09:07
dalek ast: 824e965 | moritz++ | integration/error-reporting.t:
test line number of error for assignment to non-variable, RT #113848
09:08
frettled :) 09:09
jnthn $!.backtrace.any.line == 3
<3
That's cute :)
moritz aye :-)
things like that make my exception work seem worthwhile 09:10
09:19 ab5tract joined 09:23 pupoque left 09:24 SatoAmbush left
szabgab has dir() changed recently? 09:30
tadzik I think so 09:31
moritz szabgab: yes
szabgab on one machine it returns a bunch of Str -s on the other on IO-s
moritz szabgab: it uses to return strings, now it returns IO's
szabgab and the second one is newer machine
ok
09:31 [hds] joined
szabgab so much about backword compatibility :) 09:32
moritz yes :/
szabgab is rebuilding rakudo on the desktop as well
moritz was not too pleased about the change
szabgab will have to add some tests to his own code
moritz szabgab: another change is that dir() now appends the path 09:33
ie dir('/foo') now returns /foo/a.txt, /foo/b.txt instead of a.txt, b.txt 09:34
szabgab oh, yeah, that explains more of my code break !
and I wrote this 2 days ago
frettled moritz: what? 09:35
hm
pmichaud we commit to backward compatibility for things going forward from here; not necessarily backward compatibility with what we had a year ago :)
frettled struggles to find this in a synopsis, it does not appear to be in S16… 09:36
szabgab well, dir() was returning Str-s about 3 days ago
pmichaud okay, I didn't notice that change.
frettled Ah, wait, S32
in the setting library, d'oh 09:37
«Returns a lazy list of file names in the $directory. By default the current and the parent directory are excluded, which can be controlled with the $test named parameter. Only items that smart-match against this test are returned.
szabgab I noticed this becasue my code behaved differently on the desktop where I built rakudo a few days ago and on my notebook that I build 2 hours ago
frettled This will make directory content parsing a bit of a nuisance. 09:38
moritz szabgab: sorry about that
pmichaud what behavior did the release have, out of curiosity?
moritz pmichaud: the new one :(
pmichaud so, the behavior changed from 2012.05 to 2012.06 ? 09:39
moritz pmichaud: yes
szabgab I thin Str-s and showrt names are better but I am not a big on API
moritz frettled: I think we should have a .file method that returns just the file name
pmichaud okay, I'm not quite as concerned then. 2012.06 is really the baseline I'm wanting to establish.
moritz and maybe .Str to that
frettled moritz: I think that's complicating things :
:)
In my work, I write routines for handling filenames etc. quite a bit. 09:40
moritz frettled: if the default stringifcation is just the file name, you can use it same as before, when the return values where strings
frettled In some cases, I want to open() all or a filtered list of the files in a directory. In that case, the current behaviour (lazy list of IOs?) seems reasonable.
moritz pmichaud: what kind of backward compatiblity do you want to establish?
pmichaud moritz: we need to be providing our users a more stable environment across releases 09:41
frettled But in most other instances, I want to filter the filenames, or fiddle with them, and then Perl 5's behaviour is much more sane.
pmichaud i.e., some sort of deprecation policy for API changes
frettled I cannot honestly think of any real world uses where it's useful to get the full or even relative path of all files in a directory listing. 09:42
frettled is not disagreeing with the notion of stability across releases, or with a deprecation policy, those are very good things to have. (Just in case I appeared to be critical of that) 09:44
09:45 am0c left
pmichaud ...am I reading the git log incorrectly? It looks to me as though &dir changed after the 2012.06 release. 09:47
moritz +1 to a reasonable stability policy
pmichaud: oh, you're right 09:49
pmichaud hmmmm
moritz which means we have to bundle the old ufo and panda versions in star
pmichaud well, we need to figure out how we're going to handle it
moritz oh, and it means that the changelog entry is in the wrong section 09:50
frettled There is one thing I don't get, which is probably due to not programming Perl 6 enough, and that is why dir() returns a list of IOs, and what it means :) The second is the most embarrassing part; does this have anything to do with the filesystem's implementation of files as e.g. inode refs? 09:51
pmichaud frettled: second part: no
moritz frettled: we kinda abuse IO for storing filenames and paths 09:52
pmichaud frettled: in this case, IO objects are more like path references
so, before, where &dir was simply returning a list of strings, it now returns IO objects from which one could get either the string or open the file directly
frettled Okay, so they are stale in the same way as the result of a Perl 5 readdir() are? 09:53
moritz frettled: so wrapping a path in an IO object kinda makes sense; it carries at least the same information as the file name, and makes it identifiable as being related to the file system
frettled: yes
09:53 bhtwloger joined
frettled pmichaud: aha, I was suspecting that about being able to open the file directly. 09:53
09:53 bhtwloger left
frettled Does that not add a bit of overhead? 09:53
moritz well, you can do that too 09:54
r: say dir()[0].open.get
p6eval rakudo 1ffd6c: OUTPUT«Cannot call 'open'; none of these signatures match:␤:(IO , $path, :r(:$r), :w(:$w), :a(:$a), :bin(:$bin), :chomp(:$chomp) = { ... }, Mu *%_)␤␤ in method open at src/gen/CORE.setting:7027␤ in block <anon> at /tmp/FJ2Ti4yQsE:1␤␤»
moritz r: say dir()[0].get
p6eval rakudo 1ffd6c: OUTPUT«Unable to open filehandle from path './star'␤ in method open at src/gen/CORE.setting:7034␤ in method get at src/gen/CORE.setting:7054␤ in block <anon> at /tmp/IeArQFO1k_:1␤␤»
moritz r: say dir().first(*.e).get
p6eval rakudo 1ffd6c: OUTPUT«Unable to open filehandle from path './star'␤ in method open at src/gen/CORE.setting:7034␤ in method get at src/gen/CORE.setting:7054␤ in block <anon> at /tmp/kc56XpWF3I:1␤␤»
moritz r: say dir().first(*.f).get
p6eval rakudo 1ffd6c: OUTPUT«# ~/.bashrc: executed by bash(1) for non-login shells.␤»
frettled Okay, that's cute. 09:55
But will we …
moritz in fact you don't have to open it, .get opens it for you
pmichaud and one could do .slurp or .lines on it as well
moritz (something which I don't really like, though I have trouble pointing my finger to what it is I don't like)
frettled My personal concern is that I do a fair bit of scripting where filesystem traversal performance actually matters.
moritz r: say dir().grep(*.f).map({ "$_.path(): {+.lines}" }) 09:56
p6eval rakudo 1ffd6c: OUTPUT«Malformed UTF-8 string␤␤ in method get at src/gen/CORE.setting:7057␤ in code <anon> at src/gen/CORE.setting:7078␤ in sub coro at src/gen/CORE.setting:5216␤ in method reify at src/gen/CORE.setting:5197␤ in method reify at src/gen/CORE.setting:4978␤ in method g…
moritz r: say dir().grep(*.f).map({ "$_.path(): {+.lines}" })[0]
p6eval rakudo 1ffd6c: OUTPUT«./.bashrc: 100␤»
frettled Naively, it looks to me as if this way of doing it will be significantly slower than merely getting a list of directory entries as strings.
pmichaud r: say dir().grep(*.f).elems
p6eval rakudo 1ffd6c: OUTPUT«22␤»
09:57 bhtwloger joined
pmichaud r: say dir().grep(*.f).map({ "$_.path(): {+.lines}" })[^5] 09:57
p6eval rakudo 1ffd6c: OUTPUT«./.bashrc: 100 ./test3.pl: 87 ./.profile: 22 ./Makefile: 131 ./.gitignore: 10␤»
moritz wow, where does the top-level .gitignore come from, I wonder? :-) 09:58
pmichaud frettled: so, perhaps we need a low-level &dir equivalent that returns strings.
Or, perhapd &dir is the low-level string thingy, and we need a higher-level function for what &dir has been changed to do now.
jnthn Um. If constructing objects is significantly slower than a FILE SYSTEM OPERATION we have a big problem. 09:59
frettled pmichaud: at least I think I would need it :)
jnthn: it depends on how well it scales 10:00
moritz well, we could have a Directory class that remembers its path, and has convenience methods such as .entries, .files, .subdircotries etc.
modulo typos
jnthn I'd imagine &dir is gonna be primarily I/O bound (though hopefully it hits a disk cache in the common case); whether we construct Str or IO should be a drop in the ocean comparatively.
pmichaud jnthn: well, it's not that long in the past that parrot/rakudo were the bottlenecks to IO processing and not the I/O itself.
frettled As a concrete example, I have a program (in rather awful Perl 5 code) that traverses a subdirectory, identifies candidates for scanning, and if filenames match, I check contents. 10:01
pmichaud remember the "read and concat 50000 strings test" ? ;-)
jnthn pmichaud: Yes, but I don't think assuming crappy implementation is the right way to do langauge design. ;-)
frettled Among the directories parsed, I can easily run into tens or hundreds of thousands of files in a single directory.
pmichaud frettled: object creation isn't likely to be the slowdown here. 10:02
frettled With some filesystems, yes, requesting the directory entries will be slow, but as jnthn says: don't assume crappy implementation.
jnthn I'm not objecting to having a version of dir (or dir itself) returning strings. Just find Str vs IO construction time being the argument a bit weird.
frettled Also: disks are not disks anymore. :)
moritz well, if we make dir() low-level, the file names should be returned as Buf's
jnthn frettled: Tell that to my laptop :) 10:03
moritz anyway, I'm warming up to the idea of reverting dir() to something more low-level, and build a better abstraction on top of it
jnthn Happily though, my desktop is endowed with SSD goodness :)
frettled jnthn's laptop: go get an upgrade ;)
pmichaud jnthn: historically it's been the case that moving from string I/O to object I/O imposes a noticeable slowdown, in Perl 6 as well as many other languages (more)
jnthn frettled: Yeah :)
szabgab dir("/home").map({ substr( $_, chars("/home/")) }) works for me :)
pmichaud I agree that it's less of an argument now in Rakudo than it once would've been, but the generic "I'm concerned about object overhead" is legitimate for many environments. 10:04
10:04 daxim joined
szabgab sorry 10:04
dir("/home").map({ substr( .Str, chars("/home/")) }) works for me :)
the previous was broken this 2nd works
frettled Oops, I'm getting a omnomnom interrupt here… 10:05
pmichaud seems like the first should've worked too.
moritz .map({ .split('/').[*-1] })
frettled: bon appetit!
in fact .map(*.split('/')[*-1]) should work too
r: say dir(/home/).map(*.split('/')[*-1]) 10:06
p6eval rakudo 1ffd6c: OUTPUT«Failed to get the directory contents of '_block1011': readdir failed: No such file or directory␤ in block <anon> at src/gen/CORE.setting:7319␤ in sub dir at src/gen/CORE.setting:7314␤ in block <anon> at /tmp/Pny4QSPPRN:1␤␤»
moritz r: say dir('/home/').map(*.split('/')[*-1])
p6eval rakudo 1ffd6c: OUTPUT«No such method 'split' for invocant of type 'IO'␤ in block <anon> at /tmp/I26jaOP6YM:1␤␤»
szabgab :)
moritz r: say dir('/home/').map(*.path.split('/')[*-1])
p6eval rakudo 1ffd6c: OUTPUT«moritz drain sorear tene ash snarkyboojum p6eval diakopter azawawi coke infinoid andara cygx tryrakudo szabgab japhb flussence tewk runpugs␤»
pmichaud IO isn't Cool?
moritz nope
pmichaud that's an issue for using it like a Str, then.
Timbus $ time perl6 -e 'dir'
real0m3.914s
$ time perl -E 'opendir my $d, "."; my @a = readdir($d)'
real0m0.008s
moritz Timbus: that is hardly informative 10:07
jnthn Timbus: That tells us nothing useful
moritz perl 5 is finished before rakudo has started up. News at 11 :(
tadzik :)
Timbus cold start for rakudo is .3
10:08 dylanwu joined
Timbus the directory has 6300 files 10:08
moritz oh, it's not lazy :(
Timbus neither is perl5 tho ssso its kinda fair
moritz Timbus: but you'll also find that perl 5 loops over a 6300 element list faster than rakudo 10:09
pmichaud fairer would be -MMoose
Timbus well im sure theres many reasons, but its obvious disk IO is not the bottleneck
dylanwu who can help me? plz, "Can't read configuration in database.conf: No such file or directory
at /var/www/ilbot/tools/../lib/IrcLog.pm line 22"
Timbus -Mmoose is .14 seconds for me
moritz dylanwu: I can help you, in private message
Timbus i.. i have a record of all these things for some reason 10:10
10:10 GlitchMr joined
pmichaud anyway, speaking personally I'm not worried about the speed aspects as much as I am the api change. :-(( 10:11
moritz same here 10:12
10:15 scott___ left
pmichaud more broadly, I'm thinking that IO is one of those things that is still a bit too slushy in Perl 6; we may need some staged development. 10:18
moritz aye
hey, we could experiment with that in another setting
pmichaud or even just a module
moritz right; our imports are lexical 10:20
pmichaud not everything has to go into the CORE.setting, especially for new/experimental stuff.
or "slushy" stuff.
well, I still need a bit of sleep; perhaps masak++ can comment on some of the above when he arrives :) 10:21
phenny: tell masak your thoughts on irclog.perlgeek.de/perl6/2012-06-26#i_5758924 would be welcome. 10:22
phenny pmichaud: I'll pass that on when masak is around.
pmichaud afk, sleep
10:57 binary_ left 11:01 JimmyZ joined 11:06 skids left 11:12 spider-mario joined
brrt irc.per.org seems to be on the dead side of living 11:35
perl.org
moritz brrt: huh? works for me 11:42
brrt can't connect at all 11:45
moritz I haven't tried to connect in quite some time, I'm just always on :-) 11:46
brrt: that network has two IPs, 217.168.150.167 and 209.221.142.115. If one doesn't work, pick the other
brrt thanks, i'll try 11:47
kresike what ? No IPv6 11:48
11:51 fglock joined 11:57 am0c joined 11:58 kaleem left 12:06 tokuhirom joined 12:22 _ilbot left, _ilbot joined
moritz kresike: no ipv6 it seems 12:23
kresike IPv4 is sooo yesterday ... :) 12:24
moritz ... and today too :-) 12:25
kresike unfortunately it's still pretty hard to get native IPv6 support
moritz though I do like all kinds of v6, perl and IP :-)
kresike now that you mention it, yes, I do like those too :) 12:26
12:30 skids joined
sisar moritz++ #fixing stuff :) 12:52
frettled moritz: Visual Basic, too? 12:56
kresike frettled, that's too basic to be fixed :) 12:59
frettled heh 13:00
13:02 PacoAir joined 13:07 mikemol joined 13:10 Psyche^ joined 13:11 Patterner left, Psyche^ is now known as Patterner 13:17 domidumont left, domidumont joined 13:18 domidumont left, dod1 joined, sergot joined
sergot hi o/ 13:18
13:19 dod1 left, domidumont joined 13:20 atrodo joined
kresike sergot, o/ 13:21
sergot kresike: o/
13:23 plobsing joined 13:26 hillu left 13:47 am0c left 13:48 JimmyZ left 13:56 JimmyZ joined 13:58 bluescreen10 joined
[Coke] arguments on p5p about whether "my ();" should be allowed. 13:59
r: my $a;
p6eval rakudo 1ffd6c: ( no output )
[Coke] r: my ();
p6eval rakudo 1ffd6c: ( no output )
[Coke] std: my ();
p6eval std 30385f8: OUTPUT«ok 00:00 41m␤»
jnthn It's just an empty signature.
(From the Perl 6 percpective.)
[Coke] is there ever a reason to /want/ my (); except when generating perl6 code lazily? 14:00
lazy not in the perl 6 sense? ;)
14:03 kaleem joined 14:05 bhtwloger left
jnthn [Coke]: No 14:07
[Coke]: It just falls naturally out of what we parse there anyway.
[Coke] so, on the principal of making things painful for the implementor, we should probably disallow that. 14:08
jnthn Why?
pmichaud on principal. 14:09
(principle?)
jnthn Tormenting the implementor is meant to produce a benefit for the user. :)
[Coke] I would like to know when I do something useless.
pmichaud well, the us.... what Coke++ said. :)
jnthn This seems to be an unbenefit for the portion of our users who are writing crappy code generators. :)
[Coke] but, I'm happy to leave that to p6lint.
jnthn Anyway, it's easy to forbid if we want to, I suspect. 14:10
[Coke] Doesn't have to be in the compiler itself.
pmichaud "do something useless" -- some would say that should go in the startup banner, then. "Oh, you're using Perl 6, so you're likely doing something useless."
:-)
[Coke] std: our ();
p6eval std 30385f8: OUTPUT«ok 00:00 41m␤»
14:11 eternaleye left
jnthn gets to do useless things with Perl 6 tomorrow at $client :) 14:11
pmichaud indeed, perhaps we should create a compiler called "useless". :-) Then we could justify our useless error messages.
pmichaud now discovers he's parsing "useless" as "use less". 14:12
dalek blets: 165149e | (Gabor Szabo)++ | docs/report.pl:
minor error checking
pmichaud I should probably get a bit more sleep.
jnthn Seems you could usemore :P
[Coke] pmichaud: hope everything's ok.
I also need more sleep. Workstress is not good for healthy living. 14:13
pmichaud [Coke]: yes, things are fine here; I've just gotten myself into a weird sleep schedule.
[Coke] okgood. 14:14
pmichaud (might be fallout from attending yapc::na, where I was too busy to sleep :)
dalek blets: 866f021 | (Gabor Szabo)++ | docs/index.txt:
update links
14:16
szabgab how are the tablets updaed on the web site? I made some minor fix 14:18
14:19 kaare_ joined
pmichaud szabgab: I think it's done by a cron job. 14:19
[Coke] Gabor!
szabgab [Coke]: !! 14:20
[Coke] are you related to: en.wikipedia.org/wiki/G%C3%A1bor_Szab%C3%B3 ?
szabgab the dead jacc guitarist?
jazz
[Coke] aye.
I'm guessing no. ;) 14:21
szabgab there are about 5000 people with this name, I think
"Gabor Szabo"
[Coke] ah, wow.
pmichaud the tablets README has some instructions on generating/publishing HTML; I wonder if it's up-to-date.
szabgab I am 529, if you care :)
[Coke] hee.
szabgab pmichaud: the generation part yes, I just don't know who can ssh
[Coke]: thats 23 ** 2 14:22
r: 23**2
p6eval rakudo 1ffd6c: ( no output )
szabgab r: say 23**2
p6eval rakudo 1ffd6c: OUTPUT«529␤»
szabgab yes
14:23 wtw left
szabgab and I aslso wanted to ask, what is the current opinion on documentation for Perl 6? 14:23
PerlJam szabgab: we need more of it! :) 14:24
szabgab Where should it be?
[Coke] depends.
szabgab is listening 14:25
[Coke] there's tablets (which, btw, has a TPF grant), docs, the book in the star repo, the spec, the source...
If you're writing something for users, I'd think about contributing to the first 3.
szabgab The question where should the parameters of dir() be described? 14:26
pmichaud most of my documentation contributions at the moment are towards the p6doc effort
szabgab (as an example)
[Coke] ooh, an interesting question on p6u 14:27
Woodi yo everybody
szabgab where is p6doc? 14:28
[Coke] I would like to see an answer as to what's the expected difference between tablets and p6doc.
pmichaud [Coke]: I see p6doc as a command-line tool.
tablets is almost exclusively web-based, I think.
p6doc is the perl 6 version of "perldoc" 14:29
szabgab: github.com/perl6/doc
14:29 arnsholt_ is now known as arnsholt
[Coke] Woodi: www.youtube.com/watch?v=SVObGJvY7qk...2115D6D22A 14:29
14:30 sergot left
[Coke] so, p6doc is like man pages, tablets can have more details and samples, and the book is for larning. 14:30
Woodi about dir, *: I heared (but more then year ago) there is no core in Perl6... so things in Rakudo and Parrot make some mess in my ideal imagination of perl6 implementation :) 14:31
14:31 lemmoner joined
Woodi -[Coke]-: I hope I'm not there on that video... youtube so video, right ? :) 14:31
PerlJam szabgab: Do you think you'll make some more Perl 6 screencasts? 14:32
szabgab PerlJam: its in the plans
Woodi heh :)
szabgab unless I get hired again :)
pmichaud maybe I'll try a screencast today. I keep punching 'reload' on the yapcna YouTube account hoping my talks will appear there soon.
[Coke]: yeah, that's a reasonable summary. mainly I want someone to be able to do "p6doc new" or (eventually) "p6doc '%%'" and get a short blurb describing what 'new' or '%%' does. 14:34
and, as important, "p6doc length" will tell you that 'length' doesn't exist and what to use instead :)
sisar pmichaud: screencast ?! yay ! topic ? 14:36
kresike iiuc p6doc is going to become something similar to perl5's perldoc
PerlJam kresike: but *way* better
pmichaud then when we get a good pod->html translator, we can have doc.perl6.org/length tell us about it. 14:37
kresike PerlJam, yes, that's self explanatory :)
pmichaud sisar: screencast; I've been thinking about doing a set of short screencasts on rosettacode examples.
sisar ++pmichaud++ :) 14:38
pmichaud "here's a Perl6 rosettacode example; here's the problem, here's how the Perl 6 solution solves it"
jnthn We already have a Perl 6 web server. We could have a p6doc --web that hosts the documentation for you locally then you can explore it in a browser. :)
pmichaud more to the point, we already have feather; we could set up doc.perl6.org/query/foo to go ahead and return the result of 'foo' as pod text (i.e., until we get the html translation in place) 14:39
jnthn Don't we already haz a Pod::To::HTML?
pmichaud we don't _have_ to wait for html translation before making it available online. Indeed, if it shows up as pod text, I think it might inspire folks to work on the translation 14:40
[Coke] Woodi: it's basically "hey woody"
jnthn I know, I more meant, I think we already have a module to do it :)
pmichaud jnthn: I see Pod::To::Text
aha: github.com/perl6/Pod-To-HTML/ 14:41
jnthn pmichaud: We ship Pod::To::Text in Rakudo. Pod::To::HTML is on modules.perl.org
flussence as the main person responsible for Pod::To::HTML, I must admit it's a bit crap at the moment
pmichaud or, perhaps the url should be perl6.org/p6doc/foo 14:42
TimToady_ good morning all
colomon o/
pmichaud TimToady_!!! o/
good morning
14:42 TimToady_ is now known as TimToady
jnthn morning, TimToady o/ 14:42
14:42 TimToady left, TimToady joined
rjbs guten morgen 14:42
TimToady tried to backlog last night, but he crumped instead 14:43
flussence (I had this ambitious idea a few months ago to separate out the part that iterates over the pod tree into a separate module, which would've made Pod::To::HTML much nicer to maintain, but never got around to getting it working...)
14:43 bhtwloger joined 14:44 crazedpsyc is now known as randomsolarisguy
moritz fwiw I want p6doc URLs to be doc.perl6.org/IO::Socket::INET#connect 14:45
pmichaud moritz: I'm fine with that as a result, but we probably also want a query form that redirects to the result 14:46
moritz aye
pmichaud I know that I've often liked php.net/strlen to quickly get me to the strlen documentation or an index of relevant pages
PerlJam yeah, that's one thing PHP got spot on was their web docs 14:47
(I used them *all* the time when I was coding PHP)
pmichaud so I'd like to be able to do, say, perl6.org/p6doc/pick and it gives me the documentation for 'pick' 14:48
14:48 randomsolarisguy is now known as crazedpsyc
tadzik sounds like a bailador app :) 14:48
jnthn ooh :) 14:50
14:50 bhtwloger left
PerlJam tadzik: were you talking the other day about extracting the pod-parsing into a module or did I imagine that? 14:52
masak wow, so I (1) got in just before the 2012.06 release and upset peoples code, but also (2) got in just before 2012.06 which is the new stability baseline? huh. 14:53
phenny masak: 10:22Z <pmichaud> tell masak your thoughts on irclog.perlgeek.de/perl6/2012-06-26#i_5758924 would be welcome.
masak reading it now.
also, sorry to everyone whose code I broke.
I'm pretty sure the change was for the better. we can discuss how to do this kind of change in the future.
pmichaud masak: I'm agreeing that thus far I feel more comfortable with &dir returning IO or something like it; I'm more interested in the managing slushiness part of the problem, since it's ripe. 14:54
masak aye. 14:55
still backlogging.
moritz I kinda feel that IO is not the proper abstraction for the return value
pmichaud I'm afk for a bit
moritz we should have something that stores dir and file name (or path and file name) separately
masak I've never felt comfortable with the set of uses IO closes over. I've just learned to accept it.
tadzik PerlJam: yep, probably 14:56
masak I think S16 has been under assault from various architecture astronauts over the years.
moritz and I'm kinda in favor of having a low-level dir reader, and something more high level with better suitable abstractions 14:57
[Coke] there's plenty of prior art here to pick from in terms of OO around the filesystem.
moritz like an IO::Dir which knows its own path, and can return a list of IO::Dir and IO::File objects when asked for its contents
[Coke]: do you have an example for a good API?
(off-topic: Ronja just learned to do a "high five" :-) ) 14:58
[Coke] moritz: I would start with Java/C# and perl6ify it from there. (in java, there is File, Path, Readers, Writers... I'm sure p6 doesn't want or need all of it, but it's a good place to start.) 14:59
masak high-fives Ronja!
flussence [Coke]: +1, I think IO should be broken up into a bunch of roles 15:00
masak moritz: I'm too old and tired to bikeshed IO and S16. you have my blanket approval to make any changes you feel are improvements.
flussence (taking dir for example, you obviously can't read/write it like a file, but it has a path like one.)
pmichaud from a stability perspective, I'd somewhat like us to "freeze" the existing IO spec, and perhaps build up replacements as modules in another space. 15:01
s/IO spec/IO implementation/
PerlJam Hrm. 15:02
You probably want to freeze the spec too though
moritz no
pmichaud no, not really.
moritz first it must make sense
sisar .oO ( in future, the file path will be like "dropbox.com/sisar/docs/foo.txt" or "drive.google.com/sisar/docs/foo.txt" ...) 15:03
pmichaud these days I'm somewhat not liking the synopses to be called "spec". In many ways they serve more as a "language plan" than a "specification"
15:03 thou joined
pmichaud even S01 says that the 'spec' is determined by the test suite; i.e., roast 15:03
JimmyZ TDD 15:04
pmichaud but IO is definitely an area where we know that we *don't* want to freeze what we have no, either in implementation or in the synopses
*we have now
PerlJam If someone reads the synopses and expects IO to work "as documented" but it doesn't because the synopses have changed based on implementation updates "in another place", that could be confusing.
jnthn There's probably a bunch of stuff in the IO implementation we can be pretty confident will not change. Like, "open", that you'll have some file-handle object you can .get/.lines/.say on, and so forth. One option is to declare those bits as permafrost, and the rest as slush. 15:05
PerlJam Especially since we've been telling everyone to look at the synopses as guides for how to do things
jnthn The average user probably doesn't care what class or role the thing they're calling comes from for the simple things.
And the design issues seem to be more around the less trivial scenarios and how to structure and factor the IO class/role hierachy. 15:06
pmichaud jnthn: yes, but at least in the present case it's a refactor that caused breakages.
and I'm not sure it's a "less trivial scenario" 15:07
(obtaining a list of files from a directory being fairly common in Perl)
jnthn pmichaud: I guess it's not about non-triviality and is more about confidence. 15:08
pmichaud given that a refactor can substantially change things; I don't have a lot of confidence about the current IO setup for much of anything.
jnthn *nod* 15:09
pmichaud even .get and .lines aren't really as solid as they might appear to be
for example, can I .get on a directory?
jnthn I dunno. I do know that you can on an ordinary file and that this had best continue to work :) 15:10
I agree IO needs a ton of work though.
pmichaud I think one could have said "this had best continue to work" for &dir, too :) 15:11
jnthn Maybe. Maybe I've just been here enough to have heard enough "hmm...but wait" comments about &dir to expect it may change. :)
moritz bits.netbeans.org/6.5/javadoc/org-o...bject.html # looks like a sensible API to steal from, at first glance 15:12
jnthn But I agree that's not something a typical user call use to make a call.
s/call use/can use/
pmichaud we have another ripe case -- the return value from $foo.match($pat, :g)
currently rakudo returns a list of Match objects, S05 says it should return a single Match object that encapsulates the global set 15:13
moritz hm
if we want to do that, we either need to be very careful about containerizing Match objects
or we need to have a flag in Match that indicates whether it should flatten
pmichaud not really, what determines flattening is the sigil 15:14
$/ is non flattening, @() flattens.
15:14 proller_ joined, proller joined
moritz that's not quite satisfactory (more) 15:14
suppose you want to implement Str.subst(:g, $regex)
now you call self.match(:g, $regex) 15:15
and you have to be able to know some stuff about the return value
15:15 proller left
moritz in particular you need to be able to distingish the case of several matches from the case of one match with several positional captures 15:16
currently both look the same
pmichaud yes, rakudo currently gets that wrong.
:g implies the "several matches case" even if there's only one match.
(at least according to S05)
jnthn ...matches case, or cases match?
moritz so it should return a match object which at .[0] has another Match object, which holds the captures? 15:17
pmichaud that's what S05 says.
moritz speaking of which
pmichaud I'm not sure I agree with S05 here, though.
moritz iirc the latest S05 also says that questionmark-quantified matches should not produce a result list, but rather return Nil or the submatch
rakudo needs updating to that too 15:18
pmichaud yes, I've been aware of that issue as well.
I was hoping to fix that in QRegex but it didn't happen before we made the grammar switchover.
That's also on my list of things to address.
moritz and since we are now talking about regexes, I'd love to see more reply to the latest question on p6u
I'm not sure if my answer was adequat 15:19
jnthn pmichaud: Are you pondering changing it for NQP as well as Rakudo?
pmichaud jnthn: yes.
jnthn pmichaud: Hm. But we don't have Nil in NQP.
pmichaud: What shall we use instead?
pmichaud Mu.
NQPMu, if needed.
jnthn OK.
pmichaud or just leave it unbound.
jnthn Yes, a type object. 15:20
15:20 lichtkind joined
jnthn Unbound is gonna end up meaning NQPMu in NQP soon anyway. 15:20
Undef Must Die.
:)
lichtkind o/
15:20 tokuhirom left
Woodi -moritz-: but would be nice if /p6doc/rest/api will not be so-so-many-levels-deep :) (except if not needed) 15:20
pmichaud (note that I've been studying .match in Rakudo quite a bit recently; preparing for a Str.match refactor and to resolve the :g-creates-too-many-$!target issue) 15:21
moritz Woodi: what exactly do you need a doc REST API for?
lichtkind pmichaud++ for his changes in my absense
jnthn pmichaud: Sounds good.
lichtkind szabgab++ too
pmichaud also, bizarrely, Str.match prevents me from fixing the laziness issues in ListIter. I don't understand why. 15:22
Woodi -moritz-: rest is quite natural and examples before was restfull
jnthn pmichaud: Mostly I just wanted to be sure you weren't planning on using Undef in NQP :)
moritz Woodi: that doesn't answer my question
pmichaud jnthn: I'm in total agreement that Undef must die; indeed, that's why I was once asking about having things automatically init to NQPMu.
Woodi ok, do not understand question then :)
jnthn pmichaud: Ah, yeah, I'd forgotten that. The answer is "they will when I get around to it" 15:23
pmichaud: Which will likely happen during the QAST migration.
moritz Woodi: the question is: what do you want to use a REST API in p6doc for?
pmichaud I'm not pushing for that quickly, fwiw. It can happen on its own accord.
moritz Woodi: I ask because the way to add docs (PUT or CREATE or whatever it's called in HTTP) is through git, not HTTP
jnthn pmichaud: The QAST, or the NQPMu? :)
pmichaud NQPMu 15:24
jnthn Ah
moritz Woodi: so I don't see much sense having a REST API
Woodi -moritz-: err... perl6.org/doc/substr - it short and restfull, just use it...
moritz Woodi: so you just want nice URLs, not a REST API?
Woodi "perl6.org/doc/substr" is not REST API ?
jnthn Most people understand REST wrong anyway. Like, thinking the URL structure is the most important thing and then forgetting hypermedia is actually the most important thing. :) 15:25
Woodi probably agree...
pmichaud in general, I'm fully on board with the idea of avoiding Parrot objects as much as possible; including (and especially) Undef. The only ones I'm interested in keeping are analogues to nqp::list and nqp::hash
(i.e., low-level list and hash types)
moritz Woodi: only if every URL is a REST API to you
afk 15:26
Woodi ok, pls push PAUSE button, well be back to that :)
jnthn pmichaud: Yeah, we'll always have something like that.
15:27 ab5tract left
PerlJam Woodi: HAve you read en.wikipedia.org/wiki/Representatio...e_transfer ? 15:27
pmichaud maybe we'll need a low-level IO type, too; I haven't thought about it that much.
afk for a bit
15:29 JimmyZ left 15:30 lemmoner left
Woodi -pmichaud-: just looked on it. and ? 15:31
oops
-PerlJam-: answer to you :)
15:34 lemmoner joined
Woodi you kicked me ? so silent here... 15:35
k, I want to remind something, maybe deserve it :) 15:36
some time ago I wrote about requirements for modules and still think it is good idea... 15:37
15:37 kaleem left
Woodi I planned to use XML::Something as example but IO popped 15:37
maybe few levels of biurocracy is not so bad :) 15:38
I planned to look on modules eg. XML in Perl5, Python, Ruby, C, ... and write some basic API. this can be start for modulecrafting 15:39
and such API would be generic, multilanguage, actual for centuries :) 15:40
k, afk :)
pmichaud back again 15:47
kresike bye all 16:01
16:01 kresike left 16:02 brrt left 16:08 revdiablo joined 16:12 alester joined 16:15 bluescreen10 left 16:18 stephenlb joined 16:34 [hds] left 16:39 proller_ left 16:42 proller_ joined 16:43 ILyuhan joined, cog__ joined
TimToady I think the most important API distinction has to do with whether the returned values represent the identity such that race conditions are possible or not 16:45
filenames as strings are always subject to race conditions
but opening files and returning file descriptors is subject to performance limitations 16:46
16:46 ILyuhan left
TimToady so we need both 16:46
16:46 cog_ left
moritz isn't there still room for race conditions between reading the file name and opening it? 16:46
16:47 Vlavv joined
TimToady depends on what capabilities the OS gives you to avoid that, I suppose 16:48
errands &
16:52 tyatpi joined 17:03 zby_home joined, proller_ left 17:04 dakkar left 17:07 zby_home left 17:30 birdwindupbird left
[Coke] [1] 23483 17:33
17:37 [particle]1 left 17:39 harmil left 17:44 [particle] joined
moritz fg 17:48
tadzik errands
17:49 cog__ left 17:51 cognominal joined 17:54 mucker joined 17:55 Chillance joined 17:57 fibo joined 17:58 brrt joined
sorear good * #perl6 17:59
jnthn hi, sorear 18:01
18:02 lemmoner left
colomon \o 18:02
18:05 fhelmberger left 18:14 kresike joined
kresike hello all 18:14
moritz \o 18:34
18:36 sergot joined 18:41 cog_ joined 18:44 cognominal left
[Coke] sorear: yay for another release. 18:58
sorear: any big plans for niecza in the coming months?
19:00 daxim left
colomon feels guilty for not doing more Niecza-hacking lately. 19:02
19:02 GlitchMr left
moritz colomon: I know another great project for you :-) 19:02
colomon: document all the trig stuff (and maybe other math stuff) in p6doc 19:03
colomon moritz: what?
hmmm...
colomon has paid no attention to p6doc yet.
pointers?
moritz colomon: I guess it's not too much effort actually; it's enough to mention each sub/method once (in Real or Numeric), even if it's implemented multiple times in different classes 19:04
colomon: github.com/perl6/doc/
19:05 bluescreen10 joined
colomon moritz: understand that lack of work on Niecza isn't because I don't know what to do there. it's more a sign life has been keeping me very busy lately... 19:06
but I've added p6doc to my todo list.
moritz colomon: I understand, and don't want to put any pressure on you, just wanted to bring it to your awareness 19:07
colomon moritz++
19:14 mucker left 19:16 brrt left 19:23 zby_home joined
dalek c: 8bac80e | moritz++ | lib/Match.pod:
document Match
19:24
19:25 [particle]1 joined 19:28 [particle] left 19:29 geekosaur left
flussence I just pushed some minor changes to pod2html, the most significant one is that it depends on URI now (instead of trying to do it itself, poorly :) 19:29
[Coke] flussence++
flussence (do we have anything like that for html-escaping? There's another thing I could chop out of the module...) 19:31
moritz I should add that to Mojo::Util 19:32
I already have base64 decoding and encoding, url escaping and unescaping 19:33
dalek p/toqast: cfbc76f | jnthn++ | src/HLL/Actions.pm:
Don't need Parrot namespace related stuff here any more.
p/toqast: 395aa0a | jnthn++ | src/QAST/Compiler.nqp:
Start to compile QAST::CompUnit. Set HLL and compile the contained top-level block.
kudo/toqast: e5c5266 | jnthn++ | src/QPerl6/Actions.pm:
Toss useless our statement and parameter.
19:34
kudo/toqast: 7928806 | jnthn++ | src/QPerl6/Actions.pm:
Start to refactor various parts of CompUnit to use QAST::CompUnit.
kudo/toqast: 0564728 | jnthn++ | src/QPerl6/Actions.pm:
type => returns in statementlist.
moritz jnthn: does it compile?
jnthn moritz: ?
moritz: Depends what you mean by "it" 19:35
moritz: The branches build. But qperl6 doesn't do anything useful at this point.
moritz: I'm working towards "compile hello world" first :)
moritz jnthn: well, does it compile the setting? 19:36
jnthn moritz: qperl6 in the branch uses QAST
moritz: Using perl6, not qperl6.
moritz ah
flussence n: token gen_delims { <[:/?#\[\]@]> };
p6eval niecza v19-1-gbd1bd16: OUTPUT«===SORRY!===␤␤Methods must be used in some kind of package at /tmp/krUBnnOuok line 1:␤------> token gen_delims ⏏{ <[:/?#\[\]@]> };␤␤Please backslash # for literal char or put whitespace in front for comment at /tm…
flussence n: grammar { token gen_delims { <[:/?#\[\]@]> }; }
p6eval niecza v19-1-gbd1bd16: OUTPUT«===SORRY!===␤␤Please backslash # for literal char or put whitespace in front for comment at /tmp/62b45tqvv2 line 1:␤------> ammar { token gen_delims { <[:/?#⏏\[\]@]> }; }␤␤Parse failed␤␤»
flussence niecza doesn't like URI.pm :/ 19:37
(I don't think it'd work with podtohtml overall, but I was trying ooc)
jnthn moritz: I figured it'd be easier to get us compiling basic programs with QAST, then work through the sanity tests, then spectest, then set it loose on compiling CORE.setting. 19:38
19:39 birdwindupbird joined
jnthn The current big task is re-arranging SC handling. 19:39
19:41 mikemol left 19:43 tokuhirom joined 19:49 zby_home left
[Coke] qperl6? 19:49
moritz quantum perl 6! 19:50
jnthn [Coke]: a perl6 executable that uses QAST :)
tadzik moritz: url escaping is builtin in URI, Bailador uses that these days
jnthn [Coke]: Just exists during the life of the toqast branch.
[Coke]: It won't escape the branch :)
19:52 fridim_ joined
masak evening all you sweet Perl 6 people. 19:58
19:58 dukeleto left
moritz \o masak 20:02
tadzik masak! \o/
dalek ar: 2d2565e | moritz++ | Makefile:
ship version of ufo, pand and File::Tools from before the &dir API change
masak \o/
sergot \o/ 20:03
tadzik |\o/|
o< 20:04
/o\
It's fun to stay at the Y.M.C.A...
masak jnthn: it's happening again... :)
jnthn: all your fault :P
jnthn I...huh...what... :P
tadzik it wasn't me 20:05
jnthn Is that example still in the Perl 6 book? :)
masak jnthn: also, last IRC snippet of strangelyconsistent.org/blog/happy-...ary-perl-6
jnthn: you started it! :P
20:06 baest left
moritz today I learned that perl 1.0 didn't have eval 20:07
and neither did it have sort
or arrays interpolating into lists
masak or regexes, I think. didn't those come in Perl 2? 20:08
moritz perl 1 had regexes 20:09
masak ok.
would be a fun talk. "what Perl 1.0 didn't have."
moritz but perl 2 greatly improved regex support
masak Juerd++ did a nice talk about what Perl 4.0 didn't have.
moritz * New regexp routines derived from Henry Spencer's.
o Support for /(foo|bar)/.
o Support for /(foo)*/ and /(foo)+/.
o \s for whitespace, \S for non-, \d for digit, \D nondigit
from bleadperl's 'git log'
about the 2.0 release 20:10
masak oh, the regexes were replaced, not implemented.
stil marvellously simple at that time.
it's amazing how far we've come.
20:11 baest joined, dukeleto joined
kresike .oO(masak made a mistake and didn't correct himself, maybe he is human after all) 20:12
:)
moritz I can attest that he certainly looks human
tadzik wasn't that his clone?
moritz well, one of 'em
but if they are *clones*, the others should look human too, no? 20:13
kresike moritz, looks can be deceiving ... didn't you see the Terminator movies ? :)
tadzik hmm, possibly
masak still*
kresike yay
sergot :)
masak I guarantee that all of my clones are human.
kresike but you are not ? :) 20:14
PerlJam perhaps only partially so
masak bobs happily in mid-air
tadzik how can you tell if you're not talking to one of the clones?
masak makes a mental note to blog about his six clones at some point 20:15
it's... complicated.
tadzik use v6
kresike this number six keeps coming up in here ... wonder why ? 20:16
tadzik because it's June! 20:17
masak kresike: probably because of PHP 6.
PerlJam I thought it had something to do with the number of the beast
kresike masak, I'm sure it's not that 20:18
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t)[4]; 20:21
20:21 PacoAir left
p6eval niecza v19-1-gbd1bd16: OUTPUT«10^..15␤» 20:21
..rakudo 1ffd6c: OUTPUT«5␤»
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t).lol[4]; 20:22
p6eval niecza v19-1-gbd1bd16: OUTPUT«Unhandled exception: Unable to resolve method lol in type List␤ at /tmp/pMV9mhTUaf line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3917 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3918 (module-CORE @ 562) ␤ at /home/p6…
..rakudo 1ffd6c: OUTPUT«Any()␤»
20:22 PacoAir joined
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t)».list.lol; 20:22
p6eval niecza v19-1-gbd1bd16: OUTPUT«Unhandled exception: Unable to resolve method lol in type Array␤ at /tmp/r3jw1koqWB line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3917 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3918 (module-CORE @ 562) ␤ at /home/p…
..rakudo 1ffd6c: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55␤»
TimToady r: constant @t = [\+] 1..10; say (0,@t Z^.. @t)».list[4]; 20:23
p6eval rakudo 1ffd6c: OUTPUT«5␤»
TimToady is having difficulty persuading either niecza or rakudo to yield a nice solution to rosettacode.org/wiki/Floyd%27s_triangle
masak looks, interested 20:24
TimToady treating Z^.. as a list of parcels seems to be very difficult in either impl 20:25
masak TimToady: your efforts with RC nicely parallel Ludwig Zamenhof's efforts with translating Hamlet and the Bible into Esperanto after inventing it :)
tadzik oh, Esperanto 20:26
where did I put this list of summer plans
TimToady you need a list of summers first
masak is too busy to write his list of summer plans
tadzik I have a generator for them, and the reified ones are already immutable 20:27
moritz fwiw the panda bundles with the to-be-released 2012.06 star works fine now
tadzik . o O ( already immutable sounds wrongish )
moritz *bundled
tadzik moritz: does it work for p6doc?
moritz tadzik: dunno, star installs p6doc for me 20:28
TimToady r: constant @t = [\+] 1..10; say (0,@t Z^.. @t)».item[4];
p6eval rakudo 1ffd6c: OUTPUT«5␤»
tadzik kay
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t)».item[4];
p6eval rakudo 1ffd6c, niecza v19-1-gbd1bd16: OUTPUT«5␤»
tadzik I'll take a look at panda and pod again after I finally get rid of this exam madness
moritz tadzik: which is why it's lower priority for me right now
tadzik understood
moritz if anybody wants to help with the star release, draft a release announcement
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t)».perl[4];
p6eval rakudo 1ffd6c, niecza v19-1-gbd1bd16: OUTPUT«5␤»
20:29 kaare_ left
TimToady nr: constant @t = [\+] 1..10; say (0,@t Z^.. @t)[^5].perl; 20:29
p6eval niecza v19-1-gbd1bd16: OUTPUT«(0^..1, 1^..3, 3^..6, 6^..10, 10^..15)␤»
..rakudo 1ffd6c: OUTPUT«(1, 2, 3, 4, 5)␤»
colomon n: constant @t = [\+] 1..10; for (0,@t Z^.. @t)[^5] -> $range { say $range.join; } 20:31
p6eval niecza v19-1-gbd1bd16: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤»
colomon n: constant @t = [\+] 1..10; for @((0,@t Z^.. @t)[^5]) -> $range { say $range.join; }
p6eval niecza v19-1-gbd1bd16: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤»
dalek p/toqast: 6beda3d | jnthn++ | src/QAST/CompUnit.nqp:
Add some more SC-related bits to QAST::CompUnit.
20:33
p/toqast: 8302932 | jnthn++ | src/QAST/Compiler.nqp:
Sketch out compilation of load/main; it may even actually work...
kudo/toqast: 93627fc | jnthn++ | src/QPerl6/Actions.pm:
First step of switching over to QAST::CompUnit for all the SC stuff.
20:38
kudo/toqast: 85bbebb | jnthn++ | src/QPerl6/Actions.pm:
Eliminate final .loadinit(...) usage.
20:40 araujo left
masak rn: my $n = 5; my $max = [+] 1..$n; my $l = $max.chars; for 1..$n { say (++(state $i)).fmt("%{$l}d") xx $_ } 20:42
p6eval niecza v19-1-gbd1bd16: OUTPUT«Potential difficulties:␤ $i is declared but not used at /tmp/aOGW6TSXp2 line 1:␤------> = $max.chars; for 1..$n { say (++(state ⏏$i)).fmt("%{$l}d") xx $_ }␤␤ 1␤ 2 3␤ 4 5 6␤ 7 8 9 10␤11 12 13 14 15␤»
..rakudo 1ffd6c: OUTPUT« 1␤ 2 3␤ 4 5 6␤ 7 8 9 10␤11 12 13 14 15␤»
masak TimToady: easy.
sergot masak++
:)
masak heh, I accidentally used the new-ish rhs thunking of infix:<xx>. that one is handy, isn't it? :) 20:43
jnthn Ain't it the lhs that's thunk'd? 20:44
20:44 brrt joined 20:45 araujo joined, araujo left, araujo joined
masak yes. sorry. 20:45
I have trouble sometimes with the chiral directions. 20:46
brrt perl6 is busy lately
masak brrt! \o/
brrt o/. :-) but, seriously, it is 20:47
it is good
[Coke] thunk into the table.
whoops, no, it's up from the table. Coke--
20:47 pupoque joined
TimToady masak: yes, I'm sure there's a way to do it, but the Z^.. way should at least fail consistently between niecza and rakudo :) 20:48
by the way, I don't think your solution works when the number of chars varies in the last line 20:49
20:49 adu joined
TimToady such as the N=14 case 20:51
dalek ar: ddb6e0f | jnthn++ | skel/docs/announce/2012.06:
Add a draft announce for 2012.06.
20:52
flussence has a horrible but stateless-looking solution 20:55
r: constant @t = [\+] ^11; .say for ((0, @t «+» 1) Z @t).map(-> $x, $y { ~Range.new($x, $y)».fmt("%{@t[*-1].log(10).ceiling}d") });
p6eval rakudo 1ffd6c: OUTPUT« 0␤ 1␤ 2 3␤ 4 5 6␤ 7 8 9 10␤11 12 13 14 15␤16 17 18 19 20 21␤22 23 24 25 26 27 28␤29 30 31 32 33 34 35 36␤37 38 39 40 41 42 43 44 45␤46 47 48 49 50 51 52 53 54 55␤»
TimToady that doesn't look right either for N=14 20:56
the 99 column should be narrower than the 100 column
r: constant @t = [\+] ^4; .say for ((0, @t «+» 1) Z @t).map(-> $x, $y { ~Range.new($x, $y)».fmt("%{@t[*-1].log(10).ceiling}d") }); 20:58
p6eval rakudo 1ffd6c: OUTPUT«0␤1␤2 3␤4 5 6␤»
flussence hm, has an off-by-one anyway. it should start "((@t «+» 1) Z @t[1..*]).map"
TimToady r: constant @t = [\+] ^5; .say for ((0, @t «+» 1) Z @t).map(-> $x, $y { ~Range.new($x, $y)».fmt("%{@t[*-1].log(10).ceiling}d") });
p6eval rakudo 1ffd6c: OUTPUT«0␤1␤2 3␤4 5 6␤7 8 9 10␤»
TimToady hmm, I guess it does work
21:00 skids left
TimToady (on formatting) 21:00
21:00 sudokode left
masak TimToady: oh, you're right about N=14. 21:00
I even tested that but didn't consider the result wrong.
yes, that means each column has to be formatted individually.
slightly trickier, but still fairly doable :)
TimToady but I'm with flussence++ in wanting a stateless solution :) 21:02
21:03 birdwindupbird left
masak of course. 21:04
sorear [Coke]: get non-bootstrap running, see if I can extract enough awesomeness from it to make up for the LTAness of not being bootstrapped 21:05
[Coke] cool. 21:07
pmichaud back again 21:08
TimToady flussence: btw, I think you're depending on .map not flattening by default, which is arguably a rakudobug
pmichaud map should be flattening by default now
TimToady so you might need a .lol there, but then niecza certainly won't run it
oh, nevermind, you're taking in pairs 21:09
pmichaud reads backscroll 21:10
TimToady obviously needs to take a map...er...a nap...
afk & 21:11
kresike bye all
21:12 kresike left
masak bye kresike. 21:12
cog_ tadzik, masak, jnthn can you edit the fpw wiki so we can know where every one stays and eat. journeesperl.fr/fpw2012/wiki
flussence I've come up with gist.github.com/2999080 but it seems insufficiently lazy; trying to use ^Inf hangs it :( 21:13
masak aww :) 21:15
pmichaud (Z^.. handling) I know there's a bug with Z handling in Rakudo for some operators; it's on my todo list. 21:16
sergot What does &lol do? 21:17
pmichaud "lol" == "list of lists"... it essentially turns flattening parcels into non-flattening parcels 21:18
or something like that. the details still need a little fleshing out.
sergot pmichaud++ thanks
21:22 leprevost joined 21:27 cog_ left, cog__ joined 21:32 fridim_ left 21:33 alester left 21:40 harmil joined
harmil Well, I'm about to go off on vacation for the rest of the week, but I thought I'd mention: I just finished deploying a trivial parser in rakudo for $work … startup is a bit painful, but it parses like a champ! 21:42
masak \o/ 21:43
harmil++
jnthn harmil: Is the startup largely the compilation time rather than actual startup time?
harmil jnthn: yes, I'm pulling in Log and Date::Time::Utils along with my grammar and actions… total startup is about 2-5 seconds 21:44
But since I just need the parser to sit there reading input and spitting out ASTs, I'm fine with that.
jnthn harmil: OK...with the various modules pre-compiled?
harmil jnthn: no pre-compilation, yet
jnthn OK. 21:45
harmil Since I have to inter-operate with lots of other code in other languages, I spit out the ASTs as JSON. Damn, I just love JSON as a neutral interchange!
jnthn :) 21:46
harmil One side benefit to Perl 6: my domain language happens to look a lot like SQL, so I'm going to talk to $work about being able to derive a pure SQL parser from it and publish that on github… we shall see. 21:47
masak good night, fearless and glorious #perl6. 21:55
21:57 sudokode joined 21:59 geekosaur joined 22:08 PacoAir left 22:11 mattp_ left, mattp_ joined, brrt left 22:17 raiph joined
raiph hii #perl6 22:17
reading thru the wiki and issues at github.com/stevan/p5-mop 22:19
22:20 bluescreen10 left, sergot left
raiph seems the more p6 compat it will be the better 22:20
reading github.com/stevan/p5-mop/issues/28 22:21
pmichaud raiph: there's a hackathon taking place in august to address exactly that (p6 and p5 mop) 22:27
22:28 skids joined
jnthn -> sleep, night o/ 22:28
raiph ah. perfect. thx.
(fwiw my specific concern was best middle ground on concrete syntax (issue 28 suggests introducing "my method")) 22:29
22:32 fibo left 22:33 lue left
pmichaud act.yapc.eu/mtmh2012/sponsors.html#p5mop 22:34
(item #5)
22:37 thomax joined
thomax hi 22:37
when i do a `time perl6 -e 'say "hello world"'` ib a linux system i get 0.765u 0.145s 0:00.94 95.7%, but when i do the same with "normal" perl (time perl -e 'print "hello world\n"') i get 0.001u 0.002s 0:00.02 0.0% 22:39
pmichaud yeah, perl 6 has a lot more in it. 22:40
thomax which means that perl6 is about 10 times slower starting
pmichaud sure, but you get a lot more at startup
thomax so, that means for everyday tool programming perl5 is the better choice, right? 22:41
pmichaud depends on the type of programming you're doing.
Yes, there are some applications for which p5 will be better, and others for which p6 will be better. Just like some applications are better in C and others are better in C++
thomax system automatisation, filtering, admin stuff
pmichaud out of curiosity, try: 22:42
benabik What matters more? Startup time? Overall run time? Time spent writing the tool?
pmichaud time perl -MMoose -MMooseX::Method::Signature -MMooseX::MultiMethods -MRegexp::Grammars -e 'print "hello world\n"'
thomax yeah, i stick with C, C++ is for the others
benabik With many sysadmin scripts the programmer time is far more important than the run time.
thomax pmichaud: gives me about the same result 22:43
pmichaud really? rakudo is still 10x slower? 22:44
thomax yes, really 22:45
maybe i should install MooseX, to be fair ;-) 22:46
pmichaud also, what version of rakudo are you running? 22:47
thomax debian unstable.. wait
pmichaud perl6 -v
thomax This is perl6 version 2012.04.1 built on parrot 4.3.0 revision 0 22:48
my last try on perl6 is 1.5 years ago :-) 22:49
pmichaud 2012.04.1 is reasonably recent 22:50
thomax actually perl6 made it into debian, thats quite a success :-)
pmichaud here's the timings I get
gist.github.com/2999876
that's not including Regexp::Grammars 22:51
benabik For me P6 takes 0.8, P5 0.1, Moose takes 0.27 (I don't have grammars or any MooseX)
thomax as i said, i don't have MooseX installed :-)
pmichaud yeah; the point is that startup is an apples-to-oranges comparison :)
for some applications (including 'hello world'), p5 is faster startup. for other applications, p6 is faster. 22:52
afk here 22:53
thomax ok, then.. i'm offline :-) 22:54
ahoi
and thanks
22:54 thomax left 22:59 [particle]1 left 23:01 [particle] joined 23:08 spider-mario left 23:10 stephenlb left 23:12 stephenlb joined 23:13 atrodo left
lichtkind gnight 23:30
o/
23:31 lichtkind left 23:44 sjohnson is now known as cutebot 23:45 cutebot is now known as sjohnson 23:52 adu left