Summer of Perl | 6.2.12 released! | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by nothingmuch on 12 July 2006.
00:17 diakopter joined 00:22 nekokak joined
diakopter anyone want to help me get GHC onto my intel mac? 00:24
jmf im using it on a ppc
whats wrong?
00:25 justatheory joined
TreyHarris jmf: don't create a new .t file unless there's none that makes sense for your test 00:35
diakopter i guess I'm just curious if anyone's built ghc for intel mac before (I mean, surely) 00:39
b/c if someone's already built it, I'd love to download it 00:40
jmf TreyHarris: ok
diakopter: I doubt there is one available
shouldn't take more than an hour or two on one of them though 00:41
diakopter ok; gotta download 938MB worth of xcode first I guess 00:42
jmf: thanks
jmf how come? 00:43
i used port
was real fast
diakopter jmf: n00b here 00:47
what is port
jmf diakopter: darwinports.opendarwin.org/ 00:48
TreyHarris diakopter: darwinports.org/
lambdabot Title: DarwinPorts Home
diakopter apparently darwinports requires xcode 00:49
jmf lol 00:50
TreyHarris diakopter: it's on your 2nd DVD of Tiger
it's easily installed
diakopter oh
diakopter is embarassed
TreyHarris make sure you install BSD libs and utils as well from the same disk
diakopter well, I should download the new version anyway
jmf i think you can get away with gcc though anyway 00:51
but you might as well install the dev tools
TreyHarris jmf: if you already have the tools xcode installs, you'd be set, yes ;-)
but xcode is what gives you make, gcc, etec. etc. 00:52
markstos_ gets up to check that outside world still exists
jmf or you could just boot in windows and download a built ghc
nottttt
diakopter windows? 00:53
jmf do you have bootcamp?
diakopter no
jmf oh, nevermind
diakopter so where are those usual lurkers, audreyt and timtoady 00:54
jmf i think TreyHarris is the resident expert for now
diakopter i've been following the chat logs for the past few days... timtoady mentioned that the design of perl6 has been implementation-driven for at least a year 00:57
anyone have any comments on that?
froh-doh diakopter: I liked very much the one-before-last slide in pugs.blogs.com/talks/boston-deploying-perl6.pdf 00:58
jmf so are roles just basically like interfaces in java? 01:04
01:24 Entonian joined
TreyHarris jmf: no... roles have code. they're to mixin new behavior, not specify apis 01:29
01:34 Boa joined
froh-doh I'm new about Perl 6, I checked it out from svn and I'm running the test suite 01:34
jmf TreyHarris: what is the difference between subclassing and adding a role?
TreyHarris froh-doh: good for you, welcome
froh-doh which, of course, contains some FAILED stuff. Is it useful to put the failures somewhere?
Boa hi, a question about perl6, any idea of the first stable release for unix systems? 01:35
froh-doh thanks TreyHarris
rodi Christmas
TreyHarris == rodi
Boa: but we're not telling you what year
it'll be a nice Christmas surprise :-)
Boa hehehe
TreyHarris jmf: you subclass a class. you mixin a role to an instantiated object 01:36
you can subclass a role, then you have another role
Boa I panic to relearn th e %$ and @$$$$ stuff I had references... but thats ok i hate objects to
jmf oh ok, so its dynamic?
Boa to/too
TreyHarris jmf: yes, of course. everything's dynamic. define dynamic :-)
jmf so you define what you are subclassing pre-compile but you can add roles on the fly? 01:37
...to instantiated objects
TreyHarris you can. see S12. um... here it is... "Roles may be composed into a class at compile time, in which case you get automatic detection of conflicting methods. A role may also be mixed into a class or object at run time to produce an anonymous derived class with extra capabilities, but in this case conflicting methods are overridden by the new role silently. In either case, a class is necessary for instantiation--a role may not be directly instantiated." 01:39
did that get cut off? one of these days i have to figure out how to make irssi tell me when that happens
jmf so then they are like abstract classes 01:40
in java
TreyHarris jmf: no, again, they have code
jmf well so can abstract classes
just cant be instantiated
TreyHarris: thanks, i think that cleared things up 01:41
TreyHarris jmf: oh, i see. yes, when you do it at compile-time into a class. except Perl lets you do multiple inheritance, Java doesn't (but mixing in a role isn't inheritance). but you can mix them into a preexisting object.
jmf right the multiple inheritance is what made me think they were like interfaces 01:42
rodi froh-doh: do you have the smoke kit installed? If so, I think you can 'make smoke' and then follow the instructions afterward to upload the results... 01:44
froh-doh ok, I'll install the smoke kit 01:46
01:47 Boa left, dolmans joined
rodi if you install Task::Smoke from CPAN, it gets all the dependencies, I believe. 01:48
TreyHarris roles are the thing that it's annoying that interfaces don't have (code) with the things that it's annoying that abstract classes don't have (the ability to derive objects of other preexisting classes), with the disadvantages of neither 01:49
froh-doh I kept a record of my first attempt to use perl6 to make a minimal script, where could I put it inside the doc hierarchy? 01:50
markstos_ froh-doh: sounds like "examples" 01:51
TreyHarris froh-doh: read docs/README
or did you get to the "ask on #perl6" part? :-)
froh-doh TreyHarris: I read it, and
eh, yes :)
rodi LOL 01:52
froh-doh I see that "other" contains the perl5 -> perl6 "guide"
maybe there? I tried to code in perl5 at first, then give the stuff to pugs and see the results
clkao fglock: why are we shipping test.pmc now?
TreyHarris froh-doh: why not? it can always be moved elsewhere 01:53
jmf TreyHarris: why cant everything just be a class though if theres multiple inheritance?
froh-doh ok, it seems the less harmful place for the moment
01:53 markstos_ left
clkao fglock: also t/01-sanity/01-tap..............................................Global symbol "$object" requires explicit package name at /home/clkao/work/pugs/perl5/Pugs-Compiler-Perl6/blib/lib/Pugs/Emitter/Perl6/Perl5.pm line 726. 01:53
TreyHarris jmf: you can't mix a class in at runtime without creating a new object
jmf: i suppose you could do "my Dog|Sentry $fido;", but that would get really hairy really quick 01:54
lol... hairy dog 01:55
that was unintentional
jmf wouldnt it be more natural to have only classes but with every class really having the ability to be a role?
(a role in that if you try to mix in at runtime it just gets the extra methods) 01:56
lol 01:57
TreyHarris roles do not have constructors 01:58
froh-doh is there any way to use the evalbot without boring you guys?
jmf download pugs?
TreyHarris imagine a class that had a constructor that and destructor, with the destructor recovering things based on how the constructor was called 01:59
froh-doh jmf: no, I wanted to cross check with the pugs I've just compiled
01:59 evalbot_12098 is now known as evalbot_12099
TreyHarris er, s:2nd/that<ws>// 01:59
if you mixed in another class, the destructor might do the wrong thing now 02:00
the class could no longer manage the data's state completely
jmf wait so can you inherit from multiple classes?
TreyHarris a role does not manage the object's data state (except for bits of state that have to do with the plumbing of the role itself)
jmf: yes. but you have to do that prior to object creation time 02:01
jmf it seems like it should still be possible - though i guess you dont want that kind of overhead 02:02
TreyHarris froh-doh: evalbot's name indicates what rev it's running at (evalbot_12099). so long as you're running the same rev, you're set. if you think your build of r12099 is behaving differently than it should, then that's something we'd like to see on the channel i think :-)
froh-doh ?eval my @p; push @p, [ 21 .. 25 ]; say @p.elems, ' ', @p[0].elems;
evalbot_12099 OUTPUT[1 1 ] Bool::True
froh-doh houston, we have a problem :) 02:03
?eval my @p; push @p, [ 21 .. 25 ]; [ @p.elems, @p[0].elems ];
evalbot_12099 [1, 1]
jmf ?eval my @p; push @p, [ 21..25 ]; [ @p.elems, @p[0].elems ];
evalbot_12099 [1, 1] 02:04
TreyHarris jmf: it is possible. abstract base classes, mixins, interfaces, traits, roles--they're all just abstract parent types, and multiple inheritance can be used instead of any of them
just as closures can be used to forgo .wrap or state variables.
froh-doh the second element should be 5 (t/builtins/arrays/push.t)
TreyHarris but just like raw closures can be dangerous if you don't understand what you're doing, multiple inheritance is a very powerful bazooka to weild when you just want to mixin a little code
02:06 bcorn joined
jmf TreyHarris: thanks, i think i get it -- just seems antiperl6 to want to mixin a class and not have it "just do the right thing" 02:06
TreyHarris froh-doh: eh? what test in push.t do you think this is equivalent to? you can paste it here, just the one line
rodi ?eval my @p; push @p, (21..25); say @p.elems, ' ', @p[0].elems; 02:07
evalbot_12099 Error: No such sub: "&elems"
froh-doh test #39: is(@push[0].elems, 5, 'nested arrayref, arrayref length is 5');
TreyHarris jmf: there are limits on DWIM when you're dealing with code that munges code. the halting problem can get roped in when you least expect it :-)
jmf well i wouldnt want to push pugs beyond its limits ;) 02:08
froh-doh jmf: also considering the problems on push, it's better not to push pugs too much ;) 02:09
02:09 vel joined
TreyHarris jmf: well, i'm not talking about the limits of pugs, but the limits of the universe. :-) 02:10
rodi Entscheidungsproblem, bitte!
TreyHarris jmf: but even outside of the limits, it just makes sense to have a subservient role for... roles. quick example. "0 but True". you're taking a zero value, and mixing in a True role. but it's still a number primarily. multiple inheritance is counterintuitive here. it's not both a number and a boolean value; it's a number, that has a special boolean behavior 02:12
hmm, does that work yet?
?eval 0 but True
evalbot_12099 Error: Cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode)
TreyHarris not yet :-)
?eval my @p; push @p, [ 21 .. 25 ]; @p.perl 02:13
evalbot_12099 "[[21, 22, 23, 24, 25],]"
TreyHarris ?eval my @p; push @p, [ 21 .. 25 ]; @p[0].perl
evalbot_12099 "[21, 22, 23, 24, 25]"
TreyHarris ?eval my @p; push @p, [ 21 .. 25 ]; @p[0].elems
evalbot_12099 1
TreyHarris ?eval my @p; push @p, 21 .. 25; @p[0].perl 02:14
evalbot_12099 "\\21"
rodi ?eval my @p; push @p, (21..25); @p.elems;
evalbot_12099 5
TreyHarris ?eval my @p; push @p, *[ 21 .. 25 ]; @p[0].perl 02:15
evalbot_12099 "[21, 22, 23, 24, 25]"
TreyHarris i think the tests are wrong, personally
i think it's working as expected
froh-doh ?eval my @p; push @p, [21..25]; my @q = @p[0]; @q.elems;
evalbot_12099 1
TreyHarris but i'm willing to be persuaded otherwise
02:15 cmarcelo left
TreyHarris ?eval my @p; push @p, [21..25]; my @q = *@p[0]; @q.elems; 02:16
evalbot_12099 5
TreyHarris yes, i think it's working right. push shouldn't auto-flatten, i don't think
froh-doh no, but @p[0] should be the 5 elements array
02:16 bsb joined 02:17 Khisanth joined
froh-doh as the @p[0].perl seems to show 02:17
TreyHarris ?eval my @q = (21..25); my @p; push @p, @q; @p.perl
evalbot_12099 "[21, 22, 23, 24, 25]"
froh-doh ?eval my @p; push @p, [21..25]; my $q = @p[0]; $q.elems; 02:18
evalbot_12099 5
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; @p.perl
evalbot_12099 "[[21, 22, 23, 24, 25],]"
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; @p.[0].elems
evalbot_12099 1
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; @p.elems 02:19
evalbot_12099 1
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; @p[0][0]
evalbot_12099 \21
froh-doh btw, the test is ok with pugs 6.2.12 02:20
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; my @q = @p[0]; @q.elems
evalbot_12099 1
TreyHarris ?eval my $q = (21..25); my @p; push @p, $q; my @q = @p[0]; $q.elems
evalbot_12099 5
froh-doh oO
ah 02:21
TreyHarris you're right then; the tests are right, the behavior is right except for the .elems on the nested array
?eval my @p; push [21..25], $q; my @q = @p[0]; $q.elems 02:22
evalbot_12099 Error: Undeclared variable: "$q"
TreyHarris ?eval my @p; push [21..25]; my @q := @p[0]; @q.perl
evalbot_12099 "\\undef"
TreyHarris it's not just elems; something's not recognizing the first elem as an array 02:23
?eval my @p; push [21..25]; @p[0].ref
froh-doh maybe you forgot to push into @p ?
evalbot_12099 ::Scalar
TreyHarris ?eval my @p; push [21..25]; @p[0].perl
evalbot_12099 "\\undef"
TreyHarris oh! hah!
?eval my @p; push @p, [21..25]; @p[0].ref 02:24
evalbot_12099 ::Array
froh-doh ?eval my @p; push @p, [21..25]; @p[0].end
evalbot_12099 0
TreyHarris ?eval my @p; push @p, [21..25]; my @q := @p[0]; @q.perl
evalbot_12099 "[21, 22, 23, 24, 25]"
TreyHarris ?eval my @p; push @p, [21..25]; my @q := @p[0]; @q.elems
evalbot_12099 5
audreyt (that is broken) 02:25
froh-doh ?eval my @p; push @p, [21..25]; my @q = @p[0]; @q.elems;
TreyHarris hi audreyt :-)
evalbot_12099 1
froh-doh ah, you used the binding
audreyt jmf: you can use my build 02:26
jmf: cvs.haskell.org/trac/ghc/wiki/X86OSXGhc
lambdabot Title: X86OSXGhc - GHC - Trac
TreyHarris audreyt: i got final approval from $job, so as soon as i find the guy to sign the document, I can contribute beyond just blathering on in the channel :-)
audreyt moooose! 02:27
jmf audreyt: thanks it was for diakopter though :) 02:28
audreyt oh. right.
diakopter: cvs.haskell.org/trac/ghc/wiki/X86OSXGhc in case you backllog
lambdabot Title: X86OSXGhc - GHC - Trac
audreyt (via irc.pugscode.org that is)
02:32 mjk joined
TreyHarris audreyt: was my description of why there are roles to jmf fair? that yes, you could do anything with runtime mixinable multiple inheritance that you can with roles, but roles are just nicer and safer, kind of like .wrap and state vars are nicer and safer than closures? 02:32
jmf TreyHarris: sorry for the late reply -- if there are numbers and booleans classes seems like you shouldnt also have to write a boolean role (bad example maybe) 02:33
like lets say you have a dog class and a cow class, but then you want a dog that acts like a cow, are you able to give the dog cow behavior without writing a separate role? 02:34
audreyt yes. 02:35
jmf and not at compile time? 02:36
audreyt subject to restrictions
if the "cow" methods contains layout-specific access
$!antler
jmf so classes act like roles if you try to mix them in at runtime?
audreyt then your class cannot mix it in
how I hope obvious reasons (layout mismatch) 02:37
s/how/for/
but otherwise, if all methods is virtual-able
then I expect you can use them as roles, yes
TreyHarris jmf: like i was saying, to the limits of DWYM
audreyt note that this understanding is quite new (around spring this year) 02:38
jmf ok cool
audreyt and hadn't been coded yet
TreyHarris well, you *could* fake it out to make any class at all mixinable, like smalltalk. but it would make the large-software-project types very unhappy and would limit what the optimizer could do 02:41
froh-doh \o/ I made it! My first commit! \o/
audreyt class C { has $!x; method x { $!x } }
class D does C {} 02:42
D.new.x
how is that possible?
svnbot6 r12100 | polettix++ | Added my first experience with slightly-more-than-trivial programming in
r12100 | polettix++ | Pugs!
audreyt \O/
jmf well 02:43
TreyHarris audreyt: by breaking the encapsulation and giving D full access to C's private attributes because D wants it 02:44
jmf there would need to be a distinction between methods i guess
like if C is a role it only gives behaviors that do not rely on state
audreyt TreyHarris: but D does not have a !x slot 02:46
or maybe it has an incompatible one
or do you mean that D.new would also allocate an extra slot
kinda like a "has-a" side table?
I think that's very broken :)
TreyHarris audreyt: yes, the latter. has-a.
audreyt: oh, yes, very 02:47
audreyt but normally 02:48
all accessor is virtual
$.x is actually just calling .x
so they can be readily mixed in
provided the host class has a .x method that can bbehave that way
jmf couldnt you have a role that is basically defined the same way as C in your example? 02:50
TreyHarris audreyt: depends on who's defining "normally". lots of OO books tell you to only define accessors for your API, so any data that you need for any other purpose, even if it doesn't hurt to expose it, should be $!, right? or is there another way to make private-but-virtual?
jmf role C { has $!x; method x {$!x} }
mugwump so if $.x is $?SELF.x, what is $.x($foo) ?
audreyt jmf: that is a good point 02:51
jmf but that does that mean roles are very broken :) 02:52
audreyt actually, S12 line 863 is more liberal than I remembeed :)
jmf lol 02:53
audreyt so it would appear that indeed both can be mixed in in compile time
and at runtime, both would need the help of a new anonymous concrete class
so the difference becomes only that when you mix in a class and use it as a role
TreyHarris audreyt: yes, i just noticed the same thing. maybe it changed? i remember it stricter
audreyt the "super" semantics become different
and I wonder if you also get all superclass methods mixed in for free 02:54
as well as superclass slots
that's a lot to ask for, but why no t:) 02:55
froh-doh ok, the smoke is in place, good night all!
audreyt froh-doh++
froh-doh audreyt: nothing more than some make smoke typing :)
audreyt it takes quite some work efore you can type that line though :) 02:56
jmf ok -- so then the only difference between roles and classes is that you cant instantiate a role? 02:57
Khisanth hopes you can inherit the implementation 02:59
TreyHarris well, i have a bus to catch, back later & 03:00
jmf TreyHarris: bye, thanks for your help
audreyt jmf: even that is not neccessarily true...
(class does SomeRole {}).new 03:01
jmf dammit i thought perl6 was being teacher driven now
audreyt is certainly possible
but SomeRole.new is not, right.
does that make some sense? 03:02
jmf yeah, i just dont really get why
audreyt it's the same as in other languages
if an interface does not demand anything from the class it implements
then you can write a phantom class that does nothing but implement that interface 03:03
and instantiate with that
nothing special about perl6 here
jmf i mean i dont get why you need both roles and classes
audreyt because sometimes inheritance gets in the way
and you'd like to have another form of inheritance that has no notion of depth
I think that's all
jmf what do you mean by depth? 03:04
audreyt .super.super.super
diamond inheritance, C3, etc
the traits paper gives pretty good reasons 03:05
jmf so if a class does a role, you can only call the function the role implements
not any of its parents 03:06
audreyt a role has no parent
jmf i thought a role could inherit from other roles?
audreyt if a role does another role, then it behaves as if all that superrole's methods has already been mixeed in
there's no runtime distinction
jmf right ok i see what you mean by depth now
that makes a lot more sense 03:07
thanks
audreyt np :) 03:08
thanks for asking :)
bbl... 03:09
03:24 Khisanth joined 03:31 cmarcelo joined 03:37 DaGo joined 03:44 hikozaemon joined
stevan audreyt: ping 03:59
cmarcelo anyone familiar with with util/build_pugs.pl, i'm trying to change the GHC command to include a "-Lthird-party/..." but it complains that the third-party/... isn't found. however the script looks like be running from trunk root dir (system("pwd") says so) and if I copy/paste the generated command it work fine.. any idea what that may be? 04:12
04:13 weinig joined
cmarcelo (i was changing the end of build_exe function to include this -L flag..) 04:14
04:18 weinig joined 04:19 weinig_ joined
stevan Is it possible to cite more than one authority for a module? 04:24
can I do this: module Foo-0.0.1-cpan:JRANDOM-www.foo.org-mailto:jrandom@foo.org 04:25
lambdabot Title: foo.org
stevan lambdabot: thanks, but that wasn't really a URL
merlyn close enough! 04:29
stevan hey merlyn 04:30
merlyn Subtext: malicious :)
heya
mr mĆøĆøse
stevan btw - we moved the Moose repo, its now at code2.0beta.co.uk/moose/svn/
lambdabot Title: Revision 1805: /
merlyn ahh, that's why I haven't seen it in a while :) 04:31
when I get a fast connection, I'll have to git-svn it
stevan yeah, this is now public, so wont conflict with $work stuff
merlyn medium speed righ tnow
while sitting at a karaoke bar
tomorrow, at $work, very fast 04:32
stevan cool
sing a song for me :)
merlyn $work = old-school large dot-com
PerlJam IBM? :)
merlyn in fact, I'll dare say one of the first ten URLs I ever typed into Mosaci :)
mosaic
IBM wasn't a dot com until it was cool to be a dot com 04:33
stevan www.nakedkaraokechicks.com?
merlyn most karaoke chicks are better off not being seen naked 04:34
stevan :D
merlyn if that was the case, they'd not be at a k-bar. they'd be at the disco
discos and k-bars attract diametrically opposite people
PerlJam seems to have amnesia when it comes to dot-coms prior to 1995 or so (perhaps hte explosion wiped my memory :) 04:35
merlyn the logo involves a lot of purple and yellow, and perhaps some sort of punctuation indicating some excitement 04:36
stevan is going with PerlJam on this one,.. nothing says excitiment more than IBM
PerlJam heh 04:38
04:43 dduncan joined
TreyHarris hmm. so let's say we have class Point { has $.x is rw; has $.y is rw }. And lots of code gets written for this kick-ass cartesian point class. And then let's say we decide to change the internal storage in some way--maybe we're going to store rho and theta instead of x and y. How do you write a single accessor for .x and .y that works as before, for both LHS and RHS, since there's no underlying storage? is the only way to return a Proxy, or is there sug 04:43
did that get cut off? (it ended "common case?") 04:44
dduncan so, it seems that every last vestage of $?SELF was removed from the synopsis ... though it appears several hundred times in the Pugs distro ...
what should we be using instead to refer to the implicit invocant object in a method?
TreyHarris dduncan: self 04:45
dduncan a bareword ... can that also be spelled self(), or is it best to leave the parens off?
TreyHarris IIRC what TimToady said yesterday,it's a keyword, not a function 04:46
dduncan okay
TreyHarris dduncan: i have a question for you
dduncan yes
and I'll see if I can quickly search'n'replace in Pugs for that 04:47
TreyHarris the r10804 synopsis diff you responded to... did you receive it in p6-l? and if so, do you still have the mail? i never got it and am trying to figure out if my mail is broken
dduncan I got that in my p6l email subscription 04:48
you didn't, but you got my reply?
stevan got a free coffee maker with his p6l subscription
TimToady I am about to check in a pugs with $?SELF removed.
dduncan maybe the message is bottlenecked and it'll arrive in a few hours
I sometimes get messages hours or a day late 04:49
TreyHarris ack, actually, i apparently missed a good many deltas, as the last one prior to your messages was audreyt's 10783, which i received almost exactly 12 hours ago
so that means i'm missing 21 at least
dduncan okay TimToady, I won't do anything with $?SELF, but will doublecheck after your commit
stevan TimToady: any thoughts on my authority question? can we have more than one?
dduncan fyi, one place with a lot of them is the Prelude
or specifically, Prelude.pm.yml 04:50
stevan TimToady: I am asking because I would like to add it into Moose, and I am trying to figure out the best way to store it
TimToady I've fixed all of them except a bunch of old ones hanging around in ancient metamodels.
dduncan I used it a lot too in my ext/ stuff 04:51
probably a third of all occurrances are mine
TimToady fixed those too
(I think)
dduncan I'll do another scan once you commit 04:52
meanwhile, I have $job still to do ... so for now, &
TimToady looks like it passed t/oo, so in it goes
svnbot6 r12101 | lwall++ | Killing $?SELF. 04:55
TreyHarris TimToady: do you mark certain synopsis changes somehow for forwarding to p6-l? i just noticed that even in newsgroups, some revision numbers are skipped. all of the ones between r10784..10803, for instance
dduncan change pulled, now building ...
TimToady the synopses share an svn repo with other things 04:56
TreyHarris ahh. is the repo public?
TimToady stevan: currently we have no syntax for multiple authorities
04:57 Schmoople is now known as Pustulio
TimToady svn.perl.org/perl6 or some such 04:57
04:58 Pustulio is now known as schmooster, schmooster is now known as Schmooster
TreyHarris i was thinking about yuval's comment, and i bet there will be a lot of (mostly) implementationless roles on CPAN that just unify the APIs of various modules. i wonder if there needs to be something provided for that. not syntax maybe, but convention. like Email::MIME::All or somesuch 04:59
dduncan TimToady, I notice a few occurrances in pod files still exist ... are you dealing with those separately? ... I can enumerate them if it would help
TimToady I didn't bother with the ones that come from svn.perl.org, but I think the overview needs fixing still 05:00
05:00 Schmooster is now known as Munchkin
TimToady bbiab & 05:02
dduncan docs/Perl6/Spec/Syntax.pod has one 05:03
docs/notes/p6ast_draft has 3 ... though that may be a historical document you don't want to change?
docs/notes/mmd.kwid also has 2 05:04
I meant those when I said pod files
05:07 Munchkin is now known as Schmooster
PerlJam If we can smart match the authority, that's real close to being able to specify multiple authorities. 05:16
Also, since the version allows ranges, it seems we're just a small step from allowing lists. 05:18
dduncan I would think that multiple authority syntax could look like that for multiple versions ... 05:20
eg, Foo-Bar-(Baz|Quux) or something
encase the third part of the name in parens, and put the variants in there
PerlJam Yep, makes sense to me. 05:21
or curlies even
dduncan either way, having more dashes separating the options looks bad
but just enclose all the options in some kind of delimiters
well, I'll leave this distracting channel and return to $job & 05:22
svnbot6 r12102 | cmarcelo++ | HsJudy: use pugs-fps.
05:22 dduncan left
PerlJam Though I wonder what happens when you've said to use Foo-(1.2|1.5) and you've got both installed. Which does it actually use? 05:23
Now extend that problem to the authorities. 05:24
use Foo-(1.2|1.5)-(XXX|YYY); # Whose module and what version actually gets used?
05:26 Schmooster is now known as UglyBob, UglyBob is now known as Schmooster
PerlJam While the use line is asserting that they are equivalent, what happens when they aren't? how do we help the poor programmer debug the fact that Foo-1.2-XXX's .blah method is really incompatible with Foo-1.5-YYY's .blah method? 05:26
TimToady this makes about as much sense to me as asking for a url with two different http: parts 05:29
the naming authority is merely here to give it a unique name 05:30
05:32 agentzh joined
PerlJam okay, forget the naming authority for a second ... if I say use Foo-(1.2|1.5); which version actually gets used if both are installed? First? Last? Highest version number? 05:32
The first one in @INC? 05:33
TimToady highest would be default unless overridden by site policy somehow 05:36
though arguably it should try alternatives in order 05:37
more like regex than like junctions.
PerlJam And back to the authority, I could see where someone would want a compact way to say "use Foo-*-X, but if it's not there, use Foo-*-Y" That feels like it should be written use Foo-*-{X,Y} or something
TimToady but arguably it *is* a junction
at some point you give up and trap the use failure
agentzh TimToady: can i define LEAVE/ENTER/etc blocks in the file scope (without putting them explicitly into {...})? 05:38
TimToady sure
PerlJam Yeah, but I want perl to try *real* hard before I give up :)
agentzh TimToady: thx :D
TimToady if we say that Foo-(1.2-Bar|1.4-Baz) is possible, then we also get 05:39
Foo-(/whatever/) that can match against version-authority 05:40
and maybe authority is just an addendum to a version.
agentzh TimToady: S04 doesn't discuss the running order of multiple closure traits (say, two END {} in the same scope), so should we assume it's the same as in Perl 5? 05:41
TimToady yes
agentzh TimToady: but there's no CHECK {} in Perl 5 IMHO. 05:42
TimToady yes, there is
agentzh oh, i'm impressed. ;-)
btw, is there a general name for BEGIN/END/CHECK/ENTER/etc blocks? 05:43
gaal Morning all. 05:44
agentzh closure traits?
gaal agentzh: closure traits?
agentzh i'm wondering if there's a general name for BEGIN/END/CHECK/INIT/etc blocks.
PerlJam S11 doesn't say that the highest version wins on ranged/wildcarded module versions (or I missed it again)
gaal yes, we're thinking of the same answer to your question :)
agentzh the pugs test suit uses the name "control blocks", which can easily be confused with "CONTROL {}" 05:45
gaal indeed
agentzh gaal: how about "closure traits"?
gaal please svn mv. agentzh++
agentzh gaal: only if i know a better name. ;-) 05:46
TimToady closure traits seems fine
agentzh TimToady: thanks!
gaal agentzh: we're in vehement agreement :)
agentzh :=)
TimToady that doesn't mean we won't think of something finer tomorrow
agentzh TimToady: wow
gaal TimToady: we're in vehement agreement that source control is useful :)
agentzh is feeling aiming at a moving target. 05:47
gaal is pleased to see MAIN landed, or landing
PerlJam agentzh: welcome to #perl6! :)
agentzh too
PerlJam, thanks.
gaal question: is there some sort of Capture inference? Meaning: 05:48
sub MAIN (\$*args) { parseargs(); ... } sub parseargs($cmd: $foo, @bar) { ... }
TimToady presumably, but I'm not convinced it's worth making visible. 05:49
gaal or pom ~~ Gibbous ?? parse1($*args) :: parse2($*args)
TimToady since you can always call MAIN yourself
and I'd just as soon not see the 50 getopts variants syndrome erupt 05:50
gaal the problem I'm seeing with this is tools with complex command lines, say svk for example
you don't want to put all its command line specification in one function
TimToady you can still process @*ARGS yourself.
gaal TimToady: agreed, certainly, re: many getopt variants.
TimToady this is, in a sense, the first one I've ever written. 05:51
gaal but there's gotta be a middle ground between "Perl 6 does effective getopt for me" to "you can parse @ARGS yourself"
TimToady why?
gaal because if the parsing is great but fails for complex cases, 50 getopt libs *will* evolve :) 05:52
er, my misspeech: 05:53
I just want "Perl 6 does effective getopt for me"
but for its scope to include complex cases :)
(coffee still not fully kicked in)
that means there's gotta be some way to delegate.
TimToady sub MAIN (...) is parsed(/.../) :) 05:54
gaal hmmm.
TimToady what's wanted is a way of matching the front of a list to a sig and removing it. 05:55
@ARGS ~~ s/ :($a, $b, $c) //
lambdabot Unknown command, try @list
PerlJam a sig-eater-iterator? 05:56
:)
gaal name the tail and pass it? 05:57
TimToady well, that's what a slurpy array does already
gaal not sure it has conventional getopt semantics though 05:58
svk --opt1 command --opt2
presumably opt1 and opt2 may have the same name, but the second one should be processed by the "command" handler 05:59
TimToady which is why the default probably only handles leading switches.
gaal or rather, there oughta be a way to have it do that
hmm okay.
up to a mismatch? up to a non-switch arg? 06:00
TimToady up to a non-switch arg or --
MMD dispatch is done after conversion 06:01
gaal okay, that means we don't naturally handle command line styles such as iproute2
not that I'm saying we have to 06:02
(those are commandlines specified in something like bnf)
TimToady gotta leave something for those poor, neglected programmers to do
pasteling "gaal" at 192.115.25.249 pasted "example iproute2 usage" (7 lines, 383B) at sial.org/pbot/18906 06:03
svnbot6 r12103 | cmarcelo++ | * HsJudy: Correcting my rev control mistakes =P
gaal I guess! :)
PNP 06:04
cmarcelo svk sync or pull is giving you "Incomplete data: Delta source ended unexpectedly" ? 06:05
TimToady anyway, that's just @ARGS ~~ /<grammar>/; MAIN([,] =$/) or some such
gaal cmarcelo: yes. 06:06
06:06 YetAnotherEric joined, marmic joined
gaal 12101 was poison? 06:07
TimToady: ooh!
cmarcelo "svn up" seems fine, it may be a problem of incomplete svk metadata maybe?
gaal: r12102 i think
TimToady r12103 svn ups fine 06:08
cmarcelo tks.. i'll grep for the error msg in svk code to find out what's happening.. 06:10
gaal heh, google finds a bug report by agentzh on with this error message 06:20
cmarcelo looks like is a svn thing.. but only popping by svk usage of svn =P
gaal yes; also looks like someone with access to the repo needs to fix it... 06:21
cmarcelo gaal: found any pointers on solution? 06:22
YetAnotherEric what's the error message? 06:24
cmarcelo Dado incompleto: Delta source ended unexpectedly
s/Dado incompleto/Incomplete data/
when svk sync'ing 06:25
YetAnotherEric sounds like an svn wc issue, not sure where that fits in svk though 06:28
06:28 bsb left
YetAnotherEric ask on #svk ? 06:28
06:32 crem_ joined 06:34 cmarcelo_ joined
gaal fixing PureNum to be NRational | NFloat like it should, does this mean I have to lose :>: Double (or Float)? 06:35
sorry, ((:>:) PureNum) Double
06:35 weinig joined
gaal because at first glance it looks like cast = MkNum . NFloat isn't incorrect 06:35
and... do we use Double or Floats internally? 06:36
oldVal uses Double, CapInternal was with Floats 06:37
it would be useful to spell out rules for :>: 06:38
06:39 cmarcelo_ is now known as cmarcelo
cmarcelo audreyt: HsJudy using pugs-fps is on the repo already. i just need to solve that util/build_pugs.pl problem I mentioned before to kick judy in.. and there is this svk thing now too =P i'm going to sleep in a few minutes... 06:42
gaal okay ((:>:) PureNum) Double satisfies injectiveness, so it must be correct... 06:43
06:52 FurnaceBoy joined
gaal so, just to make sure -- it's okay for castBack to lose precision, yes? 06:53
06:54 agentzh joined, kane-xs joined
agentzh are the Chinese parens ōæ½xA3ōæ½xA8ōæ½xA3ōæ½xA9 considered "user-defined bracket characters"? 06:59
07:00 weinig is now known as weinig|zzz
agentzh i've tested many Unicode quote-like bracket character in GB2312, only this one fails in pugs. 07:00
*characters 07:01
gaal could it be there are two versions of the closing bracket?
if so, you must use the one with the lower code point enumeration
agentzh gaal: nope.
gaal: i'll left this one failing in t/syntax/comments.t then. 07:02
*leave
07:04 buetow joined
gaal see src/Pugs/Lexer.hs:60 07:04
check if your code points are there
if not, please add 07:05
agentzh gaal: okay 07:07
how can i test whether a given set of characters is with bidirectional mirrorings or Ps/Pe properties? 07:11
gaal from Perl?
I think S02 discusses that
agentzh gaal: from whatever is fine.
gaal www.fileformat.info/info/unicode/ch.../index.htm 07:12
svnbot6 r12104 | gaal++ | * PureNum encapsulates both floating-point and fractional values
r12104 | gaal++ | * add Val.Sig (not compiled at the moment, waiting on circularity saw)
lambdabot Title: Unicode Character 'ETHIOPIC SYLLABLE SEE' (U+1234)
gaal for different values of 1234
agentzh gaal: thanks
gaal oh that's interesting, the props problem looks like it allows commits but not updates? huh. 07:13
or maybe it's just a warning.
07:15 luqui joined
agentzh gaal: thank you! i've just confirmed from that website that it's pugs' fault since the cn character "FULLWIDTH LEFT PARENTHESIS" is with both Ps property and bidirection mirroring. 07:18
www.fileformat.info/info/unicode/ch.../index.htm
lambdabot Title: Unicode Character 'FULLWIDTH LEFT PARENTHESIS' (U+FF08)
gaal agentzh++
fileformat++
agentzh so i should add that to pugs' Lexer.hs.
gaal yes please 07:19
agentzh gaal: i don't think Pugs should hard-coded these pairs.
*hard-code
it's error-prone.
gaal well, they have to be hardcoded *somewhere*
agentzh heh, scanning the Unicode database with a perl script to generate the list should be better. 07:20
gaal is there a data dump of this that encodes this information? 07:21
agentzh no clue. :(
gaal www.unicode.org/Public/UNIDATA/UCD.html seems to be a good starting point to look, if you're interested 07:22
lambdabot Title: Unicode Character Database
agentzh gaal: looking 07:23
svnbot6 r12105 | agentz++ | t/syntax/comments.t - added many more tests to test various forms of Perl 6 comments.
r12104 | gaal++ | * PureNum encapsulates both floating-point and fractional values
r12104 | gaal++ | * add Val.Sig (not compiled at the moment, waiting on circularity saw)
integral try .../perl-current/lib/unicodre/UnicodeData.txt, gaal, agentzh 07:24
err, that's s/unicodre/unicore/
agentzh gaal: take a look at the new L<...> magic link syntax used in t/syntax/comments.t.
integral: thank you.
gaal agentzh: okay, but did you update util/catalog_tests.pl for this? 07:26
agentzh integral: is there any doc on the format of UnicodeData.txt?
gaal: not yet.
integral no clue, try the README file in that directory
gaal are you planning to? :)
agentzh gaal: yes, of course.
gaal agentzh: okay, cool then :)
agentzh integral: okay. 07:27
gaal I wonder what actually maps a Pe to its Ps
is it the first Ps with a lower code point? 07:28
agentzh no idea. :(
gaal TimToady knows, I'd bet
agentzh UnicodeData.txt looks very nice. :=) 07:30
gaal: i still fail to get LAST/NEXT/ENTER/etc parsed by tweaking Parser.hs. audreyt's guide doesn't work. :( 07:33
gaal agentzh: put up a patch somewhere?
agentzh gaal: okay 07:34
pasteling "agentzh" at 210.22.200.67 pasted "Patch to Parser.hs in order to make NEXT/LAST/ENTER/LEAVE parse (not working yet)" (21 lines, 673B) at sial.org/pbot/18907 07:35
agentzh after applying this patch, i still get the error 'No such sub: "&LEAVE"'. :-/ 07:38
gaal agentzh: edit line 900
add your new traits there
agentzh ah, adding
gaal (you're inside a 'case' that never selected any of your wanted traits) 07:39
agentzh heh, got it!
i didn't look elsewhere. 07:40
gaal maybe also need to be in 899, as appropriate (cf. $x = BEGIN {...}, I don't remember if any of your new traits have that, uh, trait to them)
probably not
agentzh gaal: i know, i know. 07:41
gaal: this part is easy to me. :=)
gaal :)
agentzh anyway Parsec is not too hard to understand.
gaal yay! 07:42
agentzh gaal: thank you for your help!
buubot retch!
gaal np :)
agentzh (bbiab) 07:45
07:49 ruoso joined 07:51 iblechbot joined
agentzh yay, all of them parse now! gaal++ gaal++ 07:55
svnbot6 r12106 | agentz++ | Parser.hs - added stubs for ENTER/LEAVE/KEEP/UNDO/NEXT/LAST/PRE/POST/CATCH/CONTROL blocks, so they can be parsed properly (but executed as an empty expression). 08:00
luqui so say I wanted to implement some of those 08:10
what is the runcore that is making the most progress these days?
agentzh luqui: that will be really appreciated! :=) 08:11
gaal luqui: you can help us with the pugs one 08:17
see src/Pugs/AST/CapInternals.hs
which is not currently compiled, but is slowly broken down and put into src/Pugs/Val*, which is
these are, for now, just the value parts of the AST, but as you can see that's a pretty big part. 08:18
transisioning values is easier than the rest of the runcore, of course. 08:19
also, lumi has started doing some of this too, so coordinate with him so as not to duplicate effort
bbiab& 08:20
pasteling "agentzh" at 210.22.200.67 pasted "Win32 build errors" (22 lines, 1.2K) at sial.org/pbot/18908 08:30
agentzh i swear it's not my fault, since Parser.hs compiled and also ran correctly half an hour ago. ;-) 08:31
btw, "nmake realclean" before "nmake" doesn't work either. 08:33
08:33 elmex joined
gaal agentzh: please look in your Pugs.cabal.in file, in the 'exposed-modules' field 08:35
does it have Pugs.AST.Eval there? (it should...)
agentzh looking
gaal: no 08:36
gaal svn st that file? is it out of date?
luqui gaal, so this CapInternals business.. 08:37
agentzh ah, it's very likely.
up'ing
gaal luqui: yes?
luqui do I port a piece and then run
or is this completely unrunning stuff
gaal luqui: the Val stuff is running 08:38
luqui is that just the default runcore?
gaal you can cast an old val thing to new val with the 'vv' prim
luqui or do I run it in a special way?
gaal just 'make'. then do vv(1/2)
there's also the hijacked `` operator, which constructs a PureStr: 08:39
?eval `1`+`2`
08:39 evalbot_12099 is now known as evalbot_12101
evalbot_12101 3.0 08:39
gaal this shows a PureStr coerced into PureNum
08:39 pmurias joined
luqui so what does the Pure prefix mean? 08:39
gaal luqui: it means "immutable value" 08:40
see S06; we now have 5 value classes
agentzh gaal: thx, it works.
gaal undef, native, immutable, mutable, and extrernal.
agentzh: cool
luqui okay
gaal luqui: in the pugs world, mutable is in STM and external is in IO 08:41
see src/Pugs/Val.hs
luqui I don't see any external in S06
gaal (Pure is in the Identity monad to make poymorphic code easier)
luqui ahh, the id monad *is* useful :-p 08:42
gaal luqui: well, you have a commit bit on Syn :)
I'm not actually sure Perl 6 wants to expose that detaiul
luqui well I'm trying to read about what external means
give me an example of an external value
gaal but maybe it must, because of atomic-{}
a filehandle?
sometihng you can't undo.
luqui okay 08:43
though...
"something you can't undo" describes an action, and externals are values
and seeing as how perl is not haskell, that doesn't make sense
gaal so, currently Pugs.Val has nice automatic coercions -- see the ICoercible typeclass 08:44
well, something on which operations are not generally undoable
luqui that doesn't sound very precise
gaal but okay, if the distinction bothers you just ignore it for now
luqui okay 08:45
I'll work on pure for now and not worry about it
I'll talk to audrey later
08:45 plisk joined
gaal now, one thing you'll notice about the new AST in contrast with the old one is that Pads are moved out of Eval 08:45
svnbot6 r12107 | agentz++ | [t/statements/]
r12107 | agentz++ | created the closure_traits subdir
r12107 | agentz++ | moved control_blocks.t to closure_traits/ as obsolete.t
r12107 | agentz++ | moved control_blocks_ascend.t to closure_traits/ as ascending_order.t 08:46
r12107 | agentz++ | moved control_blocks_descend.t to closure_traits/ as descending_order.t
r12107 | agentz++ | moved control_blocks_rval.t to closure_traits/ as rvalue.t
luqui I think I remember the beginning of that change about a year ago
gaal well, yes, it's taking a while :/
luqui so, I'm still not quite clear where to start 08:47
what is next?
gaal (huh. reflecting on this it becomes clear Code cant' be Pure, since it contains a Pad) 08:48
luqui that's bad
Code is pure
just because it references a pad doesn't mean it is not a value
gaal well, there's a technical problem right now that's needs solving: the various Val types reference each other but we want to keep them in separate files; audreyt is looking into it 08:49
luqui though it's unclear how to do that from the haskell world
gaal but basically, move more and more things from CapInternals to Val* 08:50
finding out problems with the enw design as we go along
luqui I see a lot of type definitions
basically--if you were going to do this, what is the next thing you would port? 08:51
gaal at the point when all of Val is transitioned, we can actuall port the runcore to use it
luqui because there seems to be a fair amount of interdependency
gaal well. I was moving over Sig
but that ran into the circularity thing. 08:52
oh, there's a somewhat separate thing you could look into
Pugs.MOP
luqui "import Pugs.AST.CapInternals"
I'm guessing MOP doesn't compile :-p 08:53
gaal this is based on ideas fleshed out in Perl 5 Class::MOP and Moose
well actually... there's some code in misc/pX/gaal that chases into CapInternals
for the purpose of pretty-printing Haskell values as Perl 6 or Moose 08:54
but if this area is interesting to you there's a lot of metamodel work that can be done
the leads for this are of stevan, nothingmuch, audreyt. 08:55
luqui it is interesting to me in a "I would do it differently, so I'm leaving it to others"
way
gaal there's room for discussion with these guys, but sure, okay 08:56
anymoose: find something that strikes your fancy 08:57
luqui well CapInternals does, but I don't know where to start
let's look at it from another angle
what is a feature not supported by Val that needs to be atm 08:58
gaal signatures/captures :)
but that's saying a bit
luqui uh yeah
so all the easy stuff is done?
gaal most of it.. I'd be happy if you sanity-checked our coercions though. some may well be missing or wrong 08:59
brb
agentzh gaal, integral: hehe. i've found the description of the format used in UnicodeData.txt here: 09:01
www.unicode.org/Public/UNIDATA/UCD....deData.txt
lambdabot Title: Unicode Character Database
pmurias luqui: have you seen the p5p6 effort?
gaal b
luqui pmurias, nein 09:02
agentzh so i think it's not hard to get a (mostly) complete list of user-definable delimiter character pairs.
suppertime & 09:04
09:04 agentzh left
pmurias luqui: it lives at ~/perl6/Pugs-Compiler-Perl6 09:05
luqui where ~ means... 09:06
pmurias ups pugs-repo/perl5/Pugs-Compiler-Perl6
luqui oh, perl5
you said perl6
pmurias a typo :)
the perl6 version live in v6/v6-Compiler 09:08
luqui pmurias, thanks for the pointers
09:11 plisk joined 09:16 lambdabot joined
pmurias luqui: if you have any questions about them feel free to ask me , i'm fairly familiar with them 09:17
luqui okay, thanks
pmurias fglock and clkao are more knowledgable about them thought
luqui: i looked into Parse-Rule and rather liked it 09:21
luqui pmurias, verify that the appearance of $object in Pugs/Emitter/Perl6/Perl5.pm:726 is a bug
pmurias looking... 09:22
luqui Thanks. 09:23
I was trying to use abstractions that perl6 didn't support yet, but it let me anyway :-p
scripty languages are nice that way
pmurias, seeing as how it appears in a comment in the generated code, it seems reasonable that it shouldn't be interpolating 09:25
but i can't tell from the context
pmurias svk pulling... 09:29
the openfounry doesn't work for me now :( 09:33
luqui okay. I will assume it is a bug and fix
pmurias gets back to implementing a pairing heap 09:34
svnbot6 r12108 | luqui++ | Probably fixed an interpolation bug. 09:35
09:36 lambdabot joined 09:43 arguile joined
svnbot6 r12109 | luqui++ | Removed superfluous newline on .perl output. 09:44
09:48 lambdabot joined, jmf left
luqui welp, two one line commits. I feel useful. g'night. & 09:49
09:51 lambdabot joined
pmurias g'night 09:52
09:52 rodi joined 10:06 lambdabot joined
audreyt stevan: pong 10:12
10:13 chris2 joined
cmarcelo audreyt: hi.. I think I did something wrong in a commit (r12102) and it may messed up repo for svk users =P 10:18
audreyt I see that.
froh-doh confirmes 10:19
rodi rodi gets "Incomplete data: Delta source ended unexpectedly" :(
audreyt hm. 10:21
pretty sure it's a svk bug.
or libsvn bug
clkao uhm. 10:24
is there a timebomb or something? why so many svn/svk issues today
gaal moose
audreyt clk svn.haxx.se/dev/archive-2002-12/1261.shtml
lambdabot Title: Subversion Dev: Re: bug? &quot;Delta source ended unexpectedly&quot;
audreyt clkao: svn.haxx.se/dev/archive-2002-12/1261.shtml
lambdabot Title: Subversion Dev: Re: bug? &quot;Delta source ended unexpectedly&quot;
audreyt seems it's a DAV problem and somehow the checksums was corrupted 10:25
I know we can workaround with sync -s
but other people not on this channel will be affected as well
gaal sounds like the repo needs to undergo surgery
audreyt I don't have shell access to svn.openfoundry.org anymore 10:26
if I had I can go in and rm the rev/revprop files ;)
wow. rt.cpan.org 500s on me
clkao audreyt: can you send me details/ i might be able to take a look on train
audreyt back now
clkao: svk pull pugs repo
on rB[BSyncing svn.openfoundry.org/pugs 10:27
Retrieving log information from 12102 to 12109
äøå®Œå…Øēš„č³‡ę–™: Delta source ended unexpectedly
lambdabot Title: Revision 12109: /
audreyt that's it
gaal audreyt: spj just replied to my query on class in hs-boot
audreyt svn can diff it just fine
gaal: ooh. any good news?
gaal saying it's a ghc bug :(
audreyt oh. newtype deriving in hs-boot is also borken
cmarcelo i have to unplug now, but i'll be back ASAP. folks: tips about problem on #svk... back in a bit &
10:27 cmarcelo left
gaal so possibly until 6.6 we're out of luck 10:27
there's not a 6.4.3 planned, is there? 10:28
audreyt 12:24 < froh-doh> plasmaball: just for curiosity, how do you see this?
12:24 < plasmaball> uncomment Smart::Comment in SVN::Mirror::Ra
audreyt praises the mad doctor
10:29 jferrero joined
audreyt gaal: there is one planned because 6.4.2 threading fails on SMP for bsd archs 10:29
but I doubt they'll MFC that
gaal spj sez: "The manual (for 6.6 anyway) says that class decls are
allowed in hs-boot files, but instance decls are not, whereas the code
seems to say that class decls aren't but instance decls are!"
audreyt I can confirm that.
gaal MFC?
audreyt merge from current
ok. plan B. 10:30
can we put the class into a dedicated module?
gaal should we petition for inclusion? this is kinda important for us...
10:30 HXanadu joined
audreyt 6.6 will be out by ICFP 10:31
which is next month
and I fully plan to just depend on it... seems it will be about the same time as 6.4.3 anyway
and includes my Real Objects patch
gaal we cannot, because the class mentions many Pure types
audreyt so we can do OO instead of fake OO in ghc
but surely the class can use the boot to obtain that types? 10:32
Pugs.Val.ICoercible
gaal who's boot?
audreyt in it we import {-# SOURCE #-} Val
gaal it'll need Pugs.Val.*-boot
audreyt why?
Pugs.Val can import them
and then reexprt
gaal well, but Pugs.Val.Str doesn't import Pugs.Val 10:33
audreyt and so for .Class, it can assume Pugs.Val exports all them
10:33 diakopter joined
audreyt right, but it could 10:33
again with SOURCE
gaal so evrybody boots? youch
audreyt alternative seems to be putting the mentioned Pure into the same file as coercible 10:34
maybe we cave in and have Pugs.Val.Pure
and define the clas there
gaal maybe not so bad... wc src/Pugs/Val/* --> 31 144 1085 total
audreyt I think the base pure types that mentioned by coercible can be in one file 10:35
let's call it .Pure?
gaal .Saintly
sure
audreyt but I'd very much like other things, like, junctions, be able to be put into Pugs.Val.Pure.Junction
gaal that import Pure but not the other way around, yes? 10:36
audreyt or maybe Pugs.Val.Base
and then Pugs.Val.Junction imports it
I think that's saner
as ICoercible is arguably one of the base types
*interfaces
gaal curious how crossing metaphors breaks here; "base" is the opposite of "pure" in other senses 10:37
okay, sounds good to me.
we can refactor when 6.6 lands
if we feel the need. 10:38
diakopter sorry to interrupt - anyone want to guide me through compiling ghc on intel mac? or point me to a howto?
gaal have you been deleting things in CapInternals that you'd moved to Val?
diakopter i'll take that as a no :) 10:41
gaal oh, I think my checkouts are all borked. 10:42
rodi diakopter: hackage.haskell.org/trac/ghc/wiki/X86OSXGhc 10:43
lambdabot Title: X86OSXGhc - GHC - Trac
gaal my wc thinks it has uncommitted changes (r12104 for example)
should I sync -s r12103 ?
r12102 rather 10:44
diakopter hey; excellent! 10:45
rodi: thanks (and audreyt)
10:50 HXanadu joined
audreyt hrm. 10:50
gaal: yeah, do that for now, I guess
svk sy -s 12103 //mirror/pugs
but that's very bad :/
diakopter: glad to be of help :) 10:51
diakopter audreyt: is your build from 20060608 updated enough? 10:52
er; new enough?
audreyt yeah
it's the one I'm using :)
gaal good, works, refactoring 10:54
10:55 lollan joined
gaal hmm. class ICoercible where asNative. does this mean Val tself must be in Base? 10:57
or can it be booted? 10:58
audreyt booted 10:59
gaal hmm and class Pure? 11:00
can I misrepresent types in boot? that is if I need an NBuf stub can I just say data ValNative = NBuf !NativeBuf or had I better be honest about it and maintain the variants? 11:07
ugh, I gotta run. putting up the patch so far... 11:13
audreyt: perlcabal.org:~gaal/tmp/valbase.0.patch 11:16
I'll be back in ~8 hr
I can continue then if you don't get tuits.
bbl & 11:17
11:18 cmarcelo joined 11:25 agentzh joined
cmarcelo agentzh: remember in April you had a problem with svk and "delta source ended unexpectedly" ? how did you solve it? 11:28
agentzh has written a Perl 5 program which can tell him whether a character is a valid user-defined delimiter.
cmarcelo: that was what drove me back to svn. :=)
svk made me mad. 11:29
cmarcelo agentzh: svn-only worked fine with that repo?
agentzh cmarcelo: yes
svn never sucks.
i'm glad to see i'm not lonely in the world. (*grin*) 11:30
cmarcelo: IIRC, i modified a bit in svk's Config file and made svk work again. 11:31
clkao it's software
agentzh cmarcelo: but that trick does not always work. 11:32
cmarcelo: i encounter the problem once a month.
clkao audreyt: even the latest dev release on cpan doesn't fithat?
audreyt clkao: of SVN::Mirror::Ra? 11:33
clkao doesn't fix that i meant
agentzh clkao: svk is very nice except that it's not very stable on my machine. ;-)
audreyt I'll try
clkao pesky slow net
cmarcelo clkao: if your talking about latest dev of svk, i used trunk and that problem remains..
audreyt clkao: 0.69_1? 11:34
gaal well that turned out easier than I thought. committed.
svnbot6 r12110 | gaal++ | * Refactor basic ValPure types into Pugs.Val.Base
r12110 | gaal++ | * Look there for ICoercible.
r12110 | gaal++ | If adding PureJunction etc., use Pugs.Pure.Junction.
gaal waves 11:35
clkao yes 0.69_1
audreyt clkao: yeah. still bad
gaal: thanks!
clkao: should I upgrade svn?
I'm on 1.3.2 11:36
clkao no
sho7ldnt matter 11:37
11:37 llama32 joined
llama32 how fast is parrot expected to be when it is more mature? can/will it aproach JVM or Mono speeds? 11:37
audreyt I don't know an answer to that. 11:39
for unboxed, especially numeric operations, parrot is already very fast
since unlike Mono, it's designed to be interpreted
instead of relying on JIT
but currently there is no language that targets both parrot and JVM/Mono 11:40
that runs faster on parrot
not by any margin
I expect in the future it will be much better
llama32 but doesn't it at least allow for JIT? i'm sure i read it is/will/can be JITTed
audreyt but I don't know if it will be comparable
it does
and it's pretty comprehensively JITted on x86
and ppc
but that's for unboxed operations
the object operations, that is the PMC vtable dispatch 11:41
currently always assume that it can be overriden at runtime 11:42
and as such carries an inherent speed hit. but for most dynamically-typed languages that's actually correct behaviour
but as I said, because no comparable implementations exist -- besides ironpython vs parrot/python 11:43
(which ironpython wins handily) 11:44
it's kinda hard to say at this point. I'm sure that it will get much better when e.g. Tcl folks finishes the completeness goal and can move to optmization goal.
llama32 hmm 11:45
svnbot6 r12111 | agentz++ | t/syntax/comments.t - added more tests for Unicode-delimited embedded comments. (one test is mysteriously failing, audreyt?) 11:53
11:53 GeJ joined
agentzh the delimiters \xFF08 and \xFF09 are already listed in Lexer.hs, but they don't parse. weird. 11:53
nothingmuch seen luqui? 11:54
jabbot nothingmuch: luqui was seen 2 hours 4 minutes 48 seconds ago
nothingmuch urf
did he go to sleep?
11:55 bpphillips joined
svnbot6 r12112 | agentz++ | comments.t - minor tweaks. 12:08
12:15 tup joined
jferrero is away: Ocupado... ahora vuelvo... 12:20
svnbot6 r12113 | agentz++ | t/statements/closure_traits/rvalue.t - fixed the die_ok test.
12:20 lisppaste3 joined 12:28 Limbic_Region joined, llama32 joined
cmarcelo in util/build_pugs.pl (around line 276) adding " -Lthird-party/... " to ghc command line is supposed to work? when calling "make" it complains about path not find, copying and pasting the command that it prints, works fine. any idea? (AFAIK, when build_pugs issues the command it is in pugs root dir). 12:33
svnbot6 r12114 | agentz++ | [t/statements/closure_traits]
r12114 | agentz++ | added the new test file multiple.t which tests multiple occurrences of BEGIN/CHECK/INIT/END blocks.
Limbic_Region oh hey, I got a really neat error building pugs this morning 12:36
"ghc.exe: panic! (the `impossible' happened, GHC version 6.4.2):", lookupVers1 PugsziASTziInternals envPos{v} 12:37
rgs ghc makes the impossible possible
Limbic_Region tries a realclean to see if that magically fixes the problem again
rgs - well, if you had suggested to me a few years ago there would be a Perl6 implementation on a functional language such as Haskell, I probably would have said impossible 12:38
of course, I am still mostly ignorant of Haskell and it is deep magic to me how this all works 12:39
rgs well, I was also referring to the Old Saying, "makes hard things easy and impossible ones possible" :)
llama32 i don't "get" functional languages...
audreyt Limbic_Region: yeah, we fixed that a while ago... 12:41
Limbic_Region: if you rm the Internals.hi and Internals.o
as well as .hi-boot and .o-boot
in dist/build
in dist/build/src/PugsAST/ 12:42
then it should work
realclean of course would work as well
Limbic_Region realclean already performed
audreyt k
Limbic_Region but thanks
xerox llama32: functional languages do have functions as first class citizens - this means you can pass them as arguments and return them from other functions. 12:43
Limbic_Region llama32 - I have a hard time getting functional languages too because my brain does not think recursively
other aspects of it being functional languages such as higher order functions (or first class functions) is trivial
12:44 ludan joined
Limbic_Region another hard thing for me to get is to be thinking in terms of side-effect free functions and when it is right to use a monad versus when is it better to rethink about your situation to not use a monad 12:44
xerox Monads *express* effects, so there is no "duality". 12:45
Limbic_Region in fact, the last year and a half or so - my perl has been pretty functional from the extent that it can be
xerox - I think you missed my point - side-effect free functions require thinking a certain way 12:46
I do not easily think that way so it is hard for me to know when I am just not thinking about a problem in terms of functional languages or when I should rely on a monad 12:47
agentzh ?eval my $code = '{ END { 123 } }'; eval $code;
evalbot_12101 undef
xerox I think I understand, but it is simple once you realize there are no side-effect-ful *functions* in Haskell.
agentzh ?eval my $code = '{ BEGIN { 123 } }'; eval $code;
evalbot_12101 123
agentzh i wonder why eval { END {...} } returns undef.
Limbic_Region xerox - trust me, it is not simple (for me) as I have tried at least a dozen times to "get" Haskell
Limbic_Region considers himself fairly intelligent
agentzh audreyt: is it a bug? 12:48
xerox Maybe I should be more precise.
A function in Haskell is a value whose type is construced by the -> type constructor.
audreyt I don't think it's a bug.
it havn't been run, it doesn't have a value. 12:49
the spec agrees with me :)
xerox Values of type IO a are called IO-actions returning a value of type a. More generally, values of type Monad m => m a are called monadic actions returning values of type a.
audreyt the END{} doesn't have a * in S04
so it can't be used as an expression
agentzh audreyt: but the outer closure should return something like a handle.
xerox But I don't know what is your problem, in fact. 12:50
agentzh is it a use of rvalue of END {...} ?
Limbic_Region spares xerox the trouble and says that he has had this explained to him several times and he just doesn't get it
audreyt agentzh: no. you are evalling an empty block
llama32 Limbic_Region: it seems to require a more conventional mathematical way of thinking than with imperative programming... and i'm failing maths :)
agentzh audreyt: oh, i see. thanks!
audreyt agentzh: which evaluates to undef
np :)
(same as in perl5)
agentzh heh
Limbic_Region llama32 - I do exceptionally well in many areas of maths but fail miserably at others 12:51
same with programming I guess - my brain just isn't wired right
mauke Limbic_Region: have you tried OCaml?
Limbic_Region mauke - no but I hear good things 12:52
mauke you may find it more accessible than haskell; e.g. you can still do while loops, variables, simple I/O etc 12:53
xerox Limbic_Region: as you please.
Limbic_Region in any case, it isn't important for me to become an exceptional Haskell hacker - eventually I will gain average competency
that's good enough for me
xerox On the other hand I can't make more than a veeery few steps in the perl land :) 12:54
audreyt hm. I wonder if it's a svn 1.1.1 bug. 12:55
on the openfoundry server's dav
llama32 i'm interested in lisp/scheme... i can grasp the whole recursion instead of looping bit, but pure functional haskell just hurts my brain
mauke where does it hurt? :-) 12:56
llama32 all of it... it's like it short circuits or something... 12:57
Limbic_Region my problem with recursion isn't that I don't understand it - when I see someone else's recursive solution I usually understand it relatively quickly - it's just that my brain doesn't think that way and coming up with my own is difficult. I naturally write iterative routines 12:58
svnbot6 r12115 | agentz++ | [t/statements/closure_traits/] 12:59
r12115 | agentz++ | added the new test file eval.t which tests closure traits generated at runtime.
Limbic_Region even wrote a perl.com article about iterators
mauke Limbic_Region: can't you just mechanically convert iteration to recursion?
audreyt ?eval $?PUGS_VERSION
evalbot_12101 \"Perl6 User\'s Golfing System, version 6.2.12, June 26, 2006 (r12101)"
agentzh w00t!
&Test::todo can use this. 13:00
13:00 kanru joined
Limbic_Region mauke - AFAICT, it is much easier to turn recursive functions into iterative ones 13:01
at least the iterative solutions that I come up with look nothing like their recursive counterparts
llama32 i think my main problem with pure functional programming is that i'm more interested/experienced in the kind of code that doesn't naturally fit in with functional programming - 2D games with all the blitting and the optimizing and the pain in the brain, windowing systems, network protocols, etc.
mauke nah, then you need an explicit stack of contexts and memory management and stuff :(
Limbic_Region *shrug* - we could spend days discussing why my brain is all fubar and incapable of grok'ing Haskell but I think time would be better served on improving Perl 6 13:02
Limbic_Region shuts up now
svnbot6 r12116 | agentz++ | [t/statements/closure_traits/obsolete.t]
r12116 | agentz++ | removed redundant tests.
mauke heh
Limbic_Region audreyt - correct-a-mundo, a realclean indeed fixed the impossible problem 13:03
audreyt svk sy -s 12103 //mirror/pugs | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg 13:03
agentzh bedtime & 13:03
13:03 agentzh left
audreyt (svk sy -s 12103 //mirror/pugs) is temp workaround 13:04
will be investigating it with openfoundry people
13:07 lisppaste3 joined 13:09 froh-doh joined 13:10 fiendskull9 joined
Limbic_Region audreyt - what is the svn svk bug you are seeing? 13:11
Limbic_Region hasn't experienced any problems this morning
cmarcelo Limbic_Region: evan_tech.livejournal.com has a post on how I/O in haskell works, maybe you want to read it. 13:15
Limbic_Region cmarcelo - I am fairly sure I have figured out the only way I am going to learn Haskell 13:16
as I have read lots
I am just going to need to start with small simple programs and have a tutor show me what I am doing wrong and why
and as I build bigger and more complex problems hopefully the need for a tutor will go away 13:17
I just haven't looked for someone stupid er, um kind enough to hold my hand yet
audreyt #hasell has plenty of candidates... 13:19
#haskell even
xerox waves his hand 13:20
Limbic_Region well xerox then - how bout starting on Monday
xerox Sounds good. 13:21
audreyt ooh.
Limbic_Region my access to #haskell is limited to Juerd's willingness to add it to feather's CGI:IRC so we may just need to go into a /msg session
13:21 explorer__ joined
xerox No problem, just ask. If I am not around ask #haskell, they are exceptionally kind to newcomers. 13:21
audreyt Juerd: #haskell on feather please? :) 13:22
wolverian Limbic_Region, I always spend a month doing practically nothing in the language I'm learning.. then one day, I find out I understand the concepts that were just jargon before to me. my use of the language rises from there on. with haskell it took me four months, but now I'm finally using it. I think my point is: have patience.
audreyt four months seems like a fairly good amount... 13:23
I took about that long as well to be comfortable
Limbic_Region well, I tend to be a break-through thinker 13:24
I will spend x amount of time scrutinizing over what seems like the most basic concepts
cmarcelo is it ok to use irssi @ feather? to be on #svk? ($HOME is offline)
Limbic_Region and then when it clicks - I just get it and rapid growth comes
audreyt cmarcelo: sure!
many here use feather as irssi jumpboard
me included 13:25
cmarcelo audreyt: take a peek when you can on my build_pugs question, its the only blocker to commit judy integration with p(not break) > 0.. 13:29
gaal To people who are trying to understand side effects in functional languages, this writeup might be useful: 13:30
cmarcelo (does "take a peek" even exists in english? s/take a peek/look/...)
gaal community.livejournal.com/evan_tech....html?nc=8
lambdabot Title: evan_tech -- how i/o can work in a purely functional language
audreyt ooh.
cmarcelo: use abs path? 13:31
-L$path
Cwd::abs_path it
wolverian gaal, that journal is well written. do we have the author here? :)
audreyt because I think the building does chdir itself
I'm afraid I need to sleep :/ 13:32
audreyt spent too much time tracing SVN::Mirror::Ra
cmarcelo gaal: i've just pointed it mins ago =) 13:33
Limbic_Region audreyt - laws of diminishing returns - sleep, you will be more productive
gaal isn't here, so he missed cmarcelo's pointer. oops :) 13:34
svnbot6 r12117 | gaal++ | * add %*CONFIG<perl_compiler>, conjecturally to be defined by all
r12117 | gaal++ | implementations, for use in &Test::todo etc.
cmarcelo audreyt: tks.. i'll try it.. 13:35
gaal wolverian: unfortunately I've not been able to lasso him in yet 13:36
but he's a pretty cool hacker!
[particle] gaal: i haven't seen any mails discussing Test::todo etc. did i miss them, or have there not been any? (been away for two days, bday vacation) 13:38
Juerd audreyt: Please go ahead.
gaal [particle]: happy birthday! no, I don't there there were any mails about it. see TASKS in pugs 13:39
audreyt: whart do we do with Code? it oughta be Pure, but it has a Pad. That's the present pending design problem in newval 13:40
[particle] gaal: thanks, and hrmm... there are other shared test questions to ask, i think they need summarization and discussion. i guess i'll write it up then. 13:41
gaal [particle]: please do! 13:42
audreyt gaal: that's not a problem
gaal: two pure compares the same if their value is the same
their value includes Pad's SKID
so that's fine, I think. 13:43
gaal audreyt: you're saying a Code has an ObjId of the Pad, not a Pad? OK...
audreyt er no
gaal that does imply lifting Pad to Perl6 objectspace?
audreyt I'm saying it has a Pad
but that is a fine.
as long as none of its as* involves the Pad 13:44
for all purpose it's still operating in P monad.
gaal hmm. okay. can't copy Codes though...
(also, minorly, this means another circularity coming up, but probably OK with hs-boot) 13:45
audreyt think about Se Val
eq Val
that is PureSeq
it's in Pure
but the Val may actually have Mut component
gaal indeed 13:46
audreyt does that stop us from putting it in Pure? no :)
gaal unsafePerformImpossible
13:46 explorer__ left, jferrero joined
gaal Okay, I have to remanifest my absence. bbl :) 13:47
gaal eigens &
xerox perform && impossible ==> False
audreyt *wave* & 13:50
fglock clkao: Test.pmc is shipped because it takes too much ram to compile - this way I can run the tests in my tablet more easily 13:51
14:13 vel joined
svnbot6 r12118 | fglock++ | v6-Compiler - Grammar/Native.pm is more friendly to does-less backends 14:20
r12119 | fglock++ | v6-Compiler - v6::AST provides v6::AST.node($match,$node_type) 14:26
r12119 | fglock++ | provides '$match does $node_type', but can be overriden in backends
r12120 | fglock++ | v6 - added 'no strict 'refs'' in new namespaces 14:41
r12121 | fglock++ | v6-Compiler - 'make clean' deletes *.pmc; v6::AST::node() is not a method 14:47
15:06 weinig joined 15:12 cjeris joined 15:18 lichtkind joined
lichtkind hiho brave lamda camels 15:21
fglock are p6p6 people camelcamels? 15:27
stevan fglock: do you mean p5p6?
fglock stevan: no, v6-Compiler - perl6 compiler written in perl6 15:32
v6/v6-Compiler in svn
stevan fglock: hmm... circular camels maybe?
I am picturing a camel eating its own tail 15:33
or if we go with the "tie-ing the knot" metaphor,.. a camel tied in a knot
rw-rw-r-- glues a hump on his stupid puppy and takes a picture of it chasing its own tail.
lichtkind your crazy folks ... im currently at home here 15:51
16:02 pdcawley joined
gaal The Hump Oroborous 16:03
16:06 fglock left 16:08 HXanadu joined
[particle] question on p2 today... should C<< rule foo { <bar>* } >> be considered C<< rule foo { <?ws><bar>*<?ws> } >> or C<< rule foo { <?ws>(<bar><?ws>)* } >> ?? 16:11
or, should i forward that question to p6l or p6c ?
16:12 hexmode joined 16:13 Limbic_Region joined 16:15 pdcawley joined 16:22 Psyche^ joined
froh-doh ?eval my $a = 42; my $b = 42; $a =:= $b 16:26
16:26 evalbot_12101 is now known as evalbot_12121
evalbot_12121 Bool::True 16:26
froh-doh is puzzled 16:27
16:28 weinig joined
froh-doh Data.pod reports this $a =:= $b test as "false, of course" - is this a known bug or is the doc wrong? 16:28
I mean doc/Perl6/Overview/Data.pod 16:29
cjeris anybody else run into ghc internal panic while building r12121 Pugs.Compile.Pugs on Win32/ghc 6.4.2? I did but it didn't come back when I restarted the build 16:32
Limbic_Region cjeris - yes 16:33
there are 2 ways to fix it
one is a realclean
the other is to check the log history for audreyt telling me the alternative
(after I already started the realclean)
cjeris :D
Limbic_Region looks for you
oh, btw, I have an update on the heap
bbiab
"if you rm the Internals.hi and Internals.o as well as .hi-boot and .o-boot in dist/build in dist/build then it should work" 16:35
update on the heap
apparently the default for GHC is to set the heap to unlimited
unfortunately, on Win32 16:36
TimToady froh-doh: =:= may or may not be true for two constants. depends on whether they're represented by the same object.
Limbic_Region the limit for unlimited is the limit we are seeing when the build fails
TimToady should use === or eqv for value comparisons
Limbic_Region so it isn't that pugs isn't picking up the config.yml - it is that it is already greater than what GHC is limited to (on Win32 32bit ) 16:37
sorry :-(
froh-doh TimToady: now I see, the comments specify two different "cells", but in my quick test they're probably the same 16:38
cjeris Limbic_Region: but why does it work right when you rm dist/build/Pugs/Parser.o and restart?
[particle] thinks ghc has a funny definition of unlimited
16:38 Psyche^ is now known as Patterner
Limbic_Region cjeris - you mean the heap? 16:39
audreyt $a =:= $b above should be false
Limbic_Region you shouldn't need to remove anything - just restarting the make should work
it is because the heap is empty (no residual stuff from earlier parts of the build)
cjeris Limbic_Region: ok, thanks a lot! 16:40
cjeris thinks again about installing VMware 16:41
audreyt froh-doh: =:= in pugs is broken
it should be testing pointer equality in C land
I'll do a (int)(void*) on them 16:42
Limbic_Region does Pugs build on Cygwin?
audreyt (weakly typed languages)++
Limbic_Region that should be an alternative cjeris
obra grins at audreyt
froh-doh audreyt: ok, so I've to learn what these "cells" are :)
audreyt froh-doh: Scalar objects. 16:43
svnbot6 r12122 | audreyt++ | * Make =:= Work For Real by testing container's pointer equality.
audreyt froh-doh: conceptually $x is bound to a object of type Scalar
cjeris Limbic_Region: the last time I looked at the directions it was even more "danger will robinson" than win32
audreyt that manages the storage for it
practically we can compile that away most of the time
but conceptually it's always "backed" by an object
think perl5 tiescalar
froh-doh audreyt: you're asking too much (tiescalar). Is it correct that when I have no binding every scalar variable holds a unique cell? 16:45
audreyt yes.
froh-doh ok, thanks 16:46
audreyt depending on its declarator, they may be rebound automatically
for example "my $x" gets rebound to a fresh Scalar
whenever its surrounding Block is entered
constrast "state $x" which does not do that. 16:47
froh-doh oh, correct. I was thinking only in terms of "my" 16:48
Limbic_Region cjeris - well, I am stuck with Win32 at work which is where I do most of my playing so I will suffer the hiccups
audreyt I hope SPJ gets his interns
so that they can make win32 work much better
though I'm not overly fond of VC++ express 16:49
but GHC doesn't build with either native-mstools or native-cygwin is quite painful
Limbic_Region audreyt - how difficult would it be to make t/examples/examples.t run every .pl file in /examples and below through pugs -c to verify they at least parse? 16:50
for instance, examples\cribbage_scoring.pl doesn't currently compile
audreyt Limbic_Region: ooh great idea
maybe it can even use ext/File-Find/ 16:51
Limbic_Region but it isn't reflected in t\examples\examples.t
ahh - wasn't sure if that was implemented yet
audreyt please go ahead and do that
Limbic_Region so does that mean there is a File::Spec too?
audreyt surprisngly yes
also in ext/ 16:52
Limbic_Region ok, next question
is there a way to run an entire program inside an eval block so that I can verify it runs as well as parses even though the output may not be correct?
audreyt an interpreter api? 16:53
[particle] v6 is p6p5, v6-Compiler is p6p6, correct?
audreyt interesting thought
[particle]: correct
Limbic_Region: not currently. system out and check rv 16:54
is currently more practical
Limbic_Region audreyt - ok, let me play with that
audreyt yay
Limbic_Region++
audreyt goes back to sleep
Limbic_Region I still might need someone else to check it in
Limbic_Region hasn't tried a check-in since the new firewall proxy combo
checkouts work so I don't see why there should be a problem though 16:55
audreyt ?eval my $x = my $y = 1; $x =:= $y 16:57
16:57 evalbot_12121 is now known as evalbot_12122
evalbot_12122 Bool::False 16:57
audreyt ?eval my $x := my $y = 1; $x =:= $y
evalbot_12122 Bool::True
audreyt yay
zzz &
froh-doh ?eval my $a = 42; my $b = 42; $a =:= $b 17:00
evalbot_12122 Bool::False
Limbic_Region out of curiosity, in ext/FindBin - is the pod just typo'd where is says perl should it be pugs?
17:03 justatheory joined
Limbic_Region ok - I would appreciate some advice on some issues I am facing with writing some better tests for examples 17:07
the first is that I have to use modules in ext which are not part of @*INC
unfortunately, I can't modify @*INC to specify ext without knowing where the root pugs directory is 17:08
of course there is FindBin but guess what - it is in the ext directory
catch-22
ideas?
17:09 vel joined
Limbic_Region . o O ( is there anybody out there? Just knod if you can hear me ) 17:10
cjeris shaves his eyebrows 17:11
17:12 HXanadu_ joined
Limbic_Region cjeris - as long as you aren't also cutting off your nipples 17:12
Limbic_Region wants to avoid hardcoding stuff but right now that seems like the sanest way forward
cjeris cut _off_ ? I don't remember that part
Limbic_Region thinks he is remembering correctly but is not 100% positive 17:13
in any case - I welcome any and all suggestions - lurkers, you know who you are
cmarcelo Limbic_Region: go hardcoded, when it works, try to make it better (?).. 17:16
Limbic_Region: later, should be easier for others to help with something concrete already working.. but that's just a random idea.. =) 17:23
17:26 fglock joined
Limbic_Region cmarcelo - actually, $work has come up so I will table it for this weekend (extremely unlikely as it is my wife's bday) or next week 17:31
cmarcelo fine.. (maybe appending to TASKS is a good thing to do) 17:38
17:40 asz joined 17:53 justatheory joined
buu Limbic_Region: Yo 17:53
Limbic_Region do you have access to the apache logs? 17:55
err, probably should /msg this
svnbot6 r12123 | fglock++ | v6 - Perl6Prelude overrides the 'v6::AST' module from v6-Compiler 18:01
r12124 | fglock++ | v6-Compiler - t/01-native.t - tests pass! 18:04
fglock biab& 18:07
18:23 weinig joined, Excedrin left 18:34 prefiks joined
svnbot6 r12125 | fglock++ | PCR - token always set '$/' 18:34
r12126 | fglock++ | v6-Compiler - t/01-native.t - 4 tests pass 18:38
18:39 tup joined 18:40 froh-doh joined 18:43 DaGo joined
gaal hello! 18:49
18:51 Spania32 joined, Corion joined 18:52 Corion left
cmarcelo gaal: hi 19:05
[particle] gave gaal some email to chew on 19:10
19:25 weinig joined
gaal [particle]: did it come with some kind of sauce? 19:31
svnbot6 r12127 | lwall++ | Long promised slaughter of ./ notation.
gaal aw
gaal would have loved it if that could wait till we actually had pragmas
[particle] read that as /. notation # aka troll notation 19:32
gaal [particle]: good summary of the antler at hand 19:34
[particle] thanks! 19:35
[particle] goes back to grazing on four legs
gaal I would have added a link to the #perl6 discussion, to save time getting the talk started 19:36
[particle] wonders if parrotcamels have four legs...
gaal pegacamels?
[particle] gaal: #perl6 is logged? coming from #parrot-land i'm not used to that
gaal of course! irc.pugscode.org
(redirects to colabti.de somewhere but I can never remember the precise url) 19:37
[particle] well, okay. i've learned something new today. time to go home.
wait... i *am* home.
TimToady colabti.de/irclogger//irclogger_logs/perl6
lambdabot Title: #perl6 irc log
gaal funny thing about the word "Pegasus" - in Hebrew "sus" means horse 19:38
TimToady when did we discuss it?
[particle] tuesday, perhaps?
gaal TimToady: Test::todo? sometime last week. there's a search feature
19:39 cognominal joined
gaal goes back to depundency decirculation 19:39
[particle] looks like monday, searching for [particle]
starting ~13:47 19:40
?eval PRE {} POST {} 20:01
20:01 evalbot_12122 is now known as evalbot_12127
evalbot_12127 undef 20:01
[particle] ?eval PRE {} ; POST {}
evalbot_12127 undef
[particle] ?eval BEGIN {} ; BEGIN {} 20:02
evalbot_12127 undef
[particle] ?eval BEGIN {} BEGIN {} say 1
evalbot_12127 OUTPUT[1 ] Bool::True
[particle] ah, okay. thx, evalbot!
gaal ?evil BENIGN {she loves me not { SHE LOVES ME } } 20:07
TimToady maybe we should rename END to BEGONE 20:11
gaal BALANCES { ... } 20:12
TimToady BEGUINE { 'shall we dance' }
svnbot6 r12128 | fglock++ | v6 - platform-specific AST moved into lib/Pugs/Runtime/Perl6AST.pm 20:16
r12129 | fglock++ | v6 - updated MANIFEST 20:25
r12130 | fglock++ | v6-Compiler - v6::AST added 'see also' to Pugs::Runtime::Perl6AST
20:30 bpphillips left 20:37 jferrero joined 20:38 weinig joined
gaal journal up 20:42
20:44 fglock joined 20:57 SageLT joined, weinig is now known as weinig_, weinig_ is now known as weinig 21:10 Jedai joined
svnbot6 r12131 | gaal++ | * Add Sig and Code (and prereq Param etc.) to Pugs.Val.Code. 21:13
r12131 | gaal++ | No ICoercible instances yet, but those should be fun to write!
r12131 | gaal++ | * Due to what seems like a bug in GHC, hs-boot will not allow
r12131 | gaal++ | us to break circularity when consumed types have derived
r12131 | gaal++ | instances. For now, we resort to the dreaded #include.
gaal zzZ& 21:15
svnbot6 r12132 | Sage++ | Made some changes to the translator to make the regex parser a bit smarter about counts vs. literal '{' and '}'. With these revisions, ~98% of a version of perl5's t/ is handeled without critical errors. 21:20
SageLT now to just nail down the problems encountered in the last ~2% that won't translate... 21:21
[particle] using popular mathematics, that should take about 98% of the time, correct? ;)
SageLT Sounds about right :) 21:22
Unfortunately
21:24 marmic joined
froh-doh I've seen (docs/Perl6/Overview/Data.pod) that scalars should support the "exists" method, but it's neither implemented nor included in the test suite. Is the idea still alive? 21:44
svnbot6 r12133 | fglock++ | v6 - Pugs/Runtime/Perl6AST - defines backend specific 'v6::AST::Base' 21:53
r12134 | fglock++ | v6-Compiler - v6::AST::Native and v6::Grammar::Native work together; 21:56
r12134 | fglock++ | - generating AST nodes from a string work;
r12134 | fglock++ | - 6 tests pass
r12135 | fglock++ | v6-Compiler - added emitter tests; error: "I hate ambiguous software at /usr/local/share/perl/5.8.7/Sub/Multi.pm line 84." 22:02
fglock would it be ok for the AST nodes to know how to emit code, or should this function be completely separated? 22:07
22:10 soisoisoi joined 22:12 diakopter joined
fglock v6-Compiler will look like: [ Front-end -> Grammar -> AST -> Emitter ] - the '->' part is made of backend glue code 22:22
AST -> Optimizer -> Emitter, even 22:23
22:26 dduncan joined 22:27 froh-doh is now known as anonymous_newbie
dduncan so, by the channel header, it looks like everyone's facing the "Delta source" problem, and so skipping r12102 is recommended 22:27
I also heard there was look into actualy fixing the problem
but I suppose that hasn't resolved yet, so I'll skip the version too 22:28
22:28 anonymous_newbie is now known as froh-doh
svnbot6 r12136 | fglock++ | v6 - svn properties 22:29
r12137 | fglock++ | v6-Compiler - set svn properties 22:32
dduncan that worked 22:41
svnbot6 r12138 | fglock++ | v6-Compiler - clean up debugging code
22:42 fglock left
diakopter dduncan : what do you mean by "skip the version" 22:54
oh 22:55
i'm not using svk
dduncan yes, oh
if you're using svn client, I think it simply gets the latest, with actual version being less important 22:56
svnbot6 r12139 | lwall++ | valid -> SKID
TimToady I've had no trouble with svn, but I almost always do make realclean anyway, so might not have seen any issues.
22:57 cognominal left, cognominal joined
dduncan the problem in question was with the syncing portion that copied from a remote to a local subversion server ... suggesting that what's in one's checkout dir is not a factor in the problem 22:58
TimToady I am not a datapoint, but I play one on IRC. 22:59
22:59 cjeris left 23:00 weinig is now known as weinig|coffee
dduncan fyi, a couple of docs/ files still have $?SELF references in them 23:00
specifically, mmd.kwid and p6ast_draft
but I don't know if those are considered frozen historical documents or not 23:01
s/historical/state in time/
nothingmuch seen luqui? 23:13
jabbot nothingmuch: luqui was seen 13 hours 24 minutes 46 seconds ago
23:20 fglock joined
svnbot6 r12140 | lwall++ | Missed a valid -> SKID 23:20
23:20 fglock joined
fglock clkao: is there a workaround for the 'I hate ambiguous software' death? (v6-Compiler t/01-native.t) 23:25
TimToady um, not writing ambiguous software? 23:30
fglock but thatōæ½xB4s what multi subs are about :) 23:32
TimToady you asked for a workaround... ;p 23:34
23:36 fglock left, fglock joined 23:37 weinig|coffee is now known as weinig
dduncan fglock, what character encoding is your IRC client set to? 23:37
ideally, it would be UTF8 23:38
fglock dduncan: it is iso-8859-1(cgi-irc in feather)
changing to utf8... 23:39
dduncan that's good
23:39 fglock joined
dduncan then you're curly-quote won't look like a yen sign 23:39
s/you're/your/
fglock ōæ½xB4 23:40
oops
it's a keyboard config problem - I'm on someone else's computer :) 23:42
dduncan now, a test of my own: this should be a Yen sign:[Ā„] 23:43
fglock yes
23:43 mauke_ joined
dduncan and so it seems that the IRC log for #perl6 also needs to be updated to utf8 ... it doesn't handle multi-byte chars properly 23:44
that is, colabti.de/irclogger/irclogger_log/...2006-08-11
lambdabot Title: #perl6 2006-08-11,Fri
TimToady That's correct--it doesn't, and it even forces utf-8 off if you refresh, grrr. 23:45
dduncan afaik, it has been that way for awhile, not utf8-native, but not sure if it was intentional or not 23:46
23:46 marksto1 joined
TimToady I think it's actually the http header that is forcing iso-8859-1. Can't see it in View Page Source. 23:47
doesn't matter if you set your default to utf8 either. 23:48
or try various guessing modes.
dduncan and I do set my browser default to utf8
TimToady something is telling it not to guess.
froh-doh probably this could be worked around setting the encoding in the HTML header 23:49
fglock v6.pm has 6 'pass' in cpan testers :)
dduncan the problem may also be that it is "escaping" the characters
but that escaping is in byte mode
TimToady it works fine if you force it.l
dduncan looking ...
TimToady I just get tired of forcing it every darn time I bring up a new page. 23:50
dduncan well, I've confirmed its not using &nnn; stuff
and that forcing it does make it work 23:51
mystery solved ... 23:52
I telnetted to the site and got this in its header: 23:53
Content-Type: text/html; charset: ISO-8859-1; charset=iso-8859-1
so the server appears to be working in byte mode, just passing the output through as it was input by people, but declaring an inappropriate default for the header
TimToady http header says: 23:54
Content-Type: text/html; charset: ISO-8859-1; charset=iso-8859-1
dduncan that's what I said, yes
or that's what I meant
TimToady well, you didn't believe me, so I didn't believe you. :P
actually, just didn't backlog...
dduncan I didn't so much believe you as took what you said as an assumption, so I looked it up to make sure 23:55
so I looked at the next level behind "view page source" 23:56
anyway, on to other things ... 23:57
froh-doh www.htmlhelp.com/tools/validator/charset.html 23:58
lambdabot Title: HTML Validation: Using Character Encodings
23:58 mauke_ is now known as mauke 23:59 kane-xs joined, aufrank joined
dduncan these days, I make a point of just having native end-to-end utf8 as much as possible 23:59