»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
00:08 dukeleto left
pugs_svn r28188 | lwall++ | [S04] clarify semantics of break for masak++ 00:17
00:26 zloyrusskiy joined 00:30 tak11 left 00:35 dukeleto joined 00:46 damyan joined 00:48 frew_ joined 00:51 drbean_ joined 00:56 M_o_C left 00:59 drbean left 01:08 drbean_ left 01:13 drbean joined, drbean left 01:15 justatheory left 01:23 drbean joined 01:35 nihiliad joined 01:37 drbean_ joined 01:39 frew_ left 01:40 cotto left 01:44 drbean_ left 01:48 Limbic_Region joined 01:49 tak11 joined 01:54 drbean left 01:55 ruoso left 02:01 d4r_delay joined, d4r_delay left 02:03 Limbic_Region left 02:07 dalek left 02:08 dalek joined 02:09 drbean_ joined 02:12 drbean_ left 02:14 drbean_ joined 02:19 drbean__ joined 02:22 drbean_ left 02:31 zloyrusskiy left 02:33 drbean__ left 02:36 jferrero left 02:37 drbean joined 02:38 drbean left 02:40 alester joined, meppl left 02:49 drbean joined, drbean left 02:54 drbean joined 02:57 colomon left 02:59 stephenlb left 03:00 drbean_ joined 03:01 jaldhar joined 03:03 justatheory joined 03:06 sri_kraih left 03:07 xinming_ joined 03:10 drbean__ joined 03:12 meppl joined 03:15 drbean___ joined 03:17 sri_kraih joined, zostay joined 03:18 drbean left, drbean__ left 03:20 xinming left
carlin rakudo: IO.lines 03:24
p6eval rakudo eefd95: OUTPUT«Null PMC access in find_method()␤in method IO::eof (src/gen_setting.pm:1176)␤called from method IO::lines (src/gen_setting.pm:1193)␤called from Main (/tmp/eUjZjPyItD:2)␤»
03:26 drbean_ left 03:38 nathon joined 03:39 nathon left 03:42 drbean___ left, xomas_ left 03:43 xomas joined 03:46 drbean_ joined 03:47 mepplock joined 03:51 drbean_ left 03:58 justatheory left 04:02 drbean joined, meppl left 04:07 frew_ joined
dalek kudo: 2276af9 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 435 files, 13401 pass, 1 fail

