»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
dalek rakudo: review: github.com/rakudo/rakudo/commit/e6...f51459d459 00:00
masak for those following along at home, this also means that we didn't have any spectests for &elems. 00:00
masak someone with a spare tuit or two might want to... 00:00
Tene might want to... submit a spec patch that removes &elems from the spec? 00:03
masak actually, it's just an exported .elems method. 00:04
and the Druid code that failed in its absence actually showed a decent example of when it's useful.
hm. I should clarify. in the spec, it's just an exported .elems method. in Rakudo, it's a sub. :) 00:05
if anything, I'd prefer a spec patch that regularized which methods are exported and which ones are not. 00:07
rakudo: say perl [1, 2, 3]
p6eval rakudo 4d33ba: OUTPUT«Could not find sub &perl␤ in main program body at line 22:/tmp/nwPkhmhnPH␤»
masak S32 says (twice!) that it's exported.
rakudo: 42.say; 42.warn 00:08
p6eval rakudo 4d33ba: OUTPUT«42␤Method 'warn' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/e1buizM9fm␤»
masak where's the consistency in the STDOUT method being there, but not the STDERR method?
Tene I'm a bit leery of the method/sub proliferation, personally.
masak I wouldn't mind it so much if it had some kind of pattern.
Tene Yeah. 00:09
Exactly.
masak same thing, only more so, with the high/low-level means of type conversion. .Str/.Stringy/~, .Num/+, .list/.List (I don't even know which ones are the latest variants of this one)... 00:11
if these are not very, very clear and pattern-ful, they're going to be a sore point. 00:12
Tene and that last also has &list
Makes me rather nervous.
masak that's ok, because there's also &hash, and then similar ones like &eager and &hyper.
generally, I have more sympathy for when there's a sub form *and* a method form, than for when one of them is missin.g 00:13
s/\.g/g./
masak I've been reading A12 a bit today, and it boasts about the sub call form and the method call form being syntactically different but semantically equivalent. that's no longer true, and we have to compensate for that un-equivalence with a corresponding amount of design discipline. 00:15
masak by the way: for a good time, google for 'guthlophikralique'. 00:17
:)
hi, Google searchers! o/ 00:18
masak 'night, #perl6 00:37
Chat8352 hi 01:01
anyone want to chat
TimToady sure, let's chat about Perl 6 01:02
Chat8352 i just want to chat please
sjohnson haha
TimToady this is not a general chatroom
sjohnson his nickname means business 01:03
Chat8352 ok well none of the other rooms work 01:05
sjohnson by what miracle did you find this channel, of all the other ones around
Chat8352 hi ch3
no one even types anything on the others 01:06
colomon sjohnson: it seems there's some sort of Blackberry chat app that keeps sending random people here.
sjohnson colomon: that's one way to say RIM is open-source friendly
Chat8352 ok so one
sjohnson colomon: you were right! 01:07
colomon that's like the fifth time its happened in the last week 01:08
sjohnson their irc app probably works like chat-roulette
just sticks em in a channel at random, and expects them to make friends
lue hello o/ 04:00
colomon goodnight \o 04:02
diakopter jnthn: around? 05:18
diakopter oh, probably not if he 'sleep&' 6 hours ago 05:19
diakopter back on Pangæa 05:20
sorear good * #perl6 06:42
sorear huh 06:44
Chatmosphere got a second IP
ok, .200 to .207 whois to the company 06:45
sorear I would like to apologise to Lscott Sales in Evergreen, Colorado; fnmatch(3) needs to be taken out and shot 06:48
moritz_ good morning 06:59
diakopter sorear++ and moritz_++ fixing dalek often and quickly 07:11
sorear++ refactoring dalek's pipes/streams 07:12
moritz_ was barely involved 07:21
diakopter what's the Q:PIR { } way to print() 07:35
nm 07:37
diakopter sorear: I finally got a PAST::Regex node to compile to a Console.WriteLine() :) <yay> 07:39
(unrelated to previous question)
sorear so are you using nqp or nqp#? 07:42
diakopter I'm working on adding -rx to jnthn's on-clr nqp 07:44
(what you're calling nqp# I'm sure)
diakopter std: sub else{ }; sub if{}; else if else if if else if if; 07:57
p6eval std a194beb: OUTPUT«===SORRY!===␤Confused at /tmp/ak9edpAEop line 1:␤------> sub else{ }; sub if{}; else if else ⏏if if else if if;␤ expecting any of:␤ argument list␤ statement_mod_loop␤Parse failed␤FAILED 00:01 119m␤»
sorear diakopter: postfix conditional if takes precedence over a sub named if 08:09
else if ... looks like else() if ...
then at else() if else() if, the parser is confused, postfix conditionals can only appear once in a statement
no attempt is made to look for a sub, because if matches <terminator> and breaks out of expression processing 08:10
sorear submits it as a stress test to Niecza-STD 08:19
\o/
diakopter heh 08:21
sorear suspects diakopter may not actually have been seeking an analysis 08:30
diakopter :P
Grimnir_ where do I see what methods a filehandle gives? 08:38
moritz_ you can ask it, with say ~$handle.^methods(:local) 08:39
sorear rakudo: $*OUT.^methods(:all).say
p6eval rakudo e6486e:
..OUTPUT«closeeofgetinslinesopenprintprintfsayreadwritegetcslurptdefslzcreatedmodifiedaccessedchangedautoflushpathstatNumericRealIntRatNumabsexploglog10sqrtrootsto-radiansfrom-radiansfloorceilingroundtruncatesigncisunpolarchrrandsincostanseccoseccotansinhcoshtanhsechcosechcotanhasinacosatan…
moritz_ rakudo: say ~$*OUT.^methods(:all)
p6eval rakudo e6486e: OUTPUT«close eof get ins lines open print printf say read write getc slurp t d e f s l z created modified accessed changed autoflush path stat Numeric Real Int Rat Num abs exp log log10 sqrt roots to-radians from-radians floor ceiling round truncate sign cis unpolar chr rand sin cos
..tan s…
Grimnir_ thanks :)
moritz_ rakudo: say ~$*OUT.^methods(:local)
p6eval rakudo e6486e: OUTPUT«close eof get ins lines open print printf say read write getc slurp t d e f s l z created modified accessed changed autoflush path stat␤»
sorear to-radians, really? 08:40
whose bright idea was it to make handles Cool?
Grimnir_ which one should I use to get all data from a filehandle? like do { local ($/); <STDIN> } ? 08:41
sorear $*IN.slurp
moritz_ slurp
sorear moritz_: So far I've successfully avoiding acquiring a VPS. Would blogs.perl.org then be the best option?
Grimnir_ oh, nice
thx
sorear you can also just use slurp;
the function form defaults to $*IN
Grimnir_ ah, ok, thanks 08:42
moritz_ sorear: it's fine, yes. The other Perl 6 hackers seem to prefer wordpress.com, but I like blogs.perl.org
sorear ... For some reason I thought WordPress was a CMS that I had to install
moritz_ sorear: it's a blogging software, but you can also get a hosted thing for free 08:43
that's what the advent calendar used
sorear observes that moritz is using perlgeek.de
...perl6advent.wordpress.com, is that the right link? 08:44
oh
moritz_ sorear: I've built my own blogging stuff out of my offline CMS and blosxom, a very un-modern perl blogging thing :-)
sorear misparse
moritz_ and I regret some of the decisions I made for my own blogging stuff 08:45
it won't scale
mathw yes, wordpress.com is the hosted wordpress service, and wordpress.org is where you can get the software to install on your own server 08:47
I do the latter 08:48
although I very rarely actually blog these days
moritz_ didn't know that mathw had a blog
mathw Well I do 08:49
I always intended to work up to blogging a lot about Perl 6 and get it on the Planet, but then I didn't
mathw should do some more Form coding at some point
...after nanowrimo though 08:50
and write documentation, that would be good too
sorear docs for what? ;) 08:57
mathw Form 08:59
Grimnir_ rakudo: "a".chr.say; 09:05
p6eval rakudo e6486e: OUTPUT«
Grimnir_ rakudo: "a".comb[0].chr.say; 09:06
p6eval rakudo e6486e: OUTPUT«
Grimnir_ rakudo: "a".comb.[0].chr.say;
moritz_ rakudo: say 'a'.ord
p6eval rakudo e6486e: OUTPUT«
rakudo e6486e: OUTPUT«97␤»
Grimnir_ bleh... of course
lol
moritz_ rakudo: say 'a'.chr.perl
p6eval rakudo e6486e: OUTPUT«"\x[0]"␤»
sorear looks like there's some C code somewhere doing something stpid 09:08
moritz_ maybe inside the IRC client 09:09
sorear mine, or p6eval? 09:10
who is the pumpking for misc/perl6advent-2010/topic-brainstorming ?
moritz_ sorear: tadzik is. But you can add topics without his involvement
sorear heh, tadzik's name contains characters urxvt can't render with one font 09:11
So *suddenly switches to something with serifs and notably lighter* s'
moritz_ sorear: I'm not sure yet which program is to blame... will try rakudo on the command line once I've compiled it again 09:12
sorear ilbot2 isn't seeing the » 09:13
moritz_ right
sorear ilbot2 is Perl5, right?
moritz_ it is
but it's POE magic that tries to utf-8 decode the input
maybe it stops when it encounters illegal characters
sorear embedded nuls aren't illegal in utf-8 09:14
moritz_ right, just figured that out
or maybe it's a new rakudobug 09:15
sorear I suspect ircd-seven
it's a large C program
Parrot probably has its own share of NUL bugs, but Parrot is not in a position to prevent » from being emitted 09:16
since it's emitted by perl5 code in evalbot
moritz_ right
I forgot that
still worth checking what rakudo does with \c[0]
sorear also, you can remove "experimental" from p6eval's tagline anytime you want
moritz_ $ perl6 -e 'print "foo\c[0]bar"'|hexdump -C 09:17
00000000 66 6f 6f 00 62 61 72 |foo.bar|
looks fine
TiMBuS its the ircd 09:19
!eval "abc\x0def"
abc
er. well that still should prove it i guess 09:20
!eval "abc\x{0}def"
abc
moritz_ buubot: eval: "a\x{0}b" 09:21
buubot moritz_: a\0b
moritz_ heh
sorear we ought to be escaping nuls on output
like we escape \x0A
moritz_ any suggestions what to escape it to? 09:22
.u SYMBOL FOR NULL
phenny U+2400 SYMBOL FOR NULL (␀)
sorear hmm. I'm missing a font 09:25
moritz_ uhm, evalbot appears twice in dalek-conf.json 09:27
dalek albot: 938911b | moritz++ | lib/EvalbotExecuter.pm:
escape null bytes as U+2400 SYMBOL FOR NULL, sorear++
: a4b8b7e | moritz++ | misc/dalek-conf.json:
[dalek-conf.json] remove duplicate entry for evalbot
09:33
sorear at some point I need to prune dups from that file 09:35
and sanely pretty-print it
sorear wonders whether a Niecza Project Blog or a sorear-blog would be better
moritz_ having a default branch of 'master' would let us remove quite some cruft 09:36
sorear: an 'everything sorear has to say about Perl 6' blog would awesome
sorear moritz_: master is the default branch; that falls under "sane pretty printing" 09:37
moritz_ then I'm going to remove some master defaults
sorear I made all the defaults explicit as a side-effect of redumping the file 09:38
moritz_ what's the default for 'channels' ?
sorear [ [ "magnet", "#parrot" ] ]
sorear has some trepidation about starting a blog... though I suppose I haven't kept very hidden on logged IRC so I shouldn't 09:39
hmm.
#parrot seems to have adopted "metacommitter" as official jargon
moritz_ for quite some time actually 09:40
sorear I made up that word sometime back in March while fumbling to explain some aspect of pugscode
moritz_ docs/project/metacommitter_guide.pod in the parrot repo exists since 2007
sorear: in dalek-conf.json one URL is quite different from the rest 09:41
github.com/chrisdolan/perl/tree/master
sorear the hq9+ one?
oh 09:42
moritz_ should I remove the tree/master ?
looks wrongisch
sorear it doesn't hurt either way
the parser ignores everything after the fifth slash
it regexes out the "chrisdolan/perl" part, then appends the branch list 09:43
dalek : 121f5b1 | moritz++ | misc/dalek-conf.json:
[dalek-conf] remove default branch master
09:49
dalek : 5f5a77a | moritz++ | misc/dalek-conf.json:
[dalek-conf] remove default chanels

