Run Perl6 Now! & pugscode.org ('Overview', 'Journal') & pugs.kwiki.org & channel log: xrl.us/e98m & < autrijus> damn, my journal keeps getting obsoleted by #perl6.
Set by Juerd_ on 12 March 2005.
Juerd z 00:01
theorbtwo crazy is. 00:16
jabbot pugs - 626 - More authors updates: extra column with 00:34
Khisanth strangles YAHT 00:52
theorbtwo desert-island.dynodns.net/perl/prims.html 00:54
Khisanth is that all the implemented operators? 00:55
theorbtwo Yep. 00:57
Currently done with a little p5 script that takes them out of initSyms = table in Prims.hs 00:59
The presentation could use some work, but I'm not 100% sure what to do with it. 01:00
Allo, FOAD. 01:10
Khisanth theorbtwo: can't do it in p6 yet? :) 01:17
theorbtwo Hm, could, but would be hard. 01:19
Regexes are a great goodness.
Updated 01:24
sleep &
mugwump I guess perl5 regexes would be `easier' via pcre than implementing perl6 regexes straight away 02:17
obra i thought pcre wasn't quite C 02:18
mugwump :-/ 02:19
How is your weekend going for you anyway obra ?
obra Today was ok. I haven't done the work work I need to do before monday, but I got Devel::CallTrace commented, tested, docced and uploaded 02:21
Which has led me to want to understand the debugger
mugwump yeah. ever looked at the implementation of Devel::Cover vs. Devel::Coverage? 02:27
obra nope 02:31
mugwump Devel::Coverage uses the debugging hooks, Devel::Cover uses a more comphrehensive approach - it replaces Perl_runops 02:47
AIUI 02:48
obra nod
pjcj said that the hooks jst aren't suffiicnent for that
man. cna't type
mugwump I had to bite my tongue at the last PM meet when someone had just finished off showing off Devel::Cover, then described "how it works" like Devel::Coverage. Didn't want to look like a pratt ;) 02:49
I was thinking, "I remember being shown this at a presentation before it was released" 02:54
obra heh 03:04
mugwump Yay, my crack-fueled quantum junction script got another complete standing down message from Larry! Those are the best. 03:23
metaperl standing down? you mean he rejected it? 03:24
mugwump xrl.us/fe9d (Link to groups-beta.google.com) 03:33
right, gotta go, cafe closing... 03:34
jabbot pugs - 627 - Added examples/golf, containing Santa Cl 03:44
pugs - 629 - * param extraction for $_ and $^x now en 05:14
pugs - 628 - * use proper 'skip' syntax
autrijus lucs: fixed. 05:15
obra morning, autrijus
autrijus hey obra.
lucs autrijus: Thanks. And good morning :) 05:20
autrijus :) 05:21
I'll start to write pugscc now.
est 3 mins :)
"compile p6 to native code and deter all reverse engineering attempts!" 05:22
or something.
obra is timing from now until he sees the checkin
"compile perl6 to native code for a huge performance boost"?
autrijus not huge. same as B::* 05:23
currently.
~ same as B::C
lucs Simple as a B::C. 05:25
autrijus done. testing. 05:29
(yeah, more than 3 mins. :-/)
obra you are forgiven
how many loc?
autrijus 12 05:30
obra you-- # you promised it would be 0 loc
autrijus++ # pugs->native code
autrijus all 12 is in the "pugscc" helper script.
;)
obra hah
you++ # no new core code
autrijus so I consider 0 really.
obra fair 05:31
autrijus committing.
obra looks around for clkao
it appears that his p5 p4 mirror is missing files
autrijus hm. 05:32
autrijus finds a security exploit. 05:33
in pugscc.
autrijus blames p5 and fixes that.
obra nice 05:34
jabbot pugs - 630 - * first cut at pugscc 05:44
nothingmuch hola 05:46
obra reads perl5db.pl and starts to twitch 05:47
autrijus ok, we have a honest-to-god pugscc now. 05:51
the executable it generates depends on nothing but libc :) 05:52
so it's more like 30 minutes :)
obra wow
how big is hello world?
autrijus and I'm sad to report that the loc is 24 lines
including empty lines 05:53
nothingmuch how does it do that?
autrijus 3.6mb
nothingmuch: read script/pugscc :)
obra stripped?
nothingmuch autrijus: did you look at my annoyances of yesterday, btw?
autrijus not sure how to strip a win32 executable
nothingmuch: zip? 05:54
jabbot pugs - 631 - * fixed typos and cleaned up messages.
nothingmuch uhuh
Khisanth get strip from cygwin/mingw?
nothingmuch ah
autrijus maybe. not very concerned at this point.
nothingmuch pugscc is naughty 05:55
autrijus it is!
nothingmuch autrijus++
autrijus but imagine doing it with C!
:)
Khisanth witing pugscc with C?
autrijus actually, don't imagine, look at B::C :)
Khisanth: aye. pugscc does exactly what B::C in perl5 did.
well, not exactly, but a close approximation
nothingmuch autrijus: when i'll get to work i'd like to implement zip
and get some help on that
autrijus nothingmuch: cool
sure 05:56
nothingmuch ok
now i've got to get ready and stuff
autrijus see ya
Khisanth works better than B::C? :) 05:57
autrijus of course :)
Khisanth s/better/more reliably/ 05:58
it was kinda hit and miss thing
autrijus well, try it and see :) 06:02
jabbot pugs - 632 - * even more cleanup on pugscc; now assum 06:04
autrijus ingy: I think doc/perlkwid.kwid belonds to ext/Kwid/doc
or ext/Kwid/lib
but I think it's cool for each ext to maintain their own installable kwids.
Khisanth how do you use it? 06:11
Khisanth tried compiling one of he examples 06:12
jabbot pugs - 633 - * add usage info and pathsep to pugscc 06:14
autrijus Khisanth: hm? 06:16
make install
pugscc examples/life.p6
Khisanth can't just do perl scripts/pugscc ?
autrijus that should work also, provided a "pugs" executable is built first 06:17
i.e. after "make"
(in r633)
Khisanth getting "Fail: -C: openFile: does not exist (No such file or directory)" with a file and with -e 06:18
autrijus did you rebuild pugs? 06:19
a sec 06:20
Khisanth makes clean just to be sure 06:22
autrijus try r634? 06:24
I wonder what's wrong.
nothingmuch damnit
censoreship sucks
autrijus does "pugs -C -e 'print 123'" work for you?
nothingmuch now my mother hates me, /and/ she won't better herself
autrijus eh?
nothingmuch all because I kept my mouth shut for years
Khisanth same error 06:26
after the make clean that is, tryin 634
autrijus very strange. 06:27
nothingmuch ok, well anyway
my ride is here in an hour
and I'm ready
autrijus anyone else willing to try pugscc and see if it works?
nothingmuch so i'd like to do the zip thing
autrijus: trying... 06:28
autrijus ok. you'd like to make semicolon inside brackets to be multidim constructor
nothingmuch i think
will that yield a list of lists in pugs internals?
autrijus yes.
nothingmuch ok, then that's what we'll do 06:29
and then make an explicit type vcast thingy
autrijus yeah. 06:30
nothingmuch where the thing wants a vlist where the Vlist -> a => Vlist a ?
autrijus the trick is how to make
zip @a;@b
and
zip(@a;@b)
parse differently.
nothingmuch oh my
';' is evil
Khisanth is the ; in first case ending the statement? 06:31
autrijus yup.
may I interest you in the Y operator first? :D
nothingmuch you may 06:32
autrijus i.e. let's first make zip work before tackling ;
nothingmuch how does chaining stuff work?
autrijus it's list-associative
Khisanth that ; looks for for obfuscating :)
autrijus chaining means something else
Khisanth s/for/good/
autrijus nothingmuch: just add a 06:33
nothingmuch autrijus: explain what the tree looks like
autrijus \\n List list Y (List)\
nothingmuch for @a Ā„ @b Ā„ @c
autrijus and it will Just Work.
nothingmuch vs. (@a Ā„ @b) Ā„ @c
jabbot pugs - 635 - * first approximation of <> 06:34
pugs - 634 - * use absolute path throughout.
autrijus a sec.
well, currently it is a bug
(@a Y @b) Y @c
will also be parsed as list-associative
so we need to fix that
the place to fix this is in Lexer 06:35
nothingmuch hmm
autrijus that is nontrivial, so I'll just outline the idea 06:36
nothingmuch i think we'll start with @a Ā„Ā @b Ā„Ā @c working correctly
autrijus you can just assume it's there and write the rest thing :)
nothingmuch brb, and then we start
autrijus exactly.
food & 06:37
will be back in a few mins
nothingmuch ok 06:42
nothingmuch is now back, but autrijus is gone ;-)
autrijus I'm still here:)
so, added the two lines (Y and Yen) to Prim.hs?
as list-associative OPs 06:43
nothingmuch doing now
unicode inline?
autrijus they are of the op0 category
nothingmuch or should i put the code?
autrijus \000 etc for now
nothingmuch should look at what | et al do? 06:44
autrijus aw. never mind.
just use utf8 ;)
time to bite the bullet
anyway. so as listOps they take a list.
nothingmuch the bottom of Prim.hs is percedence order , right? 06:45
autrijus no...
nothingmuch or can i just slap it anywhere?
autrijus precedence is now in Parser.hs
we should unify them
but not for 6.0.11
nothingmuch ok
autrijus you can slap it anywhere you feel like
nothingmuch \\n List listY(List)\ 06:46
?
\\n List listĀ„(List)\
seems like hypers use utf8
autrijus I'll handle Parser 06:47
right just use utf8
Y and Yen are now parsed. 06:48
now just hook them to your "zip" op0
nothingmuch op0 "Ā„" = return . VList . concat . transpose . map vCast?
autrijus and that should be all.
nothingmuch looking at op0 ",", sort of
autrijus op0 "Y" = op0 "Ā„" 06:49
that's all
nothingmuch is my solution OK?
or should I revert to the old?
autrijus does transpose stop whenever the shorter list stops? 06:50
nothingmuch no
it does the right string
thing
autrijus yay.
nothingmuch adding 'import List'
it's very pretty
autrijus nono
in Internals
nothingmuch so List.transpose?
autrijus line 74 06:51
add "transpost" there
add "transpose" there
and just use transpose without extra "import List"
wow. transpose is really Just The Right Thing 06:52
I think that's all it takes.
nothingmuch having trouble with op0 patterns 06:54
jabbot pugs - 636 - * infix Y is now parsed; listOPify thing
nothingmuch op0 "\194\165" = ...
op0 "Y" = ...
autrijus does it not work? 06:55
nothingmuch no
Warning: Pattern match(es) are overlapped
In the definition of `op0': op0 "\194\165" = ...
autrijus it's not fatal 06:56
just commit it and we'll deal.
nothingmuch one second
running tests
tests are not passing 06:59
autrijus and i know why 07:01
luqui broke list assoc a while ago it seems
fixing
fixed. 07:02
up to r637
and things should work.
nothingmuch Fail: cannot cast as Str: VError "unimplemented listOp: \194\165" (Val (VList [VInt 0,VInt 4,VInt 2,VInt 6])) 07:03
ingy hola
nothingmuch hola ingy
why does it want a str?
jabbot pugs - 639 - * save a pattern match 07:04
pugs - 638 - Converted pa01 to kwid.
pugs - 637 - * resurrect list-associativity evaluatio
ingy oh nice
638 was me of course
autrijus nothingmuch: try Y first? :)
ingy: woot!
now we need to talk a bit about doc/ vs docs/ :) 07:05
nothingmuch pugs> (1,2) Y (3, 4)
*** Error: "unimplemented listOp: Y" at (1, 2, 3, 4)
ingy we need those kwid tools
autrijus aww you killed 01Overview.html!
people are linking to it :-/
ingy I have to tune out. see y'all tommorrow. I plan on working on the Kwid ext
autrijus: undelete it 07:06
autrijus ok.
ingy I just didn't want skew
nite all!
autrijus nite!
thanks ingy! 07:07
nothingmuch: weird. that error only happens when there is no "op0 Y"
nothingmuch hmm 07:08
is it related to:
src/Prim.hs:22:
Warning: Pattern match(es) are overlapped
In the definition of `op0': op0 "\194\165" = ...
autrijus maybe. comment out the 194 part? 07:09
nothingmuch op Y only now
autrijus yup
nothingmuch not working 07:12
autrijus commit? 07:13
I'll see
nothingmuch ok
jabbot pugs - 641 - * fix typo 07:14
pugs - 640 - undelete
nothingmuch 642 07:15
autrijus looking 07:16
ahh. 07:17
you shoulve'added it _before_ "op0 s"
because "op0 s" is the base case.
nothingmuch heh
i think i did something naughty in line 74 07:18
ok, something is starting 07:19
autrijus r643 fixed
nothingmuch it is giving the first array 07:20
@a Ā„Ā @b Ā„ @c -> @a
autrijus fixing 07:21
I see. it's already flattened when it's passed in.
lightstep notes that -Wall actually warns now 07:22
nothingmuch ?
autrijus lightstep: 6.4?
lightstep 6.2.2
autrijus what warning?
nothingmuch good morning, lightstep
lightstep g'morning
we're UTC+2 07:23
clkao autrijus: where's your xcin25-utf8 port?
nothingmuch sorry about 74, autrijus!
autrijus fixed! 07:24
jabbot pugs - 644 - * unnaughtify lien 74
pugs - 643 - * fix ordering; better debug msg for uni
pugs - 642 - Attempt at Y and yen operators
autrijus clkao: wagner.elixus.org/~autrijus/xcin-u...rts.tar.gz
nothingmuch i think tests 2, 3, 5, 6 should pass
8, 9 - wrong value, but not the current wrong value 07:25
lightstep the case in readVar (at AST.hs) ignores the possibility of symExp not being a Val
nothingmuch it'll yield 0, 2, 1, 4, 6, 3, 5, 7, instead of 0, 1, 2, 3, 4, 5, 6, 7
clkao cheers autrijus
nothingmuch i'll test for that
err, well, it is tested for, actually 07:26
actually there's no real room for improvement
autrijus r645, fixed!
nothingmuch what was the diff?
err, same results 07:27
ahg 07:28
wait
zip of two arrays seems to be sort of working 07:29
my @y; eval '@y = (@a Ā„ @b) Ā„ @c';
@y eq @a Ā„ @b
maybe it's a parsing error
my @y; eval '@y = (@a Ā„ @b)'; 07:30
todo_is(~@y, ~@e, "also with yen char");
autrijus not an error!
assignment = := ::= += **= xx=
list item separator , ōæ½xA5
nothingmuch ok 2 - also with yen char # TODO
autrijus see, Y is lower than = 07:31
nothingmuch oh!
crap
why the hell is that?
nevermind
nothingmuch hates it when assignment is higher percedence than things you do
i'll fix the tests
autrijus ok. 07:32
brb
nothingmuch hmm
jabbot pugs - 646 - Fix test due to Y/= prec issues, and unt 07:34
pugs - 645 - * fixed op0 parsing... this broke some t
nothingmuch with 3 parms it does not work
that is now a bug in the impl
lightstep why does yen stand for zip? 07:35
nothingmuch because it looks like a zipper
=D
ride is 07:36
lightstep do i have to cd to the Test.pm directory to run the tests? 07:38
autrijus lightstep: no, just make install 07:43
or set PERL6LIB
lightstep thanks 07:46
lumi There's a hash stringify test that fails because of precedence 07:49
Ghh, or I'm wrong 07:50
autrijus whoa. our new committer, asavige, is pure genius 07:52
autrijus running his wagner.elixus.org/~autrijus/saturn.perl 07:53
lumi I'm wrong, itfails because of junction eq? 07:55
autrijus a sec :)
obra um. er. fear. 07:56
planet6
autrijus obra: did you run it with perl5?
obra I have not yet. should I? 07:57
autrijus sure!
please do so.
obra oh.
wow
autrijus sheer genius 07:58
obra That's insane
does it work in perl6?
autrijus perl6 will have much more insane obfus
;)
(no)
obra heh
lumi Something really broken with junction comparison? 08:02
'5 == (5 | 6)' evals to false 08:03
obra -> sleeep
autrijus I'm fixing them, lumi :)
lumi I could write a test.. 08:04
autrijus r647. 08:05
lumi: should be fixed now 08:13
jabbot pugs - 647 - * revive list-based listops 08:14
nothingmuch so... 08:23
autrijus so, 2 tests are failing
# got: '0 2 1 5 3 4'
# expected: '0 1 2 3 4 5'
both reads that
you have time to investigate?
or should I?
nothingmuch i will try
but that i think it's beyond me 08:24
autrijus okie. I'll work some more toward 6.0.11 releng.
ok, I'll do that too :)
nothingmuch i'll keep trying to grok it
and ask questions
and in the end i'd like to know what went wrong
for starters: what is mapM doing in that example?
autrijus k.
nothingmuch ensuring that all elems are extracted in order?
and elem extraction: 08:25
is that the actual array refs?
autrijus mapM fromValue 08:26
fromValue is the monad version of castV
castV can't read from mutable variables or references to them
fromValue could
mapM fromValue is like map castV
I need to find more food.
will be back in a bit. 08:27
nothingmuch phew 09:06
ok, back to pugs 09:07
ok 09:17
back again
and looking at it i see:
@a Ā„Ā  @b Ā„ @c makes sense in the way that (@a Ā„Ā @b ) Ā„ @c should
pugs> (0, 4) Y (2, 6) Y (1, 3, 5, 7) 09:20
(0, 1, 2, 3, 4, 5, 6, 7)
pugs> (( 0, 4) Y (2, 6)) Y (1, 3, 5, 7) 09:21
(0, 1, 2, 3, 4, 5, 6, 7)
that makes sense
but without grouping it should be per n arrays, not per 2 arrays N times
autrijus: so how do we make the first Ā„ be the actual op, and the subsequent ones more like a , argument to it? 09:22
autrijus nothingmuch: fixed! 09:29
list assoc redistirbution was still looking for args
instead of invs
and it's now all invs thanks to luqui
so that's fixed
now of course ((a Y b) Y c) breaks
we can work around it by decreeing () is a special construct "Paren" 09:32
or by truly implement the listop parsing foo in Lexer
the latter is of course the way to go
but I don't think it's release-critical for 6.0.11.
so, anyone got any pet things that needs to go into 6.0.11 before I start releng? 09:33
nothingmuch umm 09:34
not me
autrijus perlbot: seen stevan 09:35
jabbot pugs - 649 - * list association redistribution now re 09:38
pugs - 648 - -c now mimicks perl5's -c behaviour.
Khisanth blind bot!
autrijus bbiab. & 09:40
nothingmuch autrijus: is (@a Ā„ @b) Ā„Ā @c a bug or todo?
autrijus it is a todo. 09:41
nothingmuch ok
autrijus it's a lexer todo, to be specific.
vladtz now that Y works I noticed a FIXME in given.t, can I send it to someone? 09:45
lumi There's a typo on the --help 09:47
"it's" should be "its" 09:48
vladtz in zip.t it says: zip(@a;@b), should not the ; ba a , ?? 09:51
Synopsis syas ,
S03 says , S04 syzs ; which one is correct, semicolon looks odd to me 10:12
tiw d 10:15
perl 5 style sub seem do not work 10:16
nothingmuch vladtz: luke palmer says it needs to be ;
tiw sub s{say $_[0]; say $_[1];} just print the first arg. 10:18
vladtz OK, more reason to use Y 10:19
nothingmuch uhuh =)
vladtz: r650 makes given.t use Ā„ 10:21
tiw: do you know if that's tested?
tiw i didn't find it in test
nothingmuch i'll try to write it
basically:
my @result; sub s { push @result, $_[0]; push @result $_[1] } 10:22
s(<foo bar>)
vladtz Oops, I menat: I did the fix, not fix it :-(
nothingmuch todo_is(@result, <foo bar>, "...")? 10:23
oops! sorry...
in that case
sign up for rt.openfoundry.org access
and become a comitter
tiw ok, i will do it 10:24
jabbot pugs - 650 - Use yen operator to simplify testing 10:27
clkao yen operator 10:29
nothingmuch clkao: huh? 10:30
theorb Morning, all. 10:32
nothingmuch hola orb 10:33
theorb desert-island.dynodns.org/perl/prims.html should now be up-to-date. 10:38
nothingmuch theorb: i can't do a proper lookup on that 10:42
is the TLD correct?
theorb desert-island.dynodns.net/perl/prims.html should now be up-to-date. 10:43
You'd think after all this time, I'd remember what the TLD is.
Perhaps I should just get a dynodns.org account additionally.
nothingmuch wtf? 10:44
left-associative infix
List
zip
(
List
($List zip $List) zip $Lis
theorb \\n List left zip (List)\ 10:47
There's some that are known wrong... but that's not one of them... that's a very odd definition line. 10:48
nothingmuch blames it on autrijus
*shrug*
theorb BBIAB. 10:55
tiw i have change subroutine.t : -plan 12; 10:58
+plan 13;
sub foobar ($var) {
return $var;
@@ -70,3 +70,11 @@
is($_, "-wibble-", 'sub closures close');
$_ = $block.();
is($_, "-quux-", 'block closures close');
+
+my @result;
+sub perl5sub {
+ push @result , $_[0];
+ push @result, $_[1];
+}
+perl5sub(<foo bar>);
+todo_is(@result, <foo bar>, "use \@_ in sub");
is this ok?
nothingmuch perlbot nopaste? 10:59
perlbot Paste your code here and #perl will be able to view it: sial.org/pbot/perl
nothingmuch you should use that normally
now i'll read through
it looks good, tiw
tiw thanks
nothingmuch only id use single quotes
'use @_ in sub' 11:00
do you have commit access?
ooh, we're going out to lunch, appearantly
tiw i hava sign up in rt.openfoundry.org
Juerd [perlmonks.org/index.pl?node_id=439079|That time of the year again!]
nothingmuch tiw: so you can just type 'svn ci t/op/subroutine.t' 11:01
and type in your login/password
tiw ok, i do it
nothingmuch or wherever subroutine.t is
great!
see you guys later
lunch &
tiw KVIrc 2.1.3 'Renaissance' 11:13
pasteling "tiw" at 85.74.5.210 pasted "a test ignore it" (1 line, 16B) at sial.org/pbot/8138 11:20
Someone at 85.74.5.210 pasted "another test, please ignore it" (80 lines, 1.6K) at sial.org/pbot/8140 11:36
tiw Problem about commit access: i can login rt.openfoundry.org, but can not commit file with svn :( 11:44
12:01 Aankh|Clone is now known as Aankhen``
nothingmuch tiw: what error do you get? 12:14
castaway_ waves at nm
nothingmuch hola castaway_!
12:15 castaway_ is now known as castaway
castaway (bah) 12:15
nothingmuch ate about 2.5 liters of salad
castaway saladcomes in liters?
nothingmuch well, it's harder to estimate the mass/weight
castaway true
nothingmuch i think it was around 1 kilo
castaway excet that a liter is 1kilo weight.. so that must have been 2.5Kg 12:16
nothingmuch well, if it were that dense, maybe 12:17
but there was some grated salty cheese
which is more volumenous than it's normal form
and lots of lettuce
and onions, in rings, which is not a dense form
cucumber and tomatoe are probably .9x mass/volume of water in the shape they were there 12:18
and lots of yellow pepper
maybe a little less
maybe it was more than 1k
i think it's more logical that it was less than 2.5l
given the size of the bowl, and the size of a 0.5 liter bottle of water before me it seems to make more sense 12:19
anywho...
tiw: please mention my name if you reply, the IRC window will probably be in the bg, and mentioning me will cause it to popup
ciao!
tiw nothingmuch: something like: svn: MKACTIVITY result ?/pugs/!svn/act/8e13e8ea-2ff2-0310-80ad-e9d419cfe8d5?: fail authorize (svn.openfoundry.org) 12:28
nothingmuch hmm
what is your login? 12:29
to rt?
tiw nothingmuch: you mean my login name? tiw
nothingmuch ah 12:30
it's not listed in the project staff
err, get hcchien, autrijus or bestian to invite you
tiw just ask them to do that? 12:31
nothingmuch this will probably be done immediately once one of them wakes up
yes
nothingmuch thinks that more inviters/project admins should be made
to cover more time zones
luqui and ingy would probably be willing and trusted
nothingmuch nominates
tiw i see, thanks. Are you in Eu? 12:32
nothingmuch i'm from israel
so time zone wise, you could say i'm from eastern europe
nearly the same longitude as moscos
w
tiw i'm in German 12:33
we are closer as autrijus 12:34
autrijus greetings /\/\s 12:59
S29++ # jfdi 13:00
nothingmuch autrijus: open up commit access for tiw 13:02
tiw autrijus: can you add me to the project list?
autrijus sure sec
nothingmuch so that it is not limited to a certain time zone's day 13:03
daytime
and also, please consider letting people like ingy and luqui and maybe someone from europe the ability to do this
autrijus sure.
will talk about that on yapc::taipei 13:04
nothingmuch goody
autrijus tiw: welcome aboard
nothingmuch Juerd will probably be willing to do it too
he is from nl
tiw autrijus: thanks
nothingmuch so i think that covers everything
wtf is s29? 13:05
and also, autrijus++ for fixing last two tests in for.t 13:06
theorbtwo Allo, autrijus. 13:07
autrijus yo theorbtwo
theorbtwo Have you seen desert-island.dynodns.net/perl/prims.html ?
jabbot pugs - 651 - add a test for using arguments with perl
autrijus yes I had.
you++
I wonder if you can massage it into proper perl6 sub signature 13:08
theorbtwo I rather wonder as well.
But I think I want to try to get it to know the precidence order first, which I'm not sure how to do. 13:09
autrijus you look at Parser.hs table.
theorbtwo Right, but how do I get stuff out of there? 13:10
ghci won't even show it, because it's not in the Show class.
autrijus from line 456 on 13:11
you can just slurp them into a string
and parse them as a string ;)
wouldn't be hard ;) 13:12
theorbtwo That's what I'm doing with Prims.hs now.
autrijus sure. it's good enough for booting.
theorbtwo I was worried if that was all of them, though.
autrijus once you have proper signatures
then well, we can use that for the table instead
theorbtwo And what the "Not yet transcribed" comment means.
autrijus and all will be joy
theorbtwo Oh!
I see what you mean now.
I was just thinking of this in terms of a reference. 13:13
autrijus oh. "Not yet transcribed" means that the things below is now yet transcribed to proper perl6 sigs!
theorbtwo Aaah!
autrijus i.e. that comment means "theorbtwo was not here"
or something.
theorbtwo Heh.
autrijus so the idea is to take that table and primdecl 13:14
and generate things in builtins.pod format
or an equally good format
kind of like a .h file
err builtins.kwid
and then use _that_ to generate decl and prec
and throw the old things away.
that way we can kill the adhoc decl parser 13:15
and use the same parser as the one we use to parser userdefined routines.
I hope I'm making sense :)
theorbtwo I think so.
You want to convert the existing lists of primitives into standard perl6 sub declarations.
Then implement them with inline haskell or something, and consider that file implicitly used. 13:16
Hm, possibly not inline haskell, since eval STRING would be hugely impure.
Inline AST, then. 13:17
This, and my AUTHORS script, are currently rather ad-hoc perl5 -- is there anywhere they go in the repo?
autrijus put them to utils/
mk a new dir 13:18
theorbtwo Cool.
Working on one of my other projects for a bit, though.
autrijus that's fine. take yer time :)
ooh. 13:24
=begin testing method after othermethod Some::Class 25
(supposedly new Test::Inline syntax)
ingy: inline FITish things in kwid makes sense to you?
nothingmuch Test::Inline gives me the creeps
reduces readability by a lot 13:25
since you have to skip, and skip, and skip, and skip
and you can't organize tests well
autrijus unless your editor has folding...
nothingmuch mine does
but i never get along with it
autrijus oh. folding++
nothingmuch i might be retarded though ;-)
autrijus likes folding.
rgs likes folding too, but almost never uses it :( 13:26
autrijus hi rgs :)
nothingmuch will perl6 support non upwards flowing ranges?
i usually like to say @a[2 .. -3] 13:27
but can't do it
since it makes no sense
except that it does
rgs I think that python supports that
yup, it does
>>> x = [1,2,3,4,5,6,7,8,9,10] 13:28
>>> print x[2:-3]
[3, 4, 5, 6, 7]
nothingmuch 2 1 0 -1 -2 -3
and if not in the context of array subscripts, i'd like it to do something like:
because that's also sometimes useful
and reverse(-3 .. 2) is just, err, unnecessary
rgs I don't think so
but I'm not familiar with Perl 6 slice notation
autrijus haskell has it as 13:29
[2,1 .. -3]
which I really like, but won't work in p6
nothingmuch why not, actually? 13:30
as a special case?
autrijus no, because it conflicts with splice syntax 13:31
@array[2, 1..-3]
rgs what's the splice syntax ? 13:32
autrijus s/splice/slice/
@array[2, 1..-3] # means @array[2], @array[1] ...
so can't steal the comma to mean step-by
so in p6 it is 13:33
@array[1..-3:by(-1)]
not very sexy
but works
nothingmuch which is actually 1 0 -1 -2 -3?
autrijus aye
to get 2, use
@array[1^..-3:by(-1)]
nothingmuch so how do i do something like: 13:34
rgs hmm, and to get what python does ?
nothingmuch (isn't that 0?)
[1, 2, ... , -4 -3]?
autrijus oh. sorry. that will start from 0.
rgs yes. Lazy extensino
autrijus [1^..^-3:by(-1)] ?
nothingmuch nay nay 13:35
rgs ^-3 ? this confuses me
autrijus oh never mind
I was misparsing you all along
nothingmuch i mean where -3 is really (+@a - 3)
autrijus right right.
rgs thinks his brain begins to be python-infected
autrijus sorry
nothingmuch [ 1 .. (+a - 3) ] <-- this does it
but i'd like 1 .. -3 to dwim
autrijus yeah but that's sad
according to lwall the range constructs a range object
so maybe range object behaves weirdly in a slice context. 13:36
weirdly as in dwimmy.
nothingmuch hopes that is the case
autrijus not seen it raised before.
throw it to the snake pit that is p6l?
rgs :))
nothingmuch @a[0 ^.. -Inf] == reverse(@a)
=D
autrijus yow =D
-Inf, oh my
woot. I lured Alias into committership. 13:43
PPI-based p5-to-p6 13:44
I think is very feasible.
theorbtwo Great! 13:45
rgs larry doesn't seem to think so
autrijus he base it on 90% mark. 13:46
I'm happy with 50%.
and lots of runtime magic.
theorbtwo Pretty much anything is better then 0%.
rgs larry wants 100% :)
autrijus I think the idea is more of a partial recompilation/reparse
i.e. PPI gets the tokens in place
rgs PPI is already very good
nothingmuch rgs: 100% is ponie, i think
autrijus and we can selectively reparse p5.
that way we can put more burden in the runtime helper libraries 13:47
rgs nothingmuch: no, ponie is more than 100% : it ports XS too...
autrijus instead of on the parser at once
rgs: only perl parses Perl
rgs autrijus: that's larry's plan.
autrijus so anything not based on perl trunk is, by definition, broken
but I can very well live with that.
rgs anyway we'll see what larry comes up with 13:48
autrijus I don't really care about having to write in some more streamlined (i.e. always use strict)
fashion in order to be fed to p5top6.
in that case PPI+Parser/Perl5.hs is Good Enough (tm)
theorbtwo I'm certainly fine with that provision. 13:49
autrijus anyway iff alias is interested, we'll figure something out :)
theorbtwo I would think B::-based translation makes more sense, though.
autrijus aye. that is another route.
but that means we'll probably have to emulate all the p5 runtime OPs. 13:50
whilst with PPI we can operate at a coarse-grained level
but it's all handwaving before alias hops here and starts coding :) 13:51
theorbtwo Oh, I meant something like a B::Deparse that output p6 code rather then p5 code.
Steve_p heh
rgs theorbtwo: B:: lose info about BEGIN blocks and other stuff
theorbtwo Possibly calling functions in Perl5::* instead of builtins, at least in some cases.
autrijus theorbtwo: sure, but the B::* backend operates on p5 op level
Steve_p like constants
autrijus including all its stack semantics
rgs actually larry is patching perl 5 itself to produce perl 6 code 13:52
autrijus which is the Correct layer.
why go above the reification layer when you can instrument the runtime?
and I'm sure larry is the best one to do that
rgs I had, 2 or 3 years ago, the idea to modify the output of perl -Dp, to get it machine-parseable
autrijus he wrote all of it anyway :)
rgs -DpT even
autrijus <- mucking with perl5 OpTree != my forte
rgs and that's basically what larry does 13:53
autrijus nod.
rgs autrijus: you know me, I like mucking with optrees :)
autrijus that's why we pay you Big Money and make you the pumpking! :)
rgs Big Money ?
autrijus like, 0e12 or something :)
Steve_p perlbot, Nicholas? 13:54
rgs so far I only had a couple of beers :)
which I'm very grateful for
hi Steve_p 13:55
Steve_p hi rgs :)
perlbot doesn't say the right response yet ;)
rgs heh 13:56
rgs out to lunch &
jabbot pugs - 652 - Adding Algorithm::Dependency for porting 13:57
13:58 safrican_ is now known as safrican
autrijus I asked alias to hop in here soon 13:58
Alias_ dum de dum
autrijus the plan is to gradually p6ify Algorithm-Dependency
oh. hi!
Alias_ As the log message says, it's reasonably large, a little trick, and has no external dependencies whatsoever 13:59
s/trick/tricky/
autrijus Alias_: so I trust the A::Dep doesn't really need external deps
yup.
Alias_ Nope
autrijus and has well-defined tests.
Alias_ It's a "green box"
autrijus so, ideal for p6ification
Alias_ yep
Shitloads of tight testing, and no deps
autrijus whose code was it? 14:00
I see you're listed as the "maintainer"
Alias_ oh... I tag that on everything
in case there are two authors
Most of that stuff is automated these days 14:01
Got sick of maintaining janatorial stuff for 60 modules
:)
autrijus har :)
can you write a call-for-p6ifier announcement on p6c?
rgs Alias_: btw, side note : if you like dependency solvers, you should have a look at smartpm.org/
autrijus that will likely help to draw in additional people to work on p6ification :)
rgs really off now &
autrijus Alias_: i.e. extoll the virtue of this green box thing :) 14:02
theorbtwo "green box"?
Alias_ modules on my big module dep graph get coloured green when they have no non-core deps
autrijus theorbtwo: no external dependencies; tightly tested
genuinely useful 14:03
(for many things)
and small enough :)
Alias_ ironically doesn't support versioned dependencies :)
... yet
autrijus it's the same virtue as Locale-KeyedText really.
p6c's posting address is [email@hidden.address] and subscription address is [email@hidden.address]
it's not as high-volume as p6l :) 14:04
Alias_ eep, wrong window :)
I'm on enough mailing lists thanks :)
autrijus you can post without subscribing and tell people to cc you if they have questions, then.
theorbtwo There's an NNTP server that's nice for occasional reading. 14:05
autrijus if you really don't want to do that I'll try posting for you, but that is not as convincing :)
metaperl I was able to post via nntp.perl.org 14:06
without joining p6c or p6l
metaperl hugs Gnus
:)
autrijus that... works too :)
Alias_: can PPI serialize to something else than perl code or internal data structure dumps? 14:07
Alias_ I you want
If you want
autrijus instrument PPI::Dumper?
the first step is to for haskell to load PPI dump tree 14:09
we can certainly write a custom p5 dump parser
or yaml parser
Alias_: will it be lossy if we instrument PPI::Dumper to dump yaml? 14:10
i.e. is there self-cyclic blessed substructures?
if not, yaml may be the best way
nothingmuch just spend 30 minutes going through a 50 line perl file 14:11
reading every char
Alias_ p6c email sent
nothingmuch 100 times at least
trying to figure out where the fscking bug is
autrijus p5 source -> PPI -> PPI::Document yaml -> Yaml parser -> Haskell YAML AST -> Pugs AST -> runtime
nothingmuch when it turns out the CSV excel imports is just bad
and the input is really at fault
Alias_ PPI::Document is non-cyclic
autrijus woot!
good good 14:12
nothingmuch i think microsoft owes me about 100 hours of my life, and I don't even work on windows
Alias_ Theres a %PPI::Element::_PARENT hash that does refaddr-indexed upward refs
nothingmuch Alias_: i think refaddr is flakey on 5.9
i tried using it a while
autrijus will check w/ ingy when he's up.
nothingmuch but stuff got a bit fooey
autrijus now really food. &
nothingmuch so i wrote Tie::RefAddr::Weak to complement Tie::RefAddr
otherwise, just use overload::StrVal 14:13
scw Hi, pugs now view '(say "something" if 1)' as valid expression, but should it?
Alias_ autrijus: in fact, it should dump to YAML quite normally 14:14
nothingmuch scw: i think autrijus is keeping it as long as larry doesn't say to remove it
scw Oh, so it is already on mailing list? sorry for not checking mal^Hil these two days :) 14:18
Alias_ autrijus: OK, gotta run, tired. But for the record, if you simply throw a PPI::Document object at YAML, it should dump cleanly. The rest is up to you :) 14:56
autrijus scw: no, it's only in #perl6 I think; nobody bothered to check p6c 15:59
scw: you can certainly ask on p6c; that may help
nothingmuch blackout in -1 minute 16:00
nothingmuch wonders if they can shutdown all the machines in time
jabbot pugs - 653 - * GHC 6.4 compilation sanity; more relen 16:07
autrijus hi ingy!
ingy hi autrijus
good things are happening I see 16:08
autrijus yuppers
hcchien new module in repository. :) 16:09
rgs notices Data::COW
ingy hi hcchien 16:10
hcchien ingy: hola 16:11
ingy Algorithm-Dependency is Perl5? 16:12
why is it in modules?
autrijus ingy: because I invited alias to check in 16:13
and try to do it piecemeal
instead of only check in after it's all p6ized
alias posted to p6c talking about that.
it will take some time to get thru.
it has no deps, and tests are well-covered
so I gather it makes sense to do a free-for-all p6ization in modules
just as a social experiment.
ingy ok 16:14
autrijus (modules/ is not installed anyway)
ingy sure
lightstep Makefile is now broken (8 spaces instead of a tab) 16:15
ingy I am torn on whether to work on a perl5 or haskell kwid parser today...
autrijus lightstep: aw. my bad.
fixing
lightstep: or can you fix it real quick?
lightstep i don't know makemaker
ingy I can do it
autrijus ok. will do
ingy++ 16:16
I'm working on changelog.
ingy wow. all tests passing again 16:23
is a realease imminent? 16:24
autrijus it is... but I made tests pass by implementing them
not by TODO them.
a release is due in an hour
theorbtwo Oh, I should put my p5 scripts in the repo, then. 16:25
autrijus theorbtwo: right, until/ 16:26
err
util/
jabbot pugs - 654 - Somehow tabs got changed to spaces in Ma 16:27
pugs - 655 - Rather ad-hoc p5 scripts to make a HTML 16:37
autrijus theorbtwo++
(!) 16:38
# fixauthors.pl
somehow gugod appeared twice in AUTHORS.
theorbtwo Oh, odd. 16:39
With different romanized names.
But the same Han name.
autrijus what's with the irc nicks? 16:40
looks weird
lightstep why isn't AUTHORS edited manually? isn't there a closed group that grants contributorship? 16:41
autrijus lightstep: syntax error, I can't parse that questions
ingy autrijus: I think perl6 should install html docs instead of just man pages 16:42
rgs ponders switching to UTF-8 for perl 5's AUTHORS file
lightstep if "author" is same as "contributor", and contributors are added manually to the system, why isn't AUTHORS updated manually too?
autrijus ingy: I happen to agree.
ingy I'll work on the doc fu today
autrijus lightstep: AUTHORS is updated manutally. 16:43
that script just fills in metadata from cpan.
lightstep oh
theorbtwo James "theorbtwo" Mastros is the normal way of writing nicknames with proper names, at least in English.
Could have added a column just for it.
autrijus okay. what if the nick agrees with cpan id?
theorbtwo Or switched to something like linux's AUTHORS format.
Then I left it out. 16:44
autrijus what is the linux author format?
theorbtwo Each person gets a \n\n-seperated stanza, with each line having a single-letter prefix for the data-type.
autrijus hm, ok. 16:47
xerox autrijus, what parser do you use in pugs?
autrijus xerox: src/Rules/
jabbot pugs - 656 - * correct some AUTHORS misentries
autrijus err, src/Rule
which is based on parsec. 16:48
theorbtwo: ok. I think that works better. you want to hack toward that?
I'll use your current format for 6.0.11.
theorbtwo Nod. Will in a while; going to get back to my book.
xerox theorbtwo, reading or writing it? :D 16:50
theorbtwo Reading it.
xerox hi nothingmuch :D 16:51
theorbtwo Star trek: Stargazer: Oblivion.
nothingmuch hi xerox, all!
theorbtwo Hi, nothingmuch. 16:52
nothingmuch can only remember really having liked one sci fi thingy... the 5th element
lumi Hi nothing
nothingmuch and scifi is not it's point =)
lumi Well, it was good
nothingmuch everything else I tend to look over again, and, err, not appreciate as much 16:53
ingy autrijus: I think ActiveState does lib/bin/man/html for install, so I'll copy that style
autrijus ingy: also did you read about my reservation for having a core doc/ location?
it's not proper module style
lightstep is Alan Sung gone?
autrijus lightstep: he is Chen-Lung Song on cpan 16:54
the cpan name is considered canonical
Cheng-Lung Song, even
ingy I don't get it?
s/?//
autrijus ingy: ok. CPAN modules don't have doc/
if they have pod, they put it in lib/
ingy true yes
autrijus so doc/ is a p5 core special case
well I hate that special case
because it complicates matters 16:55
ingy I never suggested doc/ in modules
autrijus I love your idea that the core should not have modules of its own
everything should be in ext/
ingy only in top level to match perl core pod/
autrijus formatted like true modules
in that sense, I propose that we split all the docs into ext/*/doc
or ext/*/kwid/
or ext/*/whatever/
instead of a toplevel doc/ 16:56
ingy fine
autrijus so perlkwid.kwid really belonds to ext/Kwid/
etc. that has a good effect of making the core "merely a bundle"
ingy I see, because you want to continue thinking of pugs as simply a Perl5 module :P
autrijus which is what I've wished all along
no, I want to think pugs as a simple perl6 runtime :)
i.e. I want perlkwid.kwid etc be shared among perl6 environments.
even if pugs ends up becoming the only perl6 implementation, it also has the good effect of cleaner layout 16:57
versus the sick special-casing of doc => lib/pod/
which is sick sick sick.
jabbot pugs - 657 - * more fixes to AUTHORS
cls_bsd oh great!! 16:58
ingy putting perlkwid.kwid in ext/Kwid makes little sense to me. how about ext/doc 16:59
there are 108 perl*.pod that need to be integrated 17:00
plus more I'm sure
you want a module for each of those?
autrijus I'm not even sure that we want to keep this perl*.kwid format :) 17:01
ingy ?
jabbot ingy: ōæ½xACOōæ½xB3oōæ½xBCĖŖōæ½xB1ōæ½xB6ōæ½xDC? o_oa
autrijus never mind.
I was thinking along the lines of "pugsdoc Kwid::Syntax"
ingy sure
autrijus because perlsyn etc is now called synopses
so the 108 things can really be integrated along the 17:02
ext/Synopses/
ingy of course that will be in ext/Kwid
autrijus etc lines.
I don't think we want to transliterate the perl*.pod just now.
but if that is the case, sure, ext/coredocs/ or just ext/doc/ makes sense.
ingy ok
I'll work on it. we can always refactor 17:03
autrijus I think we keep it simple for now.
yeah. thanks! ingy++
theorbtwo ext/Perl6/Apoclypse01.kwid ?
autrijus something like that, yes
ingy gotta run&
autrijus ext/Pugs/Apocrypha01.kwid
ext/Apocrypha/01Overview.kwid
etc etc.
it's all negotiatable :) 17:04
ingy I'll start with ext/Apocrypha
oops
gotta run&
autrijus ok, and move the two doc/*.kwid into it.
uh. ok. run then
I'll move it myself :)
lightstep isn't it ext/Pugs/Apocryphon01.kwid ? 17:05
autrijus it is. 17:06
unless it is ext/Pugs/docs/Apocryphon01.kwid
or ext/Pugs/lib/Apocryphon01.kwid
I am not sure we want to split lib with docs.
I kind of like perl5's treatment of making those two under lib/
what do you think?
since ingy is away I'll move it myself now :) 17:07
pasteling "gugod" at 61.64.173.217 pasted "Tibeten characters" (1 line, 29B) at sial.org/pbot/8143 17:11
gugod autrijus: can you see those characters ? I have a unicode_varnames.t ready
that's 123456789 in tibeten :P
nothingmuch gugod: please checkin, i'd like to contribue hebrew =)
the Ord haskell class if a class of types whose values have some kind of order?
gugod alright 17:12
theorbtwo I see them.
lightstep nm, yes
theorbtwo Yeah, nm.
gugod just wondering if perl6 should handle complex combining characters as varnames
nothingmuch huh?
gugod: as I understand it, it should 17:13
gugod that sounds awesome
theorbtwo gugod, IIRC, Larry said somewhere that it considers them as a sequence of unicode characters -- that is, it will, iff they're always written the same.
autrijus gugod: sure, it should. make judicious use of eval"" and todo
and have fun
gugod I committed 17:14
theorbtwo Add a check with a unicode sub name there as well?
nothingmuch err, it doesn't compile 17:16
should it?
or is it untested? 17:17
jabbot pugs - 658 - unicode variname name
autrijus greetings ati 17:19
gugod should I make them all inside eval() so that those ok() can all be invoked ?
autrijus gugod: give me a min 17:20
nothingmuch gugod: i'm fixing as we speek 17:21
speak
i have a version that passes 17:22
and also tests hebrew
and english
and umlauts
and french
and arabic
that's as much as I can type
lightstep what about malformed codepoint sequences?
nothingmuch lightstep: i think that's a file corruption error, perhaps
not even syntax 17:23
autrijus yup.
17:36 lightstep is now known as lightstep_eating
jabbot pugs - 660 - rename because it should be more than ju 17:37
pugs - 659 - Some more varnames
nothingmuch autrijus: when are you going to fix $CALLER::POSITION? 17:40
autrijus nothingmuch: I'll look at it now
but I'm still in utf8
nothingmuch goody
autrijus most of your tests passes.
nothingmuch there's a test for it
autrijus I mean unicode.t
fixing the rest.
nothingmuch wonders whether to try things like sub Ļ€ { 3.141 } 17:41
sub Āµ ($x) { $x/1000 }
err, *
my $micro = Āµ$unit; 17:42
nothingmuch wants to port Data::Dimensions to p6
autrijus: t/magicals/caller_pos.t 17:43
autrijus danke.
nothingmuch happy
autrijus hm? :)
only arabic fails. 17:46
for some reason.
you sure the arabic is legal?
nothingmuch the arabic is crap
wilx Right to left issues? :)
nothingmuch i don't know it
i just opened the unicode palette
and stuck letters i sort of still remembered in 17:47
but IIRC arabic has no funny constraints
autrijus no, not RTL
nothingmuch wilx: it's all logical order anyway
and hebrew does work
autrijus I pasted from wikipedia
then it wors
nothingmuch ok
autrijus so I'll just assume your arabic was bad.
nothingmuch sorry =)
jabbot pugs - 661 - Add some subs, too, but not for the funn
nothingmuch is jabbot stealing the data from RSS? 17:48
autrijus ok, all passes.
yes.
nothingmuch because if it is, perhaps the rss feed should be made so it doesn't truncate...
autrijus I think the bot truncates 17:49
not the rss
nothingmuch my rss reader seems to have the same truncations
autrijus oh. hm.
it's clkao's baby. 17:50
btw, r662.
welcome to the age of unicode.
nothingmuch laa di daa!
nothingmuch wonders what damage this may do
theorbtwo The arabic might have contained chars that aren't legal in identifers, perhaps?
nothingmuch theorbtwo: perhaps 17:51
autrijus aw. I overwrote your changes.
nothingmuch given macros we couldl rename the entire language, right?
autrijus bad me.
nothingmuch and at the very worse, we could redefine the Perl6 grammer class
autrijus nothingmuch: can you repair?
nothingmuch noo!!! 17:52
oh my, what will i do!
autrijus just put some of the "sub" tests back
one or two would be fine.
sorry for that.
looking at caller position
nothingmuch no big deal =)
autrijus haskell++ # Char is unicode by default 17:53
so implementing that is piece-of-cake 17:54
I'm happy that
isAlpha
Just Works
without any complications
hurray for sanity!
Khisanth will perl6 be able to be "parsed" from right to left? :)
autrijus Khisanth: write a macro :) 17:55
nothingmuch ook
Khisanth awaits REALLY obfuscated golfing solutions
Juerd 14:08 < nothingmuch> Juerd will probably be willing to do it too
nothingmuch Juerd: tee hee
Juerd No, I'm taking no extra physical or psychological load
I'll sometimes be able to hack some tests or provide informatio 17:56
autrijus bad nothingmuch
Juerd But in general, do not count on me at all
autrijus "t/magicals/caller_pos.t at line 12"
should use $?FILE
because it's t\magicals\ on win32. :)
I fixed that
nothingmuch autrijus: ah
as soon as i get opendiff to work with utf8
i was thinking of $?PROGNAME
oh, goody =)
but that wasn't impl
i'll update,
Juerd: sorry! 17:57
Juerd: i was just sort of brainstorming about who is in europe, and sort of known by everyone
jabbot pugs - 663 - * use $?FILE not hardcodes
pugs - 662 - * utf8 support
nothingmuch how do i get see to save a BOM? 17:58
autrijus why do you want to save a BOM?
BOM doesn't make sense on UTF8.
nothingmuch to see if maybe opendiff will make sense
theorbtwo Sure it does.
Pretty good book, BTW. 17:59
autrijus what is the byte-order of utf8?
theorbtwo BOM is somewhat misnamed.
"Magic number" is what it is.
autrijus so "cat" will eat it?
if it doesn't, it breaks some important file assumptions.
namely, plain text should not require magic numbers. 18:00
theorbtwo Cat won't, but it won't eat any other sort of magic number either.
autrijus <- was biten by Notepad.exe too many times
theorbtwo Including UTF-16 LE and BE BOMs.
autrijus true.
if BOM is named "magic number"
I'll maybe see the use. 18:01
theorbtwo shrugs.
BOM should be considered whitespace.
autrijus # www.w3.org/International/questions/...8-bom.html
theorbtwo ...so it shouldn't matter that it's there, any way you slice it.
(It'll keep a #! from being seen, but that's not pugs's problem.) 18:03
autrijus \xEF\xEE\xBF#!/usr/bin/perl
eh. :)
nothingmuch heh 18:04
autrijus anyway, haskell groks BOM just fine.
so pugs did not do anything
and it's transparently working now.
which is fine; I'll keep it that way :) 18:05
nothingmuch hmm
tests are not passing, autrijus 18:06
see woobling.org
autrijus hm?
pardon?
nothingmuch the tests for unicode stuff
with sub calls, are not working 18:07
but neither are arabic, hebrew, etc
even though I svn upped
autrijus osx?
ghc 6.2?
nothingmuch uhuh
uhuh again
is it a notabug?
gugod wow, hebrew and arabic uncode varanme tests are so cool 18:08
right-to-left perl!
nothingmuch gugod: the really nice thing is that { } are displayed like } { when flowed in rtl text 18:09
so theoretically, if your keywords are RTL
or at least you have dir marks in your unicode
then your editor will display the control blocks correctly 18:10
autrijus gugod: does it work or not?
for you
tr r665
gugod trying 18:11
nothingmuch oi, what a nasty revision 18:12
ā€¢ [syeeda:/usr/local/src/pugs] nothingmuch % svn up
At revision 666.
autrijus ;)
nothingmuch no wonder we're having troublew
autrijus "6" means lucky in chinese.
and "66" or "666" means "things going really well".
nothingmuch well, it's meaningless for jews =) 18:13
autrijus CALLER_POSITION is so borked.
fixing
gugod now those latin characters in unicode.t passes 18:14
autrijus but not others?
gugod not Chinese / Japanese / Tibten /Arabic / Hebrew / Arabic 18:15
autrijus yow.
gugod oops, two Arabic
nothingmuch new unicode.t
autrijus platform specificism detected.
gugod oh?
nothingmuch crap, typo 18:16
that subcall reads rtl in see 18:17
fun fun fun!
jabbot pugs - 668 - err, id is zehut, not zehu in heb... =P
pugs - 667 - merge todo with subs, and add hebrew sub
pugs - 666 - oops, forgot to increase plan
pugs - 665 - * fix hyperop Prim
pugs - 664 - Japanese unicode varname test
gugod hmm 18:18
autrijus platform specificism detected.
err. sorry
nothingmuch ook, i zapped japanese
will remerge
gugod I'm a little confusd about how to read those hebrew tests 18:20
no, actually I'm /really/ confused now.
nothingmuch gugod: בא×Ø is bar
read it from ב
right to left
autrijus gugod: think classical chinese 18:21
nothingmuch since the sigil is in the context of my in the declaration, it is on the left of the hebrew
the rest is sort of confused in see
sub
לה
{};
1 18:22
that's the logical order
the second example is also sort of screwed up
except for זהו×Ŗ($בא×Ø)
ihb what's "לה"?
nothingmuch "laa"
which reads RTL pretty well
since זהו×Ŗ is the sub
and $בא×Ø is the var
and even the sigil is on the right that time 18:23
sadly so is the single quote ;-)
the arabic reads ok 18:24
'my $'
then start reading from the comma
ihb so, in perl 6, can i write source code from right to left?
nothingmuch rtl
arabic = 2; $arabic
', 2
you are now back in the 'my $' sigil
continue to "evaluation"
ihb - it's all logical order, so it doesn't matter
it is written from begining to end =)
jabbot pugs - 670 - * oops 18:27
pugs - 669 - * add a missing sub
nothingmuch everyone: update unicode.t before you edit it 18:29
autrijus ok. 18:30
it all passes for me.
nothingmuch woot
ghc 6.4?
autrijus 6.2
win32
must be win32 specific.
bad bad.
btw, nothingmuch: indeed sub calls are now evaluated lazily
but in the wrong pad
so all hell breaks loose 18:31
nothingmuch++ # uncovering subtle bug
gugod I'm using ghc 6.2.2 on osx
nothingmuch *bow*
gugod and uniocde.t still failed on non-latin characters
nothingmuch same here
gugod: put yourself in pugs.kwiki.org/?OSXPeople if you're interested 18:32
gugod sure.
autrijus updates README to say [email@hidden.address] 18:33
gugod I got a error message upon saving 18:34
but it still saves
it appers that Kwiki::Notify::IRC fails :P
Khisanth hmm
autrijus: could the locale setting affect those?
autrijus Khisanth: I have no idea.
ask #haskell? 18:35
autrijus still fixing callerpos
theorbtwo Linux, 6.2.2, fails 16/18 tests in t/syntax/unicode.
Khisanth meh, I'll just run the test.. O_o
autrijus I'll boot to fbsd shortly after.
Khisanth 17 & 18 went from failing to passing and back to failing again 18:36
nothingmuch Khisanth: could you try svn up -r ... to try and see what passes?
jabbot pugs - 672 - * mention pugsbugs. 18:37
pugs - 671 - merge merge merge... *sigh*
Khisanth nothingmuch: you want the revision where those two were passing? 18:39
nothingmuch autrijus prolly wants it, but yeah =)
Khisanth scrolls up :)
that was r688 18:40
wilx pugspugs, nice name :D
nothingmuch 668, you mean?
Khisanth oh wait a minute nvm
it wasn't passing those, they just didn't exist! 18:41
nothingmuch heh
before japanese
Khisanth going to try with a different locale
nothingmuch not ok 5 - a m??se once bit my sister 18:42
pugs (err, ghc?) seems to be downgrading utf8 to ascii 18:43
autrijus callerpos fixed
committing
nothingmuch dance dance dance
autrijus the caller scope needs to be entered only in sub body
not in binding time
sub (?$x = $?CALLER::POS) {...} 18:44
this now will use the caller's caller
not the caller
which is counterintuitive
but not really seeing how to fix.
nothingmuch is that a bug?
autrijus I don't know. 18:45
attempting a fix.
nothingmuch i'll test for it as a bug
autrijus it's tested
in subroutine.t
nothingmuch ah
Khisanth t/syntax/unicode.................ok 18:47
nothingmuch btw, is $?POSITION the one we're in now?
Khisanth: what r?
Khisanth nothingmuch: no change from when it was failing
nothingmuch: locale issue
nothingmuch ah
nothingmuch tried LC_ALL as C and 'he_IL.utf-8' 18:48
neither worked
Khisanth hmm
I used en_US.utf8
nothingmuch what did you set it to?
not working for m 18:49
e
linux?
Khisanth yup 18:50
nothingmuch starts emerging svn et al
Khisanth err this is r671 18:51
vladtz Is there a way to get an english "Term of use agreement" from rt.openfoundry.org? 18:56
nothingmuch vladtz: autrijus says it is basically sf.net's one, 18:57
18:59 lightstep_eating is now known as lightstep
autrijus hi. 19:01
vladtz: wagner.elixus.org/~hcchien/termtouse.html
nothingmuch: I'll try to ignore locale.
please try r675. 19:03
please try 675 on linuxen, too 19:04
nothingmuch my linux is emerging subversion
will try it soon
oxsx is making
autrijus I'm seeing a tibetan error 19:05
fixing
jabbot pugs - 675 - * fix callerpos bug by only evaluate the 19:07
pugs - 674 - * unicode is the Only True Locale
pugs - 673 - Chinese sub name
nothingmuch dum dee dum
nothingmuch grudges at gentoo regenerating ssl keys every time postfix is updated 19:09
autrijus all pass now for me.
r677.
nothingmuch none passed before 677, except ascii 19:10
compiling 677
autrijus try set LANG=en_US.UTF-8 19:11
and LC_ALL=en_US.UTF-8
nothingmuch ah, that did the trick for latin 19:12
including mĆøĆøse
but that still prints as m??se on the terminal
autrijus okay. I understand now
nothingmuch however, asian and semite scripts are not working
autrijus macosx build did not compile in libunicode
that's all. 19:13
not fun
nothingmuch ah
oozy hi, I try to install Pugs, but gets errors about Ambiguous occurrences from modules GHC.List.null and Data.Set.null, what can I do tot fix this?
autrijus oozy: are you using GHC 6.4 and Pugs 6.0.10?
oozy exactly
I do 19:14
autrijus do you have subversion?
oozy are you telling to get latest Pugs from svc?
autrijus if you already have subversion, yes.
oozy ok, thanks I try 19:15
autrijus if you don't, try this tarball:
autrijus.org/tmp/Perl6-Pugs-6.0.11.tar.gz
oh good.
nothingmuch wonders what $MACHTYPE/$OSTYPE eq in emacs
oozy :)
nothingmuch oozy: svn tree is pretty stable
autrijus it should be, because I need to roll a release now.
nothingmuch: so what we do about unicode.t?
nothingmuch i find it always tends to be
autrijus the problem is clear 19:16
nothingmuch autrijus: say unicode is supported if GHC supports it
autrijus just not sure what to do.
nothingmuch and complain to ghc folks
autrijus they can't help either
the underlying OS need to have some way of libunicode
it's up for the porter
to compile with the lib
nothingmuch by the GHC people I meant those which make the GHC dmg
can't it be compiled properly on OSX?
autrijus not sure, I hope it can 19:17
nothingmuch gentoo: all fail without LC_ALL
all pass with
The Glorious Glasgow Haskell Compilation System, version 6.2
pugs at head rev
autrijus okay. 19:20
lightstep i get the moose as iso8859-1
autrijus try r678 19:21
lightstep (ghc-6.2.2 on debian linux)
nothingmuch on linux? or osx?
autrijus either. it should now always pass.
I'm really working on changelog now. 19:22
autrijus declares it's freeze time
lightstep now it says "no unicode support"
677 was better
autrijus I see. 19:23
r680?
nothingmuch =)
autrijus 680 should be happy.
lightstep just a moment 19:24
still iso8859-1
autrijus what do you mean "still iso8859-1"? 19:25
skip("GHC was not compiled with non-latin1 Unicode support, bummer");
did this line run?
lightstep no
autrijus nopaste the full run log.
thanks :)
lightstep which run log? is succeeded. but the slashed o was latin1, not unicode 19:26
s/is/it
autrijus oh oh ok
that's fine.
ghc managed output translations
that's Correct Behaviour.
lightstep ok
autrijus nothingmuch: what about osx vs r680?
jabbot pugs - 680 - * latin1 only 19:27
pugs - 679 - * oops
pugs - 678 - * don't bomb out on unicode.t
pugs - 677 - * all pass now
pugs - 676 - * unTODO
nothingmuch ok 1 - ascii declaration 19:28
not ok 2 - french declaration
# Failed test (t/syntax/unicode.t at line 10, column 5)
ok 3 - # skip GHC was not compiled with non-latin1 Unicode support, bummer
autrijus so even french failed.
what if you run it with LANG=C ? 19:29
or LANG=en_US.UTF-8 ?
nothingmuch C faukes
fails
en_US.UTF-8 will pass
yup 19:30
autrijus hm.
do you think we should putEnv?
at start of pugs 19:31
nothingmuch i have no clue
autrijus alternatively, only do that on harness
nothingmuch i think not
autrijus thinking.
let me try putenv
theorbtwo User apps might want to know what the user's locale was set to.
nothingmuch that makes programs written in perl6 not know what LANG was originally
autrijus that is true too
nothingmuch: hm. so all other tests passed? 19:32
including french quotes and yen?
even under LANG=C?
nothingmuch autrijus: yes, that stuff works perfectly
autrijus oooook 19:33
nothingmuch it doesn't really matter
if it's not utf8 to parsec or whomever
it's not utf8 in both cases
so it still gets parsed =)
autrijus does "en.UTF-8" work? 19:34
nothingmuch on osx?
theorbtwo Hm, not working for me even with LANG=en_US.UTF-8 19:35
wilx Hmm.... 19:36
nothingmuch autrijus: en.UTF-8 causes french to fail again
wilx doesn't like the way *nix handles locale stuff.
autrijus sigh.
nothingmuch handle? what handle?
autrijus ok, I abandon all hope. 19:37
lightstep theorbtwo, which ghc do you have?
autrijus r683. ;)
jabbot pugs - 684 - * doc is gone.
pugs - 683 - * sigh.
pugs - 682 - * perlkwid.kwid belongs somewhere under
pugs - 681 - * move to docs for now before we figure
Khisanth gugod: can you make jabbot print those in the other order? 19:39
autrijus 1477 tests now. 19:43
one week ago it was 1050
nothingmuch =)
lightstep but they fail
nothingmuch lightstep: a failing tests tests something too =) 19:44
obra 50 more tests and pugs will have more tests than RT
lightstep rt?
obra make pugs able to run RT and I'll double your test suite ;)
bestpractical.com/rt/
autrijus hah :)
nothingmuch: please delete my password. 19:45
err, sorry, mischan
nothingmuch hola stevan 19:47
stevan hey there nothingmuch
just the person I was looking for
nothingmuch =)
jabbot pugs - 685 - * regen manifest
theorbtwo Sorry -- GHC 6.2.2, from debian unstable. 19:49
autrijus hi stevan!
stevan hey autrijus
how goes Pugs
autrijus is doing changelog :-/
stevan I have been busy with work and "real live" lately sorry
autrijus that's just fine. 19:50
6.0.11 will be out in a few mins.
stevan nice
theorbtwo s/live/life/
lightstep theorbtwo, i have the same problem. i'm installing 6.4 now to see the difference
modules/Sample-Module is missing (this complaint is from Makefile.PL) 19:55
or rather, some of its files (meta, blib, etc.) 19:56
and there are warnings about orphan instances 19:57
in Internals and in AST
jabbot pugs - 686 - * don't spread my email around.
obra autrijus: is svn.perl.org reasonably syncced? 19:58
autrijus obra: I think so. 19:59
obra expected to pass tsts?
autrijus yeah. what fails?
obra nothing yet 20:00
I'm running the suite nopw
obra got a bad idea
or rather, jhi gave me a bad idea
autrijus yes? 20:01
rgs nasty jhui
jhi
obra Digest::SHA::PurePerl
a necessary precondition of cp6an, in his opinion is working things like FTP and SHA1
Digest::SHA::PurePerl appears to do math but otherwise be pretty simple 20:02
autrijus sure, but we can also hook haskell Codec.
obra sure.
autrijus is ::SHA::PurePerl already on cpan?
obra yes
In terms of "prove perl6" "hack in a haskell extension" isn't a win
in terms of "Get sha1 working" it's reasonable 20:03
but In that case, exec and perl5 would be fine too ;)
Is that at all sensical?
autrijus of course... 20:04
ext/Digest-SHA/ awaits you.
want committer bit?
obra no committer bit until I prove that I have code
autrijus sure.
obra "incentive to write code"
autrijus brb. 20:05
obra "incentive to not do customer work I _must_ do before monday"
nothingmuch obra: a comitter bit will make you feel guilty about not having written code already ;-) 20:06
obra nothingmuch: I have rather a lot of committer bits ;) 20:07
nothingmuch heh
jabbot pugs - 687 - * fix manifest
obra so. um. perl6 tutorials 20:14
autrijus Perl 6 Now? 20:15
wilx Yay for jabbot! 20:16
autrijus kw.pm.org/talks/2004-10-24-Perl6talk.ppt ? 20:17
wilx It should print the changes oldest first.
autrijus wilx: yeah, that's a FAReq :-/
jabbot is gugod's
obra is perl6now any good?
theorbtwo p6now isn't really about perl 6, it's about how to implement p6-like ideas under p5. 20:18
obra oh. "enh"
theorbtwo Came up near the beginning of the project; wanted to use the code examples as tests, but they're p5 code... IIRC. 20:21
autrijus there's some p6 code there. 20:22
but it's not needed anymore 20:23
the t/* gang completely overwhelmed its scope.
nothingmuch gloats a bit 20:25
;-)
autrijus nothingmuch++
testers++ 20:26
ok. who has GHC 6.4 on linux? 20:27
lightstep me
autrijus all tests passed for you?
(ignore the warnings)
lightstep how do i check it>
?
jabbot lightstep: ōæ½xACOōæ½xB3oōæ½xBCĖŖōæ½xB1ōæ½xB6ōæ½xDC? o_oa
autrijus "make test"
jabbot pugs - 689 - * set properties
pugs - 688 - * changelog for 6.0.11
obra I have 6.22. Want me tto upgrade?
autrijus I don't think 6.4-macosx is out 20:28
lightstep i'm pulling right now
nothingmuch obra: are you osx too?
obra I have linux and osx
right here, linux
why is algorthm::dependency checked into pugs svn? 20:29
autrijus obra: see backlog :)
obra it appears to be p5.
how far back?
lightstep on t/examples: 10/10 skipped, various reaons
autrijus it's my experiment in doing p6ification in trunk.
obra ahhhhh
autrijus modules/ means "does not really work and is not installed" anyway.
and A::Dep is not even in MANIFEST.
so I feel safe.
obra nods 20:30
I went looking for example code for modules :/
autrijus yeah. :/
'mafraid there's only t/* for you.
obra Ok.
what's the right set of tests to learn about setting up package variables, etc 20:31
nothingmuch obra: if you use OSX for dev, perhaps write yourself down in pugs.kwiki.org/?OSXPeople
it's basically a subetha users directory, for pairing
autrijus autrijus.org/Perl6-Pugs-6.0.11.tar.gz
calling for a final round of tests.
lightstep all tests succeeded or skipped
nothingmuch 404
autrijus autrijus.org/dist/Perl6-Pugs-6.0.11.tar.gz 20:32
sorry.
nothingmuch autrijus+=0; # forgiven ;-)
ime stamp 2005-03-13 22:33:09 is 25 s in the future 20:33
heh
autrijus adjusted back.
stevan orba if you want module example code,.. you could check Test.pm
theorbtwo Ah, good, I'm not the only one that's off from Autrijus Standard Time.
nothingmuch server 128.139.6.20, stratum 1, offset -7.521101, delay 0.04782
i'm not that good either
theorbtwo Remind me how to check, nm? 20:34
nothingmuch oh, sorry, different box
obra should this statement work: my $foo = 5;
autrijus ...yes.
nothingmuch ntpdate -qd your_server
autrijus I think.
will be surprised if it does not
nothingmuch obra: t/op/assign.t ;-)
obra I'm typing this: 20:35
pugs
theorbtwo -0.030720 sec
I'm pretty good.
obra my $foo = 5;
nothingmuch oh, in interactive...
obra >pugs says: undef
lightstep it only evaluates expressions
obra I say:
theorbtwo All succeeded, 11 skipped.
obra say $foo 20:36
*** Error: Undefined variable $foo at Var "$foo"
autrijus context is lost between lines.
that was debated.
nothingmuch pugs> my $foo = 5; $foo
5
autrijus it will be made togglable.
obra *blink* why would you want to lose context between lines?
autrijus between lines in interactive shell, that is.
theorbtwo I rather wondered that as well... 20:37
nothingmuch will you implement an :r, to throw away context when sticky, autrijus?
autrijus uh, because no-one complained loudly :)
nothingmuch: sure, that sounds good
theorbtwo should have been louder.
autrijus any lambdafolks up for it? :)
nothingmuch obra, theorbtwo: to sure errors don't leak between your checks
autrijus otherwise I'll look at it tomorrow.
nothingmuch is too dead to even think he can try
autrijus too, today
obra to make sure errors don't leak? 20:38
nothingmuch .11 passes all
obra: err, if you did something wrong
obra Is it not supposed to be an interactive environment for pugs in the end?
lightstep if i look at it in a few hours, who should i report to?
nothingmuch and you go at it again
bad state might leak
causing stuff which is correct to not be correct, due to screwey environment
theorbtwo :reset , then. 20:39
nothingmuch autrijus: also nice would be the ability to have non balanced structures cause a secondary prompt
autrijus true. 20:40
nothingmuch so you can type:
pugs> {\n
type a multiline expr
and then }\n
and it evals
autrijus yup. 20:41
nothingmuch always saw pugs in interactive mode as sort of <code>eval while <></code>
err, before .11 20:42
stevan this is still testing,.....
I think we have too many tests :P
nothingmuch t/parser....Perl v6.0.0 required--this is only v5.8.5, stopped at t/parser.t line 1.
BEGIN failed--compilation aborted at t/parser.t line 1.
t/parser....dubious
Test returned status 9 (wstat 2304, 0x900)
FAILED--1 test script could be run, alas--no output ever seen
ooh, LANG=he_IL.UTF-8 bothers make
make[1]: *** [test_dynamic] 2 הלק×Ŗ 20:43
stevan it probably need #!/usr/bin/pugs at the top
nothingmuch it types 'error', but in reverse =D
lightstep make is funny in hebrew
autrijus 04:42 * CPAN upload: Perl6-Pugs-6.0.11 by AUTRIJUS
if there's bugs, it's now too late :)
nothingmuch hah
stevan All tests successful, 11 subtests skipped. 20:44
Files=87, Tests=1461, 405 wallclock secs (265.73 cusr + 9.47 csys = 275.20 CPU)
lightstep search.cpan.org/dist/Perl6-Pugs still has only .10
nothingmuch lightstep: it usually takes a while
2 hours or so
stevan lightstep: it will take a few hours to get there
nothingmuch you can leech of nic.funet.fi if you're really impatient
but search.cpan is the slowest of all 20:45
lightstep i have the svn version
nothingmuch reads a bit of YAHT before sleep 20:46
stevan what is pugscc?
autrijus stevan: it turns p6 code into standalone exe. 20:47
same as perlcc.
obra aw. the test suite has no tests
nothingmuch obra: you mean Test.pm?
no Test::Ouput yet
anyway, if it was bad, we'd know ;-) 20:48
theorbtwo Oh: It doesn't have +x perms.
autrijus nothingmuch: you got a "special thanks" :)
# www.nntp.perl.org/group/perl.perl6.compiler/309
rgs autrijus: is there an url for the latest pugs ?
lightstep why are single-statement monadic blocks prefixed with `do'? is this some convention?
rgs the tarball, i mean 20:49
autrijus autrijus.org/dist/Perl6-Pugs-6.0.11.tar.gz
nothingmuch ooh
rgs thanks
autrijus lightstep: yes, some convention.
lightstep it looks strange in, eg, doRun
nothingmuch careful, my ego might boil ;-)
autrijus oh, that.
that's just baskell legacy
it matters little to me anyway. 20:50
ok, sleep time.
have fun, folks!
thanks for making 6.0.11 possible! :)
nothingmuch good night autrijus
great job!
theorbtwo G'night, autrijus, and congrats.
autrijus =) &
jabbot pugs - 690 - * This be Pugs, version 6.0.11. 20:57
rgs kwid is no longer installed in latest pugs ? 21:03
nothingmuch ext/Kwid
rgs no, after "make install"
nothingmuch oh, installed
nothingmuch never installed pugs =P
rgs makes rpms of pugs 21:04
nothingmuch yeah, i misread
rgs in fact, I use pugs straight from svn, but I have friends who play with it via the rpm
and it amuses me
which justifies the worthwhility of it :-) 21:05
theorbtwo ponders a CGI that will deliver a up-to-date .deb. 21:08
rgs theorbtwo: investigate CPANPLUS.
theorbtwo But that'd only give the latest release. 21:09
And the release is always out of date.
rgs yes, the pace is amazing
but you can "make dist" and have cpanplus produce a .deb IIRC 21:10
obra ok. I've got a test patch. what's the right place to get it reviewed?
rgs p6c I think 21:11
nothingmuch obra either pastebot
or subetha pariring
or mailing lists
or just commit and someone will cleanup
theorbtwo I'd say just put it someplace http-accessable, and point us at it, or commit.
obra given that it's my first perl6 code and it's a patch to the test harness, I'm not about to commit it without review ;) 21:12
but as soon as the suite runs, I'll put it up
theorbtwo Does it work for you?
obra it's appearing to. but I'm somewhat build-break averse
rgs obra: so what are your first impressions about writing p6 code ?
obra "more copmplexity, not any more utility" 21:13
complexity
nothingmuch and it's use of zip
obra: for nice p6 only utility see t/op/given.t
err, Ā„
obra nods
nothingmuch and for () -> ($try, $expected) 21:14
obra sure. I expect this will change once I've used it for more than anhour
rgs hugs perl 6
nothingmuch one thing to be weary of:
rgs curses his perl 5 hat
nothingmuch is($thing, <junction>, "foo");
obra fsck.com/~jesse/test.pm6
nothingmuch like, is($thing, ("ok value" | "other ok value"), "foo"); 21:15
this will invoke is twice
once for ok value
and another for other
and one will fail
so you do ok($thing eq junction, "foo")
integral still disagrees with this scheme for junctions
nothingmuch report_failure could be made cooler: 21:16
$?CALLER::CALLER::POSITIOn
=),
obra that will just work?
nothingmuch uhuh
err, supposed to
will test
obra Ok. patched 21:17
and actually, I think I'll switch to integrating with proclaim 21:18
theorbtwo "proclaim"? 21:19
nothingmuch theorbtwo: Test.pm internals
obra see the main code
autrijus wakes up from sleep 21:20
nothingmuch autrijus: CALLER::CALLER? 21:21
autrijus just one thing: obra now has the admin bit. if I'm unavailable and someone needs committer bit, ping him :)
nothingmuch yay!
autrijus CALLER::CALLER works, no?
nothingmuch i don't know how to syntax it
autrijus $?CALLER::CALLER::POSITION
nothingmuch undef var 21:22
sub inner { return join("\n", $?CALLER::CALLER::POSITION, $?CALLER::POSITION) }
sub outer { inner() }
autrijus I see. it's TODO then.
nothingmuch Undefined variable $?CALLER::CALLER::POSITION
autrijus the relevant bit is line 225 Eval.hs
nothingmuch does eval have a caller?
autrijus you can write a test
nothingmuch i am writing one =)
autrijus or attempt a fix by somehow using findVar instead of findVar' in eval line 225. 21:23
autrijus really sleeps &
nothingmuch i'll try to grok
mugwump sends autrijus SIGSTOP 21:24
mugwump renice's autrijus to 1.5Hz 21:25
nothingmuch mugwump: his irc client is prolly beeping... let him be!
;-)
mugwump true 21:26
nothingmuch tries to figure out where caller is defined 21:30
hmmm 21:32
i think i can actually do this
anybody want to SEE with me?
lumi You mean someone who actually has a clue?
theorbtwo I will, but I don't know how useful I'll be.
nothingmuch err, cluefullness adds up, lumi =) 21:33
lumi I'd like to read over your shoulder anyway
theorbtwo If a third wants to come in, I've been wanting to get some protocol caps of three-party SEE.
nothingmuch ok, we'll discuss here 21:34
see freeforall is open at see://woobling.org
lumi: try again 21:36
wifi problems
lumi I'm learning to loath these
nothingmuch the guy who built our house before we bought it appearantly had a very good friend who was a cement dealer or something 21:37
that's why i have wifi problems
jabbot pugs - 691 - test CALLER::CALLER
lumi I think he did my house as well
nothingmuch i believe there is about 0.5 meters of concrete, when it sums up, between me and the station 21:38
theorbtwo Hmmpf, I'm having network problems; OSX isn't doing DNS, it's trying to do portmapping.
nothingmuch oi oi oi
theorbtwo: we'll wait a bit then 21:39
obra will $?CALLER::CALLER::CALLER::POSITION work in the end?
nothingmuch just tell us if you give up
obra - the way it seems like the impl might be, yes 21:40
it's just going to be recursive
obra okm
lumi Bh
obra but I should expect that right now, it does not?
lumi A pox on wifi in all its forms
nothingmuch obra: not yet, only single level
obra ok
theorbtwo Huh? My /var/run is missing! 21:41
nothingmuch oi oi oi
nothingmuch begs OSXPeople to join in 21:44
everyone that is interested seems to be having some kind of issue with it ;-) 21:45
lumi I've changed my network configuration a little 21:46
nothingmuch me too
lumi (And stayed on irc, a miracle!) 21:47
nothingmuch nat punch now goes to ethernet ip
nothingmuch needs to get both interfaces to bind to the same port some how... does arp even allow it?
theorbtwo: how are you coming along? 21:48
theorbtwo Not sure. 21:49
nothingmuch shall we start? 21:51
(this is a vote, larsen, lumi ;-)
lumi Sure
larsen ok
nothingmuch ok
theorbtwo Go for it; I'll join later if I get this fixed. 21:52
nothingmuch first i think we'll start guessing on findVar
lumi Gr
nothingmuch as i see it it's taking a varname
the first line is taking the package prefix, and the rest 21:53
i.e. foo::bar::gorch is -> foo, bar::gorch
lumi->ping
lumi Ow
I keep dying
nothingmuch go somewhere where you have a physical cable =)
lumi I *do* have physical cable
nothingmuch anywho,then it's looking at the package variable 21:54
and if it's CALLER, without the sigil, err sort of
then it calls findVar' inside an env for that context, which does the dirty work
i think what our task is going to be is to make findVar' the general case 21:55
or otherwise cause findVar to have another variant
which takes env args
and recurses them
each time dealing with another CALLER prefix
lumi That is, factor the env thing into findVar'?
nothingmuch and eventually using findVar' to extract the actual whatever it extracts
i'm not exactly sure 21:56
lumi Hh
nothingmuch blockedit is fun 21:57
=)
larsen :)
theorbtwo I think you're better off making findVar call findVar instead of findVar' when it sees CALLER. 21:59
Oh, wait, no.
nothingmuch theorbtwo: the problem is how to get findVar to look in another env
nothingmuch has commented Eval.hs a bit 22:00
you should see, but you have no see.
theorbtwo Factoring the CALLER bit into findVar'...
Right.
nothingmuch heh, pun not intendant
heh, pun not intended
theorbtwo I'll get back to that now.
That's too bad, as it was good.
nothingmuch theorbtwo: save an image when you get it fixed ;-)
good catch, lumi 22:01
lumi I don't understand the call to caller 22:03
nothingmuch anybody got a clue how that call to caller makes any sense as a Num?
lumi Ehm it's not, is it
nothingmuch caller n = do
lumi rv is Just x (x is called caller)
nothingmuch when (depth <= n) 22:04
it's $CALLER::FOO -> $FOO
i get this part: (sig ++ (drop 2 name'))
lumi findvar' x (sig..etc)
What is it? I don't 22:05
nothingmuch since sig and name were sliced properly
i assume drop 2 takes the '::' off of name
lumi Oh
nothingmuch oh
the call to caller is not a call to caller
we're used to reading it wrong ;-)
lumi No, confusing
Yup
nothingmuch if it were (caller (sig ++)) 22:06
so what is the caller?
an env?
that is really a function, that is errr, lazifyingly made in to an env?
lumi It got it from "asks envCaller"
nothingmuch not rv
findVar' caller
caller is something
lumi It's Just caller 22:07
nothingmuch oh shit
sorry
lumi The case binds it
nothingmuch ok
obra does pugs use the perl5 test harness?
nothingmuch obra: uhuh 22:08
what do | and , really do in a function?
case?
lumi Yes, "if so and so fits, the function = this" 22:09
Otherwise that
I think
nothingmuch and comma is and?
how would we extract the caller of a caller?
rv <- asks envCaller 22:10
lumi Yes
I don't know that "asks" magic
nothingmuch i think we'll deal with it later
lumi Possibly another <- asks envCaller will get you the next one
nothingmuch another? 22:11
how does it keep state?
lumi It's a monad
nothingmuch right
but we don't return states to it at the end of findVar
lumi I see returns in findVar' 22:12
I don't yet grok it :/
nothingmuch return is, as i gather, a way to type do
since do is a number of actions/functions
you declare some to be final 22:13
i think
s/think/guess/
(infer ;-)
lumi Final?
nothingmuch the thing whose type is the type of the do segment
hence the type of findVar 22:14
okay, lumi, i think i'm sort of done 22:15
except for the parrts I really don't know
larsen: any feedback?
lumi What did you do? 22:16
nothingmuch perlbot: nopaste? 22:17
perlbot Paste your code here and #perl will be able to view it: sial.org/pbot/perl
pasteling "nothingmuch" at 212.143.91.217 pasted "findVar for recursive CALLER" (23 lines, 946B) at sial.org/pbot/8151
larsen nothingmuch: sorry, I was writing some code for another project
nothingmuch rv <- -- getNextEnv env
that part we don't know yet
larsen actually, I'm too ignorant in Haskell to really contribute
nothingmuch hence it's commented out
well, nevermind then 22:18
lumi I know absolutely nothing, and I think I helped some
nothingmuch you're picture in the participants window is fun enough ;-)
lumi: liar, you do too know
larsen nothingmuch: cheers for that
lumi I do not!
nothingmuch beh
lumi I only read YAHT a bit
obra what's the authenticated svn url for pugs?
nothingmuch svn co svn.openfoundry.org/pugs 22:19
and then ci
and it just worked
i guess it uses DAV
obra ah. ok
obra has a refactored test harness to check in
nothingmuch obra: does it use CALLER::CALLER?
wtf is envCaller? 22:20
lumi I think the do is magic
nothingmuch do is pretty magic, yes 22:21
lumi I think it passed in a monad, and asks is defined on that monad
I mean, it's "THE" magic here
nothingmuch that's two levels farther than I understand do
so lets just try asks envCaller, you say?
obra nothingmuch: it does not. it has a todo for that
nothingmuch okay,
lumi I think do topicalizes on a monad
nothingmuch lumi: elaborate? 22:22
lumi You pick somehow a monad, and then you do stuff. And you call other folk who do stuff
Everyone who is do-ing is do-ing with the "topic" monad
<- binds from the monad 22:23
I should really start quoting temrs
Terms as well
I'm not sure about the part that picks the monad, but the rest I'm.. fairly sure of 22:24
Well, vaguely sure
nothingmuch that's an oxymoron
theorbtwo Ugh.
lumi Aren't there any Followers of the Lambda about?
theorbtwo I think I need to reinstall my OSX. 22:25
Join #haskell and ask there?
lumi Except what's the question exactly 22:27
"Explain monads, please" is a bit vague
theorbtwo I certianly don't know.
Going to bed, will probably be back in approx .5hr. 22:28
nothingmuch night, theorbtwo
theorbtwo Perhaps "do you know where 'asks'" comes from in this code.
Hm, misplaced end quote.
lumi Right, do pastebots
That's not what I meant to type
nothingmuch lumi->sanify 22:30
i get indent errors now, trying to figure out why
lumi Why'd you take findVar' out of findVar? 22:34
nothingmuch trying stuff out 22:35
to see if i coudl make the error more specific
beh 22:36
rewriting
svn revert first, copying new broken version
lumi It doesn't compile now? 22:38
nothingmuch no
ok, this ocmpiles now 22:39
lumi What fixed it?
nothingmuch i have no clue
i just zapped the change
and rewrote it
cleanly
ok 22:40
the recursion works
but asks envCaller is not getNextEnv
lumi And for our next trick, let's rewrite using Maybe monad :P
Oh.. What does it do then?
nothingmuch not ok 3 - caller::caller notation works # TODO
# Failed (TODO) test (t/magicals/caller_pos.t at line 24, column 1)
# got: 't/magicals/caller_pos.t at line 22, column 13
# t/magicals/caller_pos.t at line 22, column 13' 22:41
# expected: 't/magicals/caller_pos.t at line 24, column 1
# t/magicals/caller_pos.t at line 22, column 13'
appearantly asks envCaller always returns the same thing
$?CALLER::POSITION -> $?POSITION in asks envCaller
recursively, till you run out of CALLER
so now lets figure out what asks and envCaller are
lightstep i think -fno-warn-orphans should be added to line 139 in Makefile.PL 22:43
obra once you fix CALLER::CALLER, I'll redo the test suite again
nothingmuch lumi - join #haskell
metaperl are there tests written for smartmatching? 22:45
metaperl does svn update
yup: t/op/smartmatch.t 22:46
nothingmuch ok, back here, to not annoy #haskell 22:47
it appears like caller n allows you to err, give it an int
jabbot pugs - 693 - r8413@hualien: jesse | 2005-03-13 17:3
pugs - 692 - r8412@hualien: jesse | 2005-03-13 17:3
nothingmuch and get the same thing as rv <- env
or whatever
obra++ 22:48
lightstep ok
nothingmuch =)
lightstep: are envs a sort of linked list that is really a stack? 22:49
lightstep to my unsuspecting eye, it seems that the first branch of findVar is never taken
nothingmuch it is
at least, i am nearly sure
lightstep oh, i misinterpreted the (:) in breakOnGlue 22:50
they are stacked, through envCaller
nothingmuch look what we've come up with:
lightstep envCaller :: Env -> Maybe Env
nothingmuch perlbot: nopaste
perlbot Paste your code here and #perl will be able to view it: sial.org/pbot/perl
pasteling "nothingmuch" at 212.143.91.217 pasted "new findVar" (24 lines, 1K) at sial.org/pbot/8152 22:51
nothingmuch lightstep: where do you read that?
lightstep is it supposed to be equivalent?
nothingmuch ATS.hs
lightstep line 487 on AST.hs 22:52
nothingmuch no, it's supposed to recurse, running findVar' on the highest env
xerox 'night folks
nothingmuch err, highest -> shallowest
night xerox!
removing a level for every time package isa CALLER
as we gathered, the first findVar thingy will match a name which has 'CALLER::' in it 22:53
and will put the part before that in sig, and the part after in name'
and then should call findVar' oneUpperEnv (newname)
lightstep it seems to want "<sig>CALLERCALLER::<name'>" 22:55
i mean, the guard
oh, not
nothingmuch lightstep: it does seem to work
guard = | ... | otherwise?
$?CALLER::CALLER::POSITION did not parse before
lightstep yes
nothingmuch and now it basically folds into $?CALLER::POSITION 22:56
which folds into $?POSITION in envCaller
except that envCaller stuff doesn't add up
lightstep it requires "<sig>CALLER::<name'>"
nothingmuch yah
and then it mushes <sig><name> to make a new name
so how do we recurse upwards through the env stack? 22:58
i don't understand data Env = Env {}
lightstep it's a record
nothingmuch ah
how does one fudge a record's contents?
lightstep and the field names are the same as the names of the extractor functions 22:59
nothingmuch someEnv <-- envCaller
will yield the envCaller record of ...?
findVar' 's env param? 23:00
lightstep (envCaller someEnv) is the obvious field
nothingmuch err, someEnv <- envCaller 23:01
lightstep it's illegal
the thing on the rhs of a <- must be a monad value
nothingmuch why is envCaller monadic?
or called in a monadic fashion?
oh crap
err
=)
lightstep envCaller is a regular function 23:02
nothingmuch rv <- asks envCaller
lightstep this gets the caller of the current env
nothingmuch and the current env is ... env? 23:03
obviously not, otherwise it'd be giving back the same thing
lightstep the env of the current evaluation state 23:04
nothingmuch rv <- asks envCaller env -- does this make sense?
err, (envCaller env)
lightstep i need a few moments, to figure out these lines of code
theorbtwo returns 23:08
nothingmuch hola theorbtwo
nothingmuch yawns 23:12
lightstep now i grokked the code 23:13
what is the problem?
nothingmuch it is late
that's the main problem
lightstep indeed
nothingmuch ;-)
the second problem is:
envCaller
err
lightstep rv <- asks envCaller
nothingmuch rv <- asks envCaller
lightstep yes
nothingmuch i don't see how it know which env to get the envCaller out of
lightstep like in env <- ask 23:14
nothingmuch that part i didn't understand either
lumi pointed out that it's the current env
and that made sense
lightstep a type like Eval a contains a value of type a, and an evaluation state
it is invisible and magical
monadic, in other words 23:15
nothingmuch ... because it is a monad
ok
lightstep env <- ask
gives env the environment part of that stat
*state
and asks likewise
nothingmuch ... parsing ... 23:17
lightstep but you don't want this
nothingmuch by saying env <- ask
i, err,
fudge the monad
so that asks frobnicates it correctly?
lightstep yes and no 23:18
nothingmuch for simplicity shall we assume yes or no?
note that i am no where near monads in YAHT
lightstep since you want rv to be the caller of env, not of the current evaluation state
nothingmuch right
lightstep using asks will get the current evaluation state
nothingmuch ah
lightstep to get the caller of env, just use envCaller env
nothingmuch so i should just do away with the monad stuff 23:19
ok, i see
case (envCaller env) of ...?
lightstep yes
nothingmuch or let rv = envCaller env
lightstep both are good
nothingmuch ok
sounds logical
lightstep i'd dispose of the `do', but it's a matter of coding style
nothingmuch now why didn't we see it before... ;-) 23:20
because now it's not necessary?
wow!
ok 3 - caller::caller notation works # TODO
nothingmuch hugs lightstep
lightstep now i'll get to the Maybe monad part
nothingmuch and llumi and larsen and theorbtwo
larsen :) 23:21
theorbtwo ? 23:22
pasteling "lightstep" at 212.235.32.146 pasted "findVar name= do env <- ask fi" (25 lines, 1K) at sial.org/pbot/8155 23:23
lightstep damn
tab doesn't work well
nothingmuch lightstep: all of pugs' haskell is spaced at 4 23:24
i think
obra: enjoy CALLER::CALLER, 694
lightstep i tried to type "tab space" in the edit box, and it pasted
nothingmuch ah, i get it... heh
obra nothingmuch: does CALLER::CALLER::CALLER work? 23:25
nothingmuch theoretically yes, it's recursive
obra col
Juerd Is there a way to figure out what the first caller namespace is of a caller that isn't the current sub? 23:26
nothingmuch Juerd: rephrase please?
jabbot pugs - 694 - CALLER::CALLER with lightstep, lumi, and 23:27
nothingmuch obra: 695 tests CALLER::CALLER:CALLER, and it works 23:29
Juerd nothingmuch: In a recursive sub, how do you get to the caller of the sub that initiated the recursion 23:31
nothingmuch ah
errm
lightstep ouch
do you include mutual recursion?
Juerd s/caller/namespace of the caller/
lightstep and some functions call themselves on multiple points... 23:32
Juerd lightstep: I don't know what that is.
nothingmuch eval '$?' ~ join("::", ("CALLER" xx $current_level)) ~ "::POSITION"; # ;-)
I would guess the proper idiom would be, err, something like: 23:33
sub function { ## blah blah, set up $CALLER:: introspection
recursive_function($outercaller_info, @params)
}
sub recursive_function ($caller, @params){ ... } 23:34
anyway, i need sleep
work tomorrow
Juerd nothingmuch: Or, if we can iterate over the caller stack,
nothingmuch i don't know how we'd do that though 23:35
is that for p6l?
lightstep is there a CALLER::sub_id ? 23:36
Juerd $::( (first { not &?SUB :=: &$_ } @?CALLERS).namespace )::_
nothingmuch is too tirred to remember what synopsis CALLER/OUTER are in to check what might make sense
Juerd This was hard to write :) 23:37
lightstep with anonymous functions (closures), it's getting really hard to know what really is recursion and what is just a sequence of successive calls to the same function
nothingmuch oh my
Juerd++
that's beautiful
nothingmuch forgot all about :=:
Juerd I suddenly realised it has no negated version
nothingmuch and actually $?SUB too
lightstep what is :=: ?
Juerd Perhaps :!=: is implied
nothingmuch lightstep: identity
jabbot pugs - 696 - Also test for just plain old $?POSITION.
pugs - 695 - Also check error condition, and three le
Juerd lightstep: See my talk for a quick introduction of all weird new operators (except the ones for sub calling) 23:38
nothingmuch the first caller which is not the same thing as $?SUB (the current sub), is what we're after
Juerd lightstep: juerd.nl/, most recent news item
nothingmuch err, rather, it's namespace is what were after
then we just smudge that into the $::( <here> )::
Juerd See the slide titled "Binding" 23:39
nothingmuch Juerd: does caller reach into lexical or dynamic scope?
Juerd nothingmuch: Any score.
$CALLER::foo is $foo as it would be in the caller
nothingmuch isn't that naughty?
well, err
Juerd That can be global, lexical, dynamically global or lexical
nothingmuch enough rope to hang yourself =)
Juerd It's like eval '$foo' in a B:: sub in Perl 5
eh, DB::
(perldoc -f eval) 23:40
nothingmuch: You get punished by not getting to make use of some optimizations.
nothingmuch Juerd: thanks for eval link, that's both scary and fun at the same time 23:41
Juerd nothingmuch: See also tnx.nl/include
nothingmuch also, i'd like to hear about optimisation crap, but tomorrow
now i sleep
Juerd I don't know that crap
So don't ask me
nothingmuch because i already am
ok, i will speculate =)
uh, why tnx.nl/include? 23:42
for DB::?
Juerd eval fun
With DB::
It's actually implementing include() as I want Perl 6 to have by default
nothingmuch aha 23:43
Juerd++
lightstep what us // ?
Juerd doesn't dare asking, because people will only say it's PHP-ish and thus bad. However, there are some situations in which very simple inclusion is in fact the best solution, so I'll make it work in Perlego.
lightstep: defined-or.
nothingmuch very nice
what is perlego? 23:45
perl for foreigners?
Juerd A better Perl 6. 23:46
In my opinion. 23:47
Also, *following* my opinion.
nothingmuch made by fudging the grammer at runtime?
or deeper than that?
Juerd That, and maybe adding some useful methods or functions
Maybe macros can implement all I need
mugwump so will there be seperate directories in Dialects for each specific ego? :) 23:48
Juerd It should be entirely compatible with vanilla Perl 6
So that you can add it to any existing file.
brb
mugwump Maybe I should make one where any() junctions autothread on creation rather than when being passed to a function
nothingmuch goes to slee
well, enough
p
lightstep i'll go join nothingmuch 23:49
g'night all
Juerd mugwump: Perhaps 23:59