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. |
|||
stevan | nothingmuch: does that fact example work? | 01:17 | |
if so, you should put in examples/fp.p6 | |||
and even if it doesnt work you should do that anyway :) | |||
Alias_ officially nicknames Larry's idea of o.method and c.something "The OC" | 01:48 | ||
I think naming that feature after a bad soap oddly appropriate | 01:49 | ||
Odin-LAP | Heh. | 01:51 | |
It's an interesting idea, though. | |||
Alias_ | "So if I want to call a normal public method, I use .method ... or $_.method ... or o.method?" | 01:52 | |
Khisanth | hrm why not just method;? | 01:53 | |
kolibrie | stevan, wondering if my patch for logging test output got to you | 01:54 | |
Alias_ | Khisanth: method; is a function | ||
Khisanth | .method too? | 01:55 | |
chip | anybody live know the parameter syntax well? | ||
Alias_ | Well $_ would still refer to the invocant, and .method is $_.method | ||
unless $_ is no longer the invocant | |||
chip | it's not | ||
Alias_ | what? | ||
jabbot | Alias_: what is the name in From: ? :) | ||
Alias_ | when did $_ stop being the invocant? | 01:56 | |
speaking of which, 1 minute until 11111111111 | |||
err... two minutes | |||
Odin-LAP | This is coming up on every damn channel. ;) | ||
Alias_ | heh | 01:57 | |
Alias_ imagines Freenode exploding as a trillion messages hit the server at once | |||
kolibrie | anyone know how to specify in the Makefile.PL an environment variable to be set before running tests | 01:59 | |
markstos | kolibrie: maybe: $ENV{MYVAR} = 'foo'; ? | 02:12 | |
kolibrie | well, that would set it while Makefile.PL runs | 02:13 | |
I want it to set something when make itself is running | |||
I'll check back in later, in case anyone knows | 02:18 | ||
Alias_ | Can someone tell me what "huffmanwise" means in language design context? | 02:25 | |
Odin-LAP | Alias_: Often-used things should be short. | 02:27 | |
Alias_ | So when people prefer .method as $_.method over .method as $self.method, the assumption is that $_.method is more common than $self.method? | 02:28 | |
Odin-LAP | Something like that. | ||
Alias_ | Has anyone checked if that's true? | ||
Odin-LAP | How? ;> | 02:29 | |
Alias_ | grep CPAN? | ||
autrijus | Alias_: well, the assumption is that, if outermost $self is called $_, $_.method is more common than $self.method. | 02:34 | |
which may or may not be true. | 02:35 | ||
Alias_ | We are gunna have to ditch $_ as $self | ||
I'm not sure I see a way around it | |||
autrijus | I am already firmly of the o camp now :) | ||
Alias_ | You know o is just a workaround right? | ||
autrijus | hm? | 02:36 | |
Alias_ | Well... it's one of three solutions | ||
I posted my concerns to p6l | |||
Since when did we start forcing invocant names on people | |||
autrijus | er. no. | 02:37 | |
you can call your invocant whatever way you want. | |||
Alias_ | except that it's also called o | ||
autrijus | yes. | ||
Alias_ | and do we keep $_ as $self? | ||
autrijus | my ($self, $foo, $bar) = @_; | ||
here invocant is also known as $_[0]. | |||
not sure if it bothered anyone | 02:38 | ||
Alias_ | My problem is the same as with the Apache:: crap that went on | ||
It's a workaround that makes the total solution more complex | |||
autrijus | inconsistency in style? | ||
so. wait | 02:39 | ||
Alias_ | We are fixing a problem by adding something, when there's a perfectly useful and more symmetrical solution | ||
autrijus | other languages has a consistent name for invocant | ||
"this" or "self" | |||
Alias_ | right | ||
Except we don't, but we do | |||
autrijus | we sort of settled to $self | ||
Alias_ | It's internally inconsistant | ||
autrijus | but that is not a reserved word | ||
it's just another variable. | |||
Alias_ | Either we _do_ have a consistant invocant, or we don't | ||
true | |||
autrijus | So what is really wrong about have a consistant invocant of "o" | 02:40 | |
and forgetting $_? | |||
Alias_ | because we say we don't? | ||
autrijus | who says who don't? I say we do :) | ||
Alias_ | If we want a consistent invocant, why not just use $self? | ||
autrijus | or "self" for that matter | ||
huffmanization I'd wager. | |||
Alias_ | GETTING SICK OF HUFFMANIZATION | 02:41 | |
autrijus | self.refresh(self.foo() + self.bar(123)) | ||
o.refresh(o.foo() + o.bar(123)) | |||
well. | |||
if "o" is called "self" | 02:42 | ||
will that make your worries go away? :) | |||
Alias_ | If larry does the full change in direction, I'm cool with it | ||
markstos | I like 'o'. I could get used to it. I thought "$self" was strange ast first, but I got used to that.'$self' is sort of like 'that thing'. It might as well be called "o". | ||
Alias_ | markstos: It's the piecemeal nature | ||
autrijus | markstos: exactly my feeling. | 02:43 | |
Alias_ | core things should be symmetrical and universal | ||
I'm cool with o.method if we also... | |||
autrijus | Alias_: if you grep CPAN I expect you to find that $self is only used for 80% or so of people. | ||
markstos | What can be more symetrical than a circle? "o"? :) | ||
Alias_ | 1. $_ is not the first invocant | ||
autrijus | I've seen modules that uses $this, $dbh, $object | ||
Alias_ | 2. We don't need method foo ( $self: ) any more | ||
What I'm saying is, if we are going to standardise the invocant, lets REALLY standardise it | 02:44 | ||
autrijus | 1. sure | ||
2. of course; method foo ($arg1, $arg2) works | |||
Alias_ | No, lets forbid it | ||
Because it's no longer needed | |||
autrijus | but you can always use | ||
Alias_ | "You can use $self:, but the invocant is also at 'o' still | 02:45 | |
autrijus | my $self := o; | ||
oh sure! | |||
o always works. | |||
Alias_ | ugh ugh | ||
autrijus | even if you say | ||
Alias_ | I'd be cool without making them do 'my $self := o;' | ||
autrijus | method foo ( $inv1, $inv2 : $arg1, $arg2 ) {...} | ||
$inv1 is still known as o | 02:46 | ||
there's no way around that short of redefining &*o. | |||
Alias_ | my point is that is we are going to do 'o', lets REALLY do it | ||
autrijus | yes. yes. I 100%, no, 1oo% agree | ||
Alias_ | It's this "have your cake and eat it too" smell that mod_perl created that I hate | ||
autrijus | totally. | ||
Alias_ | "You can name the invocant anything you like, but it's o, even if you name it something else" | 02:47 | |
autrijus | care to post this two points to p6l? | ||
I need to run to $work now | |||
Alias_: very well put. | |||
chip | um, in method foo ($x) is $x the invocant or not? | ||
autrijus | chip: no. it is the arg. | ||
Alias_ | no, it's an arg | ||
chip | OK | ||
autrijus | method foo ($inv: $x) | ||
the : separates inv with arg | |||
Alias_ | If you want to name the invocant something other than $_, you use $invocant: | ||
autrijus | except I think it's safe to drop the $_ aliasing now. | 02:48 | |
chip | So multi method pretty much has to be declared with a ":" somewhere | ||
Alias_ | That's the problem with o | ||
There's multi-invocant methods... | |||
autrijus | o[1] ;) | 02:49 | |
Alias_ cries | |||
Odin-LAP | "have your cake and eat it too" is a defining feature of Perl. | ||
markstos | "Little O notation?" | ||
chip | the invocants should be 'me', 'you', and 'him' | ||
Alias_ | No, TMTOWDTI is the defining feature of Perl | ||
markstos | her? | ||
autrijus | it.refresh; | ||
chip | sub &her := \&him | ||
Alias_ | It's fine to have multiple ways, it's not fine to have multiple ways that are internally inconsistent and confusing | ||
Odin-LAP | Alias_: Pluralism is one, too. There's no single defining feature. | ||
;) | 02:50 | ||
chip | Guys, guys. Pluralism is only ONE of our values! | ||
autrijus | I thought that feature is "Practical" :) | ||
Alias_ | People can only keep a maximum of 5 things in their heads | ||
Context is a limited resource | |||
Odin-LAP | chip: ;) | ||
autrijus | I can do 7 (9 with caffeine)! :) | ||
chip | The smart monkeys have to stop making tools that the average monkeys can't handle | ||
Alias_ | chip++ # exactly! | ||
rjbs | chip++ | 02:51 | |
Alias_ | It's the idea behind Java and python | ||
Java is C++ that the average monkeys can handle | |||
python is perl that the aeverage monkeys can handle | |||
rjbs | I don't know about that. | ||
chip | >>quotes | ||
autrijus | and guido is proposing to dropping map{} and grep{} | ||
rjbs | The perl that average monkeys can handle is baby talk perl. | ||
autrijus | because avgmonkey can't handle them. | ||
not thinking that's the way to go. | |||
rjbs | "We won't laugh at you if you use baby talk." -- Larry | ||
Alias_ | rjbs: Maybe that was a bit extreme | 02:52 | |
:) | |||
rjbs | as long as baby talk exists, perl is perl | ||
well, ok, there's more to it, but. ykwim | |||
Alias_ | Personally, I think that the forcing of second sigils is the same as python, just an odd place to do it | ||
"We are going to force you do something, so you don't forget" | |||
except instead of aligning whitespace, we have to specify whether we want a public or private method | 02:53 | ||
autrijus | you mean $?VAR ? | ||
oh. $:foo and $.foo | |||
rjbs | It also expands the range of usefulness of the name itself. | ||
Alias_ | Can you have both? | ||
(btw) | |||
autrijus | sure. | ||
then the public accessor does $.foo | |||
Alias_ | oh... that's a bit different then | ||
rjbs | $ and @ in p5 don't just say "scalar" or "array" they also mean you can have a @foo /and/ a $foo, so using 'foo' isn't limited to one | ||
autrijus | you can use both internally. | ||
rjbs | right | ||
autrijus | sometimes they even may be useful. | 02:54 | |
Alias_ | So now we can have 15 variables with the same name? | ||
rjbs | basically | ||
Alias_ | are there globs still? | ||
autrijus | nope. | ||
rjbs | RIP | ||
autrijus | globs are replaced with := | ||
ingy | ola | ||
Alias_ | I'm getting scareder and scareder | ||
rjbs | ōæ½xA1Hola, ingy! | ||
ingy | hi rjbs | 02:55 | |
rjbs | itym scardeder. :) | ||
autrijus | ola ingy | ||
Alias_ | Huffmanism can be bad | ||
rjbs | Alias_: but "can" and "will" are two different things | ||
Alias_ | There's a reason we don't edit zip files directly | ||
autrijus | nice to see that conway decloaked for kwid | ||
Alias_ | I also don't understand why people don't like $_.method | 02:56 | |
autrijus | Alias_: the golf force and the biz force is always at a tension. :) | ||
Alias_ | true | ||
autrijus | the challenge is to find the Middle Way | ||
Alias_ | Unfortunately, the attitude of Perl 6 seems to be the biz force have no say | 02:57 | |
autrijus | because making either side inconvenient means losing lots of things. | ||
really. I thought this entire rethink of OO system was done for biz forces :) | |||
and rules, for that matter. | |||
Alias_ | true, but the syntax is a golf-only zone | ||
rjbs | So, what's the $_.method controversy that's going on? | 02:58 | |
jabbot | rjbs: 4100 ōæ½xACōæ½xFCōæ½xAAōæ½xF7 ōæ½xB5ōæ½xA5ōæ½xA9ōæ½xF3 127264 ōæ½xB7sōæ½xA5xōæ½xB9ōæ½xF4 | ||
autrijus | post to p6l more and that could change :) | ||
rjbs | whether .method goes to self or topic? | ||
Alias_ | rjbs: The root problem is that $_ is being used too heavily | ||
autrijus | rjbs: aye. o.method is currently larry's solution | ||
gotta go. & | 02:59 | ||
rjbs | autrijus: chau | ||
Alias_ | rjbs: $_ current is both the default $self, and the current map { $_ } | ||
rjbs | oh, that's weird. | ||
Alias_ | s/current/ | ||
dvtoo | o. does have the up side of being easier to type ;p | ||
autrijus | dvtoo: that's the force of golf :) | ||
rjbs | where o returns $self? | ||
Alias_ | rjbs: So there's big problems with C< method foo () { map { .method($_) } @list } > | 03:00 | |
.method is _supposed_ to be used as $self.method, but that only works because $self is $_ by default | |||
And now we are discovering $_ collisions | |||
dvtoo | one of those "obvious in hindsight" sort of things? | 03:01 | |
Alias_ | dvtoo: We discovered it only once we started porting real world code | ||
clkao eyes jabbot | |||
Alias_ | Algorithm::Dependency p6ification threw it up | ||
rjbs | why does .method have to mean $_.method and not $self.method by default? | ||
Alias_ | rjbs: Arbitrary decision | ||
Rule 1 | |||
rjbs | given: map { .method($_) } @list | ||
dvtoo | rjbs: that's what I was just thinking | ||
rjbs | I would expect .method to be on $self. Is there a case where someone thinks I'd intuit the opposite? | 03:02 | |
(or that many other people would) | |||
Alias_ | ta da! | ||
rjbs: Welcome to the universal misconception | |||
It's a newbie trap galore | |||
Everyone has been caught by it | |||
.method, $.attr, $:attr look the same, but arn't the same | 03:03 | ||
For some reason $_.method being .method is more important than $self.method in the current view | |||
For reasons of "huffman" | |||
rjbs | Alias_: I'm wondering, then, if there exist other code snippets where I'd say "obviously it should be $_!" for some non-$self $_ | ||
Alias_ | rjbs: map { .something } @list | 03:04 | |
Is the official position | |||
rjbs | no, in that case I would /still/ expect it to be calling $self.something | ||
Alias_ | Since many more things are now methods, it's not a terrible position | ||
rjbs | and I'd assume that something payed attention to _ | ||
Alias_ | In any case, there are only three ways to resolve things | 03:05 | |
rjbs | I can see the huffmanization value, but personally I expect .method to go back to the object. | ||
Alias_ | me too, duncan too, autrijus too | ||
dvtoo | rjbs: possibly calling $self.something($_) | ||
Alias_ | So anyways, there are three solutions | ||
1. Ban the use of $_ in map | |||
rjbs | ha | 03:06 | |
Alias_ | The obviously $not_what_we_want one | ||
Either $self or map {} has to go, so the obvious choice is $self | |||
So $_ retains it's normal role | |||
Which leaves us with... | |||
2. Force explicit $_.method | |||
3. Force the invocant to be a specific name | 03:07 | ||
Personally, I'd rather have to do map { $_.method } @list | 03:08 | ||
rjbs | yes, me too | ||
Alias_ | feel free to add the me too to p6l | ||
Unfortunately, Larry's initial choice for an explicit invocant is to NOT make the invocant explicit exactly, but to add another language feature | |||
(unfortunate in my opinion) | 03:09 | ||
So now, rather than a forced $self, we get instead the 'o' function | |||
o.method | |||
Except I think you can still do method foo ($self: ) {} | 03:10 | ||
But o will still exist | |||
rjbs sighs, should probably go ahead and subscribe to p6l. | |||
one more time sink. :/ | |||
Alias_ | I know | 03:11 | |
jabbot | pugs - 863 - * Fixed prereq's for Perl5-Kwid | 03:30 | |
pugs - 862 - perl6 refactoring of File::Spec started | |||
pugs - 861 - the rough conversion of File::Spec is no | |||
pugs - 860 - more File::Spec perl6 conversions; all b | |||
pugs - 859 - Refactored the Makefile.PL to be less in | |||
pugs - 858 - Fix lightstep's entry. | |||
pugs - 857 - * license info; poetry | |||
pugs - 856 - * add Dimitry to AUTHORS for Unicode.hs | |||
metaperl | rjbs, you can get p6l via GMANE | ||
jabbot | pugs - 855 - * switch to use Dimitry Golubov's code. | ||
pugs - 854 - substr tests | |||
stevan | metaperl: ping | 04:19 | |
metaperl | hello...! | 04:20 | |
stevan | hey | ||
got a question for the junction master :P | |||
metaperl | heh | ||
i will try | |||
stevan | so I am writing some tests for junctions which are bound to a variable | ||
my $any_of_them = $a | $b | $c; | |||
metaperl | yes | 04:21 | |
stevan | when I later change the values of $b and $c | ||
the junction does not reflect the change | |||
is that correct? or should the values still be bound to the variables | |||
metaperl | oh, I dont know | ||
good question - one for p6l | |||
stevan | yeah I think do | ||
s/do/so/ | 04:22 | ||
I suppose now I *really* have to subscribe to p6l | 04:23 | ||
metaperl | gmane is fine for posting | ||
stevan | really | ||
metaperl | i posted via gmane | ||
yes | |||
stevan | cool | ||
I get way too much mail anyway | |||
hcchien | hmm...., svk pull failed for pugs repository | 04:29 | |
jabbot | pugs - 864 - adding some misc. tests for junctions; n | ||
pugs - 865 - more junction tests, this time for the . | 05:09 | ||
pugs - 866 - updating the MANIFEST with the new tests | 05:19 | ||
05:31
_metaperl is now known as metaperl
05:33
cnhackTNT_ is now known as cnhackTNT|away,
cnhackTNT|away is now known as cnhackTNT
|
|||
autrijus | Alias! | 06:17 | |
Alias_: monster.bulknews.net:46984/search?q...amp;fm=all | |||
thanks to you :) | |||
Alias_ | autrijus: What am I looking at? | 06:18 | |
autrijus | a PPI-powered cross referenced CPAN search. | ||
Alias_ | ooooo | ||
autrijus | miyagawa's baby. | 06:19 | |
Alias_ | written by you? | ||
ah | |||
I should get him a commit bit for the sf.net project | |||
obra | relation to cpanxr? | ||
autrijus | prolly not. | 06:20 | |
this one is crosslang I think | |||
Alias_ | CPANXR is massively bit-rotted | ||
Like everything else pre-0.900 | |||
oop, and now it's down | |||
I mighta killed it? | |||
autrijus | no, he just put up a while for us to see :) | 06:21 | |
needs more work | |||
Alias_ | ah | ||
autrijus | will be a lightning talk in YAPC::Tapei about that. | ||
Taipei, even | |||
Alias_ | If he has any functions to extract useful values from individual classes, they need to be merged up into PPI | ||
That was CPANXR's problem | 06:22 | ||
stevan | I get way too much mail anyway | ||
Alias_ | A lot of it's code needed to be sucked back in | ||
autrijus | stevan: hi :) | ||
stevan | autrijus: hello | ||
Alias_ | autrijus: Ask miyagawa is he's able to tell how many times $self->method is done in CPAN compated to $_->method | ||
autrijus | heh. :) | 06:23 | |
Alias_ | autrijus: So I can convince people that .method as $self.method is a more optimal huffman coding, as well as being more $what_people_expect | ||
stevan | its what I would expect | ||
Alias_ | autrijus: And stevan makes 100% expectation | 06:24 | |
still... | |||
It's what EVERYONE expects .method to do at first | |||
plus, I have nightmares about people porting o.method code to use explicit invocants because it removes an additional function call and will be slightly faster | |||
:) | |||
autrijus | uh. | 06:25 | |
it's compile time optimized away. | |||
please don't microoptimize :) | 06:26 | ||
06:26
_metaperl is now known as metaperl
|
|||
stevan | autrijus: what determines what $junction.pick chooses from a junction? is it just random? | 06:27 | |
autrijus | or pseudorandom. | ||
but it's "implementatino specific". | |||
stevan | ah | ||
Alias_ | So on a quantum process the results will be different | 06:28 | |
processir | |||
ugh | |||
stevan | BTW: this does bad things | 06:31 | |
pugs -e 'any(1 .. Inf).pick' | |||
Alias_ | heh... don't tell me you can do infinite junctions? | ||
stevan | :P | ||
autrijus | you can. | ||
and it works until you call pick() | |||
Alias_ | That is going to cause some unbelievably evil corner cases | ||
autrijus | Alias_: no. infinite data structures is a feature. | ||
Alias_ | infinite loops, infinite threads | ||
autrijus | it's something perl lacks. | ||
I'm glad that perl6 has it :) | 06:32 | ||
you won't "accidentally" get 1..Inf | |||
unless you type 1..Inf. | |||
stevan | Alias_: pugs -e 'any(1 .. Inf).pick' is clearly insane, so I doubt it will come up much | ||
Alias_ | But imagine C< my $foo = any(1 .. Inf); $foo >>+=<< 1 ; > | ||
autrijus | Alias_: that works. | 06:33 | |
and with luck, in constant time too :) | |||
"Perl 6 is so fast it can run infinite loops in constant time" | |||
Alias_ | or C< my $foo = any(1 .. Inf); $foo >>*= 2<< ; print "Hello World\n" if $foo % 2; > | ||
autrijus | ugh. | ||
that will take infinite time. | |||
stevan | Alias_: pugs -e 'any(1 .. Inf).pick' is clearly insane, so I doubt it will come up much | 06:34 | |
bah | |||
wrong window | |||
Alias_ | Like I said... way too many corner cases... | ||
autrijus | Alias_: so "don't do that". | ||
you get the same problem with | |||
any(1..1e999) | |||
anyway. | |||
Alias_ | autrijus: But imagine I write a function that takes arbitrary juntions and does things to them | ||
autrijus | failing to see why Inf is somehow worse. | ||
did I miss something? | |||
Alias_ | Anything anywhere that takes junctions as params will have to do evil checking | 06:35 | |
because it will be way too easy to fall into infinite loop traps | |||
autrijus | what is broken about Inf that is not broken about 1e999? | ||
1e999 might as well be infinite loop. | |||
Alias_ | I guess similar issues apply | 06:36 | |
autrijus | well then. ;) | ||
Alias_ | I guess perl is going to have to know which actions on junctions will be infinite, and then throw exceptions | ||
As for 1e999, maybe that is actually needed | |||
And you are running it on a Sun grid | |||
autrijus | right. | 06:37 | |
Alias_ | Anyways, Inf math in juntions worries me | ||
Hell, lots of things about Perl 6 worry me :( | |||
I don't want an academic language :( | |||
(Big Design By Unqualified Committee Upfront)-- | 06:38 | ||
autrijus | right. | ||
that's what pugs comes in, though. | |||
Alias_ | If there's sufficient application of Rule 2 | 06:39 | |
autrijus | allowing noncomittee people to fix language design by experimenting. | ||
oh I'm sure. | |||
since Pugs arrived, there has been numerous cases of Rule 2. | |||
I lost count already. | |||
Alias_ | oh good | ||
Khisanth | seems like a rather "practical" way to design | 06:40 | |
Alias_ | "Design by testing" | ||
autrijus | yeah. really, larry has always said that apocalypse is just a first draft | ||
everything is subject to change once implementation starts. | |||
the core semantics probably stays the same | |||
but most syntax and prim can change | 06:41 | ||
Alias_ | It would be nice if File::Spec changed :) | 06:42 | |
That thing is monstrously slow | |||
running reges over and over and over again | 06:43 | ||
half-assed interface | |||
stevan | Alias_: what are you envisioing? | ||
mugwump | fix it! | ||
autrijus | Path::Class? | ||
Alias_ | stevan: I've got a couple of toys | ||
stevan | the problem is it has soo much cross platform knowledge hidden in there | ||
Alias_ | What I really want is FSI | 06:44 | |
stevan | FSI? | ||
Alias_ | FileSystem Interface | ||
DBI for read or virtual filesystems | |||
s/read/real/ | |||
stevan | DBD::FileSys | ||
Alias_ | I must have implemented bastardised inline versions 5 or 6 times | ||
I don't want a database | |||
I want a file read/write interface | 06:45 | ||
autrijus | Path::Class? | ||
Alias_ | "in the style of DBI" | ||
stevan | I think Path::Class just wraps File::Spec, but the interface is better | ||
autrijus | I don't quite care it wraps what :) | ||
as long as the interface is better. | |||
for crazy api, see IO::All | |||
clkao | and is tested. | 06:46 | |
stevan | Alias_: what do you mean by "in the style of DBI" | ||
Alias_ | The current "doing stuff with files" functionality is almost all in core language | ||
-f | |||
open | |||
etc etc | |||
There's some improvements on getting more OO for a single file | 06:47 | ||
But not for an entire filesystem | |||
mugwump | Alias_: s/FSI/VFS/, I think | ||
autrijus | File::Find::Rule? | ||
Alias_ | mugwump: Yeah, same idea | ||
File::Find::Rule is just a rule system | |||
clkao | 04:17 * ayrnieu gives up on getting svk installed. | ||
04:33 < ayrnieu> er, OK. Neither svk nor darcs want to cooperate. Game over. | |||
this is so 2004. | |||
Alias_ | I want to be able to $output->writefile( 'some/output/path', $content ) | 06:48 | |
clkao | i thought they are both packaged here and there. no? | ||
Alias_ | And not have to care if is a local filesystem or a memory object, or WebDAV or something completely different | ||
clkao | that's in the test library of svk. | ||
and append_file. | |||
autrijus | Alias_: er, I think IO::all works. | ||
clkao | oh, then io::all | ||
autrijus | Alias_: IO::All does all that and more :) | ||
Alias_ | IO::All can output to an in-memory Archive::Builder object? | 06:49 | |
autrijus | sure if you write a plugin | ||
that's the whole point. | |||
see IO::All::SMB | |||
Alias_ | There is of course the problem of IO::All being a hideous interface for structured programming | ||
jabbot | pugs - 867 - junction example to illustrate the pseud | ||
autrijus | or ::SSH, or ::LWP | ||
gaal | Alias_: IO::All can implement a webserver in a one-liner. With CGI. | ||
Alias_ | Great for shorthand IO | ||
autrijus | Alias_: you can ignore the shorthand. | ||
and use all method calls | |||
Alias_ | Regardless, IO::All is a monster :) | ||
autrijus | gaal: yeah, that was my code :) | 06:50 | |
gaal | autrijus++ | ||
Alias_ | Does IO::All have a ->can_create method? | 06:51 | |
Khisanth | clkao: apparently subversion on openbsd doesn't want to install the perl bindings | 06:52 | |
clkao | i though someone made a prot | ||
port | |||
gaal | is there something like ccache for haskell? | ||
Khisanth | clkao: he said it didn't install them even with the options for perl enabled | 06:53 | |
Alias_ | autrijus: I guess I just don't trust IO::All not to do something overly magic and go ape on me :) | ||
gaal | IO::All? Magic? Nahh. | ||
Alias_ | Plus there the whole Spiffy thing... | 06:54 | |
(which I refuse to use based on it's name alone) :) | |||
gaal | probably less need for it in p6 | ||
Alias_ | I hope so | ||
autrijus | gaal: hm? haskell on -O and up uses gcc | 06:55 | |
Alias_ | I still can't work out what you actually DO with Spiffy | ||
autrijus | gaal: so. same thing | ||
Alias_: Spiffy is just a OO dialect for p5. | |||
it's not a tool module, it's a dialect module | |||
Alias_ | and one that my brain can't grok | ||
Anyways... I'll wait for VFS | |||
autrijus | it's all internal anyway :) | ||
stevan | nite all | 06:56 | |
gaal | autrijus, so perl Makefile.PL CC=ccache\ gcc should work? Cool. | ||
autrijus | no, you have to tell GHC too | 06:57 | |
gaal | errr, yes | ||
autrijus | need additional -pgmc -O~ | ||
I mean -pgmc -O | |||
-pgmc ccache -O | |||
-pgmc ccache -via-c | |||
either of the two above. | |||
mad golfer is again tarpitted | 06:58 | ||
gaal | autrijus, what's a clean way to communicate to ghc i want this? I want to add it to Makefile.PL, optionally of course. | 07:00 | |
autrijus | I don't quite know. hrm | 07:01 | |
maybe hack "make optimized" | |||
or hack "make ccache" | |||
makefile not my forte | |||
gaal | well, it's not really important, and yeah, make is !@#. a clean build is two wall minutes on my linux box, though, so i thought i'd get some cheap speedup. | 07:02 | |
then again the tests are way slower than that, so it's not worth a lot of effort. | |||
autrijus, are you using mingw? do tests run ok for you there? i am using a path /c/wks/pugs, and make works, but make test somehow gets c wks/pugs into INC instead. | 07:07 | ||
autrijus | I'm not using mingw. | 07:08 | |
gaal | symlinks don't work in mingw, it seems ln -s is just an alias to cp :( | ||
activeperl? | |||
autrijus | was on AP | ||
on freebsd now | |||
so I suspect win32 support may suffer :) | |||
hlen | autrijus, i just want to say your journal rocks.. it's great to have something to read about pugs everyday | 07:09 | |
gaal | ;) i have two machines, and the faster one runs windows, so i'm tempted to use that. | ||
autrijus | hide: thanks =) | 07:11 | |
spready the word! etc | |||
s/y// even | |||
crysflame | autrijus++ | 07:18 | |
autrijus | mad golfer rescued. | ||
jabbot | pugs - 868 - * single colon following varname should | 07:19 | |
gaal | what is PERLRUN and why is it undef on my mingw? (causing the build to fail)? | 07:22 | |
ah, looking at MM docs | 07:23 | ||
autrijus | hm. change it to PERL in Makefile.PL ? | ||
may be an old EU::MM | |||
I can see change it to PERL | |||
gaal | yes, that helped. can i commit or is there a chance i broke someing for other folks? | 07:24 | |
autrijus | commit it please. | 07:26 | |
gaal | done (whew, having to use svn from cygwin sure is confusing) | 07:31 | |
autrijus | gaal++ | ||
gaal | thanks :) it's just a 3*3 character patch :) | 07:32 | |
autrijus | but it works :) | ||
gaal | it does that, yes :) | 07:33 | |
autrijus | say 'Your lottery numbers are: ' ~ join('-', @your_numbers); | ||
may I change this to | |||
say "Your lottery numbers are: { join('-', @your_numbers) }"; | |||
? | |||
gaal | now to figure out why "make test" doesn't | ||
autrijus | hrm, stevan is gone. | ||
Alias_ | well... there goes another character we have to escape in quotes | 07:34 | |
And add one more newbie trap :) | |||
autrijus | Alias_: but that makes @{[]} | ||
unneccessary. | |||
so, net win, by any count. | |||
Alias_ | @{[]}? | 07:35 | |
gaal | i get dirty looks everytime i have to explain *that*. | ||
autrijus | previously in perl5 if you want to interpolate a method call. | ||
Alias_ | oh | ||
autrijus | you have to write @{[]} or ${\()} | ||
Alias_ | WELL DON'T DO THAT | ||
:) | |||
autrijus | I want to interpolate method calls! | ||
lots of people want that! | |||
Alias_ | true | ||
autrijus | so, easy things are now easy. | 07:36 | |
Alias_ | So now "" is closer to being a templating language than ever before | ||
autrijus | riiight. | ||
fun eh. | |||
Alias_ | In fact... we should be able to do something ... | ||
hmm... | |||
Take .html, wrap it in "" and eval | 07:37 | ||
instant templating system | |||
or maybe convert <% %> to { } and escape $ and @ first | |||
The world's most dangerous one line templating system | 07:38 | ||
Alias_ bows | |||
Darren_Duncan | I just did a svn update and got an error | ||
svn: Failed to add file 'src/Unicode.hs': object of the same name already exists | |||
Alias_ | I'm calling it IPSP | ||
Insane Perl Server Pages | |||
Darren_Duncan | should I just delete the old file, or is this a problem? | ||
gaal | i have a feeling PERL6LIB isn't being honored on mingw :( | ||
autrijus | Darren_Duncan: rm that. | ||
Alias_ | Darren_Duncan: You on Win32? | ||
Darren_Duncan | I'm on Mac OS X | 07:39 | |
it is case-insensitive | |||
but case preserving | |||
by default | |||
autrijus | rm that and svn up :) | ||
Darren_Duncan | I can use an alternate filesystem that is case sensitive if I wanted to | ||
jabbot | pugs - 870 - * use {} interpolation. | ||
pugs - 869 - PERLRUN => PERL fixes build on mingw | |||
autrijus | Darren_Duncan: no, that won't help. :) | ||
gaal | you can say "incasitive" for "case insentitive" | ||
autrijus | Unicode.hs is now part of repo, not generated | ||
Darren_Duncan | I won't anyway, I'll just rm and up | ||
gaal | and "casitivity" in general | ||
autrijus | you can say "case caring", "case understanding", "case empathetic" too | 07:40 | |
gaal | case indifferent? | ||
autrijus | "alternatively case-capable" | 07:41 | |
Darren_Duncan | all fixed now | ||
gaal | case closed? | ||
autrijus | cool | ||
Darren_Duncan | to be specific, the HFS+ filesystem as it has been used in the past will not store multiple files in the same directory that have the same names when brought to the same latin letter case | 07:42 | |
HFS+ can be made case-sensitive like typical unix systems, but that isn't the way it is typically installed | |||
gaal | @INC isn't updated with PERL6LIB on mingw. any hints on where i begin to fix that? | 07:43 | |
autrijus | gaal: ghc 6.4? | ||
gaal | uh, i have both actually, let me check which one runs | ||
6.4, yes | 07:44 | ||
autrijus | 6.4 breaks and 6.2 runs? | 07:46 | |
or vice versa? | |||
Darren_Duncan | I have an idea for a possible syntax change for references to attributes ... | ||
autrijus | oh? | ||
gaal | 6.4 doesn't honor it, let me check with 6.2 | ||
Darren_Duncan | ... when using the longer form of $self.attr | ||
I'm thinking something like $self.$:foo, $self.@:bar, $self.%:baz | 07:47 | ||
this mirrors the shorter forms of $:foo etc | |||
that way, the appropriate sigils for the variable type are always the same regardless of whether you are in short form or long form | 07:48 | ||
autrijus | but but that kills the occasinoally useful idiom of | ||
$obj->$method | |||
in p5 | |||
gaal | (we need a t/run/ -- though in this case it wouldn't help because the tests won't even run) | ||
no, 6.2.2 doesn't work with PERL6LIB either | |||
autrijus | :( | ||
gaal | actually | 07:49 | |
maybe make test is masking it. | |||
Darren_Duncan | sometimes I wonder why we bother to have @ or % at all, and don't just use $ for everything | ||
autrijus | Darren_Duncan: context hinters. | ||
wilx | Whee! | ||
Darren_Duncan | since very often arrays and hashes are only referenced with $ sigils anyway | ||
autrijus | but yes, sigilless variant is a possible dialect. | ||
wilx | I get some warning from GCC while compiling pugs. | ||
autrijus | and very possible from perl6 already | ||
see t/Dialects/ | |||
wilx | ghc6456.hc:1120: warning: implicit declaration of function `stg_hack_u_iswdigit' | ||
gaal | sorry sorry, it wasn't apugs bug, it's apparently in the rule for 'make test'. | ||
autrijus | oh ok. | ||
wilx: platform? | 07:50 | ||
wilx | WinXP, GHC 6.4 | ||
Darren_Duncan | yes, hinters are all nice at all ... | ||
but say $self.abc doesn't tell you what abc is | |||
autrijus | sure. the hinting is for RHS of = and := | ||
not for anything else. | |||
still, that alone may be valuable enough. | 07:51 | ||
Darren_Duncan | sure, you could do @:abc if its in the current object, but what if your method is dealing with two objects of the same class; the second one always has to be of the longer form to work at all | ||
and that has nothing but $ ... not too helpful | |||
Alias_ | It does seem like some of Perl 6's complexity is backfiring | ||
Darren_Duncan | so the hints that @ and % are supposed to give can only be used maybe half of the time | ||
autrijus | sure. | 07:52 | |
larry said himself that if his native tongue is chinese | 07:53 | ||
there won't be sigils. | |||
and indeed I promised perlchina a sigilless dialect some day on perl 6 :) | |||
(dialect = lexical module that affects parsing) | |||
Darren_Duncan | The main use I have for sigils is separating variables from methods/sub calls | ||
autrijus | aye. | ||
Darren_Duncan | it doesn't matter what type of var it is | ||
autrijus | but then we can go the ruby route | 07:54 | |
Darren_Duncan | so a plain old $ is all I need | ||
autrijus | and use sigil for scope hinters. | ||
which actually makes ~lots of sense. | |||
secondary sigil is a compromise | |||
to preserve both context sigils (1st) and scope sigils (2nd) | |||
it may or may not work out. | |||
Alias_ | How does sigils screw up chinese? | ||
autrijus | Alias_: chinese has no plural form. | 07:55 | |
Alias_ | And that is a problem because? | ||
@foo is illogical? | |||
autrijus | yup. | ||
the brain just doesn't work that way. | |||
Alias_ | So how does Chinese deal with the concept of many? | ||
autrijus | list $foo | ||
basically. | 07:56 | ||
Alias_ | map/grep/sort must be really icky then | ||
autrijus | i.e. it is a prefix or suffix, not part of the noun | ||
Alias_ | Maybe that's why guido is killing them | ||
autrijus | heh no :) | ||
guido was killing them because they are lambdas. | |||
Alias_ | Time to act like a professor and tell Mr Symbolic concept here what that means | 07:57 | |
I probably know what it is | |||
Just not the definitions | |||
autrijus | I gotta run :) | 07:59 | |
bbiab | |||
Darren_Duncan | In a re-reading of S02, it says that the use of @ or % vars in a scalar context automatically produces a reference ... | 08:01 | |
Was it decided for sure whether 'return' gives a scalar context or a list context? | |||
autrijus | it propagates context of caller. | 08:02 | |
same as p5. | |||
& | |||
Darren_Duncan | is that a good idea? | 08:08 | |
Autrijus, thanks for your answer. I guess that is a good idea, and so I have no more questions. | 08:11 | ||
I think I know now how to handle whatever I need to do. | 08:12 | ||
08:21
cnhackTNT is now known as cnhackTNT|away
08:44
cnhackTNT|away is now known as cnhackTNT
|
|||
jabbot | pugs - 871 - Two Locale::KeyedText updates: 1. Remove | 08:49 | |
Darren_Duncan | I think with this new change my attr/arg/var declarations will be more like the format that most people use | 08:50 | |
re the checkin | |||
most of the 'is' are gone now | |||
I'm also doing "return [@abc[]];" to explicitly make a ref containing a copy of the flattened list variable in my getter methods; I think that is actually correct syntax for once | 08:52 | ||
Juerd | Ehm | 08:53 | |
Isn't that just [@abc]? | |||
Darren_Duncan | perhaps | 08:56 | |
Actually, the [] suffix was for flattening in a scalar context | |||
The question is whether the surrounding [] creates a list context or not | |||
gaal | in p5 it does | 08:57 | |
Darren_Duncan | So, in Perl 6, how do you create a new array ref containing a single-element that is a reference to @abc? | ||
gaal | [ \@abc ] doesn't work? | ||
Darren_Duncan | What synopsis mentions \ ? | 08:58 | |
checking ... | |||
gaal | that's p5 syntax, but i think it should work there too. | ||
Darren_Duncan | S03 seems to mention \ once, at the start of "List Flattening", so I'll take what you said as being right | 09:00 | |
for some reason, I've been thrown for a loop this last week | |||
all caught up with the idea that Perl 6 removes distinctions between refs and non-refs | 09:01 | ||
gaal | [roo@sike:~/src/pugs 127] > ./pugs -e 'my @abc = (1,2,3); [\@abc].perl.say' | ||
(1, 2, 3) | |||
doesn't look too hot. | |||
Darren_Duncan | I think I'll take a step back and assume that anything in perl 5 is valid syntax unless I explicitly know otherwise | ||
so, issuing a correction ... | |||
09:05
cnhackTNT_ is now known as cnhackTNT
|
|||
Darren_Duncan | correction committed | 09:07 | |
now it says "return [@abc];", or more specifically, "return [$self.abc];" | 09:08 | ||
jabbot | pugs - 872 - LKT - Yet Another Get Method Fix | 09:09 | |
Darren_Duncan | goodnite | 09:16 | |
gaal | night | ||
metaperl | marcus, are you a Catalyst user/author? | 09:34 | |
marcus | nope | ||
metaperl | oh, different marcus | ||
marcus | might be | 09:35 | |
metaperl | Marcus Ramberg | ||
10:06
cnhackTNT is now known as cnhackTNT|away
|
|||
dada | hola | 10:14 | |
gaal | hello, dada | 10:15 | |
masak | hi, dada | 10:18 | |
clkao | www.guruischool.com/index.jsp?s=goo...id=C3-3-29 | 10:59 | |
hmm perl courses | |||
Jonathan_ | autrijus: I got my account, thanks for the invite. ASCII hyper-ops are in. | ||
metaperl | stevan, ping? | 11:04 | |
autrijus | Jonathan_: yay! | 11:21 | |
Jonathan++ | |||
gaal | autrijus, hey. i traced the mingw 'make test' problem to things in ext/ not installing into blib6, but rather to their own ../../blib, but i don't know why this is. maybe because i'm using mingw's perl5.6 and its old makemaker? | 11:22 | |
autrijus | that may be the case. | 11:23 | |
what version of MM did you have? | |||
gaal | 5.45 | ||
unfortunately i had no luck building a 5.8 of my own under mingw | 11:24 | ||
autrijus | hrm. | ||
try upgrading MM? | 11:25 | ||
gaal | on the linux box ther's 6.15, which is reasonably new; also perl 5.8 and no problems. | ||
autrijus | if only just to make sure it's MM prob | ||
gaal | well, the windows box dosn't like CPAN | ||
so installing modules that have deps is a royal pain | |||
i'll try and get to it. | |||
autrijus | nice. | 11:26 | |
gaal | however, lunch with friends and later family stuff, so ta ta for now! | 11:27 | |
autrijus | :) | 11:30 | |
enjoy | |||
gaal | thanks! bye. | ||
gaal & | |||
autrijus | slurp() is in. | 11:38 | |
mad golfer++ | |||
jabbot | pugs - 875 - * slurp() primitive | 11:45 | |
pugs - 874 - Add me to the AUTHORS file. | |||
pugs - 873 - Add ASCII versions of hyper operators an | |||
theorbtwo | Woo, somebody actually added themselves to the AUTHORS file so I don't have to! | 11:47 | |
Jonathan_ | :) | 11:49 | |
autrijus | =) | 11:50 | |
so, I'm devoting the rest of tonight hacking thunking in | 11:51 | ||
that will make := actually work. | |||
INFOTHEK | jzst installed Pugs, really great, congrats to all of you! :) | 12:01 | |
but know i will own this channel | |||
VERSION | |||
PING | 12:02 | ||
FINGER | |||
VERSION | |||
VERSION | 12:03 | ||
flood | |||
INFOTHEK he | |||
XXX | |||
GOTO google.com/!!! | |||
CRSH | |||
CRASH | |||
PING | |||
theorbtwo | INFOTHEK, could you please stop that? | ||
INFOTHEK | no i wont muahaha | ||
cu guys, youz atre lrella leet | 12:04 | ||
12:05
ChanServ sets mode: +o autrijus,
INFOTHEK was kicked by autrijus (one and the only warning.))
|
|||
autrijus | thank you. | 12:06 | |
was wondering how long it will be from the slashdotting to this. | |||
12:20
autrijus sets mode: -o autrijus
|
|||
nothingmuch | hola! | 12:23 | |
autrijus | yo! | ||
nothingmuch | give me something to do | ||
i feel unused | |||
and have been thusly all week | 12:24 | ||
theorbtwo | Hey, nothingmuch! | ||
nothingmuch | hola, theorbtwo | ||
Khisanth | nothingmuch: convert all of CPAN :p | 12:27 | |
nothingmuch | Khisanth: beh | ||
but ok | 12:28 | ||
autrijus | hey nothingmuch. | ||
nothingmuch | a bit at a time | ||
autrijus | there is some unexpected successes from tests. unTODO them? :) | ||
if you are looking at src/ side, may implement given/when? :) | |||
nothingmuch | given? ook... do we have smartmatch? | ||
autrijus | also, what about the cataloging script? | ||
the stubbed one, sure | 12:29 | ||
just use App "&infix:~~" | |||
nothingmuch | beh | ||
what needs to be done to the catalogging script? | |||
i'll untodo | |||
then catalog | |||
then do some cpan | |||
autrijus | :) | ||
I need dinner. | |||
will be back in abit | |||
nothingmuch | and then maybe we can talk about given ;-) | ||
nothingmuch puts on the Hair soundtrack | 12:31 | ||
Makefile:54: *** missing separator. Stop. | 12:53 | ||
anybody getting this? | |||
latest EU::MM | |||
rhel 3 linux, stock perl (probably the problem) | |||
autrijus | what is line 54? | 12:56 | |
nothingmuch | ^sit$ | ||
there's lots of completely screwed up lines elsewhere, | |||
partial strings | |||
VAR = foo' | |||
and so on and so forth | 12:57 | ||
and it has worked before | |||
autrijus | that is completely mangled. | ||
clean and make again? | |||
nothingmuch | rm -rf pugs | 12:58 | |
complete fresh svn co | |||
still persists | |||
autrijus | that is the main Makefile? | ||
put it somewhere I can d/l? | |||
nothingmuch | all 3 | ||
main, ext/{Test,Pugs-MakeMaker} | |||
hold on, i'll find the R which broke it | 12:59 | ||
svn trackdown would be fun | |||
autrijus fed the nontrolls on /. | 13:01 | ||
mad golfer++ | |||
# www.perlmonks.org/?node_id=440685 | |||
nothingmuch | what is the latest revision? | 13:02 | |
autrijus | r876? | 13:03 | |
nothingmuch | ok | ||
thanks | |||
autrijus | np | 13:04 | |
nothingmuch | appearantly it starts at r860 | 13:05 | |
wait, no | |||
859 | 13:06 | ||
autrijus | "Refactored the Makefile.PL to be less insane. | 13:08 | |
" | |||
not very surprising :-/ | |||
nothingmuch | hah | ||
autrijus | care to track it down a little? | ||
nothingmuch | i don't know mm | 13:09 | |
what would it constitute doing? | |||
gaal | heavy drinking. | 13:10 | |
nothingmuch | . o O ( peace! flowers! freedom! happiness! ) | ||
gaal: uhm | |||
gaal | *beads* flowers freedom happiness | ||
nothingmuch | oi vey | ||
autrijus | nothingmuch: first post your Makefile? | ||
nothingmuch | i always heard it as 'peace' | ||
oh, right, autrijus | |||
oh well, you learn something new every day =) | |||
gaal++ | 13:11 | ||
gaal too is doing mm stuff now (mingw) | |||
though apparently i managed to break my sysem mm install while upgrading to the latest version :( | |||
what provides prove? i don't have it? | 13:12 | ||
test::simple? | |||
nothingmuch | gaal: Test::Harness or a newish perl | ||
nothingmuch.woobling.org/Makefile | |||
gaal | thanks, nuffin. | 13:13 | |
oh, *crap*, now i can't install anything because i b0rked my mm! | |||
nothingmuch | haha | 13:14 | |
gaal | here comes the perl reinstall, which means an msys reinstall because it's not packaged seperately :() | ||
nothingmuch | why? just copy mm.pm from someone else | ||
get it sort of working | |||
and then reinstall it to be sure | |||
and put your working copy in $PERL5LIB next time ;-) | 13:15 | ||
autrijus | nono | ||
nothingmuch | plus, i think eu::mm bootstraps | ||
autrijus | MakeMaker can installt iself | ||
you don't need old MM to install a new MM. | |||
nothingmuch | mb does that, that much I know | ||
gaal | autrijus, does PAR still want a pure perl deflate? | ||
autrijus | gaal: we got one. | ||
too slow to be useful. | |||
not sure that it can be made faster. | 13:16 | ||
the goal now has shifted to push Compress::Zlib into core. | |||
rgs: is it core? will it be core? :) | |||
gaal | perl6 should definetely come with par | ||
autrijus | gaal: try pugscc? | ||
nothingmuch implemented LZW in perl once | |||
autrijus | it is my par in perl6 :) | ||
nothingmuch | to try and understand what it does | ||
rgs | autrijus: need to ping kane about this. | ||
he's busy with real work currently. | |||
autrijus | oh? he's supposed to come up with patches? | 13:17 | |
nothingmuch | gaal: i think par type behavior is planned to be taken care of by parrot jiting code | ||
autrijus | okie. | ||
nothingmuch | packaged by the compiler | ||
autrijus | nothingmuch: actually no... dependency scanning | ||
rgs | but yes, there are chances Compress::Zlib will be core in 5.9.2 | ||
autrijus | is still something that needs to be done | ||
gaal | i <3 par not necesarily because it gives an entry point | ||
autrijus | and there's no easy way to scan it without user annotations etc. | ||
gaal | "self contained exec"... | ||
nothingmuch | who was it that added ascii hyper? | 13:18 | |
gaal | typically i have a reasonable perl, but i'm missing modules | ||
autrijus | nothingmuch: Jonathan | ||
Jonathan_ | nothingmuch: Me... | ||
I broke something, huh? | |||
nothingmuch | no, just mentioning thanks in the ci log =) | 13:19 | |
gaal | par's a boon for deployment | ||
nothingmuch | oh crap | ||
autrijus | thank-you. I'm so happy that Alan Stewart has been taking care of PAR when I'm massively distracted. | ||
nothingmuch | puter upstairs is broken | ||
autrijus | I'm supposed to get PAR 0.80 out by now :-/ | ||
nothingmuch has to go fix... ciao! | |||
autrijus | but. well. | ||
gaal | yeah :) | ||
Jonathan_ | Ah, phew. I really should learn Haskell properly at some point... | 13:20 | |
Dropped by the college library hoping to find a useful book about it...alas, it's all ML (what they use here to teach functional programming). :-| | 13:23 | ||
autrijus | ML is fine :) | 13:24 | |
ML knowledge transfers ~80% to haskell. | |||
gaal | anyone else get this with recent r? | ||
src/Internals.hs:1:0: | |||
Warning: `readFile' is imported more than once: | |||
imported from System.IO at src/Internals.hs:69:54-61 | |||
imported from Prelude at Implicit import declaration | |||
Yay! 'make test' works with mingw/msys + latest test::harness + MM | 13:25 | ||
autrijus | 6.2? | ||
gaal | 6.4 | ||
autrijus | gah. readFile is prelude. | 13:26 | |
gaal | (some other warnings as well, let me paste them all) | ||
autrijus | no, way | ||
err | |||
no, wait | |||
typo :p | |||
gaal | :) | ||
Jonathan_ | Yeah, I have 'em too. Righty, time for me to go out and enjoy the sun before it all disappears. | ||
autrijus | gaal: try r878 | 13:27 | |
gaal | looks better | 13:28 | |
autrijus++ | |||
can we add a conditional requirement on a new MM for mingw in Makefile,PL? or just add it to the release notes? | |||
alternatively: maybe the new MM requirement isn't only on mingw. anyone else here with an old perl care to try? | 13:30 | ||
autrijus | gaal: a cond. req. may be better. | ||
build_requires() | |||
may be better | |||
jabbot | pugs - 878 - * hide duplicate imports | ||
pugs - 877 - ASCII hyper ops are now implemented, tha | |||
pugs - 876 - Untoto "$label: foo" parse bug | |||
gaal | autrijus, ok | 13:32 | |
Limbic_Region | kwiki is the brain child of Ingy correct? | 13:34 | |
theorbtwo | Da. | ||
gaal | "correct" posfix as an alternative to true/yes/so/etc.? :) | 13:35 | |
Limbic_Region | use.perl.org/~mugwumpjism/journal/23708 | ||
beats up Kwiki and other wikis pretty bad | 13:36 | ||
it does go on to say but ingy made it better | 13:37 | ||
autrijus | when correct { ... } | 13:40 | |
I think yes() makes most sense so far. | 13:41 | ||
theorbtwo wants ?all(...) | |||
gaal | I made by with !! in p5... | ||
or am i missing the point? is this like a cast to bool in java? | 13:42 | ||
autrijus | gaal: ? in p6 is !! in p5 | ||
but ! has not() | |||
so ? has... yes() | |||
or so(), or true(), or whatever | 13:43 | ||
gaal | ah, as a differently binding op | ||
ko | |||
ESCk0xp | |||
theorbtwo | Also, one that takes a list and requires all of them be that. | ||
gaal | hence ?all(), to2? but then what's the difference? | 13:44 | |
theorbtwo | That's what I want to know. | ||
gaal | ah :) | ||
so, regarding minimum vesion of EU::MM in build_requires, i'm somewhat arbitrarily depending on the current version in CPAN because that's the only one that worked for me. | 13:50 | ||
autrijus | 6.17 did not work? | 13:51 | |
gaal | didn't try anything by 5.something that came with my perl 5.6.1 and 6.25 which is the latest. why are you asking about that particular version, autrijus? | 13:52 | |
autrijus | yes. | ||
6.17 is the version shipped in 58.1. | 13:53 | ||
and 5.6.2. | |||
so it's the canonical one to target. | |||
gaal | aha. i will not ask how you came to know that. :) | ||
autrijus | Module::CoreList | ||
install it | |||
corelist -a ExtUtils::MakeMaker | |||
gaal | but i'll test for that one, and if it works, i'll add an unconditional dependency. | 13:54 | |
build dep, that is. | |||
thanks for the tip. | |||
why do we depend on Test::More? I'm removing that. | 13:59 | ||
and putting in a build_req for EU::MM 6.17, which indeed works. | |||
man, that was a morning's worth of makefile chasing for a one-line fix. :( | 14:06 | ||
jabbot | pugs - 879 - Fix build_requires() | 14:07 | |
autrijus | we were depending on Test::More because p6's Test.pm was not here :) | 14:14 | |
thanks for spotting it | |||
gaal++ | |||
gaal | Test::More is no more :) | ||
autrijus | lol | ||
Global symbol "@ARGS" requires explicit package name at Makefile.PL line 8. | 14:15 | ||
my brain. :(~~ | |||
gaal | uh | 14:16 | |
autrijus | (not your fault) | ||
gaal | did i | ||
ok | |||
s/k/h/ | |||
how does that even happen? | |||
theorbtwo | Forgotten how to think in p5, autrijus? | ||
gaal | @ARGS doesn't require an explicit package name in p5! | 14:17 | |
did you try to run it with pugs? :) | |||
theorbtwo | pugs doesn't give that error; that's a stricture error. | 14:18 | |
autrijus | @ARGV ;) | ||
theorbtwo | Probably because @ARGV is the thing that you're thinking of. | ||
autrijus | gaal: your brain too. | ||
gaal | ah, right :) | ||
lol | |||
autrijus | brb. | ||
gaal | my cat just made a funny face at me. | ||
she doesn't make silly mistakes like that, i suppose. | 14:19 | ||
autrijus recalls damian's rationalisation for @ARGV and lol some more. | |||
theorbtwo | Hmm? | ||
autrijus | he said that it stands for ARGUMENT | ||
gaal | heh | 14:20 | |
autrijus | and the roman characters did not have U | ||
because it's all carved in stone | |||
so it's ARGVMENT | |||
in proper old style | |||
Odin-LAP | He's right, you know. ;) | ||
autrijus | sure :) | ||
Odin-LAP | It's just not what you might intuitively expect. :D | ||
theorbtwo litteraly laughs out loud. | |||
gaal | it would have to stand for ARGVMENTVM in that case, though. | 14:21 | |
autrijus | true. | ||
mmm language geeks. | |||
theorbtwo | At caltech, BTW, there are several houses, and several hovses. | 14:22 | |
The hovses look down on the houses. | |||
autrijus | lol | ||
gaal | "These Romans are crazy" | 14:23 | |
autrijus | o/~ latin is a dead language / as dead as it can be / first it killed the Romans / now it's killing me o/~ | ||
theorbtwo | Just how many languages /do/ you know, autrijus? | 14:24 | |
autrijus | human languages? | ||
surprisingly few. I'm only fluent in Mandarin and English. a bit Holok, a bit German, and that's about it. | |||
gaal | I believe the spelling is now AVTRIIVS, theorb2. | ||
autrijus | attempted to learn a lot of others. | 14:25 | |
theorbtwo | Oh. | ||
gaal | hey at least you can read Cantonese. <g> | ||
autrijus | gaal: that's like saying you grok MSSQL because you can use DBI::ODBC :) | 14:26 | |
gaal | exactly | ||
autrijus | DBD::ODBC, even. | 14:27 | |
gaal | exactlier | ||
jabbot | pugs - 880 - Test.pm writes diagnostics to file speci | ||
autrijus | ah. our friendly kolibrie has come. | ||
theorbtwo | Yeah, if aut had asked just what constituted a language, I would have said that mssql and DBI::ODBC weren't differen't languages. | ||
gaal | well, one isn't a language by even less counts. | 14:28 | |
fewer | |||
Haskell doesn't have a getopt-like library? | 14:31 | ||
autrijus | it has something better :) | ||
gaal | i was thinking of -I | ||
oh? | 14:32 | ||
autrijus | (System.Console.GetOpt) | ||
but perl isn't exactly getopt. | |||
so I'm not sure what to make of pugs. | |||
gaal | is the comamnd line specified for p6 at all? | ||
autrijus | what do you think? | ||
not at all. | |||
theorbtwo | I'd make it GNU-semantics compatable, then. | ||
autrijus | and break -Ifoo ? | 14:33 | |
or specify a set of rewrite rules? | |||
gaal | hmm, perl isn't getopt? it's pretty standard if you allow for trailing args to te script | ||
theorbtwo | -Ifoo breaks how? | ||
autrijus | there's no-I now | ||
gaal: ah. I thought -Farg doesn't work with getopt | |||
theorbtwo | Well why not? | ||
autrijus | theorbtwo: because no one wrote it? :) | 14:34 | |
gaal | it does under some circumstances | ||
like you have to turn off clustering | |||
autrijus | but then | ||
gaal | so that -vax != -v -a -x | ||
autrijus | perl -pie ... | ||
is clustered | |||
gaal | yeah :( | ||
autrijus | so I can't just use haskell's getopt | ||
gaal | well -i never was clustered | ||
(unfortunately) | 14:35 | ||
autrijus | or anything's, for that matter. | ||
theorbtwo | OK, so not quite GNU semantics, sadly. | ||
gaal | yeah. :/ | ||
theorbtwo | It's often annoyed me that -M strict does not work. | ||
autrijus | right. | ||
gaal | it doesn't? that's a shame | ||
autrijus | in ruby, -v and --verbose both works. | ||
gaal never noticed that | |||
autrijus | I think that's sanity. | 14:36 | |
gaal | well, if you do everything long-getopt style, you get sanity | ||
theorbtwo | It's sometimes nice to be able to tab-complete, even if you do have to tab complete, then change / to :: and remove the .pm. | ||
gaal | but no shortcuts. | ||
autrijus | gaal: not exactly sure what to do, then. | ||
I much prefer long style myself with selected shorthands | 14:37 | ||
like -I and -M | |||
gaal | theorb2: you can fix *that* in your shell. | ||
theorbtwo | That'd require learning how, though. | ||
gaal | that == being able to complete even immediately following a prefix, that is, not editing the completiong on-the-fly. | ||
i use tcsh for interactive work (yes, i know, i'm getting rare)... | |||
autrijus | so, -[VDFl0ImMxe] nest | 14:38 | |
I mean cluster | |||
via rewrite rules | |||
then pass it into long getopt. | |||
how's that for sanity? | |||
gaal | -x? i didn't remember that even existed | ||
theorbtwo | Hmm... somehow, that seems backwards. | ||
autrijus | gaal: "tells Perl that the program is embedded in a larger chunk of unrelated ascii text" | 14:39 | |
theorbtwo: elaborate? | |||
gaal | yes, i remember that now (eg fish it out of an email) | ||
theorbtwo | Those are the list of switches that /do/ take an argument. | ||
Surely the ones that cluster are the ones that do /not/? | |||
autrijus | right. sorry. | ||
hrm. will anyone miss -ple ? | 14:40 | ||
well. never mind. me for one. | |||
sigh. :( | 14:41 | ||
theorbtwo | I think that should get re-written to -p -l -e, and then passed on. | ||
Or we should just accept it, and write our own. | |||
autrijus | but ruby adopted -ple too | 14:42 | |
just to stay competitive. | |||
I say we accept our doom. :( | |||
gaal | ruby took something from perl? wow. :p | ||
autrijus | gaal: ruby's command line is 99% perl. | ||
its license, too. | |||
and more. | |||
gaal | well, from the user perspective it makes sense that the comand line is weird but gives maximum utility. just like everything else in perl | 14:43 | |
autrijus | before I started Pugs, I used to say that Ruby is Perl 6 without the advertisement. | ||
gaal | autrijus, i was joking, of course. i don't know ruby but most of what i saw looked familiar :) | 14:44 | |
autrijus | :) | ||
but nobody ever worked on a CPAN2Ruby converter. | |||
if there is, I predict mass migration :) | |||
(same applies for Perl 6.) | |||
(but for Perl 6 it's one of deliverables.) | |||
gaal | well, now it's time for somone to write a ruby2p6 converter :) | 14:45 | |
autrijus | there's a rubyonparrot team :) | ||
gaal | has anyone used getopt::declare? how does it feel liike to the user? | 14:46 | |
i mean the person running the script, not the programmer | |||
autrijus | oh. not sure. | ||
System.Console.GetOpt is a lot like that for the programmer | 14:47 | ||
but conforms to gnu long opt style | |||
for the user. | |||
gaal | well, i'm thinking, if we manage to write perl5's commandline handling with getopt declare, then we could port it to haskell, and use that for pugs, plus maybe even expose an interface for the p6 programmer for their own scripts. | 14:48 | |
autrijus | well, we wouldn't need to port it to haskell then. | 14:49 | |
port it to p6 ;) | |||
and run that with pugs. | |||
gaal | and have pugs not deal with its own command line at all? | ||
autrijus | aye. | ||
gaal | bootstrapping problem: where does it find its internal getopt? | ||
autrijus | inline it? | 14:50 | |
you think p5's cmdline syntax can be expressed with getopt declare? | |||
I was thinking about a small parser with parsec. | |||
that's an excellent way to learn parsec :) | 14:51 | ||
gaal | okay. well, i'll be glad to look into it then. but now i have to leave again for some more hours. | ||
autrijus | ok. see ya! | ||
gaal | bye! | ||
gaal & | |||
masak | i'm getting strange output when running the towers of hanoi example | 15:18 | |
bash-3.00$ ./pugs examples/hanoi.p6 | |||
ndisks = 3 | |||
AS | |||
SS | |||
AB | |||
SS | |||
SB | |||
how could I possibly move something from S to S? | |||
am I missing something? | 15:19 | ||
when I run a quick p5 port, I get much saner output | 15:27 | ||
bash-3.00$ ./hanoi.pl | |||
ndisks = 3 | |||
AB | |||
AS | |||
BS | |||
AB | |||
SA | |||
SB | 15:28 | ||
AB | |||
at least that *looks* like it could be right? | |||
is hanoi supposed to be borken? | |||
autrijus | masak: wow. it looks broken. | 15:59 | |
thanks for bringing it to my attention. will fix. | |||
brb & | 16:00 | ||
masak | how finished is pugs? | 16:04 | |
i'm thinking of writing a small board game in it | |||
is that doable? | |||
rjbs | Depends on what you need it to do, surely. | 16:08 | |
jabbot | pugs - 881 - * Disallow UNINST=1 during install. | 16:25 | |
masak | rjbs: well, I need it to be able to handle simple data structures, like arrays and hashes. i need loops, if statements, subs, scalars, a way to enter input... that's about it. | 16:34 | |
stevan | morning all | 17:01 | |
nothingmuch: you around? | |||
nothingmuch | in and out | ||
stevan | I just ran make test | 17:02 | |
nothingmuch | uhuh? | ||
stevan | and then took a nap, ate breakfast and walked the dog | ||
its taking a loooong time | |||
nothingmuch | ook | ||
stevan | I think we should think about re-organizing the test suite | ||
chip | Ha. "Open Profanity License." www.lcdf.org/xshostakovich/COPYING | ||
nothingmuch | for me it usually runs in under 2-3 minutes on my laptop (which is slooooww) | ||
stevan | it wont speed it up,.. | ||
nothingmuch | and about a minute on a very fast machine at work | 17:03 | |
stevan | yeah | ||
what do you think about re-organizing it | |||
for instance,.. making a data-structures folder for the array/hash tests | 17:04 | ||
stuff like that | |||
I dont want to get to granular, but as the suite grows, its harder and harder to find things | |||
nothingmuch | err, we could | 17:05 | |
i've been thinking about it a while | |||
but how would that make it faster? | |||
perhaps quicker, if you only want to tests parts | |||
stevan | I dont mind doing the work | ||
nothingmuch | well, that's true | ||
stevan | it wont make it faster | ||
exactly | |||
more intelligent grouping means I can run less of it | |||
again, I dont mind doing the work, but I just want to get feedback on my restructuring | 17:06 | ||
nothingmuch | okay | ||
stevan | alright, I will whip up a proposed structure and get back to you | ||
nothingmuch | great | 17:07 | |
put it up on the wiki | |||
ingy | sdkjfhsdhfhola | ||
riight | |||
morning | |||
masak | question: how ready is pugs for writing a smaller application? | ||
i'm thinking of implementing a board game in either perl 5 or pugs | 17:08 | ||
and i need data points for my decision | |||
stevan | masak: we dont have multi-dimensional data structures so you might have a hard time | ||
masak | hm | 17:09 | |
but can i create an array of... things? | |||
pjcj | but substr works, doesn't it? | ||
stevan | pjcj: not sure,.. it might now | ||
masak | all i need is really an array of array[ref]s | 17:10 | |
is that the same as a multidimensional array? | |||
stevan read an article recently on game boards implemented with bits | 17:11 | ||
masak | :) | ||
stevan | masak: yes | ||
array refs are not implemented yet | |||
masak | ah | ||
stevan | or rather,.. they are,.. but you cannot nest them | ||
masak | could be a problem | ||
stevan | they will flatten | ||
masak | ok | ||
well... can i help? | |||
stevan | sure | ||
know Haskell? | |||
masak | um... a little | 17:12 | |
i know fp | |||
and i have read some haskell | |||
stevan | you can take a look at that stuff,.. or on the perl6 side, you can write tests or examples or even convert your favorit perl 5 module | ||
obra | stevan: are there tests for multidemensioanl arrays? yeah | ||
stevan | orba: yes | ||
obra | obra, but yeah :) | ||
masak | :) | ||
stevan: ok, i will. thx! | 17:13 | ||
autrijus | greetings. | 17:17 | |
stevan | howdy autrijus | ||
autrijus | yo stevan. what's up? | 17:18 | |
stevan | not much | ||
thinking about re-organizing the test suite | |||
its getting big | |||
autrijus | it is. | 17:19 | |
and I imagine t/objects starting soon | |||
stevan | yeah | ||
autrijus | larry makes fun of my use of "woot". | ||
stevan | t/data_structures | ||
autrijus | :p | ||
yeah. I think 1-level deepness works | |||
kungfuftr | autrijus: kill him! | ||
autrijus | probably don't need t/foo/bar/baz.t | ||
kungfuftr: nah. larry is inimitable | 17:20 | ||
stevan | autrijus: yeah not too deep | ||
wide and shallow | |||
autrijus | yup. | ||
pjcj | perl5 has a coretest target, but that would probably cover all the current tests anyway | 17:21 | |
obra | hi | ||
mishi | 17:22 | ||
autrijus | hi obra-san. | ||
ETA to boarding? | |||
ingy | hola | ||
obra | hi autrijus-san. um. boarding in 6:30 | ||
autrijus | and now is.. ? | ||
obra | er. boarding in 6:00 | ||
autrijus | oh ok. | ||
obra | sorry. in six hours. | ||
kungfuftr | baka neko-san? | ||
obra | it is now 12:20 | ||
autrijus | six hours. nice. | ||
ingy | 18:00 | ||
obra | before then, I must reply to sales inquiries and finish packing | ||
autrijus | ok. I need to focus for 10 minutes | 17:23 | |
and finish lightstep's thunking patch. | |||
better to do it while it still merges without conflicts. | |||
ingy is jealous of obra | |||
rgs wants a box of inline | 17:24 | ||
crysflame | hi | 17:25 | |
17:28
obra is now known as ingy_,
ingy is now known as obra
|
|||
autrijus | ingy_: so your EU::MM hacks needs 6.17. | 17:29 | |
I perceive it's not a problem | |||
so I OK'ed the build_requires | |||
ingy_ | hah. my nick hilighting is triggering | ||
17:30
ingy_ is now known as obra_,
obra is now known as ingy,
obra_ is now known as obra
|
|||
ingy | autrijus: which hack is that | 17:31 | |
(so many hacks, so little time) | 17:32 | ||
autrijus | ingy: the massive cleanups | ||
ingy | oh hmmm | ||
what's the deal?? | |||
autrijus | apparently EUMM 5.x doesn't like the magics. | 17:33 | |
6.17 is in 5.8.1 and 5.6.2 though | 17:34 | ||
so not sure we need to care. | |||
ninereasons | what am I supposed to be using to read the kwid markup (besides /usr/bin/less)? | 18:14 | |
jabbot | pugs - 882 - substr should work for all cases - excep | 18:15 | |
stevan | ninereasons: there is a Perl5-Kwid which does simple kwid to html I believe | 18:16 | |
ninereasons | I'll look for it, thank you. | ||
stevan | ninereasons: search.cpan.org/~ingy/Kwid-0.00_01/ | 18:17 | |
luqui | wow | ||
that's an early version | |||
not even the default 0.01 | |||
autrijus | hey luqui! | 18:18 | |
nice to see you here! | |||
stevan | so alpha it hurts :P | ||
malaire | seems like my commit-message was badly-worded for jabbot - the except-text got cut off... | ||
luqui | yeah, i've been away | ||
autrijus | I'm about to commit a huge refactoring. | ||
luqui | schoolin' and working on Logic.pm | ||
autrijus: what does it do? | |||
autrijus | symbol table now contains Vals not Exps | ||
and Vals may be VThunks | |||
which preserves its env. | |||
luqui | neat | ||
autrijus | that makes := Just Works. | 18:19 | |
so @fib ;) | |||
also, pugscc can still handle it. | |||
(which is the important part) | |||
and once we can Show and Read VThunks | |||
we have serializable continuations. | |||
luqui | Do you have any references for thunking techniques | ||
autrijus: yay serializable continuations | 18:20 | ||
parrot said it's going to have those | |||
obra | luqui: parrot said so after autrijus cornered dan at lunch and drew on napkins at last oscon | ||
autrijus | right. | ||
basic works are there | |||
not exposed to pasm last I checked. | |||
luqui | ahh, thanks autrijus | ||
autrijus | sure. it's my pet wishlist item. | 18:21 | |
so, either simon pj's free online book | |||
(url in a sec) | |||
or "The Glasgow Haskell compiler: a technical overview" | |||
luqui | I'm trying to implement them for Logic.pm | ||
autrijus | "The Implementation | ||
of Functional Programming Languages" | |||
luqui | backtracking junctions need it | ||
autrijus | you synced with AI::Prolog's work? | 18:22 | |
or there's no overlap? | |||
luqui | I've used it for reference | ||
But mostly I'm implementing it to understand how to implement it | |||
(and to provide MMD based on logical conditions) | 18:23 | ||
autrijus | nod nod. | ||
good. that's good spike solution work | |||
luqui | hmm? | ||
spike what what? | 18:24 | ||
autrijus | sorry. XP jargon. | ||
www.extremeprogramming.org/rules/spike.html | |||
luqui | *click* | ||
I probably won't throw it away though. I'm quite happy with its design. | 18:25 | ||
One of those things where my gut told me to design it the way that turned out to be right (rare). | |||
autrijus | cool! | ||
but you'll port it to p6 :) | |||
luqui | That's the plan | ||
it's a proof-of-concept module for pattern matching | 18:26 | ||
autrijus | good. by that time we may even compile your code. | ||
autrijus has been researching a lot on how to write metametacircular compiler | |||
luqui | did you type meta twice by accident? | ||
autrijus | no, intentional | ||
normal macro things, like Template Haskell or Scheme, although they let you use the host language as macro language, | 18:27 | ||
that phase occurs after the tokenization. | |||
or really, after AST. | |||
and then you tweak the AST. | |||
luqui | ahhh... we need to parse | ||
metaperl_ | ingy, ping | ||
autrijus | but perl6 is better than that; you can use the host language to affect lexing. | ||
and may even force reparsing of your lexical block | 18:28 | ||
metaperl_ | I think head1 head2, etc are a little more useful than =, == , === . For one they are easier to search for. For two, they immediately tell you what level you have | ||
autrijus | whenever there's a lookahead. | ||
and all this is inside an evaluator | |||
that does incremental compile. | |||
the same onthefly compiler is available at eval"" time as well. | |||
and must be typesafe. | |||
so, lots of fun. | 18:29 | ||
ingy | hola | ||
metaperl_: | |||
luqui | hola. como estas? (pronounce estas with accent on first syllable) | ||
(como gringo) | |||
ingy | metaperl_: maybe join #kwid | ||
18:35
rafl_ is now known as rafl
|
|||
autrijus | woot. | 18:54 | |
fought thru the typechecker now | |||
pugs> my $a = 1; my $b := $a; $b = 3; $a | |||
3 | |||
lvalue bindings work. | |||
ingy | autrijus++ | ||
crysflame | autrijus: neat | 18:59 | |
sorje | nice | 19:08 | |
pugs> ? "hi".say | 19:09 | ||
Segmentation fault | |||
malaire | I get "Segmentation fault" for everything tested so far, when using pugs> ? | 19:16 | |
theorbtwo | Hm, works fine for me. | ||
malaire | :r also given "Segmentation fault"... | 19:17 | |
theorbtwo | Odd. | ||
theorbtwo tries from make clean. | 19:18 | ||
Still works. | 19:20 | ||
CPU-archs? | |||
malaire | Athlon 1333 | 19:21 | |
I'm trying again from clean "svn up"... | 19:22 | ||
err, "svn co" ... | 19:23 | ||
sorje | malaire, which version of ghc are you using? | 19:24 | |
malaire | GHC 6.4 | ||
sorje | theorbtwo, you? | ||
I'm using 6.4, too. | |||
autrijus | win32? | 19:26 | |
win32 gives me segfaults also. | |||
readline+win32+6.4 specifically | |||
nothing else does that to me. | |||
malaire | I have linux | ||
sorje | linux here | ||
autrijus | weird. | ||
malaire | hmm.. how could I turn off all optimizations while 'make' ? | 19:30 | |
autrijus | malaire: pass -O0 to GHC. | ||
so, hack makefile | |||
I'm testing. | |||
argh! | 19:32 | ||
I reverted Eval.hs to get -O back | |||
now my refactoring is all gone :-( | |||
autrijus blames svk for not having unrevert | |||
autrijus redoes everything | |||
chip | rerevert | 19:33 | |
malaire has to go to sleep now... | 19:38 | ||
theorbtwo | Er, I'm using linux/P4/GHC6.2.2 | 19:39 | |
stevan | nothingmuch: ping! | 19:46 | |
nothingmuch | pong | ||
stevan | pugs.kwiki.org/?Perl6Testing | ||
nothingmuch | quickly though, i have to clean the kitchen | ||
stevan | nothingmuch: take your time | ||
autrijus: you might want to take a look too | 19:47 | ||
autrijus | recoded everything from scratch. | ||
stevan | I tried to keep it no deeper then one | ||
but in some cases it want 2 deep | |||
t/data_types/hash/* | 19:48 | ||
stuff like that | |||
nothingmuch | s/objects/oop/ | ||
merge as much as possible | |||
autrijus | ok, I'm committing something silly. | ||
nothingmuch | and create a top level 'general' everywhere there's too much cruft, i think | ||
what i'm worried about is err, where things meet | |||
are traits oop? or are they for data types? | 19:49 | ||
stevan | oop/traits/ | ||
autrijus | it works, but apparently makes things a lot slower. | ||
theorbtwo | On data and on containers. | ||
nothingmuch | as for builtins: they should probably be left now | ||
just grouped | |||
and later remapped based on s29's partitioning | 19:50 | ||
theorbtwo | ...but not purtiuclarly tied to OO. | ||
stevan | ok | ||
nothingmuch | there should be a directory, pugsbugs or something like that | ||
with most of t/syntax/ going into t/pugsbugs/syntax | |||
etc | |||
stevan | ok | ||
nothingmuch | hmm | 19:51 | |
stevan | actually not all of syntax/,.. | ||
I moved some stuff in there | |||
nothingmuch | not all, most =) | ||
stevan | ok updated the page | ||
nothingmuch | i think t/op/ should be made into stuff like t/op/numeric, t/op/string, etc | ||
to correspond with the prefixes | |||
stevan | ok | 19:52 | |
nothingmuch | now that they're standardized | ||
i think i may be overzealous, but i think a myriad of tests will be added eventually | 19:53 | ||
stevan | why do you think that? | ||
with s29? | |||
nothingmuch | splitting everything up? | ||
because there are going to be lots and lots of primitives | |||
btw, quoting should go under syntax, i think, | |||
stevan | ok | 19:54 | |
masak | i have researched the hanoi bug a little further | ||
stevan | i was thinking q// was a kinda operator maybe | ||
masak | i still dare not go close the haskell source | ||
nothingmuch | also, i'd like t/examples to widen a bit | ||
masak | but i have made a few debug outputs | ||
nothingmuch | when Test::Output will be done, i will gladly unit test the examples | ||
masak | and it seems the S's are spreading | ||
a very strange phenomenon | 19:55 | ||
could it have something to do with binging of parameters? | |||
which source file should i (hypothetically) look in? | 19:56 | ||
nothingmuch | stevan: well, sort of | ||
except it's not an operator in the typical sense | |||
autrijus | masak: Eval.hs and Bind.hs. wait me a sec | ||
nothingmuch | since it's effect is normally compile time | ||
stevan | nothingmuch: a lot of things don't seem typical :) | ||
masak | autrijus: oki | ||
nothingmuch | anyway, i've got to clean up | 19:57 | |
stevan | nothingmuch: how about I start with this, then we can go from there | ||
nothingmuch | sure | ||
stevan | ok I will do all this re-arranging later today,.. | ||
have fun cleaning the kitchen :) | |||
nothingmuch | i'd like to standardize on a test -> syn link format | 19:58 | |
and start doing that doay | |||
today | |||
and maybe someone can whip up a website where that stuff gets updated | |||
autrijus | ok, I'm back to the material plane. | ||
autrijus backlogs | |||
stevan | nothingmuch: I agree on the test cataloger | 19:59 | |
I think this re-org will help though | |||
autrijus | hrm, I'd argue for t/junction/ to be toplevel | ||
because it's testing the junctive logic | |||
not the operators per se. | |||
stevan | autrijus: thats fine with me,.. I struggled with where to put it anyway | ||
autrijus | and s/oop/objects/ | 20:00 | |
stevan | nothingmuch: with better orgs, we can build better PODs, which are easier to navigate, etc et cetc | ||
LOL | |||
nothingmuch | objects? | ||
stevan | nothingmuch: just s/object/oop/ | ||
autrijus | LOL. | ||
autrijus thinks. | |||
you know, oo/ makes more sense than oop/ :) | 20:01 | ||
autrijus thinks some more. | |||
nothingmuch | oop sounds like soup | ||
but that's the only reason i like it | |||
autrijus | I think objects/. | ||
nothingmuch | oo is short and unambiguous | ||
objects is too specific | |||
autrijus | true. | ||
nothingmuch | there's lots more than objects | ||
maybe oo/objects | |||
autrijus | oo then. I'm fine with oo. | ||
stevan | ok | 20:02 | |
nothingmuch | oo/traits, oo/classes, oo/classes/anynymous.t | ||
stevan changes the wiki again | |||
nothingmuch | as far as definition is concerned it's all about objects, but language implementation needs to be partitioned better than that, IMHO | ||
autrijus | otherwise it looks very sane. | ||
masak has checked the source code /me likes the poems | |||
stevan | autrijus: sane was my goal :) | ||
masak | oops :) | 20:03 | |
autrijus | ok. hanoi | ||
masak | :) | ||
i don't understand the code | |||
autrijus | the hanoi code? | ||
masak | the pugs source | 20:04 | |
i want to, but i have a bit left to go... :/ | |||
autrijus | oh. nvm that. | ||
masak | so how can i help? | ||
i have one more output | |||
autrijus | so, when disks = 2 | 20:05 | |
it says | |||
AS | |||
AB | |||
SB | |||
masak | yes | ||
that is correct | |||
as far as i can tell | |||
autrijus | ok | ||
so =3 is the first error case | |||
masak | yes | ||
jabbot | pugs - 883 - * Full thunking landed: The symbol table | ||
masak | look here | ||
bash-3.00$ ./pugs examples/hanoi.p6 3 | 20:06 | ||
ndisks = 3 | |||
Upon entering $a=A, $s=S, $b=B | |||
Upon entering $a=A, $s=S, $b=S | |||
autrijus | I see a "SS" | ||
masak | 1AS | ||
Upon entering $a=S, $s=S, $b=S | |||
2AS | |||
Limbic_Region | autrijus - use.perl.org/~tombom/journal/23724 # first time with Pugs | ||
autrijus | SS could not be right. | ||
masak | Upon entering $a=S, $s=S, $b=S | ||
1SS | |||
Upon entering $a=S, $s=S, $b=S | |||
3AB | |||
Upon entering $a=S, $s=S, $b=B | |||
Upon entering $a=S, $s=S, $b=S | |||
1SS | |||
Upon entering $a=S, $s=S, $b=S | |||
autrijus | er. nopaste! nopaste! | ||
masak | 2SB | ||
Upon entering $a=S, $s=S, $b=B | |||
autrijus | pasteling: nopaste? | ||
masak | Upon entering $a=S, $s=S, $b=S | ||
1SB | |||
Upon entering $a=S, $s=S, $b=B | |||
autrijus | pasteling: nopaste | ||
masak | no | ||
Limbic_Region | perlbot nopaste | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
autrijus | oops :p | ||
masak: try nopaste :) | |||
I can't quite grok irc pastes | 20:07 | ||
masak | oh, sorry | ||
what's nopaste? | |||
autrijus | perlbot: nopaste | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
masak | ah | ||
there | 20:08 | ||
masak uses nopaste for the first time | |||
autrijus | except you need to select #perl6 :) | ||
pasteling | "masak" at 130.238.83.176 pasted "hanoi debug run" (24 lines, 566B) at sial.org/pbot/8334 | ||
masak | ouch :( | ||
masak wreacks havoc in #perl forum by pasting perl6 code there without explanation | 20:09 | ||
autrijus | :) | ||
so obviously the pad is broken | 20:10 | ||
masak | ah, obviously :) | ||
the pad is broken | |||
autrijus | now, to find out why. | ||
:) | |||
care to produce a minimum test case? | |||
masak | sure | ||
how? | 20:11 | ||
autrijus | one that is not 307 bytes long | ||
jabbot | masak: how is it supposed to err, perform normally given say: | ||
autrijus | preferably in one line :) | ||
masak | ok :) | ||
i'll do my smallest | |||
autrijus | probably beginning with sub s ($a,$b,$c) {...} | ||
or something like that | |||
thanks! | |||
masak | yes | ||
brb | |||
theorbtwo | masak: The pad is where lexical variables are kept. | 20:12 | |
masak | ah, as opposed to...? | 20:13 | |
autrijus | well in pugs there are two pads | ||
one lexical and one global | |||
actually "global" just means "per-package" | |||
but we don't have packages yet, so it's as good as global | 20:14 | ||
almost all data type definitions are in AST.hs. | |||
so, to learn what a Pad is, you grep Pad in AST.hs :) | |||
and it says: | |||
type Pad = [Symbol] | |||
in english: "a pad is a list of symbols." | |||
and you may wish to ask what a Symbol is | 20:15 | ||
look at the next line | |||
and it will tell you that a symbol is a Scope, a Name, and either a Value or a Expression. | |||
etc, etc:) | |||
and to learn what a Scope is, the next line says | 20:16 | ||
data Scope = SGlobal | SMy | SOur | SLet | STemp | SState | |||
which reads just like enums. | |||
masak | ah | 20:17 | |
i have encountered an unexpected problem | |||
autrijus | oh? | 20:18 | |
pasteling | "masak" at 130.238.83.176 pasted "unexpected error" (5 lines, 124B) at sial.org/pbot/8335 | ||
masak | maybe it's just me not knowing pugs syntax | ||
but it trips on the comma in my sub declaration | |||
autrijus | I think you want ''. | ||
bash interpolates $a. | |||
not a pugs problem :) | |||
masak | i see | ||
thx | |||
autrijus | np | ||
masak | it compiles now :) | 20:19 | |
crysflame | doesn't bash support heredocs? | 20:20 | |
like perl -e <<FOO | |||
gaal | yoyoyo | 20:21 | |
crysflame | hm, not enough to work, i guess. o well. | ||
masak | autrijus: ok, here goes | 20:23 | |
pasteling | "masak" at 130.238.83.176 pasted "minimal test case" (4 lines, 198B) at sial.org/pbot/8336 | 20:24 | |
masak | the second run should return "ba" | ||
this is probably not the pragmatically correct way to make a minimal test case, but it shows what's wrong | 20:25 | ||
autrijus | that's fine | 20:26 | |
sub h($a,$b,$d) {return h($b,$a,0) if $d;"$a$b"} say h('a','b',1) | 20:27 | ||
I'll use this. | |||
testing | |||
yay. I got mail indicating YAPC::NA wants me there. | 20:29 | ||
hide | I could have told you that. | ||
autrijus | oh! you're on the organizing team? | ||
hide | nah, just part of TO.pm | ||
gaal | they have a moose in their logo! cool. | 20:30 | |
autrijus | masak: you may be interested in running | ||
ghci -isrc src/Main.hs | 20:31 | ||
masak | ok | ||
autrijus | then type | ||
eval "sub h($a,$b,$d) {$d ?? h($b,$a,0) :: qq[$a$b]} say h('a','b',1)" | |||
that explains clearly what went wrong. | |||
masak | right. brb | ||
woah | |||
masak is overwhelmed by fp symbols | |||
autrijus | want some explanation? :) | 20:32 | |
masak | i'm sure it explains it clearly... to someone else :) | ||
yes please | |||
autrijus | it is aligned with | ||
*** Evl: expression | |||
*** Ret: value | |||
pairs | |||
which may be nested | 20:33 | ||
the expressions and values may span several lines. | |||
masak | ok | ||
autrijus | so the first Evl is the entire program. | ||
it displays a parse tree. | |||
masak | ok | ||
autrijus | so, it first evaluates the sub{...} | ||
masak | yes | 20:34 | |
autrijus | and put it into SGlobal &h | ||
masak | ...which it should | ||
autrijus | then it evaluates ('a','b',1)[0..Inf] | ||
masak | hunh? | ||
autrijus | never mind :) | ||
it evaluates the arguments. | |||
masak | ok | ||
autrijus | so you see a | 20:35 | |
App "&h" ('a','b',1) | |||
masak | yes | ||
"apply" | |||
autrijus | which means it tries to apply &h with the correct args. | ||
masak | yes | ||
autrijus | now there is the ??:: form. | ||
masak | yes | ||
autrijus | it is written as | ||
Syn "if" { cond ; true ; false } | |||
masak | yes | ||
autrijus | where the false part has a cxt forcer | ||
of "Str" | |||
and joins $a and $b and ''. | |||
masak | ok | ||
autrijus | which is what interpolation is. | 20:36 | |
so it evaluates cond. | |||
that's $d, and is 0 | |||
I mean, 1. | |||
masak | cool... it's starting to make some weird kind of sense | ||
autrijus | then it tries to evaluate (App "&h" (Var "$b", Var "$a", 0)) | ||
which is the <true> part. | |||
masak | yes | 20:37 | |
autrijus | so it looks up $b and $a. | ||
masak | so far so good | ||
yes | |||
autrijus | $b is 'b'. | ||
$a is 'b'. | |||
oops! | |||
masak | but we knew that, right? | ||
that's the problem, not the solution | |||
autrijus | yes. but the important thing is the sequence of things happening :) | ||
masak | ah, ok | ||
autrijus | it means that $b is bound first to $a | ||
I mean, 'b' is bound to $a | 20:38 | ||
masak | ...because the pad is broken? | ||
autrijus | and the second argument is _then_ evaluated. | ||
so it uses the modified pad | |||
where $a is already bound anew | |||
and get that value. | |||
masak | why does it use the modified pad? | ||
autrijus | because whereas we should evaluate all arguments first, then bind them to formal params | ||
it appears that we are evaluating one and bind one | 20:39 | ||
and evaluate another. | |||
that is seriously broken. | |||
masak | not good | ||
autrijus | so, the place to find this is Eval.hs | ||
masak | ok | ||
autrijus | I'm checking code, a sec. | ||
(doApply is the place) | |||
masak has got to learn haskell after this | |||
autrijus | ok. | 20:40 | |
I know why now. | |||
masak | woot | ||
autrijus | but you need to know haskell to follow completely | ||
nevertheless I'll explain | |||
masak | yes, do | 20:41 | |
autrijus | ok. you see doApply? | ||
masak | sec | ||
autrijus | doApply :: Env -> VSub -> [Exp] -> [Exp] -> Eval Val | ||
Eval.hs line 614 | |||
if it's not line 614 for you, svn up. | |||
masak | it is | 20:42 | |
autrijus | ok. | ||
now, the :: line is the function signature. | |||
it says: | |||
masak | yeah | ||
autrijus | doApply takes the current environment (the pads) | ||
and a subroutine | |||
and a set of invocants | |||
and another set of arguments | |||
(here we only use arguments) | |||
then it evaluates a Value for you. | |||
masak | currying, right? | ||
autrijus | hm? | 20:43 | |
subroutines are closures. not sure how currying apply here | |||
masak | maybe not | ||
autrijus | if you only pass it an argument, then it curries. but we're using full invocation | ||
masak | fp is still voodoo to me | ||
autrijus | anyway. see the next line. | ||
masak | ok | ||
autrijus | now we start binding | ||
masak | yes | 20:44 | |
autrijus | so, we only care about the "cls" part of the env | ||
but ignore that. | |||
then we call the subroutine "sub" | |||
and call its parameters "prms", its body "fun", and its type "typ". | |||
then we call the invocants "invs" and arguments "args". | |||
with that done, we start evaluating. | |||
masak | ok | ||
autrijus | so, we call "bindParams prms invs args" | 20:45 | |
which binds the invs and args against the formal prms | |||
stevan | uhm | ||
r883 | |||
pugs -e 'my $a; $a += $_ for 1 .. 10; say $a' | |||
autrijus | uhm. | ||
stevan | this is an infinite loop and gobbles up the whole CPU | ||
autrijus | you don't need the say$a | ||
masak | stevan: thanks for telling :) | 20:46 | |
autrijus | you don't need the $_. | ||
stevan | autrijus: the say $a was to test it works on the older Pugs :) | ||
autrijus | ./pugs -e 'my $a; for 1 { $a + 1 };' | ||
is sufficient. | |||
stevan | :) | ||
autrijus | stevan: I'll fix in a min. | ||
let me fix masak's bug first. :) | |||
stevan | ok,.. no rush,.. I just noticed it | 20:47 | |
autrijus | masak: ok. so bindParams returns either an error message, or a correct set of bindings. | ||
stevan should be doing $work stuff anyway | |||
masak | ok | ||
autrijus | we use "case", which is like "switch", to analyze it. | ||
masak | yes | ||
autrijus | if it's an error, well never mind that branch | ||
now we have bindings. | |||
masak | ok | 20:48 | |
autrijus | so we enter a dynamic scope. | ||
masak | enterScope | ||
autrijus | that means CALLER:: from now on refers to where we've been. | ||
which makes sense. | |||
masak | sure | ||
autrijus | then we get a set of bound arguments | ||
via doBind. | |||
we are pretty sure it's where it's broken. | |||
masak | uh huh | ||
autrijus | when you see | 20:49 | |
var <- function args | |||
read: "set var to the result of evaluating function with args." | |||
masak | yes...? | ||
autrijus | ok. now go to line 636 | ||
where doBind is defined. | |||
masak | i'm there | ||
autrijus | excellent. | 20:50 | |
so that line means | |||
if you are trying to bind an empty list | |||
masak | yes | ||
autrijus | I give you an emptly list back. | ||
which is unexciting. | |||
masak | pattern matching | ||
autrijus | so next line. | ||
if you are binding an nonempty list | |||
where the first element is a parameter bound to an expression | |||
and everything else is called "rest" | |||
masak | ok | ||
autrijus | ignore the Parens branch. | 20:51 | |
so that line reads | |||
"I turn expressions to values and assign it to val." | |||
masak | makes sense | 20:52 | |
autrijus | err, "I turn expression to value and assign it to val." | ||
ignore the "coll" part. | |||
masak | yes | ||
autrijus | (it controls junctive autothreading.) | ||
masak | :) | ||
i'll ignore it | |||
autrijus | now line 645 | ||
masak | yep | ||
autrijus | it says, "fix the val above with the context given by the parameter name sigil." | ||
which is actually bogus. | 20:53 | ||
because we need to specify context during evaluation | |||
not when we already have a val | |||
because the exp may choose to evaluate differently in response to a context. | |||
masak | yes | ||
i think i actually see the problem | 20:54 | ||
autrijus | it's in the next line :) | ||
masak | through a haze, but still | ||
autrijus | the next line says: | ||
masak | the recursive call | ||
autrijus | "now bind this variable, and do the rest." | ||
oops. | |||
masak | yes | ||
autrijus | now, why was that there? | ||
masak | :) | ||
autrijus | because perl6 allows | ||
sub foo ($a, ?$b = $a) { ... } | |||
and here the $a refers to the previously bound $a. | |||
masak | ah, wow | 20:55 | |
neat | |||
autrijus | except it's throwing us off. | ||
masak | yes | ||
want cake and eat cake | |||
autrijus | yes. | ||
now, actually there is a difference. | |||
masak | oh, good | ||
:) | |||
autrijus | the $a in ?$b = $a is part of part of an optional arg. | ||
masak | an optional arg? | 20:56 | |
autrijus | $b is optional. | ||
? denotes optionalness. | |||
masak | ah | ||
autrijus | when Bind.hs processes it, it adds a "Parens" before it. | ||
see line 640. | |||
masak | yes | ||
autrijus | let me commit the context fix first. | 20:57 | |
masak | np | ||
masak is greatly enjoying himself | 20:58 | ||
autrijus | it's readable? :) | ||
masak | a bit like russian is readable, yes :) | 20:59 | |
autrijus | lol. | ||
fixed. | 21:00 | ||
svn up? | |||
21:00
boch is now known as boch\off
|
|||
masak | sure, sec | 21:02 | |
i guess removing and redownloading the entire source tree is not the most effective use of svn... | 21:03 | ||
autrijus | nope :) | 21:04 | |
jabbot | pugs - 884 - * sub params need to apply their sigil c | 21:05 | |
masak | svn:ed up | 21:06 | |
Limbic_Region | autrijus - did you catch the use.perl journal entry I posted - you were in the middle of another conversation | ||
s/posted/pasted | 21:07 | ||
autrijus | Limbic_Region: I did. | ||
Limbic_Region believes that the rolling snowball isn't far away from critical mass | 21:08 | ||
masak | ...at which point it will... what? explode? stop? melt? :) | 21:12 | |
elmex | wow | 21:14 | |
autrijus | my battery just went out :-/ | 21:15 | |
bgfscking. sec | |||
freebsd-- # no automagic acpiconf -s 4 | 21:16 | ||
Limbic_Region | maybe that's a sign you should go to bed | ||
autrijus | heh :) | 21:17 | |
masak | i'm going to bed | ||
autrijus | and I fixed the bug. | ||
masak | autrijus: thanks for all the explanations | 21:18 | |
autrijus | testing. | ||
masak: no prob :) | |||
masak: how should I credit you in AUTHORS? | |||
masak | nonono :) | ||
autrijus | may I make you a committer and let you commit that line yourself? :) | ||
masak | sure :) | ||
autrijus | your email? | ||
masak | [email@hidden.address] | ||
autrijus | ok. sleep well! | ||
masak | thx | 21:19 | |
elmex | i only wrote one test... not a reason for me to be listed in the credits... i think | 21:20 | |
autrijus | I think otherwise :) | 21:24 | |
elmex: are you not a committer? | |||
elmex_ | a freeflight.. | 21:27 | |
autrijus: you said something? | |||
autrijus | elmex_: are you not a committer? sorry for not remembering | ||
elmex_ | ah, yes, i am... committet a test.. | 21:28 | |
autrijus | ok. add yourself to AUTHORS then, if only to reduce theorbtwo's workload. | ||
hi rg0now! | 21:29 | ||
rg0now | hi | ||
might I bugreport now? | |||
autrijus | sure. I'm aware that trunk is broken re := | ||
but go ahead. | |||
rg0now | open is broken too | ||
I menan at least on linux | 21:30 | ||
elmex_ | autrijus: oh, if it makes workload to others..i have to add myself. | ||
autrijus | rg0now: yeah. my thunk patch destroyed everything. | ||
rg0now | :) | ||
should I wait some time until it stabilizes? | |||
elmex_ | autrijus: what does the stuff in parents in the AUTHORS file mean? | 21:31 | |
autrijus | rg0now: like, 5 min | ||
elmex_: CPAN id | |||
elmex_ | ah, ok, dont have one | ||
autrijus | rg0now: give me a case where open is broken? | ||
short test | |||
rg0now | short moment | ||
ok, I have the test case: | 21:34 | ||
my $fh = open(@ARGS[0]) or die("failed"); | |||
this one very subtly fails | |||
according to strace, it opens the file | 21:35 | ||
then it tries to ioctl, that fails | |||
the relevant lines from the starce log | |||
open("stuff/test.txt", O_RDONLY|O_NONBLOCK|O_NOCTTY|O_LARGEFILE) = 3 | |||
so open is successful, but then the ioctl that fails | 21:36 | ||
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfffd86c) = -1 ENOTTY (Inappropriate ioctl for device) | |||
this is Pugs r883 on Debian Linux | 21:37 | ||
interestingly, =<> works fine...:-) | 21:38 | ||
autrijus | ok. | ||
did it work? | |||
before r883 | 21:39 | ||
rg0now | I think it did, as the new tsanta code over at PerlMonks uses it | ||
you know, the Pugs Golf contest..:-) | |||
autrijus | yup. | ||
rg0now | does it work for you? | 21:40 | |
did _I_ miss something again? | |||
autrijus | no... it worksforme. | ||
can you try to trackdown a bit? | 21:41 | ||
rg0now | wait a bit more, I try to narrow it down a bit... | ||
autrijus | try r882. | ||
r883 is a huge refactoring. | |||
rg0now | ok | ||
hide | $a += $_ for 1 .. 10; seems to loop for a really long time. | ||
autrijus | hide: svn up. | 21:42 | |
hide | that was 885, now I'm at 888 | ||
autrijus | the shell is broken. | 21:43 | |
hide nods | |||
it actually looped forever in t/base/post, but in 888 appears fixed. | 21:44 | ||
so ignore me :) | |||
autrijus | :) | ||
hide | I've got some time to add tests, just don't know where to start. | ||
stevan | hide: we are going to re-organize the tests tonight so it wont be so confusing | 21:45 | |
hide: here is the proposed new structure | |||
pugs.kwiki.org/?Perl6Testing | |||
feel free to comment on it too, its not yet set in stone | 21:46 | ||
stevan thinks he will wait till autrijus goes to sleep to move all the tests around | |||
autrijus | "You have 15 points until level 6." | ||
hrm. I swear one month ago I was level 2 or 3 or so. | |||
autrijus thinks this perlmonks thing is weird. | 21:47 | ||
stevan | autrijus: it is | ||
hide | stevan: I can help if you'd like. | ||
autrijus | "svk mv" is your friend :) | ||
(it preserves history) | |||
stevan | yes | ||
hide | svk++ | ||
stevan | svn mv does too :) | ||
autrijus | "svn mv" too, but I wrote svk mv. | ||
:) | |||
theorbtwo | autrijus, thanks for trying to reduce my workload. | 21:48 | |
autrijus | theorbtwo: no problem. | ||
theorbtwo | And thanks for thinking perlmonks is wierd. | ||
stevan crosses his fingers and runs make test | |||
autrijus | it is very weird. | ||
I like it, though. it's weird in a perlish way. | |||
rg0now | regarding the open failure: it works with r882 | ||
so it must be the refactoring | |||
autrijus | yay so it's 883. | ||
now let's see what lightstep sneaked up in his patch... | 21:49 | ||
stevan | hide: what did you want to help with? | ||
autrijus | failing to find anything related. | 21:50 | |
tiw | hi all | ||
autrijus | rg0now: I need to sleep soonish. | ||
rg0now: if you can help do a binary search inside r883's Prim.hs changes, great | |||
rg0now | ok, I'll be back tomorrow with the latest results...:-) | ||
autrijus | otherwise I'd appreciate a shell or something :) | ||
rg0now | ok | ||
autrijus | tomorrow that is | ||
tiw | i think in given.t, a test case is useless | ||
rg0now | ok, by... | 21:51 | |
stevan | tiw: which one? | ||
hide | stevan: moving tests around if need be. | ||
stevan | hide: that is probably best done by a single person, its hard to coordinate | ||
tiw | line 19 | ||
stevan | tiw: i hesitate to call any case useless | 21:52 | |
tiw | stevan: $two will never given a value, no matter test successfully or not | ||
stevan | tiw: but that is tested for | ||
it is testing that is does *not* get a value | 21:53 | ||
tiw | i mean, when given is not work, the test is still ok | ||
stevan | tiw: yes | ||
tiw: but if given is broken,.. it might fail | |||
tiw | stevan: ok, it is not useless, but not best | 21:54 | |
stevan | tiw: agreed, but unimplemented things are hard to test | 21:55 | |
feel free to add more if you have ideas | |||
jabbot | pugs - 888 - * now bindings works, unTODO and fix qui | ||
pugs - 887 - * op2Numeric repaired | |||
pugs - 886 - Added myself to the AUTHOS list. | |||
pugs - 885 - * hanoi is back to work | |||
tiw | stevan: i are right. | 21:56 | |
stevan: i think "ok(!$two, "5 is not two");" should to change to todo_ok | |||
stevan: because this feature is not yet implemented | 21:57 | ||
it cost me a lot of time to test why this test is "ok" | |||
stevan | tiw: the convention has been to only make failing tests todo_ok and not passing ones | 21:59 | |
because Test Harness reads them as "unexpectedly succedding" | |||
but you are right, it can be confusing | 22:00 | ||
tiw | to test a unimplemented feature, and get ok, do you think it is really good? | 22:01 | |
i suggest all test about unimplemented feature should be 'todo_ok' | |||
stevan | but then the test harness will show them unexpectedly succeeding | 22:02 | |
which can be confusing | |||
tiw | i do not unstand what the 'failling tests' mean | 22:05 | |
stevan | if todo_ok passes, then the test harness prints "1 Test Unexpectedly succedded" | 22:06 | |
try it | |||
change it to todo_ok and re-run make test | 22:07 | ||
stevan has to go pick up his daughter & | 22:09 | ||
autrijus | ok. think I'll wake up to a refactored test tree tomorrow? :) | 22:13 | |
nothingmuch | ah | 22:14 | |
tiw | i hope test should be meanful | ||
nothingmuch | after kitchen cleaning and socializing /me heads off to the gas station | 22:15 | |
to reaquire nicotine stores lost to the laundry machine earlier this week, | |||
autrijus | journal up. | 22:20 | |
good night, folks! | |||
thanks and have fun :) | |||
nothingmuch | good night, autrijus | ||
see you tomorrow | |||
autrijus | =) | ||
nothingmuch | hopefully with something done about the test organization! | 22:21 | |
autrijus | yup! | ||
& | |||
rg0now | has autrijus already left? | 22:29 | |
ingy | just left | ||
rg0now | I was here some minutes ago and reported a bug | 22:30 | |
nothingmuch | rg0now: appearantly yes, but you never know ;-) | ||
rg0now | I just wanted autrijus to knwo | ||
autrijus | rg0now: speak quickly. :) | ||
rg0now | that it is now resolved with r888 | ||
I made a big clean and now everything works fine | |||
autrijus | oh. good. I can sleep better. | ||
rg0now | :-) | ||
good night ... | |||
autrijus | :-) | ||
rg0now++ | |||
zzz & | |||
rg0now | bye | ||
stevan | ok, I am now commencing test re-organization :) | 22:54 | |
ok, test re-org is complete | 23:27 | ||
r889 | |||
nothingmuch | ok, quick | ||
format for test -> syn links | |||
i'm thinking L<Sxx/Heading_Name> | 23:28 | ||
with Heading_Name optional | |||
and as a backlink simply a pointer to the line where that was in the test | |||
theorbtwo | I'd like an optional extra / and more specific data. | ||
nothingmuch | also recognize kwid format | ||
theorbtwo | But it'll do for now, so long as headings don't contain slashes. | ||
nothingmuch | and both formats can be lifted from comments, not only docs | ||
stevan | sounds good to me | 23:29 | |
nothingmuch | theorbtwo - the byte line seeks, etc? | ||
theorbtwo | ...though that seems fraglie, so possible escape slashes that are in the heading. | ||
Or at least count of newlines. | |||
nothingmuch | phooey | ||
right now our aim is to get this done quickly | |||
not count newlines | 23:30 | ||
only first slash is significant | |||
theorbtwo: i think this is better defined later | |||
if you have a concrete format, please specify it | |||
and i will conform | |||
theorbtwo | I know, but being forward-compatable is good. | ||
nothingmuch | but i know that I won't be adding that optional data this evening | ||
theorbtwo | Write slashes in headings with... hold on a second while I man pod. | ||
stevan | nothingmuch: what about L<Sxx|heading/with/slashes> | ||
nothingmuch | stevan: err, i think that's too confusing, with | separating display from meaning | 23:31 | |
theorbtwo | Pipe in L is already defined to mean something else. | ||
If head contains slashes, write E<sol> | |||
nothingmuch | i would prefer backslash escaping | ||
stevan | what about the S<> idea? | ||
theorbtwo | OK, or do that. | ||
nothingmuch | or pod style escaping | ||
L<> is a link | |||
theorbtwo | E<sol> is pod-style escape. | ||
nothingmuch | i think S<> was nice for backlinking to tests | ||
from syns | |||
but i'm not sure i like that idea | 23:32 | ||
does anybody know how kwid would do that? | |||
stevan | what about S<> in tests (S for Synopsis) and T<> in Synopsis (T for test) | ||
nothingmuch | ingy: ping | ||
ingy | hi nothingmuch | ||
nothingmuch | stevan: S<> exists... i think we can safely say that L<S##/ is synopses, and L<.*?\.t is a test | ||
but then again, i really don't want to link from synopses to tests | 23:33 | ||
stevan | nothingmuch: ok by me | ||
nothingmuch | i want to autogenerate the synopses given links from tests | ||
(please don't assume i'm the self appointed dictator of the linking process, i just need to pee and am trying to type more concisely ;-) | |||
stevan | nothingmuch: go pee then | 23:34 | |
nothingmuch | ok | ||
stevan | we will wait :) | ||
nothingmuch | =D | ||
theorbtwo retracts a question and just agrees. | |||
I'll ask when you get back. | |||
stevan | ingy: how would you suggest that we link the tests to the syn using kwid? | 23:35 | |
nothingmuch | ok | ||
stevan | nothingmuch: feel better now | 23:36 | |
nothingmuch | well, i still want to get it started and get it over | ||
stevan | agreed | ||
theorbtwo | nm, you're OK with writing E<sol> for a literal slash in a heading? | ||
That's all I want... | |||
nothingmuch | plus i haven't worked on pugs all week | ||
stevan | nothingmuch: really? I could have sworn I saw you in the commit log | 23:37 | |
nothingmuch | theorbtwo: yes, it's valid pod, and it's sigma-complete, so it can be interpreted and converted to anything else given the need | ||
stevan: i mean serious work... and i feel sort of bad for not having time to feel good about helping | |||
one last thing i'd like | 23:38 | ||
lots of testing has to do with corner cases | |||
i would like to embed pattern matches in the things | |||
since headings are unique (sort of, pod warns if they aren't, so that L<> will work) | |||
then a second slash could be a place for arbitrary skip | |||
not so much newlines | |||
but i think this is useful for placing the backlink, or at least a copy of it next to relevant code examples | 23:39 | ||
thus making theorbtwo's suggestions a bit more Q&D | |||
this is very not futureproof though | |||
but i think it's OK if the backlink is placed at the top of the section, with a little message saying 'pattern didn't match section XYZ' | |||
theorbtwo: does this do what you wanted, sort of? | 23:40 | ||
theorbtwo | Yes. | ||
nothingmuch | assuming //s, you can then say \n{4} | ||
theorbtwo | Works pretty well. | ||
\n{4} doesn't do what you want, but yeah, it's quite possible. | |||
# (\n.*?){4} | 23:41 | ||
ingy | hi | ||
nothingmuch | what i suddenly realized isi that tests that work on corner cases have a hard time saying exactly what they do if links are only to headings | ||
ingy | stevan: which way are you linking? | ||
nothingmuch | ingy: tests to synopses | 23:42 | |
with S##(?:/heading_name(?:/pattern_in_heading_section)?)? | |||
inside a L<> | |||
with literal slashes pod escaped | |||
ingy | in pod/kwid, every '=item foo' and every '=headX' forms a link destination | 23:43 | |
nothingmuch | ingy: in this case synopses are assumed to be kwom or pod equiv | ||
what we are worrying about is the formatting of the actual links in the test files | 23:44 | ||
ingy | a link is of the form L<text|page/section> or [text|page|section] | ||
where section is the text from | |||
nothingmuch | and how to format that L<> style link in kwid | ||
in the former is the text mandatory for disambiguation? | 23:45 | ||
theorbtwo | Well, we're forming links in the form L<page/section/regex> | ||
You mean later, I think. | |||
nothingmuch | can you say [|page|section]? | ||
ingy | crap... | ||
nothingmuch | right, latter... /me read the kwid one first and got confused =) | ||
ingy | a link is of the form L<text|page/section> or [text|page/section] | ||
nothingmuch | ok | ||
theorbtwo | ingy, I find the bracket-link syntax you just showed highly confusing... oh, that's much better. | ||
nothingmuch | so in that case we don't care | ||
what about escaping a slash in [] format? | 23:46 | ||
if section contains a slash, in pod theorbtwo found out it should be E<sol> | |||
ingy | not really | ||
it can be the first slash | |||
jabbot | pugs - 889 - commiting the big test restructuring, I | 23:47 | |
ingy | as long as the page has no slash | ||
theorbtwo | Except we're allowing for a third section. | ||
nothingmuch | we're making use of a specification hole to skip forward from the /section till the match after the section happens | ||
ingy | seems like not a great idea | 23:48 | |
nothingmuch | ingy: it's Q&D | ||
ingy | do you have an example of what you are doing | ||
nothingmuch | and it's just meant to sort of fit | ||
nothingmuch is working on an example that will make sense | |||
ingy | cool | 23:49 | |
examples would help | |||
should we SEE triage on it? | |||
nothingmuch | a test for s06 | ||
that's a section name | |||
we could | |||
but i think this better be logged | 23:50 | ||
Required parameters | |||
Pairs may also be passed in adverbial pair notation: | |||
$comparison = numcmp(:x(2), :y(7)); | |||
$comparison = numcmp(:y(7), :x(2)); | |||
that's part of that section | |||
i'm thinking a corresponding test will have L<S06> at the top | |||
and by the specific tests for adverbial pair notation, have a L<S06/Required parameters/adverbial pair notation/ | 23:51 | ||
s#/$/>#; | |||
which will place the backlink right after the line that matches | |||
ingy | I see. You are addressing code blocks within the synopsis, and evaling the code as a test. right? | ||
nothingmuch | so that a user reading the synopsis will be able to look at the test cases for every specific example, subsection, etc | ||
not necessarily code blocks | |||
any arbitrary text, i think, | 23:52 | ||
ingy | why? | ||
stevan | ingy: evaling wont work, the examples are not always complete | ||
ingy | nod | ||
nothingmuch | the point of this shennanigan is to know the status of pugs | ||
you read the synopses | |||
and then you know what is tested | |||
and from there you know what is working and what is not, and what is todo | 23:53 | ||
a major requirement for this to be complete is that it's easy to maintain and create | |||
ingy | nothingmuch: I think a nopasted example or a wiki page is in order | ||
nothingmuch | ok, i'll whip this up | ||
3 minutes please | |||
ingy | tanks! | ||
theorbtwo | NM++ | 23:54 | |
stevan | yes, nothingmuch++ | 23:55 | |
theorbtwo | karma NM | 23:56 | |
jabbot | theorbtwo: NM has karma of 1 | ||
theorbtwo | karma nothingmuch | ||
stevan | karma theorbtwo | 23:57 | |
hmmmm | |||
nothingmuch | perlbot karma stevan | ||
perlbot | Karma for stevan: 16 | ||
jabbot | nothingmuch: theorbtwo has neutral karma | ||
nothingmuch | jabbot: i didn't ask about theorbtwo | 23:58 | |
;-) | |||
stevan | nothingmuch: dont argue with the software :P | ||
nothingmuch | that's an interesting bug, though =) | ||
ok, i did a bit of hypothetical linking from t/subroutines/sub_named_params.t | |||
stevan | nothingmuch++ | 23:59 | |
perlbot karma nothingmuch | |||
perlbot | Karma for nothingmuch: 15 | ||
stevan | perlbot karma theorbtwo | ||
perlbot | Karma for theorbtwo: 8 | ||
nothingmuch | perlbot karma nopaste # lets see if this confuses it ;-) | ||
perlbot | nopaste # lets see if this confuses it ;-) doesn't have any karma |