also merge the two rakudo entries, and stop monitoring the 'buf' branch.
09:54
masak hi, #perl6 10:51
vxz Hello masak. 10:54
masak lately I've been pondering whether it'd be possible to make nested classes (à la A12) mesh with current Perl 6 OO. specifically, I'm trying to determine whether the "virtual nested class" idea of A12 is too much magic or "just enough". 10:56
moritz_ kinds thinks that nested classes only make sense when they are stritly private to the outer class 10:57
masak well, I can certainly see them make sense in other circumstances as well. 10:57
moritz_ rakudo: say "ab\c[0]def" 10:58
p6eval rakudo e6486e: OUTPUT«ab␀def␤»
masak sometimes classes are even nested for no better reason than that it helps the disposition of the code. 11:01
a bit like we tend to put subs in methods nowadays.
those *are* "strictly private", but that's the default for subs. the default for package-like things is not to be. 11:02
moritz_ and that's where the problems come from
to make a previously private sub public, you can either (1) mark it with our or (2) export it 11:03
for (1) it's easy to see that local sub name is just a lexical alias to a fully qualified name
and (2) just installs the the lexical alias where you use it 11:04
however it's not so easy for type names, because fully qualified names and short names looks alike
class A { class B::C { ... } # you wouldn't know if B::C is fully qualified, or a lexical alias, just by looking at the name } 11:05
masak nod
moritz_ class B { 11:06
class B { }; class A { class B { }; # what's B here ? }
masak I would assume that it's the inner one.
moritz_ one possible resolution is to only ever allow fully qualified class names 11:07
but it's not a nice solution
masak was just going to say that.
moritz_ faster :-) 11:08
masak :) 11:09
tadzik o/
phenny tadzik: 09 Nov 22:15Z <masak> tell tadzik that neutro bootstrap worked fine on my box.
masak this is one area where I don't have any real-world experience. I haven't even been using nested classes that much in other OO languages. I'm not aware of any typical examples where nested classes turn out to be just right. 11:10
I'd guess it varies a lot from language to language.
\o, tadzik.
moritz_ anyway, that's why I suspect there's no good solution to inner classes that DWIW
masak right. 11:11
nom &
mathw The only thing I really use nested classes for is in C++ when I want it to have some internal type 11:12
and I often make them private
I've never run into a problem with their semantics that I recall, but I'm never really doing anything elaborate - it's really just a namespacing thing that I do 11:13
bbkr is there a phaser that can replace now BUILD known from P5 Moose (executed at the beginning of every object creation)? 11:44
zby seen chromatic?
aloha chromatic was last seen in #parrot 12 hours 26 mins ago saying "They don't include diffs, but it's a start.".
bbkr rakudo: class A { method new () { self.bless(*).^add_method("foo", method {say 666} ) } }; A.new.foo # bug? 12:02
p6eval rakudo e6486e: OUTPUT«Null PMC access in find_method('foo')␤ in main program body at line 22:/tmp/MzSMQgqmnY␤»
moritz_ bbkr: not sure if you are allowed to use ^add_method on instances, and without calling .^compose 12:12
bbkr moritz_: but instance is blessed. so where is the problem? HOW on blessed instance should give class metaobject anyway, right? and it works the other way round: self.^add_method("foo", method {say 666} ); self.bless(*) 12:15
moritz_ bbkr: the problem is that .^add_method is an API for classes, not for instances 12:16
$obj.^foo() desguars to $obj.HOW.foo($obj)
so in one case you're calling a method from the meta class with an instance as first argument, and in the other with a type object 12:17
and the spec doesn't indicate that it's OK to pass an instance
bbkr moritz_: you're a genius. clear and simple explanation :)
moritz_ if you want to add a method to a single instance, use infix does or but
tadzik grammar changes... again:( 12:23
bbkr ok, another question. "$instance does role { method foo{} }" works like a charm. but what if name of the method is not known in compile time but comes in variable? is there any magic syntax to express "method $name {} " ? 12:37
moritz_ you need something along the lines of 12:39
my $role = RoleHOW.new();
$role.^add_method($foo, method () { } );
$role.^compose()
$instance does $role
bbkr testing.... 12:40
bbkr moritz_++ # trick works! 12:42
moritz_ actually I stole it from jnthn++ via timbunce++ :-) 12:43
masak bbkr: you asked about "a phaser that can replace now BUILD known from P5 Moose (executed at the beginning of every object creation)". there's a submethod called BUILD, and one called BUILDALL. it's more common to "override" those than to provide a new .new method in one's own classes. see S12 for more info. 12:48
this used to happen to me when I was just a subscriber to Perl 6, and not an actual coder: twitter.com/preluman/status/2316142362238976 12:52
tadzik this still happens to me. Gotta write more 12:56
masak come to think of it, it was the same with me and Chinese characters. they used to be this exotic, mysterious medium of writing -- seemed more like something someone made up than an actual writing system. 12:59
vxz It's...both?
masak then I learned stuff about it, and it all sort of settled into a more realistic viewpoint. still pretty cool, of course, but much more tangible.
vxz: well, lots of people contributed to making it up, of course. in a sense, it's a continuing, massively parallel computation. just like all other forms of human communication. 13:01
vxz masak: and the rest of the universe.
masak a hundred and fifty years ago, the universe was a steam engine. so, sure. the universe is a computation. :) 13:02
moritz_ I'm a member of an Optics graduate school, and they have this slogan "the 21st century is the century of the photon" :-/ 13:03
vxz Hmmm...steam-powered computation...
masak moritz_: sounds good to me. 13:04
vxz starts thinking about ways to power his laptop off of steam
moritz_ vxz: have fun with the cooling... :-)
vxz Good point. Something tells me I wouldn't get the same level of portability after such a modification, either... 13:05
daxim df.magmawiki.com/index.php/DF2010:Computing
takadonet hey all 13:06
tadzik o/ 13:07
takadonet tadzik: how are u sir?
vxz hello
tadzik takadonet: oh cool, thanks 13:10
masak hi takadonet.
tadzik I'll probably get my internets @home finally today
masak "internets@home"? is that some kind of distributed-computing Internet? 13:11
computers use their idle cycles to emulate the Internet... 13:12
flussence
.oO( my wifi's quite good at emulating dialup... )
flussence I have a crazy idea: generating vim syntax files from p6 grammars. The more I think about it though, the more impossible it looks... 13:16
masak it wouldn't surprise me if the latter were strictly more powerful than the former. 13:17
moritz_ even if you can write such a converter for normal grammar rules, you still need to translate the operator presedence parser 13:18
arnsholt I think masak's right 13:19
But generating them from a limited subset of Grammars might be viable
masak absolutely.
arnsholt And might make the whole process a bit simpler =)
moritz_ I think the real problem is that for syntax hilighting you need a lexer, not a parser 13:20
and if you translate a full parser, it'll be way too inefficient
arnsholt True. Also, the vim syntax is more than a bit funky, IMO =)
Util masak, moritz_, flussence: gimme5 (by TimToady++) translates STD.pm into Perl 5 (partially as P5 regexes, I think); it may have already done a lot of the work for you. 13:40
moritz_ Util: or s/gimme5/viv/ these days 13:43
neroxx rakudo: say 45 + 43 13:45
p6eval rakudo e6486e: OUTPUT«88␤»
bbkr rakudo: class A { method BUILD { self does 1 } }; A.new # why recursion? 13:56
p6eval rakudo e6486e: OUTPUT«maximum recursion depth exceeded␤ in 'infix:<does>' at line 1␤ in 'infix:<does>' at line 588:CORE.setting␤ in 'A::BUILD' at line 22:/tmp/cWvRdC4dDe␤ in 'infix:<does>' at line 43␤ in 'infix:<does>' at line 588:CORE.setting␤ in 'A::BUILD' at line 22:/tmp/cWvRdC4dDe␤ in
..'infix:…
masak bbkr: BUILD is supposed to be a submethod. 13:57
bbkr: did you read S12?
bbkr It says that submethod is something not inherited. But anyway - using "submethod" works, thanks! 13:59
moritz_ if it were inherited, it would be executed twice during initialization
masak A12 has a lot of wording about how methods and submethods do or don't participate in multiple dispatch, and about how multiple dispatch is an agreement of some sort between caller and callee. I don't follow it all, but it seems we've gotten rid of a lot of the complexity there. 14:06
hm. I think part of what disturbs me about the "Not Invented Here" and "Invented Here" terms, is that they denounce what they describe. that doesn't seem to be a very healthy thing for terms to do. and it messes with my reasoning about them. :/ 14:09
i.e. something that was invented here is an example of the "Not Invented Here" syndrome. 14:10
masak two nice things about serverlog statistics so far: (1) I can see referals and what people search for. (2) I can see 404s generated by links that point wrong on my page. 14:25
moritz_ so, where are you getting most visits from? planetsix? 14:26
takadonet masak: reddit?
masak hm. 14:27
in October, reddit won out. 14:28
followed, oddly, by perlfoundation.org 14:29
moritz_ hasn't seen any posts from masak's new blog on reddit
masak "Extending the syntax" made it to reddit last month.
moritz_ right 14:30
masak ah -- seems someone kindly rewrote all the links on the perfoundation wiki.
someone++
moritz_++ # perlgeek.de/blog-en/perl-6/pvc-perl...coach.html 14:32
moritz_: s/less frequent/less frequently/
moritz_
.oO( please don't reddit that one :)
masak ok. 14:33
moritz_ grammar fixed, masak++ 14:34
smash hello everyone 14:39
takadonet smash: yo 14:40
smash updated benchmarks with last rakudo star release: gil.di.uminho.pt/users/smash/rakudo-bench.html
masak smash++
takadonet smash++
smash: our do_nothing is getting better
masak smash: prime and prime-2 are making the left graph mostly useless. 14:41
smash takadonet: yeap, that's very good..
masak: yeap, but you can click on those in the graph to hide them
masak oh, good.
tadzik smash: yes, what is this jump about? Were they gone before, or what happened? 14:42
masak everything is trending slightly downwards, except prime, which has gotten slower. 14:42
wonder why.
smash not sure, need to look at the prime program 14:43
colomon boy, nothing in it jumps out at me as being an obvious source of the slowdown
masak smash: the underlines on the digits in the table create a lot of visual clutter, and are slightly confusing because those aren't links.
colomon ....unless it has something to do with switching from .munch to [^100] ? 14:44
masak you're changing the scripts!?
colomon masak: had to, it wasn't actually compatible with older Rakudo. 14:45
smash the script changed, but the benchmarks re-ran for all the releases
colomon unless something weird is going on, ... what smash said
masak smash: oh, good. smash++
colomon thing is, when I add a benchmark script like that, I try to calibrate it to be about the same timing as the others in its neighborhood, so the graphs look right. 14:48
colomon I think I added prime for the release on which it now runs so slowly. 14:48
smash still prime scripts are exposing some weird issue that i haven't figured out yet 14:49
smash i guess i'll start by re-running the all thing again, to make sure that there was no external process causing this behaviour 14:50
colomon smash: 14:51
smash: just rerun those two scripts, maybe?
I mean, you ought to be able to quickly tell if they take 5 seconds or 200 14:52
(I'm trying that locally as well.)
or is the problem the other way around?
colomon are they actually running at all on the first two versions? maybe I targeted them to be 200 second benchmarks... 14:53
smash hmm, prime.pl with rakudo-star-2010.07 is giving a list of undef's that's why it's so quick
tadzik hah
masak there you go, then. 14:54
colomon hmm.... not sure why it wouldn't work on rakudo-star-2010.07. 14:56
is that available via p6eval, perchance?
moritz_ nope 14:59
star: say 1
p6eval star 2010.09: ( no output )
moritz_ seems there's no star available atm
tadzik search.cpan.org/~broq/Git-PurePerl-...urePerl.pm -- would be awesome to have a Perl 6 port, but damn, it's huuge :(
masak I think the current realities of speed would make such a port significantly less awesome. 15:04
slavik1 what is that module? 15:07
colomon It's git, implemented completely in Perl, I think.
daxim not much porcelain there 15:10
PerlJam tadzik: It would be awesome to port Git::Wrapper 15:15
Git::PurePerl ... not so much
patrickas colomon, I think the problem with prime is that the scripts use %% which was !% a couple of months ago ... (but I am not sure) 15:23
moritz_ could use $a % $b == 0 15:24
colomon patrickas: believe I added %% during YAPC::NA, which was before the first R*
patrickas colomon: oh ok
smash 'Segmentation fault' running perl6, beatiful 15:30
masak ooh, haven't seen that in a while.
colomon smash: what were you doing? 15:31
smash colomon: running prime.pl with an outdated rakudo/perl6 15:32
colomon ah, so not with latest rakudo? 15:32
smash colomon: nope.. updating now
smash colomon: sub next-prime doesn't get called in rakudo-star-2010.07in line: my @primes := 2, 3, next-prime.() ... *; 15:42
moritz_ heh, different series semantics? 15:42
masak might be binding semantics that changed. 15:43
moritz_ when was the Big Series Change implemented in rakudo?
masak ...back when sequences were called series... :) 15:43
patrickas moritz_: definetely after rakudo star 2
moritz_ so, no all-star compatible series benchmarks. 15:44
colomon smash: can we set up the bench scripts with a "do not run before version XXX" flag?
moritz_ Date: Wed Sep 8 11:31:46 2010 +0200
Merge remote branch 'origin/series-refactor'
colomon smash: you can probably check for sure that is the problem by asking for @primes[2].WHAT 15:44
smash colomon: i can try to set the "do not run before version XXX" flag 15:45
colomon \o/ 15:45
patrickas I am not sure we are using somethign that changed with the series refactor ... 15:46
moritz_ before the refactor, the code object was on the right, no?
no wait, that's yet another refactor
patrickas no .... 15:47
patrickas away & 15:48
bbkr github.com/bbkr/jsonrpc - working JSON-RPC client. still TO-DO is bigger than CAN-DO. it should be polished by the end of the year. 16:50
takadonet bbkr++ 16:51
masak nice. please add to the ecosystem. 16:52
daxim phenny, ecosystem? 16:57
needs moar factbots
masak github.com/perl6/ecosystem 16:58
it's the repository that feeds modules.perl6.org
moritz_ aloha: ecosystem is at github.com/perl6/ecosystem and feeds modules.perl6.org 17:04
aloha: ecosystem?
masak & 17:21
tadzik PerlJam: it'd be nice to have a module installer not depending on git imho 17:38
dukeleto tadzik: git is the new /bin/sh 17:39
tadzik: why don't you want it as a dep?
dukeleto tadzik: i understand that non-developers might not have it, but what would you use instead? 17:39
tadzik dukeleto: well, I'm just a bit allergic to additional dependencies and system(), that's all 17:40
tadzik I remember on an #cpan6sketch, there was a discussion about whether to use git as a module source or not, pmichaud stated that it shouldn 17:40
...'t be to hard or bad to write a pure perl minimal git client 17:41
bbkr: nice module, but it's Perl, not PERL :) 17:43
daxim pure perl 6? 17:45
bbkr tadzik: changed :) 17:49
dukeleto libgit2 is being worked on by github 17:57
it is a pure C reentrant library that implements git
which will then be very easy to bind to
if someone wants to help me work on perl6 bindings to it, i would be up for that.
it is still a dependency though 17:58
dukeleto doesn't subscribe to the "allgeric to dependencies" philosophy
tadzik hmm, well 17:59
rather allergic to additional-dependencies-on-complex-things-while-the-idea-is-simple 18:00
now, we want to fetch some files, and we depend on a version control system
PerlJam simple ideas are often not-so-simple upon closer inspection. 18:01
tadzik I don't think the simplicity here is only skin deep 18:02
PerlJam also, if there's an existing round wheel, the rationale for inventing another wheel had better be good :)
rindolf Hi all. 18:44
takadonet rindolf: hey 18:45
rindolf takadonet: hi, what's up?
tadzik hey rindolf 18:46
rindolf Hi tadzik
takadonet rindolf: working u? 18:48
rindolf takadonet: trying to work.
rindolf takadonet: OK, finished working for today. I set two tickets to merge today. 19:19
takadonet: and made some progress with the Mandriva Cooker Testing rpm-5.x mishap.
takadonet: and also helped some people on IRC.
All in a day's work.
pmichaud Good afternoon #perl6 19:23
Just checking in to say I'll likely miss today's call 19:24
(Out of office ) 19:25
rindolf pmichaud: hi. 19:26
pmichaud Hello
pmichaud (On my cell so slow response) 19:27
Lunch is here gtg obbligatos 19:28
Er. Bbl
patrickas colomon, moritz_, smash: the problem with the primes script seems to be the binding := 19:39
colomon patrickas++ 19:40
takadonet stupid binding!
sorear good * #perl6
takadonet sorear: yo
patrickas my @primes := 2, 3, &next-prime ... 73; works on recent rakudo but not on an old one 19:41
my @primes = 2, 3, &next-prime ... 73; works on all versions
colomon: also you need to use an exact prime at the right hand side so that it works for rakudos with old series code and new sequence code. 19:42
colomon patrickas++ 19:44
patrickas is the target running time a few seconds ? 19:45
colomon no, it's around 200
I'm working on the change right now. 19:46
sorear moritz_: I have nested classes working, although not virtual 19:47
patrickas colomon: ok great, I guess in that case it would need to be moved to the heavy scripts part 19:47
sorear moritz_: currently nested classes are the only way to have A::B in Niecza; I haven't figured out how "class A::B { }" is supposed to work
vxz: All you have to do is plug it in :p 19:48
PerlJam wonders what "nested classes" is supposed to mean. 19:51
sorear niecza: class Foo { class Bar { method hi { 5 } } }; say Foo::Bar.hi 19:52
p6eval niecza 4045e2e: OUTPUT«5␤»
patrickas sorear++ niecza++ 19:54
patrickas sorear: how much of the spectest can niecza pass ? 19:54
sorear none. niecza is a static compiler and the spectest is heavily reliant on &eval 19:55
patrickas oh! 19:56
sorear "get eval working" is my long-term goal
patrickas it would be cool if niecza would go from 0% to 50% in one day :-) 19:57
sorear in order to make that happen, I need to 1. run STD.pm6 on Niecza's backend 2. port Niecza's middle end to a language which can run on the backend
#1 is almost done
I'm not totally sure about #2 19:58
sorear I'm still waffling between C# and Perl 6 19:58
dalek nch-scripts: f9c4180 | colomon++ | prime (2 files):
Try to rewrite the prime scripts to avoid := and sequence issues in older Rakudos.
PerlJam std: package Foo { module Bar { class Baz { }; }; }; Foo::Bar::Baz.new;
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
sorear C# will be vastly faster to compile and run, but Perl 6 has more style points :p 19:59
PerlJam rakudo package Foo { module Bar { class Baz { }; }; }; Foo::Bar::Baz.new; # curious :)
patrickas sorear: I can understand the dilemma :-)
PerlJam rakudo: package Foo { module Bar { class Baz { }; }; }; Foo::Bar::Baz.new; # curious :)
p6eval rakudo e6486e: OUTPUT«Can not find sub Foo::Bar::Baz␤ in main program body at line 1␤»
patrickas colomon++, can we trigger a re-run of the benchmarks and regenrate the graphs ? 20:00
colomon I can't, dunno if anyone other than smash++ can.
patrickas I suppose we can phenny tell him to do that... 20:01
tadzik seen smash 20:02
aloha smash was last seen in #perl6 4 hours 16 mins ago saying "colomon: i can try to set the "do not run before version XXX" flag".
patrickas phenny: tell smash colomon++ fixed the prime scripts, it would be great if you can re-run the benchmarks to generate new graphs
phenny patrickas: I'll pass that on when smash is around.
colomon patrickas: did you try my new versions of the scripts? I still don't have older R*s around to try them against. all I know is they still work in current Rakudo. 20:03
patrickas colomon: good idea ... no I just checked the change .... running right now 20:04
patrickas yes they work 20:11
dalek : 47e8aad | sorear++ | misc/perl6advent-2010/topic-brainstorming:
Add a few advent ideas
20:30
tadzik I'm thinkiing about some voting mechanisms about advent topics. maybe doodle would be nice 20:32
colomon patrickas++ 21:14
masak ahoy! 21:18
sorear hello masak 21:20
patrickas lolitsmasak! 21:21
tadzik yayitsmasak! 21:22
Tene ohaimasak
masak while I remember, may I remind you all that it is exactly one month before I make a Big Announcement? here's your first clue out of a possible four: www.amazon.com
tadzik You have a Web branch working on master? 21:23
colomon You're buying a book?
patrickas You are traveling to Brazil ?
:-)
tadzik You are a new lead guitar in Korpiklaani?
sorear You've been sued for violating some nebulous web patent?
masak that would indeed be big. I hope to have a Web branch working on master by the end of November.
you're all so cute. I love you. 21:24
tadzik I love the atmosphere here
masak I think the tapped water here is great. 21:25
Tene You're launching a new business competing aginst amazon, running on Web.pm on Perl 6.
masak the clue counter has closed for today. see you all in ten days. 21:26
tadzik You're writing a book!
damn, I was too slow
patrickas It's got nothign to do with amazon, and the first clue you gave us is just to mess with our heads ?
colomon You're publishing a tell-all book about the bugs in Rakudo?
masak tadzik: I am, but so are a lot of other people. it's on github :) 21:27
Tene Chapter 5: Snowman/Comet Quoting
masak :D
Snowman/Comet is a hit; it's both cool and hot.
jnthn Oh, I know it! masak is going to announce that Amazon is doing hosted Perl 6 on its cloud service. They give him a kickback for every CPU hour they sell, which since it's Rakudo, will be a LOT of them. 21:28
moritz_ nice plan :-)
masak clearly, I should pre-announce things more often.
tadzik that should be a Test.pm statement 21:29
nice plan;
PerlJam masak: you're going to make a big announcement on Dec 10? That's my son's birthday. :) 21:33
arthur-_ giving up on the perl6/mongodb driver thing, coming back in a month to see if it gets easier
masak PerlJam: didn't you say that last time too? :) 21:34
arthur-_: sad to hear it. hope we'll have eliminated some bumps for you till then!
arthur-_ hope so too 21:35
PerlJam masak: probably. I'm getting old and senile.
arthur-_ i got a connection to the db, i'm already surprised to have gone that far
masak PerlJam: either that, or it's my precognition acting up again.
PerlJam Now if you have a big announcement for Jan 10, that'll be my twins' birthday 21:36
masak PerlJam: you do like decimal, don't you? :)
masak .oO( there are 10 twins... )
PerlJam masak: 10 is my favorite number. the pun is just a bonus :)
My other daughter was born Oct. 19. Oct is the 10th month, 1 + 9 == 10. I was born Oct 28 ... etc. :) 21:37
I have 10 fingers and 10 toes.
The coincidences are astounding!
moritz_ there 10 kinds of people: those who know binary, and 9 others! 21:38
masak moritz_: *lol*
Tene reminded of the law of fives. 21:43
I had trouble remembering my girlfriend's birthday, so I worked out a mneumonic in pi: month 3, day (14-1)/.5 21:44
masak Tene++ 21:45
rindolf Tene: can't you use an organizer?
Tene: with alerts?
Tene rindolf: that assumes I want to be organized
masak I have the same problem with organizers. 21:46
rindolf Tene: you can just use it to remember birthdays.
Tene rindolf: I guess. Easier to just work up a mneumonic. There are other reasons to want to know a birthday than "Is it today?" or "Is it one week from today?" or whatever.
tadzik hah, get it 3 days earlier and you'll hit my birthday :) 21:49
tadzik and $birthday.split('.').sum.sum is 10 again! 21:50
tadzik oh, one more split 21:50
sjohnson Tene == smart cookie 21:55
masak pmichaud_: <?after> may have been a hack in PGE, but at least there was an implementation. sometimes I miss it in nqp-rx. there's a place in Yapsi where I work around it, for example. 21:56
Grimnir_ how do I make the number 31 come out as an ascii '1'? 21:59
rakudo: 31.chr.say
p6eval rakudo e6486e: OUTPUT«␤»
Grimnir_ it comes out as a two byte character, it seems
Tene rakudo: 1.ord.say
p6eval rakudo e6486e: OUTPUT«49␤»
Tene rakudo say 0x31 22:00
rakudo: say 0x31
p6eval rakudo e6486e: OUTPUT«49␤»
Tene wrong base, Grimnir_
rakudo: 0x31.chr.say
p6eval rakudo e6486e: OUTPUT«1␤»
Grimnir_ ah, of course. stupid...
Tene :)
No, it's an easy mistake to make.
Grimnir_ and I knew that, that's the most tsupid about it 22:01
Tene I just recognized it easily since I've made it so many times myself.
Grimnir_ :)
well, thx
masak this also works:
rakudo: say :16(31).chr 22:02
p6eval rakudo e6486e: OUTPUT«1␤»
Grimnir_ nice
masak but it means the same.
maybe I should have written :16<31>, because that number (even if it doesn't in this case) might contain hexits.
Grimnir_ perl6 is so nice 22:05
sjohnson perl6!
Grimnir_ rakudo: my $content = "30 31 30 30 31 31 31 30"; for $content.split(" ") { :16($_).Numeric.chr.print } 22:06
p6eval rakudo e6486e: OUTPUT«01001110»
masak Grimnir_: see also .comb
Grimnir_ but comb takes one character at a time, right?
masak rakudo: for "30 31 30 30 31 31 31 30".comb(/\S+/) { print :16($_).chr } 22:07
p6eval rakudo e6486e: OUTPUT«01001110»
masak Grimnir_: no, it can match zero or more characters.
rakudo: for "30 31 30 30 31 31 31 30".words { print :16($_).chr }
p6eval rakudo e6486e: OUTPUT«01001110»
Grimnir_ what's the difference between split and comb then?
rakudo: my $content = "30 31 30 30 31 31 31 30"; :for $content.split(" ") { :16($_).chr.print } 22:08
p6eval rakudo e6486e: OUTPUT«===SORRY!===␤Confused at line 22, near ":for $cont"␤»
masak Grimnir_: split throws away the matched things, comb keeps them.
Grimnir_ rakudo: my $content = "30 31 30 30 31 31 31 30"; for $content.split(" ") { :16($_).chr.print }
p6eval rakudo e6486e: OUTPUT«01001110»
Grimnir_ ah, of course
nice one
masak Grimnir_: the Perl 6 culture has a bit of a .comb bias. 22:10
(because we like to think positively) :)
Grimnir_ hehe :)
it's also nice
it makes great one-liners
when some of my friends start to go on a "write in base64 or binary" mode, I always find that I don't have a script for it, so I try to make it in a one-liner 22:11
it's good practice
masak Grimnir_: you reminded me of this post: strangelyconsistent.org/blog/the-ge...-in-perl-6 22:12
Grimnir_ rakudo: my $dna = "ttaagg"; sub translate($dna) { "FFLLSSSSYY!!CC!WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG".comb[map { :4($\_) }, $dna.trans("tcag" => "0123").comb(/.../)] }; say translate($dna)
p6eval rakudo e6486e: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "$\\_) }, $d"␤»
masak hm, that's a superfluous \ 22:13
Grimnir_ hmm... can't get it to work 22:13
masak rakudo: my $dna = "ttaagg"; sub translate($dna) { "FFLLSSSSYY!!CC!WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG".comb[map { :4($_) }, $dna.trans("tcag" => "0123").comb(/.../)] }; say translate($dna)
p6eval rakudo e6486e: OUTPUT«LR␤» 22:14
masak \o/
sjohnson >.>
masak I'll see if I can fix the blog post. hadn't noticed that before.
masak must be a conversion error. 22:14
Grimnir_ I think I'm missing something here. what's the point with it? 22:16
masak I'll explain, but how much do you know about DNA and amino acids? 22:17
Grimnir_ not so much ;)
very little
I know the A, C, G, T stuff, but only extremely basic
masak oh, good.
that's the DNA> 22:18
now, that's just digital information; it needs to get "translated" into a physical structure.
masak the physical structure is protein, made of amino acids. 22:18
masak there's a machine in our cells that takes DNA, three bases at a time, does a hash lookup and produces an amino acid. 22:18
it strings those together into a long chain, and folds the chain. 22:19
what the &translate sub above is doing is simulate the conversion from DNA bases to amino acids.
TimToady said TTA GGG. that translates to the amino acids L and R. 22:20
each letter there is actually a small molecule fragment of some sort.
notice how I used .comb(/.../) -- that's the part that chunks the DNA up into three bases. 22:21
it's all very evocative of how the cell itself does it :)
Grimnir_ very nice :)
masak in a way, all life on Earth indirectly contains that string, "FFLLSSSSYY!!CC!WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG", sometimes with minor variations. 22:22
Grimnir_ is that string enough?
masak well, it's more of a lookup table.
masak but neither the string nor the table is actually represented in our bodies, of course. 22:23
it's just there implicitly, at least as far as I know.
Grimnir_ of course
so how did you make that string?
masak I went to the Wikipedia article and typed down the entries of the table in some order. 22:24
don't remember any more exactly how I figured it out which order was right. 22:25
probably the structure of the table makes the order obvious-ish.
Grimnir_ :) 22:26
masak tchrist on p6l! 22:30
flussence www.youtube.com/watch?v=Ym1ZA8IckB8
masak and, fittingly, he writes far more than you ever wanted to know about Unicode properties! :P
flussence whoops
wrong button, sorry
(wrong channel too) 22:31
diakopter gets curious 22:32
sjohnson cute video 22:33
Grimnir_ heh, pretty innocent video
I imagined something really incriminating :D
sorear diakopter: are there any tos or other issues with me installing a httpd on dalek's vps? 22:35
diakopter no
feel free; nginx, lighttpd, apache, whatevs
that new ultra perl one
starman 22:36
sorear what do you recommend 22:41
the only httpd I've ever used is apache2 22:42
but that seems overkill for "I need to handle POST to /dalek"
diakopter heh
I'd use danga.com/perlbal/ or starman for that 22:43
flussence I prefer lighttpd over apache, haven't tried others though... 22:44
sorear looks up what PSGI is 22:46
diakopter plackperl.org
^^ anyone who wants to get excited by accurate/well-written/hype-inducing blurbs, see here 22:49
dukeleto diakopter: that looks like a very nice site 22:50
masak plack++ (plack team)++ 22:51
sorear diakopter: reading this wall of blurbs makes me just want to install apache2 and put a 20-line script in /usr/lib/cgi-bin 22:53
sorear I AM NOT WRITING FACEBOOK HERE 22:53
diakopter hee
masak whoa, all caps. chill. 22:54
diakopter forgets to take off the think-long-term $dayjob hat
vxz I heard that perl 6 will let me write Skynet as a one-liner. 23:05
diakopter basically
masak oh, we did that back in 2006 with Pugs. it should still be in the Mu repo somewhere. 23:06
but it was two lines, I think. might be one line nowadays.
arnsholt =D
thundergnat Hi perl6 23:17
ggoebel o/ 23:18
thundergnat ping masak 23:18
masak pong thundergnat
thundergnat masak Hey I was looking at your druid repository and you have a few broken links in the README. 23:19
thundergnat extreaneous &gt; attached to the end. 23:20
masak thanks; will check.
thundergnat++
masak thundergnat: did you get the game running? :) 23:20
thundergnat didn't try yet
that was on my list for this evening. :) 23:21
masak do try; but try it from the ng-compat branch.
masak should be just ufo && make && PERL6LIB=`pwd`/lib perl6 druid 23:21
blog post! strangelyconsistent.org/blog/novemb...-bottom-up 23:22
tadzik or use mbuild :)
masak whatever lifts your suitcase.
arnsholt masak: My friend who lived in Spain at the time commented that the really scandalous part was the familiar adress 23:23
Apparently the "shut up" part wasn't that important =D 23:24
masak arnsholt: I can imagine.
arnsholt: a French teacher of mine said he came to Sweden and the first thing he saw was an advert "Have you changed your underwear today?"
arnsholt: for him too, the scandalous part was "du".
arnsholt Indeed 23:25
I still struggle with the whole T/V distinction in French 23:26
Never quite sure which is appropriate in a baffling number of contexts
masak thundergnat: seems the README itself is fine, but there's a rendering bug in github.
unless it's a feature, and I'm just a victim of it. 23:27
thundergnat: links should be fine now. thanks again for reporting. 23:28
masak jhuni! \o/ 23:29
jhuni masak: hi 23:31
jhuni is learning FASM
thundergnat masak: no problem, it was pretty easy to see what the links SHOULD have been, they were just render wierd. 23:32
masak nodnod 23:33
thundergnat weird weird weird ... I ALWAYS spell that wrong...
masak there's a programming language called wierd :)
masak catseye.tc/projects/wierd/doc/wierdspec.txt 23:34
thundergnat masak: wow. just... wow. That looks to be up there with brain**** for "languages I DON'T want to use." 23:40
masak that's part of what makes them esoteric, I guess.
actually, you could very well consider wierd a brainfuck clone. 23:41
thundergnat "People for the Ethical Treatment of Data Structures", snork. 23:42
On another note: on the perl6.org compiler page - perl6.org/compilers/ -, the last three links in the supplementals section are giving me 403 and 404s when I try to visit them. 23:45
Have they been moved to another location? that anyone knows of? 23:46
diakopter yes, sec
thundergnat I'll even volunteer to fix them if I know the new locations.
masak thundergnat++ # noticing broken links
seems diakopter++ is on it. 23:47
diakopter for the elf ones, I don't know exactly where those are (setting & lisp) but the elf & elfish links on the left column are valid/updated.
sorear mildew/smop needs an overhaul before it's usable again 23:48
recent versions of gcc are a lot more memory hungry and want >4GB to compile the million-line intermediate files mildew spits out 23:49
thundergnat Also, it may just be me, but it took me about 30 minutes to figure out that the link for proto.perl6.org was the link to modules.perl6.org.
masak sorear: why not just use an older version of gcc? 23:50
thundergnat It may be worth having a dedicated link to "Here's some perl6 modules contributed by the community!"
masak thundergnat: that's modules.perl6.org -- or am I misunderstanding what you just asked for? 23:51
diakopter suggesting a link
thundergnat Yes. But ther is NO link anywhere on perl6.org for modules.perl6.org
proto.perl6.org gets rewritten to modules,perl6.org. 23:52
masak that link should probably be modules.perl6.org 23:52
proto.perl6.org was an old, misguided name. 23:53
thundergnat silly me I was trying to find the modules page and was just hovering over the links looking for it.
tadzik I feel like bringing smoketests back to life
masak , having blogged, decides to go to bed 23:53
'night! 23:54
tadzik o/
thundergnat modules.perl6.org definitely exists. it just isn't obviously linked. 23:54
night masak (belatedly)