»ö« | 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.
jnthn Anyways, those were the two things I ran up against when trying out Blizkost today. 00:00
Other than that, it worked great. :-) 00:02
00:06 rvperl left 00:11 lucs left
dukeleto i have a test for loading perl6.pbc as bytecode, but my test doesn't work when run through t/harness 00:12
jnthn Oh. :S 00:14
dukeleto jnthn: seems like the shebang line of the test file might not be handled correctly 00:15
jnthn: github.com/leto/rakudo/tree/test_load_pbc 00:16
jnthn: currently, it generates the shebang line to be the correct parrot binary that was used to configure Rakudo
jnthn Hmm...that own't port, but you probably already figured that... 00:17
Hmm
I did write some PIR tests once
That I thought used to run under the harness
dukeleto jnthn: so prove t/02-embed/01-load.t works, but perl t/harness t/02-embed/01-load.t doesn't
00:17 skids joined
dukeleto jnthn: i tried using environment vars in the shebang line, like $(PARROT), but that wasn't working 00:18
jnthn: and yes, some stuff I am doing is not portable, but I saw similar stuff in the build/Makefile.in, so I didn't worry about it for now
lue I thought it was ${PARROT} . Hmm 00:19
arnsholt dukeleto: I think you can achieve at least some of that with env
jnthn dukeleto: I'm not sure what's wrong. moritz_++ may have some ideas. 00:20
dukeleto jnthn: another option is to make the test perl 5, which shells out to the correct parrot
jnthn: and runs a .pir file
jnthn: that might be a lot less hairy and not require generating shebangs 00:21
jnthn true
And be more portable.
arnsholt Indeed. 00:22
My first thought was "why not do it in shell instead?"
But then I realized, Windows =)
lue methinks conversion pm -> pir takes all my lovely ANSI escape codes out of the strings :/ 00:23
dukeleto lue: are you talking about editor highlighting?
jnthn: hacking on the perl-shelling-out-to-parrot route now 00:24
lue no. 00:25
Things like \e this, ansi coloring. \e
00:26 lest_away is now known as lestrrat
lue [ ah well. All I wanted was to make the spectest runner look nice. :) ] 00:26
dukeleto calling parrot_config is not quite the same as the parrot that the current Rakudo was compiled with. hmmmm. 00:29
00:31 masonkramer left, masonkramer joined
lue rakudo: 999999[1] 00:33
p6eval rakudo a54677: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Int'␤ in main program body at line 1␤»
00:34 cure__ joined 00:35 ShaneC1 left 00:37 stephenlb left 00:39 cure_ left
dukeleto i can't seem to pass environment vars through the harness, i think it cleans them 00:44
i remember there being some option to pass env vars through the harness though 00:45
the man page of TAP::Harness should be helpful 00:47
lue > sub test($test is write) { print $test;}; test(12) 00:48
00:48 LionMadeOfLions left
lue ===SORRY!=== Invalid typename in parameter declaration at line 1, near " write) { " 00:48
Would you say it's whining about an unknown trait?
jnthn If so, it's doing so in a weird way.
Did you mean "is rw"? 00:49
diakopter it can't be write-only?
arnsholt Could be, in theory, I suppose. But not that interesting as a feature I think 00:51
lue it's a ticket #60966
[it's theoretically possible to set files like that w/ chmod. Actually useful for, say, drop-box folders] 00:52
arnsholt True
lue I think that ticket is closed then, unless you need a better error message. 00:54
jnthn No, we need a better error
lue Alright. [Not that I'd be able to fix it :P] 00:57
jnthn lue: I'm not sure of the best way yet.
dukeleto I think i've fixed the test harness. Maybe y'all will agree with me ;) 00:58
lue [! CRAZY IDEA !]maybe, if the harness filters env variables, then it maybe it filters out ANSI escape characters. 00:59
01:00 plobsing joined 01:15 jhuni joined 01:18 meppl left
lue Grr, I can't find where the exception that gets sent to BacktracePrinter comes from. 01:23
afk 01:26
01:26 masonkramer_ joined 01:38 cdarroch left 01:39 jhuni left
colomon rakudo: say 2.Num.Str 01:47
p6eval rakudo f50c35: OUTPUT«2␤»
01:49 LionMadeOfLions joined 01:52 agentzh joined 01:53 TiMBuS joined 01:59 isBEKaml left 02:07 agentzh left 02:10 isBEKaml_ left 02:27 justatheory joined 02:28 [mark] joined 02:30 Guest68956 left 02:32 jaldhar joined 02:37 Util left 02:42 [Coke] left 02:50 ggoebel left 02:51 ggoebel joined 02:54 szabgabx left 02:58 snarkyboojum left 02:59 justatheory left
diakopter . o 03:00
03:06 silug left, silug joined, szabgabx joined 03:16 masonkramer_ left 03:21 skids left 03:26 lucs joined 03:28 mtnviewmark joined 03:35 cure__ left
dukeleto jnthn: i just sent a rakudobug with a test for loading bytecode with a tweak to the harness 03:36
03:39 petdance joined 03:40 snarkyboojum joined 03:41 mtnviewmark left
lue ahoy! 03:51
03:52 tedv left
lue anyone here to answer a quick question about errorhandling and backtracing? 03:54
03:57 ash__ left
eternaleye phenny: tell masak (backlogging): The Ratel is a pretty fascinating animal: www.badassoftheweek.com/honeybadger.html 03:59
phenny eternaleye: I'll pass that on when masak is around.
04:06 Wolfman2000 left 04:14 lestrrat is now known as lest_away 04:16 lest_away is now known as lestrrat 04:23 lestrrat is now known as lest_away 04:25 satyavvd joined 04:50 ciphertext joined 05:15 yahooooo joined 05:16 yahooooo left 05:17 yahooooo joined 05:29 am0c joined 05:36 orafu left, orafu joined, patspam left 05:40 petdance left 05:42 tootroot left 05:46 kaare joined 05:47 kaare is now known as Guest71493 06:02 uniejo joined 06:03 nadim_ left 06:20 Su-Shee joined 06:21 dark_soul1 joined, dark_soul1 left 06:23 agentzh joined 06:25 szabgabx left 06:27 Amadiro left 06:34 gfx joined 07:08 am0c left 07:12 ggoebel left 07:15 baest joined 08:00 frettled joined
frettled Good timeofday! 08:01
08:05 xabbu42 joined
moritz_ good morning-ish 08:07
08:09 yahooooo left 08:13 satyavvd left 08:24 clintongormley joined 08:28 xabbu42 left 08:30 dakkar joined
moritz_ phenny: tell patrickas that I merged his USAGE patches; one more thing that could be improved: optional named params should come before the manadatory, positional parameters in the usage message 08:33
phenny moritz_: I'll pass that on when patrickas is around.
moritz_ patrickas++ 08:34
dalek kudo: f0e5fe6 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Support for multi sub main
kudo: 811cd66 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Support automatic usage
kudo: 6e3624e | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Better usage message when using -e
kudo: 14d1542 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
USAGE-one-sub and process-cmd-args don't polute the global namespace anymore,
kudo: 037a9db | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
[minor] added comment removed empty line
kudo: 2c1c3d7 | moritz++ | src/core/MAIN.pm:
Merge remote branch 'patrickas/master'

   - support for multi sub MAIN
   - automatic USAGE message (customizable)
   - remove some functions from user namespace
08:34 dju_ joined
moritz_ phenny: tell patrickas one more thing: please add yourself to CREDITS in your next patch to rakudo 08:34
phenny moritz_: I'll pass that on when patrickas is around.
08:38 dju left 08:39 mikehh left 08:48 yahooooo joined 08:50 drbean left 08:54 skangas joined 08:57 envi^home joined 08:58 drbean joined 09:03 drbean left 09:05 drbean joined 09:10 __2synth left 09:11 drbean left, drbean joined 09:19 yahooooo left 09:20 yahooooo joined 09:21 rgrau joined 09:22 jaldhar left, jaldhar joined 09:27 dju_ left 09:41 TiMBuS left 09:55 jaldhar left, jaldhar joined
moritz_ rt.perl.org/rt3/Ticket/Display.html?id=75598 it seems that not only Rakudo suffers from errors in weird feature combinations :-) 09:58
10:06 TiMBuS joined 10:07 yahooooo left 10:10 yahooooo joined 10:39 agentzh left, ggoebel joined 10:59 jaffa4 joined
jaffa4 hi 10:59
11:11 cognominal left
colomon interesting article: www.infoq.com/interviews/john-hughes-fp 11:20
so, by his definition, is p6 a functional language?
11:23 xabbu42 joined 11:26 [Coke] joined 11:27 masak joined
masak o/ 11:27
phenny masak: 09 Jun 22:58Z <Tene> tell masak When I tried to use Configure in web the first time, btw, it failed because I didn't compile rakudo in a directory called "rakudo", btw
masak: 03:59Z <eternaleye> tell masak (backlogging): The Ratel is a pretty fascinating animal: www.badassoftheweek.com/honeybadger.html
masak Tene: yes. Configure (and lib/Configure.pm and Makefile.in) are to be removed, belonging as they are to a past age. for more information, see github.com/masak/ufo 11:29
11:33 gfx left
hejki haha :p 11:34
the Ratel-part seems funnay
masak wow, the HTML spec looks much neater! whoever++ 11:41
good CSS makes me happy. :)
colomon oh sure, and right after I printed out S32/Numeric yesterday. ;) 11:46
"Coercion of a Complex to any Real returns the real part" -- how long has that been in there? I've somehow managed to miss it during my Numeric work. Hmmm.... 11:48
moritz_ cosimo++ 11:51
pugssvn r31184 | colomon++ | [t/spec] Add fudged test for results on $n .. * 11:54
colomon oooo, currently at 39,992 spec tests total (33,364 passing), ought to break 40,000 with no effort today.
masak \o/
dalek kudo: b461fd2 | (Solomon Foster)++ | src/c (4 files):
Move Rat.Str to Real (with tweaks), delete Rat.Int tweak other Real.Str methods
11:55
colomon ooo, ugly commit message, colomon-- 11:56
masak jnthn: I also experienced the projects.state error when I used proto recently. definitely not according to plan... :/
11:56 TiMBuS left, mberends joined
cosimo masak: thanks 11:57
masak cosimo++ 11:58
cosimo it's just a small thing, but i think improved readability
at least for me
pugssvn r31185 | colomon++ | [t/spec] Simple tests for Real.Str.
colomon and there's four more passing tests. ;)
masak only 4 left :) 11:59
moritz_ is still in favour of removing the hilighted test files from the perlcabal.org rendered synopsis 12:00
masak removing highlighted test files? 12:01
which test files are those? 12:03
moritz_ the smartlinks have two buttons
one make the normal test files appear
and the other loads the hilighted test files
and I think it's the latter that make searching in the pages in firefox so slow 12:04
masak oh!
I never use the latter feature, so yes, I'm for it too.
moritz_ likes abstrusegoose.com/272 (click on that image after reading) 12:05
takadonet morning all 12:06
mberends \o
phenny mberends: 09 Jun 22:55Z <jnthn> tell mberends when I just used proto for first time, I got an error Unable to open filehandle from path 'projects.state' - touch projects.state resolved it though. 12:07
colomon o/
phenny mberends: 09 Jun 23:03Z <jnthn> tell mberends after that, next issue on install fakedbi is (though at least it picks up the dependency) Building zavolaj...project type Str(). That was apparently though just because I didn't have perl6 in my path (it's good that it writes a helpful what went wrong log and pointed me at it)...now in theory it's installed them both. :-)
masak takadonet, mberends: \o \o
rakudo: say "İ".lc
p6eval rakudo 2c1c3d: OUTPUT«␤»
masak :(
mberends jnthn: thanks for the bug reports. We're going to give proto a good workout at FPW tomorrow and Saturday :) 12:08
masak: o/ what do you think of renaming proto as the alpha branch of pls, and then developing your new pls as the master branch, so that they can both use the same name and command structure? 12:11
masak mberends: in other words, having two branches ('alpha' and 'master') in the proto repo? 12:12
that might be a good idea. I also plan to start developing pls during the Saturday. it's all coming together. 12:13
in the long run, I think we'll want a pls repo. but before it works, might as well develop it in the proto repo. 12:14
mberends masak: exactly, and rename proto -> pls
masak yes, that sounds good.
hm. I'm slightly disinclined to have something non-functional in the master branch.
moritz_ maybe have an 'ng' (or 'pls') branch first 12:15
and switch them around once pls mostly works
masak yes, a 'pls' branch would probably be better.
and keeping 'master' as it is, so that people who stumble on it don't get all wtf-y.
hejki hmm.. version done @ work. this means i will have some extra time during summer :) 12:16
masak mberends: do you have tuits to fix the projects.state bug? otherwise I might get a round one. maybe.
moritz_ hejki: and you mean to invest some of it in Perl 6 hacking? :-)
mberends masak: I'll have tuits at FPW in Calais tomorrow 12:17
moritz_ forgot to do the book release yesterday... will try to remember today
masak forgot to remind moritz_
hejki moritz_: most likely something close to half of it :> 12:19
moritz_ hejki: \o/
hejki well i were supposed to get some time at the middle of may already..
but you know how version releases just .. tend to stretch over deadlinse :>
s/se$$/es/
moritz_ it's software. Of course the schedule slips. 12:20
hejki ye :>
moritz_ and ya know, software is hateful.
hejki anyway.. hometime, laters
colomon masak: just added eight more tests locally, but can't push until I've done a spectest here. 12:22
masak :)
colomon oops, added another two.
amazing how many features still don't have tests. :) 12:23
masak amazing how many tests still don't have features. :) 12:25
12:28 azert0x joined 12:31 masonkramer left, masonkramer joined
moritz_ masak: are you aware of teh bytebuffer PMC in parrot? 12:32
"ByteBuffer" provides a resizable byte buffer with random access to
individual bytes and conversions from and to parrot strings.
12:32 pmurias joined
masak moritz_: yes. it was basically born out of my trolling the #parrot channel. 12:33
12:33 skids joined
moritz_ masak: thought so. I hope you use it (or will soon) so that your feedback can help to improve it 12:33
masak moritz_: I plan to port my code over to it today. 12:34
moritz_ o/
++masak 12:35
jnthn morning #perl6 12:38
er, well, afternoon I guess. :-)
moritz_ good afternoon jnthn :-)
colomon it's good morning here! 12:39
jnthn colomon: Your timezone rocks!
masak jnthn: morning!
colomon it's not as zippy and fun as Newfoundland time, but I still like it. ;)
mathw use Greeter; Greeter::greet($jnthn, :enthusiasm(Greeter::Enthusiasm::MAXIMUM)); 12:40
12:43 ciphertext left
jnthn ooh, not excessively much backlog 12:46
moritz_ just spammy dalek :-) 12:49
jnthn moritz_++, patrickas++ # MAIN, USAGE
mberends: ping 12:50
masak ooh, usage!
moritz_ masak: I think MAIN subs are now sufficiently usable that you can break them :-) 12:51
masak sounds very much like it.
moritz_ rakudo: sub MAIN ($a, :$verbose) { 12:52
p6eval rakudo b461fd: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
moritz_ rakudo: sub MAIN ($a, :$verbose) { }
p6eval rakudo b461fd: OUTPUT«Usage␤/tmp/hXZvSi8FBV a [--verbose=value-of-verbose]␤»
jnthn Nice! 12:53
rakudo: multi MAIN('delete', $filename) { }; multi MAIN('add', $filename) { };
p6eval rakudo b461fd: OUTPUT«Usage␤/tmp/LzG1E9ZAp6 Mu() filename␤or␤/tmp/LzG1E9ZAp6 Mu() filename␤»
jnthn AWW!
moritz_ handling contstraints in general is quite tough 12:54
jnthn I broked it on first try using it. Clearly Sweden is slowly instilling bug discovery skills in me. :-)
masak :) 12:55
jnthn I'll need years here before I'm at masak++ levels though.
moritz_ I guess we could check if $param.constraint !~~ Code|Junction
masak yeah, the living in Sweden is totally the reason.
moritz_ and then print it out
that explains why I found quite some rakudobugs on my train ride to Copenhagen 12:56
I was approaching Sweden!
masak still winces when he sees a negated comparison op with a junction.
moritz_ you're right, it's against WTOP
masak which don't really exist, so it's ok :) 12:59
moritz_ it exists in my head (if only sparse)
12:59 sorear left 13:00 sorear joined
masak yeah, same here. 13:01
moritz_ we should poor it into a repo at some point 13:02
masak totally.
jnthn I'll rich for it when you do. 13:03
moritz_ starts a repo
masak I already have one, but I'm thinking of disbanding it. 13:04
13:04 masonkramer left, SmokeMachine joined
moritz_ is it public? 13:04
masak think so.
13:04 masonkramer joined
masak it's even on proto.perl6.org IIRC. 13:04
yup.
moritz_ I'm not talking about a tool 13:05
just a list of recommendations, like PBP (the book)
masak right.
13:08 azert0x left
pugssvn r31186 | colomon++ | [t/spec] Add tests for Complex conversions via .Real, .Int, .Rat, .Num, and .Complex. 13:13
colomon there we go. 40,006 tests.
dalek kudo: 16d9cb0 | (Solomon Foster)++ | src/core/ (3 files):
Add Numeric.Real, Numeric.Int, Numeric.Rat, Numeric.Num, and Real.Real. Change
moritz_ masak: github.com/moritz/perl6-wtop 13:14
13:15 felipe joined
masak moritz_: slight tact suggestion: not having the word 'bullshit' in the README. 13:15
it's not very offensive, but still not very apropos either, IMHO. 13:16
moritz_ you're right
13:16 uniejo left
masak removes his wtop repo from github and proto's projects.list 13:16
jnthn "bullshit bingo" :-)
Weird mental image. :-)
moritz_ jnthn: it's when you make a list of words like "efficient", "dynamic", "cost effective" etc. and when each of them has been mentioned in a meeting, you yell "bingo" 13:17
jnthn :-D 13:18
moritz_ hugme: reload 13:19
hugme moritz_: reloaded successfully
13:21 [mark] left
masak hugme: add masak to perl6-wtop 13:23
hugme hugs masak. Welcome to perl6-wtop!
masak hugs hugme
13:25 vosl joined 13:27 rv2733 joined
moritz_ grrr, why does git think I only want to push to that branch, not pull from it? 13:28
13:29 snarkyboojum left, meppl joined 13:30 tylerni7 left, broquaint left 13:32 dimid joined 13:33 broquaint joined
masak uasi++ is pretty cool: gist.github.com/433005 13:46
moritz_ masak: is this, like, a patch for rakudo?
masak no, it's a module without a github repo. 13:47
moritz_ masak: you could ask him for permission to include that in Rakudo :-)
masak I will.
13:55 Guest71493 left 13:56 patspam joined
masak he says it's OK. twitter.com/uasi/status/15851554568 13:57
moritz_ \o/ 13:58
now we just need somebody to put it into rakudo
masak maybe make it into a weekly challenge? :) 13:59
moritz_ :-)
too simple
it's mostly a matter of copy&paste, removing the 'is export', the 'module', and adding to build/Makefile.in 14:00
might do that tonight
14:03 xabbu42 left
masak ++moritz_ 14:06
14:07 SmokeMachine left, rob-_- joined 14:11 pmurias left
jaffa4 hi 14:15
pmichaud good morning, #perl6 14:16
jaffa4 tell me about rakudo start....
takadonet pmichaud: morning
jaffa4 Is there anything goin on with rakudo star?
Su-Shee yes. it's rising :) 14:17
masak :)
pmichaud jaffa4: we're working on it quickly, should be something released this month.
masak jaffa4: most work nowadays is focused onto delivering something nice for Rakudo Star. 14:18
jaffa4 Like what?
pmichaud like "something that works" :-)
jaffa4 it was working before.
Is it broken now?
masak jaffa4: finishing the list refactor, fixing the closures bug... 14:19
pmichaud there are some key bugs that need fixing, yes.
masak jaffa4: generally just closing bugs on RT.
jaffa4 you must be relieved then.
moritz_ jaffa4: like, MAIN and USAGE subs, including named parameters 14:20
masak jaffa4: we're not there yet. we can be relieved in a couple of weeks. :)
jaffa4 ok 14:21
moritz_ if you follow planetsix, I'm sure you won't miss that release :-)
masak the more I listen to outside voices about a "Perl 6 release", the more I realize that there's this strange view among programmers that before you make The Release -- whatever that is -- there's nothing to look at.
to me that's a strange viewpoint, since I've been using Rakudo regularly for two years now. 14:22
for me, there won't be anything particularly special about Rakudo Star.
but I believe we might benefit from the spectable.
Juerd spectable? 14:23
Something that can be seen?
jaffa4 spectacle,
masak er. yes.
spectacle.
moritz_ I hope we do.
mberends jnthn: pong! 14:24
jaffa4 What benefits are you talking about?
masak saying "NOW there's something to look at!" and letting slip the fact that there's gradually been something to look at for the past two years.
moritz_ attention. People finding bug. People contributing stuff.
masak jaffa4: one clear benefit would be more early adopters, which leads to more activity... what moritz_ said.
moritz_ people writing modules. Building infrastructure. Writing docs. Answering questions. Organizing conferences 14:25
jaffa4 I see
masak generally, widening the group of People Who Care.
14:26 estrabd_afk is now known as estrabd
bbkr rakudo: say any("dog") ~~ none("dog") # bug? IMO should be false. 14:27
p6eval rakudo b461fd: OUTPUT«1␤»
jaffa4 Is there a debugger for Perl 6 now?
moritz_ sure. It's called say() :-)
masak jaffa4: working on one. it exists, but it's too primitive to brag about yet.
moritz_ no proper debugger yet, sorry
jaffa4 you know after using perl 5 debugger 14:28
bbkr rakudo: (any("dog") ~~ none("dog")).say
p6eval rakudo b461fd: OUTPUT«1␤»
masak o.O
jaffa4 rakudo: g:m/hello/;
p6eval rakudo b461fd: OUTPUT«===SORRY!===␤Confused at line 11, near "g:m/hello/"␤»
masak jaffa4: it's m:g
jaffa4: and it's not implemented yet. 14:29
moritz_ another item for wtop: don't mix junctions of different "type"
jaffa4 rakudo: m:g/hello/;
p6eval rakudo b461fd: OUTPUT«===SORRY!===␤Confused at line 11, near "m:g/hello/"␤»
moritz_ implementing it is non-trivial :(
14:29 SmokeMachine joined
[Coke] "early adopters" =~ s/early// 14:30
14:31 azert0x joined
masak so, " adopters" :P 14:32
moritz_ std: "early adopters" =~ s/early// 14:33
p6eval std 31186: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at /tmp/BekFL7UgWJ line 1:␤------> "early adopters" =~⏏ s/early//␤Parse failed␤FAILED 00:01 108m␤»
moritz_ rakudo: "early adopters" =~ s/early//
p6eval rakudo b461fd: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 11, near " s/early//"␤»
jaffa4 uesrs
14:34 kaare joined
jaffa4 What about the speed of rakudo, has it improved? 14:34
14:34 kaare is now known as Guest61501
moritz_ yes 14:34
jaffa4 So how fast is it now? 14:35
masak still not very fast.
moritz_ startup time of about 0.4s
as opposed to 0.7 to 1.0s three months ago
masak the GC runs give a visibly jerky feel to anything real-time.
takadonet can compile is a lot faster then before
around 2 min now instead 10 to 15
masak the real bottleneck in GGE is regex compilation in &eval. 14:36
jaffa4 What takes 2 minutes?
masak jaffa4: dunno. compiling gen-core? :)
sounds like a Jeopardy question. 14:37
takadonet yes
moritz_ 1) drinking a pint 2) combing 15cm long hair 3) compiling gen/core.pm 4) an average table tennis set 14:38
jaffa4 a set up to 11 points? Two minutes? 14:40
jnthn
.oO( so if I cut my hair down to 15cm, I'd save enough time combing it on a morning to have a pint...interesting )
masak that sounds a bit short, yes.
moritz_ jaffa4: really depends on the opponents 14:41
but the average time is more about 4 to 5 minutes if the strengths are roughly matched
14:42 xabbu42 joined 14:43 gbacon joined, proller left
jaffa4 2 minutes, if you win 11:0 14:43
moritz_ that's often even quicker :-) 14:44
(though it also happens that you lose 0:11. D'oh! )
pmichaud notes that advent2009-day17 takes f-o-r-e-v-e-r to run. :-| 14:45
moritz_ pmichaud: I'm *so* > < close to creating a 'stresstest' target, and moving some files from spectest to stresstest
pmichaud +1 from me for that, I think. 14:46
14:47 proller joined
pmichaud there's probably an argument to be made that tests like the perl6-advent ones aren't properly part of the spec. 14:47
they're important regression tests, but not necessarily spec tests.
moritz_ anything that tests valid Perl 6 code is a spectest, in some sense 14:48
[particle] um, no
14:48 [hudnix] joined
moritz_ there were times when I wanted a real-world Perl 6 app + tests in the test suite 14:48
[particle] spec tests are designed with a specific goal
14:49 hudnix left
moritz_ because rakudo had some many pugs that some things wouldn't work in modules, when exported, when loaded from a module etc. 14:49
pugs had had similar bugs
s/pugs/bugs/ in @line[*-2]
14:51 estrabd left
baest it also seems that parrot uses less memory. Especially for parrot-nqp to compile gen/core. I remember it using more than 1GB of mem, now it's about 500MB 14:52
very nice
[particle] yes, that was a bug that's been squashed 14:53
14:58 plobsing left
colomon I think day17 should be cut back. 14:58
I don't think we gain anything by creating two 31x31 Mandelbrot sets.
hejki :P 14:59
14:59 ash__ joined
colomon create one 15x15, split into two halves for the two different approaches. 14:59
that will be something like 8x faster.
14:59 ash__ left
colomon (if, on the other hand, you want to stress test with it, something bigger than 31x31 is needed. ;) 15:04
[Coke] parrot has a test target that gets run only when a release is pending. is once a month too often for the advent stuff? 15:05
(and things like it?)
colomon [Coke]: well, we want developers to be able to run it all the time (if not necessarily every time). Particularly right now, when getting that stuff to work is a goal for R*. 15:12
maybe "make inttest", or something like that?
moritz_ make stresstest 15:13
colomon I don't think stresstest is appropriate.
I mean, I think having stress tests would be great.
but we should be encouraging people to run the advent tests frequently, not making them slower. 15:14
[Coke] we call it 'fulltest' in parrot, fwiw.
moritz_ colomon: I don't think we should remove those advent tests from 'spectest'
colomon: just that one really-long running test
Su-Shee "the man" at the linuxtag here in berlin says people are asking for perl 6 at the perl booth and interest is high. 15:15
moritz_ and maybe some of the more extensive trig tests
colomon moritz_: oh, I'd be up with that solution.
[Coke] we have found having multiple tiers of test useful in parrot. ymmv.
moritz_ szabgab++
colomon I've actually got a plan to reduce the number of trig tests a bit, but I've hesitated to use it before R* because it would do ugly things to the test counts. 15:16
Su-Shee vti just told on #mojo.
moritz_ colomon: test counts are a vanity metric, and should be treated as such
colomon moritz_: if it's just the one advent test you're worried about, I think slimming it down for spectest as I suggested back there a few minutes and then putting a hardcore version in stresstest would be appropriate. 15:17
moritz_ colomon: yes, that's my preferred solution
colomon moritz_: that's easy to say (vanity), but people do look at those graphs and go "What's happening here?" 15:18
moritz_ if that's a concern, I can remove the chart (only half-serious here)
colomon I guess we could go all Stalinist and just modify the test histories by removing the difference in the counts retroactively... 15:20
diakopter fails to refrain from [meta]comment
ing
15:21 xabbu42 left
moritz_ colomon: I'd rather not 15:21
15:26 macdaddy joined 15:27 macdaddy is now known as Guest82930
jaffa4 test counts 15:27
Where are they? 15:28
masak jaffa4: there are two test counts that matter. first, the total number of tests (in the spectest suite). second, the number of tests that an implementation (say, Rakudo) passes. 15:30
heh -- blogs.perl.org/users/alberto_simoes...alues.html -- Perl 6 already has that form. :)
it falls out automatically from the way smartmatching on Str works. 15:31
moritz_ should I comment?
masak please do.
15:34 mberends left
jaffa4 great 15:34
[Coke] ambs++
jaffa4 tests keep you from regressing.
masak jaffa4: the test suite was born alongside Pugs, and has kept evolving even when the Pugs effort came to a halt. 15:35
that's why it's still to be found in the Repo Formerly Known as the Pugs Repo. 15:36
15:36 colomon left
moritz_ the Mu repo. 15:37
masak moos 15:38
15:39 colomon joined
moritz_ or should we call it 'Any', so that later on we can also have a 'junction' repo? :-) 15:40
masak a repo with many eigenthings in it... 15:41
jaffa4 is pugs developed now? 15:42
moritz_ no
only kept up-to-date with new GHC changes 15:43
masak as features go, it's standing still. the spec keeps moving further and further away from it.
15:44 jaldhar left 15:45 jaldhar joined
moritz_ github.com/audreyt/Pugs.hs 15:45
jaffa4 nobody interested in Haskell?
moritz_ that's a broad oversimplification 15:46
jaffa4 let it be a first approximate to the truth function 15:47
approximation
moritz_ jaffa4: /join #haskell and say the same thing there
diakopter moritz_: OBVIOUSLY jaffa4 was saying "nobody [among perl6 folks] is interested in Haskell?" don't be so obtuse 15:48
jaffa4 that is what I meant
diakopter and even if he wasn't, you should have given him the benefit of the doubt
jaffa4 yes
moritz_ diakopter: and even then the answer isn't "yes"
diakopter I wasn't addressing the correct answer
I was addressing your response
15:50 krunen left 15:51 jaldhar left, jaldhar joined
jaffa4 moritz_: Are we ok now? 15:51
diakopter moritz_: and you should also have given jaffa4 the benefit of the doubt that what he COULD HAVE BEEN saying was: "is the fact that 'nobody [among perl6 folks] is interested in Haskell' a contributing factor to Pugs' lack of updates/attention?"
moritz_: not that he was implying it was the _only_ factor 15:52
15:52 krunen joined
moritz_ diakopter: I could have. But I don't always want to encourage overly terse and oversimplifying communication 15:52
15:53 moritz_ sets mode: -o moritz_
diakopter :P then say your feelings on that directly, I recommend 15:54
moritz_ I will, in future
jaffa4 so moritz_ what is the situation in your opinion about pugs?
actually I read somewhere that Haskell is a skill that most programmer do not have here. 15:56
moritz_ anyway, there's no lack of interest in here in pugs and haskell.
jaffa4 but it is not developed. 15:57
that is like a contradiction to me.
masak I have interest in Pugs and Haskell, but not above a certain magical threshold.
diakopter (me too)
masak jaffa4: yes, all it takes is for someone to pick it up and develop it.
moritz_ but it's a quite complex program, and not one that's easy to maintain and extend if you're neither familiar with it nor a haskell guru 15:58
diakopter the problem is that "pick it up" has a very high perceived cost/effort
(which is almost certainly a correct perception unless the person is, as moritz_ said, a haskell guru)
not to mention another requirement is that the person also needs to be a Perl 6-circa2008 guru, which almost nobody is :) 15:59
er, 2007
moritz_ or at least understands enough of it *and* of current Perl 6 to know how to adapt it to current spec 16:00
masak right. probably more important to understand Perl 6 in general than to understand it as of 2007. 16:02
m6locks let's liek port pugs to lisp and problem solved 16:03
diakopter heh
moritz_ m6locks: well volunteered 16:04
16:04 cdarroch joined, cdarroch left, cdarroch joined
jaffa4 was it not pugs sponsored in the past? 16:07
masak I half-remember audreyt deciding not to accept funding for Pugs.
16:09 Ross joined
moritz_ half-decides to go home 16:09
jaffa4 I mean if it were sponsored
moritz_ not in significant amounts, I think
jaffa4 I guess there would be many more "volunteers"
masak would be if what?
jaffa4 if pugs were sponsored. 16:10
masak Pugs had no lack of "volunteers" when it was active. :)
not many of them committed directly to the Haskell code, though.
avar Yes it did. There were a lot of people working on auxilliary systems, but the core was pretty much audrey's domeyn 16:11
*domain
masak pretty much, yes.
avar So the core whithered with her gone
masak I'm still committed to reviewing Pugs at some point. that would entail understanding it to a large extent. 16:12
but I need to finish my extended honeymoon with GGE first. :)
er, PGE.
who chose this extremely confusing naming scheme? :P 16:13
avar masak: Wouldn't it be a lot of work to bring it up to date?
[particle] it's a honeymoon in glacial time
masak avar: probably. but I'm not talking about bringing it up to date, I'm talking about writing a software review.
16:14 jaldhar left, jaldhar joined
masak I did that for one of the early Rakudo modules over a year ago: use.perl.org/~masak/journal/38644 16:17
16:18 hugme left 16:19 PerlJam left, dukeleto left, hatseflats left
jaffa4 I stumbled into a mysterious thing. 16:19
16:20 dalek left, pugssvn left, pmichaud left, Juerd left
jaffa4 I have a version of Haskell 6.10.4 16:21
while the latest version is Haskell 6.10.1
takadonet jaffa4: what date are you from? Are you from the future?
masak Haskell is a language; are you referring to versions of GHC?
jaffa4 ghc 16:22
masak there was a GHC 6.12.2 released on 2010-04-22.
jaffa4 on the homepage, I can download 6.10.1
masak the 6.10.4 version was released on 2009-06-16.
jaffa4: haskell.org/ghc/
16:23 colomon left
jaffa4 I see this haskell.org/ghc/download_ghc_6_10_1.html#windows 16:23
masak well, see the page I linked to :)
there's the 6.12.2 right there, by the top.
jaffa4 ok
I used Google
masak probably the latest Pugs runs on that.
jaffa4 in Google,
that is the first entry 16:24
one of the first
masak I also used Google. I searched for "ghc".
16:24 colomon joined
jaffa4 thanks. 16:28
16:29 patspam1 joined, patspam left 16:30 patspam1 is now known as patspam
masak nom & 16:30
16:30 masak left 16:38 krunen left 16:46 envi^home left
jaffa4 Is this familiar setup.exe: ghc version >=6.4 is required but it could not be found.? 16:46
16:47 perlpilot joined
perlpilot did feather go kaput? 16:48
moritz_ jaffa4: it's not familiar, but the error message sounds pretty clear, no?
jaffa4 I installed ghc 6.12. something 16:49
it should be found
moritz_ is it in PATH?
TimToady perlpilot: looks like
Tene rakudo: sub MAIN(Int $n, :@target) {} 16:50
p6eval rakudo 16d9cb: OUTPUT«Usage␤/tmp/fYv0B5O0F_ n [--target=value-of-target]␤»
16:50 Ross left
Tene suboptimal 16:50
jnthn I'm not sure putting type constraints on a MAIN is going to end well. 16:51
jaffa4 moritz_: not in that console. 16:52
moritz_ jaffa4: that explains it.
TimToady colomon: by his two primary criteria, P6 is more of a functional language than Lisp. :)
colomon TimToady: ;)
16:53 dakkar left
perlpilot TimToady: what are the chances that regex declarations outside of a grammar won't require a "my" or "our" in the future? slim to none? 16:54
TimToady I thought about that some, but I would hesitate to make a declarator context sensitive like that. 16:56
sometimes it's better to mark things explicitly
and "my" is short for a reason :)
perlpilot okay, just checking. thanks.
TimToady and think of it as subtle pressure to write a proper grammar class instead of ad-hocking it. :) 16:57
jnthn breathes a sign of relief. :-) 16:58
context sensitive declarator would be a tad scary.
TimToady see a missing ascender
16:58 ggoebel left
TimToady *s 16:58
it's also a bit error prone under refactoring 16:59
17:00 KyleHa joined
KyleHa Hello #perl6! 17:00
moritz_ \o/ 17:01
perlpilot greetings KyleHa 17:02
moritz_ at some point I'll write a Contextual::Declare module, and advise against using it :-)
17:02 rob-_- left
KyleHa I'm having trouble reaching the pugs svn. Am I the only one? 17:03
moritz_ KyleHa: no. Feather appears to be done
*down
KyleHa Any idea when it will return?
moritz_ no 17:04
(seems the connection is broken, since the name server also doesn't work)
KyleHa That's what I figured. I'll practice my big boy patience.
perlpilot What did you want to commit to the pugs repo? tests? 17:05
moritz_ github.com/moritz/Mu # the git-svn clone is pretty much up to date
perlpilot this is one area where I wish the "official" repo was someplace like github 17:06
17:07 Ross joined
KyleHa perlpilot: I run a cron job that does something like 'svn update', and it's complaining. I'm still on semi-hiatus. 17:07
tao_ perl8
pls
pugs with hugs 17:08
KyleHa I've been impressed with the work done in here when I've paid attention. I wish I had more time to be part of it. 17:09
[particle] perlpilot: because github never goes down? 17:10
moritz_ less frequent than feather
and with a DCVS it doesn't matter that much when the central repo is down 17:11
17:11 KyleHa left 17:12 ggoebel joined
[particle] i can get a more stable svn host donated if desired 17:13
diakopter well
perl6.googlecode.com/
perlpilot that'd work too
(though I tend to prefer git these days :)
moritz_ [particle]: if there's something viral like commitbit attached to it...
[particle] moritz_: it'd be on a vm we can manage 17:14
moritz_ [particle]: sounds great! 17:15
[particle] i wonder if i should talk to tpf about it... can't hurt
perlpilot [particle]++ that would be awesome 17:16
[particle] i'll mail karen, and my hosting contacts
17:16 xabbu42 joined
moritz_ [particle]++ 17:17
[particle] can someone get me a list of requirements, if it's beyond svn hosting and small web site linked to svn (commitbit)
i think we can continue to use feather for builds and screen sessions 17:18
diakopter wherever it goes, I suggest not moving the repo history, and only selectively moving portions of the repo. Maybe split it into two repos, one with things people committed to in the past year (src/perl6, t/, and smop/mildew, and whatever else), and another with everything else
moritz_ (in terms of perl modules, commitbit is not "small". In terms of traffic, it is)
perlpilot diakopter: why?
moritz_ diakopter: I'd rather svn rm the old stuff. I've started with it, but wasn't very radical
diakopter b/c it's confusing to everyone 17:19
svn rm is fine too
jaffa4 pugs does not install
diakopter jaffa4: which install instructions did you follow?
jaffa4 some homepage 17:20
diakopter which one?
moritz_ jaffa4: "some homepage" is not good. There's an INSTALL file in the repo...
it worked for me last I tried
(a few months ago)
[particle] pugs history should be preserved somewhere
jaffa4 here it is www.perlfoundation.org/perl6/index....nload_pugs
17:21 xabbu42 left
jaffa4 I used cabal install Pugs 17:21
moritz_ [particle]: it's already in a separate repo
[particle] i see the current pugs repo as a place where new perl6 ideas can be formed into realities
17:21 uniejo joined
diakopter jaffa4: which option under Step 1 did you follow 17:22
jaffa4 none 17:23
I downloaded the recent version of Haskell instread. 17:24
diakopter then you skipped a step :P
you started the 2nd option, but didn't complete the rest of it
jaffa4 ok, I try that too but i have my doubts
diakopter don't have doubts about it; there's no reason to 17:25
jaffa4 I got quite far in step 2. 17:26
diakopter oh
did you see the note at the end of step 2? (use sudo) 17:27
jaffa4 that was a problem 17:28
yes
I am beyond that now
diakopter so, it did install?
jaffa4 many packages
just not the whole thing.
there is a problem with some dependencies
[particle] anyone have any idea what the current hw is for feather, the load and the i/o wait?
moritz_ [particle]: you should ask Juerd when he's back 17:29
[particle] aye
moritz_ [particle]: but I think for svn + commitbit only the load will be pretty low
[particle] which bot leaves messages, phenny?
moritz_ yes 17:30
[particle] i/o is the main concern, bandwidth, you know.
17:30 justatheory joined
[particle] phenny tell juerd feather's kinda unstable for svn hosting so we're exploring alternatives. could you tell me what the hw is, and the load, i/o, bandwidth numbers? here or [email@hidden.address] if you like. 17:31
Tene alpha: my $k = 'o'; say 'foo' ~~ m/$k/; 17:33
p6eval alpha 30e0ed: OUTPUT«Null PMC access in get_string()␤in Main (file <unknown>, line <unknown>)␤»
jnthn rakudo: my $k = 'o'; say 'foo' ~~ m/$k/; 17:35
p6eval rakudo 16d9cb: OUTPUT«o␤»
jnthn Tene: Ah...interpolation in regexes wasn't supported in alpha.
Tene jnthn: right, but the Web.pm stuff is still on alpha.
jnthn *nod*
Tene ah. oh well.
17:38 stephenlb joined
Tene I've been wanting to work on updating it, but masak thinks it's scary, so I haven't looked yet. 17:39
17:44 xabbu42 joined 17:46 azert0x left 17:51 Ross left 18:03 SmokeMachine left 18:08 patrickas joined
patrickas good evening 18:09
phenny patrickas: 08:33Z <moritz_> tell patrickas that I merged his USAGE patches; one more thing that could be improved: optional named params should come before the manadatory, positional parameters in the usage message
patrickas: 08:34Z <moritz_> tell patrickas one more thing: please add yourself to CREDITS in your next patch to rakudo
18:11 dalek joined
patrickas moritz_: done and done (also got my own email address wrong but running the spec tests caught it so I fixed that too :-) , I'll add some tests for the new stuff then pull request 18:12
18:14 plainhao joined, pyrimidine joined 18:15 dalek left 18:16 uniejo left, xabbu42 left
patrickas jnthn: ping 18:17
[Coke] wonders if enums woik now.
ugh. I thought the "subset Q..." issue had been resolved. 18:18
18:20 Wolfman2000 joined, pyrimidine left
patrickas bbl 18:22
18:22 patrickas left
jnthn patrickas: po..oh, damm. 18:24
jnthn has finally got his main talk for Kiev into shape 18:25
18:31 dalek joined 18:32 pmichaud joined
pmichaud ENOFEATHER :-( 18:32
TimToady: ping
TimToady pong 18:33
pmichaud TimToady: would you expect .iterator on a Parcel to flatten? (more)
i.e., if I have
my $iter = (3, 4, (5, 6), 7).iterator
and repeatedly call .getarg on it, would I get four elements or five before reaching Empty ? 18:34
TimToady I expect it to flatten or not based on .get vs .getarg
it's lazy
pmichaud how strongly are you tied to the .get vs. getarg distinction? I'm feeling that this puts the flattening in the wrong place.
TimToady if you call getarg you'd get 4
if you call get you'd get 5
it's putting it at the binding point 18:35
it must not be type based
pmichaud well, we generally tend to bind against a Parcel, yes? 18:36
18:36 dalek left
TimToady sure, but binding ($a,$b,$c,$d) will do .getargs, while ($a,$b,*@c) will get you getargs on the 2nd hafl 18:37
*lf
gets, rather
while ($a,$b,**@c) goes back to getarg everywhere 18:38
pmichaud I understand that part, but I'm wondering if we really want a slightly different model (more) 18:39
TimToady and I'm thinking of stealing *$x to mean return the iterator without commitment
instead of pulling the first one off
(but maybe that's already \$x or some such)
pmichaud I'm thinking of having "List" mean "lazily evaluated Parcel" (more)
with the distinction being that it's possible to do a partial binding against a List 18:40
TimToady hence our CaptureCursors
needed by map and such
pmichaud i.e., the binder is able to look at a List in both its flattening and non-flattening contexts (same as we do for Parcel now), but it doesn't care if there are extra values left over
"binder" == "signature binder" 18:41
TimToady that's what a cursor does
18:42 dual left
TimToady the cursor running out at the end is just like checking that $ got to the end of the string 18:43
or however you say that
pmichaud okay, I'll look at it some more. But right now the .get versus .getarg distinction feels very hokey.
TimToady so it's an extra constraint on "normal" bindings
pmichaud for example, if I'm writing a new Iterator, do I tend to write .getarg or .get? (or do I have to do both?)
TimToady it gets both if you return parcels as subparcels 18:44
pmichaud if *what* returns... parcels or subparcels/
?
TimToady the generator
pmichaud what do I call the generator?
18:44 vosl left
TimToady gather while ... { take ... } generates one parcel per loop iter 18:44
pmichaud and/or where do I attach it to the Iterator's .get and .getarg?
TimToady it? 18:45
pmichaud the generator
TimToady you're just feeding things to the gather; you don't care if the other end calls get or getarg
pmichaud okay, I'll back up a second. 18:46
a gather statement creates a List (which wraps an Iterator)
(or which is an iterator -- doesn't matter for this discussion)
actually, let me restart
if I'm creating RangeIter, what methods do I need to be defining? 18:47
18:47 mberends joined
TimToady a range presumably can't make subparcels, so get and getarg are the same thing 18:48
pmichaud so, do I define .getarg, .get, or both?
TimToady both
they just have the same effect, since the "if next arg is parcel" test is always false
so getarg could just alias get
pmichaud if I'm creating some other form of iterator, say XYZIter, do I also have to define both the .get and .getarg forms?
TimToady yes, they are both always in the API 18:49
pmichaud (getarg alias get) -- that feels backwards to me.
it seems to me that .get should be built in terms of .getarg, not vice-versa
TimToady *
pmichaud because flattening loses information
18:49 dual joined
TimToady not if no flattening can occur :) 18:49
pmichaud right, so now I'm looking at the case where flattening can occur :)
TimToady but *
then you need both, and they do differen things 18:50
pmichaud and so I always have to write my own flattening logic?
TimToady the API must also be able to return a hypothetical iterator to be used by hypothetical binding, which we can call "cursor"
pmichaud i.e., every iterator has to define how it flattens (via .get?)
TimToady no, the generic version could always define one in terms of the other 18:51
pmichaud okay, and I'm guessing the generic version should define .get in terms of .getarg, since (afaict) it's not really possible to go the other way 18:52
TimToady but you have to keep some state as to how much of the next arg has been flattened
that state could be done by shifting the arg and unshifting its components 18:53
pmichaud part of me wants .get to become .getflat and .getarg to be .get
because for the most part, I think we should be defaulting to preserving information rather than eliminating it
TimToady something to be said for that
pmichaud also, it seems more natural for newly defined iterators to be defining .get 18:54
TimToady .smooth and .chunky :)
that is certainly negotiable
pmichaud okay, I'll go look at CaptureCursor a bit. 18:55
TimToady but we have to have the cursors to keep hypothetical bindings transactional and roll-backable
pmichaud the List approach I was looking at was still transactional/roll-backable
so it may in fact be very similar.
TimToady that's something that probably didn't make the transition from pm.txt completely, if at all
I guess it's mentioned in S02 18:56
pmichaud yes, looks like one or two lines in S02
TimToady but the end of pm.txt was groping for it
pmichaud anyway, under the current spec it seems very difficult to see where the main role of flattening takes place
there are a lot of terms that don't match up. 18:57
TimToady but I think the mechanism used by map and the mechanism used by multis to do commit/rollback are the same
s/are/is/
pmichaud I agree, I was working from that premise.
I think I might just have a different mechanism :)
TimToady I think implicit flattening is only ever done by binding 18:58
pmichaud well, and list assignment
TimToady and since some multis can flatten while others don't, that choice is part of the hypothetical being "known" by the cursor
not by the main iterator
pmichaud right
TimToady .flat and .slice, are, of course, explicitly available 18:59
and .list is still very close to a no-op
pmichaud I've just been looking at it as binding against a structure instead of binding against a Cursor
TimToady except to pull an iterator out of something iterable
pmichaud e.g., the way we currently bind against Parcel as a structure
moritz_ I've just done a book releasae 19:00
colomon moritz_++
moritz_ since some of the changes depend on a not-yet-released module, I've only pushed the changes to a branch
TimToady as long as the structure is the structure of a cursor, you're fine :)
moritz_ called 'ng'
pmichaud well, it essentially is, yes.
moritz_ forgot to fix the title page 19:01
ah well
19:01 rv2733 left
TimToady pmichaud: but there are deep connections to cursors used in pattern matching in general 19:02
pmichaud I can buy that.
TimToady and we should push that to the extent we can underneath, without forcing the user to think about it
biab &
and .chunks corresponds to .flat, more or less 19:05
which is funny 19:06
moritz_ funny that it's something that wasn't in the original design
TimToady and it's the normal match object that gives the .slicey view
19:06 patrickas joined
moritz_ and later added due to my continued complaining :-) 19:06
patrickas back
jnthn patrickas: PONG!
patrickas that's a pong and a half! 19:07
jnthn It grew up while it waited for you. ;-)
I missed you by like a minute. :-)
TimToady but it also bolsters your argument that the unmarked form is the hierarchical one, and the flattening one is special
so perhaps we should rename .chunks to .flat
pmichaud I think that would help, yes. 19:08
mberends jnthn: pong! pong!
frettled What about .sharp?
jnthn mberends: I kinda can't remember what I pung you about now... 19:09
patrickas I wanted to ask you and maybe moritz_ about how to handle the case of sub MAIN('add' , $file) {} ... I did a quick and dirty patch that would say Usage: script param $file
jnthn mberends: Did you get the messages I left on proto?
TimToady frettled: feels unnatural
moritz_ patrickas: the super-awesome method would be to look for the .constraint of the parameter
jnthn mberends: I think I ran into something in FakeDBI too
patrickas which is better than what we have now but too unhelpfull
jnthn mberends: But in the end it's just a NYI IIRC
pmichaud the thing that worries me about .chunks => .flat is that it might be a mite too close to .flat on other forms of lists 19:10
jnthn mberends: Oh, I remember. Is there a method that gets all the rows as hashes, and an array of those?
pmichaud and not have really the same meaning-ish
mberends jnthn: yes thanks, and I'll be working on that at FPW in Calais tomorrow and Saturday, hopefully roping in some more hackers too.
frettled TimToady: a bit off key? :)
moritz_ patrickas: and if the constraint is defined and either Numeric or Str, use the constraint instead of 'param' (and add quotes around it, ot make it clear it's a literal)
pmichaud especially since $<xyz>.flat would end up meaning entirely different things depending on whether <xyz> was a quantified capture versus an unquantified one
frettled pmichaud: that's worrysome, yes. 19:11
patrickas moritz_: let me try that to get a feel of what you mean
jnthn mberends: Excellent.
moritz_ rakudo: sub f('foo', $x) { }; say &f.signature.params.[0].constraint
p6eval rakudo 16d9cb: OUTPUT«Method 'constraint' not found for invocant of class 'Parameter'␤ in main program body at line 11:/tmp/Q0EfEEORi7␤»
moritz_ rakudo: sub f('foo', $x) { }; say &f.signature.params.[0].constraints
p6eval rakudo 16d9cb: OUTPUT«foo␤»
moritz_ so that could produce: Usage: -e '...' 'foo' x 19:12
patrickas THat would be great
pmichaud also, fwiw, I find that .flat (on listy things) is a very opaque concept at the moment.
jnthn rakudo: sub f('foo', $x) { }; say &f.signature.params.[0].^methods(:local);
p6eval rakudo 16d9cb: OUTPUT«nameddefaultoptionaltype_capturesrwmulti_invocantslurpysignaturecaptureparcelconstraintsnamed_namescopyrefreadonlynametypeinvocant␤»
19:13 pmurias joined
TimToady .chunks -> .linear maybe 19:13
pmurias diakopter: why shouldn't the history be moved?
jnthn rakudo: sub f('foo', $x) { }; say &f.signature.params.[0].^methods(:local).join(', ');
p6eval rakudo 16d9cb: OUTPUT«parcel, constraints, named_names, copy, ref, readonly, name, type, invocant, default, named, optional, type_captures, rw, multi_invocant, slurpy, signature, capture␤»
jnthn huh, constraints is there
sub f('foo', $x) { }; say &f.signature.params.[0].constraints
rakudo: sub f('foo', $x) { }; say &f.signature.params.[0].constraints
p6eval rakudo 16d9cb: OUTPUT«foo␤»
jnthn moritz_: oh, plural :-)
mberends jnthn: Su-Shee++ is adding all the fetch*() methods that P5 DBI has, but may be waiting to commit until she has added tests as well. One of the methods is fetchall_hashref(), that comes closest to what you're asking. The hash keys are the primary keys for each row, the values are refs to arrays of fields.
jnthn patrickas: Like that, anyways.
mberends: I was looking for an array of hash, but that'd be obtainable thorugh .values I guess 19:14
Su-Shee this Su-Shee person has commiting and writing tests scheduled. :)
mberends :)
jnthn That Su-Shee person sounds awesome. :-)
patrickas well now that moritz_ did the whole thing i'll just copy paste it from irc to the file :-)
jnthn mberends, Su-Shee: BTW, FakeDBI worked "out the box" on my (Debian) server. :-) 19:15
mberends jnthn: I was wondering how you managed to execute a 'touch' command...
moritz_ :-) 19:16
jnthn mberends: I tried pre-compiling things but it's still extremely slow and feels like it's not picking up on the pre-compiled files.
mberends: Any thoughts?
It seemed to get no faster when I pre-compiled.
But maybe the DBD gets loaded in an intresting way?
mberends jnthn: no. It does seem slow here too :(
moritz_ like, for every call? :-)
mberends no, just startup 19:17
jnthn moritz_: No, it's OK when running.
Su-Shee I have like 10, 12 seconds startup, then it's doing ok. 19:19
mberends jnthn: the DBD gets loaded by a 'use' command called from DBI.connect(). That may be dodgy. 19:20
jnthn mberends: Should be OK if it's using use.
mberends: I'll have a dig. 19:21
moritz_ patrickas: I'm squashing a few of your commits into one to remove the clutter
mberends jnthn: I suggest you temporarily rename the .pm6 files to force the loader to use the .pir ones. 19:22
19:22 dalek joined
Su-Shee I've read up on mathw's GIR mentioning concerning binding gtk and that really look like the way to go. 19:22
19:22 dukeleto joined, hatsefla1s joined
perlpilot feather is back! 19:22
mberends Su-Shee: could that be another Zavolaj based project? 19:23
jnthn mberends: ah...renaming it gives me an internal server error.
mberends: So it's not finding the PIR one. Hm
mberends: oh, of course.
mberends: It has to find the .pm6 there first I guess. 19:24
Su-Shee mberends: it would make binding it as easy as it could possibly be - from the C side.
jnthn mberends: OOOH!
mberends: duh!
jnthn--
my $pir_file := pir::substr__SSII($pm_file, 0, pir::length__IS($pm_file) - 2) ~ 'pir'; 19:25
Doesn't work if the extension is .pm6
mberends ah, all written for .pm only
jnthn Yup
moritz_ so, rindex for last '.' ? 19:26
Su-Shee mberends: it's essentially a parser/compiler which generates kind-of a binding map from libs. look at this picture: live.gnome.org/GObjectIntrospection/Architecture the only thing I'm not sure about yet is wether or not the lib itself has do do gobjects or if it works for _all_ proper C libs.
mberends: but _if_ gir works, you seem to get everything from cairo, pango, gtk until clutter. 19:27
19:27 pugssvn joined, perlpilot left
mberends Su-Shee: ASCII art to document a GUI? WTF? 19:28
moritz_ likes
Su-Shee mberends: well .. :) 19:29
patrickas damn it, I read moritz_ suggestion earlier in the backlog and tried it but could not get it to work no matter I tried what now I see the one that works it was the same as what I had so i checked again and I think i found a "strange" rakudo bug (ain't they all) :-)
rakudo: sub foo ('add' ) {...} ; say &foo.signature.params[0].constraints;
p6eval rakudo 16d9cb: OUTPUT«add␤»
Su-Shee mr Gtk2 also wrote a tutorial for perl 5. 19:30
patrickas rakudo: sub foo ('add' ) {...} ; say &foo.signature.perl; say &foo.signature.params[0].constraints;
p6eval rakudo 16d9cb: OUTPUT«:(Str where ("add"))␤␤»
patrickas if I "say" the signatire first - for debugging , the contraint becomes empty! 19:31
pmichaud back (sorry, got a phone call here)
19:32 pugssvn left
patrickas ... signature ... constraint ... I need an auto spell checker here :( 19:32
19:33 dalek left
Su-Shee ah, here it is how to do it with p5 if that helps: live.gnome.org/GTK2-Perl/Introspection 19:33
pmichaud so, looking at what I can find of CaptureCursor, it looks a _lot_ like what I was thinking of for "List"
19:34 pmurias left
pmichaud let me back up a bit further then. 19:34
19:34 ShaneC joined, dukeleto left, hatsefla1s left
pmichaud if I have @xyz.grep(...).WHAT 19:34
what would we like the .WHAT to be?
I'm thinking that "GatherIterator" is wrong. 19:35
19:35 poincare101 joined
poincare101 I just heard on #perl that rakudo might retarget. Is this even remotely true? 19:35
colomon poincare101: retarget? 19:36
moritz_ poincare101: it won't be considered before the Rakudo Star release
pmichaud poincare101: retarget as in "use other backends besides Parrot"? It's more than remotely true.
poincare101 pmichaud: ah.
19:36 hatsefla1s joined
pmichaud Rakudo is definitely being written with the goal of eventually being multi-backend, although that's not a current priority. 19:36
colomon there are certainly no plans to drop Parrot.
19:36 dalek joined
poincare101 pmichaud: I see, I see. 19:36
jnthn Right, the plan is to add additonal backends alongside Parrot.
But after R*. :-)
moritz_ rakudo: @*ARGS = <a b c d e> 19:37
p6eval rakudo 16d9cb: OUTPUT«Cannot assign to readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 11:/tmp/g1r18VPue4␤»
dalek kudo: 563cad0 | patrickas++ | CREDITS:
Fame and fortune for patrickas \o/
kudo: 3b29cd2 | patrickas++ | src/core/MAIN.pm:
named arguments are always shown first
moritz_ right or wrong?
19:37 saaki is now known as Arroz
pmichaud I'm reasonably certain @*ARGS should be writable. 19:37
19:37 pugssvn joined
moritz_ that would have been my expectation too 19:37
moritz_ submits mas^Wrakudobug 19:38
pmichaud it probably just eneds the rw propery set.
*needs
19:39 hatsefla1s is now known as hatseflats
moritz_ like setprop $P2, "rw"? 19:39
pmichaud setprop $P2, 'rw', $P3
where $P3 is Bool;True
moritz_ ok
pmichaud I think a few places may have been doing setprop $P2, 'rw', $P2 but I think that may bite us someday.
19:41 dukeleto joined
moritz_ I'll do a get_hll_global 'True' 19:41
pmichaud moritz_: +1
jnthn: ping
moritz_ hey, maybe I can fix that bug before submitting it :-)
19:41 changa- joined
patrickas rakudo: sub foo ( Str where ("add") ) {..} 19:42
p6eval rakudo 16d9cb: OUTPUT«===SORRY!===␤Can not do non-typename cases of type_constraint yet at line 11, near ") {..}"␤»
patrickas rakudo: sub foo ( Str where ("add") ) {}
p6eval rakudo 16d9cb: OUTPUT«===SORRY!===␤Can not do non-typename cases of type_constraint yet at line 11, near ") {}"␤»
pmichaud rakudo: sub foo (Str $ where 'add' ) { }
p6eval rakudo 16d9cb: ( no output )
jnthn pmichaud: pong 19:43
pmichaud jnthn: does the current binder tend to work on Captures or on Parcels?
(I forget, don't want to look :-)
jnthn Captures.
patrickas thanks pmichaud, that means the output of &foo.signature.perl needs fixing!
pmichaud Okay, excellent, thanks.
jnthn pmichaud: I'm not sure how it could work on parcels...without first coercing them to captures anywya. :-)
*anyway
pmichaud jnthn: yes, makes sense. I've just got so many variations floating in my head I need a few reality points :) 19:44
jnthn pmichaud: It's perfectly fine with either a Parrot CallSig or a Perl 6 Capture.
pmichaud: In fact, in a nested signature case, we just .Capture the argument to coerce it into a Capture and recurse.
moritz_ simplicity++ 19:45
pmichaud okay, wfm.
thanks.
jnthn moritz_: Yeah, I was happy how easily nested signatures dropped out.
pmichaud: Handling *@args and **@args properly will need a some changes no doubt. 19:46
pmichaud: It's pretty encapsulated to one area of the binder. 19:47
19:47 plainhao left
pmichaud TimToady: if someone does .get(flat) on an iterator, which partially consumes a parcel and leaves the remaining elements for a subsequent .get(flat), what happens if someone then calls .getarg on the iterator? 19:47
jnthn: yeah, I'm actually not too worried about the binder code. Every time I look at it I tend to think "oh, sure, we can change this easily if we need to"
jnthn++
jnthn pmichaud: That makes me feel like I got it rightish. :-)
pmichaud me too :-) 19:48
TimToady: do we get the remainder of the partially consumed parcel, do we throw an exception, or ... ?
dalek kudo: ec2694e | moritz++ | (2 files):
make @*ARGS writable. This allows us to run S06-other/main.t, so do that
pmichaud (earlier conversation about moving pugscode repo off of feather) -- fwiw, I'm still liking the idea that we could split a few things up and put it into the perl6 repository on github :) 19:49
(not sure I want to do this in June, however.) 19:50
TimToady we just get the lower level arg, like car vs cdr in lisp 19:51
moritz_ pmichaud: agreed on 'not in June'
pmichaud ummm, I know all of those words but still don't understand the answer. :-|
(having forgotten lisp from 20+ years ago) 19:52
my $iter = ((3,4,5), (6,7)); my $a = iter.get; my $b = iter.getarg; # what is $b ? 19:53
TimToady I'd use the $arg = getarg; ungetflat(@$arg) model, I think, so the next arg is flattened into N args
pmichaud add $'s to the 'iter's above.
19:54 clintongormley left
pmichaud okay, so in my example above, $b is 4 19:54
TimToady $b is 4
yes
pmichaud okay (more)
in that case, I *really* want whatever code generates the next parcel to be neither .getflat nor .getarg
because that implies that everyone's .getarg has to "know" how to deal with ungetflat
as opposed to simply producing parcels 19:55
(e.g., the XYZIter example from earlier, arguing that .getflat should be in terms of .getarg and not vice-versa)
TimToady I believe I'm on record as desiring all iterators to support pushback
pmichaud I agree with that
but there ought to be a low-level method that just means "give me the next parcel" that can be called by either .getflat or .getarg as appropriate
rather than requiring every type of Iterator to know about it intimately 19:56
TimToady but, that's what getarg is
19:56 changa- left
pmichaud not if getarg also has to know about the pushback 19:56
in other words, my RangeIter.getarg method has to do more than just compute the next item in sequence, it has to explicitly check the pushback queue 19:57
TimToady the mininum is that it support returning a cursor that can support pushback 19:58
pmichaud okay, that lost me entirely. 19:59
(not sure what "it" is, to begin with)
TimToady an iterator does not need to support pushback, but it does need a standard way to transform into a type that can, and that might be .gimme-a-cursor 20:00
20:00 madalu joined
pmichaud so, my invoking .get on a (custom) Iterator can cause the iterator to change type? 20:01
TimToady though it's possible that's confusing two different roles for cursors
pmichaud I think it is.
20:01 masak joined
masak ahojte! 20:01
moritz_ masak: I've found a rakudobug... and not submitted it :-) 20:02
pmichaud Part of what is giving me fits is that our types don't have clearly defined responsibilities -- it's all sorta vague-ish and inconsistent.
moritz_ (instead, I fixed it)
pmichaud moritz_++ # nice fix, btw
masak moritz_: how unorthodox! :)
Tene masak: you find any way to work around variable interpolation in regexes in alpha?
masak Tene: eval.
patrickas moritz_++
how can i distinguish between
Tene masak: Oh. Huh. I guess that works. I'll try that.
patrickas rakudo: sub foo (Str $ where ("add"|"del")) {...} ; say &foo.signature.params[0].constraints; 20:03
p6eval rakudo 16d9cb: OUTPUT«_block43␤»
20:03 xinming left
patrickas rakudo: sub foo ("_block43") {...} ; say &foo.signature.params[0].constraints; 20:03
p6eval rakudo 16d9cb: OUTPUT«_block43␤»
moritz_ patrickas: it seems to not pick up custom usage subs :(
patrickas: &foo.signature.params[0].constraints.WHAT
rakudo: sub MAIN($x) { }; sub USAGE { say "OH NOEZ" }
20:03 Psyche^ joined
p6eval rakudo 16d9cb: OUTPUT«Usage␤/tmp/QI9xMndxYQ x␤» 20:03
patrickas yea I noticed, so at least I would like to treat them differently 20:04
rakudo: sub MAIN($x) { }; our sub USAGE { say "OH NOEZ" }
p6eval rakudo 16d9cb: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'USAGE' at line 11:/tmp/EarYv0r_U1␤ in 'MAIN_HELPER' at line 5877:CORE.setting␤ in main program body at line 1:/tmp/EarYv0r_U1␤»
patrickas rakudo: sub MAIN($x) { }; our sub USAGE ($main) { say "OH NOEZ" }
p6eval rakudo 16d9cb: OUTPUT«OH NOEZ␤1␤»
20:04 xinming joined
TimToady pmichaud: if we push it more toward the immutable cursor model, there's really no such thing as an iterator, in the mutable sense. You have a cursor, and you do something with it to produce a different cursor. 20:04
moritz_ is USAGE supposed to have a parameter, by spec?
TimToady you do transactions by remembering your start cursor
20:05 ashleydev_ joined
patrickas no i think not 20:05
TimToady you flatten by having a cursor that iterates the next arg and then converges with the cursor you would have got from getarg
pmichaud TimToady: I have trouble mapping that to the idea of .get and .getarg
patrickas I added it because it made testing much easier and did not notice it would have an effect 20:06
pmichaud TimToady: just a sec, let me re-orient my worldview a second
TimToady pmichaud: the problem is that .getflat and .getarg aren't really supposed to return the value; they return the cursor which has the value as a .ast thingy
pmichaud and so when I say 20:07
my $b = $iter.getarg;
I'm really not getting 4.
(from my earlier example)
patrickas moritz_: I gave usage a default parameter thinking it would not matter then !
TimToady that is assuming a mutable $iter
20:07 Patterner left, Psyche^ is now known as Patterner
pmichaud I understand... I'm just trying to make the example match what you just said. :) 20:07
moritz_ patrickas: it matters if you explicitly pass a parameter, because then a USAGE sub *has* to accept at least one 20:08
TimToady we can have a user-view with a mutable iterator, but it's really a container for an immutable cursor
20:08 Su-Shee left
pmichaud okay, I can handle that 20:08
TimToady but the fancy stuff is all done with cursors, not with mutables
pmichaud so, .getarg and .getflat are methods on the mutable iterator, and it's the underlying Cursor that is responsible for producing the values?
TimToady basically, if those are the method names we choose to show the user 20:09
pmichaud or, put another way, instead of a RangeIter I should be writing a RangeCursor?
patrickas moritz_: ok then I won't pass anything
TimToady which will look a lot like the LazyRange in STD
pmichaud and same for our other *Iter things that we have now -- they're in fact Cursors? 20:10
and what we know as "Iterator" is a container for managing the underlying cursors (and supporting pushback and the like)?
moritz_ patrickas: you can also use the Q:PIR trick for getting the users's lexical USAGE routine (the same trick I use for MAIN)
TimToady pmichaud: that sounds about right
masak likes the new look of the book 20:11
pmichaud this feels very different from what I read in the spec. Am I correct that it's different, or have I been totally misreading the spec?
TimToady and pushback is just creating a cursor that, when the front list is exhausted, converges again on the original cursor sequence
20:12 Su-Shee joined
pmichaud (or has the spec just been very incomplete on this point?) 20:12
patrickas moritz_: so that the user will not have to define it as "our sub USAGE ? "
moritz_ patrickas: right
TimToady thinks that TimToady is very stupid not to have realized all this sooner.
20:12 patrickas_ joined
moritz_ patrickas: that trick picks up lexical subs from the caller's scope 20:12
pmichaud this also makes me wish that what we currently have as "Cursor" was somehow "RegexCursor" instead. :)
TimToady I knew we needed cursors, but didn't learn the lessons of STD/Cursor 20:13
pmichaud: well, sure
pmichaud and I still don't have a clean mental mapping between RegexCursor and the other types of Cursors. I see how they follow a similar pattern, but they aren't truly unified in my head yet.
patrickas_ moritz_: OK in that case I'll also move the default usage inside MAIN_HELPER
pmichaud (and I'm not eager to try to unify them prior to July) 20:14
moritz_ patrickas_: check the spec first if there should be a user-visible USAGE sub
pmichaud TimToady: another thought
TimToady I wouldn't suggest trying to unify them in any significant way right now
pmichaud agreed
are "Lists" then just another mechanism for managing cursors?
i.e., would it be possible to have Lists without having to go through iterators? 20:15
basically, a list would just have a reified component and a non-reified cursor component?
patrickas_ moritz_: "If an attempted dispatch to MAIN fails, the USAGE routine is called. If there is no USAGE routine, a default message is printed."
TimToady I think List and the $iter above are the same thing, more or less, yes
moritz_ patrickas_: ok, so no user visisble USAGE routine
patrickas_ what about MAIN_HELPER ? is there a way to hide it too ? 20:16
pmichaud okay
that helps lead towards the idea I had of "flattening iterators"
i.e., lists manage the cursors, and we can talk about a list as an item (non-flattening) or as a list (flattening)
20:16 patrickas left
TimToady which is the .flat vs .slice distinction, predeciding the matter 20:17
pmichaud right
also, it feels to me as though lists ought to be mutable, since they support pushback
(that also feels rightish)
TimToady yes 20:18
pmichaud I'm still not sure about .get/.getarg on lists as we've defined them here, but it can be made to work.
it also feels weirdish because earlier we said that CaptureCursor was the thing supporting .get and .getarg (I think)
TimToady now, if lists are really arrays in disguise, I think we can really get the rest of the way by providing a simple way to iterate an array destructively 20:19
pmichaud so something doesn't quite fit there either
(iterate an array destructively) that was the idea I had earlier this week
20:19 Util joined
pmichaud I was thinking of an "eaterator" 20:19
TimToady "munch" I suggested earlier
pmichaud i.e., it consumes the array/list as it iterates
ah, yes, "munch". I didn't make the connection.
TimToady and it may even be that munch is a macro of the delete variety
munch @a[1,2]
pmichaud that's sounding very much like what I was thinking of for Lists and partial binding 20:20
[Coke] John Munch?
Su-Shee sound more like Pacman ;)
TimToady or munch %hash<foo bar>
pmichaud i.e., "map" does a partial binding against a List, and then munches whatever actually got used
TimToady and "munch" implies returning the values, unlike "delete"
cxreg is jnthn's "solved in perl 6" slides anywhere?
pugssvn r31187 | moritz++ | [t/spec] make Test::Util accept command line arguments for the program to be run
r31188 | moritz++ | [t/spec] new test file for sub USAGE together with MAIN
TimToady but can also imply destruction, as in "I munched my car." 20:21
cxreg oh nm, just found them
moritz_ cxreg: probably jnthn.net/articles.shtml
pmichaud TimToady: okay, so where do you propose that I (or we) got from here?
*go
TimToady so "munch @iter" just munches the whole array and returns it as a list, which really means just inline the @real,@imag bits of it 20:22
pmichaud getting lists resolved is pretty high on my todo list :-)
TimToady an explicit munch means that *@list is okay
pmichaud yes
that's what I was looking for for map()
TimToady and not munching means you intended to keep the values from the start
pmichaud correct.
TimToady I think I like this 20:23
pmichaud sub map(&block, *@values) { @values.munch.map(&block); } # what I've been trying to get to
moritz_ patrickas_: there you go, a TODO'ed test that starts passing once we pick up lexical USAGE subs
TimToady munch is basically a smart delete/shift thing
dalek kudo: c43bca7 | moritz++ | (2 files):
print USAGE message to $*ERR, just because it feels right-isher
pmichaud (and I don't think I can be lazily evaluating my todo list for much longer, I've got to get a few things reified soon)
TimToady or just \$values; $values.map maybe
pmichaud that's possible too. 20:24
20:24 nimiezko joined
pmichaud but ultimately I was trying to get to a simple interface for writing filters 20:24
TimToady but I like that mere mortals can confuse arrays and lists for normal code, and all they pay is delayed GC
pmichaud i.e., a simple way to say "please throw away items as you process them"
correct
TimToady and it's easy to teach munch as a super-shift 20:25
shiftall
pmichaud my view of munch was an iterator that also shifted the underlying thing it iterates
(thus "eaterator" :-)
20:25 xabbu42 joined
pmichaud and then .map was a method on iterator, somehow, or on a list/cursor that encapsulated the munching iterator 20:26
20:26 perlygatekeeper left
pmichaud I do much prefer the notion of RangeCursors to RangeIters 20:27
moritz_ masak: could you please update your blog post about the challenge, noting that we have two submissions already? (see #perl6book backlog from the last 30min or so for the second)
TimToady biab &
pmichaud same here, biab 20:28
20:28 pmichaud left
masak moritz_: oki, will do. 20:28
cxreg if gather is lazy, does that make its block a continuation? 20:30
Tene Something like that, yeah. 20:31
20:31 Su-Shee left
cxreg so a function that "returns" a gather, like pick, is implicitly lazy too? 20:32
moritz_ a coroutine actually (which is a bit weaker than a continuation, iirc)
cxreg ah
moritz_ cxreg: yes
cxreg ok cool thanks
20:32 nimiezko left
cxreg i suspect there could be unexpected side effects if you modify the array you picked from before you fetch the data then? 20:33
or is there some COW magic?
moritz_ not sure
(I hope there's magic somewhere :-)
TimToady sure, the whole lazy model depends on illusions of immutability
so where the two ends aren't immutable, we need to discourage interactions 20:34
masak moritz_: updated. use.perl.org/~masak/journal/40385
TimToady this may well be explicit in the case of feeds, which may assume that threads may not communicate via external lexicals by default
20:36 pmichaud_ joined
pmichaud_ well, feeds what was ultimately led me to the .eaterator model 20:38
because a feed is something like
grep(...) <== @list
moritz_ masak: thanks
pmichaud_ which gets translated into grep(..., @list)
so in the case of a longer feed, we have
map({...}) <== grep(...) <== @list 20:39
it ends up looking like
map({...}, grep(..., @list))
and we really don't want those intermediate slurpies holding data
20:40 pmichaud_ is now known as pmichaud
masak Tene: not so much scary (to upgrade Web.pm to alpha) as one more thing that I'd rather see not distract us before the wrap-up of the grant. who knows, it might be super-simple to port all of the Web.pm code to alpha? :) but I rather doubt it. 20:40
Tene That's WAY more words than what I said. 20:41
moritz_ s:g/alpha/master/
pmichaud Tene: "is not." :-)
20:41 cdarroch left
pmichaud (okay, masak's sentence makes much more sense with moritz's substitution) 20:41
I was wondering about "upgrade to alpha" :)
rokoteko what is this '<==' ? 20:42
pmichaud rokoteko: see S06
mathw alternatively you could s:g/to/from/
pmichaud "Feed operators"
moritz_ rakudo: 1 <== 2
p6eval rakudo 16d9cb: OUTPUT«Sorry, feed operators not yet implemented␤ in 'infix:<<==>' at line 914:CORE.setting␤ in main program body at line 11:/tmp/gHibZAAymY␤» 20:43
pmichaud (but they _can_ be implemented once we get lists working properly :)
TimToady: so, what do you suggest for me working on lists? Is there likely to be a spec revision in the near future that I should wait for, or should I start writing code with the hope/expectation that it'll become spec? ;-) 20:45
(and I can write spec, too, as the code starts to develop)
TimToady I think it will be very close to what we discussed above
pmichaud okay 20:46
I'll start on code then.
TimToady a question is whether the operations on cursors have the same get* names or different ones
pmichaud I'm leaning towards different
TimToady metoo
pmichaud but perhaps the answer there is to have me prototype something and see what falls out
TimToady like .parse is different from .termish
pmichaud and I'll feel okay with taking... "liberties" with the API and the understanding that it could change a bit later 20:47
especially as far as naming of things go
TimToady go for it
masak rokoteko: essentially '<==' allows the programmer to create coroutines, pipe-like routines that execute in parallel, feeding each other data.
TimToady I think we're at least temporarily on the same wavelength
pmichaud nice to be there, definitely
masak is there a difference between '@a = foo()' and '@a <== foo()'?
pmichaud the latter is lazy
masak ok.
TimToady ==> is a form of explicit threading, which might have different defaults than implicit threading of a normal lazy list 20:48
but for now it's fine to assume they're basically the same
pmichaud except the latter is lazy :-)
Tene and what's the reason for the former to not be lazy?
pmichaud Tene: list assignment is eager by default
TimToady ==> is lazy too
pmichaud Tene: because we generally want my @a = @b to grab the values of @b as they exist now, and not at some lazy point in the future. 20:49
TimToady though certainly not strictly lazy
20:49 SmokeMachine joined
TimToady ==> are really event queues between threads 20:49
and the eager/lazy thing looks a lot more like "buffer full/empty" semantics 20:50
pmichaud afk for a short while, need to attend to @family stuff
TimToady thinks a nap is about to occur. 20:51
20:55 madalu left
cosimo good $evening, everyone 20:56
question 1: stackoverflow.com/questions/3018456...am-running
question 2: not a question actually 20:57
masak: proto ping, github.com/cosimo/perl6-digest-md5
thanks, :)
masak cosimo: you are aware that you too have commit access to proto? :) 20:59
cosimo masak: no, not really
masak: do I?
masak I'm checking now.
cosimo i mean i didn't know that 21:00
masak cosimo: now you do. :)
cosimo cool
masak welcome aboard! please add your project to projects.list.
21:01 cdarroch joined, cdarroch left, cdarroch joined
cosimo masak: and done 21:02
masak \o/
cosimo this time I used ufo technology
masak far out. 21:03
21:04 Guest61501 left
[Coke] prints out a copy of the book for perusal. 21:04
21:05 ggoebel left 21:06 patrickas_ left, ggoebel joined
jnthn mberends: Any idea if parameterized queries are implemented in FakeDBI? 21:10
masak likes reading pmichaud++ and TimToady++ iterate towards a consensus 21:11
21:11 ggoebel left
jnthn is too lazy to read it ;-) 21:12
mberends: er, looks like the answer is yes but I'm not convinced it escapes them... 21:14
masak jnthn: by the way, Str.encode now uses ByteBuffer. I'm reading the bytebuffer.t tests to see how Buf.decode might work. it's looking very hopeful. 21:17
NotFound++ 21:18
jnthn \o/
cosimo mberends: wow, fakedbi does that really work with mysql?
jnthn masak++, NotFound++
cosimo: It does indeed.
cosimo: It's all written in Perl 6 too.
cosimo jnthn: i'm trying it now, but 'make' complained and stopped working 21:22
21:22 jferrero joined
cosimo :-| 21:22
diakopter aside: optional strong typing is _awesome_; "one" language can have efficient benchmarks with the strong typing, but extremely golfed examples for the fans of extreme terseness
jnthn cosimo: Ah, I did it via proto. 21:23
cosimo: It has a dependency on Zavolaj, so if doing by hand you'll need to install that first.
cosimo jnthn: I had done that already 21:25
jnthn: and btw, it's missing t/* files I think
jnthn cosimo: Zavolaj? Yeah, I think it's under-tested. 21:28
21:28 masak left
cosimo jnthn: just tried 'make test' and it tried to load t/mysqlclient.t, but there's no t/ 21:30
works just fine anyway
21:30 jaffa4 left 21:38 mantovani left 21:47 szabgabx joined
cosimo mberends: any idea about pastebin.org/323598 ? maybe too old rakudo/parrot? 21:52
mberends: it doesn't like "method blah (Match $m)" 21:54
21:57 patrickas joined, skids left
patrickas jnthn: ping 21:59
jnthn patrickas: pong 22:02
patrickas jnthn: private window when you have time pls :-) 22:06
22:08 Util left, tylerni7 joined 22:11 SmokeMachine left 22:13 ashleydev_ left
patrickas jnthn++ thanks :-) 22:14
22:15 pjcj left 22:17 alester left 22:18 alester joined 22:26 xabbu42 left 22:29 tedv joined 22:31 gbacon left, patrickas left, jferrero left 22:35 ShaneC left
lue OHAI 22:36
22:36 alester left 22:38 ggoebel joined 22:39 Juerd joined 22:41 whiteknight joined
lue hi? 22:42
22:43 pyrimidine joined, patrickas joined
arnsholt RFC: Might there be an extra awesome way to represent CFGs in Perl 6? 22:48
(For a CKY/Earley parser module)
cosimo LWP::Simple works again with current rakudo \o/ 22:51
patrickas colomon++ 22:53
22:53 snarkyboojum joined
patrickas i meant cosimo++ :-) 22:53
22:57 mikehh joined 23:03 rv2733 joined
lue rdstar.wordpress.com/2010/06/10/colouredoutput/ olol blogged 23:08
patrickas rakudo: sub f ( 'add' ) {} ; my $c = &f.signature.params[0].constraints ; say $c,$c; 23:19
p6eval rakudo c43bca: OUTPUT«add␤»
patrickas alpha: sub f ( 'add' ) {} ; my $c = &f.signature.params[0].constraints ; say $c,$c; #prints add instead of addadd
p6eval alpha 30e0ed: OUTPUT«all({ ... })all({ ... })␤»
colomon patrickas: I was wondering what I could have done... ;)
TimToady it's less slow 23:20
ww
jnthn lue: Ooh, pretty! :-) 23:23
lue [!CRAZY IDEA!]I'm considering removing the DON'T PANICs from the radix code I contributed, and then plastering it in front of all errors.
23:34 patrickas left 23:38 REPLeffect left
lue rakudo: say ("hello", "hi","rakudo").pick(1) 23:45
p6eval rakudo c43bca: OUTPUT«hi␤»
lue rakudo: say ("hello", "hi","rakudo").pick(1)
p6eval rakudo c43bca: OUTPUT«hello␤»
jnthn sorear: As well as the "lose the environment" issue, I fear we may lose STDIN to Perl 5 in Blizkost too. 23:49
(Didn't get conclusive proof on that yet though.)
lue nqp: say ("hello", "hi", "rakudo").pick(1) 23:51
p6eval nqp: OUTPUT«Confused at line 1, near "say (\"hell"␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
23:53 ggoebel left 23:54 REPLeffect joined
lue how would I get something like pick() in nqp? [i've tried looking for tutorials before, but they don't seem to exist] 23:55
23:55 avar left