Prelude was borken (worked around now): sial.org/pbot/11497 | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net Set by autrijus on 4 July 2005. |
|||
nothingmuch | loveliest regex ever: qr/(?!)/ | 00:29 | |
geoffb | OK, with that housekeeping commit, AFK for a bit | ||
svnbot6 | r5330, geoffb++ | Update hack.pod source map: | ||
r5330, geoffb++ | * Add a few missing second-level directories | |||
r5330, geoffb++ | * Reorder a couple clearly out of place directories | |||
r5330, geoffb++ | The question of whether directory sorting should be case sensitive is open | |||
r5330, geoffb++ | to the masses; I didn't make any moves to fix this issue. | |||
nothingmuch | perlmonks.org/?node_id=473596 | 02:18 | |
nothingmuch laughs manically | |||
who needs rules, eh? | |||
stevan | stop showing off your reg-exp-fu and code up the meta-model signatures man!!!! | 02:35 | |
nothingmuch | stevan: sorry, i got distacted all night, and now it's 5:40 | 02:37 | |
first I did a favour for a friend | |||
then I tried to fix something in my server | |||
stevan | and what, I am not a friend? | ||
nothingmuch | at 3:30 or so I found that wonderful perlmonks post | ||
uh, sure you are | |||
stevan starts to cry | |||
the times we shared in Toronto, they meant nothing to you, i can see that now | 02:38 | ||
nothingmuch | uh, i'm sorry baby | 02:40 | |
i was just, uh... | |||
stevan | LOL | ||
nothingmuch | i just felt like writing other people's code, you know? i thought you were OK with that | ||
stevan | your just a dirty stinking code whore, thats all you are :P | 02:41 | |
nothingmuch | it rings better as "i felt like writing code for other people" | ||
nothingmuch burps | |||
stevan | LOL | ||
nothingmuch | good night fair gay camels | 03:21 | |
cm | camels! | 03:37 | |
autrijus | greetings. | ||
cm | herro autrijus | ||
i read half of your paper :) | |||
autrijus | gleetings cm. | ||
cool. :) any comments so far? | 03:38 | ||
cm | i liked to incorporate a lot of cool Haskell stuff into pugs (libraries, parts of the hierarchical library, ..), instead of reinventing the wheel (or so it seems). | 03:41 | |
heck, you even include stuff from Oleg, whose posts i sometimes don't even try to understand :) | |||
autrijus | :) | 03:45 | |
autrijus wonders what wheels have pugs reinvented from the existing libraries | 03:46 | ||
cm listens | 03:50 | ||
autrijus | I can't think of any :) | 03:55 | |
cm | hehe | 03:57 | |
autrijus | @hoogle ((a -> b) -> a) -> a | 04:58 | |
er, wrong channel. | |||
theorbtw1 wonders what @hoogle does. | 05:28 | ||
geoffb | Well, clearly, it hoogles things. I mean, c'mon . . . . | 05:33 | |
lightstep | it looks for standard functions with the given signature | 05:38 | |
theorbtw1 | Oh, nifty. | 05:40 | |
geoffb | autrijus, was this: autrijus.org/svk-overview.png created using a drawing GUI or a drawing language? If the latter, which one, and can we see the source? | 05:42 | |
obra | It was created with Visio | 05:43 | |
geoffb | bah | ||
I was hoping for a very evolved version of pic | 05:44 | ||
"Real men write Postscript by hand." :-) | 05:45 | ||
dudley | www-users.cs.york.ac.uk/~ndm/hoogle/ | ||
that's pretty damn cool. | |||
www.hoogle.net/ is probably not what you want, though :-) | 05:46 | ||
Or maybe it is, I don't really want to know ;-) | 05:47 | ||
My last few googles from things I've learned here have been pretty NSFW. First sexy typing, now hoogle... | 05:48 | ||
geoffb | NSFW? | ||
dudley | Not Safe For Work | 05:49 | |
geoffb | ah | ||
geoffb works from a home office, so very little is NSFW. :-) | |||
OK, getting tired, so going to bust off now. | 05:50 | ||
G'night all. | |||
(That would be autrijus' cue to start up several long interesting conversations so that I come back to a thousand line backlog . . . .) | |||
06:03
theorbtw1 is now known as theorbtwo
|
|||
theorbtwo | Southen, what could 5`m be that would avoid having a class or function named m, and have m not be the match operator? | 06:03 | |
Only a macro, right? | |||
masak | ?eval (any(1..10) == any(10..19)) | 09:29 | |
evalbot6 | bool::false | ||
masak | eh? | ||
gaal | ?eval (any(1..10) ~~ any(10..19) | 09:30 | |
evalbot6 | Error: unexpected end of input expecting adverbial block, term postfix, operator, ">>=:=<<", ">>!=<<", ">>==<<", ">><=<<", ">>>=<<", ">>~~<<", ">>!~<<", ">>eq<<", ">>ne<<", ">>lt<<", ">>le<<", ">>gt<<", ">>ge<<", ">><<<", ">>><<", "\187=:=\171", "\187!=\171", "\187==\171", "\187<=\171", "\187>=\171", "\187~~\171", "\187!~\171", "\187eq\171", "\187ne\171", "\187lt\171", "\187le\171", "\187gt\171", "\187ge\171", "\187<\171", "\187>\171", "=:=", "!=", "==" | ||
gaal | ?eval (any(1..10) ~~ any(10..19)) | ||
evalbot6 | bool::false | ||
gaal | ?eval ?(any(1..3) ~~ any(3..5)) | 09:31 | |
evalbot6 | bool::true | ||
gaal | ?eval ?(any(1..10) ~~ any(10..19)) | ||
evalbot6 | bool::true | ||
gaal | ?eval (any(1..10) ~~ any(10..19)) | ||
evalbot6 | bool::false | ||
gaal | oops :) | 09:32 | |
masak, looks like a pugsbug to me... | |||
add a t? | |||
(brb) | |||
masak | sure, just a sec | 09:34 | |
ok, slight problem :) | 09:37 | ||
i wrote is(any(1..10), any(10..19), 'Should not return bool::false because 10 == 10'); | 09:38 | ||
and it runs 100 tests :) | |||
how to get around that? | |||
ah, i think i know | |||
gaal | ok(any == any), i think | ||
masak | i moved the comparison out into an assignment | 09:39 | |
but your idea is better, hold on | |||
gaal | that also works :) | 09:40 | |
masak | strange | 09:41 | |
my test passes | |||
gaal | probably because of this: | ||
?eval ?(any(1..10) ~~ any(10..19)) | |||
evalbot6 | bool::true | ||
gaal | it looks context dependent. | ||
(note the ?) | 09:42 | ||
masak | darn | ||
so how do i cause the faulting context? | |||
(without making 100 tests) | |||
gaal | heh, well, you can choose a smaller range :-P | 09:43 | |
but let's see. | |||
masak | :) | ||
gaal | how did you encounter this? | 09:44 | |
masak | ?eval (any(1..10) ~~ any(10..19)) ~~bool::true | ||
evalbot6 | bool::false | ||
masak | as usual, just playing around with pugs | ||
gaal | because on the command line things like "say if ..." don't reproduce it. | ||
masak | every time i touch pugs i encounter a bug | ||
gaal | once again, because boolean context | 09:45 | |
sure, but *where* did you find it? just here on evalbot? | |||
masak | no, on my command line | ||
playing around | 09:46 | ||
i just wanted to see if any(1..10) == any(10..19) | |||
which i still believe it is | |||
?eval (any(1..10) == any(10..19)) ~~ bool::true | 09:47 | ||
evalbot6 | bool::false | ||
gaal | ?eval (any(1..3) == any(3..5)).perl | 09:48 | |
evalbot6 | '((bool::false) | (bool::false | bool::true))' | ||
gaal | that reduces to truth. | ||
masak | ?eval (any(1..3) == any(3..5)).perl ~~ bool:true | ||
evalbot6 | Error: No compatible subroutine found: "&bool" | ||
masak | oops | ||
?eval (any(1..3) == any(3..5)).perl ~~ bool::true | 09:49 | ||
evalbot6 | bool::false | ||
masak | hey! | ||
gaal | nah, that's obvisouly not the right approach -- .perl gives a string | ||
masak | yes, but ~~ | ||
gaal | ?eval "str" ~~ bool::true | ||
masak | i thought that was the ultimate hand-waving operator | ||
evalbot6 | bool::false | ||
masak | ?eval "bool::true" ~~ bool::true | ||
evalbot6 | bool::false | 09:50 | |
masak | ah | ||
ok | |||
is there a "reduce to truth or falsity" sub or something | 09:51 | ||
? | |||
gaal | "?" :) | ||
masak | ah | 09:52 | |
it took me a while to realise that the question mark was in fact the answer :P | |||
gaal | hofstadter would be pleased | 09:53 | |
masak | indeed | ||
lightstep | gaal, nothingmuch invited me to your house, or something like that | ||
masak | ?eval (any(1..10) == any(10..19)) | 09:54 | |
evalbot6 | bool::false | ||
gaal | you are indeed invited :) let me write up the, uh, announcement! | ||
masak | thing is, i don't get this on the prompt | ||
i get any(VJunc any(VBool False),VJunc any(VBool False,VBool True)) | |||
which is just ast for ((bool::false) | (bool::false | bool::true)) | |||
gaal | yup | 09:55 | |
i don't know, this is weird. | |||
masak | so the faulty context is evalbot6 | ||
lightstep | i get the same result here | ||
masak | evalbot6, get a grip! | ||
i often wondered, who compiles evalbot6, and how often? | 09:56 | ||
how do i chech if evalbot6 is compiled from the latest rev? | 09:57 | ||
gaal | iblech, and manually i hope. | ||
lightstep | ?eval ? (any(1..10) == any(10..19)) | ||
evalbot6 | bool::true | ||
gaal | ?eval $?PUGS_VERSION | ||
evalbot6 | \'Perl6 User\'s Golfing System, version 6.2.7, June 13, 2005 (r5334)' | 09:58 | |
gaal | svnbot appears to be down btw | ||
lightstep | it's relatively updated | ||
masak | i still haven't committed a test, because i can't reproduce it outside of evalbot6 | ||
lightstep: it's completely updated | 09:59 | ||
june 13 is the release date of 6.2.7 | |||
gaal | look at the r number. | 10:00 | |
lightstep | i have r5304 | ||
gaal | HEAD is 5334 :-) | 10:01 | |
question is which evalbot is actually running. | |||
lightstep | ok. my connection is weak | ||
masak | well, if evalbot6 says it's from r5334 i have no choice but to trust it | 10:02 | |
this is weird | |||
it's 2005 | |||
and i'm actually trying to reason with a program | |||
wow | |||
?eval my $a = (any(1..2) == any(2..3)); ?($a.perl) | 10:04 | ||
evalbot6 | bool::true | ||
masak | that's something | ||
gaal | masak: see /home/roo/src/pugs/examples/network/evalbot/README.pod | ||
masak | oki | ||
gaal | er, only without my local path part :-) | ||
masak | sure :) | ||
lightstep | ?eval my $a = (any(1..2) == any(2..3)); ?$a | ||
gaal | evalbot spawns a p5 helper | ||
evalbot6 | bool::true | ||
gaal | which spawns pugs | ||
lightstep | you don't need .perl | 10:05 | |
gaal | so if there's a bug in evalbot itself that's been fixed, even if it runs a new pugs then you may not see the fix until the bot is restarted. | ||
masak | lightstep: thx | ||
gaal: so i'm chasing a bug that's already fixed? | 10:06 | ||
gaal | no idea | ||
:-) | |||
masak | there should be a way to reastart evalbot6 from here :) | ||
gaal | ?eval my $a = (any(1..2) == any(2..3)); $a | ||
evalbot6 | \((bool::false) | (bool::false | bool::true)) | ||
masak | when is such a value ever useful? | 10:07 | |
gaal | oh, ? forces the reducion. of course. | ||
masak | i want it to collapse | ||
on its own | |||
but maybe that is Wrong, i dunno | |||
lightstep | doesn't it collapse in boolean contexts? i think that keeping the result for a while is good | 10:08 | |
masak | gaal: who runs evalbot6? | ||
gaal | iblech | ||
masak | lightstep: but what can one use that result for? all it means is really cool::true | ||
gaal | he's away for a few days i think. | ||
masak | oh no | ||
:( | 10:09 | ||
gaal | cool::true is neat. | ||
masak | the suspense is killing me! | ||
cool:true is my own coolnary logic system :) | |||
gaal | lol | ||
lightstep | map (uncurry (==)) [(1,2), (1,3), (2,2)] is [False, False, True] | ||
gaal | nouveau cuisine is a culinary logic system. | 10:10 | |
lightstep | that's how i think about comparing sets | ||
masak | bool::mu | ||
gaal | bull::moose | 10:11 | |
masak | the possibilities are endless | ||
gaal | hmm, why uncurry and not reduce? | ||
masak | ?eval sub f { return not f } f() | 10:12 | |
lightstep | what's reduce? | ||
evalbot6 | (no output) | ||
masak | should return bool::mu :) | ||
gaal | because arity is fixed? | ||
lightstep | uncurry (==) is a function that compares elements of a pair | ||
gaal | reduce f list can be thought of as l_1 `f` l_2 `f` l_3 ... | 10:13 | |
lightstep | oh, it's foldl' in haskell | ||
masak | yes | ||
gaal | lightstep: there's a metaoperator for this in perl 6. | 10:14 | |
$sum = [+] @values | |||
svnbot6 | r5335, autrijus++ | * handle class literals as the invocant to .isa(). | ||
gaal | hey, svnbot skipped some commits. | ||
lightstep: there's a wonderful post by damian with ten examples of how useful this is. | 10:15 | ||
autrijus, ping | |||
lightstep | the Haskell Standard Prelude contains "sum = foldl (+) 0", we recognize it's extremely useful | ||
GvD doesn't like these operators, though | |||
gaal | GvD? | 10:16 | |
lightstep | s/D/R/ | ||
gaal | GvR? | ||
lightstep | guido var rossum, the python guy | ||
gaal | ahh yes. | ||
lightstep | anyway, the uncurry in my example was a glue operator, to maake things typecheck | 10:17 | |
gaal | www.mail-archive.com/perl6-all@perl...49653.html | 10:18 | |
er, one above it in the thread actually | |||
www.mail-archive.com/perl6-all@perl...49651.html | |||
3, 8, and 9 are beautiful | 10:20 | ||
masak | yes | 10:21 | |
masak likes conway's style of writing | |||
lightstep | i don't fully understand 3, but that's a syntax problem | 10:22 | |
gaal | oh, they made hash deref a method. | ||
masak | perl 6 has a way of making one dizzy... "they made hash deref a method" | 10:23 | |
that's like saying "they made reduce into a metaoperator" | 10:24 | ||
gaal | $apartment_no = $employees<4262><contact_info><home_address><apt_no> | ||
lightstep | can you use functions in the operator slot of a metaoperator? | 10:25 | |
masak | good question | 10:26 | |
gaal | sub get_apt_no_by_emp_id ($id) { [.{}] $employees, <<$id contact_info home_address apt_no>> } | ||
an operator is just an infix function | |||
(of course that example is completely contrived :-) | |||
hmm, but you're asking about the other direction | 10:28 | ||
autrijus said something about perl 6 not having `...` | |||
lightstep | oh | 10:29 | |
gaal | (if i was understanding correctly) | ||
masak | gaal: perl 6 not having `...`? | 10:30 | |
what does that mean? | |||
lightstep | `...` turns a function into an infix op in haskell | ||
masak | aha | ||
gaal | masak: in Haskell, you can take any function and use `...` syntactic sugar to apply it in infix form | ||
meh, too slow :) | |||
masak | so the perl 6 `...` is another `...` | ||
same syntax, different semantics | 10:31 | ||
or something | |||
gaal | lightstep's answer is actually subtly better than mine, because it doesn't imply the function needs to be immediately applied | ||
lightstep | what's `...` in perl6? | ||
masak | a way to say "not important right now" inside function bodies etc | 10:32 | |
lightstep | actually, it has to be applied (or be used in a section) | ||
masak | or rather, "not declared until later" | 10:33 | |
gaal | hold on, possible confusion. there's an ellipses in p6: ... | ||
masak | gaal: exactly | ||
gaal | and the's infix in Haskell: `` | ||
masak | aha! | ||
gaal | lightstep: masak was talking about the dots | ||
masak: lightstep was talking about the quotes. | |||
:-) | |||
lightstep | yes | ||
masak | misunderstanding of the day | ||
lightstep | i got it now | ||
masak | hofstadter would be pleased :) | 10:34 | |
gaal | i feel like a marriage counsellor | ||
masak | shut up :) | ||
lightstep | yes, he would. perl6 is really close to what he portrays | ||
gaal | i will, after you write that check :-P | ||
masak writes check | 10:35 | ||
now shut up :P | |||
gaal | :) | ||
lightstep | i don't get perl syntax: "aaa 4, 6" works, but "aaa (4, 6)" doesn't | ||
gaal | huh? f'course it does. | 10:36 | |
lightstep | sub aaa ($x, $y) {$x + $y} | ||
aaa (4, 6) | |||
*** Extra space found after &aaa (...) | |||
gaal | aaah | ||
in perl 6, some whitespace was banned | 10:37 | ||
?eval sub aaa ($x, $y) {$x + $y} aaa(4, 6) | |||
evalbot6 | 10 | ||
gaal | ?eval sub aaa ($x, $y) {$x + $y} aaa (4, 6) | ||
evalbot6 | Error: Extra space found after &aaa (...) -- did you mean &aaa(...) instead? | ||
lightstep | also, pugs answers by the last response when i define a sub (instead of replying with undef) | 10:38 | |
gaal | i actually forgot this rule applied to func applications. | ||
masak | aaa .(4, 6) should work fine | ||
gaal | true. | ||
lightstep, give an example? | 10:39 | ||
because above you see a successful definition with a space | |||
masak | ?eval sub aaa ($x, $y) {$x + $y} aaa .(4, 6) | ||
evalbot6 | Error: Extra space found after &aaa (...) -- did you mean &aaa(...) instead? | ||
masak | hunh? | ||
lightstep | perlbot paste | ||
perlbot | Paste your code and #perl will be able to view it: sial.org/pbot/perl dragon.cbi.tamucc.edu:8080 erxz.com/pb | ||
masak | gaal: the above should work, right? | 10:40 | |
lightstep | erxz.com/pb/783 | ||
gaal | i think so, but no idea about implementation status in pugs. | ||
masak | ?eval sub aaa($x, $y) {$x + $y} aaa .(4, 6) | ||
evalbot6 | Error: Extra space found after &aaa (...) -- did you mean &aaa(...) instead? | ||
masak | ok | ||
gaal | aah, l, i misunderstood what you were saying this time. interesting bug. | 10:42 | |
hard to write a test for :-) | |||
well, w/o piping and stuff at least. | |||
lightstep | yes, quite | ||
masak | gaal: what bug are we talking about? | ||
gaal | masak: erxz.com/pb/783 | ||
masak | oki | 10:43 | |
lightstep | actually, it depends how the shell works. maybe 'sub ...' evals to the last result in some context? | ||
masak sees bug | |||
woah | |||
lightstep | i might be a misfeature, not a bug | ||
masak | lightstep++ # for finding it | ||
lightstep: what's the difference? | 10:44 | ||
google define finds nothing on "misfeature" | |||
lightstep | you don't want to fix a misfeature | ||
masak | you don't? | ||
why should it return 2? | |||
gaal | l: we can runInteractiveCommand from perl so it is in fact testable, though awkwardly. | ||
lightstep | if @svn decide that it's good, it'll be a feature. not intended, hence mis- | 10:45 | |
masak | "@svn"? | ||
lightstep | the pugs commiters | ||
masak | (there's no "misfeature" wikipedia article) | ||
lightstep: ah | 10:46 | ||
"@svk", too, maybe | |||
:) | |||
and "@darcs" | |||
lightstep: seems unlikely though that the pugs committers would find this particular feature to be good | 10:48 | ||
to me it just seems strange | |||
lunch | 10:53 | ||
& | |||
rafl | How do I push hashes into arrays? | 11:01 | |
gaal | doesn't the p5 method work for you? push a reference. | ||
?eval my @arr = <a 1>; my %h = <one 1>; @arr.push(\%h); @arr.perl | 11:02 | ||
evalbot6 | '[\'a\', \'1\', ((\'one\' => \'1\'))]' | ||
gaal | hmm, that's not right. | ||
%h got flattened. | 11:03 | ||
rafl | Well, @array.push({Foo => 'bar'}) gives me an other data structure than %hash = (Foo => 'bar'); @a.push(%hash); | ||
gaal | ?eval my @arr = <a 1>; my %h = <one 1 two 2>; @arr.push(\%h); @arr.perl | 11:04 | |
evalbot6 | '[\'a\', \'1\', ((\'one\' => \'1\'), (\'two\' => \'2\'))]' | ||
gaal | that's a list of pairs instead of a hash :-( | 11:05 | |
?eval my %h = <one 1 two 2>; %h.perl | |||
evalbot6 | '{(\'one\' => \'1\'), (\'two\' => \'2\')}' | ||
gaal | my %h = <one 1 two 2>; %h | ||
?eval my %h = <one 1 two 2>; %h | 11:06 | ||
evalbot6 | {('one' => '1'), ('two' => '2')} | ||
rafl | ?eval my @a = (); my %h = <a b c d>; @a.push(%h); @a.perl | ||
evalbot6 | '[(\'a\', \'b\'), (\'c\', \'d\')]' | ||
rafl | Hm.. | ||
gaal | ?eval my %h = (one => 1, two => 2); %h | 11:07 | |
evalbot6 | {('one' => 1), ('two' => 2)} | ||
rafl | ?eval my @a = (); my %h = <a b c d>; @a[0] = %h; @a.perl | ||
evalbot6 | '[{(\'a\' => \'b\'), (\'c\' => \'d\')}]' | ||
gaal | that's correct | ||
rafl | That's what @a.push(%h) should produce, right? | ||
gaal | i believe it is. | 11:08 | |
well | |||
rafl | So why doesn't it work then? | ||
gaal | that's what @a.push(\%h) should produce | ||
i'm not actually sure about %h | |||
rafl | ?eval my @a = (); my %h = <a b c d>; @a.push(\%h); @a.perl | ||
evalbot6 | '[((\'a\' => \'b\'), (\'c\' => \'d\'))]' | ||
rafl | So, what's the right way to do it with push? I'd like that more than @a[-1] = %h; | 11:15 | |
gaal | dunno. looks like there's a bug here, but i'm not sure where it is. | 11:16 | |
rafl | Why do I get Can't modify constant item: VUndef? The line is "@:arr = ();". It's declared with "has @:arr;" | 11:27 | |
gaal | are you in a method? | 11:28 | |
?eval class F; has @:a; method x { @:a = () } F.new.x; say "alive" | |||
evalbot6 | Error: No compatible subroutine found: "&say" | ||
gaal | class F; has @:a; method x { @:a = () } F.new.x; "alive" | ||
?eval class F; has @:a; method x { @:a = () } F.new.x; "alive" | 11:29 | ||
evalbot6 | 'alive' | ||
rafl | Yes: method load_parsers (::?CLASS ::class: Str ?$dir, ?$file) { | ||
It doesn't even work with has @:a is rw; | 11:32 | ||
gaal | nopaste more context? that does workforme... | ||
rafl | nopaste.debianforum.de/549 | 11:35 | |
lightstep | how is `make test' called? | 11:36 | |
gaal | lightstep, what do you mean? just 'make test' from the command line | ||
rafl | Well, no. In my script I call it as ::Foo.bar(); But it resuls in the same error. | ||
gaal | or if you want the fancy graph output, make smoke | ||
hmm, 'has' is for memebers | 11:37 | ||
looks like it's being invoked as a class method in your case | 11:38 | ||
so there is no @:a | |||
rafl | Yes, it's ought to be. | ||
Oh. How can I declare class variables? | |||
gaal | you need 'my @a', and pugs needs a better error message. :-) | ||
i don't know how to autogenerate accessors for class variables like has does for members. | 11:39 | ||
rafl | Hm. If my class is named Foo everything works now. If I call it Foo::Bar I can't call methods on it: ::Foo::Bar.bar() results in No compatible subroutine found: "&bar" | 11:50 | |
gaal | autrijus was working on some qualification fix, but there were problems with it so it was reverted. i don't know if it was related to things like this. | 11:53 | |
rafl | Hm. Writing perl6 code is really pain at the moment. | 11:55 | |
gaal | it's more like making love with an injured knee. pleasurable so long as you make no wrong moves. | 11:56 | |
12:01
Aankh|Clone is now known as Aankhen``
|
|||
wolverian | you mean no right moves :) | 12:06 | |
Aankhen`` | An array or hash in scalar context is supposed to evaluate to a reference to itself, so `push(@a, %h)` in Perl 6 ought to be equivalent to Perl 5's `push(@a, \%h)`... | 12:11 | |
?eval [~] ('a', 'b', 'c', 'd') | 12:12 | ||
evalbot6 | 'abcd' | ||
theorbtwo | At least in p5, the second argument of push isn't scalar context. | 12:13 | |
push (@push_into, *@to_push) | 12:14 | ||
Aankhen`` | I am talking about direct equivalence, not equivalent functions. | ||
Perhaps it's better illustrated by this: `foo(@bar)` in Perl 6 is equal to `foo(\@bar)` in Perl 5. | 12:15 | ||
And the same applies for %bar. | |||
s/applies for/applies to/ # I need sleep | |||
?eval sub foo () { return [~] ("a", "b", "c", "d") }; foo() | 12:16 | ||
evalbot6 | 'abcd' | ||
gaal | oh, hi Aankhen``, did you see seek? | 12:27 | |
svnbot6 | r5336, Aankhen++ | * HTTP::Message: excuse to use reduce metaoperators. | ||
theorbtwo | Nice commit message, Aankhen``. | 12:32 | |
gaal | perl.org.il/pipermail/perl/2005-July/007258.html # Tel-Aviv Pugs Hackathon invite | 12:33 | |
theorbtwo | 404. | 12:35 | |
Nevermind. | |||
gaal | something funny happened in the formatting there. | ||
theorbtwo wonders why he can draw &, but not {...}, on paper. | 12:38 | ||
castaway_ | you can you silly nelly | 12:39 | |
theorbtwo | (I can even do a passable Ā£.) | 12:40 | |
If you do, or don't, have 802.11, you might want to explicitly mention it. | |||
gaal | half of what i explicitly mentioned was an ethernet patch *cable* :-) | 12:41 | |
theorbtwo | True enough. | 12:43 | |
gaal | but i'll make a point of mentioning it again when people write to get contact info | 12:44 | |
theorbtwo | I know nothingmuch lives on his 802.11. | ||
gaal | i'm sure his fancy new laptop features an rj-45 connector. :) | 12:45 | |
theorbtwo | So am I. | ||
theorbtwo shrugses. | |||
Oh, I forgot he had to get a new one. | |||
gaal | if someone brings a wifi router, cool | ||
greetings nothingmuch | 12:54 | ||
nothingmuch | hola | 12:55 | |
Limbic_Region | seen autrijus | 13:28 | |
jabbot | Limbic_Region: autrijus was seen 8 hours 29 minutes 15 seconds ago | ||
nothingmuch_ | Limbic_Region: the node we talked about - it's been done | 13:32 | |
473610 | |||
13:32
nothingmuch_ is now known as nothingmuch
|
|||
Limbic_Region | ahh, will have a look - thanks | 13:40 | |
was still getting caught up with morning email | |||
clkao | t | 13:41 | |
svnbot6 | r5337, gaal++ | correct sig for Pugs::Internals::hIsOpen | 13:52 | |
gaal | random statistic of the day: autrijus has made 2000 commits to pugs. | 14:43 | |
lightstep | exactly? | 14:44 | |
gaal | yup. | ||
Nattfodd | that's not random at all | 14:45 | |
lightstep | not stochastic, random | 14:46 | |
as in "random arrests by the government" | |||
gaal | you may also be interested to know that to date, iblech has made sixty-three trillion commits. | 14:48 | |
svnbot6 | r5338, autrijus++ | * Repair user-defined operators; it was broken due to the | ||
r5338, autrijus++ | namespace fix in r5168. As a side effect, infix operators | |||
r5338, autrijus++ | defined in other modules no longer creep into main. | |||
gaal | ...see, my statistics aren't worth much. | ||
autrijus, there-p? | 14:49 | ||
autrijus | yes | 14:50 | |
gaal | hey. :) | ||
autrijus | hey. :) | ||
Limbic_Region | autrijus - did you see that I modified the spaceship operator tests? | ||
gaal | so is the pugscc problem harder than was hoped? | ||
autrijus | in Set.pm there is something like | ||
Limbic_Region | s/operator/parsing/ | ||
there is still a bug | 14:51 | ||
but when you changed the tests to 0, the tests passed | |||
autrijus | method prefix:<___> { ... } | ||
(just an example) | |||
Limbic_Region | or rather - from -1 to 0 | ||
autrijus | I'm wondering the visibility of that operator | ||
should it affect everything that uses Set (a kind of "silent export")? | |||
or something more insidious? | |||
gaal | also, i was about to ask if you could help me make sense of sexy types but it appears that i'm being abducted by friends to the beach, so that will have to wait :-) | 14:52 | |
autrijus | gaal: no, it wasn't harder than hoped, it's just I never got the sanity to look at it | ||
gaal | yes, sanity is scarce around these parts. | ||
autrijus | gaal: my sanity window is still in short supply :-/ | ||
gaal: I think I can explain sexy types in 10 mins if you have it | |||
if not that'd need to wait :) | |||
gaal | nominally i have six, but we're lucky: my friends are chrinically late. | 14:53 | |
autrijus | heh. | ||
okay, let's start | |||
gaal | i have the sexy types paper in front of me. | ||
autrijus | oh cool. | ||
gaal | not the pyton-jones one, the summary one. | ||
by Chung-chieh Shan | |||
autrijus | right, by ccshan | 14:54 | |
so let's look a simple one | |||
gaal | Peyton. Dangerous typo. | ||
okay | |||
autrijus | Pugs.AST.Internals doPair | ||
stare at its type | |||
doPair :: Val -> (forall a. PairClass a => a -> b) -> Eval b | |||
do you already grok why it can't be written as | 14:55 | ||
doPair :: PairClass a => Val -> (a -> b) -> Eval b | |||
? | |||
gaal | no, that's exactly what stumped me | ||
i've vaglue seen something about the forall being more generic, but i can't see why | 14:56 | ||
autrijus | ok. the second way is like | ||
doPair :: forall a. PairClass a => Val -> (a -> b) -> Eval b | |||
s/like/actually/ | |||
gaal | okay, so forall lets you quantify more tightly | 14:57 | |
but what difference does it make practically? | |||
s/quanitify/specify the predicate, or limit the class/ | |||
lightstep | that would allow you to pass as the second parameter a function of type (VPair -> Foo) | 14:58 | |
whereas in the first version, the second parameter is always a function that can accept anything in PairClass | |||
autrijus | right. | ||
1) doPair :: Val -> (forall a. PairClass a => a -> b) -> Eval b | |||
2) doPair :: forall a. PairClass a => Val -> (a -> b) -> Eval b | 14:59 | ||
in 2, the function must handle every PairClass types | |||
that's what the "forall a." in the outermost scope means | |||
in 1, as long as your function can handle any one PairClass type, you're fine | |||
i.e. as long as there exists _one_ PairClass type it can handle | 15:00 | ||
iirc that's why it's called existential quantification | |||
gaal | hmmm | ||
autrijus | let's look at Emit.PIR vop1coerce | 15:01 | |
gaal | why won't (VPair -> Foo) work? | ||
autrijus | oh, because sometimes you want to pass in (IPair -> Foo) | ||
or some other thing in PairClass | |||
gaal | to take lightstep's example | ||
no, i mean | |||
why does the signature exclude that from working? | |||
#2 | 15:02 | ||
autrijus | you mean in 2.? | ||
gaal | yes | ||
autrijus | let's see | ||
Prelude> :t negate | |||
negate :: forall a. (Num a) => a -> a | |||
hm, bad example | |||
gaal | hoogle :) | ||
autrijus | Prelude> :t subtract | 15:03 | |
subtract :: forall a. (Num a) => a -> a -> a | |||
much better. | |||
now consider | 15:04 | ||
gaal | this looks like it accepts any two (a :: Num)s, and returns... an (a::Num) | ||
(duh) | |||
autrijus | foo :: (forall a. Num a) -> (forall a. Num a) -> (forall a. Num a) | ||
gaal | what's with the forall then? | ||
autrijus | in the subtract signature, all three a must agree | ||
gaal | oh, now they can be *different* Nums? | ||
autrijus | in the foo signature, none of them have to agree | ||
yup | |||
gaal | right. | ||
autrijus | so it can be instantiated by Int->Double->Float | 15:05 | |
or something like that | |||
gaal | okay: but in the case of our original #1 and #2, what is there to agree? there';s only one arg quantified. | ||
autrijus | consider the type | ||
foo :: forall a. Num a => (a -> Int) -> Int | 15:06 | ||
gaal | ok | ||
autrijus | and you call it with | ||
bar :: Int -> Int | |||
foo bar | |||
it ought to fail | |||
because foo should work on all Num types | |||
not only Int | |||
but bar only handles Int | |||
so it can't unity | 15:07 | ||
gaal | aahh | ||
autrijus | unify | ||
lightstep | actually, you mixed it. foo bar (like this) would work | ||
autrijus | oh. hm? | ||
lightstep | if the forall was /inside/, it wouldn't work | ||
autrijus | oh. right. | ||
autrijus professes sleepiness | |||
lightstep: how about you carry on the explanation :) | |||
lightstep | ok | ||
if you instantiate foo with a=Int, you can call foo bar | 15:08 | ||
gaal | okay. | ||
lightstep | quux :: (forall a. Num a => a) -> Int | ||
you can't instantiate quux with a=something, since the forall isn't on the top level | |||
gaal | yes, okay. | 15:09 | |
hmm. | |||
autrijus | the error would be | ||
Couldn't match the rigid variable `a' against `Int' | |||
`a' is bound by the polymorphic type `forall a. (Num a) => a -> Int' | |||
at <interactive>:1:0-7 | |||
lightstep: so I think you mixed it from the beginning too | 15:10 | ||
gaal | so when is such a signature useful? only when you give it a higer-order function? (*waves hands*) | ||
lightstep | autrijus, i don't know where you were getting at | ||
autrijus | #1 can't accept (VPair -> Foo) | ||
gaal | or is that just an example of a useless function? | ||
autrijus | whilst #2 could | ||
lightstep: or am I still too confused? | |||
lightstep | that's correct | 15:11 | |
autrijus | good, now we agree, let's move to the next step | ||
gaal | i'm in vop1coerce | ||
autrijus | ok | 15:12 | |
note that reg0 is used in two places | |||
once as LValue and once as Expression | |||
gaal | vop1coerce :: SubName -> (forall a. RegClass a => a) -> Decl | ||
autrijus | (reg0 is the one with the polymorphic type) | ||
gaal | yes | 15:13 | |
autrijus | in vop2x | ||
(the one after it) | |||
regr, reg0, reg1 are all used independently | 15:14 | ||
gaal | but twice in the body. hmm, this is a list - i read somewhere that you can get lists with seemingly differnt typed things usind these types | ||
autrijus, independently == may have different actual types? | |||
autrijus | right. | 15:15 | |
as they often do | |||
gaal | and still make it into a list. okay. | ||
autrijus | so let's go back to your orig question | ||
you'd like to unify two functions | |||
which ones were they again? | |||
somewhere in Prim? | 15:16 | ||
gaal | Prim.hs 573 | ||
autrijus | op1IOBool | ||
gaal | the comment a few lines above that is your suggested code | ||
my goals: | |||
make the function (first argument) more parametric | |||
autrijus | right. | ||
gaal | not hardcode VBool | ||
autrijus | (forall a. Value a => Handle -> IO a) | ||
and replace VBool with castV | 15:17 | ||
gaal | oh, that works because castV hides the magic | ||
autrijus | and in this case, since there's only one arg | ||
gaal | what could i do if i didn't have castV and wanted to pass VBool as an arg? | ||
what's :t VBool again? | 15:18 | ||
autrijus | Bool -> Val | ||
gaal | oh, of course. | ||
autrijus | so something like | ||
gaal | (wanring: friends with beer and seashore intents approaching.) | ||
autrijus | op1IOCast :: (Handle -> IO a) -> (a -> Val) -> Val -> Eval Val | ||
would do nicely | |||
in that case then, there's no need to existentials | |||
as the two "a" always unify | |||
(as they should) | |||
gaal | right. | 15:19 | |
autrijus | (since you are using the second to cast the first) | ||
gaal | yes, i see that | ||
cool. | |||
now, just a syntax querstion really | |||
autrijus | but if you are using castV on two different arguments | ||
gaal | how do i unify the two lines? | ||
oh, with a lambda of course | |||
autrijus | which two lines? | ||
gaal | it's just a do-expression thing. | ||
of the function body | 15:20 | ||
i didn't like having to use <- fromval | |||
wanted to pointfree this | |||
autrijus | well if you want to be pointless | ||
fmap castV . liftIO . fun =<< fromVal v | |||
you can even eliminate the v | |||
or even the fun | |||
gaal | and val itself is | ||
yeah | |||
autrijus | but that is left as an exercise to lambdabot | 15:21 | |
gaal | "eta reducable", right? :-) | ||
reducible even. | |||
cool. | |||
beer+beach! | |||
autrijus | enjoy :) | ||
gaal | thanks! :-) | 15:22 | |
autrijus | oh well. turns out it does not have much to do with sexy types :) | ||
(I thought you were going to pass something that reacts to all Value a types) | |||
gaal waves & (honey, i'm a little tired for sexy types.. not tonight, okay?) | |||
autrijus | lol | ||
enjoy! | |||
gaal | :) bye | ||
autrijus | (note to self: do not try to explain higher rank typing when sleepy) | 15:23 | |
whiteg | autrijus: you should go to bed if you're sleepy. | 15:29 | |
svnbot6 | r5339, autrijus++ | * export all overloaded Set operators. | ||
autrijus | whiteg: that is an excellent suggestion. | 15:34 | |
Limbic_Region | autrijus - if you haven't gone to sleep yet | 15:36 | |
$larry just said some nice words about Pugs | |||
perlmonks.org/index.pl?node_id=473689 | |||
oh - and the whole spaceship parsing bug(s) too - but that is important right now | 15:37 | ||
autrijus | well, seeing that it's important, I'll look at it | 15:38 | |
hm, why do you think it's -1? | |||
I think it's clearly 0 | |||
because you're comparing two list references numerically | |||
and arrayrefs numify to length | |||
and indeed they are of same length | |||
is it really a parsebug? | 15:39 | ||
Limbic_Region | wait a minute | ||
maybe I forgot the infix + | |||
Limbic_Region is absent minded sometimes | |||
as that wasn't supposed to be list length compare | |||
but infix sum | |||
autrijus | (Stoop) if you are abcedminded, to this claybook, what curious of signs (please stoop) in this allaphbed! | 15:40 | |
Limbic_Region | ok - it is indeed my fault | ||
autrijus | oh. but still -- if it's parsed as derefing with '=' as hash | ||
Limbic_Region | though I think the bug is still there | ||
let me fix the tests | |||
autrijus | pugs> :d %ball{10..12} <=> %ball{1..3} | ||
App &infix:<=> (: | |||
Syn "{}" {Var "%ball"; | |||
App &infix:.. (: 10, 12)}, | |||
Syn "{}" {Var "%ball"; | |||
App &infix:.. (: 1, 3)}) | |||
that looks entirely correct | |||
same for the next line | 15:41 | ||
Limbic_Region | hang on | 15:43 | |
testing | |||
ok | 15:44 | ||
would you like me to nopaste | |||
perlbot nopaste | |||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "Limbic_Region" at 24.35.57.240 pasted "Parsing spaceship possible bugs" (65 lines, 2.5K) at sial.org/pbot/11643 | 15:45 | |
Limbic_Region is going to commit as he needs to go get breakfast | 15:46 | ||
if they are bugs with my understanding - my apologies | |||
autrijus | commit first speak later :) | ||
note that [+] is lower prec | |||
being listop | 15:47 | ||
so | |||
[+] %ball{10..12} <=> [+] %ball{1..3} | |||
is parsed as | |||
[+] (%ball{10..12} <=> ([+] %ball{1..3})) | |||
but that is as expected | |||
and nothing related to spaceship per se | |||
Limbic_Region | so I think perhaps my bug isn't a bug if it is a precendence issue | ||
autrijus | nod. try putting parens around ([+] %ball{10..12} | ||
) | |||
and see if it works | 15:48 | ||
Limbic_Region | already have that | ||
ok - committed | |||
autrijus | cool. | ||
enjoy your breakfast | |||
Limbic_Region | think the issue was that there was a bug | ||
but not the one I thought it was | |||
and when you fixed it | |||
I was thinking you hadn't | |||
anyway - thanks - enjoy your sleep | |||
autrijus | np :) | 15:49 | |
svnbot6 | r5340, Limbic_Region++ | Fixed parsing spaceship tests to correctly expose bug | 15:51 | |
r5341, autrijus++ | * unTODO a passing operator overloading test | |||
autrijus | gaal: I lifted op1IOBool into op1IO | 15:58 | |
enjoy | |||
svnbot6 | r5342, autrijus++ | * lift the IO respond type up in op1IOBool into a more generic op1IO. | ||
autrijus | rafl: do you have a test for Foo::Bar::baz? | 16:20 | |
svnbot6 | r5343, autrijus++ | * turns out parsing_spaceship is actually a precedence issue; | ||
r5343, autrijus++ | remove bogus tests. | |||
autrijus | Foo::Bar.baz, even | 16:21 | |
class Foo::Bar { method bar { 3 } } | |||
say Foo::Bar.bar; | |||
rafl: this worksforme, so I wonder what are you running into | |||
rafl: I need to sleep now -- if you have a test already or commits one, please point it to me and i'll fix | 16:22 | ||
autrijus waves g'nite & | |||
rafl | autrijus: OK, tomorrow. I'll need to prepare me for debconf now. | 17:00 | |
svnbot6 | r5344, putter++ | Created docs/other/howto_unspam_the_pugs_wiki. Perhaps we should automate the spam detection. | 17:15 | |
nothingmuch | hoi | 17:35 | |
putter | hoi | 17:36 | |
putter backlogging <=> discussion, wonders if we should have a Mistakes/Puzzles/??? file and/or wiki page. Everytime you puzzle over something, add it to the file. As it grows, we can pull stuff out into an organized version. Because, modulo spec changes and pugs bugs, every issue we encounter will be encountered _many_ more times... | 17:44 | ||
by _many_ more people... | |||
colabti.de/irclogger/irclogger_log/...-07-09,Sat is timing out :( | 17:45 | ||
nothingmuch | putter: that's a good idae | 17:48 | |
putter | Rules have a sigil of "<". rule foo {} binds <*foo. Can one access such a name? $x = <*foo; is a parserrror. | 17:51 | |
putter wonders if there is a spec'ed way to get the pattern string back out of a rule object... googling... | 17:55 | ||
wolverian | putter, a sigil <? where is that specced? | ||
putter | Implementation only? My impression is the rule logistics are only now beginning to be specced. | 17:59 | |
wolverian shrugs | 18:00 | ||
I don't know what pugs does, I'm asking what it's supposed to do :) | |||
putter | The only thing I've seen is the hackathon's notes on &Mumble::rule:<foo>. | 18:02 | |
rule: seems to behave like prefix: | 18:03 | ||
wolverian | right, namespace separator of sorts. the <> there is just qw() | ||
ie. not <foo | |||
putter | yes. | 18:05 | |
Ah, there it is, AST/Internals.hs typeOfSigil. In addition to the usual $@%@ there is also < Rule and : Type. | 18:09 | ||
nothingmuch: it looks like nothingmuch.woobling.org/pugs_test_status/ hasn't been updated in a while? | 18:17 | ||
gaal | rehi | 18:21 | |
putter | Yipes! The most recent smoke is July 5, and most of them are more than a month old. Five smokehouses, all unhelpful. :( | ||
gaal | everybody who lives close to a beach and doesn't go, should! | 18:22 | |
putter | :) | ||
gaal | putter: perlcabal.org/~gaal | ||
putter | Are the forum2.org/gaal/ smokes abandoned now? | 18:23 | |
gaal | uh, i guess :) | 18:24 | |
are they still listed somewhere? | 18:25 | ||
putter | Ok, then I'll remove them from pugs.kwiki.org/?SmokedPugs and add your new one. Ok? | ||
gaal | thanks | ||
putter++ # global housekeeping | |||
putter | np. :) is it still a cygwin box? | 18:27 | |
gaal | i don't think anyone's making a serious attempt at cygwin atm | 18:28 | |
i've moved to native win32 | |||
occasionally i also put up linux smokes, but less otfen as my win boxen are faster | |||
putter | ok, thanks | 18:29 | |
gaal | if someone puts up a nice HOWTO for coLinux i might start using that :) | 18:30 | |
putter | :) the absence of a linux smokehouse does seem odd. | 18:32 | |
gaal | i wanted to automate a machine at work for it, but never got around to it. | ||
doesn't juerd's setup on feather do it? | 18:33 | ||
putter _really_ needs to get a colo box. RSN, for a multi-year value of soon. | |||
re feather, can someone with a feather account report...? | 18:34 | ||
gaal | sec :-) | ||
putter, want me to start a new smoke on my machine? regardless of feather | |||
putter | googling... feather.perl6.nl/~autrijus/smoke.html is late June... | 18:35 | |
theorbtwo | Likely from the hackathon. | 18:36 | |
gaal | juerd's autobuild does not smoke. shall i write him a letter? it's a two line patch to his setup. | ||
putter | ok, that's just weird: www.medhelp.org/perl6/dermatology/ warts, fungus, hives, etc. ;) | 18:38 | |
gaal | nasty | 18:39 | |
wolverian | what does that have to do with perl6? | ||
gaal | the url path. | 18:40 | |
wolverian | I think that's what I meant :) | ||
gaal | :) | ||
wolverian | or rather, what does the page content have to do with the URI? :) | ||
gaal | obviously Dr. A. Rockoff is a subversive python hacker. | 18:41 | |
wolverian | or he just uses pugs to run his website. | ||
gaal | yeah! | ||
putter | gaal: it would be good to have a linux smoke. either feather, juerd, or yours... | 18:42 | |
gaal | sending juerd a patch as we speak. | ||
putter | gaal++ | ||
colabti.de/irclogger/irclogger_log/perl6 is back up. | 18:45 | ||
Ah well, looks like symbol table lookup hasn't been implemented yet... | 18:47 | ||
%*:: etc. | |||
gaal | there's a t/ for that | ||
t/namespaces or something? | |||
or t/syntax/symtable.t | 18:48 | ||
putter | yes, t/packages/reflection.t | ||
gaal | ooh fanct | ||
i think there should be symtable.t also | 18:49 | ||
i think i wrote it | |||
putter | and t/syntax/symbol_table.t | ||
gaal | that's the one | ||
there's a t/pugsbugs/namespaces.t too | 18:50 | ||
dudley | quoth $larry: "Method calls are allowed to be argumentless" | ||
gaal | um, weren't they always? | 18:51 | |
dudley | Yeah, but he's implying that plain subs aren't | ||
or am I missing something? | |||
theorbtwo | I think he means $foo.bar; | 18:52 | |
With neither arguments nor a pair of empty parens. | |||
dudley | Ah, that would make more sense... | ||
theorbtwo | %CALLER:: has been implemented. | 18:54 | |
gaal | to2, shall i abort my smoke and rebuild? | 18:55 | |
theorbtwo | The code should be pretty general as to working with the other special namespaces. | ||
nothing_pasta, I impemented it a month plus ago. | |||
gaal | i'm no pasta! | ||
theorbtwo | erxz_paste, whoops. | ||
gaal | my italian food does not burn. | ||
theorbtwo grins. | |||
putter | ah! %CALLER::! | 18:57 | |
?eval my $x; my sub g(){}; sub h(){}; sub f() { say %CALLER:: } f() | |||
evalbot6 | Error: No compatible subroutine found: "&say" | ||
putter | ?eval my $x; my sub g(){}; sub h(){}; sub f() { %CALLER:: } f() | ||
evalbot6 | {('$?1' => \'my $x; my sub g(){}; sub h(){}; sub f() { %CALLER:: } f()'), ('$_' => \'perl6'), ('$code' => \'my $x; my sub g(){}; sub h(){}; sub f() { %CALLER:: } f()'), ('$lang' => \'Perl6'), ('$x' => \undef), ('%_' => {}), ('&?BLOCK_EXIT' => \sub {...}), ('&break' => \sub {...}), ('&continue' => \sub {...}), ('&g' => \sub {...})} | ||
gaal | wheeee | ||
putter | though there is no &h ? | 18:58 | |
gaal | '$?1'? | ||
theorbtwo | Yeah, I sometimes don't understand everything that's there and not there either. | ||
I think it's buggy, but I'm not sure it's well-specced. | |||
gaal showers & | 18:59 | ||
putter | & thanks for the fish | ||
putter , after an nth unsuccessful attempt to do a src/Pugs patch, wonders | 19:04 | ||
(1) whether its better to focus on what is tractable rather than what is interesing... | 19:05 | ||
(2) if it might be useful for someone with a good understanding of the state of src/Pugs to write up a "next steps" todo list... | |||
(3) since autrijus is sooooo much more productive than me, whether there is some way to focus on supporting him, rather than banging randomly myself. Old IBM principle programmer with supporting team model. | 19:07 | ||
end | |||
gaal | putter: when it does work, do you enjoy it? i find haskell very difficult, but at least as rewarding. | 19:08 | |
my contributions to src/Pugs are peripheral, but slowly increase. | 19:09 | ||
i'm having fun. :) | |||
what are you working on? | 19:10 | ||
putter | good questions... | 19:11 | |
I enjoy haskell, and fixing little things to get people unstuck. I've spent too much time lately working on rules, which had the unfortunate characteristics that there was no one working nearby (no fun), and I found myself in "for each few lines of code, a pugsbug" land (no fun). So I'm trying to get back to things that (1) someone else cares about, and (2) are tractable. | 19:19 | ||
gaal | at least the existence of t/ makes things much easier. | 19:20 | |
theorbtwo | t++ | ||
gaal | t++ sounds like a language that doesn't compile if you didn't write a test first. | 19:21 | |
theorbtwo | It does at that. | ||
Funky. | |||
gaal | i suppose one finds one's best balance point (and that point can move from time to time following circumstances) between the well-inhabited places and where there be dragons. | 19:25 | |
putter | t/ is nice. though I miss the old "trade a test for a patch" days. | 19:26 | |
re balance point, oh yes. taste and judgement being key, as they are so often in programming. | 19:27 | ||
t++ ... tea and crumpets? | 19:30 | ||
Ah, a treaded archive of p6-l aspn.activestate.com/ASPN/Mail/Brow...6-language | 19:40 | ||
gaal | oops, forgot to upload smoke. fixing. | 19:51 | |
up now. | |||
gaal had better get to bed now | 19:53 | ||
bye :) | |||
putter | g'night gaal | ||
I was talking to a haskell and perl person a few days ago... and he had never heard of pugs. I thought our visibility was pretty good, but perhaps more could/should? be done. | 20:06 | ||
I was pondering what we might do to increase the probability that a lambdafolk visiting pugs gets sucked in as a contributor. | 20:12 | ||
It seems we don't really have a "state of pugs" document occurring. autrijus's great journal tends to be "news", and thus a delta between states. but we dont seem to have anything which stops and sums up, "this is where we are at, what is working and not and how much. and this is what we are working on, where we are going and when". | 20:16 | ||
It might be nice to have such a doc. Perhaps a monthly post or journal entry. | 20:18 | ||
no? | |||
dudley | putter: as a fledging lambacamel, I think a doc like that would be great. | 20:31 | |
err, lambda | |||
It would help me figure out what the hell is going on a lot faster | 20:32 | ||
putter | dudley: As you figure it out, it might be worth noteing what you found helpful. So when someone asks "I'm trying to figure out what the hell is going on", we can at least drop your list. With an additional level of detail, eg, lib/pugs/hack.pod helped with foo but not bar, it could help guide documentation. | 20:49 | |
putter notes that by grepping around, one can easily establish that nothing like the sentence "Pugs has two regular expression engines, PCRE and PGE." exists. ;) | 20:51 | ||
dudley | putter: that's a good idea. That would probably help me organize my thoughts a little, too. | 20:59 | |
putter | :) | 21:04 | |
svnbot6 | r5345, putter++ | Added a note about haddock to docs/SEEALSO. It wasnt mentioned anywhere. | ||
wilx | What am I supposed to put into PARROT_PATH? | 21:08 | |
When I set it to /opt/ I get "Can't exec "./parrot": No such file or directory at Makefile.PL line 404." | |||
And when I set it to /opt/bin or /opt/bin/parrot I get "*** Please set $ENV{PARROT_PATH} to the base path with a built parrot tree." | 21:09 | ||
I have installed parrot-0.2.2 with --prefix=/opt. | |||
dudley | Try the path to the build directory, not the install directory | 21:10 | |
I've never tried it with an installed parrot... | |||
wilx | Ah. | ||
Yup, this looks like it works. | 21:12 | ||
dudley | Cool | ||
putter | Could someone remind me how to make test with -BPIR? (yes, I was the one who figured it out. yes, I failed to add it to the documentation) | 21:22 | |
sigh. | |||
dudley | what does make pirsmoke do? | ||
putter | ah, and right next to pirsmoke, pirtest. thanks dudley. pirsmoke generates a smoke using the PIR backend. | 21:23 | |
dudley | That's what I thought. Didn't know about pirtest, though. | 21:24 | |
putter | And... neither are documented. Nor the setting up of a perl embedded pugs. | 21:27 | |
Hmm, so one cannot embed both parrot and perl5 at the same time? | 21:35 | ||
dudley | Sure, why not? | 21:37 | |
Juerd | gaal: autobuild smoking would mean it'd have to run less often | ||
gaal: As a smoke takes a long time to finish. | |||
putter | Juerd: could you have a copy on the side and smoke it once a day or so? | 21:44 | |
dudley: I was confused. | 21:45 | ||
Juerd: the motivating observation is that noone is running a linux smoke any more. | |||
dudley | happens to the best of us ;-) | ||
Juerd | putter: I don't quite understand why people who have access to feather don't just have it smoke. | 21:46 | |
The files are readable, they can be used. | |||
putter | dudley: By practicing assiduously, I now excel at it. | 21:47 | |
Juerd | In any case, smoking shouldn't take place in the script that is executed once every 15 minutes, as I never want the script running twice. (I should add a check for that, btw) | ||
putter ~~ <people who have access to feather> #=> bool::false | 21:48 | ||
Juerd: good, it sounds like you have a sound vision... care to implement it? ;-) | 21:51 | ||
anyone with access to feather here? | 21:52 | ||
putter hopes the rpms for 6.4.1 will not have merely a stage-1 compiler. There is no reason ghc shouldnt be made _trivial_ to install. | 21:55 | ||
yasar_ | #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team | 22:01 | |
putter | Hmm... Where might one note that the redefinition of RETURN (p5 vs readline), when embedding perl5, is not a problem and can be ignored. I'm reluctant to clutter up README... | 22:03 | |
oops, dinner, & | 22:06 | ||
dudley | putter: maybe we need a new doc for notes on building pugs. The various make options (pirsmoke, pirtest) could get documented there, too. | 22:33 | |
masak | dudley: sounds like a good idea | 22:36 | |
dudley | any metacommitters around? | 22:41 | |
autrijus | dudley: yes? | 23:19 | |
greetings joao | 23:41 | ||
joao: are you fluent in both Haskell and Perl? | 23:42 | ||
joao | Nopes, sorry :) | ||
Just a beginner | 23:43 | ||
autrijus | to both? excellent. | ||
joao | Well, I have some background in Haskell programming and basic knowledge about Perl | ||
I'm trying to improve both, actually | |||
autrijus | I think you automatically qualify for a committer bit to Pugs :) | ||
so what was the question you asked cog to ask me again? I lost the /msg window with cog | 23:44 | ||
joao | he asked you something about your sabatic? what was your job? something like that.. | 23:45 | |
autrijus | oh. I own a small shell company that does free software consulting etc | ||
by sabbatical I meant living mostly on my bank savings and dedicate most of my time to pugs | 23:46 | ||
joao | nice :) | ||
dudley | autrijus: Is it possible to change my username on openfoundry? | 23:50 | |
autrijus | dudley: what's your username? | ||
dudley | I signed up as dkf | 23:51 | |
autrijus | dudley: it would be simplest to just register a new name. | ||
dudley | (lack of sleep :-) _ | ||
autrijus | and let me or other metacommitter know the name so you can be added to committer list again | ||
joao | Perl6 User's Golfing System? :) | ||
23:52
Maddingue__ is now known as Maddingue
|
|||
autrijus | joao: yeah. golfing is part of perl culture :) | 23:53 | |
"A competition to find the shortest (fewest keystrokes) Perl code to solve a given problem." | |||
Khisanth | wouldn't golf driven design lead to something looking like brainfuck? :) | 23:54 | |
autrijus | Khisanth: aha, the golfers aren't the designers, that's key | ||
joao | autrijus: cog presentation in Toronto was about golfing too, i think | 23:56 | |
autrijus: btw, are you coming to YAPC::EU ? | |||
autrijus | joao: I wish I could but I need to make to ICFP+EuroOSCON too, and that has already depleted my travel budget | 23:57 | |
geoffb | autrijus, I take it you're skipping OSCON Portland? | ||
joao | Oh, too bad. You could meet this place.. :) | ||
autrijus | geoffb: aye | 23:58 | |
geoffb | :-( | ||
First time I'm managing to make a conference in I think 6 years |