»ö« | 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() filenameor/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 failedFAILED 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 NOEZ1» | ||
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
|