»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
cognominal ulimit 00:00
sorear ulimit -v
ulimit -m limits PHYSICAL memory use, and thus causes swapping to start sooner
cognominal documented in the bash man page
sorear do not mix up these two options
$ help ulimit 00:01
cognominal apparently I need to do ulimit -S 00:03
00:05 rv2733 joined
sundar The Rakudo 'repl' doesn't print the values of evaluated expressions automatically.. is this to be changed, or is this the intention? 00:08
masak sundar: this is to be changed.
jnthn 'tis even on the ROADMAP. :-)
sundar: It's one of a couple of REPL improvements that we really need. 00:09
masak Moose 1.0! \o/ stevan-little.blogspot.com/2010/03/...eased.html 00:11
sundar ah ok.. I didn't really understand it since it's in the present tense: "REPL actually prints". :)
jnthn sundar: It's things we want to be able to say are true some day. ;-) 00:12
00:12 rv2733 left
sundar yeah, it sure will look good when it goes to the completed items list.. ;) 00:13
sorear Moose 100 00:15
cognominal masak++ # now I compile under 10 minutes while doing other things 00:18
masak moritz_++ # for the original tip :)
jnthn compiles his attempted fixes for the instance.t issues 00:20
incise.org/hash-table-benchmarks.html # may be interesting for those hacking Perl 6 compilers. 00:25
colomon is building unobe's latest, while he prepares to escort the Chinese princess back to China.
cognominal masak, is you perl 6 web application still maintained? 00:27
masak cognominal: which one?
cognominal Lightweight Perl 6 framework for web applications. Work-name is Web.pm.
I meant web server
masak we were just discussing that over email. 00:28
we've done 19 grant weeks out of 20.
it would be nice to wrap up the grant.
but I feel we've lost touch with our grant manager and the TPF.
(mostly because of long stretches of inactivity) 00:29
jnthn masak: fwiw, on my own grants I've talked with TPF at the start and at the end. ;-)
cognominal masak: I got perl6 Configure
Null PMC access in find_method('get_parrotclass')
current instr.: 'perl6;ClassHOW;onload' pc -1 ((unknown file):-1)
Segmentation fault
masak jnthn: that's a partial relief :)
cognominal when trying to configure it.
jnthn cognominal: make install not run?
masak cognominal: I don't think anyone's tried to build Web.pm on the new master.
yet.
jnthn And trying to use Perl 6 outside of build directory?
If so, run make install. :-) 00:30
00:32 wknight8111 left
cognominal thx, jnthn 00:33
now I probably need to tell it where to find modules... 00:34
perl6 Configure
Unable to find module 'Configure'.
jnthn perl6 -e 'say @*INC.perl' will tell you that.
masak export PERL6LIB=`pwd`/lib 00:35
cognominal now, I guess I hit a real problem 00:36
perl6 Configure
You can not add a regex to a module; use a class, role or grammar
masak right.
that's just wrong.
and known.
jnthn Did we get a spec resolution on that?
cognominal I suppose the recent work on module has invalidated some stuff
masak well, TimToady said that we're definitely allowing regexes outside of grammars. 00:37
that's good enough for me.
jnthn masak: It was also stated that you'd have to write my regex or our regex.
iirc.
masak hm; possibly.
jnthn The question is, do we warn and throw away all method declarations on a module that are has-scoped?
masak it's getting to be high time to try to get the app cheese to build on the new Rakudo master.
colomon app cheese?! 00:38
jnthn Sounds crackers.
cognominal the proof of takudo is in eating the apps :)
*rakudo 00:39
masak colomon: 'cheese' is just a term meaning 'totality' here :)
colomon ah. strange usage, good idea. :) 00:40
masak colomon: use.perl.org/~masak/journal/39583
hm, that URL doesn't actually *explain* the usage... :P 00:41
00:41 fda314925 left
masak it started when I accidentally a cheese slide on the last NPW... 00:41
00:41 hercynium joined
jnthn It wasn't the whole cheese, though. 00:42
masak colomon: a couple dozen slides into this presentation, there's a cheese: masak.org/carl/npw2009-november/talk.pdf 00:43
00:43 yinyin joined
cognominal masak, is Web inspired from Sinatra like Perl 5 Dancer? 00:44
I see a method Astaire so I wonder
masak cognominal: the part of it called Astaire is.
cognominal ok 00:45
masak cognominal: the core of Web.pm is inspired by Ruby's Rack.
jnthn instance.t annoyance fixed.
masak s/inspired by/a faithful clone of/
dalek kudo: e8b8da3 | jonathan++ | src/Perl6/ (3 files):
Correct handling of attributes during the compile so we don't lose ordering, thus dealing with the intermittent instance.t fejls.
00:46
00:46 fda314925 joined
cognominal There is so much Web framework around that I have trouble to remember the specificities. 00:46
masak tell me about it. :) 00:47
cognominal I think there is a wikipedia page but not really up to date 00:48
en.wikipedia.org/wiki/Comparison_of...frameworks
I remember having added to it weblift (a scala framework) a few months ago 00:49
00:49 drakej joined
holli_ rakudo: grammar G { method TOP { die "!" } }; my $p; try { $p = G.parse("x"); }; say $p 00:49
p6eval rakudo db0f85: OUTPUT«Any()␤» 00:50
holli_ rakudo: grammar G { method TOP { { die "!" } } }; my $p; try { $p = G.parse("x"); }; say $p
p6eval rakudo db0f85: OUTPUT«Any()␤»
holli_ rakudo: grammar G { method TOP { { x } } }; my $p; try { $p = G.parse("x"); }; say $p
p6eval rakudo db0f85: OUTPUT«Any()␤»
masak cognominal: I keep wanting to check out weblift.
colomon masak: running all the projects' tests! woo-hoo! go cheese! 00:51
snarkyboojum I wrote some simple stuff in Lift - loved it's templating framework
masak colomon: yeah. we're getting there. :)
colomon \o/ 00:52
snarkyboojum found debugging Lift issues problematic at the time (this was about 2 years ago tho :)) 00:59
snarkyboojum stops talking off topic ;)
masak snarkyboojum: hi! 01:00
snarkyboojum masak: hello! 01:04
I'm about to run off, so will bug you later on about Tardis :) 01:05
masak :)
01:05 frzntoz joined
masak I'm not sure how long I'll be staying. it's way past my bedtime. 01:05
snarkyboojum in that case, an early goodnight from me :) 01:06
afk &
masak :)
jnthn should sleep soonish too 01:07
01:10 nihiliad left, nihiliad joined 01:17 sundar left 01:20 wolf2k_ubuntu joined
jnthn Sleep time, night all o/ 01:20
masak 'night, jnthn!
01:21 ash_ left, wolf2k_ubuntu left 01:24 wolf2k_ubuntu joined
dalek kudo: 26ba8bf | (Solomon Foster)++ | (3 files):
Merge branch 'master' of git://github.com/unobe/rakudo
01:26
kudo: 208fcab | (Solomon Foster)++ | src/Perl6/ (3 files):
Merge branch 'master' of [email@hidden.address]
01:28 masak left 01:29 Psyche^ joined, Psyche^ is now known as Patterner
cognominal squerl 01:33
01:44 ash_ joined 01:46 frzntoz left 01:47 justatheory joined 01:49 wolf2k_ubuntu left 01:55 wolf2k_ubuntu joined 02:18 xinming joined, am0c joined
am0c hugs p6eval 02:28
colomon rakudo: my @a = 1..10; my @b = 'a'..'f'; zip(@a, @b) 02:30
p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &zip␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon rakudo: multi zip(**@list) { @list[0] Z @list[1] }; my @a = 1..10; my @b = 'a'..'f'; say zip(@a;@b) 02:32
p6eval rakudo db0f85: OUTPUT«Malformed parameter at line 11, near "**@list) {"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon drat 02:33
02:42 Alias left 02:43 Alias joined
pugssvn r30203 | colomon++ | [t/spec] Fudge for Rakudo. 02:50
02:56 simonm joined 03:01 simonm left 03:04 dalek left 03:08 dalek joined 03:20 nihiliad left
dalek kudo: f7d3461 | (Solomon Foster)++ | src/core/Any-list.pm:
Quick implementation of Any.pairs.
03:27
kudo: 1882918 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/pairs.t.
03:35 _jaldhar left
colomon rakudo: say split("", "forty-two") 03:35
p6eval rakudo db0f85: OUTPUT«forty-two␤»
colomon rakudo: say "forty-two".split(""); 03:38
p6eval rakudo db0f85: OUTPUT«forty-two␤»
colomon rakudo: say split("", "forty-two").perl
p6eval rakudo db0f85: OUTPUT«GatherIterator.new()␤»
colomon rakudo: say split("", "forty-two").eager.perl
p6eval rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")␤»
am0c say "forty-two".split('').perl.say 03:49
rakudo: "forty-two".split('').perl.say
p6eval rakudo db0f85: OUTPUT«GatherIterator.new()␤»
am0c ah?
rakudo: "forty-two".split('').eager.perl.say 03:50
p6eval rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")␤»
am0c oic..
snarkyboojum rakudo: my @a = "forty-two".split(''); @a.perl.say
p6eval rakudo db0f85: OUTPUT«["f", "o", "r", "t", "y", "-", "t", "w", "o"]␤» 03:51
sorear @ isn't lazy... yet
03:53 _jaldhar joined
am0c sorear: just an @ after assignment is lazy later at default? 03:55
s/@/simple @/; # i mean
colomon rakudo: say "".split('').eager.perl 03:56
p6eval rakudo db0f85: OUTPUT«("", )␤»
snarkyboojum alpha: my @a = 1..Inf;
heh
p6eval alpha 30e0ed: ( no output )
am0c alpha? 03:57
p6eval: help
p6eval am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo|perlito|alpha|sprixel|elf|highlight): $perl6_program>
am0c p6eval: help alpha
p6eval am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo|perlito|alpha|sprixel|elf|highlight): $perl6_program>
snarkyboojum am0c: alpha branch of rakudo pre ng
alpha: "forty-two".split('').batch(*).say 03:58
p6eval alpha 30e0ed: OUTPUT«Method 'batch' not found for invocant of class 'List'␤in Main (file src/gen_setting.pm, line 324)␤»
snarkyboojum rakudo: "forty-two".split('').batch(*).say 03:59
p6eval rakudo db0f85: OUTPUT«Method 'Int' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
snarkyboojum does Whatever work there? :)
rakudo: "forty-two".split('').batch(9).say
p6eval rakudo db0f85: OUTPUT«forty-two␤»
snarkyboojum am0c: github.com/rakudo/rakudo/tree/alpha 04:00
04:00 drakej left 04:01 holli_ left
am0c I see! 04:01
snarkyboojum pre nq.. lol. I meant pre nqp-rx
mildew-js: say "hi" 04:03
p6eval mildew-js: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
snarkyboojum mildew: say "hi" 04:04
p6eval mildew: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
snarkyboojum elf: say "well hello"
p6eval elf 30203: OUTPUT«well hello␤»
snarkyboojum rakudo: my $x = * * 2; say <1 2 3>.map: $x 04:06
p6eval rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
snarkyboojum alpha: my $x = * * 2; say <1 2 3>.map: $x
p6eval alpha 30e0ed: OUTPUT«246␤»
snarkyboojum rakudo: my $x = * * 2; say $x(5) 04:08
p6eval rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
snarkyboojum rakudo: say <1 2 3>.map: -> $x { $x.succ } 04:09
p6eval rakudo db0f85: OUTPUT«234␤»
snarkyboojum rakudo: say <1 2 3>.map: *.succ
p6eval rakudo db0f85: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 13156 (src/builtins/Str.pir:115)␤»
snarkyboojum alpha: say <1 2 3>.map: *.succ
p6eval alpha 30e0ed: OUTPUT«234␤»
pugssvn r30204 | colomon++ | [t/spec] Redo split.t to use .join(',') for testing rather than is_deeply, as the latter does not really work with iterators. 04:10
ash_ rakudo: map { say $_ * 2 }, <1 2 3> # rakudo is a bit to lazy sometimes
p6eval rakudo db0f85: ( no output )
colomon BTW, if someone is looking for something to do, I think split.t could easily use twice as many tests as it has now... 04:11
04:13 xinming left
ash_ i can try to take a look at it later 04:13
dalek kudo: b2f995a | (Solomon Foster)++ | t/spectest.data:
Turn on split.t.
04:15 holli joined 04:17 meppel joined
snarkyboojum buubot: karma colomon 04:21
buubot snarkyboojum: colomon has karma of 378
snarkyboojum buubot: karma audreyt
buubot snarkyboojum: audreyt has karma of 8
snarkyboojum interesting :) 04:22
sorear buubot is a new player
buubot sorear: Couldn't match input.
colomon audreyt does't really do much around here anymore. but certainly deserves higher karma tan me....
*than
sorear back in the heydey of #perl6 karma was managed by lambdabot 04:23
or the heydey of pugs, anyway
snarkyboojum aye
colomon I thought the karma has been reset several times just in the last year....
sorear also I've got ~500 lambdabot karma from my time in #haskell that didn't carry over :(
04:29 molaf joined 04:31 snarkyboojum joined 04:37 holli left 04:40 colomon left, Guest88978 is now known as Trashlord, Trashlord left, Trashlord joined 04:51 meppel left, holli joined 04:54 ash_ left 05:33 am0c left 05:35 molaf left 05:47 justatheory left 05:57 ShaneC left 05:58 mberends left 06:03 wolf2k_ubuntu left 06:19 Sarten-X left 06:20 xinming joined 06:26 Sarten-X joined
holli is pondering about new operators: <?p6?> and <? code ?> 06:38
like ib php. it would turn perl6 instantly into the worlds most powerful templating language. 06:39
s/in/php/
bah, s/ib/in/
06:47 chromatic joined 07:04 rekhajos joined
holli rakudo: sub MAIN { say "M" } 07:25
p6eval rakudo db0f85: ( no output )
07:29 eternaleye left 07:30 yahooooo joined 07:35 payload joined
pugssvn r30205 | lwall++ | [specs] Make it clear that pairs are *not* related to subscripts, but the 07:38
r30205 | corresponding fatarrow semantics in particular, name extenders are just
r30205 | strings or list of strings, properly indicated by :<> or :() in most cases
r30205 | (this includes all operator names). Forbid name extension using :{}, and
r30205 | since names may no longer be extended with :{}, we can free up that notation
r30205 | for supplying a closure as a first argument to a method without an intervening
r30205 | space. (We can't also get rid of the colon, or it's a hash subscript.)
r30206 | lwall++ | [STD] Properly object to unrecognized internal regex modifiers such as :has. 07:41
r30206 | Parse to the new specs regarding name extensions, and allow colon method arguments
r30206 | to omit the space if the next char is a left curly, which is what people seem to
r30206 | expect anyway.
07:45 mberends joined
pugssvn r30207 | lwall++ | [t/spec] patch up occurrences of infix:{...} etc. to align with current spec 07:51
sjohnson @karma 07:52
07:52 TimToady sets mode: +vvv buubot dalek hugme, TimToady sets mode: +vv ilogger2 IRSeekBot, TimToady sets mode: +vv p6eval phenny
mberends holli: for templating you've also already got $s = "text { code } text"; 07:52
TimToady Perl 6 is already the world's most powerful templating language. :) 07:53
mberends :) 07:54
TimToady and where it isn't, it will be trivial to tweak it till it is.
well, trivial for the user, anyway...the implementation of all that is not so trivial, from STD's perspective... 07:55
08:02 hanekomu_ joined 08:03 riffraff joined 08:12 Su-Shee joined 08:16 iblechbot joined, dalek left
pugssvn r30208 | lwall++ | [STD] more deletion of no-longer-needed xacts 08:30
08:39 dalek joined 09:08 dakkar joined
jnthn morning 09:16
sorear hello 09:18
blizkost is fighting me
jnthn Fight back! Fight back! 09:20
Yes, I fighted me too. :-)
sorear today's insanity is the macro war between perl.h and parrot.h 09:21
also, I'd like to give thanks to whoever put rm *.c *.h in the clean rule for build/src/pmc/Makefile.in 09:22
09:27 meteorjay left
jnthn sorear: Just a standard thing. 09:29
(from the language template)
I don't find it particularly surprising.
I'm guessing you put .c and .h files in there that weren't the PMC's ones though. :-/ 09:30
sorear yep!
jnthn :-)
sorear luckily I'm in the habit of commiting *before* testing
jnthn Phew.
Perhaps it's nice to pop them in some other folder. Less risk, and after all, they aren't pmcs, they're other stuff. :-) 09:31
09:34 clintongormley joined 09:38 cotto joined 09:39 payload left
moritz_ rakudo: say [1,2,3,4] 09:53
p6eval rakudo db0f85: OUTPUT«1 2 3 4␤»
moritz_ rakudo: say [[1,2],[3,4]]
p6eval rakudo db0f85: OUTPUT«1 2 3 4␤»
moritz_ rakudo: use Test; is_deeply [1,2,3,4], [[1,2],[3,4]] 09:55
p6eval rakudo db0f85: OUTPUT«not ok 1 - ␤# got: [1, 2, 3, 4]␤# expected: [[1, 2], [3, 4]]␤»
09:57 yinyin left
moritz_ rakudo++ 09:57
09:59 payload joined 10:08 gfx joined 10:15 chromatic left 10:17 ktne joined 10:19 eternaleye joined 10:28 iblechbot left 10:48 xinming_ joined 10:51 xinming left 10:57 riffraff left 10:58 pmurias joined 11:05 hanekomu_ left 11:08 raygis joined, raygis left 11:16 fda314925 left 11:17 fda314925 joined 11:22 xinming_ is now known as xinming 11:24 sundar joined 11:28 payload left 11:29 colomon joined 11:40 rekhajos left 11:41 meppl joined 11:42 synth joined 11:48 envi^home joined 11:57 snarkyboojum left 12:01 sundar left 12:10 sundar joined 12:22 masak joined
masak oh hai, #perl6 12:22
12:22 mj41 joined, pmurias left
mberends oh hai masak 12:22
masak picked the wrong hours to sleep tonight 12:23
12:25 sundar left, envi^home left 12:27 sundar joined 12:28 [synth] joined 12:30 envi^home joined
jnthn masak: Just awake? :-) 12:30
masak jnthn: been up a few hours. :) 12:31
but still. kinda late.
mberends jnthn: for separate compilation of core/*.pm, is it good or bad to consider inserting the generated traits.pir into the front of every other modules that mentions traits? 12:34
jnthn masak: Ah. Spent my morning on visa crap. But aside from giving some stuff to a courier who'll show up later, I think I'm done now. 12:35
masak: The visa form has got...a lot worse...since last time I did it. :-/
mberends: Yes that would be very bad.
masak jnthn: ok. I'd better start digging in that matter, then.
jnthn masak: Well.
masak: But you're not British, so your form is probably simpler. 12:36
masak :)
jnthn I'm not joking. The form I filled out is the special one for the UK, the US and Georgia.
cognominal I am afraid that with our president that France will become an aligned country and pick that sort of sillinyess 12:38
12:39 ignacio_ joined
moritz_ hopes that France does not leave the Schengen treaty 12:40
jnthn That would suck. 12:41
12:42 justatheory joined
masak A hole the size of France in the middle of the Schengen zone? no kidding! 12:42
takadonet morning all 12:44
12:45 ruoso joined 12:46 justatheory left
jnthn masak: Well, slightly to the left of... ;-) 12:48
12:48 holli left 12:49 ignacio__ joined 12:50 ignacio_ left, gfx left 12:53 snarkyboojum joined
sundar Hi... I installed libreadline6-dev, did a "perl Configure.pl", "make clean && make && sudo make install" in the parrot directory. Still, running "perl6" does not give me readline support.. What am I missing? 12:53
12:54 riffraff joined
sundar I have parrot checked out as ~/svn_parrot/, and rakudo in ~/svn_parrot/runtime/parrot/languages/rakudo/. I ran the above commands from ~/svn_parrot/. 12:55
masak sundar: need to rebuild Parrot after installing readline.
moritz_ sundar: I have libreadline5-dev (5.2-3.1), works here
masak sundar: specifically, make sure the Parrot configure phase finds it.
sundar yes, it said "auto::readline - Does your platform support readline.................yes." 12:56
moritz_ sundar: and di you reconfigure rakudo after you re-installed parrot?
12:58 takadonet joined
sundar ouch.. I rebuilt Parrot, but did not rebuild rakudo itself.. :) I somehow assumed make-ing parrot will do it for me.. I'm rebuilding rakudo now. 12:58
moritz_ sundar: and it did, 2 years ago
but since then rakudo and parrot have come considerably detangled
12:59 ktne left
sundar yeah, I understand, it's better to not have unnecessary couplings. Though, is it possible to add an option to parrot's Configure.pl to rebuild all the languages under languages/ directory too? 13:00
we should have a consistent build mechanism for the languages though, for that to work.. and for specifying options to individual language configurations, we could have a CONFIGURE_OPTIONS file under the language directory.. 13:02
masak sundar: ooh, you keep Rakudo under languages/ ? 13:03
sundar: I'm one of the few who still do :)
(not that it matters much. I build Parrot and Rakudo separately)
sundar :) yes.. it somehow feels cleaner to me. 13:04
masak: from what I just understood, we _have_ to build them separately now, isn't it? 13:05
masak sundar: well, there's the option of letting Rakudo pull in Parrot.
most people seem to take that route nowadays. 13:06
I don't because I want to have the latest Parrot.
not the one Rakudo is set to pull in.
sundar ah ok.. I too don't, though mostly due to philosophical reasons (refer 'cleaner' above :) ).. But this does have the risk that Rakudo might some days not build against the latest parrot, isn't it? 13:09
moritz_ masak: I keep parrot under rakudo, and still use the latest one 13:10
masak oh, ok.
moritz_ but I agree, it doesn't feel so good, because if you have 20 languages, you don't want a parrot tree for each of them
sundar moritz_: oh, I thought even in that setup you could have additional languages under a languages/ directory.. Isn't that possible? 13:11
moritz_ sundar: it would, yes
sundar: but then I have rakudo/parrot/languages/cardinal
but why should cardinal be in a rakudo sub directory? 13:12
then I'd actually prefer symlinks
13:12 payload joined
moritz_ let each language has its parrot/ dir, which is actually a link to one single parrot tree 13:12
sundar moritz_: hmmm yeah, that's better. though, we'd have problems when rakudo and some other language want different versions of Parrot.. 13:14
masak if map and grep use gather internally, will it be impossible to have a 'take' behave correctly inside the block of a map or a grep? 13:16
moritz_ masak: yes 13:18
rakudo: say <a b c>.map({take 2; $_ }).eager 13:19
p6eval rakudo db0f85: OUTPUT«take without gather␤take without gather␤take without gather␤abc␤»
moritz_ rakudo: say <a b c>.grep({take 2; $_ }).eager
p6eval rakudo db0f85: OUTPUT«2a2b2c␤»
jnthn Note that map doesn't use gather/take. 13:21
moritz_ yes, just noticed
but it's still lazy?
jnthn Yes
But has its own kind of iterator (MapIterator)
You could do it in terms of gather/take too.
masak that's just the thing. 13:22
the Spec doesn't spec how to implement map and grep.
jnthn Good.
It shouldn't.
masak which means, by extension, that it shouldn't interfere with an outer gather.
jnthn is gather/take lexotic?
masak so I'd consider the current behaviour of grep a bug.
it's dynamic, I think.
moritz_ jnthn: I think it's purely dynamic
masak I don't fully grok lexotic yet. I think 'return' is lexotic. 13:23
moritz_ return = dynamic, but the end points are still tied to a lexical scope
jnthn lexotic iirc is like, look lexically first 13:24
then dynamically if nothing found
masak huh. 13:25
13:28 am0c joined 13:32 envi^home left, envi^home joined 13:42 ash_ joined
sundar a basic question.. I tried a small change to src/core/operators.pm, did "make && sudo make install" in the rakudo directory, but could not see its effect when I run perl6. what am I doing wrong? 13:43
moritz_ sundar: what did you change? 13:44
usually you should see the changes
except when it's in a multi candidate you don't call 13:45
sundar ah it _is_ a multi sub, but I don't see any other candidates in this file. the change was in infix:<Z> 13:46
moritz_ rakudo: say 2 Z 3 13:49
p6eval rakudo db0f85: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:(Iterable $a-iterable, Iterable $b-iterable)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ there seems to be only one candidate, yes
masak: have you seen this? :-)
sundar the diff is at codepad.org/wpyDibhD (I couldn't get paste.lisp to work).. basically I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"];" :)
jnthn Probably needs one more candidate.
multi infix:<Z>($a, $b) { &infix:<Z>($a.list, $b.list) } 13:50
moritz_ sundar: that should make a difference... don't know why it doesn't
jnthn That's what we've done for hypers etc.
moritz_ sundar: just a wild guess.. do you have multiple perl6 binaries installed, and calling the wrong one?
sundar: try ./perl6 -e 'say 1, 2 Z 3, 4' 13:51
masak moritz_: nope, hadn't seen that one.
masak submits rakudobug 13:52
sundar moritz_: that gives 1324 only. 13:53
jnthn rakudo: say 1, 2 Z 3, 4 13:55
p6eval rakudo db0f85: OUTPUT«1324␤»
jnthn That's correct.
sundar moritz_: ah I don't have multiple perl6 binaries, but there is something fishy.. the modification timestamp of my perl6 binary is old..
jnthn oh, wait, you'd added something...sorry
jnthn only half watching.
13:55 Trashlord left
sundar should I for some reason reconfigure before doing make and make install? 13:55
moritz_ nope 13:56
but you should be aware where rakudo installs its perl6 binary
and that is just where the parrot binary is with which rakudo was configured
13:57 Trashlord joined, Trashlord is now known as Guest85367
sundar which perl6 says /usr/local/bin/perl6, and my most recent make install has a "/usr/bin/perl -MExtUtils::Command -e cp perl6 /usr/local/bin" line.. 13:57
but from a stat on the file it appears only the status was changed in this run.. the modification time is from an old run (probably one run after a git pull).. 13:59
14:04 pugssvn left 14:06 dalek left 14:08 pugssvn joined
sundar I tried a make clean && make && make install too, which didn't help either.. any clues? 14:09
14:19 pugssvn left 14:20 pugssvn joined
mathw sundar: have you tried make realclean, then reconfigure and make from scratch? 14:27
sundar mathw: hmmm I tried reconfigure and make, now running "make realclean && perl Configure.pl && make && make install".. that is what you're suggesting, correct? 14:28
ash_ hmmm, yesterday someone said it took them like 2 hours to make rakudo on their mac, i just did a "time make" on mine, real8m58.554s 14:29
user5m7.448s
sys2m20.594s, i am wondering if there was another issue... maybe?
mathw ash_: there may have been 14:30
sundar: make realclean cleans more things, so it might help.
jnthn Those build times are on the high side. :-/ 14:31
ash_: Was it for Parrot too, or jsut Rakudo? 14:32
ash_ just rakudo
14:32 nihiliad joined
jnthn Ugh. 14:32
ash_ i didn't time the whole thing, just make on rakudo, i guess i could time build for parrot too 14:33
sundar ugh.. even realclean didn't help it.. it gives the same old output and even the perl6 binary hasn't been changed.. 14:36
ash_ jnthn: build of parrot: real4m15.767s 14:38
masak rakudo: Misspelled::Typename 14:44
p6eval rakudo db0f85: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak :(
14:47 dalek joined 14:49 ash_ left 14:51 dalek left
sundar does anyone have any idea why make install is not modifying my 'perl6' file? or how can I track down what the issue is? have any of you faced such issues? 14:52
masak sundar: is it failing to copy the file? maybe it doesn't have the privileges? 14:53
sundar I ran it with sudo, and it didn't complain of any failure either.. 14:54
14:54 synth left, [synth] left
sundar but the timestamp is an old one, doesn't change after I change something and do a make install. 14:54
14:54 synth joined, [synth] joined, ash_ joined
sundar to be clear, the _modify_ timestamp is an old one.. the _change_ timestamp gets changed every time I run make install.. 14:55
masak I've never heard of anyone with this problem before.
ash_ i did a make realclean and re-ran make, it timed as: real 10m30.311s 14:57
14:58 dalek joined
sundar could some kind soul here try the changes I did and see if make install changes the perl6 binary for them? I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"]" in infix:<Z> in operators.pm (diff: codepad.org/wpyDibhD) 14:59
masak tries 15:00
sundar FTR, I now tried changing the definitions of say() in IO.pm to print "OH HAI" as well, but make install didn't care about this either... 15:14
jnthn sundar: Maybe try locating and removing all perl6 executables, or rename them, or something. Then do make install and you'll get a feel for where it's actually installing things to. 15:15
sundar jnthn: ah, that somehow did the trick - I renamed /usr/local/bin/perl6, ran make install, and voila, the perl6 now has the modifications I did! thanks.. 15:17
but previously too, it was using this location only - every time I ran make install, the _Change_ timestamp of the file would change. Why make install didn't change the actual content too is puzzling to me.. 15:18
15:23 nihiliad left, nihiliad joined
pugssvn r30209 | lwall++ | [times.t] fix parsefail I installed last night 15:25
TimToady std: /:x(6) \d/ # currently disallowed, tempted to keep it that way 15:30
p6eval std 30208: OUTPUT«===SORRY!===␤Unrecognized regex modifier :x at /tmp/r01WLKdXQR line 1:␤------> /:x⏏(6) \d/ # currently disallowed, tempted␤FAILED 00:01 107m␤»
masak as long as it's clear which adverbs can be used both outside and inside a regex, and which ones can only be used outside. 15:31
> say 1,2,3 Z 4,5,6 15:32
1 4 OH HAI2 5 OH HAI3 6 OH HAI
sundar: worksforme.
TimToady what's clear is that :x(6) will not be clear on the inside
masak I agree, I think.
sundar masak: hmmm.. it worked for me too after I renamed the preexisting perl6 binary.. did you have a perl6 binary at the place previously?
masak TimToady: it feels more like talking *about* the regex, as opposed to, say, :i 15:33
sundar: yes.
TimToady :i is not redundant on the inside
masak TimToady: I did not imply it was :)
15:33 SmokeMachine joined
TimToady whereas :x duplicates ** with unclear semantics 15:33
masak nod. 15:34
TimToady the :x outside implies a .*?
does it do the same inside?
masak maybe the litmus test is whether the adverb makes sense inside a smaller scope of the regex. :i does. 15:35
:x doesn't much.
hugme hugs masak, good vi(m) user!
masak hugme: false positive :P
TimToady one can argue that :x(6) means [.*? ...] ** 6 or some such 15:36
15:36 alester joined
masak / foo [ :x(3) bar ] baz / 15:37
jnthn Mmm...a line of bars.
masak I think the .*? is very non-Least-Surprise
TimToady but that's what :x does on the outside!!
s:x(3)/foo/bar/ should change the first three foos it finds 15:38
masak yeah.
TimToady if you meant the other you'd say s/'foo' ** 3/bar/
masak just registering my instinctive dislike of using it on the inside :)
TimToady or some such
yes, well, it's currently in t/spec :( 15:39
masak :(
TimToady and maybe even implemented
masak not in PGE, at least.
jnthn rakudo: /:x(3) a/ 15:40
p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "/:x(3) a/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
TimToady maybe it's fudged for rakudo
yeah, NYI 15:41
masak in my humble view, it should be forbidden inside regexes, on the grounds that it produces no new semantics, and is quite confusing when used in deeper scopes. 15:43
pugssvn r30210 | lwall++ | [rx.t] remove internal :x and :nth as confusing and redundant 15:44
masak \o/ 15:45
jnthn oh yay, now that test will take a little less time to compile. ;-)
15:45 molaf joined
TimToady yeah, that's one of the longer ones... 15:45
jnthn (Agree with the decision too.)
15:47 the_llama joined
masak is reminded of rt.perl.org/rt3/Ticket/Display.html?id=61130 and how personal expectations can clash with more basic semantics 15:47
15:49 the_llama left 15:57 synth left, [synth] left 15:58 synth joined
TimToady hmm, I don't read :nth(1,2,3,4,5) :x(3) the same way pm does 15:58
15:59 TiMBuS joined
TimToady to me, :nth defines one iteration of :x 15:59
though I can see it the other way too 16:00
and I can even see an argument for doing it either way depending on order of :x and :nth 16:01
this will take more thought
masak :)
TimToady it's like whether you count the elements before or after the grep... 16:02
and whether you count parcels as 1 or many
ash_ TimToady: do you still think roles with method ^foo { } like methods should be included when you do a does on an object? 16:03
masak in subst, when the adverbs are provided as named args, they don't have an inherent order...
16:04 sundar left 16:05 payload left
TimToady ash_: what is the problem with it? at worst it seems like it requires a unique metaobject for the class, but surely a metaclass can instantiate new metaobjects when it needs to 16:05
masak: nod 16:06
ash_ well, what happens if you say do role Foo { method ^compose { ... } }; does that use the Foo specific compose when its mixed in or does it add it to the class? or should that be disallowed? 16:07
TimToady if we have to, we can even derive a new metaclass with the new method mixed in, I suppose 16:08
or we can conservatively disallow it for 6.0.0
esp if we don't really understand its semantics yet 16:09
I'm fine with either way
of course, if an implementation makes assumptions that it will never be possible, it might have another think coming down the road. :) 16:10
but it seems a bit strange to assume mixin semantics in your classes without mixin semantics in your metaclasses 16:11
maybe there are optimization issues though
or MONKEY_PATCHING issues, though a personal metaclass mixin seems like it's pretty non-actiony-at-a-distance 16:12
and maybe metaroles are actually important down the line
kinda like a role can specify an "is" for the class 16:13
this is more like a .HOW mixin 16:14
(or composition)
ash_ i was trying to, in alpha a while back, see if i could make a role based persistence mechanism, so you can just apply it to objects, or classes, or properties and save them, i ended up overloading does's multi dispatch for does had my role as a parameter to keep track of the types that were being persisted, which seemed odd to me, since i kinda feel like thats something the role should be responsible for 16:15
s/for/for when/
TimToady yeah, that seems like a workaround; open to suggestions 16:17
other than turning Perl 6 into Haskell. :)
would executable hooks in the role be appropriate when composition/mixin side effects are needful? 16:18
ash_ ruby solves the problem kinda by having 2 ways of mixing into a class, one into the instance and one into the meta class, so then if you had any ^methods you could assume they belong to the role and would not be added
exectuable hooks would be helpful too 16:19
thats really all i wanted
TimToady well, p6 tends to assume that anything ambiguous in a role is to be considered generic, and done within the class
ash_ executable hooks would of solved my problem, i just think it might be interesting (maybe in a bad way though) if people could override compose for instance 16:20
TimToady making and exception for ^methods seems odd that way
*an
ash_ but that might not be something to encourage, since overriding compose could have consequences someone might not understand 16:21
TimToady well, I'm all in favor of rope, as long as it's hidden from normal view, and comes with a warning label when it's too easy to abuse
ash_ (like me, for instance)
TimToady well, the MONKEY_PATCHING approach is extensible, it's just a lexically scope compiler variable, really 16:22
well, lexical to the program, dynamic to the parser...
ash_ i also ended up doing: multi sub trait_mod:<does>(AttributeDeclarand $a, Endure::Property, $type) is export at one point
so you could say: class Foo { has Str $name does Endure::Property; } and it would know that $name is a string that can be saved if you call .save on the Foo object 16:23
TimToady well, overriding ops on different types if Officially Fine, but of course can be easily abused to fix it in the wrong place.
s/if/is/ 16:24
ash_ yeah, that felt like i as doing something wrong, since i had to do some funny stuff with AttributeDeclarand to get the type, like: $a.container.VAR does Endure::property;
16:25 Psyche^ joined
TimToady well, I don't have time to review the whole thing right now, but it sounds like you have your head screwed on straight :) 16:25
(got a $job meeting today)
ash_ i kinda stopped working on that till rakudo got a bit further, maybe by rakudo* i can finish it :P
no worries
TimToady thanks for thinking about these things
every now and then I wish I were omniscient, but then I'd be responsible :) 16:26
ash_ i think my thing was i felt like i was jumping through hoops to accomplish something, and thats when I started to wonder if i was "Doing it wrong" or if maybe i was the only one trying to do what i was doing 16:27
16:28 Patterner left, Psyche^ is now known as Patterner
Su-Shee how do I say in english "simple, tidy, neat, tiny" (code) if I mean it in an elegant, zen-like way and not in the "simpleton, stupid, redneck" way? is there a nice adjective? 16:32
araujo ash_, hacking rakudo?
ash_ TimToady: ultimately, the end user of my library could do things like: gist.github.com/345078 16:33
i was thinking the has_many and belongs_to would need to be macro's or something, but thats my initial thoughts
masak ash_: for what it's worth, all Perl 6 programming is "jumping through hoops" at this point, if you ask me.
ash_ araujo: not specifically on rakudo, more just thinking about perl6 in general 16:34
masak ash_: put differently, if you're not willing to put temporary workarounds in your code, you're not likely to get very far.
araujo ash_, I see
16:35 rgrau_ joined
ash_ masak: i think my biggest issue was i was worried i was doing it wrong 16:36
just because i can do silly pointer arithmetic in C doesn't mean i should if i don't need to
masak ah. I see.
well, a mixture of experimenting and reading other people's code oughta help against the fear for doing things wrong. 16:37
it's never possible to prove that one is doing things right :P
jnthn ash_: The issue is partly timing too. 16:38
(On ^foo things from roles)
16:39 pyrimidine joined
ash_ when i was overriding how does applies to AttributeDeclarand and my role I made i kinda was like "i hope i am not breaking the class by doing this..." 16:39
16:39 pyrimidine left
TimToady Su-Shee: concise or succinct maybe 16:39
jnthn ash_: In general, I think overriding declarative parts of the meta-model on a per-class basis (or with the details coming from a role) is shakey ground. 16:40
Su-Shee TimToady: thank you. 16:41
ash_ Su-Shee: being from texax and living in alabama, i must say putting us rednecks in with simpletons and stupid folk is hurtful, you forgot narrow minded and "slow"
TimToady well, better to override .HOW *before* the object is created rather than after :)
jnthn TimToady: Well, yes. :-)
TimToady so maybe it's allowed in composition and not in mixin? I dunno...
ash_ s/texax/texas/
jnthn TimToady: For those things, just declaring a custom metaclass up front is probably better. 16:42
TimToady: Well, composition is still weird.
Su-Shee ash_: well I didn't know how to describe it properly :)
jnthn TimToady: If you compose, say, ^add_method from a role
It's too late in a sense. Most of the methods already got added.
ash_ Su-Shee: you gotta speak slowly and loudly, it makes foreigners understand you better, proven fact
jnthn Since the role composer needs to know what's already to ahdn in the class.
TimToady well, if we disallow weird, we probably disallow cool as well... 16:43
16:43 cosimo joined, mberends left
TimToady but certainly there are places we can put a few "Here Be Dragons" signs 16:43
ash_ jnthn: so your saying i need to make a custom RoleHOW for my role then?
jnthn TimToady: I'm not saying disallow it. I'm just saying people will get bitten by the semantics. OTOH, if you're fiddling with adjusting the metaobject while it's being used to define a class, you probably deserve the bites. :-) 16:44
ash_: IIUC, what you're after is more to know "this role just got composed into this class".
TimToady we could take the approach of lacing the cigarettes with strychnine, of course... :) 16:45
jnthn ash_: I suspect for that we do want to define a more callback-ish mechanism / hook of some kind / phaser or something.
TimToady role hooks are probably useful for registration purposes 16:46
jnthn TimToady: Yeah, I'm very open to having some functionality along those lines.
It's come up before too.
TimToady you two feel free to propose something there
ash_ TimToady, jnthn yeah that would be enough to know what I need to know
16:47 cdarroch joined, cdarroch left, cdarroch joined
ash_ knowing when does was called, and knowing when an object was inherited i think cover most of the cases i can think of 16:47
TimToady seems to me that most of the action at a distance can be caught by the fact that metaclasses are also theoretically encapuslated and private
*su
jnthn ash_: Maybe a starting point could be to try and come up with some patch for metamodel.pod to specify how it could look. 16:48
ash_: I'm not quite sure how it should look right now, tbh, but my brain is a tad mushy today. 16:49
TimToady shower & 16:50
16:50 _jaldhar left
ash_ jnthn: do you know where the AUTO stuff is? in the spec or tests? 16:51
masak S10, S13... 16:52
ash_ i am just thinking about something that is method like but not a method, the AUTO* methods (AUTOSCALARDEF for instance) that way there is a clear distinction between the callback and the normal methods 16:55
masak I feel insufficiently versed in that part of Perl 5 to be able to give an informed anwer. 17:02
17:03 gabiruh joined
ash_ std: class Foo { AUTOSCALARDEF { 1 + 2 } }; 17:03
p6eval std 30210: OUTPUT«Undeclared name:␤ 'AUTOSCALARDEF' used at line 1␤ok 00:01 106m␤»
ash_ thats odd 17:04
it says 'ok' but apparently generated a warning?
jnthn Warnings are not unok.
:-)
17:05 the joined 17:06 the left
masak ash_: it treats 'AUTOSCALARDEF' as a bareword function call, and allows for the fact that it's missing its definition somehow. 17:06
std: eval 'sub foo() {}'; foo
ash_ just thinking along those lines, you could do: role Foo { COMPOSED($obj) { say "Foo got composed into $obj" } }
p6eval std 30210: OUTPUT«Undeclared routine:␤ 'foo' used at line 1␤ok 00:01 105m␤»
17:06 the_llama joined
the_llama k 17:07
17:07 the_llama left
ash_ you could probably use that with a class too, IMO, for when they are inherited 17:08
jnthn I think we shoudl distinguish them. 17:10
Since you can pun a role into a class
ash_ okay, thats fine, one other question, if you call self from within the COMPOSED what should it refer to? 17:12
jnthn Well, hmm
Good question. 17:13
ash_ or does it have a self?
jnthn I think it's more phaser-ish than method-ish.
ash_ also, if you chain them, say class A { INHERITED($subclass) { } }; class B is A; class C is B; did that get called on C is B? 17:14
chain isn't the right word, but i think you see what i mean 17:15
dalek kudo: 4a5a252 | moritz++ | src/core/operators.pm:
fix infix:<Z> to work with non-lists, as suggested by jnthn++. Fixes RT #73836
jnthn Yeah...is it transitive or not.
Hmm.
Neither answer is obvious to me right off on that one.
Would have to ponder it some more. 17:16
ash_ class A { INHERITED($subclass) { } }; class B is A { INHERITED($subclass) { nextsame; } }; class C is B; ?
jnthn If it's not methodish, I'm not sure if nextsame makes sense.
ash_ ya
you could approach it kinda like how BUILD works i suppose 17:17
jnthn Hmm, possible. 17:18
*possibly.
More sub-ish.
Could work.
ash_ would be kinda nice if there was 1 overarching mechanism that COMPOSED and INHERITED worked from 17:19
jnthn There's some other complicating factors with COMPOSED too. 17:20
e.g. do we only care about it when we actually get down into a class
or when composed into other roles too
17:22 abra joined
jnthn (I'd argue for the class approach...other one is too confusing, particularly as we produce throw-away roles during the composition process) 17:23
17:28 sundar joined
ash_ is that the case of role A {}; role B does A {} 17:29
17:29 dual joined
jnthn No throw-away there 17:29
masak nom & 17:30
17:30 masak left
jnthn given roles R1 and R2, class Foo does R1 does R2 { } creates one temporary role that does R1 and R2, and then mixes that into the classes. 17:30
That is, the flattening semantics are handled amongst roles.
ash_ ah, got ya 17:31
jnthn See various things in src/metamodel/ - these bits are largely written in NQP. :-)
17:32 Chillance joined
ash_ well, following the pattern of least surprise, i'd expect class A does R1 does R2 { } to call back R1's composed one time, and R2's composed one time 17:35
jnthn ash_: Right. 17:36
ash_ in both cases i'd expect the $obj being composed against to be class A
17:36 niros left
jnthn And you'd probably expect to be provided with A. 17:36
Seems we have similar expectations. :-)
TimToady why have an argument to those two hooks? why not just bind the object temporarily to self or $_? 17:38
I tend to prefer my hooks with bare names...
jnthn That would also work.
And makes them hookier I guess.
In a consistency sense.
TimToady like the current exception comes into CATCH, for instance
jnthn aye, there's precedent 17:39
Good call.
TimToady but in this case, if there's only one obvious object in question, could easily be 'self'
depending on whether it's better for it to be an object or a topic
ash_ yeah, makes sense, i had them separate for explicit access to each side of the does though
TimToady and if there are two objects involved, one can be self and the other topic 17:40
jnthn Yeah, but since it's in the thing that wants to be notified, it knows what it is.
TimToady waht I thought
and there's always OUTER::
17:40 hercynium left
jnthn Well, $?CLASS and $?ROLE too. 17:40
ash_ role Foo { COMPOSED($obj) { } }; class A does Foo { }, i thought self in COMPOSEd would be Foo and object would be A
TimToady yeah
ash_ that was my logic when i wrote that anyway
TimToady so it's really just a choice between self or $_
17:41 payload joined
jnthn role Foo { COMPOSED { .say } }; class A does Foo { }; # says A 17:41
well, A()
Guess you get the proto-object.
17:41 niros joined
TimToady or $.say, if we went the self route 17:41
jnthn Yeah
I'm more inclined to go the $_ route for consistency with CATCH
TimToady since effectively it's running in the context of the new object
jnthn Then you can when on it. 17:42
TimToady troo
not earthshaking either way, but I'd be happy with $_
esp since it doesn't *look* like a method
pmichaud good afternoon, #perl6
TimToady o/! 17:43
ash_ makes sense
jnthn \o/ is's pmichaud!
ash_ greetings
TimToady I have to go to $job in about 5
takadonet $job=undef
You don't have to go anymore :) 17:44
jnthn undef is not a Perl 6 concept. :-)
ash_ sub undef { Mu }
jnthn lol
takadonet $job=Mu ?
jnthn Somebody *will* write a module that does that...
ash_ lol, it wouldn't suprise me
TimToady hmm, COMPOSED { .defined } tells you are doing an object mixin, I think 17:45
jnthn ...ooh.
It probably does, yeah.
Or could be made to.
TimToady COMPOSED:U and COMPOSED:D :) 17:46
pmichaud: notice recent spec change, :foo<a b> now officially means foo => ('a','b'), not {} or [] 17:47
pmichaud TimToady: noted, thanks. 17:48
makes sense from a language perspective
TimToady so we can now again do the sort:{} trick
because name extensions don't take :{ anymore
since everyone keeps writing those anyway...
pmichaud works for me, since <a b> is ('a', 'b') anyway
TimToady only surprise is that :{} starts the argument list, so a following , continues it 17:49
some tests assumed it would terminate as an adverb inside 'is'
pmichaud and keeps the meme that :foo<<<something>>> acts more like a circumfix than a postcircumfix
TimToady yes 17:50
seems more regular, except for the new sort:{ exception that doesn't require space before {
tried to work it as an adverb, but then postfixes are too late
pmichaud yes.
TimToady so .sort:{}.grep would not work 17:51
pmichaud I'm so out-of-sync with recent changes, I fear I might never catch up. :-/
TimToady (or other way around, probably)
we'll write a book for you :)
ash_ std: sort:{ $^a > $^b }, <4 3 2> 17:52
p6eval std 30210: OUTPUT«ok 00:01 108m␤»
ash_ so like that?
TimToady no
not on functions
17:52 synth left
TimToady in fact, I'm not entirely sure how that parsed... 17:52
ash_ lol, oops, i think i am misunderstanding the change your referring to 17:53
TimToady only .sort, not sort
ash_ std: <4 3 2>.sort:{ $^a > $^b } # that then? 17:54
p6eval std 30210: OUTPUT«ok 00:01 107m␤»
TimToady in fact, I think it parsed it as (sort :{}), 4,3,2
yes, that 17:55
gotta commute &
jnthn o/
ash_ lunch & 17:56
17:56 ash_ left 18:01 sekon joined
sekon hello 18:02
is there a list of "low hanging fruit" as such 18:05
jnthn sekon: hi! :-) 18:06
sekon so that an inexperienced programmer can be of some use
jnthn sekon: Depends what you want to work on. :-)
sekon: But yes, there are ways to track down such things.
sekon jnthn: Hi thanks for the response .. is there a current list of bugs that need to be taken care of I am an inexperienced developer looking to make a meaningful contribution to open source code 18:08
jnthn: I have no priorities as such and just want to help 18:09
jnthn sekon: Well, there's more than one pile of source code to hack on. :-) If it's Rakudo you want to work with, check out the RT queue. rt.perl.org/ There's a search interface and we do tag some things as LHF.
sekon jnthn: thanks and have a great day
jnthn sekon: Thanks, you too. And do drop by here plenty too. There's lots happening, it's not always this quiet. :-) 18:11
sekon: There's also plenty of opportunities for working on modules and contributing to the test suite, both of which are also extremely valuable.
18:11 TiMBuS left 18:13 dakkar left 18:17 revdiablo joined, Guest85367 left 18:19 lichtkind joined
jnthn -> shops, bbiab 18:19
18:25 PacoLinux joined 18:28 chromatic joined, pmurias joined, hanekomu_ joined 18:31 hanekomu_ left 18:49 ash_ joined 19:05 envi^home left 19:06 abra left 19:07 nadim left 19:08 cj joined
cj woot. I got the DLR into ubuntu. now all we need to do is build a perl6 interpreter on top of it ;) 19:08
sekon cj: Soorry DLR?? 19:09
TimToady the CLR, only D
jnthn :-) 19:10
Dynamic Langauges Runtime
cj: Cool. :-)
pmurias cj: shouldn't we build a perl6 compiler targeting it instead of an interpreter on top of it? 19:12
19:14 ShaneC joined
ash_ is there another perl 6 project targeting the DLR? 19:17
pmichaud I think we plan to target DLR with Rakudo and NQP at some point 19:19
jnthn After Rakudo *. :-) 19:23
19:26 pyrimidine joined
TimToady ash_: yes, sprixel 19:28
19:28 hanekomu_ joined, molaf left
ash_ is the DLR cross platform? 19:29
19:29 Coke joined
Coke hio. which syn for "how to break out of a while loop" ? 19:30
ash_ or does it run on like mono?
pmichaud Coke: 'last'
Coke I'm looking at perlcabal.org/syn/S04.html, but while doesn't say, and neither does Control Exception.
pmichaud while $cond { last if $other_cond; }
19:30 sekon left
Coke pmichaud: yes, but where is it documented. This isn't the first time I've had to come to #perl6 to find out and I wish to avoid bothering you nice people. =-) 19:31
pmichaud Coke: I suspect it falls into the "same as Perl 5" category.
Coke pmichaud: that would explain it. danke.
TimToady Coke: S04:334 19:32
grep is your friend 19:33
ash_ grep is nice, but i like ack, plus its written in perl 19:34
Coke TimToady: that's what I get for reading the nicely formatted one at perlcabal.org/syn/S04.html =-)
TimToady++
chromatic Speaking of pmichaud, what's necessary to get the status graphs updated again? Is that something anyone could do?
Coke pmichaud++
TimToady most browsers can search too :)
pmichaud I need to write up the steps and publish the script.
(for the status graphs)
Coke TimToady: <grumble> 19:35
hurm. this doesn't seem to ever break out, in NQP: 19:36
while pir::length__is($string) {
last
}
(nqp-rx, I mean) 19:37
even while 1 { last } doesn't break out. 19:39
ash_ hmmm, nqp-rx doesn't define a 'last' op i don't think 19:40
Coke I would expect an error instead of a silent ignore, then. odd. 19:41
ash_ i don't see last in the nqp grammar anyway... 19:42
Coke danke, ash_ 19:45
19:47 payload left
ash_ Coke: my $a := pir::length__is($string); 19:47
while $a {
say($a);
$a--;
} might do what you want
pmichaud I think NQP doesn't implement 'last' yet, although it certainly can do so. 19:48
ash_ pmichaud: looks like someone added a few things to nqp for a project, www.gitorious.com/kakapo/kakapo/blo...nqp#line19 has an addition for some of that 19:49
19:49 nihiliad left, rgrau_ left
pmichaud ash_: yes, that's Austin Hasting's work 19:49
(probably with others as well) 19:50
Tene I might be able to get to that tonight.
pmichaud he's implemented next() as a function; I've been thinking it might be worthwhile to have it act like a keyword, similar to how 'return' and 'make' are currently handled in NQP
Tene yes
exactly
pmichaud although I wasn't going to implement any ability to pass an argument to next/last/redo in nqp, at least not yet. 19:51
Tene the argument would be the block that you're targeting, yes? I certainly wouldn't expect that in NQP. 19:52
pmichaud I think the argument can also be the value to be used for the current iteration of the loop
i.e.,
Tene ... ouch
pmichaud my @a = (for 1..5 { next $_ * 2; } ); # @a becomes 2, 4, 6, 8, 10 19:53
but I'm not entirely certain of that.
my memory of the spec is a bit hazy these days
ash_ pmichaud: can ranges take a variable on either side in nqp? like 1..$a ? 19:55
jnthn didn't know NQP did ranges... 19:57
Coke pmichaud: thought you'd appreciate this: time to run t/cmd_llength.t in partcl: 1.4s; in partcl-nqp: 0.87s
(of course, partcl-nqp isn't able to do as much yet, but that seems encouraging)
20:02 SEcki joined 20:04 dalek left
pmichaud NQP doesn't do ranges, no. 20:04
I was more pointing out what Perl 6's "next" function could do, that NQP's likely will not.
NQP can't do ranges because Parrot doesn't supply a Range type :-) 20:05
ash_ ah, that would make sense
pmichaud (well, it *could* go ahead and treat 1..5 as meaning (1,2,3,4,5) but that seems like it'd be asking for trouble in other areas)
anyway, I suspect ranges are one of the areas where NQP tends to emphasize the NQ :-) 20:06
ash_ yeah, make sense
in my nq-nqp i am thinking of adding a delete $a; since i don't have GC 20:07
20:09 payload joined, molaf joined 20:12 dalek joined 20:13 Guest85367 joined 20:18 riffraff left 20:23 M_o_C joined
mathw Evening 20:41
20:41 lichtkind left
jnthn mathw: o/ 20:41
mathw o/ jnthn 20:42
how're things
jnthn Not so bad
Spent too much of this week dealing with visa stuff. But it's done now...hopefully. :-)
mathw yay
jnthn And you? Cold shaken off?
mathw well I've got myself to a point where I consider myself well
and have been to aikido today
...twice 20:43
jnthn Yes, I saw the photo. :-)
mathw so happy me
jnthn \o/
mathw thus you know that I got my 6th kyu :D
colomon \o/
jnthn Yes. Congrats! :-)
mathw would dance, but is too exhausted
two classes in a day is hard
I have no idea how I'm going to survive summer school
that's about eight hours a day for four days
jnthn Whoa!
mathw FOUR DAYS!
but there will be three 7th dans teaching 20:44
so it's really quite unmissable
especially since it happens in Nottingham
(because we're the head dojo. hah!)
jnthn :-) 20:45
20:45 Helios joined
mathw it'll be quite the experience 20:45
if only for the chance to see sensei phil do his 4th dan test
20:53 ignacio__ left 21:00 ruoso left
mathw ow 21:10
21:11 pyrimidine left
jnthn mathw: Was that at aikido pains, cat induced, or Rakudo build memory consumption? :-) 21:11
mathw aikido pains
my forearms are not happy
the cat seems to be scared of me tonight, which is a bit odd 21:12
he's usually all over me
21:12 Coke left, ignacio_ joined
mathw particularly after I've been out 21:13
ah, here he comes
21:14 alester left 21:18 ignacio_ left
colomon moritz_: Is there a reason you didn't use the same patch for infix:<X> as you did for infix:<Z>? 21:26
moritz_ colomon: none than human imperfection 21:27
colomon :)
21:30 molaf left
moritz_ s/than/but/ 21:31
moritz_ -> bed 21:32
colomon night!
jnthn sleep well o/
21:32 ignacio_ joined 21:41 M_o_C left 21:44 mberends joined 21:50 Su-Shee left 21:52 ash_ left 21:55 Chillance left 22:01 SmokeMachine left 22:15 sundar left, ignacio_ left 22:21 sorear joined 22:26 riffraff joined 22:30 ignacio_ joined 22:33 ignacio_ left
pmurias mathw: how does a dan test look like? 22:41
22:44 clintongormley left
sorear jnthn: My problem right now is - how to expose references to Parrot? 22:48
jnthn: best idea at present is - at return, reference chains are unwound, and a P5{not scalar} is returned; non-scalars are reffed on passing 22:49
pmurias sorear: what does reference chain unwounding mean? 22:51
\\\1 is turned into 1?
sorear jnthn: this seems to have the highest Just Work factor, but it prevents some interesting things
pmurias: yes
pmurias why do you want to do that?
sorear jnthn: another idea is to just handle refs as scalars, and axe P5Sub et al. Big disadvantage: since a scalar doesn't implement Callable &c, you can't treat random P5 returns as P6 sigil variables 22:52
pmurias: because there is no Parrot API for handling references, nor any P6 syntax, so it's not possible to simply expose them as a data type 22:53
unless we just expose them as objects, which would be insane
jnthn sorear: Hmm. In the Perl 6 sense, I guess things generally behave like references.
pmurias aren't captures the reference replacement
?
sorear CGI.new.DEREFERENCE.header
jnthn That is, $x = @foo; $x[1] # just works 22:54
sorear jnthn: this is sort-of where I'm going with #1 - no explicit refs on the P6 side
jnthn I agree they shouldn't be explicit, I think. At lesat not at the first level 22:55
pmurias jnthn: it's equivalent to $x = \@foo; $x->[1] in perl5 22:56
jnthn Deeper than that though...don't know that it makes sense to totally unwind them.
pmurias: Right. In Perl 6 the dereference is kinda "implicit" though.
pmurias jnthn: the referencing is 22:57
22:57 Alias_ joined
pmurias jnthn: the deferencing syntax is just shorter 22:57
because of sigil invariance
sorear: i think you shouldn't convert data types 22:58
jnthn Well, true, in a sense.
22:58 betterworld left
jnthn pmurias: Not sure what you mean by "convert data types"... 22:58
22:59 betterworld joined
jnthn sorear: I don't think you can unpack the whole chain - if anything it makes the round-tripping not really work out. 22:59
sorear the problem with first level is that it breaks round-tripping for scalar refs
22:59 supernovus joined, Alias left
pmurias if you unpack refs how are we supposed to write that into them? 23:00
sorear pmurias: Data type conversion is a necessary evil. 80% of the hard technical decisions in Blizkost have involved drawing and re-drawing the line between "necessary" and "evil"
pmurias why is it necessary? 23:01
parrot limitations?
jnthn sorear: I'd imagine more that there'd just be a wrapper PMC around the SV and when you tried to do some kind of indexed access.
sorear perl5 limitations
jnthn: that was my Second Idea
the problem with /that/ is that SVs are mutable
jnthn erm, and it de-referenced when you tried to... 23:02
How does that bite us?
sorear my @foo = thing_from_perl5; #( Perl5 does something in some other code which causes the SV to no longer be a ref)
now @foo points to a scalar, not a Positional
oops boom
pmurias sorear: what perl5 limitations?
sorear pmurias: it's not written on top of parrot 23:03
jnthn So long as it's oops boom in the "throws an Exception" sense rather than the "omg segfault" sense...
sorear so I can't just pass PMCs to it
jnthn ...I think that's probably OK.
sorear I have to munge them into SVs, which are similar but not quie the same
and do reverse munging later
pmurias sorear: i didn't encounter anything substantial when working on smop/p5 interop
sorear: why can't you wrap SV* into a SV PMC 23:04
jnthn I think that's more likely to work out right than taking out all the chains.
sorear pmurias: because a SV PMC would have a variable list of roles
jnthn sorear: That's fine. 23:05
sorear: Override does vtable. :-)
sorear: It can say it does whichever roles it likes. :-)
sorear oooh 23:06
supernovus I wish I knew C (and wasn't afraid of perl5 guts)...
sorear smop lives? 23:07
pmurias i sometimes hack on mildew (which targets smop and js) 23:08
sorear: it's not very active, but it's not yet dead 23:09
supernovus I'm afraid my work on Temporal.pm has been rather sparce lately, don't know if it'll be ready for Rakudo * (I still wonder if it shouldn't be an external lib anyway...) 23:13
sorear What does it do? 23:15
supernovus sorear: was that at me or pmurias? 23:16
sorear You
23:16 riffraff left
supernovus Temporal is provides functionality similar to the DateTime and TimeDate distos for perl5. Basically, simple date and time operations. 23:18
it is currently listed as a part of the perl 6 setting/core. I think it may be a bit much for a "core" library. 23:20
23:22 SEcki left 23:23 ruoso joined, cdarroch left
pmurias ruoso: hi 23:24
supernovus my work is based on the provisional Temporal.pm from the alpha branch as well as masak's Temporal Flux project.
23:25 masak joined
masak ahoy, #perl6! 23:25
supernovus speaking of masak! hi!
masak the insomnia trend continues! 23:26
mberends it must be catching!
masak :)
I'm only staying for a short Temporal period, though.
I need to apply some corrective temporal twists to my sleep habits. 23:27
jnthn lolitsmasak!
supernovus gah, more Temporal references!
typing on the pre keyboard is "fun" when on irc... 23:28
sjohnson yo masak 23:29
hey jnthn
masak sjohnson: \o
sjohnson question for you (i may have already asked this, forgive me)
masak yayitsjnthn!
23:29 pmurias left
sjohnson jnthn: i was reading your page a while ago and wanted to let you know about sourceforge.net/projects/unxutils/ if you didn't know about it already 23:29
makes win32 life a lot more pleasant
masak speaking of the young-girl demographic (or children in general): there's a 3D storytelling programming language called Alice. www.alice.org/index.php?page=what_i...t_is_alice 23:30
jnthn: in PIR, when a sub's declared to be a :method, can it still be called with any old invocant? 23:32
supernovus masak: looks neat, may have to play with Alice later.
jnthn masak: yes
masak jnthn: yuck! :)
jnthn masak: Why?
:-)
masak jnthn: I don't know. instinctive reaction.
it's like it's a method of *all* classes at the same time. 23:33
(it also explains a couple of RT tickets I've submitted)
jnthn masak: :method is just an instruction to install it in the methods table and to handle the self register
masak nodnod
it's slowly sinking in.
jnthn masak: Parrot doesn't handle type checking and stuff. We build that ourselves. :-)
masak alpha: regex foo { x a* y }; say foo 'xaaaay'; say foo 'hsfl' 23:34
jnthn (Or fail to at the moment, I guess...)
p6eval alpha 30e0ed: OUTPUT«xaaaay␤␤»
masak jnthn: the sub 'foo' that's installed there is a method.
jnthn: it gets called with self being the string passed in.
jnthn Yeah
masak jnthn: I need to... do something like that in GGE.
jnthn In master things get even more fun in that sense in that Perl 6 methods don't actually compile down to a :method in Parrot. 23:35
masak I'm still thinking of what that something is. :)
jnthn: so Rakudo master reinvents methods on the Perl 6 layer?
jnthn sjohnson: Yes, I know about that one.
masak: It was actually easier that way. 23:36
supernovus well, phone is dying, time to say farewell. 23:41
jnthn o/
supernovus ttyl! 23:42
23:42 supernovus left
Tene Yet another place where I worry about language interop. 23:43
masak yayitstene!
Tene yayitsme! 23:44
where?!?!
masak :)
Tene Yeah, rakudo worries me about failur eof language interop in several ways. I haven't been available enough to actually do anything about it to be able to complain, though. 23:45
masak please complain in more detail.
Tene "I've seen a few things that make me vaguely uneasy about possible language interop concerns, if nobody else fixes them." 23:49
Tene waves his hands around aimlessly.
sorear Tene: Interop problems in rakudo? 23:50
masak Tene: I don't have language interop concerns, because I don't do language interop. instead, I reinvent the wheel in Perl 6, and then drive around with teeth clattering. :P 23:52
Tene sorear: rakudo methods aren't actual parrot :methods, jnthn says. What are the implications of that on trying to call methods on rakudo objects from other parrot languages, or calling methods on other-language objects from rakudo? When I define postcircumfix:<[ ]> method on a class, how is that related to the *_pmc_keyed_int vtables? etc.
jnthn Tene: The methods one isn't a problem.
23:53 hercynium joined
jnthn Tene: All dispatch - from Rakudo or to Rakudo things - goes through find_method and invoke. 23:53
Tene: The postcircumfix:<[ ]> one is more of an issue though.
Tene also postcircumfix:<{ }> 23:54
jnthn Yup. 23:55
Tene there are also issues with .Bool and :get_bool, .Str and :get_str, etc.
several others.
jnthn Yes.
Tene there are issues with inheriting vtables overrides, though, so that's awkward to fix.
I think.
jnthn Yeah. :-/ 23:56
Tene Anyway, these aren't inherently unfixable, just need attention eventually.
Tene afk driving home 23:58
sorear jnthn: does this mean that blizkost values won't be usable as hashes &c?
Tene sorear: Yes, I expect it does. 23:59
jnthn sorear: We already have something in place that falls back to get_pmc_keyed vtables.
In the case that the thingy lacks a postcircumfix:<{ }> method.
Whether it works well or not, otoh...
But fixable if not.