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.
gaal calls it a day 00:00
nothingmuch eek, server misconfig, i have to make it unforbidden
good night, gaal!
gaal bye people!
theorbtwo For that matter, jcwren wouldn't mind giving whomeever an acocunt, I bed.
bet.
jabbot pugs - 821 - TODOs for .bytes, .codes, .graphs
theorbtwo Later, gaal!
gaal bye :)
PerlJam Why would whomeever need an acocunt?
and what's an acocunt anyway? 00:01
and who is whomeever?
:-P
Limbic_Region everyone knows James can't speel
nothingmuch PerlJam: err, to store files
or run pugs
or send spam 00:02
lightstep pugs isn't installed
but ghc6.2 is
nothingmuch i never made install pugs 00:03
it's svn in my homedir
but i usually run it on syeeda, my laptop
or safta, a very strong box at work
lightstep do i have web access too? 00:04
nothingmuch lightstep: working on it 00:06
my webserver is a bit not configured for that
lightstep cool 00:07
nothingmuch ok, screw it 00:08
i'm copying my vhost setting
you are now lighstep.woobling.org
lightstep err, but i don't control the web page 00:10
i made up a little index.html
and still the default (?) page shows
nothingmuch is still trying to figure out what's going on
ah 00:11
didn't name it .conf
there
lightstep.woobling.org
anywho, i'm off now 00:12
work tomorrow
theorbtwo Night, nm.
nothingmuch good night, theorbtwo 00:13
Limbic_Region theorbtwo - you sleep while Jess is at work?
nothingmuch lightstep: if you have any trouble with the account either message me here, or [email@hidden.address] foobargorch on aim, or email me: [email@hidden.address] 00:14
and i will fix it first thing tomorrow morning
lightstep ok
nothingmuch *poof*
Limbic_Region www.perlmonks.org/index.pl?node_id=440205 # Pugs problem with PREFIX= 00:15
theorbtwo Often, yes.
Really, I just let my sleep schedule do what it wants.
Limbic_Region must be nice - my body would much prefer to be awake/asleep for irregular intervals 00:16
lightstep good night all 00:18
Limbic_Region TTFN lightstep 00:19
theorbtwo Mine probably would too, if it got irregular exercise. 00:22
As it is, not so much does it get any.
jabbot pugs - 822 - Kwid spec review and refactor. 01:10
Schwern Hey, are Pugs tests expected to fail when you pull straight from the repo? 01:40
stevan Schwern: yes
ingy :)
Schwern: yes, between releases 01:41
stevan Schwern: they decided that if something is broken it should fail
Schwern nopaste.snit.ch:8001/2055
stevan + what ingy said
ingy dev is fast and furious here
stevan Schwern: looks normal :)
Schwern Well, I don't know whats expected and what's not there.
Alias_ Schwern! 01:42
Schwern That's-a-me
ingy Schwern: your Kwid dream is finally coming to fruition (join #kwid) 01:47
(The whole thing was originally Schwern's idea :P)
Schwern That's right. Blame it on me 01:48
jabbot pugs - 823 - adding tests for invocant syntax $foo.de 02:00
pugs - 824 - some more work on perl6-ing File::Spec, 02:10
chiaoi s 02:46
.login 02:47
03:47 cnhackTNT|sleepi is now known as cnhackTNT
jabbot pugs - 825 - More AUTHORS updates. lightstep, please 04:20
04:49 bytewolf is now known as cnhackTNT
Darren_Duncan Does anyone know why rt.openfoundry.org/Foundry/Project/?Queue=270 says that the latest release is 6.0.9 when 6.0.11 was released after moving back to that server? 04:52
Khisanth it's also the only available version for download from there ... maybe it's related :) 04:58
obra Darren_Duncan: likely because it just hasn't been updated 05:00
Schwern Eeek!
obra I'll see if I can fix
Schwern Installing /System/Library/Perl6/Test.pm
Unlinking /System/Library/Perl/5.8.1/Test.pm (shadowing?)
Darren_Duncan so that updating doesn't happen automatically?
obra dunno 05:01
Schwern DO NOT RUN "make install UNINST=1"!
Alias_ Darren_Duncan++ # Nice job on the Alg::Dep port by the way
Any comments on problems or issues you had in the process?
Darren_Duncan I noticed that a few people have started editing Alg::Dep after me ...
I have a question ...
What's with this move to self-less?
I thought explicitly having the $self makes for more readable code 05:02
Schwern Why write $self.foo when .foo means the same thing?
And .foo doesn't mean anything else
Alias_ newbie friendlyness?
Schwern Not having to write $self a thousand times?
Darren_Duncan Doesn't .foo operate on whatever $_ currently is?
Alias_ It was already written :)
Darren_Duncan and that isn't always the object?
Alias_ no, .foo operates on the method's object 05:03
Schwern $_ isn't always the object but tends to be in short methods
Darren_Duncan so if you're inside a loop where $_ is not the object, then .foo will still operate on the object?
Alias_ wot..., so .foo isn't really "operates on the object"?
Schwern Alias: According to Synopsis 12 .foo is $_.foo 05:04
Dot notation can omit the invocant if it's in $_:
.doit(1,2,3)
Darren_Duncan and $_ isn't always the object, is it?
in map {} its the list item
Alias_ Which means that I should always use $self still, to avoid gotchas
Darren_Duncan that's why I do it 05:05
part of the reason
Alias_ I had assumed .foo was implicitly $self.foo
Schwern DD: As with $_ now, .foo is useful for short blocks and methods.
Alias_ I swear I saw that in a damian talk
Darren_Duncan I only use .foo in extremely simple contexts, if at all
Schwern Alias: Maybe they changed it since S12 since that certainly seems less dangerous
Darren_Duncan such as one-liner methods
Alias_ I almost never use $_, except in ^^^ as well 05:06
Darren_Duncan In any event, I want LKT to stick with the explicit objects
Schwern LKT?
Alias_ locate::...
Darren_Duncan Locale::KeyedText
Alias_ sorry, miskey, that
Darren_Duncan I almost never use $_; mainly I just use it in map or grep 05:07
Schwern If .foo == $self.foo and not $_.foo then I don't see why one would bother
Darren_Duncan where it has to be used
Schwern Writing $self out over and over again that is
Darren_Duncan that's an IF
obra Darren_Duncan have a look at foundry again? 05:08
Darren_Duncan but if the latter is true, then watch out!
Alias_ if .foo == self.foo, that's fine
Schwern Hopefully sanity will reign
Alias_ If .foo == self.foo some_of_the_time_but_only_when_$__is_$self_which_it_is_by_default_at_the_top_of_methods_but_not_in_loops, then I'm not happy 05:09
Darren_Duncan Ingy, Foundry looks good
I meant obra
Schwern Alias: That would be more concisely expressed as .foo == $_.foo
obra heh. first time I've been confused for ingy!
Alias_ Dot notation can omit the invocant if it's in C<$_>:
.doit(1,2,3)
darn 05:10
The in that case, we have to explicitly use self.
Then
jabbot pugs - 826 - r8059@kybristedi: gugod | 2005-02-07 2
Schwern Alias: Sure but that's 4 months old 05:11
Alias_ I hope so 05:12
Darren_Duncan For sanity, I like to avoid using $_ where at all possible; the only exception is in tight loops like map and grep, where I seem to have no choice anyway
Alias_ I seems counter intuitive that $.something is a property, but .method isn't a method
Darren_Duncan so what if I have to type a few more characters
maintainability is worth it
Alias_ It
I concur
Darren_Duncan Now, Autrijus *started* the self-less thing, so lets perhaps get his opinion, then maybe revert the removal of self 05:13
Alias_ or talk to p6l :) 05:14
ayrnieu "Because if we aren't careful, we'll become Python."
Alias_ I for one would rather have .foo as a method call and be forced to do $_.foo 05:15
Darren_Duncan so who volunteers to talk to p6l?
Perl 6 allows us to change its own syntax to an extent ... I wonder if we can do the Python thing of requiring whitespace in the right measure? 05:16
not that I care for that, but it could be so evil its fun
obra Ac1;2cme modules in perl6 are going to be _fun_ 05:17
Alias_ Especially if it's in ;-first form
Darren_Duncan obra, what does that expand to?
you mean Acme modules? 05:18
guess so
Alias_ Darren: What's with the $foo.meta.isa(bar)
Darren: Would $foo ~~ bar suffice?
Darren_Duncan see the end of S12
obra er. Acme modules. 05:19
Darren_Duncan it replaces UNIVERSAL::isa($foo,'bar')
.meta gives you access to the meta-class of an object, off which you can introspect ...
get things like class name, method list, etc
unlike in Perl 5, everything in Perl 6 is an object, so it is valid to call .meta.isa on it with any kind of value 05:20
Alias_ so just plain $foo.isa doesn't mean anything any more?
Darren_Duncan no runtime errors of 'not a reference'
it might as a short hand, but the .meta is the better documenting way to do it
Alias_ oh, so although everything is an object, $foo.isa still isn't the way to do is safely
Darren_Duncan I don't know if foo.isa will work; it might, see the end of A12 05:21
still, use a method call in any event, no more UNIVERSAL
Alias_ alternatively, is seems like the smart $foo ~~ bar should work just fine
~~ == "Do what I mean isa()"
Darren_Duncan The ~~ would presumably operate on the stringification of $foo 05:22
~~ is what =~ was
Alias_ "The smartmatch:
$obj ~~ Dog
actually calls:
$obj.meta.does(Dog)
"
Or is it not any more
Darren_Duncan Isn't the new =~ the smartmatch?
See the top of ... S3 I think ...
pasteling "dvergin" at 209.166.89.145 pasted "Latest trunk still doesn't build on WinXP with ghc 6.4" (36 lines, 1.5K) at sial.org/pbot/8272 05:26
05:31 cnhackTNT is now known as bytewolf 05:37 cnhackTNT is now known as cnhackTNT|away
Alias_ Darren_Duncan: Which $self.method calls were being shortened? 05:49
Darren_Duncan The ones in Attributes::Dependency 05:50
All 5 modules
As I recall, Autrijus started the change, and Steven finished
checking ...
Alias_ yes, looks like it 05:51
so... self is $_ inless you explicitly say something different?
Darren_Duncan I meant Algorithm::Dependency, and authors checks out
I should be able to reverse it with a quick s// if the group agrees
doing that rather than a revert will preserve any other changes made, if any 05:52
The current object is named whatever you specify in the start of you method signiture like $foo: 05:53
$self is a convention
Alias_ Also, just so you know, the reason for the uppercasing of variables is a clue to remind me that it is an object of the same ...::Type as the name
So $Item is used for a single ...::Item object
Darren_Duncan just to clarify, are you the original AlGol author?
Alias_ alg::dep? yes
Darren_Duncan alg::dep, ok 05:54
Well, its your module then, your way or the highway
Alias_ I don't mind, it's an experiment
Darren_Duncan just as LKT is mine
obra has autrijus explained his thinking yet?
Alias_ But I noticed you did an explicit commit to fix it (and other bits)
Darren_Duncan of course, I will do my best to put forward good design ideas and hope people follow them
I leave mixed case for the actual class/module names, not variable names 05:55
Alias_ fair enough...
Darren_Duncan the name of the variable should give an idea what class it is an object of
without resorting to special case
In my case, I name my $self either $message or $translator or $container or $node as appropriate 05:56
Alias_ That gets harder in very large class trees with many similar names
Darren_Duncan decide whats best on a case by case basis
Those are internal names in any event
external code can name the message or tran or whatever objects something else 05:57
This is partly about self-similarity
within the module definitions themselves, I have consistently used the topic object named something like the class name
if a method deals with multiple objects, those that are not the self have longer names 05:58
Alias_ Looking at autrijus' diff, it would seem that $_ is used as the $self name if ( $self: ) is not explicitly specified
Darren_Duncan eg, in SQL::Routine, that has a tree of nodes ...
The "current" Node is $node, its parent may be $pp_node, a child $child_node, etc
Alias_ ah 05:59
Darren_Duncan in that situation, every variable that is a Node object is named $..._node
all lowercase
Alias_ I stick to the "the current object is always $self" principle
Darren_Duncan that convention is also followed by outside code using my module
but an explicit $self is still very understandable
one reason I didn't use that internally with my abovementioned modules is that each module defines a pair of related objects, and I wanted to use the same names for each type of object in methods of both objects 06:00
personal choice
the only thing I really advocate for others is to explicitly name your topical object or variable in most cases 06:01
Alias_ topical?
meaning self?
Darren_Duncan The word 'topic' means what Perl 6's understanding of $_ is, according to Larry. 06:02
$_ is an alias to whatever the current topic of the statement is.
or rather topic of the current block
Alias_ (not liking that Perl6 has caught jargonism far worse than even Java has)
oh, and also 06:03
+method schedule_all () {
+$.schedule( $.source.items.map:{ .id() } );
}
That's from autrijus' change
Darren_Duncan topic != self always
Alias_ which I presume means that $_ is localised now
Darren_Duncan The content of $_ depends on the context.
It's a little more predictable than in Perl 5 06:04
Not sure if a Synopsis talks about it, but an Apocalypse/whatchamacallit did
A syn should talk about it, since its important to know
Maybe its in S4 or thereabouts 06:05
arcady $_ is lexically scoped 06:08
so things like "for" and "given" have their own, private $_ 06:09
Darren_Duncan yes
that was/is their most common use of $_, I think
Alias_ So we at least fix the "scope leakage" problem, with $_ changing underneath you 06:10
arcady exactly
Alias_ Of course, now we've got the all new "thinko" where $self is $_ by default 06:11
So all the newbies will be doing it that way
And then wondering what's wrong when foreach { .execute($_) } doesn't act quite right
It feels kind of backwards 06:12
Darren_Duncan that maybe one reason for example code such as in Pugs to default to something with fewer surprises ...
for all the newbies that look at it to learn from
vetarans should be setting good examples in their public code 06:13
Alias_ But we are going to end up a bit backwards here I think
Khisanth or ... it's still not too late to change perl6 :)
Alias_ The "normal" way to do a method (path of least resistance) is using $_
So people will do a lot of it 06:14
And then have problems with foreach @params { .something($_) }
Darren_Duncan except when it won't work and people won't know whyu
Alias_ Which means they have to go to foreach @params -> $p { .something($p) } or method name($self: ...) { }
And both ways are equally correct 06:15
Darren_Duncan oh yeah, $_ is also the exception object in an exception handler now
Alias_ And yet you can't maintain universal consistency with case by case situations like that
So you have to ideally do BOTH
Which means it gets even wordier
and more sigilly
Darren_Duncan Well, Perl's maintaining its policy of giving people enough rope to hang themselves
Alias_ There's giving them rope, and then there's tieing it around their neck for them, and giving them a gentle shove 06:16
Darren_Duncan someone had an ACCIDENT!
Alias_ oopsi! TMTOWTDI, buy another perl book! 06:17
Darren_Duncan Well, I'm going to make a style policy for any projects that I control such that use of $_ is forbidden 06:18
but everyone else can still do it as they wish
Alias_ I'll probably end up the same way
It just sucks that the most compatible and standard way is going to be nastier than what the intended effect of the feature was in the first place 06:19
Darren_Duncan I would/do have the same policy with Perl 5 code
just as strongly as "always use strict, warnings" in Perl 5 06:20
Alias_ (not warnings for me) 06:22
I find one innocuous case can fill up the server logs badly
warnings forced on for all unit testing though
06:23 cnhackTNT|away is now known as cnhackTNT
Darren_Duncan how hard is it to make code that never generates warnings except when something's wrong? 06:27
if something fills up a log, that says to me "fix some code" 06:28
Alias_ Darren_Duncan: After the production servers chucks a fit :)
Darren_Duncan my first question?
Alias_ It also can hide more significant errors :) 06:29
Occasional "only used once" type warnings do slip in from time to time
Darren_Duncan what is bad about keeping warnings on
?
Alias_ just a personal preference
Darren_Duncan using warnings should help you find more significant errors sooner
Alias_ That's why they are always on in devel and testing 06:30
just not on production
Darren_Duncan if your code doesn't generate warnings, leaving it on in production doesn't hurt
Alias_ unless the useless warning is somewhere the test cases missed
Darren_Duncan the idea is to fix the code until use warnings doesn't generate any warnings 06:31
then the test cases aren't very good
Alias_ correct
It's very expensive to get to 100% coverage in 100,000 SLOC of perl
impractically and prohibatively so
Darren_Duncan meanwhile, leaving warnings on all the time will tell you exactly which lines need to be fixed ...
check the logs occasionally, as you fix, the logs get shorter 06:32
Alias_ and also hide potentially more important problems
autrijus gree...tings.
Darren_Duncan how would warnings hide problems?
if you fix them the wrong way?
Alias_ a quarter of a million 15 line useless warnings, hiding 15 serious problems that are lots more important
It's happened before 06:33
Darren_Duncan oh, you mean the logs are buried?
Alias_ yes
autrijus just a quick word re: selfless
Darren_Duncan a simple grep on the log would fix that
yes, autrijus
grep out the warnings to see the errors 06:34
autrijus I think $.foo and @.bar is uncontroversial
and I'd like to use them instead of silly hash deref or $self.accessor
Darren_Duncan what's wrong with $self.attribute?
Alias_ It's a design problem
autrijus Darren_Duncan: four more keystrokes :) 06:35
Alias_ Way too much collision between $_ as $self and $_ as traditional
autrijus plus, it doesn't disambiguate.
Darren_Duncan since .foo refers to $_, and $_ is only sometimes equal to $self, one can get into a lot of problems with .foo everywhere
autrijus oh, right, method calls
I agree. I think it should only be used on blocks with <3 lines of text.
Darren_Duncan I don't like $_, too easy to mess things up, especially by newbies
the extra few characters don't bother me 06:36
maintainability is more important
autrijus I begain thinking .method already means the invocant
but then I'm wrote
but then I'm wrong
Alias_ Given the amount of comments I normally write, the four keystrokes for "self" is irrelevant
Schwern Yeah, I'm wondering why they've crippled .foo
autrijus so I'm happy to revert back to $self.method
Darren_Duncan I'm okay with .foo in really short methods, like 1-3 lines, but not with those where $_ can ever change meaning
Schwern Oh, probably for things like switch
Darren_Duncan let's do it then
autrijus Darren_Duncan: yeah. but $.member really disambiguates a lot things for me
Alias_ I really liked .foo as a consistent invocant method shortcut 06:37
$_.foo would have been quite clear and readable
(for the times in map { } etc )
autrijus neither $self->{member} or $self->member_lvalue made sense for me in perl5
especially because it exposes the hash nature
Darren_Duncan The only time I use $_ or .foo is in map or grep , and now in where{}
autrijus and in any case, $.member has nothing to do with $_.
Alias_ that's the thing 06:38
$.member has nothing to do with $_, but .method does
Darren_Duncan where in the spec does it say that?
Alias_ It's counterintuitive, if I'm understanding right
autrijus dev.perl.org/perl6/synopsis/S12.html 06:39
Darren_Duncan Is it or is it not true that .foo is always on $_?
Dot notation can omit the invocant if it's in $_
see the "if in $_"
Schwern Well, keep in mind $_ is no longer global
Its lexical 06:40
autrijus Darren_Duncan: but $.member is not .member
Darren_Duncan $_ changes by context
Alias_ Schwern: That's not the problem... it's a code style consistency issue
Schwern DD: Right, but it changes back. :)
Darren_Duncan so .member is not always .member
autrijus I agree, as specced, what I did on .member is wrong
Alias_ the inconsistency of usage for .foo causes problems
autrijus and needs to be reverted back
Schwern Alias: But it does make $_.method less dangerous to use
autrijus you can do that, or I will do it tonight
Schwern DD: But its much more clear when its not
autrijus but I think keeping $.member hurts no one.
Darren_Duncan I find it is most clear to type the extra 4 characters
Schwern Just injecting that. $_ isn't nearly as wild in Perl6 as it was in Perl5. 06:41
autrijus the sigil-full variant doesn't change its meaning in map{}
Schwern DD: I find it rapidly gets annoying and redundant
Darren_Duncan At least $_ is easier to predict in Perl 6
autrijus ... map { $.foo } ...
still means the member variable.
instead of $_.foo
Alias_ autrijus: right. That's the problem :(
Schwern Isn't $.foo something else?
...an atribute?
Alias_ autrijus, $.member means one thing, but .method (which my mind sees as the same sort of thing) doesn't
Schwern Oh crap, they didn't use slots?
autrijus Alias_: yes and I see the problem 06:42
Alias_: I think it sucks,.
Darren_Duncan okay, looking in S12 ...
Alias_ I'd much rather force people to use $_.method
much much much rather
autrijus but the $.foo is not the sucky one.
Darren_Duncan putting the sigil in front means we're not dealing with $_
Schwern Ugg, why did they make $.foo and $self.foo different?
autrijus .method is.
Schwern: because.
Darren_Duncan however, we use $.member only for public attrs ...
autrijus Schwern: because $.foo is a scalar var 06:43
Darren_Duncan we use $:member for private ones, which is probably the normal type
autrijus Schwern: and .foo is a method call on a scalar var.
yes.
but I don't think we need to write accessors anymore.
writing accessors in p6 is... confusing
Darren_Duncan in any event $[.|:]member is only for attrs, not for methods, I think
autrijus because we have private / public attrs anyway.
Alias_ I guess this stuff is the sort of thing pugs was meant to find out so they could fix
autrijus sure.
Alias_: yes. 06:44
Darren_Duncan yes, make Pugs have a reason to exist@
!
Alias_ Because if $:foo, $.foo, .foo is confusing for US, imagine how bad it's going to be for lesser mortals
autrijus so, I need to run. let's first use the style of $self.method, $:priv, $.pub for now
gaal morning, all. lovely day.
autrijus if that's okay with you folks
Alias_ that will suffice 06:45
autrijus (all in the context of AlDep)
Darren_Duncan Fine with me autrijus, though I will personally still use $self
all the time
Alias_ At least something very positive has come out of AlDep, rather than just being a normal port :)
autrijus Darren_Duncan: sure, that is fine. timtowtdi
Alias++ 06:46
Darren_Duncan++
Darren_Duncan Autrijus++
autrijus have fun! &
Darren_Duncan hey, someone had to
who wants to update AlDep?
Schwern autrijus: There shouldn't be any difference between a method call on an object which returns a scalar and accessing a scalar which is part of the object. That's the whole point of data hiding. 06:47
autrijus: You're back to $self->{foo} and $self->foo
Though $.foo is at least class-scoped.
Ahh, right.
You can't get at $.foo outside the class... I hope.
Darren_Duncan You can 06:48
Schwern Don't say that.
Alias_ but you can't get at $:foo
Darren_Duncan That is, an attr declared with $.foo is visible outside
Schwern Oh, public attributes. MISTAKE
Darren_Duncan I always use private attributes
Alias_ is $.foo accesed by $object.foo?
Darren_Duncan yes
Schwern Public attributes and public methods should be indistinguishable
Darren_Duncan here's a brief story on my Aldep conversion ... 06:49
I found that the AlDep test suite did some direct accessing of object attributes
Alias_ Darren_Duncan, then that C< method source () {...} > should probably be a read-only public attribute
Darren_Duncan Alias, why?
Alias_ force of habit...
Darren_Duncan bad habit 06:50
autrijus wait wait
The attribute variables may be used within instance methods to refer directly to the attribute values. Outside the instance methods, the only access to attributes is through the accessors.
Darren_Duncan Anyway, I added an accessor method for it, which didn't exist
Alias_ having the test script do a little peering inside the black box help when the underlying logic is a bit tricky
autrijus the only thing that differntiates $. and $:
is that an accessor _method_ is generated for $.foo
outside users still _has_ to use the method form
Darren_Duncan yes
and a good thing too
that said ... 06:51
autrijus so from the user's POV, no encapsuation is violated
Darren_Duncan if one can invoke a method without parens, it looks the same
autrijus (that was re Schwern)
Alias_ so... C< has $:source is ro; >?
rather than the manual method source?
autrijus & :)
Schwern autrijus: Oh good. Sanity is restored.
Darren_Duncan I made a style choice of always using parens on method invocations, so its easy to tell its a method call
Schwern Don't you always have to use parens on method calls? 06:52
Are we talking Perl 5 or 6 here?
Darren_Duncan not sure, but I do anyway
I do it in both
mandatory, not sure
Alias_ Schwern: I wouldn't think so
is you has $.foo; you shouldn't have to $object.foo()
Darren_Duncan AlDep invoked tons of methods without parens ... I fixed that 06:53
Alias_ remembering that $object.foo is using an implicit accessor method
Schwern Alias: Oh, I thought with arguments.
So we're talking Perl 6 not 5?
Alias_ Well, they don't need to in perl 5 _or_ perl 6
Schwern They do in 5
Alias_ what waht?
Then all my code shouldn't work
Darren_Duncan I include parens both with and without args, in both 5 and 6, since its easy to read 06:54
Schwern Alias: *with args*
Alias_ oh, with args, of course
Schwern Alias: $obj->foo is fine but $obj->foo 42 is not
Alias_ Because you can't do the magical prototype-based parsing
Schwern DD: Isn't it kinda obvious from the ->bareword?
Alias: No, prototypeless functions don't need parens.
Darren_Duncan That said, I always used to use parens with 'return' , but recently stopped
since return is built-in and low precedence 06:55
Schwern Alias: Honestly I don't know why you need parens around method calls
Alias_ Schwern: It's a parser thing
Schwern Alias: Sure, but is it a language thing?
How could it be ambiguous?
Alias_ It's a limitation of... information
Schwern What information is missing? 06:56
Alias_ The prototype
explicit or implicit
Schwern Again, prototypeless subroutines don't need parens.
Alias_ It's in section 1 of my PPI talk :)
Schwern Why should method calls?
Alias_ Because they are done at run time
Schwern But the prototype is always going to be @ 06:57
Where's the ambiguity?
Alias_ Randal can probably explain in better terminology than I can
Darren_Duncan defer to an expert you say? 06:58
Alias_ My use of terminology is out of sync with the older perlers
Schwern Defer to a professional trainer. :)
Alias_ I tend to think in symbolic terms... (not to mention the ADD)
I'm better in person, when I can adapt the explaination 06:59
Schwern I know what you mean
hcchien gugod++ #outline2html/outline2html.p6 07:01
Darren_Duncan still, for text based internet stuff, IRC is the closest to in person you can get
Alias_ (so I tend to give up textual explainations that don't have immediate success) :)
Schwern DD: Comic chat
07:05 cnhackTNT is now known as cnhackTNT|work
Alias_ follows up to Schwern's p6l email 07:07
Also, is .:method legal? 07:08
sub method () { .:method }; in some cases would seem to be legal and in others not 07:09
depending on the "type" of $_
Darren_Duncan: In your explicit method() policy, do you do () as well for things like %hash.keys() 07:11
?
Darren_Duncan let me check ...
no 07:12
Alias_ how do you differentiate?
Darren_Duncan my use of parens is mainly with user-defined methods, when thee are no args
there are few enough built-ins that it is easy to recognize them and not use parens ...
eg, with sort, keys, values, pairs, kv, etc 07:13
I don't always treat built-ins and user-defined things the same way
with user-defined stuff, there is a much greater volume, so extra hints like parens are used to make it easier to understand them at a glance 07:14
Alias_ fair enough 07:15
I tend to go for cleanliness lately, to make scanning easier
Darren_Duncan I like consistency
cleanliness is also good, though cleanliness doesn't always mean terse
Alias_ true, but I find the removal of non-word characters cleaner 07:16
Darren_Duncan as long as you are SELF-CONSISTENT that is the most important thing
rule #1
Alias_ consistent with style guide, yes
in my case ali.as/devel/code.html
Darren_Duncan I mean, if everything you as a person writes has a consistent style with everything else you write, that's the most important thing 07:17
I mean you = a person
Alias_ indeed, and equally across a team of developers, if you can keep the egos in check
Darren_Duncan If you are consistent with what other people write, that is a secondary concern, a good thing, but less important
Alias_ :)
Darren_Duncan If you are in a formal team, the whole team should be consistent
In an informal group like ourselves, its a good idea but a bit less critical 07:18
still, if we can all agree ...
its better for all of us
Alias_ I think we can all agree .foo is ick :)
Darren_Duncan if not agree entirely, agree to a certain subset of styles 07:19
yes
Alias_ It's going to get worse for .:foo
(oh wait, do we need to use the :)
Darren_Duncan I don't like emoticons - pet peeve 07:20
that one may have been accidental
you said '... to use the <smiley>'
wait ... 07:21
Alias_ that was an accident
Darren_Duncan I just found a preference on my IRC client to turn smilies off ... display plain text only ... that fixed everything
Alias_ Do we need to use the : in private method calls?
Darren_Duncan I think we only really need the : in declarations of private methods and attrs and ... 07:22
use of it in calling only seems to be used when using $:foo or $.foo
notation
Alias_ That could get a little icky, if .foo is "method" and not "public method" with a corrosponding :foo "private method" 07:24
Well, if not icky, then at least assymetrica 07:25
Darren_Duncan is 'public' and 'private' a keyword in Perl, or are you just quoting a concept? 07:30
I assume Perl won't let you declare a .foo and a :foo in the same class
jabbot pugs - 827 - fix small Locale::KeyedText bug in get_*
Darren_Duncan Is jabbot a person or a robot? 07:31
It wasn't operating the other day
'bot I guess
but a cron job, considering I committed several minutes before it posted 07:32
I'm going to sign off shortly ... any last questions? 07:34
ingy hola 07:43
Darren_Duncan I just went and sent a donation to the developer of Colloquy, the IRC client I've been using for the last week and that works great ... support free software you appreciate! 07:44
ingy sb end
Darren_Duncan that's in lieu of code 07:45
here, I give code and time
lightste1 good morning
Darren_Duncan same to you
07:45 lightste1 is now known as lightstep
Darren_Duncan I'm about to leave for bed, actually 07:45
lightstep ping autrijus
Alias_ public in the sense that $.foo is a public attribute and $:foo is a private attribute
Darren_Duncan Autrijus was here a half hour ago
or make that an hour ago 07:46
Alias, I lost the train, what were you getting at now?
nevermind, I'm outtahere 07:47
ingy autrijus: is the win32 build still hosed? 07:48
Alias_ "a $=foo variable is a POD variable" 07:49
it's a WHATTTT
gaal ingy: works for me, though tests dont' run at all
autrijus greetings.
gaal ..and i need to #undef PUGS_HAVE_POSIX 07:50
ingy gaal: then it doesn't work :(
gaal autrijus: did you see the goto parsefail?
Alias_ Do attributes declarations look like C< has $:foo is ClassType; > or C< has ClassType $:foo; > 07:51
It's the latter isn't it?
ingy autrijus: I'm making decent progress on the Kwid processing... btw are you aware of #kwid? 07:52
gaal autrijus: what i said the other day about $::($foo) being superceeded was bogus, i misread the spec. it's still in. 07:57
autrijus yup. 07:58
and there's still a test.
Alias_: the latter 07:59
Alias_ thought so
fixing AlgDep now
Darren was using has $foo is Class
autrijus ingy: cool! yes I am aware of #kwid. not having a lot of time to participate tho 08:00
gaal: !. so on win32 it doesn't undef HAVE_POSIX?
gaal: yes I've seen the parsefail. @ work now tho, so will be a few hours before I can tackle it
jabbot pugs - 828 - fix bug in <<>> quoting test
gaal autrijust: not on mingw anyway. 08:02
autrijus: sure thing
gaal needs more ACK the weirder the thing he finds
autrijus hcchien: where is outline2html.p6? 08:03
gaal: what is $^O of your win32? 08:04
perl -e "die $^O"
hcchien autrijus: svn.elixus.org/member/gugod/
gaal autrijus, msys
oh! could it be that MSys != MinGW installs? i dont remmber which i installed first. 08:05
autrijus lightstep: I'm here now. 08:06
gaal: commit a fix for me?
gaal sure.
autrijus Makefile.PL line 112ish, match msys and mingw there.
gaal autrijus++; # remembers the code, with *line numbers* 08:07
lightstep i'm still on the yesterday thingy
autrijus thunking?
lightstep having problems with the environment
yes
autrijus I had not downloaded your s3kr1t file :)
lightstep better not
i have a better version now :)
autrijus cool. does it break everything, or just := ? 08:08
if the latter, you can simply commit it :)
lightstep everything, i think :)
autrijus oh no :)
lightstep `say' got rebroken today
autrijus my &foo := { return }; 08:09
I am very very unsure what it does.
does it essentially make a continuation?
does the thunk made by := capture the dynamic scope as well?
or just the pads?
if just the pads, 08:10
my $foo := $?CALLER::POS; # this will break, no?
$?CALLER::POSITION, even
autrijus ponders a p6l inquiry
jabbot pugs - 829 - Replace C< has $.var is Class; > with C<
autrijus Darren++ # successfully pulled ^Winvoked a Rule 2 08:11
gaal r830 win32 build fix
autrijus danke 08:12
Darren_Duncan ping _Alias
I mean Alias_ 08:13
Alias_ yes
autrijus Darren_Duncan: I was just ++'ing you for successfully invoking a rule 2 from larry
gaal autrijus: why doesn't cygwin work? ("it's complicated; not now" is a valid answer)
Darren_Duncan Autrijus, I'll lookup what you're referring to in a moment 08:14
autrijus gaal: cygwin doesn't build GHC. allowing cygwin has led perl to attempt to build ghc in the past.
Darren_Duncan In regards to Alias_ question ...
autrijus which leads to prolonged pain.
Alias_ Darren_Duncan: I didn't get your intentions wrong in that p6l email did I?
Darren_Duncan both forms can be used, but they have subtly different meanings
autrijus because cygwin actually _builds_ GHC it's just very very difficult.
gaal yes, i noticed building ghc without having ghc is Hard. 08:15
Darren_Duncan With scalar attributes, it may not make a difference
With array or hash data types, it does
masak does anyone have a URL or a short explanation to what a "thunk" really is?
i've seen the term pop up lately, and i fear that its importance exceeds my knowledge of it.
Darren_Duncan saying 'has Classtype @foo' says that each element of @foo is a ClassType
gaal but if i do have an msi ghc, why shoundn't i be able to use cygwin? that's what i do with mingw.
Darren_Duncan saying 'has @foo is ClassType' says that the entire array is a ClassType
That's how I used it in Locale::KeyedText 08:16
I may have botched something in AlGol, though
autrijus gaal: well GHC msi _is_ built with mingw.
gaal aha :))
Darren_Duncan Alias_, got that?
autrijus and mingw ABI ne cygwin ABI.
Alias_ yep
gaal yes, i see now.
okay, it's long and painful. i'll get back to symbol tables :) 08:17
Darren_Duncan now checking on Autrijus' comment ...
gaal if i do a symbolic lookup of a var (either global or lexical) that hasn't been declared, what should happen? 08:18
autrijus Darren_Duncan: "Re: return of copies vs references"
gaal: with the symtable hash or with the ::() syntax?
I expect it to fail with ::(). I think.
gaal ::()
autrijus symtable hash should just return undef.
but my expectation may be completely offbase. 08:19
gaal is the symtable hash read-only?
autrijus of course not!
Darren_Duncan I expected you were talking about p6l, but I hadn't read my email until after I answered Alias_
autrijus you can write it, tie it, wrap it and kill it
that's the fun part of perl
gaal so manual export can work like in p5
so, what's the motivation for ::() syntax? 08:20
jabbot pugs - 830 - win32 build fix: $^O eq msys
gaal i better ask on p5-lang
p6-lang 08:21
masak what's a thunk?
Darren_Duncan Autrijus, without looking it up, does "rule 2" say that Larry can change his mind? 08:22
masak according to www.webopedia.com/TERM/T/thunk.html it is the result of an operation... is this applicable to pugs? 08:23
Schwern And another thing. Why do we need different syntax for private vs public method calls?
Ahh, optimization hack 08:25
Hrm.
Darren_Duncan Autrijus, can I assume that "successfully invoking a rule 2 from larry" is Blog-worthy?
Alias_ Let me guess. Rule 1: Larry is always right. Rule 2: Larry can change his mind at will, see Rule 1. 08:26
or something like that?
Darren_Duncan I thought so
Schwern Larry is always right even when he's wrong.
Darren_Duncan Anyway, based on Larry's answers, I'm about to commit another LKT bug fix update, to use the new syntax Larry specified ...
Schwern You might sometimes see reference to Rule 1 and Rule 2. Larry's power as Supreme Court is expressed in The Rules:
1.
Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
2.
Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.
lightstep autrijus, i gotta go learn towards a test. can i send you an email with my attempts so far? 08:27
Darren_Duncan benevolent dictatorship is fun!
Schwern Rule 1: Larry is always right. Rule 2: ...Even when he is wrong.
See perlhack
lightstep autrijus, (otherwise, the code is where i said earlier)
Darren_Duncan Thanks for the perlhack ref 08:28
masak could someone explain to me (or give a pointer to information about) what a "thunk" is?
mugwump =closure
lightstep a thunk is a value that refers to yet-unevaluated closure
masak ah, thx 08:29
autrijus lightstep: yup. go ahead 08:33
lightstep what's the address?
Schwern Ahhh. Remember Rindolf? vipe.technion.ac.il/~shlomif/rindol...book1.html
Darren_Duncan Thanks for the Rindolf link - bookmarked it - I never heard of that project before 08:41
Schwern Its not a project, its just a spec.
Someone else is supposed to implement it.
Darren_Duncan I'm not sure I agree with his thought that CPAN programmers won't want to port to perl 6 08:42
sure, some will
but I expect a large number will make the move
Schwern I'll let you in on a little bit of backstory. Rindolf is a bit of a joke.
Except to the author.
Darren_Duncan ok
so its like the product of an insane mind?
anyway ... 08:43
Schwern Yes. It might have been interesting as a thought experiment (like Perl5i) if he didn't keep insisting its a replacement for Perl 6.
tomyan was it written before or after the apocalypses? 08:44
hard to imagine someone coming up with that after reading apocalyse 5 (or any other one for that matter)
Schwern Good question.
He was still pushing it as of last October.
rgs shlomi ! 08:45
Alias_ That said, I do like this idea
Darren_Duncan well, let him try ... something good may still come of it
Schwern As we all know the following is a common paradigm in Perl: 08:46
my $var = eval { my $sum = $b+$c; return $sum*$sum; };
groups.yahoo.com/group/rindolf-disc...message/76
DD: No... I really doubt it.
rgs I flipped the bozo bit on shlomi some time ago. And only due to his posts on p5p.
He's also reportings bugs against mandrake's bugzilla. 08:47
Darren_Duncan heck, some people may think *I'm* insane for attempting some of the stuff I'm doing on cpan, like considering a replacement for DBI
rgs I have co-workers who never touch anything perl and who have the same opinion about M. Fish.
Darren_Duncan: do you actually write code ?
Darren_Duncan yes 08:48
rgs that's a big difference
Schwern See, that's the difference.
Darren_Duncan I write lots of code, but it could also be called over-designed
Alias_ Darren_Duncan: Dude, we ALL have a replacement for DBI
Darren_Duncan: Well... a replacement for Class::DBI at least :)
crysflame heh
rgs even tim bunce has
crysflame or at least a wrapper 08:49
Alias_ But then I consider Class::DBI a replacement for my version
Darren_Duncan how about something that does what DBI does, and better, and doesn't need DBI under the hood to power it?
Alias_ "doesn't need DBI"?
You write your own database drivers?
Darren_Duncan I say 'better' feature and portability wise, not speed wise
DBI is still faster
eventually
Alias_ oh wait, you are doing one of the SQL modelling modules arn't you 08:50
Darren_Duncan the more accurate statement is that someone could make a driver for my architecture that implements itself using DBI, but they don't HAVE to
in fact, my initial releases will use DBI under the hood, but nothing in the architecture requires that to happen
crysflame implements Alias as a large shell script. 08:51
Alias_ reimplements himself
Darren_Duncan partly for that reason, like with DBI itself, my drivers are distributed separately from the core
Alias_ DBI doesn't really deal with the databases themselves very much though
Darren_Duncan Alias_ , yes
Alias_ They largely restrict themselves to connection handling and housekeeping
Although not so much lately 08:52
Rosetta! That's the one
Darren_Duncan yes, DBI is mainly connection handling and SQL string passthru
Its schtick is that you can do that exactly the same way with any database engine
which is good
Alias_ yes
It would have been nice if it limited itself to that part 08:53
Darren_Duncan mine does that too but also lets you use identical SQL with all databases, and yet access advanced features of databases that have them, or to a point, emulate those on others, in an efficient manner
Alias_ Darren_Duncan: Sounds very familiar to parts of my system, except I inline it all at codegen built time
Darren_Duncan actually, mine doesn't do SQL passthru ... except through a "circumvention" feature 08:54
'circumvention' is not recommended for use, but lets you do esoteric things that you simply must do that my attempt at 90%+ native feature coverage doesn't do
Anyway, SQL::Routine, which defines the main spec for this project, is now considered "alpha" development status, so it is more or less feature complete 08:55
... for major version 1 08:56
Alias_ I have to say so, SQL::Routine scared the hell out of me the first time I saw the POD :)
Darren_Duncan ... as of v0.46
Well, I did say over-designed
also, ignore the current SYNOPSIS
Alias_ if ( $something->valid_node_type_surrogate_id_attributes ) { ... }{ 08:57
Darren_Duncan I will rewrite it to something nice
Alias_ phew... yeah
I read "trivial example"... HALWRALSLASLALLLAGLGAHALHGLGA
Darren_Duncan you are referring to an information function, which is used for in-code introspection of features
most features don't have information functions
Alias_ I meant more the size of the method name :)
Darren_Duncan I mean for the method names to be descriptive 08:58
Alias_ I know
Darren_Duncan I could shorten them based on user feedback
Alias_ I was extremely impressed with the thoroughness, if a little worried about the efficiency of development using it
Darren_Duncan See code examples in the Abstract.pm test suite file, which most closely resembles actual SQL 08:59
Alias_ ok, I will
Darren_Duncan the module is multi-layered
Alias_ On that note, I need to head home
Another time
Darren_Duncan right-o
wait for v0.46, due any day now
Alias_ &
I will
Will you be at OSCON?
Darren_Duncan I want to be
I live near by incidentally, but never went before
Alias_ I'll be bringing over some demos of my phase-n.com stuff 09:00
Darren_Duncan I'm in Victoria, BC, probably a few hours drive from Oregon
Alias_ You'd probably find it quite interesting
(I'm in .au)
Darren_Duncan I'll try to carpool
Alias_ night
Alias_ &
Darren_Duncan yep
gaal needs gloss for '&' 09:01
Darren_Duncan what you mean?
gaal is that like the wisp of vapor left when someone vanishes?
what does '&' mean?
Darren_Duncan no, what you need gloss for?
I know that '&' means 'and'
unless it means something else here 09:02
gaal no, like when Alias_ said "/me &"
Darren_Duncan gaal, where are you located?
gaal Tel-Aviv
Darren_Duncan I see 09:03
do you know Nothingmuch?
gaal sure!
Darren_Duncan you two are the only ones I know that are in that area
gaal there are a couple more here. lumi, lightstep 09:04
i don't think i met lightstep though.
Darren_Duncan I see
not sure I'll remember all that
in any event, each of you should, if your real names are not spelled in latin letters, spell them out in the AUTHORS file using the native script, as Yuval did 09:05
that can help give a clue later
gaal give a clue to what?
Darren_Duncan I just mean, a reminder of where you're from
if you want to 09:06
gaal i do the majority of my writing in English, so i'll pass.
but maybe people who want to can include a URL to a personal homepage?
Darren_Duncan just thought you might be interested, at least 10 other names in AUTHORS aren't in latin script
gaal nods 09:07
but English is my main language for anything other than speech
elmex gaal: good morning, still here?
Darren_Duncan but that homepage idea sounds interesting
gaal hey elmex, i did sleep a bit in between :)
elmex me too 09:08
just got up... wonderin where to get access to quickly upload that test
Darren_Duncan its very early in the morning here, 1:08am to be specific
gaal debian users: apt-get install tzwatch
maybe we need to adapt this: desert-island.dynodns.net/perl/pmplanet.html 09:10
Darren_Duncan that might be interesting 09:12
gaal anyone here comfortable with quoting ops? if this is valid syntax........
my $foobar = 'Foo::Bar';
$::($foobar);
does this mean exactly the same?
$::<<$foobar>>
autrijus well, the first is () syntax 09:13
gaal or do i need to say $::(<<$foobar>>) ?
autrijus I imagine it to be same as %::<<$foobar>>
i.e. symtable lookup
gaal hi autrijus :)
autrijus hi gaal.
$::<<foo>> is $::.{'foo'} 09:14
which I imagine is something else entirely
gaal so is $::(<<$foobar>>) valid (symref)?
autrijus you'll have to ask larry. I _think_ so. 09:15
elmex i would like to load up a test for a syntax-parsing problem, how/where to get accesss ?
autrijus your email?
gaal asked, but he's sane and thus asleep. i imagine :)
elmex autrijus: [email@hidden.address]
autrijus yeah he's moonlighting for $real_work :-)
gaal lol
autrijus is in $real_work now.
elmex: invitation sent; welcome aboard! 09:16
elmex thanks!
gaal elmex: welcome! is it the goto minimal parsefail?
elmex gaal: yes ;) ("&s.g");""
gaal cool
autrijus blame luqui ;) 09:17
(but I'll fix)
elmex lol, term of use agreement are in japanese/chinese?! 09:18
autrijus # wagner.elixus.org/~hcchien/termtouse.html
sf.net boiler plate.
gaal it says scw and autrijus get to split your cash
autrijus riiight.
gaal .retea; 09:19
so - since this still feels weird - can i typically say <$something> when in p5 i'd say '$something'? is it considered good style even when there's only one word to quote? 09:23
autrijus well. will you do that in p5? 09:24
qw<$something>
if you would use qw in p5, you can do it in p6
they are stylistically similar
gaal i said it in p5 in use qw() lines. 09:25
but nowhere else, come to think od it.
autrijus well then. 09:26
elmex gaal: what do i need to complete the test besides proper use v6; require Test; and the pass ('ok'); at the end?
gaal guess i'll use q//
plan? 09:27
elmex k, what plan should i do? 1/2/3/4?
gaal the one that when the bug gets fixed, will give no error.
elmex hm... what does plan mean btw.?
gaal it's the programmers's promise to run a certain number of tests 09:28
elmex ah, ok
gaal if a different number has run -- eg yout parsefail -- then the harness knows the test failed (even if possilby it only saw tests that passed until it died) 09:29
elmex hmm... wondering how to name that bug... 09:31
Darren_Duncan Autrijus, regarding that terms of use document that now I can actually read ...
I have a question about item 6 ...
Is that license asking for Open Foundary to be able to do something that the GPL forbids, such as including our code in a binary and not providing attached code to users? 09:33
It says it wants to be able to use it for anything, anywhere, which is fine, but I"m not sureits copyleft
ingy kwid_to_html passes first test! 09:35
I think i will check this into pugs tree, and to cpan 09:36
elmex hm, how do i make a checkout with a specific username with svn ? never used it 09:39
gaal i asked these same questions two days ago! 09:40
elmex lol
gaal elmex: just co anonymously. when you checkin, you will be asked to authenticate
elmex ok
gaal let me anticipate your next question: if your local login is different from the one on open foundry, that's okay too. just hit enter when it prompts for a password, and then it will ask you for anoher username. 09:41
elmex Password for 'root':
lol 09:42
k
gaal put this in pugs.kwiki.org/ perhaps?
and Don't Use Root <tm> :)
autrijus Darren_Duncan: it is still subject to GPL.
elmex bah, i know what i do
autrijus note that any free software license gives "oyalty-free, perpetual, irrevocable, non-exclusive right "
elmex gaal: irc doesn't run as root anyway 09:43
gaal elmex, well, i know what i do, too, which is why i don't use root :)
autrijus but is still licensed, and may be terminated if violated (which renders the license void, instead of revoking it)
Darren_Duncan Autrijus, thanks
autrijus so that paragraph is a no-op if you already use a free software license.
Darren_Duncan sounds good
autrijus sure. I fought for it :) 09:44
Darren_Duncan then the exact free software license I chose will be respected as is
elmex gaal: i see no advantages limiting myself to priviledges of a user on my workstations
autrijus aye.
Darren_Duncan Autrijus, are you saying that the terms of service were changed by your request?
or you run the server?
autrijus Darren_Duncan: I'm the person responsible for coding the openfoundry site up
Darren_Duncan ok 09:45
gaal associative chain: "that paragraph is a no-op" got me thinking about law as a formal system or a program, which got me thinking about Nomic, the game mentioned in Hofstadter,
autrijus so I'm not in the legal team, but they tend to consider my input :)
Darren_Duncan seems you've got a lot of projects on it too
autrijus yeah. it's one of my $real_works
gaal which got me thinking about Peter Suber, who invented it, who is a FOS advocate!
Darren_Duncan nice
autrijus ooh nomic 09:46
write a nomic game in perl6!
Perl6::Nomic::SymbolTable
gaal lol
you get to introduce new sigils to the language!
Darren_Duncan so Autrijus, is invoking rule 2 a big deal and/or blog worthy?
gaal [off topic] my favorite philosophy paper: www.earlham.edu/~peters/writing/rudeness.htm 09:47
[it's by suber inventor of nomic]
autrijus Darren_Duncan: it is. :)
Darren_Duncan ok
That said, there's one point I'm not sure about in Larry's response ... 09:48
return $self.:bar[];# in list context
is the 'list context' referring to the caller of the method?
autrijus yes.
Darren_Duncan and if I use that syntax, while the caller is in a scalar context, what happens
?
autrijus a reference to it. 09:49
pretty sure about that.
dada hola 09:50
autrijus Darren_Duncan: you happy with my p6l suggestion re .meth?
"I think the proposal is for .method always mean $invocant.method
and make it illegal when there is no invocants in sight, mush as $.attr
would be illegal without an invocant. To use $_.foo, write $_.foo.
"
jabbot pugs - 831 - Added a Test about a bug in handling exp
Darren_Duncan maybe the list suggestion is incomplete (Larry's for mine)
It says $self.:bar; returns a ref in all situations 09:51
I'll just operate as if the [] suffix always makes a copy, for now
in general, I updated every other attr ref to put the : in front as well, since that seems more correct now
autrijus okie. 09:52
it's nice how now such discussions are played out in a few day's time
Darren_Duncan about to commit ...
autrijus they use to take months on p6l and goes nowhere ;)
Darren_Duncan is there a concern that Larry's new development re my question won't make it into an official doc? 09:53
autrijus no, I'm sure it will. luqui is good about it
(i.e. fixing S*.pod)
Darren_Duncan good
autrijus will be even faster if we send diffs.
but it's okay either way, I think 09:54
Darren_Duncan nice when an official word you hear in email is reflected in the Synopsis
autrijus right. if you read
dev.perl.org/perl6/synopsis/S03.html
it now says
Unary = reads lines from a filehandle or filename, or in general iterates an iterator.
which is not the case before pugs implemented it :)
elmex yaho..second checkin... 09:55
Darren_Duncan you're happy
autrijus elmex++
yup, deliriously so
Darren_Duncan commit done 09:57
it appears that my literal $foo in the checkin comment were replaced by empty strings; I guess my command line thought they were env vars? (empty on web page) 09:58
kungfuftr autrijus: latest svn checkout refuses to build... =0/ 09:59
elmex kungfuftr: builds fine here
jabbot pugs - 834 - r1271@longdrop: samv | 2005-03-17 22:5 10:00
pugs - 833 - LKT - updated all attribute references f
pugs - 832 - Rewrote the string expression parsing te
autrijus kungfuftr: platform? 10:01
and error msg? nopaste?
Darren_Duncan I've decided to try building now too, and 'make' give warnings about unknown functions ... I'm still on ghc 6.2.2 ... does Pugs *require* 6.4 or is it just compatible with 6.4? 10:03
elmex i still have 6.2.2 10:04
kungfuftr autrijus: freebsd 4.11
Darren_Duncan a recent update mentioned upgrading to 6.4, so I wondered about it
anyway, make finishes 10:05
kungfuftr autrijus: paste.husk.org/2811
elmex Darren_Duncan: do you mean: 'Warning: retaining unknown function `toUpperC' in output from C compiler' ?
Darren_Duncan yes, stuff like that 10:06
it never gave those warnings a few days ago
My gcc is version 3.3, if that is relevant 10:07
elmex i have 3.3.5
autrijus kungfuftr: you don't have src/Unicode.c !? 10:08
kungfuftr: how can that be? "svn up src" ? 10:09
Darren_Duncan 'make test' finally finished ... 16/1754 subtests failed 10:10
jabbot pugs - 835 - Perl5 version of Kwid tools.
kungfuftr autrijus: i have it 10:14
that's the weird thing
autrijus ok, try this. 10:15
svn up and make again
r837
kungfuftr yup... building now 10:16
ingy autrijus: do you have windows? 10:20
Juerd has windows. Three, even.
autrijus I am on win32
Juerd Oh, and mac++
jabbot pugs - 837 - * try fix hsc2hs
pugs - 836 - .
ingy no problems with nmake test right?
Juerd I'm already doing everything I did on my "old" home workstation
Juerd is liking it. 10:21
ingy ok, zzzzzzzzzzz& 10:22
gaal what does "&" mean on irc?
background, away?
Odin- never saw it until here. 10:24
But that seems the most likely explanation. :>
gaal good thing hacker here have a shell with job control!
s/hacker/hackers/ 10:25
autrijus nmake is just fine here, yes 10:27
gaal sub answer { 42 } 10:30
&::(answer);
Does this invoke answer or give a ref?
sorry, ("answer")
or is it simply context dependent? 10:31
autrijus no, &:: never invoke
& is always just obj
gaal i need to append .() to invoke?
autrijus aye
gaal thanks 10:32
autrijus "functions are merely objects with only the 'apply' method"
Darren_Duncan Autrijus, I just got to catching up with p6l and have now read your $self.method thread ...
10:32 Aankh|Clone is now known as Aankhen``
Darren_Duncan you asked me a question connected with this ... 10:32
autrijus I asked whether you're happy with my post 10:33
about making .meth always be tied to invocant, and to write $_.foo, always write $_.foo
Darren_Duncan uh ... I guess that sounds fine
would that mean that .keys will have to be $_.keys if iterating over Pair objects? 10:34
autrijus yes.
Darren_Duncan still, I did that in Perl 5, so no change
autrijus yup.
basically I'd like to huffmanize better
$self.foo vs .bar 10:35
.foo vs $_.bar
clearly $_ is already shorter than $self
Juerd The original plan was that .bar always meant $_.bar
autrijus so it's a net win
Juerd And that $_ := $whateverinvocant by default
I like that approach very much.
autrijus Juerd: yeah and it breaks $.foo
Darren_Duncan do you want me to say something on p6l?
Juerd That's a variable.
autrijus which doesn't mean $_'s foo attr
Juerd No, but it's a variable, declared. 10:36
In scope even
And .foo isn't $.foo
autrijus method foo { say map { .process($_) } @list }
Juerd Just as foo isn't $foo
autrijus I want to be able to write that.
Juerd I want more to be able to write map { .<score> } @words 10:37
Now if we implement my idea of calling $OUTER::_ $__...
autrijus so we have different expectations. :) 10:38
Juerd Yes
autrijus I see .foo as method calls
Juerd Your problem exists with nested foo too
autrijus and in my mind method calls are connected to invocants
Juerd And the solution with nested foo can be used with methods: use a different name
autrijus not to $_ at all.
Juerd That limits you to objects of the same class 10:39
In my mind, methods are methods, but not necessarily on the current invocant.
malaire does &.foo mean anything these days? (could that be same as $this.foo, and so .foo could be $_.foo)
Juerd That's a good idea, malaire
autrijus malaire: it means an attr
has &.foo;
Juerd: wait. .<score> is hash deref.
Juerd I think &.foo is an attribute though
autrijus: Yes!
Darren_Duncan Autrijus, I can't think of anything disagreeable with your proposal ... its no worse than an alternative ... it will take me time to think if there's something better
autrijus I'm fine with dereffing use $_.
Juerd autrijus: But . is generic!
autrijus: Whoa - no, don't decide what the LHS is based on .'s method 10:40
.<> is a method, visually
autrijus not to me. when I see .[123];
I don't think invocants, I think $_
Juerd It's actually Hash::postcircumfix:{'<', '>'}
jabbot pugs - 838 - kwid_to_html passing two more tests
Juerd You think different things based on how prefix . is used
autrijus yes. 10:41
Juerd Take a step back and think of how confusing that'd be.
autrijus takes a step back.
Juerd .foo is $self.foo
.<foo> is $_.<foo>
That's not very consistent
autrijus $.blah is $self.meta.attr('blah')
not $_.meta.attr('blah')
Juerd Especially if you consider that .foo :=: .<foo>, only through a different interface. 10:42
And if you want something as short as 1 character, just define a $s invocant
method foo ($s:) { map { $s.foo(@_) }, @foo }
It takes declaring 10:43
But that's consistent over ALL nested-$_ problems
autrijus method foo { map { .foo($^x) } @foo }
Darren_Duncan well, I'm going to get off seeing as its 2:43 am here ... good luck with that .foo thing
autrijus that too.
since that way there's no $_ binding.
Juerd There would
autrijus right?
why?
Juerd The first argument of a closure is bound to $_
consistently.
That is: the invocant
autrijus I don't see that.
the first invocant, yes. 10:44
the first argument, no.
Juerd or: the first placeholder
or: the first argument, in a for, for example
autrijus I don't think the signature in the map &foo is an invocant.
Juerd for @foo Y @bar -> $foo, $bar { $foo :=: $_ here }
autrijus I think it is a plain argument...
but correct me if I'm wrong.
Juerd: sure sure but
for @blah { $^foo ... } 10:45
here $foo is not $_.
that's my reading of S06.
I may be completely wrong.
Juerd The current topic is always aliased to the special variable $_. The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop 10:46
S04
And IIRC, current topic is the first arg
autrijus it is the first inv not the first arg :-(
but all in all I find the inv/arg distinction very confusing. 10:47
Juerd in for @foo -> $_ { ... } there is no invocant
autrijus but you explicitly bind $_
which is fine.
Juerd Invocant is the first argument in methods
autrijus and even in
for @foo { ... }
Juerd Every invocant is an argument, not the other way around
autrijus the $_ is implicit, if it's used
so still fine.
Juerd: sure sure. but map {} ...
the block is not a method.
Juerd for @foo -> $nonunderscore { $underscore :=: $_ }
autrijus it is just a bare closure.
Juerd eh
for @foo -> $nonunderscore { $nonunderscore :=: $_ } 10:48
autrijus: Right, and non-methods do not have invocants.
autrijus what.
multisubs all have invocants
sometimes multiple such
Juerd multisubs are very methodish
They can even be used with method syntax
autrijus ...
so ok. 10:49
I see that
for @foo -> $x { ... }
here $x is $_
because it is a ponty block
pointy block even
Juerd Because it's a closure with an argument.
autrijus and pointy block sets $_
Juerd Not because it's pointy, not because it's for
Aankhen`` Ponty block ponty block ponty block!!!
autrijus for @foo { $^x ... }
Juerd It's the closure that's consistent.
autrijus is $x here also $_ ? I am not so sure.
pugs currently does not do that.
Juerd $^x and yes
autrijus hrm. 10:50
Juerd Every block is a closure, and this behaviour attaches to closures, not to where they're used.
autrijus ok, then pugs may be wrong.
Juerd (All AFAIK)
IANALarry etc.
autrijus you mean IANTLarry
Juerd Larry is plural
:) 10:51
@Larry.
(i.e.: larry, damian, etc...)
Damian's a Larry, in this use :)
kungfuftr sophos++ # cancel contract due to blatant security holes in outsourced website 10:52
elmex_ just yesterday i read a synopses...and wondered about $_.method <=> .method and that it wasn't yet implemented in pugs...
autrijus nod... a test? 10:53
running home now. bbiab &
10:56 elmex_ is now known as elmex
nothingmuch morning 11:04
afternoon really
gaal heya!
nothingmuch should stop saying morning when it isn't, and just use 'hi' 11:05
what's up?
tomyan is there a minimum version requirement for GHC? 11:09
nothingmuch 6.2, i think
ayrnieu tomyan - 6.2+ 11:10
tomyan does it require unicode support compiled in?
gaal nuffin: i'm wokring on packages.t
nothingmuch tomyan: with unicode support you get unicode support in pugs too. Without it you don't
ayrnieu even OpenBSD 3.6 ports have GHC 6.2+, so you're probably safe =)
tomyan was trying to track down prob that i described last night (Illegal instruction)
it was ok in r914 11:11
then 915-918 don't compile at all
then in r919 all execution has illegal instruction bug
doing a diff over those revisions, the main change seems to be unicode related
is most likely prob with ghc, but wanted to produce a simple test case before reporting it 11:12
background: is on sarge on sparc
nothingmuch tomyan: reading autrijus's journal, I see a comment about having done it in C 11:15
based on perl5's unicode handling
r919 is a svn.perl.org revision, right/ 11:16
i think this means that unicode handling is now decoupled from GHC itself
gaal nuffin, got an example of how to compare two simlple hashes? 11:19
tomyan yeah, i see that
nothingmuch gaal: stringification works 11:20
since the order is undef though
gaal is(~%h1, ~%2) doesn't work for me
Fail: cannot cast into [VPair]: VRef (VList [VStr "1",VStr "2",VStr "3",VStr "4"])
i meant %h2 up there 11:21
nothingmuch you should do it as ok(~%hash eq any(....))
but anything above 2 keys becomes a hassle
odd
if i get it right
then it's really an error about lazily constructing %h2, i guess
gaal ah, i may have done that wrong:
our %h2 = <1 2 3 4>; 11:22
nothingmuch ah
gaal why isn't this correct?
nothingmuch try doing that as our %h2 = (<1 2 3 4>);
and add a test case for that
gaal no luck
nothingmuch since autrijus should know about it 11:23
ok then
our %h2 = ("1" => "2", "3" => "4");
gaal ah wait wait:
i'm comparing it to something in an eval
nothingmuch $self->is_waiting
gaal which is failing so is evaling to undef
maybe is(undef, ~%h) causes the problem? 11:24
nothingmuch hmm
gaal undef is ultimately eq, right? is that always scalar context?
nothingmuch i don't think so
can i see the script? 11:25
i'd like to know a bit more
gaal changing it to ("1" => "2", "3" => "4"); worked.
nothingmuch it all sounds very fishy in the unimplemented sense 11:26
ok, so it's a bug in what <1 2 3 4> means in it's unnatural context
i would gladly make a test case out of your "bad" script
pasteling "gaa;" at 192.115.25.249 pasted "~ %h problem" (80 lines, 2.8K) at sial.org/pbot/8276
gaal line 24/25; the blow up is at 36. 11:27
nothingmuch thinks up of a name 11:29
gaal just put it in hash.t, no?
nothingmuch i think 11:30
gaal hates TODO tests which untodod would have been written is(xxxxxxx, undef) 11:31
nothingmuch huh?
gaal eval makes you need to write todo_ok(eval '!defined(xxxxxxx)')
because if you naively do todo_is(eval 'xxxx', undef), it will pass 11:32
nothingmuch ah
so, err, reverse that
eval '!(xxxxx)', !undef
gaal heh 11:33
nice.
nothingmuch add an todo_is($!, undef, ".. and it wasn't just the eval dying");
after each one
gaal that's harsh :(
nothingmuch which i think is actually a much nicer solution, in terms of what it checks
it's less elegant 11:34
gaal well, once the test starts passing, the eval should be removed.
nothingmuch maybe we should have an eval_is
and todo_eval_is
gaal it's only ther because it parsefails otherwise.
nothingmuch which str eval's it's first argument
and checks the second
and reports fail if $! is set
gaal reports todofail you mean.
nothingmuch hmm
well, reports todo fail if todo_eval_is 11:35
autrijus tomyan: I know
I was casting C int as haskell Char
tomyan yay
autrijus but other compilers seem happy enough
gaal i'd do it now but i have to leave soon. writing old style, and will refactor test later if someone writes the suport for it.
nothingmuch autrijus: i just discovered zip is lvaluable 11:36
gaal: i'll add eval_ok to Test.pm
tomyan i have ghc-cvs debian package installed, but I can't figure out how to make the install use it over ghc
gaal document it please because this is tricky
nothingmuch ok
gaal double negatives and stuff.
tomyan otherwise i would try it with that and see if it works
i mean the compilation, not install
autrijus tomyan: it's an abuse of c compiler thing 11:37
gaal nothingmuch: I'm going with ok(!defined(xxx)) for now.
autrijus will you be around in say 20min?
I can attempt a fix 11:38
tomyan yep
thanks
nothingmuch gaal i'd leave it with is(foo, undef)
gaal ok, but that generates false passes.
nothingmuch hmm 11:39
well, i see your point
gaal which was the original problem.
nothingmuch i think yours is more elegant
but i'd do it as:
ok(eval '!defined(xxx)')
gaal k really have to go soon, i prefer to commit now
nothingmuch so that it's only true if it's really defined, and not just a fatal error
gaal er yes, that's what i meant
yes yes
nothingmuch okay
ciao then!
gaal r841, see y'all in a few hours& 11:50
nothingmuch ciao gaal! 11:52
errm, too late
autrijus :)
nothingmuch ok, we have eval_is
now for eval_ok
autrijus wow. woot! 11:53
nothingmuch ok everyone svn up 11:58
and convert your tests
mostly it's %s/todo_is(eval /todo_eval_is(/gc 12:00
oh, and most is(eval '', undef) changes to todo_eval_is, because undef return is different than failure 12:02
autrijus tomyan: try the newest revision? 12:29
r844
tomyan r966? 12:32
building now
autrijus I have a feeling you're tracking svn.perl.org instead of svn.openfoundry.org 12:33
there will be a 1min delay but that's fine
tomyan oh i was wondering why the revision numbers on rt.openfoundry.org/Foundry/Project/.../pugs/log/ weren't making sense to me 12:34
but now i know
autrijus because you're tracing the secondary mirror
kungfuftr autrijus: Unicode.hsc:29: Module `GHC.Unicode' does not export `ord' (also chr) 12:35
=0)
tomyan yeah me too 12:36
autrijus fixed I think. try again
kungfuftr yup, seems to be 12:37
hhhmmm... anyone got a smoke bot?
autrijus tomyan: so no segfault anymore? 12:40
tomyan is an slow old machine, still waiting for it to build 12:41
autrijus alright
rjbs tries the latest on Win32.
tomyan died after Linking ... 12:43
with:
src/Unicode.o(.text+0xc8): In function `r1aq_entry':
: undefined reference to `isSpaceC'
7 similar messages
pasteling "malaire" at 217.119.39.217 pasted "make failing on linux" (81 lines, 4.3K) at sial.org/pbot/8277
tomyan same as that
rjbs woop. fine on linux.
autrijus ok.
rjbs er. win32.
hey, did we get :r overnight? 12:44
autrijus ok, I attempted another fix.
need to run for dinner. will bbiab.
malaire r846 works for me (on linux) 12:47
dada r846 builds fine on Win32, GHC 6.2.2 12:51
tomyan r846 still has illegal instruction prob for me (linux sparc) 12:53
sorry 12:54
going to get my lunch, but will check backlog to see if you need me to try again autrijus 12:55
autrijus hi. 13:44
I kluged together some other fixes. 13:45
tomyan: can you try to hand tweak src/Unicode.hsc
#if mingw32_HOST_OS
make that branch always true
#if 1
or something
tomyan yeah no probs
Limbic_Region autrijus - did you get the /msg I sent you (though problem has been worked around already)? 13:46
any lambda folks about mind explaining a small piece of Haskell to me in english?
autrijus Limbic_Region: yeah. I don't known an easy solution to that. 13:47
Limbic_Region www.perlmonks.org/index.pl?node_id=440284 # I don't understand what it is doing so it is hard to write it in Perl
autrijus Limbic_Region: #haskell may help too
Limbic_Region: browseruk has a translation 13:49
Limbic_Region autrijus - was hoping for english not code - but *shrug*, I guess I should just learn Haskell 13:51
autrijus Limbic_Region: right. Gentle Introduction or YAHT :)
Limbic_Region ok - I will just improve BrowserUk's version 13:52
tomyan yep that works 13:57
autrijus tomyan: ok. so it is most definietely my Unicode.c that is broken. 13:58
tomyan: do you have C-fu?
tomyan nope
autrijus I don't have any C fu outside XS
tomyan i have very little fu 13:59
just perl fu really
autrijus so we need to find somebody else.
what does solaris define? SOLARIS?
dvtoo sun for one
one sec, I can get you the list out of gcc
tomyan dunno, but it is linux on sparc
autrijus oh ok. aw.
need to try get somebody versed in C to look at it 14:00
dvtoo it defines sun, unix, and sparc (on sparc)
also __svr4__ 14:01
theorbtwo autrijus, if Unicode.c is generated by script (and I'm guessing it was...) you should check it in. 14:04
autrijus theorbtwo: it was generated by hand using vim. 14:07
sad but true :( 14:09
14:09 cnhackTNT_ is now known as bytewolf
theorbtwo Oh. Perhaps I'll write something to generate it by script, then, since it seems to be missing quite a bit of stuff. 14:09
autrijus ok. the source data is unicore/* 14:11
To/* and gc_sc/*
I'll bbl. :) 14:12
nap &
stevan morning all 14:27
autrijus: what was the final outcome of all that $self.foo() vs .foo() debate? 14:29
nothingmuch++ # for eval_ok, eval_is 14:30
ingy++ # kwid stuff
stevan is reading the SVN commit log :) 14:31
malaire btw, is 'todo_eval_is' implemented? When I try to run ./pugs t/op/substr.t, I get "No compatible subroutine found: &todo_eval_is" 14:33
stevan malaire: I think you need to re-install Pugs
malaire: so it can find the new Test.pm in your path
malaire thanks, that works 14:34
I have some problems with test-file. Within pugs C< my $str = "foobar"; substr($str, 0, 1) > works, but when I run ./pugs t/op/substr.t first test fails and says "Got: was fatal" 14:42
stevan malaire: does the test fail? or is it all TODO test failing 14:47
I see all TODO tests failing
malaire I mean with my new substr-code added, it should not fail because same code works when run within pugs-interpreter 14:48
stevan you implemented substr? 14:49
malaire partly, I'm just writing that
stevan oh,.. hmmm. Well I think t/op/substr.t has !#/usr/bin/pugs at the top,.. which might affect things 14:50
but then if you are running it with ./pugs that shouldnt be an issue 14:51
autrijus stevan: no final solution yet. larry needs time to think. which is good 14:54
stevan autrijus: ok 14:56
malaire if I submit my current substr-code, could someone see why the first tests are still failing while same code works in pugs interpreter?
autrijus sure. 14:57
malaire I'm just quessing that todo_eval_is might be broken...
ok, r848 14:58
stevan malaire: I have seen some parse bugs which even eval dies on 14:59
hide my tests do that. eval dies on them. 15:00
stevan ok I have to go set up a server now, but I will be back for more perl6 File::Spec later 15:02
hide I just changed them from ok(eval ... ) to todo_eval_ok(...) and now they die.
where as before my ok(eval ...) syntax was wrong. 15:03
malaire with r484 substr should work for most cases (index-out-of-range is not working, and neither is substr-as-lvalue)
substr("camel", 0|1, 2&3) works also :)
err, r848 15:04
hide should I commit the tests as dying or comment them out? 15:05
obra hide: if you comment them out, add a todo test about them. 15:07
autrijus: is that a reasonable plan for tests that are dying on syntax error?
Jonathan_ I've started doing regular (daily, provided my computer is on) automated builds of a Pugs Win32 binary so Windows folks who aren't into compiling stuff can still play with Perl 6. Available at www.jwcs.net/users/jonathan/perl6/ - feedback/hatemail welcome. :) 15:12
autrijus !. !. 15:15
Jonathan++
Forth put that on pugscode XD
obra autrijus: why isn't pugscode.org a wiki? 15:16
autrijus obra: tuits? 15:18
also, need a kwiki theme for that
theorbtwo Just redirect it to pugs.kwiki.org?
autrijus that works too. again, need a theme and some kind of privacy / antispam
Jonathan_: pugscode.org now links to you 15:20
Jonathan_ Wow...now I just gotta hope Pugs doesn't get featured on /. :) 15:21
malaire it was yesterday... 15:22
autrijus try again. :) ghc-unicode.tar.gz
err it.slashdot.org/article.pl?sid=05/0...&tid=8
theorbtwo Sometimes I wish kwiki had real (Read: password-protected) accounts, so you could do reasonable nofollow. 15:23
clkao prepare for the trolls! 15:24
Jonathan_ Wow, how'd I miss that...nice. :)
obra yes. definitely not the time to create a pugswiki 15:35
rjbs More and more, I think any post with decent grammar and several paragraphs will get +5 Interesting. 15:38
theorbtwo ...and it annoys the heck out of me that getting a "funny" rating will make a post go up faster then getting an "interesting" rating. 15:40
rjbs I advise ignoring /. ; sound, fury, nothing.
theorbtwo I mostly do. 15:41
autrijus most days I read at +5 ;)
or +3 and with heavy "Funny" penalty
that way it's almost nice.
ok. anyone with GHC 6.2 around? 15:42
clkao me
pjcj two versions?
theorbtwo aut, you can do that? 15:43
autrijus theorbtwo: sure, "preferences"
clkao: ok. latest version may or may not work.
r849
tomyan: I think that will also fix illegal instruction foo
malaire in /. I have threshold +3 & Funny-penalty -6 -- that's quite nice 15:45
autrijus but that may make win32 unbuildable. 15:46
so please test.
dada goes testing
tomyan it says that src/Unicode.hs is missing 15:47
dada Warning: the following files are missing in your kit:
src/Unicode.hs
autrijus r850.
dada Please inform autrijus.
tomyan yep r850
dada r850 me too
and build fails 15:48
autrijus on win32?
dada yes, on Win32 (Can't find module `Unicode')
autrijus weird that's not the error I expected
dada while compiling src/Internals.hs, apparently 15:49
autrijus but src/Unicode.hs is there
dada no
ohhhhhhh wait wait
i did svn up and *then* nmake clean
autrijus heh.
dada redo
tomyan ok got it, trying now 15:50
clkao autrijus: what are the expected failures? 15:51
dada r851 now, and it builds
malaire just a quick test with eval_is gives problems:
is(eval 'substr($str, 0, 1)', "f", "..."); # is ok
autrijus dada: you have cl.exe in your path?
malaire eval_is('substr($str, 0, 1)', "f", "..."); # fails
dada autrijus: yes
only one warning when linking
Warning: .drectve `/DEFAULTLIB:"LIBC" /DEFAULTLIB:"OLDNAMES" ' unrecognized
clkao (7 subtests UNEXPECTEDLY SUCCEEDED), 10 subtests skipped. 15:52
Failed 13/105 test scripts, 87.62% okay. 6/1786 subtests failed, 99.66% okay.
autrijus ok fixing that
dada mmm
autrijus: I think UnicodeC.c is compiled always 15:53
autrijus right. I fixed that.
r852
clean and rebuild
dada I'm in nmake test right now :-) 15:54
autrijus the only test that matters to this is t/syntax/unicode.t
dada not there yet
pugs is becoming slow to test... :-) 15:55
autrijus we need a faster evaluator
:)
I'm working on that too. should be the next commit
theorbtwo You can run a single test: PERL6LIB=./blib6/lib ./pugs t/syntax/unicode.t 15:56
clkao autrijus: i think it wokrs.
autrijus clkao: r852? good!
15:56 cnhackTNT_ is now known as cnhackTNT|away
autrijus and no warnings whatsoever? 15:56
clkao autrijus: but now make always want to recompile the unicode.hsc
theorbtwo wonders if the harness should be made to run tests in a random order.
autrijus clkao: there is no longer a unicode.hsc
clkao: it should be killed
is it not for you?
tomyan after Linking... i get gcc: UnicodeC.o: No such file or directory 15:57
hav just updated
autrijus tomyan: right... sorry, plan changed, svn up again :)
clkao was r851
autrijus r852 is now inlining UnicodeC.
tomyan i mean i am trying again after updating
autrijus ok, danke
dada now building r852 15:58
theorbtwo Hmmpf. On the one hand, I find myself the proud owner of account #493. 15:59
On the other hand, I find that it's named "James Mastros (The O".
autrijus hopes it works for tomyan 16:03
stevan FreeBSD port tree ++
autrijus so, 30% of the codepath is on Unicode 16:04
and of the remaining, 50% is on Eval.reduce
hide svn: Failed to add file 'src/Unicode.hs': object of the same name already exists
autrijus based on the two pieces of information, I just added -O to the two modules.
hide: right, need to rm that before updating
r852. now pugs is significantly faster.
tomyan nope
illegal instruction 16:05
autrijus still illegal instruction?
bummer. I thought it's a typecasting problem.
tomyan is it a sizeof(some data type) problem 16:06
autrijus oh?
iiinteresting
dada r852 working on Win32 (GHC 6.2.2) and unicode.t 100% ok
tomyan is a 64 bit machine, but kernel runs progs in 32bit userspace
i think
autrijus hrmph hrmph.
tomyan am i right in thinking that you interface with some c code and there is some conversion between native haskell types and c types? 16:09
in src/Unicode.hs?
am looking at the code, but no haskell or c fu so just guessing
hide was there a decision on tests that die and commenting them out? 16:11
kungfuftr autrijus: do you know of any IRC bots that can do smoke tests? 16:12
autrijus no idea 16:13
hide: not that I know of. use eval'' if possible I think?
hide yeah, it is in an eval, but the eval doesn't capture it.
tomyan autrijus:if pugs will use unicode features of ghc 6.4.1 when it is released, your time might be better spent on other features, rather than this bug which will go away by itself anyway 16:14
autrijus tomyan: just one final try please
tomyan of course 16:15
i am glad to be of any help i can
autrijus ok. I hope this still makes ghc 6.2 happy 16:19
that's going to be the final try :)
tomyan: 855
tomyan building
autrijus crosses fingers
malaire is there a place where I could add tests testing Test.pm module? (at least eval_is is broken, and should perhaps be tested) 16:20
autrijus malaire: ext/Test/t
malaire not in t/ ?? will those be run among normal tests?
autrijus somebody on ghc 6.2 please try 855 too 16:21
it should work but not guaranteed
hide I'll give it a go
theorbtwo Compiles, passes unicode.t 16:22
autrijus yay. Unicode.hs now goes from being ~10% of execution time into 1% 16:23
all bottleneck is on reduce now.
reduce Eval 53.8 53.3
theorbtwo Heh, I take it I no longer need to write a Unicode.c creator... 16:24
autrijus theorbtwo: yes :) 16:26
someone did that in haskell
and is already in GHC 6.4.1 trunk
lightstep j0
theorbtwo Oh, lightstep, you should fix your AUTHORS entry.
autrijus hi lightstep-san!
I never got your mail
theorbtwo And good-morning.
autrijus or did I miss it?
lightstep perhaps 16:27
i'm not near my computer now, anyway (until sunday)
autrijus what is the name in From: ? :)
lightstep it's on lightstep.woobling.org, if that matters
[email@hidden.address] 16:28
or Amir Livne Bar-On
tomyan is the same
sorry
autrijus ok. I give up :) 16:29
please use the win32 branch in Unicode.hs locally for now :)
tomyan well thanks for trying, will use pugs on i386 until ghc 4.1 comes out
lumi Oh
I know you
lightstep theorbtwo, can you do that for me? i'm Amir "lightstep" Livne Bar-On, and the unicode of the hebrew name is on my site at woobling 16:30
autrijus lightstep: aha. got your mail
theorbtwo Cool, will-do.
You'll be the first person with a unicode name, but no CPAN ID.
lightstep my code is probably very unfit: i didn't know the structure of the evaluator well then i wrote it (not that i know much more now) 16:31
autrijus lightstep: oh. care to describe in brief how unfit it is? 16:35
lightstep the subroutine creation and enclosing (as in closure) are probably not what they should me 16:36
and more places should be converted to doFromValue
autrijus or just fromValue
lightstep (which places, i don't know. i changed op2Numberic and op1Printing manually)
autrijus which is preferred
lightstep i wasn't sure which is better
autrijus oh. fromValue is better. 16:37
lightstep i think intermixed them
which is not good
also, doRunSingle should ve fixed to not use vCast
autrijus k. 16:38
chip Hey all, I'm looking for a way to integrate Params::Validate into Perl 6 parameter syntax. Is there already a Perl 6 native way to do this ... i.e. if I did it in Perl 6, what would it liikely look like? 16:40
autrijus oh. wow. chip! 16:41
did not notice you here :)
chip method foo (str $s is validated( regex => /stuff/ ), ... ) ?
autrijus chip: look into "where"
chip autrijus: hey there. just found out about this channel
autrijus ah. thanks for increasing this channel's pumpking count 16:42
chip there are others?
autrijus rgs for example?
theorbtwo Three, AFAIK.
chip 's pecking order instinct takes over
autrijus and schwern too
theorbtwo You, RGS, and Autrijus, pumpking of pugs r0..858 and counting. 16:43
autrijus theorbtwo: schwern :)
chip S09 doesn't mention "where". Where, um, is it?
autrijus chip: try S12
chip ok
rgs hi chip 16:44
rgs awakes
rgs back to sleep &
autrijus ...
lightstep isn't a pumpking's responsibility to not accept patches sometimes? so is autrijus really a pumpking?
autrijus ha.
I don't accept patches.
I hand out committer bits.
quite different.
rgs you're a metapumpking then.
lightstep but you _do_ control the main server 16:45
kungfuftr autrijus is really a crackfuelled perlking
autrijus lightstep: aye. true
theorbtwo He's also a double-meta pumpking, even.
chip "where". Clever.
But given Num where { $^n % 1 } why not $_ ? 16:46
autrijus clarity.
lightstep heh. my firefox doesn't read chinese
autrijus $_ works too.
oh. o. o. ooo. ooh. o. 16:48
the story of Perl OO is the story of o.
chip Why do $_ and $^n both work? I know what $^n is, btw
Num where { .odd }
autrijus # www.nntp.perl.org/group/perl.perl6....uage/19821
chip: see "implicit params" for the reason. 16:49
$_ is autoextracted just like $^N
$^n
where $^n is autoextracted into $n, $_ is into *$_.
(I think)
chip So { $^a + $^b } eq { $^a + $_ } if you pass two params? 16:50
autrijus I think _ sorts best.
so that would be $^b + $_
err
I mean $^b + $^a.
anyway you know what I mean. 16:51
chip But you have to do something that uses $_ to trigger that? Me _not_ like
but I'll keep reading
autrijus well, if you don't use $_ or .foo or .[0]
chip And WRT "o" ... dammit, that's just wrong. I like $_ invocant
autrijus then that closure is good as a nullary
mmm sleepy brain 16:52
o.no
o.rz
that however agrees with Juerd's suggestion.
only he uses $s / $o
chip but that means the parse tree must produce a boolean "did this block use $_", that kind of state is pretty ugly. Still. Hm.
autrijus uh, no 16:53
the extraction is done after the AST is built.
pugs implements that.
chip ok
autrijus it's AST.extract
if you are interested.
_.meth 16:54
omg.
chip I'm interested, but incapable (of reading Haskell)
autrijus I thought you've been studying it :)
chip Made effort, paused for other issues 16:55
autrijus I see.
lightstep apocalypse 5 says that in regexes, \x20 is the same as \040. did he mean \o40? 16:59
autrijus yes.
patches to p6l
:)
larry's brains agreed with each other. 17:00
theorbtwo Larry is Steve Martin? 17:01
ingy hola 17:02
Steve_p hey 17:03
theorbtwo Gruss dich.
Limbic_Region autrijus - it was Hamming Sequence I needed explained, not the lamda code - my solution is now posted (in p5 of course)
AFAICT - it is the only correct original solution in the thread 17:04
Limbic_Region does his happy dance
autrijus ooh . 17:05
Limbic_Region: url?
ingy: larry's brains is more kaleidoscopic than us, as evidenced in latest p6l post 17:06
cflag how different is haskell from cl
autrijus what is this CL thing?
commong lisp?
cflag common lisp
autrijus oh. eh.
clkao is CL 17:07
clkao has been ussing Franz CL
autrijus quite different.
it's lazy by default and purely functional.
so it is like a subset of CL
but again, almost all language is like a subset of CL.
theorbtwo AFAICT, haskell is a lot more serious about being functional.
So there's no equivlent to cons, or p5's push -- functions /never/ modify their argument. 17:08
autrijus not outside the IO monad.
theorbtwo Er, right. 17:09
autrijus autrijus.org/haskell_brain.html
I need to fix the translation.
cflag ok 17:10
lightstep haskell is also typeful 17:11
autrijus "Haskell users is known to chant 'harry referential transparency' inccessantly" 17:12
lightstep theorbtwo, push also exists in lisp, but as a macro
theorbtwo It's very strange -- somehow, I want to read it like some sort of Flash Gordon episode.
I didn't realize it was a macro, but did realize it exists. I don't know much lisp. 17:14
lightstep now really disappears for days 17:16
chip autrijus: almost all language implementation is a subset of CL. almost all language syntax is a superset of CL. :-) 17:18
autrijus :)
ooh the YY combinator.
"other languages may have the Y combinator, but only perl 6 has the YY combinator!"
(re larry's YY as short-circuiting zip()) 17:19
chip "_.frobme looks like someone stepped on the front of your expression"
theorbtwo Hm, Ā„Ā„ doesn't look shorter then Ā„ to me. 17:20
chip Am I gonna have to convert to mlterm just to read #perl6?
theorbtwo Almost makes me want to say that ļæ„ keeps going, and Ā„ does not, but FFE5 isn't latin-1. Anyway, they look too much alike.
chip ōæ½xA5 is one character to me still 17:21
autrijus theorbtwo: no, er, the idea is to invoke idea about || and &&
"short-circuiting is made when you type something twice"
chip: gnome-terminal works too 17:22
theorbtwo That was YY vs Y on the first line, and full-width Y vs halfwidth Y on the second.
Yeah, but | and || do completely different things in p6.
That neumanic would make sense in p5, but not in p6.
autrijus V then 17:23
V looks like Y without filling ;)
1,2 V 3,4
APL, here we come 17:24
chip autrijus: using gnome-terminal; which font are you using to see FE5?
FFE5, rahter 17:25
autrijus Arphic Ming
I think
theorbtwo Hm, I don't like pure alphabetic infix operators that don't look like English.
autrijus or Arphic HKSCS (Unicode)
theorbtwo Then again, I don't see the reason to have an infix version of everything; zip(:short @a; @b) reads well to me. 17:26
autrijus or zp() ;)
theorbtwo wonders how much namespace is going to still be there for the users at this rate. 17:28
I suppose the prefix zip operator doesn't conflict with a zip method, at least.
autrijus true. 17:34
ingy autrijus: I am massively attacking Makefile.PL 17:38
autrijus I wish you massive luck.
btw, I think the DOM idea is totally on the right track. 17:40
mugwump++ ingy++
theorbtwo DOM idea? 17:41
chip Perl has always supported subs, so it's about time we support the doms too. 17:42
autrijus theorbtwo: POD being a DOM with different representations
theorbtwo Aaah.
autrijus it's really integrating Pod::Simple into core, so to speak 17:43
with good accessors for things
map { o.process($_) } 17:44
ingy: have you thought about something similar to o and c in Spiffy's light? 17:45
ingy sorry, not following you 17:47
autrijus ingy: www.nntp.perl.org/group/perl.perl6....uage/19821 on 17:48
Juerd mac-- # keyboard repeat gets fast only after 2 initial slow repeats 17:49
autrijus ingy: so your Makefile.PL hackery will deliver us from uninstalling Test.pm with UNINST=1 on pugs?
ingy ha 17:52
I'm just moving all the crap into proper util scripts
autrijus nod 17:53
ingy and cleaning up cruft
autrijus: Perl6 is my Spiffy :P
autrijus so you think c and o is sane? 17:55
larry in not on some destructively psychedelic drug?
Limbic_Region autrijus - sorry - lunch - [id://440431] 17:56
errr www.perlmonks.org/index.pl?node_id=440431 even
autrijus ...
theorbtwo Hm, it does seem like a somewhat wacko idea... but OTOH it also seems like a low-noise way of fixing the problem. 17:57
ingy o fits my brain
theorbtwo I'd prefer to think of them as magical variables rather then the result of methods/subs, but that doesn't fit well with making them nice and short.
autrijus (o Y c) ^ (._.V x ?.<>) 17:58
gaal hi all
clkao wtf
autrijus I like the ._.V expression.
it's even legal :) 17:59
theorbtwo Hmm, I think I get it all except ?.<>
autrijus ?.<> === so($_.{''})
theorbtwo Ah, of course!
gaal er, what language is that? 18:00
autrijus gaal: perl 6.
no user-defined operators, even.
gaal autrijus, that's a parsefail for my mental model of perl6 :)
ah 18:01
oh
ouch
theorbtwo LOL.
autrijus a golfer's dream come true.
theorbtwo p6: Where east-asian simlies are valid code. 18:02
gaal i probably missed the part where you said what it means?
autrijus really, with one-casting-cost o and c in the OO color
Steve_p Ahhh, Sawgrass
autrijus finally it will be competitive on the golfing tournaments
Steve_p Oh, sorry, wrong golf ;)
autrijus gaal: it doesn't mean something terribly useful. I'm just trying to tease my brain (and yours) about the sanity of o and c 18:03
gaal i missed the definition of those two
autrijus gaal: www.nntp.perl.org/group/perl.perl6....uage/19821 18:04
theorbtwo o(?Int=0) is an invocant; c(?Int=0) is the class of the invocant.
gaal gotcha. 18:05
gaal .push(tie and other hook TODO tests on packages+symtable) 18:06
theorbtwo Allo, dvergin. 18:10
autrijus my mental reconfiguration is done.
dvergin runs for the corner
autrijus posts a virtually contentless fanmail for o and c on p6l 18:11
obra o and c?
autrijus obra: o is $self
c is ref($self)
obra heh 18:12
oh. sorry. I was context deprived
obra reas scroll
autrijus full post: www.nntp.perl.org/group/perl.perl6....uage/19821
Aran_ Hi all! Terrence Brannon gave a great perl6 presentation a couple weeks ago at our mongers meeting in thousand oaks. 18:13
Steve_p metaperl++
Aran_ So, I was inspired to install Haskell and Pugs. Haskell install went fine, but the pugs install is giving me an odd error (saying I don't have perl 6?): 18:14
obra hm. I think I'd sort of like to see "me" instead of o.
ingy I DON'T SWIM IN YOUR TOILET. PLEASE DON'T PEE IN THE Makefile.PL
autrijus ingy: hm?
obra Aran_: tried building from source?
ingy Makefile.PL is clean now
autrijus Aran_: 6.0.11?
Aran_ obra: Haskell is built from source (6.2.2) and Pugs is being built from source. 18:15
autrijus uh. you built ghc from source.
thanks for your patience.
Aran_: so, do you have svn? can you check out the latest trunk?
Aran_ I use gentoo, so I like to build my stuff. :) I'd die with kde.
autrijus and what is your platform?
Aran_ sure
autrijus ok. 18:16
is it the latest trunk that fails?
Aran_ Nah, the 6.0.11 from cpan. I'll try the trunk.
autrijus svn.openfoundry.org/pugs/
is the trunk url.
Aran_ ok
thanks autrijus
autrijus also, nopaste the full error when you have chance
pasteling: help 18:17
hrm. I don't really know how to use pasteling :)
theorbtwo perlbot, nopaste?
perlbot Paste your code here and #perl will be able to view it: sial.org/pbot/perl
Aran_ oh, nice pasting tool. Pasteing as we speak. 18:19
gaal except you want perl6, not perl. 18:20
obra ponders foundry pastebot integration
pasteling "Aran_" at 64.70.54.15 pasted "My error when trying to build pugs 6.0.11" (13 lines, 1K) at sial.org/pbot/8301
autrijus Aran_: ah. that's okay. 18:21
and I think trunk already fixed it.
the main tests all passed, which is what counts for now. 18:22
Aran_ Building trunk now, so we'll find out shortly.
true
autrijus trunk's pugs should also be much faster, up to 5x or so.
not sure if anyone cares at this point though.
crysflame why's that? 18:23
(faster)
autrijus crysflame: better C-based Unicode library and two strategic -O flags.
crysflame yay
Aran_ Thats great. Doesn't pugs have a future? I mean, why would faster not be important unless pugs was getting ditched at some point.
autrijus Aran_: the evalutor's speed is not of much importance I think, because if you want speed, you use the compiler eventually. 18:24
Aran_ autrijus: oh, gotcha, that makes sense
obra how much faster does compiled pugscode run?
autrijus obra: I don't know, we don't have a compiler.
pugscc is a packager like perlcc. 18:25
not a true compiler.
pugscc can save some processing and parsing overhead
but that's all. again same as perlcc.
theorbtwo pugscc will allow you to bypass the parser, but not the evaluator. 18:26
autrijus yup.
rgs and when do you port PAR to pugs ? :)
autrijus I think it's pugscc :)
Limbic_Region discovers his understanding of the Hamming sequence was wrong and that he was the only one who didn't get it right 18:27
autrijus Limbic_Region: ... 18:28
although a fast evaluator means faster test cycles
which gives us a motivation to write more tests.
gaal [off topic] code.google.com/ - "Welcome to Google Code, Google's place for Open Source software"
Aran_ autrijus: well, that was neat to watch, trunk gave me quite a few errors (88.57% okay). I'll go ahead and install it tho and start playing. Finally! Perl 6! YAYAYA
autrijus :)))
have fun!
I'll sleep now.
Aran_ will do. you do that. thanks.
theorbtwo G'night, autrijus. 18:29
autrijus *wave* &
gaal means "wave" in Hebrew 18:30
obra sleep well, autrijus
Aran_ nive. kwid is like wiki text (big yay over pod). I love the ascii "PUGS" graphic. Also, I like how the cli is like entering vim commands. Good job. 18:32
s/nive/nice/
gaal my telepathic link to the net... :) 18:35
obra :)
gaal www.livejournal.com/users/evan_tech/ , cool person and good hacker. 18:36
obra cool
theorbtwo Yah, evan's pretty cool. 18:38
(And, somewhat relevantly, presently in the employ of google.)
chip Hey all: my sub ($x is rw of Num where { $_ % 1 })?
or: my sub ($x of Num where { $_ % 1 } is rw) ?
obra Apparently, it also just got released at etech
gaal obra: what's etech? 18:39
obra Oreilly's Emerging Technologies conference
chip It's the conference for cool people. OH LOOK YOU'RE NOT THERE
OH WAIT NEITHER AM I NEVER MIND
obra chip: are you asking what current syntax is or what reads best?
gaal my telepathic link, you see, it gets blocked sometimes.
chip obra: I'm asking which one is current
obra ah. That, I'm no good at.
chip Larry says that C<$length = "mystring".codes> autoboxes from str to Str. 18:44
however, str is not Unicode and Str is.
This bothers me.
theorbtwo str isn't unicode?
chip "str native string (sequence of integers, no Unicode)" - S06 18:45
"Str Perl string (Unicode semantics)" - ibid
theorbtwo Blink, blink.
chip yeah. me too.
theorbtwo That should probably be revisited, because S regs in Parrot do unicode. 18:46
gaal amaztype.tha.jp/US/Books/Title?q=pugs # i will stop my linkage staright away, promise; this is too cute though.
rgs wait wait, you can't say something is "native" without saying in which encoding it is 18:47
obra a string is an int sequence with no encoding? indeed.
chip Larry just doesn't seem to get the dangers of saying that the encodings are someone else's problem. 18:48
rgs there's the ambient encoding, for literal strings 18:50
chip But that would imply that "foo" isa Str, not str 18:54
If you can't make a str with "foo", how can you make one? What's the point?
*sigh*
rgs so str are useless 18:57
theorbtwo No, it just implies that using method call syntax on a str makes it into a Str. 18:58
rgs using which encoding ? 18:59
theorbtwo Hmm, under the S06 rules you quoted? No clue. 19:00
rgs current locale ? current program encoding ? (when it's not bytecode) other pragmatic directive ?
nothingmuch why are str useless? they are good for binary data, without the overhead
rgs if str are simple binary data you can't convert them to unicode semantics 19:01
hence, the need to specify a conversion mechanism
nothingmuch i mean without conversion 19:06
if i'm dealing with data, not human strings, then why would I want the overhead of unicode, for things like length calcs, or conversions?
IMHO a Str is what you get out of a str when you know what's in it 19:07
rgs well, something needs to be clarified here
nothingmuch from then on they can coerce into other encodings
implicitly
with only the boundries specifying what goes in and what goes out
i.e., what encoding is a filehandle
etc
with unicode as the common base 19:08
and yes, things need to be clarified, i think
rgs that said,
rgs off to Paris.pm meeting &
nothingmuch ciao
rgs see you tomorrow.
nothingmuch if anybody is looking for testing
theorbtwo What you want is a binary charset, which has no semantics -- uc/lc/titlecasing it is always an error, and there are no conversions to other charsets. 19:09
nothingmuch i think that s06 is pretty fun
and not well covered
theorbtwo Oh, and graphemes is always equal to chars.
But that's not the same as "has no charset".
nothingmuch theorbtwo: in a str, i think yes 19:10
unless i say 'all the strs here are foo'
imho that is equivelent to no charset, in the traditional set
or 'this str is bar'
well, you could argue thaty
or an array of things the size of chars in the err, less traditional set, as a bit vector
gaal probably uc etc. fail silently is better.
nothingmuch isn't in favour of silence for such things
gaal or maybe not. dunno.
nothingmuch it's something explicit 19:11
transform this to that
theorbtwo This debate has been done before.
nothingmuch (Err, can't do that)
(whatever)
theorbtwo In many different contexts.
gaal *shrug* i don't really have a position i care about strong.y 19:12
also, i'm off. see 'ya later, peeps.
nothingmuch ciao
theorbtwo: what decision was reached?
i think that anything that is really explicit 19:13
and not reasonable to fail
draw your line at ...
should fail given 'use fatal'
for example, the index() debate
i think is ok for silent failures 19:14
otoh something like conversion, is a bit different for me
how near/far is perl6's percieved status?
also, will you be able to subclass code references 19:16
and cause different behavior of subs? 19:17
crap, bbiab... sorry for asking and running away 19:18
chip Given 'str $a', is defined($a) guaranteed? 19:33
Juerd Should be
theorbtwo I think so, yeah.
Juerd It should either always be, never be, or be a runtime error 19:34
Compile time if possible
I think the most sane approach is to declare it true with a warning
chip Hm. I wonder whehter Parrot's string registers can hold "no string here" 19:38
19:40 khisanth_ is now known as Khisanth
ingy who runs the nopaste server for this channel? 20:01
Khisanth which?
jabbot Khisanth: which is not good
Khisanth thrig handles pasteling
ingy nopaste?
Khisanth sial.org/pbot/perl6 ? 20:02
ingy yes 20:03
Khisanth that would be thrig
ingy where does thrig hang out?
theorbtwo Well, apparently, some guy named Jeremy Mates. 20:04
Khisanth #perl
and apparently #macosxhints :)
ingy thanks 20:05
20:15 khisanth_ is now known as Khisanth
ayrnieu gives up on getting svk installed. 20:19
er, OK. Neither svk nor darcs want to cooperate. Game over. 20:36
chip Anybody know whether C<my str $s> can hold undef? 21:23
er, Juerd and theorbtwo seem to have answered 'probably'...?
theorbtwo No, shouldn't be able to. 21:24
OTOH, pugs will "implement" str by pretending you said Str.
chip bug? feature? YOU be the judge 21:25
theorbtwo sleep & 21:27
dada goodnacht 21:33
Juerd chip: It cannot hold undef, but that doesn't meant defined should return true 22:03
chip OK, that's just wrong.
chip is of course speaking from ignorance, even if he is right
Juerd chip: I think it should, for sanity's sake, but there is no rule saying that something that cannot be undefined is actually defined :)
chip Juerd: A system in which such a rule is required is likely not going to get much attention from me
fwiw 22:04
Juerd Then how did you get this far in Perl 5?
In which undef is a variable, and can be as defined as the next $foo.
All it takes is turning off its read only flag, which isn't that hard. 22:05
chip Juerd: That's only possible by reaching outside the language, and you know it.
chip 's finger hovers above Juerd's bozo bit
Juerd In this context, I wonder if defined for an str should maybe return undef, rather than bool::true or bool::false 22:06
chip 's finger drops
Juerd chip: If something doesn't have fooness, then is it foo? unfoo?
So I think the better question is whether a str has definedness. 22:07
I can even envision defined($the_str) returning undef but true
chip The only important question is whether Perl 6 has the buddha nature 22:08
Juerd Anyway, if English is any guide for a programming language, then defined should probably always return true for strs
chip What is the sound of adding a single number? 22:10
metaperl_ a curried function 22:11
that's the Haskell answer, at least:
add_single n = (+ n)
Juerd That depends on many factors, including the applicable force of gravity and the single number's weight.
metaperl_ done
Juerd And the velocity at which the number is added, obviously.
metaperl_ ah, I gave the *definition* of adding a single number... the continuation in fact... but ignored the physical requirements of the question 22:12
chip Is that an african or european number?
metaperl_ is chip chip salzenberg?
Juerd chip: That's a purely notational difference.
chip Me am. He is. Whatever. 22:14
Juerd "By the way, I think I've seen a few people suggest some sort of 22:15
syntax-switching mechanism for "Pod6". The day people have to think
about what dialect of Pod they're using is the day Pod dies as a
useful documentation language."
brentdax++ # I agree with his opinions re pod
chip Well, jeepers, it's not like C<use strict> kills Perl.
Juerd Perl's strength is not in simplicity 22:16
However, POD's is.
In that respect, POD is very un-perlish. Not everything has to be perlish, though. Only programming languages :) 22:17
chip It's the same brain, though. I really don't get it. Not that I care much either way. The real problem with pod right now is the lack of left-margin markers.
Until that's solved, it's too hard to scan podified source code.
nothingmuch are there any plans for reimplementing all of perl6 with perl6, as far as possible, once it's ready? 22:18
i mean, will multi sub infix:<Y> is rw ((how do you specify the proto?)) { } be written in perl, or implemented in parrot, or something else?
Juerd chip: I agree that POD is hard to read when interleaved with the source
chip: However, for documenting outside the perl code, i.e. at the bottom of a module's source file, it's great.
nothingmuch: Perl 6 should by current plans be written in Perl 6 22:19
nothingmuch: Pugs is one possible way to bootstrap.
nothingmuch how is it supposed to err, perform normally given say:
$i = $i + $j;
in a tight loop, if it is doing MMD for every addition? 22:20
Juerd By knowing when not to MMD.
nothingmuch compile time dispatch, of my Int $i?
Juerd This is comparable to the non-problem of every block being a closure
Yes, conceptually, every block is a closure, but internally, it'll only behave like one when necessary. 22:21
nothingmuch ok
will 'my $i = 5
'
be able to compile $i is Int properly, at least on a simple level? 22:22
Juerd I don't know
nothingmuch i.e., will there be some type inference, as a non-intrusive optimisation? 22:23
nothingmuch wonders who will volunteer to deal with all these complexities in implementation
chip nothingmuch: Sadly, when nobody with good design sense likes a given idea, it is implemented by the people without good design sense. Thus, for example, Perl 5 operator overloading and 5.005 threads 22:29
And most of CPAN, come to think of it. 22:30
nothingmuch most of CPAN goes unnoticed, for that reason
but I think that the CPAN most of us speakof it's it's usefull subset
nothingmuch shudders in memory of Mark Veltzer's 'Meta' 22:31
chip Never::Meta::Package::I::Didn::t::Like 22:32
nothingmuch ' as a namespace separator is deprecated... don't be naughty! 22:33
nothingmuch has sinned and distributed something with Meta in it's name
but just because it was shorter and arguably more fitting than 'Compound'
Compound does not imply transcendance into another state 22:34
chip Dimensional transcendence
stevan anyone know if .SUPER::method() is the right perl6 syntax? 22:44
nothingmuch no, it isn't
one second
:super
hmm, wait 22:45
stevan yeah exactly :)
i am reading s12 trying to figure it out
nothingmuch there's got to be a more compact syntax than $object.*WALK[:canonical:super($?CLASS)]::method 22:46
crysflame wow
that's remarkably concise
nothingmuch seems like SUPER:: is the right way
chip there are times when I can only cry
nothingmuch but only by an implicit mention
crysflame chip: i like how your hostname is topaz
nothingmuch If you mark a class "is hidden", it hides the current class from "next METHOD" semantics, and incidentally suppresses the autogeneration of *%_ parameters. Hidden classes may be visited as SUPER::, but not via "next".
although i really really like the concept of *WALK[] 22:47
stevan me too
chip crysflame: A tornado expert with the initials TF had for many many years never actually observed a tornado in person. He chose a vanity license plate of "TF 0000".
crysflame chip: ah
that's great :)
nothingmuch in terms of flexibility it is something i've often cried about 22:48
waited a week
and then implemented myself
in p5
A role applied with does may be parameterized with an initializer in parentheses, but only if the role supplies exactly one attribute to the mixin class 22:50
$fido does Wag($tail);
is that in case the Wag role defines a delegate?
stevan nothingmuch: you should try this perl6 porting stuff,.. it's fun
nothingmuch stevan: unfortunately my time to pugs this week was all 10 minute chunks 22:51
stevan nothingmuch: mine was in 20 minute chunks :)
nothingmuch my concentration starts working only about an hour and a half into things
provided i am having no specific problem concentrating to start with 22:52
stevan thats the beauty of it,.. most of it is brain dead translation
nothingmuch thinks sometimes ritalin would be a good tradeoff
stevan: i don't want to do braindead translation
crysflame i know meth heads that resorted to snorting ritalin when they ran out
stevan ritalin is pretty much pharma grade meth
its methelphenidata
nothingmuch i want to be cunning, and witty =) 22:53
isn't it harder to get than meth?
stevan nothingmuch: you can get a script from a doctor, so no
nothingmuch stevan: as a parent getting one for a child, I see how it could be easier to pressure
but for a typical junkie
err, walking into a doctor's office 22:54
stevan nothingmuch: true
nothingmuch . o O ( "hey dude... uhm. i like, have problems concentrating, like, when, uhhh" )
stevan but here in the U.S. they are marketing ADD-drugs for adults now
nothingmuch ah
stevan tried ritalin, but didn't like it 22:55
nothingmuch i am scared to death of trying these things
stevan I would rather wear my mental illness on my sleeve :)
nothingmuch i have not yet heard of a single wonder drug, that after many years retained a good reputation
except for aspirin
and even it was subjected to criticism in the 70s, i think 22:56
stevan nothingmuch: the ADD drugs now are either speed (ritalin) or anti-depressents
neither of which sound like a good thing to me
nothingmuch exactly
brain-chemistry stuff tend to have side-effects by the kilo 22:57
stevan I had all too many friends in art school get lost in (prozac | zoloft | paxil)
crysflame modafinil is fun
(theoretically)
nothingmuch and i think that if i got as far as i've got without them, the switch from fixing defect a to and getting defect b will probably not be worth it 22:58
if it's bound to be discovered as problematic later on
stevan my old girlfriend was on imipramil
nothingmuch heh
stevan nothingmuch: I suggest that unless it is causing problems in your life, just enjoy your "illness" :)
nothingmuch crysflame: why isn't it more popular? it's the first time i've heard of it
stevan: well, it does bother me a lot 22:59
crysflame i dunno. google it.
nothingmuch especially with the things i really like to do
(playing music, writing software, reading),
if i get into that state i must hike
and then i'm fixed for a few days
stevan there you go
take a 5 mile hike and call me in the morning 23:00
nothingmuch but sometimes i can't
nothingmuch hopes he can manage to balance his life such that weekends are always filled with exploration
the temporary fix for concentration problems is the TV
nothingmuch suddenly realizes he hasn't watched any for about 3 weeks now 23:01
stevan nothingmuch: well have a good evening, time for me to eat 23:04
nothingmuch ciao, stevan1
tr/1/!/;
wow... 23:38
subtypes++
fp for imperative heads, with a bit of oop thrown in
it's like AOP, but cleaner
and serves a different purpose
have we decided on a minable way to rever to a synopsis from a test? 23:43
mugwump nothingmuch: I plan to make that possible with POD linking. Still in the works. 23:44
nothingmuch mugwump: have you decided on syntax?
theorbtwo Last I knew, # S<> S## "heading name"
nothingmuch L<Synopses/12/Types and Subtypes>?
theorbtwo Er, where the ## is a number.
nothingmuch oi
theorbtwo I don't know, though. 23:45
nothingmuch that's not pod linking
theorbtwo I just live here.
nothingmuch that's minable
theorbtwo No, that's not, that's a comment.
nothingmuch heh =)
theorbtwo "minable"?
mugwump I would think that it would look a lot like XPath, for the intra-document level / anchor
theorbtwo Able to be mined?
nothingmuch that can be mined
theorbtwo I should think that'd be mineable, but what do I know.
mugwump eg, in XPath you can refer to any h3 with //h3
nothingmuch do we want any xyz? 23:46
mugwump Absolutely, it should be minable. I want to be able to mine my constants out of the POD.
At run time! HLARGHARGHARH!
nothingmuch mugwump: are you referring to a future link format?
mugwump yes :)
nothingmuch ah
in that case, that's not what I meant
i have a test i'm about to commit
i just want to know if anybody's decided on how we link them back to synopses yet 23:47
theorbtwo nothingmuch, just write it in a comment in whatever format /you/ want to.
mugwump That's how I started on this thread as well. I was going to write the "testegeses" (testes for short) that duplicated sections of the synopses, made comments and referred to the tests that demonstrate them.
nothingmuch theorbtwo: but it'll be the wrong format
nothingmuch always uses the wrong formats 23:48
mugwump I wouldn't worry about it overly, for now. If anything, I would think it would be a relative path to INC and then a heading to search for, for one type of link.
nothingmuch they should be sigma complete, in a concise way 23:49
the language should be able to easily document itself within itself
oops
i need to stop using /me's, it only works on perlmonks
mugwump eg, L<Description ../t/Synopses/S10#TITLE> would work
nothingmuch my #1 rule on the coolness of documentation format design is: 23:50
mugwump But that's a fairly obtuse example of what I mean.
L<Description S10#TITLE> should also work
nothingmuch i'll go with the short version
and we'll just have to remember to grep for that when it stabilizes
mugwump If `S10' was a valid POD file in the search path
exactly
nothingmuch L<S10#Title> it is, until it clears up and turns out to be wrong 23:51
semantically, will it all be in tests, and each synopsis will have a list of backlinks to tests
showing where in the test the section of the synopsis was linked from? 23:52
because IMHO anything else is broken and no one will maintain it
mugwump good to see we have a similar point of view.
Are you in Israel, nothingmuch ? Have you heard of the artist, "Infected Mushroom"? 23:53
nothingmuch yes i have
obra heh. my friends around boston are very into Infected Mushroom
nothingmuch i don't listen to that music though, so i am not very knowlegable
but what I do know is that they(?) are very famous worldwide
even more than here 23:54
fp with subtypes:
multi sub fact (Num where { $^n == 0 }) { 1 }
multi sub fact (Num $n) { $n * fact($n-1) }
puhdaah!
damn that's pretty 23:55
and the fun thing is that where {} is just read 'smartmatch'
theorbtwo reboots.
nothingmuch ciao, orb
23:58 webmind_ is now known as webmind