S32-temporal/Temporal.t 7 - gmtime defaults to current time
04:08
04:22 JimmyZ joined
jrtayloriv I'm experiencing the following failures during 'make spectest' on x86_64 Linux: pastebin.com/d759611fb 04:46
(with latest git rakudo sources) 04:47
ahhh ... when I do './perl6 t/spec/S12-attributes/class.rakudo', I get this: src/call/pcc.c:608: failed assertion 'PObj_is_PMC_TEST(sig_pmc)' 04:49
oops -- looks like that was already in the backtraces I pastebin'd ... :) 04:50
05:09 jaldhar left
pmichaud S12-attributes/class.rakudo is known, assuming that it reports 0 failures 05:10
pmichaud looks at the pastebin
yes, those are known failures 05:11
pugs_svn r28189 | pmichaud++ | [t/spec]: Fudge/regress a spectest (mis)using contextuals.
05:18 alester left
jrtayloriv pmichaud, ok thanks 05:26
05:44 tak11 left
dalek kudo: 7734f9b | pmichaud++ | (3 files):
Enable contextual variable definitions and dynamic lookups.
05:46
05:49 nihiliad left
pugs_svn r28190 | mberends++ | [Temporal.t] improve stability of test 7, replace some floor() with div 05:49
06:01 cotto joined 06:02 SmokeMachine joined 06:05 abra joined 06:12 jaldhar joined 06:30 drbean_ joined 06:36 drbean left 06:40 orafu left, orafu joined 07:01 buu left 07:04 buu joined
moritz_ OH HAI, I CAN HAZ KONTETKSHUAL VARS IN RADAUKU? 07:08
pugs_svn r28191 | pmichaud++ | [t/spec]: Add some tests for contextual variables. 07:16
pmichaud rakudo: sub foo() { say $*VAR; }; { my $*VAR = 'yes'; foo(); } 07:20
p6eval rakudo 7734f9: OUTPUT«yes␤» 07:21
dalek kudo: 86a9268 | pmichaud++ | src/classes/Failure.pir:
Update Failure objects to output to contextual $*ERR.
kudo: a746af0 | pmichaud++ | Test.pm:
Adjust Test.pir $WARNINGS flag.
kudo: 8566a62 | pmichaud++ | src/builtins/globals.pir:
Add ability for contextuals to also search %*ENV.
07:23 tlbdk joined 07:26 cotto left
pmichaud rakudo: say $*TERM; 07:26
p6eval rakudo 7734f9: ( no output )
pmichaud rakudo: say $*PATH;
p6eval rakudo 7734f9: ( no output )
pmichaud (not updated yet)
moritz_ not yet updated
updating now 07:27
pmichaud oh well, I'll catch it in the morning and write my blog post then
too tired now to write coherently :)
moritz_ sleep well
07:30 jlmoko left 07:31 iblechbot joined 07:42 Confield left
moritz_ rakudo: say $*TERM 07:44
p6eval rakudo 8566a6: OUTPUT«screen␤»
moritz_ rakudo: say $*SHELL
p6eval rakudo 8566a6: OUTPUT«/bin/bash␤»
mikehh rakudo (7734f9b) builds on parrot r40989 - make test / make spectest (up to r28191) PASS - Ubuntu 9.04 amd64 (gcc) 07:45
re-testing with latest stuff 07:46
07:47 rfordinal joined
mikehh rakudo (8566a62) builds on parrot r40989 - make test / make spectest (up to r28191) PASS - Ubuntu 9.04 amd64 (gcc) 07:48
07:51 jlmoko joined 08:15 Bzek joined 08:23 xinming joined
jnthn oh hai oh 08:26
I made it to Tokyo in one piece. :-) 08:27
08:30 sharada joined
mikehh jnthn: I suppose congratulations are in order no CATastrophy :-} 08:31
mberends jnthn: made it to the intertubes in Tokyo, even better :-) 08:34
jnthn The hotel have an interesting approach to wifi in room. 08:35
Seems they have a cable style thing throughout the building, so they supply anyone who wants net in the room with a cable modem or some such. :-/ 08:36
Anyway, after I figured out where on earth to plug the thing, it seems to work pretty nicely. :-)
08:37 xinming_ left
jnthn I'm too jet-lagged to do anything useful with the intertubes though. 08:40
Unless lolcats are useful... ;-)
pmichaud jnthn: hurray for safe arrival :) 09:11
jnthn pmichaud: hurray for contextuals too :) 09:13
jnthn ponders that this is a curious time for pm to be awake. 09:15
pmichaud it is... can't sleep for some reason 09:17
so I decided to hack another feature in :)
jnthn
.oO( protoregexes )
;-)
pmichaud a working %*ENV
09:17 JimmyZ left
jnthn ooh 09:17
shiny 09:18
Plus will make some folks hapy.
*happy
09:19 JimmyZ joined
JimmyZ rakudo: '小白'.say; 09:19
p6eval rakudo 8566a6: OUTPUT«小白␤»
JimmyZ Malformed UTF-8 string? Does it need ICU? 09:20
pmichaud usually it gives "ICU not found" exception if it needs ICU
JimmyZ I ran '小白'.say; but it is output 'Malformed UTF-8 string' 09:22
It's on windows. 09:23
pmichaud are you doing this from a file, command line, or the interactive prompt ?
JimmyZ interactive prompt
pmichaud ah, that's the problem.
the interactive prompt doesn't always understand utf-8
I thought I fixed that already, but apparently not
try it from a file and see if it works
09:24 cognominal left
JimmyZ command line is the same. 09:24
pmichaud right
has to be from a file
JimmyZ if it is a ansi file, it is the same too. and if it is saved as utf8, it outputs Syntax error at line 1, near "\ufeff'\u5c0f\u767d'.say;" in Main (src\gen_setting.pm:3470) 09:26
pmichaud it doesn't know what to do with the bom 09:27
09:28 cognominal joined
JimmyZ It can't work. 09:29
jnthn Well that's a bommer.
pmichaud I'm pretty sure people have been able to make it work under windows. Anyway, worth filing a ticket. 09:30
I wonder if we should get rakudo to skip an optional bom at the beginning
.oO( "Someone set up us the bom" )
JimmyZ pmichaud: parrot has the same problem too. I removed some code from parrot, so that I can compile it. 09:31
pmichaud JimmyZ: yes, that's likely.
worth filing two tickets then :)
jnthn pmichaud: I had to rip the bom out a couple of times an editor decided to stick it in for me.
JimmyZ but, it is works well on irc. 09:32
pmichaud: see TT #888 09:33
Patterner ./perl6 -e "'小白'.say" # works fine on my linux system
sharada perl6: sub { "hello" # test }.()
p6eval rakudo 8566a6: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""␤in Main (src/gen_setting.pm:3470)␤» 09:34
..pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting operator or "}"␤ at /tmp/dTw330rqKz line 2, column 1␤»
..elf 28191: OUTPUT«Parse error in: /tmp/z97kcbaNcB␤panic at line 1 column 25 (pos 25): Missing right brace␤WHERE: sub { "hello" # test }.()␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:255:in `_block_rest'␤ STD_red/std.rb:242:in `block in block'␤
..STD…
JimmyZ perl6: sub { "hello" #`(test) }.()
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting operator or "}"␤ at /tmp/RRYxSFjDYY line 2, column 1␤»
..rakudo 8566a6: OUTPUT«Confused at line 2, near ".()"␤in Main (src/gen_setting.pm:3470)␤»
..elf 28191: OUTPUT«Parse error in: /tmp/ao0rJwy1GQ␤panic at line 1 column 27 (pos 27): Missing right brace␤WHERE: sub { "hello" #`(test) }.()␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:255:in `_block_rest'␤ STD_red/std.rb:242:in `block in
..block'␤ …
JimmyZ Patterner: Yes, also here. 09:35
rakudo: ({ "hello" #`(test) })() 09:38
p6eval rakudo 8566a6: OUTPUT«invoke() not implemented in class 'Perl6Str'␤in Main (/tmp/watm6zLKqp:2)␤»
JimmyZ rakudo: ( * * * )(5); 09:39
p6eval rakudo 8566a6: ( no output )
JimmyZ rakudo: ( * * * )(5).say;
p6eval rakudo 8566a6: OUTPUT«25␤»
JimmyZ rakudo: ({$_ * $_})(5).say;
p6eval rakudo 8566a6: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤invoke() not implemented in class 'Float'␤in Main (/tmp/CUW8p4FISH:2)␤»
09:46 drbean joined 09:48 drbean_ left 09:50 masak joined
masak hello, #perl6, you fantastic channel you. 09:50
sharada JimmyZ woah!! 09:51
hi masak
that what how does it work
* is $_ in that context?
pmichaud news.perlfoundation.org/2009/09/hag...akudo.html # jnthn++'s latest Hague Grant application, if anyone wishes to comment 09:52
masak sharada: yes. and it creates a closure around the expression, as well, so that the resulting object can be invoked. 09:53
wohoo, a jnthn grant application! \o/
09:53 pmurias joined
masak I have a feeling I'll get a lot of Perl 6 work done today. 09:57
question is, what should I focus on?
10:01 frew_ left
jnthn is going to focus on sleep in a moment 10:01
And yes, comments on the rant app most welcome. 10:02
erm,
grant
masak :)
jnthn: how's Asia?
10:02 drbean_ joined
jnthn masak: It's cool to be here, and I enjoyed hanging about in a busy market and a nice park for a while this afternoon (morning was mostly finding the hotel etc) 10:03
Now though just too tired tot hink...only holding out on sleep so I can do it and not too bad a time and make the jetlag even worse. 10:04
masak sounds reasonable.
jnthn (well, morning was also immigration, and customs, and the train ride into the center, etc...)
cognominal jnthn, good sleep, and enjoy japan 10:05
10:05 Whiteknight joined
jnthn Yeah, but I'm really struggling to stay awake. I can't do anything usefl. 10:05
ah well, I'll try and make it 30 mins more or so, then I'll probably let myself sleep, and hope I don't wake up at too insane a time.
cognominal what time is it, there? 10:06
10:07 drbean left 10:08 drbean joined
jnthn 7:08 pm 10:08
pmichaud wow, +15h from here 10:10
wait, does this mean..... jnthn++ is now from the future too?!?
masak it does indeed.
by the way, "someone set up us the BOM" should be someone's blog post title. 10:14
10:14 sharada left 10:16 drbean left
dalek kudo: e8b631c | mberends++ | src/builtins/globals.pir:
[builtins/globals.pir] preload $HOME/.perl6lib and languages/perl6/lib in @*INC
10:17
masak whoa! :)
mberends masak: proto is driving Rakudo development ;) 10:18
masak scary :)
moritz_ that's the way it should be - the ecosystem evolves, and Rakudo adapts as needed 10:19
pmichaud I think it was druid before that. And November before that.
it's a bit breathtaking to see what has happened the year since November's announcement :) 10:20
masak indeed.
10:21 abra left
jnthn Aye, we've come quite a way. 10:24
By December it'll be about 2 years since I first started hacking on Rakudo. :-)
And Rakudo two years ago had a very different feature set. :-) 10:25
10:26 colomon joined
cognominal what is druid? it is missing from perl6.org 10:26
10:26 drbean joined 10:27 drbean left
pmichaud github.com/masak/druid 10:27
10:28 drbean_ left
masak cognominal: it's a game I wrote nearly a year ago. it stands apart from other connection games in that it shoots up into the third dimension. 10:28
dalek kudo: 825074a | pmichaud++ | src/ (4 files):
Revise %*ENV processing to resolve RT #57400.
10:29
kudo: 6e2104a | pmichaud++ | :
Merge branch 'master' of [email@hidden.address]
masak cognominal: for quite some time now, it has been waiting to simultaneously burst out into SVG-hood and Web-hood.
pmichaud rakudo: say %*ENV.perl; # this should work when updated
p6eval rakudo 8566a6: OUTPUT«{"PERL6LIB" => "", "TERM" => "", "SHELL" => "", "USER" => "", "LD_LIBRARY_PATH" => "", "LS_COLORS" => "", "PATH" => "", "MAIL" => "", "PWD" => "", "EDITOR" => "", "LANG" => "", "HISTCONTROL" => "", "HOME" => "", "SHLVL" => "", "LOGNAME" => "", "LESSOPEN" => "", "LESSCLOSE" =>
.."", "…
pmichaud rakudo: %*ENV<XYZ> = 'hello'; run('say $XYZ'); # so should this 10:30
p6eval rakudo 8566a6: OUTPUT«operation not permitted in safe mode␤in Main (lib/Safe.pm:25)␤»
cognominal masak, I like all these block grames, pentominoes, tangrams, sliding blocks and the like
masak cognominal: this is at least slightly related. 10:31
pmichaud I wonder if we could get 'safe mode' to not be enabled for nicks that are deemed to be 'safe' already :-)
cognominal masak, i think I know a two dimensional version of druid
masak cognominal: what's it called?
10:32 drbean joined
cognominal I forgot 10:32
masak heh.
pmichaud > %*ENV<XYZ> = 'hello'; run('echo $XYZ'); 10:33
hello
lambdabot <no location info>: parse error on input `%*'
masak the ones I know about are Hex, Gonnect, Quax, Y, Havannah and a few other minor ones.
mberends pmichaud++ # %*ENV eliminates another ugly hack in Proto 10:35
cognominal That's a impressive game list : www.gamerz.net/pbmserv/
masak aye, gamerz.net is one of those quietly astonishing phenomena. 10:36
cognominal masak, that was probably hex
masak Hex! \o/
I won't say I'm any good at it, but I've been playing it for seven years now.
it's a very deep and interesting game.
colomon \
10:37 drbean_ joined
pugs_svn r28192 | pmichaud++ | [t/spec]: Unfudge some %*ENV and contextual related tests for Rakudo. 10:39
cognominal masak, right now, I am addicted to many combinatory games on my iPhone: Kitten escape, theseus, subway, unblock me, tanzen, zentomino to name a few
masak pmichaud++ # fixing RT #57400, a long-standing irritation
10:39 drbean left
masak the latter two sound familiar, the others don't... 10:40
pmichaud if someone can verify that the issues in that ticket are indeed fixed (and properly tested), I'd be gratified to see that ticket close :)
okay, I'm going to see if I can get a couple of hours sleep before the kids awake
masak if I were to enter the business as an iPhone app developer, I'd probably be writing connection games.
pmichaud rakudo: say %*ENV.perl; # this should work when updated
p6eval rakudo 8566a6: OUTPUT«{"PERL6LIB" => "", "TERM" => "", "SHELL" => "", "USER" => "", "LD_LIBRARY_PATH" => "", "LS_COLORS" => "", "PATH" => "", "MAIL" => "", "PWD" => "", "EDITOR" => "", "LANG" => "", "HISTCONTROL" => "", "HOME" => "", "SHLVL" => "", "LOGNAME" => "", "LESSOPEN" => "", "LESSCLOSE" =>
.."", "…
cognominal masak: www.logicmazes.com/theseus.html
pmichaud hmmm, not yet
afk # sleep 10:41
10:42 drbean joined, drbean left
masak colomon: ah. nice realization of a simple game mechanics. cool. 10:43
s/cs/c/
10:44 drbean_ left
jnthn OK, rest time....can't stay awake... 10:45
o/ 10:46
masak jnthn: 'night
the latest spec change says 'break' outside of a topicalizer block is a compile-time error. 10:47
rakudo: break
p6eval rakudo 8566a6: OUTPUT«␤»
masak submits rakudobug
std: break
p6eval std 28191: OUTPUT«ok 00:02 37m␤» 10:48
masak TimToady: ^
10:57 drbean joined 11:02 drbean_ joined
colomon masak: I can't take credit for that last one... my one-year-old decided to hit some keys when I wasn't looking. 11:11
masak smart one-year-old. 11:12
11:12 timbunce joined
masak anyway, I like Theseus. I suddenly had the urge to write a Theseus maze generator in Perl 6. 11:12
11:13 pmurias left
cognominal masak, indead many of these games are representable by a graph and it is probably some interesting challenge to generate such graphs 11:18
masak cognominal: with Theseus it seems entirely feasible to automate the whole process. 11:19
cognominal www.kiragames.com/games/unblockme-free
masak let's say the shape of the outer walls of the labyrinth is given, for simplicity's sake. 11:20
then the only thing left to fix is the exact layout of the walls.
cognominal "only thing" :)
11:20 drbean left
masak yes, well, hold on. there's more. :) 11:20
we can rule out walls which entirely shut off parts of the maze. 11:21
since those effectively change the shape of the outer walls, or even make the level trivial or impossible.
cognominal btw speaking of cocoa, with snow leopard they have closure in C and objective C block. I hope it will make to the iPhone. 11:22
11:22 molaf joined
masak then, we start moving Theseus around, making the Minotaur make his moves according to the rules. just make every move possible on that level, depth-first. collect every unique game position in a hash. 11:22
when the search is done, compare the number of successful paths through the level to the number of deaths. 11:23
an interesting level will be one where 0% < p <= 10% of probability of success. 11:24
all this can be automated. it might take a very long time, but it can be left running. and it will churn out interesting Theseus levels with a given shape.
cognominal with all this games, for generating or solving them, one needs some insight to avoid a combinatorial explosion that makes the search too long. 11:27
masak I'll have to try it, but to me the search tree doesn't seem very wide in this case.
11:29 JimmyZ left, Chillance joined
masak of course, the combinatorial explosion might arise on the level of selecting the right combination of walls... hm, 2^N... yes, that's probably the tricky part... :) 11:32
cognominal Indeed there is not so many positions possibles
11:33 PZt left 11:36 PacoLinux left
moritz_ exponents kill ;-) 11:37
masak factorials, too.
moritz_ factorials are just mean exponents in disguise 11:38
log(N!) ~ N * log(N) + O(N)
masak true, true. 11:39
a bit meaner, even.
11:40 Hammit joined
moritz_ hacking the build/Makefile.in and then forgetting to run Configure.pl is annoying ;-) 11:40
11:41 leobm joined
cognominal masak : probably a complex theseus game can be generated by the composition of simpler ones by removing/adding any wall that is irrelevant 11:41
masak pardon, but that sounds like wishful thinking to me. 11:42
of course, I'm speculating as much as you are when I say that. working code trumps guesses. :) 11:43
11:46 drbean joined 11:48 masak left 11:57 PacoLinux joined
moritz_ now that we have context varialbes in place, we can switch to 'augment class', I think 11:58
(at least I think that was the blocker)
Hammit hi guys :) 12:01
moritz_ hello Hammit
Hammit how will perl6 handle using other languages libraries?
like XS in perl5
moritz_ no
12:01 z is now known as astinus, drbean__ joined
moritz_ Rakudo supports loading of foreign libraries without writing any C glue code 12:02
Hammit :o execellent
moritz_ at least for libraries which are written in another language that is implemented on top of parrot
Hammit ok
moritz_ so lua, TCL and a bit of ruby work
Hammit so its got nothing to do with perl6 then?
to do more with parrot 12:03
moritz_ yes
Hammit ok
moritz_ the Perl 6 semantics of foreign language interaction are still a bit unclear (at least to me :)
Hammit do you think that will get fleshed out more later? 12:04
or do you think it'll be avoided?
12:04 PZt joined
moritz_ it will get fleshed out 12:05
Hammit :)
moritz_ the syntax is pretty clear
use SomeModule :from<language>;
Hammit oh
goodie :)
moritz_ and eval($foreign_code, :lang<language>);
Hammit thaht's quite nice
moritz_ but I don't know if every Perl 6 implementation must support that, and to which extend 12:06
Hammit yeah, ok
12:06 drbean_ left
Hammit so in some cases, where a c library already exists, it might be better to go perl5 path than re-implement the library on parrot to use in perl6 12:07
moritz_ well, parrot can call C libraries just fine
Hammit oh hehehe
moritz_ so it's mostly a matter of plumbing
Hammit ok, kewl 12:08
moritz_ actually parrot as a compiler that parses .h files and writes NCI signature files for you
Hammit ok. ta. never heard of the NCI files before
12:08 drbean left
moritz_ it's not complete yet, but it worked for an initial binding of mysql, postgres and sqlite (iirc) 12:08
NCI = native call interface 12:09
Hammit v.good
12:09 molaf left
Hammit same for c++ then right 12:09
cognominal I suppose that Perl 6 will be unacceptably slow for a while, but it can gain traction if we can write scripts in Perl 6 that access perl 5 libraries
moritz_ no idea
Hammit ok
so we just write a perl script as per normal in p6, and before we use our p5 module, we turn on p5 compatibility more? 12:10
mode*
moritz_ in an ideal world we just load the Perl 5 module 12:11
use DBI :from<perl5>;
my $handle = DBI.connect(....); 12:12
Hammit oh...hehehehe of course :)
12:12 drbean joined, drbean left
cognominal Hammit, what blizkost will probably do is to wrap perl 5 values into perl 6 values 12:12
moritz_ my $sth = $handle.prepare_cached('SELECT ...');
cognominal s/values/containers/
Hammit ok 12:13
cognominal blizkost is the binding between Perl 6 and Perl 5. It is in its very early stage : less than 2 weeks old
Hammit oh
wow 12:14
12:14 masak joined
moritz_ $ perl6 -e 'say eval("3+4", :lang<perl5>)' 12:14
7
that works locally here
rakudo: say eval("3+4", :lang<perl5>)
p6eval rakudo 6e2104: OUTPUT«7␤»
Hammit hehehe
moritz_ hey, it even works on the server
12:14 payload left
moritz_ rakudo: say eval("[1, 2]", :lang<perl5>) # no idea if arrays work already 12:14
p6eval rakudo 6e2104: OUTPUT«ARRAY(0x9659900)␤» 12:15
moritz_ rakudo: say eval("[1, 2]", :lang<perl5>).[0]
p6eval rakudo 6e2104: OUTPUT«elements() not implemented in class 'P5Scalar'␤in Main (/tmp/IoxQhO4ObC:2)␤»
moritz_ seems like not ;-)
Hammit :(
ah well...worth a try
cognominal moritz_, I am working on it, but I have a lot to learn...
12:16 jbt joined
cognominal so far the hash and array pmc wrappers exist but they don't contain any method. 12:16
also, there is currently no way to wrap a perl 5 reference to some perl 6 equivalent. a capture? 12:17
moritz_ or maybe a Parcel? 12:18
probably both aren't properly implemented in Rakudo yet 12:19
cognominal moritz_, I don't know. I am reading a lot to figure out what's needed. I think, right now a capture would be a good start.
masak I was present when the Parcel type was invented, but I never really grokked the need for it.
cognominal I am confused with the commonalites and differences of Parcel, Signature, Capture... 12:20
moritz_ well, Signatures and Captures go together... 12:21
cognominal probably things will get clearer when parrot will get there so that jnthn will be able to code them
moritz_ a Signature is something like a template, which contains variables 12:22
masak is there a way to ask a Callable, "hey, if I give you this Capture, would your Signature match it?"
moritz_ and a Capture is a collection of values, and binding that to a signature binds the values to the variables
masak: yes, smart matching
(but probably NYI)
cognominal A capture contains values while signature contains types?
12:22 drbean__ left
moritz_ $capture ~~ &thing.signature 12:23
cognominal: roughly like that, yes
masak moritz_: ah, yes. thanks.
cognominal types being classes/roles with constraints 12:24
12:25 leobm left 12:27 drbean_ joined 12:30 PZt left 12:33 drbean_ left, drbean_ joined
moritz_ moritz.faui2k3.org/tmp/pg.svg rakudo spectest chart, generated by a Perl 6 module. 12:36
masak \o/ 12:38
moritz_ working on SVG::Plot has been very much -Ofun
masak I wish I knew a way to eliminate those thin white lines between the bars... 12:39
moritz_ I keep telling myself that it's just a "throw-one-away" prototype for Tufte
masak: it's a common rendering bug in various SVG rendering engines
masak ok.
moritz_ I just multiplied all bar widths by (1 + $small_number) 12:40
so there are no spaces in between if rendered correctly
12:40 drbean_ left
moritz_ and still they did not disappear 12:40
so I'm pretty sure it's a rendering bug 12:41
masak I've had similar rendering problems with a generated SVG graph of mine. 12:43
12:43 tlbdk left
masak it's for my Druid OO refactoring blog post... which I still haven't posted. amazing! 12:44
it's been in the queue since, I don't know, February.
moritz_ I've been asking myself if I'm sufficiently pissed off by this bug to use SVG paths instead of rects
and decided the answer was "no"
masak oh, the rects cause the problem, do they?
moritz_ because bar charts are just the wrong typo of chart for this set of data 12:45
12:45 drbean joined
masak anyway, the graph looks much better than the old one. moritz_++ 12:45
moritz_ well, I'm pretty sure that if I used a closed path and then fill it it won't have such artifacts 12:46
12:47 sharada joined, Hammit left
masak good to know. 12:48
12:52 PZt joined
moritz_ (mind you, I didn't try it) 12:54
13:01 Chillance left 13:05 sri_kraih_ joined 13:22 sri_kraih left, sri_kraih_ is now known as sri_kraih 13:27 zloyrusskiy joined 13:57 nihiliad joined 14:07 M_o_C joined 14:09 cotto joined 14:12 r0bby_ joined 14:23 r0bby left 14:42 colomon left 14:55 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
pmichaud rakudo: say %*ENV.perl; 15:00
p6eval rakudo 6e2104: OUTPUT«{"LS_COLORS" => 15:01
.."no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:…
pmichaud \o/
masak 'o- 15:03
er, \o/
moritz_ rakudo: $*ENV<LC_COLORS> = ''; say $*ENV.perl 15:05
p6eval rakudo 6e2104: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'␤»
moritz_ rakudo: %*ENV<LC_COLORS> = ''; say $*ENV.perl
p6eval rakudo 6e2104: OUTPUT«undef␤»
moritz_ rakudo: %*ENV<LC_COLORS> = ''; say %*ENV.perl
p6eval rakudo 6e2104: OUTPUT«{"LESSCLOSE" => "/usr/bin/lesspipe \%s \%s", "PATH" => "/usr/local/bin:/usr/bin:/bin:/usr/games", "LS_COLORS" =>
.."no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;…
moritz_ just had a set of perl 5 backflashes 15:06
pmichaud hmmmmm 15:07
moritz_ rakudo: say (-4/5) < 0 15:08
p6eval rakudo 6e2104: OUTPUT«1␤»
pmichaud rakudo: say 4/0; 15:09
p6eval rakudo 6e2104: ( no output )
pmichaud rakudo: say 4/0;
p6eval rakudo 6e2104: ( no output )
pmichaud hmmm 15:10
rakudo: say 4/0;
p6eval rakudo 6e2104: ( no output )
pmichaud fixes.
moritz_ pmichaud: if there is Foo.pm and Foo.pir present, currently Rakudo always uses the .pir one - could that be changed to compare the timestamps, and only use the .pir if it's newer than the pm?
pmichaud it could, yes, but I think there are other issues at play also 15:11
for example, what if it finds a .pir in one directory and a .pm in another?
moritz_ good question 15:12
15:12 jbt left
pmichaud in the larger realm of things, I'm suspecting that file timestamps won't be a real criteria 15:12
mberends let's leave these refinements for the future module database 15:13
pmichaud that's been my approach thus far, yes :)
moritz_ and its sensible; I just got bitten by that a few times in the last two days
which is why I came up with it now 15:14
pmichaud we could warn or fail if that's the case
moritz_ another solution would be speed up rakudo sufficiently that module precompilation feels much less necessary ;-)
15:15 rfordinal left
cognominal A question about S05, is there a way to expand a rule within another like in gist.github.com/181438 15:15
15:15 iblechbot left
pmichaud cognominal: I'm not aware of a way to do this at present, no. 15:17
although I hope your example means it should expand to
token t { [ <a> | <b> | <c> ] | <d> }
cognominal yes, I was confused 15:18
but you got the intent
pmichaud I think that TheDamian's Grammar::Parse module has a feature similar to that, so we might see something similar show up in S05
it might get difficult when working with something like 15:19
cognominal you mean : Regexp::Grammars?
pmichaud yeah, that
moritz_ when you implement variable interpolation you don't know all the possible captures at compile time anyway, no?
pmichaud but it might get difficult with something like
token t { <=v> | <b> }
er 15:20
token t { <=v> <b> }
because there's not any way to statically determine that <b> results in an array capture
15:20 ispy_ joined 15:21 zloyrusskiy left
pmichaud (variable interpolations are treated as subrules) 15:22
cognominal pmichaud, I don't get the problem with your example 15:24
pmichaud suppose we have 15:25
token v { <a> | <b> | <c> }
and then we have
token v { <=v> <d> }
which ought to be the same as
15:25 meteorjay left
pmichaud token v { [ <a> | <b> | <c> ] <d> } 15:26
$<b> will always be a single match object (if it's the thing that matches)
arggggh
mistypes
let me start over
suppose we have
token v { <a> | <b> | <c> }
and then we have
token t { <=v> <d> }
then this should be the same as
token t { [ <a> | <b> | <c> ] <d> } 15:27
however, consider
15:27 mishu joined
pmichaud token t2 { <=v> <b> } 15:27
which would be the same as
token t2 { [ <a> | <b> | <c> ] <b> }
in this case, $<b> would end up being an array of match objects, because it appears twice in the same lexical scope
cognominal ok, got it 15:28
pmichaud but we can't determine that by looking at the token t2 { <=v> <b> } definition
masak ah, intricate. 15:29
15:29 mishu left
pmichaud of course, if one is interested only in the text of <=v>, and not its subtree structure, then we have 15:29
token t { <.v> | <d> } 15:30
but I suspect that's not what you're looking for :)
cognominal One can detect the error at execution time though. 15:34
pmichaud it would require a lot of additional knowledge to do that
cognominal ok
moritz_ how are captures of interpolated patterns organized 15:35
s/$/?/ 15:36
pmichaud interpolated patterns don't capture by default
one can explicitly capture them, which then answers your question :-)
moritz_ ok
pmichaud $<xyz>=<$var> / # capture $var into $<xyz> 15:37
TimToady <xyz=$var> more typically
pmichaud would the $var in that case be treated as $var or as <$var> ? 15:38
TimToady <$var>
pmichaud okay
cognominal really, my proposition does not need to authorize interpolated patterns in the expanded rule to be useful
TimToady any foo= prefix inside <> is just recursive back to <> 15:39
pmichaud TimToady: got it, thanks
TimToady: did you see my comment about $*XYZ automatically looking in %*ENV<XYZ> as potentially being unsafe ?
TimToady no, haven't bled yet
pmichaud okay
TimToady waiting for coffee... 15:40
pmichaud it was just a one-liner
that feature just reminds me a bit of PHP's "register_globals" and/or superglobals, which have been a big security issue
TimToady but in that sense I suspect all dynamic variables are unsafe, when you don't know who is going to use your module and fail to init them at every entry point 15:43
pmichaud %*ENV takes it a slight step farther, I think, in that the values come from outside the script
one could suppose that taint checks handle that 15:44
TimToady you can get privilege escalation with sandboxen too
pmichaud anyway, it was just a thought that occurred to me while implementing it (and given that I've just had to deal with a lot of register_global nastiness in $otherjob) 15:45
TimToady nod
I've just been trying to break myself of thinking that the Unix process model was forever
so I've tended to look at internal feeds as pipes, etc. 15:46
15:46 cotto left, abra joined
TimToady and generally think of subprocesses within a program as much as possible like subprocesses outside of programs 15:47
anyway, will think on it more when the caffeine hits
pmichaud great. I don't have a strong opinion, it was more a "minor discomfort that I can easily ignore for a long time" :) 15:48
15:50 cotto joined, jferrero joined 15:55 justatheory joined
TimToady std: sub { "hello" #`(test) }.() 16:05
p6eval std 28192: OUTPUT«ok 00:04 37m␤»
sharada cool 16:06
TimToady just doublechecking something that confused rakudo when JimmyZ tried it earlier 16:07
rakudo: sub { "hello" #`(test) }.()
p6eval rakudo 6e2104: OUTPUT«Confused at line 2, near ".()"␤in Main (src/gen_setting.pm:3469)␤»
moritz_ bug, right?
TimToady but rakudo will presumably get less confused after converging on STD
yes, but not necessarily one I'd expect to be fixed before convergence 16:08
moritz_ what's so hard about it?
I'll open a ticket anyway 16:09
TimToady k
16:11 jrtayloriv left
pmichaud rakudo: (sub { 'hello' }).() 16:12
p6eval rakudo 6e2104: ( no output )
pmichaud rakudo: (sub { 'hello' }).().say
p6eval rakudo 6e2104: OUTPUT«hello␤»
pmichaud rakudo: (sub { 'hello' #`(test) }).().say
p6eval rakudo 6e2104: OUTPUT«hello␤»
moritz_ rakudo: (sub { "hello" #`(test) }).().say 16:13
pmichaud I think rakudo gets confused by the .() after the "sub block"
p6eval rakudo 6e2104: OUTPUT«hello␤»
moritz_ rakudo: sub { 'hello' }.()
pmichaud I'm curious how std breaks down that particular construct
p6eval rakudo 6e2104: OUTPUT«Confused at line 2, near ".()"␤in Main (src/gen_setting.pm:3469)␤»
TimToady the intent has been that . after {} treats the {} as terminating an arglist, but it might actually be broken at the moment in STD 16:14
pmichaud rakudo: { 'hello' }.().say
p6eval rakudo 6e2104: OUTPUT«hello␤»
pmichaud rakudo: { 'hello' #`(test) }.().say
p6eval rakudo 6e2104: OUTPUT«hello␤»
pmichaud rakudo: ({ 'hello' #`(test) }).().say 16:15
p6eval rakudo 6e2104: OUTPUT«invoke() not implemented in class 'Perl6Str'␤in Main (/tmp/N0pRy9YbLz:2)␤»
pmichaud that one looks bogus
afk # library
TimToady it's a bare block, so executes immediately
pmichaud oh, yes, of course.
rakudo++ pmichaud--
TimToady rakudo: <3 1 4 1 5 9 6 2 5>.sort: { +$_ }.say 16:17
p6eval rakudo 6e2104: OUTPUT«_block61␤invoke() not implemented in class 'Boolean'␤in Main (src/gen_setting.pm:3469)␤»
TimToady the intent was to support something like that 16:18
but it might be a bad idea
16:20 M_o_C left
TimToady it would be better to have something that turns the entire statement into a term for the .say 16:21
I have at times ponder introducing a ;. operator 16:22
*pondered
moritz_ rakudo: say (-3.3).Int, ' ', (3.3).Int 16:23
p6eval rakudo 6e2104: OUTPUT«-3 3␤»
TimToady used to be that truncation policy was a performance win to avoid doing division, but maybe it isn't so much anymore 16:25
moritz_ rakudo: say (3/4).Int 16:26
p6eval rakudo 6e2104: OUTPUT«0␤»
TimToady ooh, I think I might have it. we can already say $foo\i to disambiguate a postfix, so maybe \\ could do that and whack the precedence back down to term level too 16:30
that would make it <3 1 4 1 5 9 6 2 5>.sort: { +$_ }\\.say 16:31
with sort of a visual picture of the .say dominating the left side 16:32
moritz_ don't we have pipes for that already? 16:33
<3 1 4 1 5 9 6 2 5>.sort: { +$_ } ==> &say
or whatever it look like
TimToady &say is a function, not a method
moritz_ point taken
TimToady just trying to make a way to keep a string of methods flowing in a rubyescque way 16:34
but yeah, maybe it's ==> *.say or some such
or @(*).say 16:35
don't remember offheand
*hand
kinda klunky though
moritz_ maybe @* should be a WhateverList term ;-) (just kidding) 16:36
TimToady and strange for single objects
moritz_ aye
16:38 sri_kraih left
TimToady otoh it is more visual than <3 1 4 1 5 9 6 2 5>.sort: { +$_ };.say 16:38
and ;. suffers under golfing out newlines
if the intent was $_.say
but basically a backwards statement prefix of some sort :) 16:39
I guess that would be a statement postfix... 16:40
like "done", "gatethed", "tried", "voided" :) 16:45
*gathered
16:48 frew_ joined, masak left
TimToady well, parens are usually better, and already there :) 16:53
moritz_ moritz.faui2k3.org/tmp/lines-neg.svg # SVG::Plot now understand ranges that don't begin from 0 16:59
17:02 tak11 joined 17:05 justatheory left 17:11 sparc joined 17:14 frew_ left 17:22 justatheory joined 17:27 jrtayloriv joined 17:44 tak11 left 17:46 payload joined
TimToady pmichaud: I don't see your $*XYZ comment anywhere in the log 17:49
but yeah, we should probably make the user explicitly say our $*XYZ = %*ENV<XYZ> in GLOBAL, which is pretty easy since UNIT starts in GLOBAL 17:53
or rather our $XYZ, if we drop * in packages 17:55
18:02 Bzek left
pugs_svn r28193 | lwall++ | [S02] obliterate fallback from contextuals to %*ENV as a trust issue 18:03
TimToady pmichaud++
which reminds me, does rakudo have a story on tainting yet?
afk & 18:06
dukeleto it would be super cool if someone added rakudo examples to en.wikipedia.org/wiki/Multiple_dispatch 18:12
18:13 abra left 18:14 abra joined, abra left 18:15 abra joined, abra left 18:16 abra joined 18:17 timbunce left 18:18 abra left, donaldh joined 18:19 iblechbot joined 18:21 frew_ joined 18:22 abra joined 18:23 abra left 18:24 abra joined
pmichaud <3 1 4 1 5 9 6 2 5>.sort(+*).say 18:26
rakudo: <3 1 4 1 5 9 6 2 5>.sort(+*).say
p6eval rakudo 6e2104: OUTPUT«112345569␤»
pmichaud seems hard to beat that :-)
TimToady: rakudo doesn't have a tainting story yet, but Parrot is supposedly planning to develop a story for that also. 18:28
18:28 donaldh_ joined
pmichaud so I've mainly been waiting to see if/when the Perl 6 and Parrot stories converge :) 18:28
dukeleto likes stories 18:29
18:45 donaldh left 18:47 molaf joined 18:48 donaldh_ left 18:50 Zloyrusskiy joined 18:51 Zloyrusskiy left 18:52 Zloyrusskiy joined 18:53 Zloyrusskiy left
cognominal I have to get used to think Whatever when an * appear in an operand position. On the other hand it is such a powerful way to dwim when you don't know how to say what you mean that it will not be difficult once supported everywhere. 18:53
I guess that's what so special about Perl. You think a feature a is just trouble and before you know it you can't live without it. 18:55
I am sure the camelia logo is no different. 18:56
18:58 Zloyrusskiy joined 19:04 jaldhar left
dukeleto camelia rocks. we need stickers 19:13
19:23 jaldhar joined 19:31 ispy_ left, Whiteknight left
pmichaud I can put stickers up on the cafepress/zazzle sites :) 19:39
draft of Rakudo day posting: pmichaud.com/wiki/Perl6/Context 19:40
comments and suggestions welcomed
19:41 nihiliad left
pmichaud cognominal: (Whatever, * and dwim) I think it's a similar story as the smart match operator. When you first look at it, one thinks "trouble", but after a while it's just so powerful and natural... 19:44
19:48 synth joined 19:52 molaf left 19:55 jrtayloriv left 19:56 abra left
pmichaud use.perl.org/~pmichaud/journal/39585 # rakudo day posting 19:57
19:57 Zloyrusskiy left 19:58 jrtayloriv joined 20:00 Zloyrusskiy joined 20:08 drbean left, drbean joined 20:09 icwiener joined 20:12 drbean left 20:14 mattp_ left
cognominal pmichaud, I have not followed closely contextual variable but I am not sure to grasp the difference with temporary variables. Also, when I grep as see a lot of variables with the * twigil declared as temp. 20:16
probably contxtual variables have to do with the GLOBAL and PROCESS space while temparory variable don't and my grep hits fossils 20:18
20:21 xomas left 20:25 synth^2 joined, synth^2 left 20:27 sri_kraih joined 20:29 drbean joined, jlmoko left 20:31 sri_kraih left 20:33 jlmoko joined 20:48 drbean left 20:50 drbean joined
pmichaud cognominal: yes, I suspect your grep is hitting fossils. Previously $*foo meant just 'global' 20:53
one of the primary differences between a contextual and a temp is that the outer contextuals are still available 20:54
for example, my $*OUT = ... still leaves $PROCESS::OUT available
afk, nap 20:55
cognominal thx. I am tired, see you tomorrow
20:56 drbean left, drbean joined 21:09 sri_kraih joined, drbean left 21:12 sri_kraih left, sri_kraih joined, sri_kraih left 21:13 sri_kraih joined, sri_kraih left, sri_kraih joined 21:17 tylerni7 left 21:18 synth left 21:24 tylerni7 joined 21:29 drbean joined 21:32 iblechbot left 21:36 drbean left 21:58 Zloyrusskiy left 22:01 Whiteknight joined, drbean joined 22:06 synth joined 22:18 drbean left 22:33 payload left 22:34 drbean joined 22:45 drbean left 22:47 drbean joined
mikehh forgot to report rakudo (6e2104a) builds on parrot r41004 - make test / make spectest (up to r28192) PASS - Ubuntu 9.04 amd64 (g++) 22:52
22:53 drbean_ joined 22:54 drbean left
mikehh rakudo (6e2104a) builds on parrot r41019 - make test / make spectest (up to r28193) PASS - Ubuntu 9.04 amd64 (gcc) 22:55
22:59 hjs joined 23:00 drbean joined 23:01 drbean left, alester joined 23:02 alester left 23:03 alester joined 23:05 drbean joined 23:09 drbean left 23:10 drbean joined 23:16 frew_ left 23:20 sharada left 23:22 drbean__ joined 23:23 drbean_ left 23:24 drbean__ left 23:25 jferrero left 23:27 frew_ joined 23:30 _jaldhar joined 23:34 drbean left 23:36 _jaldhar left, _jaldhar joined 23:37 drbean joined 23:41 _jaldhar left, _jaldhar joined 23:42 jaldhar left 23:51 masak joined
masak oh hai. wonky connection, etc. 23:52
is the following bug known/reported?
rakudo: my $x = 'foo'; (class { method bar { say $x } }).new.bar
p6eval rakudo 6e2104: OUTPUT«Lexical '$x' not found␤»
masak it's no biggie, but it did stop me in the tracks of writing this: gist.github.com/181565 23:56
using a fluent interface with chained methods felt like a cute thing to do. the workaround would be to have four normal methods. :)
23:57 mepplock left