6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org Set by autrijus on 12 May 2005. |
|||
putter | scook0: brief discussion of Pugs design occurred earlier today. its in the log. | 00:00 | |
scook0 | woo! | ||
scook0 complains that all the interesting stuff happens when he's busy :( | 00:01 | ||
putter | life ;) | ||
Juerd | Good night. | 00:04 | |
svnbot6 | r3550, Juerd++ | Fix readability of quickref/namespace. This document needs more structure, less | ||
r3550, Juerd++ | long lists and less sentences. | |||
r3551, Juerd++ | s/matches nothing/matches null string/, because it does match something, namely | |||
r3551, Juerd++ | the null string, which happens to look like nothing, but certainly is | |||
r3551, Juerd++ | something, even though it has no width. There is no syntax in regexes/rules | |||
r3551, Juerd++ | that matches nothing, or that doesn't match. In documentation, only mention the | |||
r3551, Juerd++ | things that something does match. ("<-[a]>" matches any character that isn't a, | |||
r3551, Juerd++ | instead of: doesn't match a. Note also how position is left out of the | |||
r3551, Juerd++ | description, even though it does only match at the current position.) | |||
putter | 'night | 00:06 | |
00:06
g1powermac_AFK is now known as g1powermac
|
|||
theorbtwo wonders how to do what putter is asking for. | 00:09 | ||
putter wonders what he asked for. | 00:12 | ||
kelan | some kind of loop ending thing? | ||
< putter> actually, some languages readily handle the concept of "I expect to be done by foo. If I'm not, kick me." | |||
putter | ah. | 00:13 | |
theorbtwo | $foo = lazy :timeout<20s> {block} | 00:18 | |
Hm, stick a "default" clause there too. | |||
Hm, and make that async instead. | |||
I'm still wondering if it's already implementable with what we have, though. | 00:19 | ||
Oh, and make that 20`s. | |||
clkao | there's no Time::HiRes? | 00:25 | |
svnbot6 | r3552, putter++ | minor fix of quickref/namespace | ||
clkao | and no export of select(2) ? | ||
putter | clkao: M$ | 00:26 | |
clkao | ? | 00:27 | |
putter | clkao: re HR, you could check if ghc has something similar and expose it. its an easy "follow the lemmings" haskell exercise. | ||
clkao: re select, it's a portability problem. windows lacks select. | 00:28 | ||
darcs jumps through ugly hoops to try and deal. pugs doesnt. | 00:29 | ||
theorbtwo: could one attach the timeout to a block? | 00:31 | ||
in C++ one might do a local var IfScopeExitHasntDestroyedMeInNSecondsIllThrowAnException. ;) | 00:32 | ||
hmm... if one could attach traits to call points...;) | 00:33 | ||
but, perhaps just $foo = timeout(20) :{ lazy {block} } | 00:34 | ||
theorbtwo | clkao: there's no Time::HiRes in p6 because all time functions are expected to be highres. | 00:36 | |
They are defined to return/take a number of seconds... but not neccessarly an integer number of seconds. | 00:37 | ||
putter | blarg. but my original thought was more along the lines of a keepalive. $ka.stillalive; my @array=...; $ka.stillalive; | 00:43 | |
clkao | so how do i tell time() to return with more precision? | 00:44 | |
putter | time currently returns and integer Prim.hs | 00:48 | |
clkao | that i already read in the fine source. i mean in langauge level, how do i tell it to return with more precision | 00:49 | |
putter | my fuzzy impression is its more that the current implementation should be returning a float rather than an int... yes? | 00:54 | |
theorbtwo | clkao: Why would you want to? | 01:02 | |
clkao | because i want Benchmark.pm | ||
theorbtwo | the time() builtin should return the best resolution it can. | 01:03 | |
If you know how to get higher-resolution time, fix it. | |||
clkao | i dont | ||
putter | in addition to ghc's cpu time, which we might expose, it looks like there is dtPicoseconds... I'm wrestling with haskell now... | 01:09 | |
svnbot6 | r3553, ninereasons++ | examples/cookbook/01strings/01-00introduction.p6, add a very basic definition of strings and what they are used for. Todo: give a basic introduction to quotes and quote-like operators, to preface the examples that follow. | ||
ninereasons | eyes invited to look at what I just committed. | ||
stevan | ninereasons: that easily could have spread over several lines | ||
karma prude :) | 01:10 | ||
jabbot | stevan: prude :) has neutral karma | ||
ninereasons | mistakes in the basics wreck everything. | ||
lol prude :) | |||
stevan, I started using the -m "" switch, and it keeps everything very tidy. | 01:11 | ||
stevan | ninereasons: I do the same | ||
old habit from work | |||
although at work my commit messages are usually svn commit -m 'uploadin' | |||
since I am the only one who uses SVN :) | |||
ninereasons | not from karma avoidance though. I just don't like jumping into vim to write two lines. | 01:12 | |
yuck. the pod is barffled | 01:13 | ||
I should have checked that first. | |||
kelan | karma ninereasons | 01:16 | |
jabbot | kelan: ninereasons has karma of 4 | ||
kelan | karma kelan | ||
jabbot | kelan: kelan has neutral karma | ||
kelan | how can you get negative karma? | 01:17 | |
ninereasons | wow, I've lost a lot of karma latele | ||
I wonder why | |||
kelan | karma autrijus | ||
jabbot | kelan: autrijus has karma of 208 | ||
kelan | heh | ||
karma castaway | |||
jabbot | kelan: castaway has karma of 8 | ||
ninereasons | see .. that's why I don't like karma. It messes with my mind. | ||
stevan | ninereasons: it is like perlmonks "points" | 01:18 | |
it really doesn't matter how many you have, its the quality of your contribution that matters | |||
ninereasons | yes. you will note that I no longer post to perlmonks. | ||
kelan | karma stevan | ||
jabbot | kelan: stevan has karma of 43 | ||
ninereasons | I have a weak ego | ||
kelan | wha has the most? | ||
who | |||
ninereasons | autrijus, for sure. | 01:19 | |
stevan | ninereasons: i dont either, but thats because I am too addicited to pugs | ||
clkao | karma autrijus | ||
jabbot | clkao: autrijus has karma of 208 | ||
stevan | perlbot highest karma | ||
perlbot | The top 5 karma entries: C: 310, autrijus: 305, iblech: 201, stevan: 111, nothingmuch: 68 | ||
kelan | C! | ||
clkao | karma svk | ||
jabbot | clkao: svk has karma of 10 | ||
stevan | C-- is better than C plus plus | ||
kelan | kelan++ | ||
perlbot | What kind of idiot karmas himself? Your kind of idiot! | ||
stevan | perlbot karma ninereasons | ||
perlbot | Karma for ninereasons: 14 | ||
ninereasons | C-- x 100 | ||
mrborisguy | ninereasons: why don't you post to PM anymore? | ||
kelan | hah | ||
stevan | svk++ # ;) | 01:20 | |
ninereasons | because it makes me feel funny, worrying about what people vote up and down. | ||
kelan | ignore the votes then | ||
mrborisguy | haha, oh, okay | ||
kelan | karma kelan | ||
jabbot | kelan: kelan has karma of 1 | ||
ninereasons | can't, kelan. I tried for a couple of years, and failed. | ||
kelan | woo! | ||
perlbot karma kelan | |||
perlbot | Karma for kelan: -1 | ||
kelan | hah | 01:21 | |
stevan | ninereasons: I obsessed to at the begining | ||
mrborisguy | i think recently somebody posted some css so you don't see any of the voting stuff | ||
stevan | mrborisguy: yes, i think I saw that too | ||
kelan | post anonymously, then you can't see votes | ||
mrborisguy | that would work too | ||
ninereasons | I feel funny about that, too, kelan. | ||
maybe I'm weird. | |||
kelan | harder to keep track of your nodes that way tho | 01:22 | |
stevan | ninereasons: they are soooo perl5 anyway ,... :) | ||
kelan | heh | ||
limbic region is trying to sway everyone | |||
stevan | #perl6 is much more fun | ||
kelan | he keeps posting p6 stuff | ||
mrborisguy | i may have to start posting p6 answers when i get a hold of it too | ||
stevan | mrborisguy++ | ||
mrborisguy | maybe people will vote ++ just 'cause they're confused! ;) | 01:23 | |
stevan | :D | ||
ninereasons | s/confused/impressed/ | ||
putter | haskell question? | ||
stevan | Monads | ||
kelan | it'll be like back when perl didn't have its own usenet group and randal kept answering questions in the shell group with perl. people started saying, "no perl answers" | 01:24 | |
someone will ask a question on PM and be like "no p6 please" | |||
mrborisguy | i wouldn't doubt it | ||
ninereasons | a reasonable request for any practical question. | 01:25 | |
at the moment. | |||
but not for long :) | |||
mrborisguy | what!? you're telling me pugs isn't ready for production code!!!! | ||
i give up | |||
stevan | that is why L~R has been moving them to their own threads IIRC | ||
kelan | parrot is! | ||
mrborisguy | i'm outta here | ||
svnbot6 | r3554, ninereasons++ | add extra lines for pod | ||
stevan | mrborisguy: we have mod_pugs ;) | ||
mrborisguy | haha, really? | 01:26 | |
putter | ;) I have a do return $ foo $ x where ... and wish it a do n <- (x where ...) return $ foo$ n but thats not it. suggestions? | ||
stevan | mrborisguy: yes, it works on top of mod_parrot | ||
mrborisguy | cool | ||
i won't use it though | |||
i don't even use mod_perl right now | |||
i couldn't get it set up once | |||
and my 'website' has about... 3 hits a week | |||
stevan | mod_perl on Win32 was still beta | ||
mrborisguy | that may have been the reason | 01:27 | |
stevan | 1.0 that is | ||
mrborisguy | either way i don't have much use for it | ||
stevan | mrborisguy: I think autrijus is actually using Pugs in prod | ||
kelan | okay this will be fun because i don't know the monad terminology but: | 01:28 | |
mrborisguy | and as i understand, autrijus is the genious behind pugs? (or at least, at the beginning) | ||
stevan | yes, and still is | ||
he is the main force behind it | |||
kelan | putter: where is the function that returns a moadic value? | ||
mrborisguy | yeah... i added the parenthetical statement because i'm sure there are more now | ||
kelan | is it the x? | 01:29 | |
if it is the x, i think you can do it like: | 01:30 | ||
do n <- x | |||
return $ foo $ n | 01:31 | ||
where ... | |||
putter | the original form is: | ||
anyone mind 10ish lines of code blatted? | 01:32 | ||
op0 "time" = const $ do | |||
clkt <- liftIO getClockTime | |||
return $ VInt $ toInteger $ tdSec $ diffClockTimes clkt epochClkT | |||
where | |||
epochClkT = toClockTime epoch | |||
kelan | perlbot, do you mind? | ||
putter | epoch = CalendarTime 2000 January 1 0 0 0 0 Saturday 0 "UTC" 0 False | ||
I hypothesize that higher precision time info might be available by doing | 01:33 | ||
... + ((tdPicosec diff) * 10^(-12)) | |||
but pulling out d <- diffClockTimes clkt epochClkT leads to unhappiness. | 01:34 | ||
stevan | putter: you might want to ask on #haskell | ||
putter | k. tnx. | 01:35 | |
stevan | my haskell book is being neglected in favor of my Smalltalk/metaclass books | ||
putter goes off to remind himself how where works... | |||
:) | |||
kelan | where is the `diff` coming from in your hypothesis? | 01:36 | |
from the `diffClockTimes` application? | |||
do you want to replace `tdSec` with the hypothesis? like this: | 01:37 | ||
return $ VInt $ toInteger $ (\diff -> ((tdPicosec diff) * 10^(-12))) $ diffClockTimes clkt epochClkT | |||
putter | s/diff/d/ | 01:39 | |
kelan | but am i right, you want to replace `tdSec` in the original? | 01:40 | |
putter | ahhhhhhhh. is there a lightbulb emoticon? | ||
kelan | the question mark is closest. heh | ||
? | |||
putter | back in a sec^Wbit... | 01:41 | |
mrborisguy | what does @array = <1 2 3 4 5>; mean? is it like @array = qw/1 2 3 4 5/; ? or is it something special and new? | ||
kelan | don't forget to tell us the answer:) | ||
it is like @array = qw/1 2 3 4 5/; | |||
mrborisguy | alright, thanks! | 01:42 | |
kelan | the <> is the new easy-quotewords | ||
mrborisguy | does it do more stuff then? | ||
or is it just that pretty much? | |||
kelan | i don't think so. just returns a list of strings | ||
although | |||
you can use it like this: | |||
%hash<hash slice> | 01:43 | ||
which gives you two elements from the hash with those keys | |||
mrborisguy | so, instead of something like the old @hash{ ('hash','slice') } | ||
yeah? | |||
kelan | yep | ||
vcv | I love that :) | 01:44 | |
mrborisguy | oh, sweet! | ||
kelan | <<>> is the similar | ||
but non-interpolating? or <<>> interpolates but <> doesn't? | 01:45 | ||
not sure, let me check | |||
ninereasons | right, kelan | ||
kelan | right to which? :) | ||
ninereasons | <<>> interpolates | ||
vcv | what about %hash<<@array>> | ||
whats that do? | |||
lets say @array = ("key1", "key2") | 01:46 | ||
kelan | i think <> and <<>> impose list context, so the array should flatten and give you the hash slice | 01:47 | |
ninereasons | and, <<>> is supposed to respect quotes | ||
kelan | well, if <> doesn't interpolate, it wouldn't | ||
ninereasons | but I don't think that it does, right at the moment | 01:48 | |
(respect quotes, I mean) | |||
kelan | yeah, i didn't understand the rules about when things inside <<>> break up or stay together. like this: <<"two words" another>> | ||
i think that is just two strings, not three | 01:49 | ||
ninereasons | yes, but I don't think that pugs thinks so, right now. | ||
it'll be fixed eventually if it's not already. | |||
kelan | or if you have: @array = ("two words", "another"); <<@array>> | ||
is that the same? two words, not three? | |||
ninereasons | should be, in that context, if I understand it right. | 01:50 | |
kelan | but <> doesn't respect quotes? so <"two words" another> thats really three? | 01:51 | |
ninereasons | ("two, words", another) | ||
kelan nods | |||
putter | 01:55 | ||
come back and tell us how you fixed the haskell | |||
inquiring minds need to know | 01:56 | ||
mrborisguy | i've been playing with map a little bit, but i couldn't find any information on it. i want to do @array.map:{ $_ ** 2 }; (which works). is there an @array.map( $_ ** 2 ) of some sort? i can't get it to work, so maybe there isn't one? | 02:10 | |
just a "i think it looks better" sort of deal... | |||
kelan | i dont think so | 02:11 | |
mrborisguy | alright, thanks | 02:13 | |
scook0 | @array.map( $_ ** 2) would almost certainly /not/ do what you're expecting it to | ||
mrborisguy | yeah, i tried it, it gave me an error | ||
just wondering if there were something similar | 02:14 | ||
scook0 | @array.map:{ $_ ** 2 } /is/ it | ||
mrborisguy | alright | ||
scook0 | unless you want to say @array.map({$_ ** 2 }), which is even uglier | ||
wolverian | you can't just make up syntax and expect perl to go along with you. :) | ||
mrborisguy | hahaha, okay | ||
scook0 | remember that map takes a block, not an arbitrary expression | ||
mrborisguy | i'll keep that in mind | ||
kelan | wolverian: that isnt the quote! | ||
wolverian | kelan: I didn't have the real quote handy and I was too lazy to query purl. :) | 02:15 | |
mrborisguy | i'll try to trim down the stupid questions a little bit! ;) | 02:16 | |
kelan | nah | ||
p6 is new to everyone basically | |||
scook0 | the only stupid questions are the ones you don't bother to ask | ||
besides which, 'stupid' questions can sometimes reveal profound things :) | 02:17 | ||
svnbot6 | r3555, Stevan++ | Perl::MetaModel - adding rw/ro traits to Meta::Properties; and sketched some ideas of Roles as well (I need to do some more reading on this actually); | 02:19 | |
r3556, Stevan++ | Perl::MetaModel - changing the Roles sketch, I had moved it up too far in the meta-model; back to reading about Roles | |||
ihb | scook0: no, there really are stupid questions that people do ask :-) | 02:22 | |
mrborisguy | haha, i'd have to agree with you ihb | 02:29 | |
"can i get taste loss from licking a pool table?" | |||
kelan | if you licked it so much that you rubbed off your taste buds you could | 02:31 | |
mrborisguy | haha | ||
i guess i probably shouldn't assume everybody has seen that commercial | 02:32 | ||
kelan | one of those beer commercials? | 02:33 | |
pasteling | "putter" at 66.30.119.55 pasted "time() -> 1.69957894027142e8" (12 lines, 493B) at sial.org/pbot/10297 | 02:35 | |
putter | hey kelan. well, bleep. | ||
kelan | hey! | ||
does that work? | 02:36 | ||
if so you can move the lambda down to the where clause and give it a name so it doesnt look so funky | 02:37 | ||
putter | ooo, yes, good idea. | ||
any other thoughts? | 02:39 | ||
kelan | hmm | 02:40 | |
im surprised about the 10^12 | 02:41 | ||
putter | me too. | 02:42 | |
kelan | did you try fromInteger and fromIntegral on it? | 02:43 | |
putter | (fromInteger 10^12) 10.0^^12 (fromIntegral (10^12))::Float realToFrac (10 ^ 12) ...(the last 2 from #haskell) no joy. | 02:44 | |
kelan | even #haskell couldn't figure it out? | 02:45 | |
heh, i'm not going to be able to then | |||
if you're going to do (1000000 * 1000000) why not just write 1000000000000 | 02:46 | ||
svnbot6 | r3557, ninereasons++ | a little more clean-up of the pod, for the introduction to strings, examples/cookbook/01strings/01-00introduction.p6; plus render a few examples executable | ||
putter | their suggesting was to add more of signature. (it's quiet there, and there was perhaps a bit less warm fuzzy helpfulness than I've seen in past) ah well. | 02:47 | |
re why 1^6 * 1^6, because everytime I looked at the latter I felt nervious and wanted to count the zeros. ;) I can eyeball 6 of them. "If it's not obviously correct... then it isn't." | 02:48 | ||
Before commiting, I'm trying to find someplace at least semi-authoritative which says its the right thing... | 02:49 | ||
ie, that p6 time() now returns a float. | 02:50 | ||
kelan | i can't eyeball groups of more than four:( | ||
putter | ok. switching to three...;) | 02:52 | |
kelan | heh | ||
probably put a comment in why its written out like that | |||
ninereasons | you also might enjoy one or another of the alternative syntax, kelan: | 02:53 | |
kelan | maybe someone will come along and figure out a way to type it | ||
ninereasons | map{$^item ** 2;} @array ; map->$item{$item ** 2} @array ; | ||
or, I guess actually it was mrborisguy | |||
kelan | heh | ||
mrborisguy | why does the first work? | 02:54 | |
the $^item part i mean | |||
ninereasons | think of sort {$a <=> $b} | ||
it works for the same reason | |||
mrborisguy | so $^item is the only one that will work, not $^something | 02:55 | |
kelan | variables with carets are like implicitly passed arguments | ||
Odin-LAP | $^a <=> $^b now, I think. | ||
kelan | no | ||
ninereasons | $^whatever you want | ||
kelan | it can be anything | ||
mrborisguy | but map->$something{$something ** 2} @array would? | ||
kelan | yes | ||
mrborisguy | Odin-LAP: yes | ||
Odin-LAP | Implicitly passed, and ordered alphabetically, I think. | ||
kelan | so would map { $^something ** 2 } @array | ||
mrborisguy | huh | ||
kelan | Odin-LAP: yes, from what i remember | ||
the implicit arguments are bound to the ^ variables in alphabetical order | 02:56 | ||
mrborisguy | @in ==> map { $^something ** 2 } ==> @out; is correct syntax, correct? (but not working yet?) | 02:57 | |
kelan: does that hold for sort too? | |||
kelan | yes its correct | ||
well i think sort kinda got redone | 02:58 | ||
but the basic usage i think works the same | |||
mrborisguy | oh | ||
kelan | damian proposed adding all this crazy stuff to it. don't know if its canon yet | ||
mrborisguy | oh, alright | 02:59 | |
Odin-LAP | Damian proposed crazy stuff? :o | ||
;) | |||
kelan | but for the basic usage, this would work: @in ==> sort { $^a <=> $^b } ==> @out | ||
ninereasons | that looks so cool | 03:00 | |
Odin-LAP | I suppose the best way to save functions and/or syntax is to get it implemented before he has the chance. | ||
ninereasons | it looks like it's moving | ||
kelan | and this would sort in opposite order: @in ==> sort { $^zed <=> $^apple } ==> @out | ||
mrborisguy | oh, no, i was wondering about the variables... sort { $^first <=> $^second } since "first" lt "second" | ||
yeah, okay. | |||
kelan | yes | ||
the implicit positional args are bound alphabetically | 03:01 | ||
its kind of weird | |||
Odin-LAP | sort { $^before <=> $^after } # ;D | ||
kelan | but as good as any way to bind implicit vars, i guess | ||
heh | |||
obfu here we come | |||
Odin-LAP | kelan: Ya figure? | ||
Although I think that last one is kinda cute. | 03:02 | ||
I think they meant it partially as a discouragement for using too many implicit arguments. | |||
One is fine, two is workable, three is stretching it... | 03:03 | ||
kelan | well how about | ||
sort { $^aaaaaaaaa <=> $^aaaaaaaaaa } | |||
which order?? | |||
yeah, thats fun | |||
Odin-LAP | O_o | ||
kelan | see, there are a different number of 'a's | 03:04 | |
Odin-LAP | I suppose the shorter one goes first. (ASCIIbetic order.) | ||
I figured. | |||
But I most certainly am not going to count. ;) | |||
kelan | heh | ||
mrborisguy | now i'm just scared! | 03:05 | |
kelan | thats why i'm saying its weird. the variable name is meaningful to the semantics | ||
Odin-LAP | mrborisguy: Perl6 is going to be very, very frightening when abused. | ||
pupilzeng: Are you IRCing as root, and if so, is that intentional? | 03:06 | ||
kelan | i guess that isnt much different from: sort -> $aaaaaaaaaa, $aaaaaaaaa { $aaaaaaaaa <=> $aaaaaaaaaa } | ||
except shorter | |||
but still hard to tell whats going on | |||
Odin-LAP | kelan: Pretty much the same thing. | ||
I think it might be harder with the longer version. | |||
pupilzeng | Odin-LAP, yes, it's intentional, I'm on Windows | 03:07 | |
Odin-LAP | pupilzeng: Ah. :) | ||
pupilzeng: Just asking. I've seen people do it by accident. :> | |||
kelan | heres fun: sort -> $b, $a { $a <=> $b } | ||
Odin-LAP | kelan: Oweeee. | 03:08 | |
mrborisguy | oh my! | ||
kelan | plain descending, but odd looking | ||
Odin-LAP | Or ouch. | ||
putter | ok, clkao is waiting patiently, and I'm failing to find an authoritative source which says time() now returns a float. | ||
kelan | this language will be fun:) | ||
pupilzeng | Odin-LAP, I know, you're very kind to do so | ||
kelan | oh let me help you look, putter | 03:09 | |
mrborisguy | i do think things will make more sense in this language though (unless you try to be obscure) | ||
Odin-LAP | kelan: Oh, and we haven't even started with the syntax-warping macros they promised us. | ||
mrborisguy | i can already see it in my understanding | ||
putter | Hmm. Looks at the time. "clkao has long since given up waiting, and..." ;) | ||
kelan | Odin-LAP: those are a cop-out for true obfuers:) | ||
Odin-LAP | kelan: True. | ||
kelan | of which i am not | ||
Odin-LAP | The metaoperators are a god's gift to obfuscation, though. | 03:10 | |
kelan | `wrap` will be nice for obfu too | ||
you never know whats being called | |||
Odin-LAP | mrborisguy: Yeah. Though it's tending a bit towards Lisp, in some regards. (Not syntax-wise, thank god.) | 03:11 | |
kelan | putter! | 03:13 | |
putter | hey! | ||
ninereasons | *fix + folding operators will make some amazing obfu | ||
putter | ok, it looks like parrot has two forms, int and num. that plus two peoples' fuzzy recollection... what more could one need? | 03:15 | |
does anyone object to time() returning float? | 03:16 | ||
ninereasons | it seems Right that it should | ||
but, I'm not the Real programmer, here | |||
kelan | i'm trying to find the message referred to, but in this summary: www.mail-archive.com/perl6-language...19302.html | 03:17 | |
it says "Larry agreed that Perl 6's time interfaces | |||
would favour floating point time values..." | |||
the linked message to google groups is not there | |||
putter | yeah! kelan++ | 03:18 | |
ninereasons | kelan++ # indeed. man, that was fast | ||
kelan | here we go: www.mail-archive.com/perl6-language...19076.html | ||
putter | Thank you kelan. Patch going in. | 03:19 | |
kelan | np | ||
mrborisguy | has anybody got p6 to install on Win32? | ||
kelan | mail-archive.com has a search function. makes it easier to find messages:) | 03:20 | |
mrborisguy | i get this error when trying to use nmake: | 03:21 | |
makefile(414) : fatal error U1087: cannot have : and :: dependents for same target | |||
kelan | i've heard theres some trouble with win32. don't know if anyone's solved it | 03:22 | |
vcv | mrborisguy: i was working on it. got some different errors though | ||
putter | clkao: fyi, time() now returns floating-point seconds. | 03:24 | |
svnbot6 | r3558, putter++ | time() now returns a float. kelan++ | ||
putter | Thanks again folks. | 03:25 | |
Good night. | |||
kelan | g'night | ||
mrborisguy | oh, okay | 03:30 | |
well, any Makefile editing I can do? I went to line 414 (figured that's what the error meant, not sure), and there wasn't anything worthwhile there | 03:31 | ||
i'll check line 1087 vcv | |||
1087 is the last line | |||
if there's no solution, it's not a big deal, i already have p6 on a different computer | 03:32 | ||
Khisanth | try it with a different make implementation? | 03:33 | |
mrborisguy | i'll see what i can find | 03:34 | |
the makefile downloaded nmake for me, so that's the one i was trying | |||
Khisanth is slightly confused | |||
how did you manage to use the makefile without make? | |||
mrborisguy | my bad. correction, the Makefile.PL file | 03:35 | |
kelan | MakeMagic | 03:36 | |
thats how | |||
mrborisguy | is that a program, or a perl module? | 03:38 | |
kelan | its a joke:) | 03:39 | |
mrborisguy | oh, gotcha | ||
kelan | i meant thats how you could use the makefile without make installed | ||
mrborisguy | a different make (from UnxUtils) failed too, citing that I can't have more than one " config :: " in the file (there's about 3 of 'em in a row where it reports the error) | 03:40 | |
eh, i'll give up for tonight | 03:41 | ||
thanks for all of the help tonight. i'm out. | 03:46 | ||
svnbot6 | r3559, putter++ | docs/development/tips -> docs/development/development_tips | 04:20 | |
r3560, putter++ | docs/development/ -> docs/other/ | |||
r3561, putter++ | In modules/PORTING_HOWTO, added pointers to other resources. | |||
r3562, putter++ | Moved modules/PORTING_HOWTO to docs/other/. Being out of the way, it was getting overlooked. Left a "moved to ../docs/" file. | |||
05:55
wilx` is now known as wilx
|
|||
vircuser | anyone here? | 06:00 | |
06:00
vircuser is now known as avinash240
|
|||
avinash240 | anyone? | 06:01 | |
stevan | hello | ||
avinash240 | hi I was just looking through the overviews of perl6 | 06:02 | |
stevan | avinash240: it gets quiet around here this time of night/day | ||
avinash240 | and it's striking me as an extremely complex language. | ||
stevan | avinash240: that is a correct observation | ||
although I would not let the docs overwhelm you | |||
there is much more in there then will probably get used | 06:03 | ||
avinash240 | any hope on them keeping some of the reason I started using perl in the first reason around | ||
stevan | by the majority of programmers | ||
avinash240: much of what is so great about perl is still there | |||
avinash240 | some of it is down-right non-intuitive | ||
stevan | just more consitent | ||
avinash240 | i mean I love perl5 | ||
i just makes sense | 06:04 | ||
I'm a converted c, c++ coder | |||
stevan | avinash240: I agree, I love p5 too | ||
avinash240 | and that garbage about perl five not being readable | ||
is only from non perlers | |||
who read the regex competitions | |||
stevan | :) | ||
ninereasons | there are small idiom adjustments. I think you'll find it to be very simple to pick up, starting from perl5, avinash240 | ||
avinash240 | if you code it like you do c++ but use the extra power it's very readable | ||
i hope your right | |||
cause right now | 06:05 | ||
svnbot6 | r3563, ninereasons++ | more massaging of the text and examples in cookbook's introduction to strings | ||
avinash240 | I'm down right depresed | ||
stevan | avinash240: well, I am sure perl5 wont go away anytime soon | ||
ninereasons | I really like perl5, but every day I am more eager to see perl6 fully implemented, avinash240 | 06:06 | |
stevan | and part of the whole motivation of Pugs is to iron out the issues with the perl6 design | ||
avinash240 | yes..but i'm not big on using ''old' languages when new ones exist | ||
ninereasons | it puts some really wonderful things in your hand. | ||
stevan | avinash240: what have you read so far? | ||
on perl6 | |||
avinash240 | so far the only language I've seen that's really impressive is ruby. I know Java but you need 30 lines of code just to do hello world...so much forced structure.. | 06:07 | |
but the | |||
has | |||
$.something | |||
it's really just all the new sigals | |||
that are killing me | |||
stevan | avinash240: they actually make a lot of sense when you understand what they all mean | ||
avinash240 | but why so many...i'd really like explained | 06:08 | |
ninereasons | new levels of abstraction, that's all | ||
avinash240 | i'm sure they make sense | ||
but do we really need that many | |||
i was really just hoping the OO system in perl would get alot easier.. | |||
it's more consistent but makes less sense | |||
stevan | there is a set of quickref documents in the docs/ folder which try to explain | ||
avinash240 | actually | ||
sorry I take it back | |||
it makes sense | |||
but it's not intuitive | 06:09 | ||
ninereasons | look at exmples/games/wizard.p6, avinash240 | ||
AtnNn | it beats clos | ||
avinash240 | k | ||
whats the whole URL for hthat? | |||
err | |||
ninereasons | I think you'll immediately understand what's happening throughout. | ||
avinash240 | that? | ||
the wizard.p6 | 06:10 | ||
ninereasons | it's in the checkout tree. but just a sec. | ||
stevan | avinash240: also look in ext/ as well in particular Set, Tree, Test::Builder and Net::IRC | ||
avinash240 | i appreciate t.. | ||
stevan | svn.openfoundry.org/pugs/examples/ | ||
svn.openfoundry.org/pugs/ext/ | 06:11 | ||
svn.openfoundry.org/pugs/docs/ | |||
:) | |||
ninereasons | thanks, stevan++ | 06:12 | |
avinash240 | the has Str something; | ||
is that an object declaration? | |||
stevan | ninereasons: I have typed that URL many many times :) | ||
avinash240: yes | |||
avinash240 | nice | ||
what's the | |||
stevan | has declares a property | ||
Str the type | |||
avinash240 | ?$prompt | ||
stevan | and $.name | ||
avinash240 | what eh ?$ | ||
? | |||
stevan | ? means the parm is optiona; | 06:13 | |
optional | |||
so sub foo ($bar, ?$baz) | |||
$bar is required and $baz is optiona; | |||
avinash240 | ok | ||
that could stand for a change | |||
stevan | (damn I keep missing the l and hitting the ;) | ||
avinash240 | it's not readable | ||
and that's what i mean | |||
has $.something | |||
is soo smooth | |||
it makes total sense | |||
?$something isn't | 06:14 | ||
my head is doing loops | |||
going from looking stuff up | |||
to just reading and it making sense | |||
wolverian | there are named traits that do the same thing as the +, ? zones | ||
in signatures | |||
avinash240 | lol | ||
i have no idea what a signature is | |||
wolverian | the thing that specifies the arguments. | 06:15 | |
stevan | method signature | ||
wolverian | sub foo (...signature...) { ...body... } | ||
avinash240 | what does the $?something mean? | ||
stevan | its actually a combination of the label, the args, and the return value (IIRC) | ||
wolverian | stevan: good point. | ||
stevan | $?something is different :) | ||
avinash240 | i just saw that | 06:16 | |
what does that mean? | |||
it looks lke it's inviting me banging my head while looking for a bug | |||
between $? and ?$ | |||
stevan | svn.openfoundry.org/pugs/docs/quickref/var | ||
wolverian | $? are magical lexical vars | ||
stevan | its a twigil :) | ||
avinash240 | i'm going to pook at the quickref really quick | ||
stevan | avinash240: I agree on the $? stuff | 06:17 | |
and $* | |||
etc | |||
they can get ugly | |||
wolverian | I think I agree. | ||
ninereasons | yep. me too. | ||
stevan | $. and $: are good for objects | ||
wolverian | maybe someone should post on p6l about this. :) | ||
stevan | that makes sense to me | ||
avinash240 | twigils? | ||
i think that's an answer to a question that no-one was asking | 06:18 | ||
stevan | basically $?foo is like my $foo (lexical scoped) | ||
ninereasons | but, secondary sigls are the sort of thing that don't get written all the time | ||
avinash240 | seriously of all the things I found wrong with perl5 | ||
variable scope was not one of them | |||
stevan | $=foo is our $foo (file scoped) | ||
avinash240 | it just made sense.. | ||
can I still scope the same way as I did in perl5 | |||
? | |||
stevan | avinash240: I dont actually think it changed | ||
avinash240 | i can accept $. in classes | 06:19 | |
stevan | it should DWIM in most cases | ||
avinash240 | koo koo | ||
i think the docs should focus on what will be the same | |||
more | |||
cause right now I'm scared | |||
stevan | seriously the fundemental parts are not really changing | ||
avinash240: that is kind of an issue | |||
avinash240 | and I run the programming direction..for my shop | ||
stevan | right now the docs are actually the spec | ||
ninereasons | for that, I think that our cookbook will be helpful, avinash240 | ||
stevan | and they focus on the diffs | ||
ninereasons | but right now I think it's a bit of a mess | 06:20 | |
avinash240 | yes, it's not making much sense | ||
i think they shouldn't release anymore | |||
until it's clear | |||
i've been looking forward to perl 6 for a year | |||
stevan | avinash240: dont forget perl6 is still being designed | ||
Pugs is just a reference implementation | |||
avinash240 | mainly because I really want a clarified OO system | ||
stevan | to help iron out the details | 06:21 | |
avinash240 | I agree | ||
I think once I get my hands on it | |||
i'll be ok | |||
if I can use very close to perl5 syntax | |||
and use perl 6 OO system | |||
ninereasons | that's what pugs is for. | ||
avinash240 | i'll be very happy | ||
stevan | avinash240: you should be able to do that | ||
ninereasons | to get your hands on a very blurry idea, and actually do something real. | 06:22 | |
stevan | with only a few other changes to make things more consistent | ||
ninereasons: well put :) | |||
avinash240: I suggest compiling pugs and giving it a try | |||
its quite addicitve | |||
avinash240 | anyone here use catalyst? | 06:23 | |
stevan | even though not everything works | ||
avinash240: nope, but I know people who have | |||
ninereasons | speaking of addictive, I should go to bed. night all | ||
avinash240 | how do they like it? | ||
stevan | they really liked it | ||
avinash240 | i just installed it.. | ||
stevan | I am actually considering switching to it myself | ||
avinash240 | i'm really workin it out | ||
stevan also makes the descisions for his shop :) | |||
how do you like it? | 06:24 | ||
avinash240 | lol | ||
working' | |||
is workin | |||
to be totally honest | |||
i've just never gotten Perl 5 OO approach too much | |||
that's why I'll be happy to seee it go | |||
and I've written modules | |||
lol | |||
stevan | avinash240: I liked perl5 OO a lot at first | 06:25 | |
avinash240 | i like my version of it | ||
it's when I see other peoples | |||
it's just not always clear | |||
the 'convention' is very odd | |||
stevan | but I came from Javascript (prototype based) and Java (too much code for too little) | ||
avinash240 | yes, I come from c++ and Java | ||
stevan | avinash240: I know what you mean, too many ways to do the same thing | 06:26 | |
avinash240 | so right no | ||
so right now | |||
I"m trying to "get" catalyst | |||
stevan | AFAIK its really just straight MVC | ||
avinash240 | yeah that's right | ||
but Class::DBI is something I'm not too familiar with | 06:27 | ||
i'm old school SQL i wrote everythng by hand | |||
stevan | me either | ||
avinash240 | now I feel strapped | ||
to figuring out how to use that thing | |||
and it's not so clear | |||
stevan | never used Class::DBI myself | 06:28 | |
avinash240 | the whole framework MVC idea is not so clear to me | ||
what makes me a bit depressed though | |||
is I read the Catalyst stuff | |||
and I scratch my head | |||
i read the Ruby on Rails stuff..and I get it.. | |||
stevan | :D | ||
avinash240 | that's how I used to feel when I compared Perl to other languages | 06:29 | |
this is why the complexity thing.. | |||
is getting me down | |||
stevan | that might be just a "quality of docs" issue | ||
avinash240 | yes | ||
definately | |||
I agre | |||
e | |||
but the built in tech is just easier | |||
stevan | Catalyst is pretty new though, so it may take some time | ||
avinash240 | but I'm honestly convinced to stick it out with a Perl MVC framework | 06:30 | |
and Maypole was just a frustration | |||
Catalyst looks nice | |||
i've seen an app and it's not bad.. | |||
it's just a learnign curve..and that's never stopped me before | |||
unless you haven't noticed I'm very big on intuitive programming practices | |||
and catalyst has that | 06:31 | ||
stevan | I think a Ruby on Rails "port" will be easier with perl6 | ||
avinash240 | well | ||
more of less | |||
Catalyst is a port..with some extra features | |||
in essense it's more powerful | |||
just not as intuitive | |||
which is why RoR is doing so wel | |||
it's brainless to set up a working app | |||
stevan | I am always distrustful of "brainless to set up" though | 06:32 | |
I feel constrained by that | |||
I like to see the guts :) | |||
avinash240 | i agree but they allow you to remove all the implicit stuff..which is why I was impressed | ||
but Catalyst is more powerful from what I can see | 06:33 | ||
I think ActiveRecord is really the only BIG thing on RoR.. | |||
stevan | O/R mapping is really nice if done well | 06:34 | |
obra | avinash240: what about actionpack? | ||
avinash240 | i | ||
have heard mixed things about it | |||
but the mixed things I've heard were retarded | |||
saying no-one wanted the object/method URL approach | |||
but that's pretty much the defautl way for MVC right now | 06:35 | ||
it doesn't allow anything else from what I gather | |||
and I wouldn't have a problem with that | |||
obra isn't a fan of that approach. | |||
avinash240 | Catalyst allows you to do other ways | ||
like I said..Catalyst seems more powerful | |||
as I expected from the perl approach | |||
obra | but most of what seems _really_ nice about actionpack is the sets of helpers to abstract out the boring bits that everyone screws up. | ||
avinash240 | just a bit more entry fee..I'd really like to see more documentation | 06:36 | |
obra | and that's not something I've seen in Cat | ||
avinash240 | yes | ||
err | |||
no | |||
you mean the helper scripts | |||
for things like | |||
adding views and what not? | |||
and building the directory structure and whatnot? | 06:37 | ||
obra | all the viewkit metalogic | ||
avinash240 | what do you mean? | ||
obra | actionpack comes with a gorgeous set of helpers for everything from hyperlinks to forms | 06:38 | |
stevan | ok bed time for me - nite all | ||
obra | last time I asked sri and draven, cat just didn't have that yet. | ||
avinash240 | yeah I don't believe it has that stuff yet | 06:39 | |
obra nods | |||
avinash240 | version 5 has the helper scripts for setting up the skeleton structures and whatnot | ||
and they've ported over the java protoype library | 06:40 | ||
which is hude | |||
err | |||
huge | |||
so you can do Ajax | |||
i think I'm going to run over the the catalyst irc channel | 06:41 | ||
svnbot6 | r3564, Stevan++ | Perl::MetaModel - adding more details to the Meta::Compiler tests | ||
avinash240 | all this catalyst talk has me gong | ||
= ) | |||
bsb | ping scook0 | 06:46 | |
scook0 | pong bsb | ||
bsb | that was quick | ||
scook0 | I got home about 15min ago | ||
how goes it? | 06:47 | ||
bsb | Good, but busy with non pugs stuff | ||
I saw your munge haddock changes and had a similar ideas | |||
scook0 | What did you have in mind? | 06:48 | |
bsb | I'll just post the oldish patch | ||
pasteling | "bsb" at 203.214.67.82 pasted "haddock munging" (29 lines, 848B) at sial.org/pbot/10301 | ||
bsb | Basically using the ignore-exports option | 06:49 | |
optionally | |||
I thought that the munger could have an API mode and an internal mode | |||
I didn't get the Makefile work done though | 06:50 | ||
scook0 | hmm | ||
so, munge_haddock would only nuke the export list if a special flag was applied? | 06:51 | ||
bsb | Not sure if it's any use now but thought I may as well share the idea | ||
scook0 | I just wonder whether having only the exported symbols is any use... | 06:52 | |
bsb | yes, it would turn "-- haddock-internal: ignore-exports" into "-- # ..." | ||
scook0 clicks | |||
bsb | I don't know, the docs are mainly internal at the moment | ||
scook0 | so, the export list should only be nuked if we specify a certain option in the file itself? | 06:53 | |
bsb | Yeah, or the reverse could be the default | ||
It's probably more useful currently | |||
scook0 | It could be useful idea | 06:54 | |
I'm just trying to think of a use for it | |||
It would decrease the compatibility burden on my poor little script if we knew that it was only being applied to approved source files | 06:55 | ||
bsb | It could also tweak other attributes, none look as useful though | ||
www.haskell.org/haddock/docs/module...butes.html | |||
scook0 suddenly feels stupid | 06:56 | ||
bsb | oops | ||
scook0 | I was wondering whether Haddock had an option like that, but I could never find it | ||
I only hacked up the munge script because I couldn't get Haddock to do what I wanted | |||
bsb | Haddock seems a bit hard to use sometimes | 06:57 | |
Have you found that? | |||
scook0 | aye | ||
I suppose it is only 0.6 | |||
bsb | Yeah | ||
scook0 | I think you should try undoing my changes, and implementing your solution | 06:58 | |
bsb | Sure, I haven't got anything else of use here, I'll be here a little while | ||
scook0 | Actually, instead of that, you could just get munge_ to add #ignore-exports to the top of every file | 06:59 | |
no, that wouldn't quite work | |||
you'd have to be careful to only insert it before actual module declarations | |||
because I think there are some source files that are #included, and don't have module declarations | 07:00 | ||
bsb | Exactly, that's why I like the safer munging | ||
scook0 | It was always my intention to cooperate with Haddock instead of fighting it | ||
bsb | Although it's more tweaking initially | ||
scook0 | I'd be quite happy to see my code go | 07:01 | |
bsb | If there's no need for two doc modes, then we could just insert the ignore-exports where required | 07:02 | |
scook0 | print "-- #ignore-exports" if /module/ or something | 07:07 | |
bsb | scook0: No, I just meant manually, not with the munger | 07:16 | |
scook0 | oh | 07:17 | |
doing it in the munger would be easier to maintain, I think | |||
bsb: I just put 'print "-- #ignore-exports";' at the top of munge_ and everything seems to work fine | 07:25 | ||
bsb | scook0++ | ||
scook0 | I'll commit shortly... | 07:26 | |
r3565 | 07:28 | ||
bsb: see if it works for you | 07:29 | ||
bsb | ok | ||
making | 07:30 | ||
src/Pugs/Config.hpp:21:1: parse error in doc string | 07:33 | ||
svnbot6 | r3565, scook0++ | * Haddocks for 'juncApply' in Junc.hs | ||
r3565, scook0++ | * Export-list nuking is now much more elegant (bsb++) | |||
scook0 | hmm | ||
bsb | That might be me messing around locally, let me check | 07:34 | |
scook0 | try doing 'find -name '*.hpp' | xargs rm' to clean out all the old .hpp files | ||
Having old pre-processed files sitting around will prevent make from trying to refresh them | 07:35 | ||
bsb | svn diff | 07:36 | |
Index: util/PugsConfig.pm | |||
It's incompatible local tweaks to util/PugsConfig.pm | 07:37 | ||
scook0 | What line from the .hpp is causing trouble? | ||
pasteling | "bsb" at 203.214.67.82 pasted "config gen haddock" (41 lines, 1.1K) at sial.org/pbot/10303 | 07:38 | |
bsb | src/Pugs/Config.hpp:21:1: parse error in doc string: [TokString "\n",TokPara,TokString "The configuration is derived from Config.pm from the installed perl.\n"] | ||
Nothing for you to worry about | |||
I see /usr/bin/perl -Iinc util/munge_haddock.pl src/Pugs/Types/Scalar.hpp | 07:39 | ||
-- #ignore-exports | |||
during make haddock | |||
head src/Pugs/Compile/Parrot/AST.hpp doesn't have the ignore-exports yet | 07:40 | ||
weird | 07:41 | ||
scook0 | ack | ||
you're right | |||
I just had a look at Eval, and all the private functions are gone again... :( | |||
Looks like my new, elegant solution doesn't actually work | 07:43 | ||
Maybe it's because the 'print' is before the 'while (<>)' | |||
OK, I nearly have it working... | 07:47 | ||
Phew, r3566 | 07:51 | ||
That'll teach me to actually make sure that things work /before/ I say that they do | |||
bsb: try it again, if you please | 07:52 | ||
bsb | soon, on the phone | ||
still not happy... | 07:59 | ||
svnbot6 | r3566, scook0++ | * Oops, my elegant #ignore-exports wasn't actually working | ||
bsb | actually, it's good. | ||
I just didn't get the ignore in the "head" | |||
scook0 | the ignore now shows up immediately before the module declaration | 08:01 | |
and by 'module declaration', I mean any line matching /^module/ | |||
I'm now rebuilding everything, just to be sure... | 08:02 | ||
worksforme | 08:05 | ||
Aankhen`` | Juerd, you around? | 08:10 | |
bsb | scook0: ok so far, with my changes reverted | 08:13 | |
svnbot6 | r3567, autrijus++ | * POD cleanup of pugs.pm; recommend Filter::Simple | ||
bsb | any file & function I should check? | 08:14 | |
scook0 | bsb: Eval | 08:15 | |
if you find more than 4-or-so functions, it worked | |||
bsb | got heaps, its working | ||
scook0 | the other thing to try is: find docs/haddock | xargs grep -n 'exports' | 08:16 | |
to make sure that nothing was inserted where it shouldn't have been | |||
bsb | none | ||
scook0 | cool | ||
sounds like it's all working :) | 08:17 | ||
bsb | I was also thinking that if "Pad -> Pad" had a name then the docs might be clearer | ||
My haskell skillz don't stretch that far yet | |||
scook0 | bsb: teatime for me; perhaps we shall talk later | 08:22 | |
bsb | bye, enjoy your meal | ||
scook0 returns | 08:53 | ||
svnbot6 | r3568, autrijus++ | * unbreak hs-plugins integration. | ||
scook0 | bsb: ping | ||
bsb | scook0: pong | ||
scook0 | you were mentioning "Pad -> Pad"... | 08:54 | |
In my docs, I've been calling them 'pad-transformers' | 08:56 | ||
if we wanted a special type alias, I think we could just use: | 08:57 | ||
type PadTransformer = Pad -> Pad | |||
I wonder if there's a better name... | |||
bsb | PadTrans, VarUpdate, PadEdit | 09:00 | |
svnbot6 | r3569, scook0++ | Tweaks to Haddocks for Junc.hs | ||
bsb | I didn't think of anything good | ||
scook0 | You understand what they're doing, right? | ||
Installing new symbol bindings into a lexical or global pad, and returning the new, augmented pad | |||
bsb | I understand what, when confuses me | 09:01 | |
lazy evaluation... | |||
autrijus wakes up to find mod-perl 2.0.0 released | 09:03 | ||
scook0 | I kinda-sorta understand when, but not 100% :( | ||
autrijus | rehi \camels! | ||
hm, Win32 build broken? | |||
bsb: PadTransformer is probably not any more readable than Pad->Pad | 09:06 | ||
I tried to find a good name... PadSyms, PadTrans, etc | |||
but nothing stuck | |||
scook0 | now that you mention it, it's probably a good idea to leave the '->' in there as a clue | 09:07 | |
autrijus | *nod* | ||
scook0 | but for now, 'pad transformer' is the de-facto name for them in the docs | ||
autrijus | that's good | ||
scook0++ # haddock-fu | 09:08 | ||
bsb | It's haskell function and it's perl function seem to collide | ||
I'm not sure if I can make myself clearer :( | |||
scook0 | autrijus: could I trouble you to look at the docs for 'juncApply'? | ||
autrijus | scook0: I did, it's good, I even tweaked it | 09:09 | |
scook0 | autrijus++ | ||
autrijus | hm, time to upgrade all my www/ ports to chase mod_perl2 change | ||
scook0 | any specific reason for all() & none() getting autothreaded before one() & any()? | ||
autrijus | scook0: specced this way. | 09:10 | |
I don't think S09 gives reasons | |||
Juerd | Aankhen``: I am now. | ||
scook0 | (you|me) should put that in the docs then | ||
autrijus | p6l may have some archive on that tho | ||
in tests we'd use | |||
L<S09/Junctions> | |||
not sure how to do so on haddock... care improvise a bit? | 09:11 | ||
I need to find food :) | |||
<- slept for 12 hours... | |||
scook0 | autrijus: is there a canonical URL for the latest versions of the AES (in HTML)? | 09:19 | |
svnbot6 | r3570, scook0++ | Haddocumented the justification for all & none | ||
r3570, scook0++ | autothreading before one & any (specced) | |||
autrijus | scook0: yes, look at dev.perl.org/perl6/doc/synopsis.html | 09:20 | |
nice "haddocumented" | |||
scook0 | autrijus: are those versions kept up-to-date with the pod sources? | 09:21 | |
autrijus | I think they are autogenned | ||
so yes | |||
scook0 | I was under the impression that they lagged heavily, but maybe I just looked at them at a bad time | 09:23 | |
anyway, I think Haddock only supports vanilla URL-hyperlinks | |||
autrijus | I think robrt set up autoupdater only recently | ||
scook0 | ah | ||
autrijus | anyway, I think dev.perl.org is as canonical as any | ||
scook0 | can you think of any other places in the docs where AES links would be handy? | 09:24 | |
(I feel uneasy committing a one-line change... :) | |||
bsb | g'night all | ||
scook0 | bsb: night | 09:25 | |
integral | is there a copy of the pugs haddocks online somewhere? | ||
scook0 | www.pugscode.org/haddock/ | 09:26 | |
integral | ty | ||
scook0 | not sure whether it's autogenned or not though | ||
autrijus: how are the online haddocks generated? | 09:27 | ||
autrijus | scook0: as part of util/smoke_loop.sh | 09:29 | |
scook0 | how often is that? | ||
autrijus | I'll redir. a sec | ||
done | 09:32 | ||
Aankhen`` | Does ext/Tree/Makefile.* need to be added to svn:ignore? | 09:53 | |
svnbot6 | r3571, scook0++ | Added S09 link to Haddocks for juncApply | ||
r3572, Aankhen++ | * docs/other/PORTING_HOWTO: added :P5 to Perl 6 translation of regex, for even easier porting. | |||
r3572, Aankhen++ | * other minor tweaks. | |||
Aankhen`` | Or rather, Makefile and Makefile.* | ||
I'm getting this from `svn status`: ? ext\Tree\Makefile | 09:54 | ||
autrijus | sure, feel free to svn:ignore them | ||
Aankhen`` | OK. | 09:55 | |
Aww crud. | 10:01 | ||
svnbot6 | r3573, Aankhen++ | * added svn:ignore to ext/Tree | ||
Aankhen`` | Should I add all the P5 -> P6 regex translations to PORTING_HOWTO? | 10:07 | |
svnbot6 | r3574, Aankhen++ | * fixed messed-up svn:ignore. | ||
Aankhen`` | Or should that only contain the bare minimum? | ||
autrijus | Aankhen``: please check it in :) | 10:08 | |
Aankhen``: I'm also thinking about porting/data porting/oo porting/rules | |||
i.e. following quickref format | |||
but it's just an idle though. | |||
Aankhen`` | Ah. | ||
autrijus | thought. | 10:09 | |
Aankhen`` | Hrm, then PORTING_HOWTO could contain the bare minimum. | ||
autrijus | anyway, improvise! :) | ||
dinner & | |||
Aankhen`` | A'right. | ||
Enjoy. | |||
Shillo | Hullo! | 10:10 | |
Aankhen`` | Hiya. | 10:20 | |
scook0 is away | |||
svnbot6 | r3575, Aankhen++ | * docs/other/PORTING_HOWTO: added reference for translating regexes. | 10:43 | |
Aankhen`` | Wow... delayed reaction. o_O | 10:44 | |
Shillo | Heh. :) | 10:49 | |
svnbot6 | r3576, shillo++ | added more tests to gather.t (1 fails) | ||
Shillo | He likes me. ;) | ||
(and this was more of a commitbit test) | |||
Aankhen`` | Bah. | 10:50 | |
Shillo | Well, although I found out that sub take {} will permanently break gather/take pairs. | ||
Aankhen`` | Heh. | ||
Shillo | ... and gather/take should work lexically. | ||
Aankhen`` | And I shall BBL. | 10:51 | |
Shillo | Laters. then. :) | ||
svnbot6 | r3577, iblech++ | Usual svn properties. | 11:07 | |
r3578, iblech++ | PORTING_HOWTO Ć¢ porting_howto (consistency) | |||
r3579, iblech++ | Prim.hs -- Changed in the definition of op0 "time" the VNum to a VRat so time() | 11:16 | ||
r3579, iblech++ | is nicer formatted if one outputs it (1.69988707046647e8 vs. 169989018.147893). | |||
r3579, iblech++ | putter++ for a floating time! | |||
r3580, iblech++ | Algorithm-TokenBucket - unSKIPing a test which needed accurate time() -- thanks putter! :) | |||
meppl | guten morgen | 11:32 | |
Shillo | Hullo. :) | 11:34 | |
iblech | Hi :) | 11:35 | |
theorbtwo is gack. | 11:37 | ||
Er, back. | |||
Shillo found out why when junc(1, 2, 3) doesn't work. | 11:45 | ||
Now to fix it... | |||
Shillo scratches his head and goes oooooom and ahhhhh... | 11:46 | ||
Shillo got it, eventually. :) | 12:44 | ||
svnbot6 | r3581, shillo++ | when any(...), when all(...), when one(...) bugs fixed | ||
iblech | Shillo++ :) | 12:45 | |
Shillo | Well, wasn't particularily nice job. I just made when really dispatch to infix:~~ (and this calls juncApply at some point, as side-effect) | 12:46 | |
So op2Match doesn't know junctions yet. | |||
The remaining hour was spent with type police. Still learning Haskell. :) | |||
Aankhen`` | Does `temp` work? | 12:47 | |
Nevermind, temp.t seems to say otherwise. | |||
stevan | autrijus: I will start the Changlog sometimes today (within the next 10 or so hours) | 12:48 | |
off for breakfast now though :) | 12:49 | ||
Aankhen`` | Is there any easy way to force a test with a particular version of a module? | 12:54 | |
Hrm. | |||
That's not quite right. | |||
Aankhen`` tries again. | |||
Aankhen`` realises it's a stupid question and goes back to work. | |||
Aren't there tests for module { ... }, use and import? | 13:06 | ||
Juerd | grep? | ||
iblech | IIRC no. And module {...} is IIRC not yet implemented (only module ...; is) | 13:11 | |
Aankhen`` | Ah. | ||
grep seems to agree. | |||
How can I force the use of a module from a file residing in the current directory? | 13:12 | ||
iblech | use() searches in @*INC for the file to load, so a BEGIN { unshift @*INC, "." } should work | 13:13 | |
Aankhen`` | Ah, the BEGIN { ... } is what I was missing. | 13:14 | |
Hrm, that didn't work. | 13:15 | ||
D'oh!~ | 13:18 | ||
Nevermind, it did work, thanks. :-) | |||
iblech | :) | 13:19 | |
svnbot6 | r3582, iblech++ | * Made &::("infix:<+>") work. I put the code in Pugs.AST.Internals (lookupVar), | 13:35 | |
r3582, iblech++ | hoping it's the correct location. | |||
r3582, iblech++ | * unEVALed the therefore now succeeding test and added two more succeeding | |||
r3582, iblech++ | tests to operator_overloading.t. | |||
r3582, iblech++ | * Added a comment to examples/obfu/random_operator_overloading.p6, explaining | |||
r3582, iblech++ | why my &::("infix:<$op>") won't work. | |||
iblech | stevan: Hm... I think I'll try to implement the builtin fail(), but this will clash with Test.pm, so need to rename Test::fail. Suggestions? | 13:46 | |
svnbot6 | r3583, Aankhen++ | * &HTML::Entities::decode_entities can now handle a list. | 13:49 | |
r3583, Aankhen++ | * &HTML::Entities::encode_entities modifies the original string too. | |||
r3583, Aankhen++ | * HTML::Entities version bumped up to 0.2. | |||
r3584, Aankhen++ | * updated tests for HTML::Entities: added test for decoding lists, added plan. | |||
r3584, Aankhen++ | * all tests now pass. | |||
Aankhen`` | Maybe "all tests" was a bad choice of words, now that I come to think of it... | 13:50 | |
iblech >> force_pass() and force_fail()? | |||
iblech | Aankhen``: Like those. They make clear that one is forcing the test result | 13:54 | |
Aankhen`` | :-D | ||
13:54
Odin-FOO is now known as Odin-
|
|||
Shillo waves. Laters! | 13:55 | ||
Aankhen`` | See you Shillo. | ||
integral ponders ripping retError out everywhere in favour of fail | 14:09 | ||
iblech | Hm... can I return a IVar VScalar without readIVar'ing it? | 14:10 | |
integral | iblech: "return"? | 14:11 | |
you can certainly have a function of type: a -> IVar VScalar | |||
iblech | integral: Yeah, return is probably mis-chosen. I meant the Perl return value of a Prim | 14:12 | |
integral | ah | ||
integral thinks not | |||
iblech | The problem is: I'm implementing fail(), and it needs to build a proxyScalar which will die() when it's actually used. Unfortunately, proxyScalar (...) (...) is a IVar VScalar, not a Val | 14:13 | |
Maybe I can box it in some kind of reference? | |||
integral | you can return a VRef to an IVar | ||
Aankhen`` | Isn't fail() supposed to be used in rules? | 14:14 | |
iblech | Aankhen``: Yeah, there too. fail() generally either dies() or returns an unthrown exception | ||
integral: How? | |||
Aankhen`` | Ah, okay. | ||
integral | iblech: VRef MkRef a | ||
iblech | compiles, thanks :) | 14:15 | |
integral | Aankhen``: fail is in the Monad class, so should do something sensible in any monad | ||
Aankhen`` | Monad? | ||
integral | er, did you mean p6? | 14:16 | |
iblech | Aankhen``: integral referred to the Haskell fail() | ||
Aankhen`` | OK. | ||
integral >> Yes. :-) | |||
integral | oops ;-) | ||
Aankhen`` | No sweat. | ||
Aankhen`` wonders how much upgrading from an AMD Athlon XP 2000+ with 512 MB of regular DDR333 RAM to a P4 3 GHz. w/ HT and 512 MB of dual channel RAM will speed up building Pugs. | 14:19 | ||
Ought to speed it up quite a bit, since P4s trounce Athlons in multi-tasking... | 14:21 | ||
Aankhen`` smiles. | |||
theorbtwo | It'll still be somewhat slow, but not horrible. | 14:22 | |
theorbtwo has twice as much RAM, but it's not dual-channel. | |||
Aankhen`` | I have to choose between getting dual channel RAM and doubling my RAM. | 14:23 | |
Forth__ | with P4 3GHz and 1GB dual-channel RAM, still can read pages of book while building | ||
Aankhen`` | And simply doubling my RAM would mean that I have to stick with DDR333. | ||
Forth__ >> I could read a full book in the time it takes Pugs to compile on my machine... | 14:24 | ||
A somewhat short book, but yeah. :-) | |||
integral | use unoptimized builds :-) | 14:25 | |
Aankhen`` | Ahh, I decided to go with the regular build this time. | ||
I've got lots of stuff to read in the meantime, so I figured I'd let it take its time. | |||
Whoa. | 14:41 | ||
Failed 42/287 test scripts | |||
iblech | How many subtests? | ||
Aankhen`` | 246/5431. | ||
That seems like a more reasonable number. :-D | |||
iblech | Ok, yesterday or so we had 224/5347 -- 100 new tests, only 20 new fails, that's a good balance, I think :) | 14:42 | |
Aankhen`` | Hehe. | 14:43 | |
integral | We don't put the subtests failed in the topic any more? | 14:44 | |
Aankhen`` wanders off to play GunBound. | |||
Hrm, I can't. | |||
Dang. | |||
Aankhen`` wanders off regardless. | 14:47 | ||
scook0 | #perl6 Ā».bye | 15:35 | |
iblech | Hm... ok I think there's a problem. I've a IVar VScalar (created using proxyScalar) which will Haskell-fail when it's readIVar'ed. If I return a VRef . MkRef, readIVar will be called, resulting in a too early die(). It works though, if I return a VList containing this reference, because VLists are lazy, while a normal VRef is not. | 15:41 | |
The problem is though, that then the Perl space will see an array, so my $x = fail "error_msg" and then $x + 3 *won't* die | 15:42 | ||
(But it should) | |||
Hm wait | |||
Ok, works :) | 15:43 | ||
nothingmuch 's body is going to revolt soon | 15:59 | ||
svnbot6 | r3585, Stevan++ | Perl::MetaModel - adding a document describing the implementation of the Meta-model (the planned impl, not the current one really); I will work more on this later | ||
nothingmuch | for the record, the lazy { } idea was not really mine | 16:02 | |
eric256 | take is flattening array-refs.. | ||
iblech | eric256: Write a test? :) | 16:04 | |
eric256 | i am. but i wanted to find the documentation of what it should do..looks like A12 has just a quick reference to it | ||
svnbot6 | r3586, iblech++ | Fix eval.t (precedence issue). | ||
r3587, iblech++ | First sketch at a (Perl) fail() implementation. | |||
r3587, iblech++ | Note: It's currently called fail_, to avoid the clash with Test::fail. | |||
r3587, iblech++ | Note: fail() returns VList, as VList is the only lazy Val currently. | |||
r3587, iblech++ | If we return a strict Val, Haskell will die immediately. | |||
r3587, iblech++ | This needs some support from a more enlightened lamdafolk. :) | |||
iblech | Yeah... gather/take is a bit underspecced | 16:05 | |
nothingmuch | perlbot karma iblech | ||
perlbot | Karma for iblech: 219 | ||
nothingmuch | oh my | ||
iblech | But it surely shouldn't flatten arrayrefs, I think | ||
:) | |||
eric256 | i would think not. should i start a new test file for it? or is there someone else better? googling the SVN repository found no mentions of gather/take but i don't trust it.. i realy need to get a grep on this machine | 16:06 | |
iblech | t/statements/gather.t | ||
grep++ :) | |||
autrijus | iblech: lazy val is called vthunk... I think | ||
iblech | autrijus: oh? sec | 16:07 | |
autrijus | (VRef . thunkRef $ MkThunk foo) | ||
where foo is of type Eval Val | |||
this will manufacture something that is evaluated in a delayed fashion | |||
I'm intentionally making laziness explicit | 16:08 | ||
because relying on haskell's builtin laziness will make constructs less portable when we want to translate to p6 or other languages | |||
so VList may be made strict one day | |||
or gone totally, too | |||
iblech | works! :)) | 16:09 | |
autrijus | :D | 16:10 | |
eric256 | thanks iblech, test added | 16:16 | |
svnbot6 | r3588, iblech++ | fail_ now returns a VThunk instead of a VList, autrijus++! :) | ||
r3589, eric256++ | Take flattening array-ref bug test added. | |||
eric256 | is there any help i can be in improving errors when inside subs/classes? | ||
iblech | ...errors when inside subs/classes? | 16:19 | |
eric256 | the error messages when you have an error inside a sub.. they just say...or never mind. hmm i'll have to see if i can replicate it. the last few days any syntax errors inside subs didn't return very helpful messages. | 16:20 | |
iblech | Do you mean that the error messages always say that the "s" in "sub foo {...}" is evil? | 16:21 | |
food & | 16:22 | ||
eric256 | that is the one. of course i can't get it to recreate it now. lol | ||
nothingmuch | shower & | 16:23 | |
eric256 | did classes get broken? wizarp.p6 that was working yestarday fails today ;( | 16:27 | |
gtg. later | 16:28 | ||
putter | I have a project proposal I'd like to brainstorm. Quickly bootstrapping p6 rules on pcre. Anyone up for it? | 16:32 | |
svnbot6 | r3590, iblech++ | * Small cosmetical fix to fail_(). | 16:54 | |
r3590, iblech++ | * For now, we set a magical var to a true value, because there's no fatal.pm yet. | |||
putter | with r3584, pugs> "{" | 17:29 | |
Internal error while running expression: *** Error: unexpected end of input expecting "\"", block, "\\", "\\q", "$!", "$/" or "$" at <interactive> line 1, column 4 | |||
I'm not sure if that's spec or not... | 17:30 | ||
could be. | |||
hmm. ok, likely is. nevermind | |||
iblech | Yeah, {...} interpolate in strings | 17:32 | |
...in double-quoted strings | |||
putter is still accidently writing p5 in p6 and p6 in p5... tnx | 17:35 | ||
Aankhen`` | LOL. | 17:39 | |
knewt | ok, since there are people here who know haskell... is it possible to filter a list using a function that returns IO Bool instead of Bool ? | 17:42 | |
svnbot6 | r3591, putter++ | added length() to porting_howto | ||
kelan | whats in the list | ||
i mean how is the list typed | 17:43 | ||
oh i see what you're asking | |||
hmm | |||
iblech | Control.Monad.filterm? | ||
Control.Monad.filterM? | |||
Control.Monad.filterM :: (Monad m) => (a -> m Bool) -> [a] -> m [a] | 17:44 | ||
knewt | and i need a non IO lists as a result | ||
s/lists/list/ | |||
iblech | That's not possible, I think, as IO is a one-way monad | ||
but you can do: | |||
kelan | so the list elements are IO and you want non-IO? | ||
iblech | result_list <- filterM (\_ -> return False) [1,2,3] | ||
then result_list if of type [a] | 17:45 | ||
kelan | maybe it would help if you told us what you want to do instead of how you want to do it:) | ||
iblech | but that only works inside a do expression | ||
Um... where is my, our, state, and temp parsed? | 18:01 | ||
knewt | back. sorry, had to disappear a moment. ok, I have a [String], where each String is a filename. I want to filter the list such that I end up with a new list that only contains filenames that don't exist | 18:03 | |
doesFileExist will do the check, but i can't figure out how to do the filtering | 18:04 | ||
iblech | ok, then: do { filenames_which_exist = filterM doesFileExist list_of_filenames; ... } | 18:05 | |
knewt | using filterM actually compiles, but assuming it's otherwise ok, how do i negate an IO Bool ? not doesn't work for that | ||
iblech | you can use (liftM not) to lift not in the IO monad | 18:06 | |
knewt | i've been playing with haskell for less than 24 hours so far, so i'm still at the point of randomly trying things when i'm not sure *g* | ||
iblech | liftM not $ io_bool | ||
;) | |||
[where is my, our, state, and temp parsed] nevermind, found it | 18:14 | ||
svnbot6 | r3592, putter++ | Removed an unhelpful line from porting_howto (a line I authored long ago). | 18:27 | |
r3593, putter++ | Added syntax/heredoc.t. Heredocs do not appear to be implemented yet. | 18:43 | ||
nothingmuch | putter: see also quoting.t | 18:52 | |
nothingmuch goes out | |||
crap, i thought i'd leave you with bugs internals beginings, but pastebot is not working (404) | 18:53 | ||
s/bugs/pugs/ | |||
eric256 | is there a way to run the tests in a way that just gives a list of the :todo<> tests ? | 18:57 | |
stevan | eric256: not just a list, but if you use prove, it will tell you how many TODOs in each file | 18:58 | |
grouped by the reason | |||
putter | nothingmuch: drat. missed that. tnx. | 19:01 | |
nothingmuch: use diffent pastebot? | 19:03 | ||
svnbot6 | r3594, autrijus++ | * add the remaining missing signatures for TH expressions. | ||
r3595, eric256++ | added sanity check on calling uninherited methods | |||
r3596, putter++ | Removed syntax/heredoc.t. Heredoc tests are in operators/quoting.t. | |||
r3597, autrijus++ | * fix method() parsing -- thanks eric256 for pointing it out | |||
putter | Could I get a reality check on the following concept: | 19:05 | |
I am writing a p6 rules to pcre (aka rx:perl5) converter in p6. Right now, p6 rule support is a bit minimal. The parsing is done by PIR code in PGE, which is minimal, and is apparently intended to be thown away. | 19:07 | ||
Extending the PIR parser... well, writing parsers in assembly language... | 19:08 | ||
eric256 beleives autrijus credits me with finding things accidentaly... i guess maybe that is my role in these things....finding bugs i don't even understand are bugs. ;) | 19:09 | ||
theorbtwo | Sometimes, the easiest way to have an open mind is to have an empty mind. | 19:10 | |
Er, please don't take that the wrong way... | |||
putter | With a p6->p5 converter, the parser could be written as p6 rules. Some constructs which are difficult for the converter to handle would have to be avoided. | ||
integral | it'd be better than Perl6::Rules, right? | 19:11 | |
autrijus | anything is better :) | ||
putter | I considered just porting Perl6::Rules... | 19:12 | |
eric256 | no theorbtwo i agree completly. which is why i often ask what even i think are stupid questions in here ;) | ||
integral | with a p6->pir converter you can write the parser with p6 rules too ;-) | 19:13 | |
putter | P6::R implements a rather old version of p6, so it would have to be updated as well as ported. | 19:14 | |
And it seems the same thing could be done more simply. | |||
autrijus | putter: porting the PGE parser to p6 would be wonderful. | ||
the emitter/interpreter too, but pmichaud said that he would be delighted if somebody can start porting the parser to p6. | |||
eric256 | "No compatible subroutine found: "&infix:<="" .... i'm confused. what happened to <= ?? | 19:15 | |
putter | Ok. Proceeding... Thanks for the feedback. | ||
autrijus | eric256: hm? 4 <= 5 no longer works? | ||
eric256 | method dead () { $.life <= 0 } | ||
gives that error. | 19:16 | ||
and in the pugs interactive mode it give the same error with 4 <= 4 | |||
autrijus | ho hum! | ||
autrijus tries it | |||
iblech | Ah... /me knows why | 19:17 | |
autrijus | iblech: /you will fix it then? | ||
iblech | course :) | ||
sec | |||
autrijus | iblech++ | ||
eric256++ # wizard-driven development | |||
integral | iblech++ # two haskell programmers, wow! :-) | ||
iblech | :) | ||
eric256 | do we need more tests for that? i mean shouldn't that have trigger an alarm? | ||
autrijus | eric256: I'm sure it's tested... but I hadn't been looking at smokes in two days | 19:18 | |
integral | autrijus: btw, is retError deprecated? Should current uses of it be converted to fail? | ||
autrijus | integral: well, retError is actually fine now | ||
I converted it to become | 19:19 | ||
retError :: (Show a) => VStr -> a -> Eval b | |||
Aankhen`` | autrijus >> If the entire Perl 6 parser is implemented using PGE, wouldn't that be a tad slow? | ||
autrijus | retError str a = fail $ str ++ ": " ++ show a | ||
integral | ah, ok :-) | ||
autrijus | so it's a convenience method to fail with two parts | ||
Aankhen``: not neccessarily... | |||
Aankhen``: I mean there's room for optimisation | |||
Aankhen`` | OK. | ||
I'll take your word for it. It was a rather vague question anyway. | |||
autrijus | PGE is supposed to do what p5regex does | 19:20 | |
integral | if you've got a specific application, you can write your optimizer specifically for it... | ||
autrijus | so it needs to be optimised to at least on par with pcre | ||
in the long run | |||
Aankhen`` | Yeh. | ||
autrijus | (where we're all cyborgs) | ||
Aankhen`` | Speaking of the long run, I had two questions: | ||
1. Is Pugs going to stick around as one implementation of Perl 6? | |||
2. Is MSYS always going to be required for linking Parrot into Pugs? | 19:21 | ||
I mean, is it going to change at any point so that Parrot can be linked using MSVC++? | |||
iblech | Fixed, committing... | 19:22 | |
autrijus | so, 2. is the easy one | ||
Aankhen`` | Heh. | ||
autrijus | oh wait. you succeeded in using msys to link parrot? | 19:23 | |
Aankhen`` | No, it's just what you had recommended... | ||
autrijus | the only reason MSYS is needed is that GHC's .msi was built with mingw. | ||
Aankhen`` | I can't get it to link using MSVC++. | ||
autrijus | so persumably you can just rebuild GHC with MSVC++ | ||
Aankhen`` | And I keep putting off downloading and using MSYS. | ||
Wha? | |||
I can? | |||
Aankhen`` runs to his browser! | |||
autrijus | and the Pugs that compiled with it can probably link with MSVC++. | ||
but! I havn't tried it | 19:24 | ||
and I'm not sure if it even works. | |||
Aankhen`` | I'll try it! | ||
autrijus | cool | ||
svnbot6 | r3598, ninereasons++ | 01strings/01-00introduction.p6 : clean up the section on quote operators and interpolation | ||
iblech | eric256: Fixed as of r3599, try again? :) | ||
autrijus | grab haskell.org/ghc/dist/6.4/ghc-6.4-src.tar.bz2 | 19:25 | |
eric256 | i assume i'll need to recompile right? | ||
sproingie | AHA, is that why i can't embed parrot into pugs? | ||
autrijus | sproingie: right | ||
sproingie: but you can use external parrot.exe just fine | |||
sproingie | could someone please hack the perl makefile to forbid parrot embedding under MSVC? | ||
autrijus | it will still run PGE via externall parrot. | ||
iblech | eric256: Yes | ||
autrijus | sproingie: please do it? in Makefile.PL put a check for $Config{cc} | ||
Aankhen`` | autrijus >> Was already on the download page. ;-) | 19:26 | |
sproingie | will check. un moment | ||
autrijus | sproingie: I'm not sure you're a committer though... if not, what's your email? I'll send an invitation for you to checkin | ||
sproingie | autrijus: [email@hidden.address] | ||
autrijus | invitation sent. welcome aboard! | 19:27 | |
sproingie | woo! | ||
autrijus | be sure to forbid the user with a nice message saying external parrot will really work :) | ||
sproingie | external parrot? | ||
autrijus | (and not slower by much) | ||
sproingie | i'm not familiar with it | ||
autrijus | sproingie: as long as you have a parrot.exe in path | ||
you don't need to embed parrot | 19:28 | ||
Aankhen`` | Okay, good, WinRAR supports BZ2 archives. | ||
autrijus | all eval_parrot and rules will still run. | ||
sproingie | whoah, really? did not know that | ||
autrijus | yeah... I think I said that in Makefile.PL | ||
sproingie | that needs to be in the README. guess i'll edit that too ;) | ||
Aankhen`` | sproingie >> You download a binary distribution of parrot, put it in a directory, add it to the PATH. | ||
autrijus | sure, go ahead :) | ||
Aankhen`` | Or if you enjoy inflicting pain on yourself, check out the source and build it for yourself. | ||
autrijus | while you're at it you can also refactor README to README.x86_64 and README_gcc4 and friends :) | ||
sproingie | oh there it is | ||
autrijus | but anyway, improvise | ||
Aankhen`` | I chose the latter. I really don't like inflicting pain on myself though. Really. | 19:29 | |
autrijus | building parrot is 1)easy 2)fast though. | ||
sproingie | dunno what the issues are on x86_64 right now, i'm building it on windows ATM | ||
Aankhen`` | I wouldn't say it's fast... | ||
sproingie | parrot builds easy sheazy | ||
autrijus | sproingie: I was referring to the long README with multiple chunks that can stand a refactor out | ||
Aankhen`` | But yeah, I guess building Parrot is a lot less painful than most things. | ||
sproingie | fast on my machine ... 'course it's msvc on a athlon 64 3200+ 1G ram | ||
svnbot6 | r3599, iblech++ | Make 4 <= 4 work again. eric256++ for noticing the b0rk! :) | ||
r3600, ninereasons++ | 01strings/01-00introduction.p6 : french quotes didn't remain unicode :( | |||
sproingie | so is PUGS_EMBED=perl5 worth it? | 19:30 | |
eric256 | No compatible subroutine found: "&infix:<=>" | ||
autrijus | wizards.p6 runs again, yay | ||
eric256 | that is from running relational.t | ||
autrijus | sproingie: probably not -- it's very lightly tested and can't use XS modules | ||
(for now) | |||
iblech: oops, looks like <=> is borken | |||
ah, dropBrackets ;) | 19:31 | ||
iblech | Exactly | ||
autrijus | infix:<=> is ambiguous, eh? | ||
iblech | Yeah | ||
autrijus | just hard code for it for now :) | ||
eric256 | i love the (20..30).pick idiom for random number selection beatts int(rand(30-20) + 20)+1 . lol | ||
iblech | Ok | ||
autrijus | eric256: yes, that's very sick | 19:32 | |
I mean slick | |||
pick(10..30) # works too | |||
sproingie | should i have it die if it detects PUGS_EMBED=parrot and MSVC, or just have it print a nastygram and disable it? | ||
autrijus | sproingie: a nastygram. | ||
<- not a fan for unneccesssary rerun | |||
eric256 | i wonder if that is not a good idea for big ranges though. i mean you don't realy want to build (1...10000) in memory just to pick a number | 19:33 | |
autrijus | eric256: supposedly it can be made lazy | ||
(but currently not) | |||
autrijus decides to throw three more proposals to Euro OSCON, bringing total to 5 | 19:34 | ||
Juerd | poweredbyperl.stage.zsi.at/index.html | ||
eric256 | while you guys are talking about parrot...why do i get | ||
*** Cannot parse PGE: | |||
*** Error: end of file | |||
Juerd | autrijus: Can you add Pugs there? | ||
eric256 | when trying to use rules? | ||
autrijus | eric256: you have parrot in PATH? | ||
putter | autrijus: the other day you mentioned p6 type variables. I hadn't previously encountered mention of them. Leaving me wondering if you have a *hidden cache* of p6 type system specs. ;) | ||
eric256 | yep | 19:35 | |
iblech | r3601, <=> working again | ||
autrijus | putter: I don't... all I have is larry's reply to my Fortress question | ||
eric256 | thanks iblech | ||
autrijus | $ ./pugs -e 'say 1 ~~ /1/' | ||
1 | |||
putter | ok. | ||
autrijus | eric256: do you get the error when running that? | ||
eric256 | yep | 19:36 | |
autrijus | eric256: which parrot is this? 0.2.0-release? | ||
putter: I'll freely admit I have my plain-as-day agenda of brining in a respectable typesystem into perl6 | |||
eric256 | 0.2.0-devel (r8106) | ||
autrijus | even though most of them has to be carried at runtime ;) | ||
eric256: cd into src/pge | |||
hi japhy | 19:37 | ||
putter | eric256: you can also try rules out directly on pge by doing parrot demo.pir . | ||
japhy | putter - you were talking about a parser for perl6 rules? | ||
hi autrijus | |||
autrijus | eric256: run this from src/pge: | ||
$ parrot run_pge.pir japhy japh | |||
PGE_Match 0 4 [] [] | |||
Corion | Oh. The symbol table tests start working ;) | ||
putter | autrijus+=<big number> # p6 with nice typesystem | 19:38 | |
eric256 | the binary distro i found doesn't have a src directory | ||
putter | japhy: yes... | ||
autrijus | isn't it nice that the number of dedicated internal hackers just doubled :) | ||
Khisanth | "just"? | ||
autrijus | eric256: binary distro of pugs? | ||
eric256 | of parrot | ||
japhy | putter - I wrote Regex::Parser and have been meaning to make another version that handles Perl 6 grammars/rules/whatever they're called | ||
eric256 | sorry didn't realize you meant pugs | 19:39 | |
autrijus | Khisanth: "just", as in since the past few days | ||
putter goes to look at Regex::Parser... | |||
autrijus | japhy: I wonder if you can write it in perl6 :) | ||
(but it's fine to write in p5 and we port later) | |||
japhy | I could probably write Regex::Parser in Perl 6, and once that was done, write the new one in Perl 6 | ||
Juerd | Hi japhy! | ||
svnbot6 | r3601, iblech++ | Made <=> work again. | ||
autrijus | japhy: woot. that will likely exercise many corner cases in pugs | 19:40 | |
japhy | oops, Regexp::Parser I meant | ||
eric256 | there is no japhy or japh file. | ||
Corion | Hmmm. t/builtins/time.t now dies. I guess that has to do with the redoing of time() ... | ||
japhy | autri/eric - whatever japhy file you're looking for, it probably doesn't exist. I haven't actually done any Perl 6 work yet. | ||
autrijus | eric256: those are args | ||
eric256 | excuse that. error is | ||
error:imcc:No such file or directory | |||
in file 'run_pge.pir' line 6 | |||
sproingie | guess i'll have it scrub parrot out of PUGS_EMBED and print the nastygram | 19:41 | |
autrijus | sproingie: cool | ||
sproingie | normally i'm not a fan of auto-munging environment variables, but that's the cleanest in this case | ||
autrijus | japhy: never mind that... that's just me using your name as a run_pge.pir test for eric256 to play with | ||
eric256: no such file or directory? curiouser and curiouser | |||
hm, your parrot doesn't have iglobals.pasm. | |||
gah. | 19:42 | ||
who made that bindist? | |||
eric256 | wiki.kn.vutbr.cz/mj/attach/parrot/binary/ | ||
autrijus | eric256: ok, svn up and try again | ||
eric256 | i would happily use any other. | ||
autrijus | (no need to recompile) | ||
sproingie | here's a silly question. what the hell happened to DELTREE in DOS? | 19:43 | |
sproingie wonders how to get rm -rf without having to put cygwin or mingw in the path | |||
knewt | it never existed in NT iirc | ||
sproingie | bleah | ||
autrijus | it became rmdir /s/q | ||
sproingie | ah | 19:44 | |
knewt | i always got annoyed about it myself | ||
autrijus | I hope you are not using it in our Makefile.PL | ||
:) | |||
sproingie | i'm going to write a DELTREE.BAT and put it in my path | ||
eric256 | yea it works! | ||
autrijus | eric256: woot. thanks for the feedback | ||
now try using rules | |||
sproingie | autrijus: warn "*** Use a real OS D00D!"; system "DELTREE C:\"; ... darn, won't work ;) | ||
eric256 | they work too. cool | ||
svnbot6 | r3602, autrijus++ | * add back iglobals.pasm | ||
autrijus | hmm | 19:45 | |
sproingie | .oO( wouldn't compile like that either ) |
||
autrijus | "Pugs 6.2.4, bundled with VMWare 5.0" | ||
putter | japhy: nifty. my exerise is much simpler. transliterating a p6 rx into a combination of pcre (aka rx:perl5, though some nice pcre extensions shine through) and p6 code. | ||
Just enough so someone can do a real p6 rx parser using p6 rules. | |||
eric256 freaks when he realized he hasn't heard his daught make any noise for a while... | 19:46 | ||
she fell asleep behind the couch. goofy girl | |||
japhy | putter - so you want something that takes Perl 6 regexes and turns them into the Perl 5 equivalent? | ||
autrijus | putter: that effectively means you need a p6rule parser. | 19:47 | |
so it's not at all simpler :) | |||
(plus an emitter too) | |||
japhy | putter - for that, I'd write the extension to Regexp::Parser for parsing Perl 6 rules | ||
the way the extensions work is they change the grammar of "regex", and require you produce emitters that work in Perl 5 | |||
Juerd | japhy: One problem with parsing Perl 6 rules is that you need to be able to parse Perl 6 | 19:48 | |
autrijus | hmm, so austrian perl workshop and french perl workshop's J*PH competition is an Obfu contest after all. I guess Obfu contest is sanee than Golfing contest | ||
putter | autrijus: not really. you don't have to worry about distinguishing valid for invalid regexp, and | ||
Juerd | japhy: As arbitrary expressions become more important, and something like / { /foo/ } / dwym. | ||
japhy | juerd - can't you simply match braces? | ||
autrijus | japhy: you can -- it won't be 100% correct -- but to hell with it | 19:49 | |
Juerd | japhy: Not without knowing which braces/quotes mean what. | ||
autrijus | i.e. I think it's good enough | ||
japhy | I mean, you'd think I'd have to know how to parse Perl 5 to write a Perl 5 regex parser... | ||
but I don't parse Perl 5. when dealign with (?{ ... }) I use the same mechanism that 'perl' does -- brace counting | |||
Juerd | japhy: / [ @foo[ %bar{ "]" } ] ] / will be hard to parse. | ||
svnbot6 | r3603, Juerd++ | Fix quickref/namespace. Please use some kind of bullets when writing | ||
r3603, Juerd++ | non-code-example non-table lists, *especially* when the list is hierarchical. I | |||
r3603, Juerd++ | previously left-aligned this thing because I thought some strange editor was | |||
r3603, Juerd++ | used messing things up. Single space indents really do not sufficiently make | |||
r3603, Juerd++ | anything clear. | |||
putter | (sorry, distraction, where was I...) | 19:50 | |
Juerd | japhy: Perl 5 first finds the ending, then parses the code inside | ||
japhy: Perl 6 parses both in one pass | |||
japhy | juerd - yes, by brace matching. | ||
juerd - well, isn't perl 6 special. | |||
iblech | autrijus: Is there a way to make newTVar/readTVar/writeTVar in Pugs.Parser work? | ||
autrijus | japhy: vars are never interpolated in p6rules :) | ||
Juerd | japhy: No, by actually using the Perl 6 grammar | ||
autrijus | iblech: sure! | 19:51 | |
japhy | juerd - I meant Perl 5 used brace matching | ||
Juerd | japhy: Oh, yes, it does. | ||
autrijus | iblech: you can use unsafePerformSTM | ||
iblech: but you can also do something I'd wished from time to time | |||
putter | ah, it looks to be a couple of pages of low density code. thats for the parser. as for | ||
autrijus | iblech: namely declaring RuleParser to be a MonadIO instance | ||
iblech: and define liftIO there as unsafePerformIO | |||
iblech | autrijus: #2 is too hard for me yet | 19:52 | |
autrijus | iblech: also if you want an entire expression, unsafeEvalExp too | ||
Juerd | japhy: But that technique is not equally suitable to Perl 6. I'm not saying it can't work in some cases, but it is something to look out for, and perhaps warn for in documentation. | ||
autrijus | (which is often saner) | ||
iblech: sure | |||
japhy | well, I'll ignore the parsing-perl part, and start work on the Perl6 regex parser | ||
autrijus | japhy++ # getting something done | ||
japhy | the beauty of Regexp::Parser is the handlers are entirely arbitrary | ||
autrijus | japhy: PGE::P6Rule looks quite grokkable, if a bit verbose | ||
putter | the emitter... not sure. | 19:53 | |
autrijus | so refer to it if you encounter ambiguities | ||
japhy | so, when I match something that means Perl code comes next, the handler can just call the Perl parser. | ||
where's PGE::P6Rule located? | |||
autrijus | good. then Pugs will have a .parse_perl() method :) | ||
japhy: a copy is in pugs tree, but the newest copy if always in parrot tree | 19:54 | ||
japhy is a n00b to this | |||
autrijus | here: | ||
svn.perl.org/parrot/trunk/compilers/pge/ | |||
Aankhen`` | autrijus >> Apparently GHC won't compile on Windows without MSYS either, so I'm just going to download that. >_> | ||
autrijus | and this: | ||
svn.perl.org/parrot/trunk/compilers...P6Rule.pir | |||
Aankhen``: wow. :-/ | |||
Aankhen``: sorry for costing you so much time | |||
japhy | gotchya | ||
Aankhen`` | Not your fault, dude. | ||
sproingie | autrijus: got the OSSF invite, registered as chuck | 19:55 | |
Aankhen`` | I am only annoyed at GHC. :-P | ||
japhy | wait, so what is PGE::P6Rule? | ||
a perl6-rule parser written in parrot? | |||
Aankhen`` | Oh, there was one thing, autrijus... | ||
japhy | and you guys want one written in perl6? is that what this is about? | ||
autrijus | sproingie: in my journal would you like to be known as chuch or sproingie? | ||
japhy: yes! | |||
japhy | ah ha. | ||
autrijus | sproingie: also please commit to AUTHORS, adding yourself to it | 19:56 | |
s/chuch/chuck/ | |||
sproingie | autrijus: chuck is fine. sproingie is strictly irc (too many chucks wandering around IRC) | ||
japhy | forgive me for sounding naive, but why would a perl6 regex-parser be faster than a parrot regex parser? | ||
Aankhen`` | As far as I can tell upon inspecting the output from `nmake`, the *.lib files are being looked for in the current directory. | ||
sproingie | using my name would give me problems in #freebsd as well as #forth :) | ||
putter | the parrot parser is _very_ incomplete. | ||
autrijus | japhy: it won't. but for p6 to be self-hosting at the end, the parser part needs to not be in assembly | ||
japhy: plus, I have this feeling that a p6-based parser will be easier to hack. | 19:57 | ||
japhy | yes, I agree to both of those. | ||
ok then. | |||
autrijus | japhy: finally, it will push optimisation for p6->* codegen | ||
sproingie | autrijus: do i need to re-checkout the pugs tree with a username or something? i don't know svn that well | ||
japhy | I'll try to have something tangible by the week's end. | ||
or, after memorial day | |||
autrijus | oh and finally, it will make pugs not neccessarily depend on parrot. I'm not sure it's a good thing or not | ||
japhy | that's a better target. | ||
autrijus | sproingie: no, you can just check in with the same tree | ||
japhy++ | |||
japhy | OW! | ||
power packs are freaking hot. | 19:58 | ||
stupid electricity | |||
autrijus | japhy: your email? I need to make you a committer ere I forget | ||
japhy | [email@hidden.address] | ||
I need a laptop that runs on dreams and ambitions | |||
ok. I'll be back later in the week, folks. | |||
autrijus | danke. if you ever start p6izing Regexp::Parser, svn.openfoundry.org/pugs/ under ext/Regexp-Parser/ is the place | ||
japhy: cool, ciao! | |||
japhy | ok | ||
autrijus | invitation sent, too. welcome aboard! | 19:59 | |
autrijus feels excited to have another clearly insane soul on board. | |||
sproingie | hm, hope i don't hose the pinyin names... notepad doesnt think the file is UTF8 | 20:00 | |
putter | do all the pugs targets use the parrot-based pge? or are we going to need multiple emitters (near term)? | ||
sproingie | s/notepad/notepad++/ | ||
autrijus | putter: we already emit haskell :) | ||
putter: and the haskell tries to run external parrot at this moment. | |||
sproingie | doesn't like it in utf8 either actually | ||
putter | ah. ok. | ||
autrijus | but a pure-p6 pge would be fun. | 20:01 | |
at least the parser+emitter part | |||
then we can compile that to PIR | |||
and finish the mini-bootstrapping for the rules part | |||
putter | understood. | ||
autrijus | oh wow. I found a way to trick PCRE into supportting (?{}). | 20:05 | |
svnbot6 | r3604, corion++ | Promoted some symbol table tests that succeed | ||
autrijus | not sure if it's worth pursuing at this point though. | ||
since we'll abandon it soonish | |||
putter | callbacks? | ||
autrijus | yeah | 20:06 | |
putter | I was wondering how hard they would be. But I thought I'd wait to see if they were really needed for the bootstrap. Some uses of (?{}) can be faked... | 20:07 | |
sproingie | what's (?{})? balanced? | ||
putter | embedded code. | 20:08 | |
sproingie | oh duh | ||
neato | |||
iblech | autrijus: Ok. So I tried to make state $x = 42 work, and realized it'd probably be easier to implement FIRST{...} and then make that state $x; FIRST { $x = 42 }. So I created a new TVar (Maybe Val), TVar Nothing meaning the block hasn't been run yet and TVal (Just rv) meaning the block did ran and it's result was rv. Problem: | ||
sproingie has one app that requires PCRE and not perl because it uses variable-width backward asserts | |||
iblech | autrijus: Even after a writeTVar, if the block is executed again, the readTVar I'm using to get at the contents of the TVar (Maybe Val) continues to return Nothing... | 20:09 | |
autrijus: Maybe that's because of unsafePerformSTM? | |||
putter | ruby's new regexp engine is also nice. (name escapes me at the moment) | ||
sproingie | i wonder why perl still doesn't support variable backward asserts? is PCRE's method that incompatible? | ||
autrijus | iblech: that may be so | ||
iblech: I wonder why you need a new tvar for FIRST. | 20:10 | ||
I mean state() is already supported | |||
sproingie: because noone understands the rx engine | |||
svnbot6 | r3605, chuck++ | Added check for MSVC to disable parrot embedding. | ||
r3606, chuck++ | Added Chuck Adams to AUTHORS | |||
putter | sproingie: and note that pcre has restrictions on its use. | ||
autrijus | although a certain demerphq seems to be getting up to speed | ||
iblech | autrijus: Not in its assignment form -- state $x = 42 will reset $x to 42 each time the statement is executed | ||
Aankhen`` | Would temp() be supported any time soon? | ||
iblech | iblech: I need a TVar to remember if I already run the block or not | ||
sproingie | putter: what kind of restrictions? licenses? | 20:11 | |
iblech | autrijus: And I need it to record the return value of the block | 20:12 | |
putter | sproingie (?<=ab(c|de)) isnt permitted. (from man pcrepattern) | 20:14 | |
oh, "its" meaning variable length lookbehinds. | |||
autrijus | iblech: so it indeed looks like the VCode want traits including FIRST | ||
sproingie | putter: mine are just straight branches. negative, actually. (?<!foo|bar|wibble|yaddayadda) etc | 20:15 | |
autrijus | iblech: you grok the freshness hack I used for my(), right? | ||
Aankhen`` | MSYS is messed up. | ||
sproingie | domain names actually | ||
Aankhen`` | I give up. | ||
iblech | autrijus: file:line? | ||
Aankhen`` | I'll just use the external Parrot. | ||
autrijus | iblech: 314 eval | 20:16 | |
iblech: I wonder if you can do the same for SState. | |||
iblech: namely, on | 20:17 | ||
Pad SState lex exp | |||
check if the next exp is an assignment form | |||
if yes, and we are not fresh | |||
skip that | |||
it's a horrible hack! | |||
(but would probably work) | |||
of course the "assignment form" here is a specialised one. | |||
Aankhen`` | Oh... ought I add my name to AUTHORS? | ||
autrijus | Aankhen``: sure | ||
Aankhen`` | OK. | ||
autrijus | iblech: more properly, probably maintain a lexical @?FIRST for each vcode | 20:18 | |
iblech: by using a Syn to push into them | |||
much like what gather/take does | |||
and it needs to be evalExp'ed during parser | |||
there are other possibilities | |||
you can see that I didn't think about this too through :) | 20:19 | ||
iblech | autrijus: I think the @?FIRST thing looks good, I'll try it... | 20:20 | |
eric256 | for some reason it seems hard to drum up much interest in pugs on perlmonks. | 20:27 | |
svnbot6 | r3607, Aankhen++ | * added meself to AUTHORS. | ||
eric256 | autrijus: the links to the newsgroup in your journal seem broken | 20:28 | |
putter | ah, here's the ruby regexp engine www.geocities.jp/kosako3/oniguruma/ | 20:30 | |
a few interesting things. | |||
charset intersections for instance. | 20:31 | ||
xerox | Just a question | ||
Where is Exp defined in pugs sourcecode? | |||
I can't find it :) | |||
wilx | AST.hs? | 20:32 | |
svnbot6 | r3608, ninereasons++ | correct a few spelling problems in 01-00introduction.p6 | ||
iblech | xerox: src/Pugs/AST/Internals.hs, 751 | 20:33 | |
integral | ST.Interals | ||
s/.*// ;-) | |||
xerox | What is the "!" ? | 20:34 | |
integral | it makes that field strict, and the compiler can then unbox it | 20:35 | |
xerox | Do you know what is the part involving AGDT? | ||
integral | GADT? | 20:36 | |
theorbtwo | xerox, do "make haddock", then look at file:///usr/src/pugs/docs/haddock/doc-index-E.html | ||
I'd give you the URL to nothingmuch's copy, but the kwiki is down. | 20:37 | ||
integral | www.pugscode.org/haddock/ I think | ||
xerox | I can't "make haddock" now, in windows | 20:38 | |
integral, yes GADT | 20:39 | ||
integral | look for IVar, that uses GADT | 20:40 | |
xerox | Thanks | 20:41 | |
Where is it defined? | 20:42 | ||
putter | eric256: re perlmonks, perhaps when classes are in and stabalized. turn-key binary distributions would help, apparently especially on windows. more accessible documentation. what else? | ||
integral | xerox: search for data.*IVar in Pugs.AST.Internals | 20:43 | |
putter | giving a realistic picture of what works and what doesn't. after n-years of parrot saying "foo works!" when it really doesn't has left me at least with a bit of "parrot burnout". | ||
autrijus | yeah. anyone want to champion a win32 dist for parrot+pugs? :) | 20:44 | |
I asked the PxPerl guy a bit but hadn't heard back | |||
theorbtwo | Documentation is I think a big one. | ||
putter | anyone actually have parrot+pugs working on win32...? ;) | 20:45 | |
maybe that's the problem <tongue planted firmly in cheek> | 20:46 | ||
autrijus | heh, external parrot works ;) | ||
theorbtwo | Autrijus, we had an idea the other day -- if pugs could be convinced to have a command-line option to output a file with a dump of the Syn tree, complete with positions, it could power perfect syntax hilighter... which could possibly link to docs on the operators as they occour, and how they occour. | 20:47 | |
putter | ;) | ||
autrijus | theorbtwo: -CPugs does that | ||
look at dump.ast | |||
theorbtwo | Looks reasonably parsable. Thanks! | 20:49 | |
autrijus | :) | ||
it's just a haskell expression. | |||
you can parse it with normal Language.Haskell.Syntax. | |||
putter | oh, re perlmonks, and a todo, if someone wanted to make interactive pugs take multi-line input, that would be very nice. | 20:50 | |
theorbtwo | I could, but I think I'd prefer to parse it with p5 or p6. | ||
putter | folks currently cant cut, paste, and try multi-line examples. | 20:51 | |
theorbtwo | Not with the interactive one, anyway. | 20:52 | |
They can always cut-and-paste into a file. | |||
Or hit the "download code" link on perlmonks. | |||
putter | the phrase "barrier to entry" comes to mind. | ||
sproingie | hm. or could do something like perl does if you dont pass it any flags. just reads from stdin | 20:54 | |
pugs --batch? | |||
putter looks forward to html and emacs with nice colorization and metainfo. | |||
Juerd | autrijus: pugs: cannot cast from VStr "|" to Pugs.AST.Internals.VCode | 20:55 | |
autrijus: When doing gather { ... }.join('|') | |||
autrijus: Is my syntax incorrect, needing parens, perhaps, or is this a Pugs bug that needs a test? | 20:56 | ||
autrijus | Juerd: prec | ||
Juerd | I guessed that much :) | ||
autrijus | pugs> gather({ take 3 }).join('|') | 20:57 | |
'3' | |||
or even | |||
pugs> { take 3 }.gather.join('|') | |||
'3' | |||
nice eh? | |||
Juerd | Yes, but it's not really an answer to my question :) | ||
I'm aware of the workarounds | |||
But I thought this was valid syntax... | |||
putter | sproingie: maybe... python has one built in. ruby has a separate program irb. | ||
Juerd | (And would dwimeant) | ||
autrijus | Juerd: I thought gather is a simple sub. | ||
putter | multi-line repl I mean. | 20:58 | |
autrijus | a simple sub without parens always yield the argument to resolve first. | ||
that's what you taught me anyway :) | |||
Juerd | You're right | ||
Blurry mind moment | |||
sproingie | python's interactive mode is a stunning example of how not to make an interpreter behave | ||
in fact most copy and paste examples fail to work in interactive | 20:59 | ||
Juerd | Just its interactive mode, you sure? | ||
sproingie | perl actually has an interactive mode with the debugger | ||
Juerd: no, just one of many | |||
Juerd | Which has almost nothing to do with Perl and just evals expressions :) | 21:00 | |
putter | yes. its a pain. I'm dredging my mind trying to come up with an example of one done wizzily... | ||
Juerd | Interactive interpreters should IMO be avoided at all cost. | ||
For simple tries, you have -e, and for everything else, the interpreter should just work with normal streams, and not special case terminals. | 21:01 | ||
Aankhen`` | G'night. | ||
Juerd occasionally dislikes pugs because of this, and then uses cat|pugs | |||
putter | Juerd: nice repls have a history of making it easy for n00bs to learn... and now the entire p5 community is newbies. | ||
Juerd | And cat|anything should imo never be necessary. | ||
sproingie | considering pugs is named after another interactive interpreter, it might be good to enhance those abilities :) | 21:02 | |
putter | 'night | ||
Juerd | putter: -e makes it just as easy, for perl 5 newbies. | ||
That is: Perl 6 newbies coming from Perl 5 | |||
They are already used to that method of trying syntax. | |||
Or, should be. | |||
stevan | autrijus: I am seeing a very weird bug which I am having trouble reproducing in isolation | 21:03 | |
can you take a moment and see if you know what it is | |||
putter | Juerd: err, just so no. ;) at least for me. | 21:04 | |
Juerd | No comment. | ||
autrijus | stevan: sure | 21:05 | |
Juerd: you have pugs - | |||
"pugs -" that is | |||
stevan | autrijus: ok I am commiting the code now, it's in Perl::MetaModel | 21:06 | |
try this: pugs -I ext/Perl-MetaModel/lib/ ext/Perl-MetaModel/t/00*.t | 21:07 | ||
that should work | |||
oh wait | |||
darn wrong file commited,.. one second | |||
:P | |||
putter | the lisp folks love repls, the smalltalk folks browsers, the scripting folks files. the smalltalk folks hate files, the lisp folks... | ||
autrijus | heh | ||
putter | sigh. | 21:08 | |
autrijus | the lisp folks hate browsers, and scripting folk hates repls. | ||
kelan | autrijus: is darcs read-only for pugs development? | ||
autrijus | kelan: darcs is broken-onl | ||
only | |||
kelan | heh | ||
stevan | autrijus: ok, r3610, try this pugs -I ext/Perl-MetaModel/lib/ ext/Perl-MetaModel/t/00*.t | ||
and it should break | |||
autrijus | the machine went down... if someone can do a svn->darcs replay mirror I'd be grateful | 21:09 | |
kelan | but even then, darcs would be read-only? | 21:10 | |
svnbot6 | r3609, Stevan++ | Perl::MetaModel - refactoring the model; | ||
r3610, Stevan++ | Perl::MetaModel - refactoring the model; | |||
autrijus | kelan: there can conceivably be a way to do rw | ||
kelan | like send the patches to you! | ||
:) | |||
autrijus | kelan: heh, sure, "darc send" targets p6c | ||
in the old darcs mirror | 21:11 | ||
kelan | maybe i should just learn svn | ||
autrijus | well, in svk I borrowed lots of darcs UI too :) | ||
theorbtwo | SVN is easy. | ||
autrijus | like "svk push", "svk pull", "svk patch". | ||
eric256 | svn is realy easy | 21:12 | |
autrijus | and "svk cp svn.openfoundry.org/pugs" is like "darcs get". | ||
kelan | svk get? | ||
autrijus | but svn is a bit easier :) | ||
kelan | ah | ||
stevan | autrijus: as best I can tell, the error happens with nested "use"-ing of classes is more than one level deep, because it does not seem to happen at one level | ||
autrijus | "svk cp" creates local workspace | ||
where commits are local and has to be pushed back | |||
"svk co" will create a workspace where you commit straight back. | |||
kelan | is svk decent? not too unstable? | 21:13 | |
integral | it's 1.000 :-) | ||
autrijus | kelan: it's 1.0 :) | ||
kelan | oh, woo | ||
clkao | *yawn* | ||
autrijus | so both "decent" and "not too unstable" | ||
kelan | heh | ||
autrijus | and we have the author here ;) | ||
kelan | guess thats a bonus | ||
clkao | see the major advantage of svk: | 21:14 | |
eric256 | does anyone else see value in editing Test.pm to allow us to run *ONLY* todo tests? i mean all tests would obviously be run, but report on the status pass/fail of todo tests. would make it easier to see if bugs etc had been fixed. thoughts? | ||
clkao | brautaset.org/ | ||
stevan | eric256: thats a job for Test::Harness | ||
and it already (sort of) does it | |||
autrijus | eric256: I'd rather to make the matrix consume the extra todo info | ||
to display it in diff shades of dark green | 21:15 | ||
I really want that :) | |||
(or dark $other_number) | |||
eric256 | i have no knowledge of matrix or Test::Harness but i will go look and see what i can learn ;) | 21:16 | |
autrijus | clkao: lol, cow orker conversion? | ||
clkao | ya | ||
stevan | eric256: our local Test::Harness (inc/) alredy does this | ||
kelan | hah, i like the last point in favor of svk on that page | ||
autrijus | but HTMLMatrix doesn't yet consume it | 21:17 | |
stevan | ask nothingmuch about the HTMLMatrix | ||
kelan | clkao: but is it true?? | ||
;{ | |||
er ;) | |||
stevan | eric256: all it is if the TODO reason, which should be readily accessible | ||
autrijus | or better, send patch to nothingmuch :) | ||
clkao | kelan: mind that he is comparing me with tomlord. so i can shamelessly say yes, i'm quite sure. | ||
kelan | heh | 21:18 | |
autrijus | clkao: he is also on the uppercase camp! | ||
clkao | bwahaha | ||
autrijus rallies for the uppercase camp | |||
clkao | autrijus: what's new and exicting today? | ||
kelan | are (m)any others using svk for pugs development? | ||
autrijus | kelan: svk.elixus.org/?ProjectsUsingSVK | ||
probably similar in size vs darcs, to the zeroth approximation | 21:19 | ||
clkao | $ ab -clkao- [~] svk pg svk:merge work/pugs/|wc | ||
18 18 933 | |||
stevan | autrijus: any thoughts on that error? | ||
clkao | and some (like me) will do direct commit with svk rather than local branch for now | ||
autrijus | stevan: yes, the "is ::" syn is not yet parsed. | ||
stevan: will fix it now | |||
clkao | i might implement Benchmark(::Accurate) tomorrow | 21:20 | |
autrijus | clkao: actually me too | ||
the ci -P feature is too good | |||
kelan | clkao: any advantage to either method? | ||
autrijus | so I no longer need local branch | ||
clkao | why odyou need to ci -P ? | ||
stevan | autrijus: odd, because it works in P::MM::Class::Behavior the first time | ||
autrijus | clkao: because my co is mirror | ||
clkao: and I don't bother to local branch. | |||
clkao | oh. not for pugs | ||
autrijus | (and I sometimes have no net) | ||
indeed for pugs. | |||
stevan | but then fails in P::M::MetaClass (2 levels deep) | ||
clkao | oh ok. but then you have to svk aptch --apply.. sometimes more annoying han svk push | 21:21 | |
autrijus | clkao: actually... I just use patch < ;) | ||
(and only fallback to svk patch --apply when there's conflict, which is not much) | |||
clkao | func (arg, ..) is quite annoying with can't find the form &fun | ||
can the error tbe more verbose for bastards like me who used to have space there? | 21:22 | ||
ie, "do you have an extra space?" | |||
autrijus | maybe you really meant that :) | ||
clkao | i mean when it fails. | ||
autrijus | oh. | ||
clkao | i spend some time doing vdiff for my test.pl and something in t/ | 21:23 | |
can't figure out what's happening until i remember the hate of meaningful whitespace | |||
autrijus | ok ok fixing | ||
clkao | autrijus++ | ||
autrijus | do you need it for | 21:24 | |
$obj.method (1,2) | |||
too? | |||
clkao | i guess so. | ||
autrijus | oh wait, that's a synerror | ||
you get what you deserve :) | |||
so just normal form then | |||
clkao giggles | |||
autrijus | done | 21:27 | |
testing | |||
so it only warns when it would actually have matched something :) | 21:28 | ||
clever, eh? | |||
clkao | ya :p | 21:30 | |
autrijus | $ ./pugs -e 'say index(123, 1)' | 21:31 | |
0 | |||
$ ./pugs -e 'say index(123, 1, 5, 6)' | |||
*** Error: No compatible subroutine found: "&index" at -e line 1, column 5-24 | |||
$ ./pugs -e 'say index (123, 1, 5, 6)' | |||
*** Error: No compatible subroutine found: "&index" at -e line 1, column 5-25 | |||
$ ./pugs -e 'say index (123, 1)' | |||
*** Error: 05:21 < clkao> ie, "do you have an extra space?": "&index" at -e line 1, column 5-19 | |||
clkao | "mind the gap" | ||
autrijus | happy? | ||
kelan | hah | ||
clkao | damnit i'm so british | ||
autrijus thinks clkao missed the joke. oh well :) | 21:33 | ||
clkao | i didn't :p but i think mind the gap is funnier | 21:34 | |
autrijus | r3611. now returning to stevan's bug.. | ||
q[acme] | ;-) | 21:35 | |
clkao | hmm acme is not out partying today | ||
autrijus thinks having column numbers in error messages is an improvement | |||
may be of use for a certain Perl 6 ebugger in the future | 21:36 | ||
clkao | orz | ||
autrijus | clkao: so I'll submit 5 talks to euro oscon... are you submitting any and/or coming to euroscon? | 21:38 | |
svnbot6 | r3611, autrijus++ | * gap-minding for failed function lookup due to trailing space, suggested by clkao. | ||
r3611, autrijus++ | $ ./pugs -e 'say index (123, 1)' | |||
r3611, autrijus++ | *** Error: Extra space found after &index (...) -- did you mean &index(...) instead? at -e line 1, column 5-19 | |||
clkao | autrijus: i guess i will. why the hell do you have 5 talks to submit | ||
some overlapped talk/tutorial ? | |||
when is the submission closing? | |||
autrijus | tomorrow | ||
clkao | ARSE! | ||
autrijus | two tutorials: | ||
- Perl and Internationalisation | |||
- Perl 6 in the Real World | |||
three talks: | |||
- Learning Haskell | |||
- Introduction to Pugs | |||
- Web Continuations: Now and the Future | |||
not much overlapping really. | 21:39 | ||
clkao | cool. | ||
droppying by london afterwads? | |||
autrijus | or before. both are possible | 21:40 | |
theorbtwo | I'd be pretty impressed if you were giving two talks at the same time, autrijus. | ||
clkao | cool. | ||
coro autrijus { } | |||
autrijus | theorbtwo: actually ingy tried that last year | ||
not very succeddful | |||
clkao: no, that needs to be async{} | |||
theorbtwo | I should think not. | ||
Corion | I assume one would need two mouths to give two talks ... | 21:41 | |
autrijus | Corion: nono... just need one cospeaker at each. | ||
that's the trick | |||
Corion | autrijus: Yeah - meta-mouth | ||
autrijus | it's not meta, it's merely delegation to proxy | ||
iblech | has $.cospeaker handles <say_something> :) | 21:44 | |
autrijus | right :) | ||
yay, yet another refactoring done in parsec | 21:45 | ||
clkao | oh you haven't implemented the overload in class method | ||
autrijus | stevan: your bug eas caused by class{} and class; parsed differently | ||
clkao: because it turns out that our treatment of invocants is all wrong. | 21:46 | ||
clkao: there can be multi level of such invocants | |||
and still nobody answered my "foo(1: 2: 3: 4:) ?" thread. | |||
clkao | argh. | ||
autrijus | and there's zero sentence of spec about this. | ||
so I'm not terribly happy :) | |||
stevan | autrijus: so is it fixable? | ||
autrijus | stevan: sure, committing | 21:47 | |
stevan | :) | ||
theorbtwo wonders why we don't have any smiley-face operators yet. | 21:48 | ||
:( if $foo->no_good; | |||
OK, I do know why -- they all conflict with something else. | 21:49 | ||
autrijus | āŗ if ā» ; | ||
stevan: I fixed the parsing | 21:53 | ||
svnbot6 | r3612, autrijus++ | * unify parsing for `class Foo {}` and `class Foo;` -- the latter | ||
r3612, autrijus++ | form was without `is Bar` handling. | |||
stevan | autrijus++ thank you thank you :) | 21:54 | |
autrijus | but somehow it still fails for me... I'm recompiling again, but it'd be nice if you can reduce it a bit | ||
stevan | autrijus: I will try | ||
autrijus | you thank me too soon :) | ||
stevan | autrijus: I am just not sure where the issue is coming from | 21:57 | |
I suspect it might have something to do with the nested use | |||
I will do some basic tests and see what happens | 21:58 | ||
autrijus | I think it's nested use. | 21:59 | |
autrijus finds pugs becoming faster to compile recently | 22:00 | ||
must be all the refactoring into small modules :) refactoring++ | |||
oh wait, I compiled again | |||
and reinstalled things | |||
all works now | |||
stevan | autrijus++ # see I always have faith in you | ||
autrijus | :D | ||
stevan | I will finish my test case none the less :) | 22:01 | |
autrijus | sure :) | ||
I wonder if, instead of creating a new package data type, I should reuse the hash | 22:02 | ||
and maybe put second-level namespace like Foo::Bar:: as part of the Foo:: hash | 22:03 | ||
then I realised that is exactly what perl 5 does ;) | |||
I'm evidently brainwashed. | |||
Corion | r3611 - datenzoo.de/pugs/win2k.html | 22:04 | |
stevan | autrijus: it is the nested use, I managed to isolate it | ||
autrijus | cook | ||
cool | |||
stevan | will commit the test soon | ||
autrijus | Corion: "Kopie von system"? | ||
was ist das? :) | 22:05 | ||
Corion | autrijus: Ooops :) My local tests that I'm working on :) | ||
"Copy of system" | |||
autrijus | sure, I can read that :) | ||
only 85 failures! | |||
actually more like 70 | 22:06 | ||
and only 40 or so are regressions | |||
not bad at all. | |||
it's nice how the tests forces the internal into constructive refactoring | 22:07 | ||
in order to stay sane and not regress | |||
I guess that is the whole point... but it's the first time I'm seeing it in real action :) | |||
theorbtwo | Well, p5 uses a hash of globs. p6 should use a hash of refs to items, with the keys including sigils. (And twigils for the things with twigils that are in a package...) | 22:09 | |
autrijus | yup. | ||
eric256 | for sub paramterers we have as rw .... will we eventualy get things like as copy and as ref? or does rw modify the actualy value passed? | ||
autrijus | that's the idea | ||
eric256: we have is copy | 22:10 | ||
sproingie | twigils? | ||
eric256 | never mind then. lol | ||
theorbtwo | The = in $=POD. | ||
autrijus | I don't know how exactly "is ref" and "is rw" differ... oh, ref doesn't vivify. strange | ||
eric256 | i saw code do sub name ($x) { my $copy = $x; } | ||
autrijus | I'd consider doing it when there's 1)demand 2)test | ||
eric256: chances are it's written before `is copy` | |||
eric256 | cool. thanks | 22:11 | |
autrijus | sproingie: twigil = "secondary sigil" | ||
ingy: pugs.kwiki.org still broken | |||
theorbtwo wonders how secondary sigil got shortened to twigil. | |||
autrijus | pugscode.org <Overview Journal Logs | pugs.kwiki.org down | ||
er. | |||
pugscode.org <Overview Journal Logs | pugs.kwiki.org down | 22:11 | ||
theorbtwo | Oh. t comes after s. | 22:11 | |
pugscode.org <Overview Journal Logs> | pugs.kwiki.org down | 22:12 | ||
autrijus | theorbtwo: no. "sigil" is like "singular sigil" | 22:12 | |
"sigil" "twigil" "thrigil" "quarigil" | |||
theorbtwo | Ah. | 22:13 | |
knewt | yaaay. got my haskell code all working. probably horrifically bad haskell, but it works :) | ||
autrijus | or "quagil" | ||
knewt: nice! what does it do? | |||
theorbtwo | That's really sick, but it works. | ||
sproingie | trigil | ||
autrijus | trigil, yeah. | ||
sproingie | pengil? | 22:14 | |
autrijus | so sigil-less dialects have "nugil" | ||
knewt | autrijus: some new bit of small functionality for darcs | ||
autrijus | knewt: cool! | ||
nothingmuch | evening | ||
autrijus | greetings nothingmuch-san | ||
theorbtwo | G'evening, Yuval. | ||
nothingmuch | salutations autrijus-san | ||
sproingie | i need to relearn haskell. i need something to do in haskell | ||
nothingmuch | hello James. | ||
sproingie | i suppose pugs would be a good project. little brain-bending i suppose | 22:15 | |
nothingmuch | sproingie: whatever you're going to do next in language X that isn't time critical | ||
stevan read theorbtwo's greeting as "G'evening Ya'all" | |||
autrijus | actually I'd argue that if it's time critical, you may learn better | ||
<- learned haskell that way | |||
nothingmuch | hah | ||
sproingie | its just all those damn monads. i get the idea of them, then someone goes and does something with 'em that makes me think i didn't know anything after all | 22:16 | |
knewt | autrijus: let's you continue a darcs get. eg, if a previous one died part-way through, or you want to get the latest repo using get rather than pull, but you don't want to bother downloading patches you already have | ||
theorbtwo | Telling paying clients you can do something tends to provide a reason to get it done, yes. | ||
autrijus | knewt: oh wow nice! | ||
sproingie | point-free programming lets you do some serious FP golf | 22:17 | |
autrijus | sproingie: well, containerish monads and actionish monads are indeed very different. | ||
knewt | autrijus: i only looked at haskell for the first time last night | ||
nothingmuch | knewt: what's the different between that and pull -a? the way patches are merged? | ||
autrijus | knewt: ! | ||
nothingmuch | knewt++ # fast learner | ||
autrijus | sproingie: right. ]`(($:@:((}.<:{.)#}.)),{.,($:@:((}.>{.)#}.)))@.(*@#) is a golfer's dream | ||
knewt | (this channel)++ # helping me out where i did get stuck at one point | ||
autrijus | ( quicksort from en.wikipedia.org/wiki/J_programming_language ) | ||
sproingie | it's just every time i start thinking about haskell ... well, all my apps have lots of state | 22:18 | |
theorbtwo | .oO(And people say perl is write-only!) |
||
autrijus | if some people think perl is line noise, just point them to J | ||
nothingmuch | oh my | ||
sproingie | now keeping one piece of state in a state monad is no problem. but let's say one was coding a mud | ||
autrijus | sproingie: my fav monad is ReaderT IO :) | 22:19 | |
sproingie | lots of state all over. i can't figure out how to juggle it all in haskell | ||
autrijus | sproingie: that lets you program in a pseudo-imperative mannter. | ||
sproingie: see my entry on haskell wiki about that | |||
sproingie | autrijus: what's the url for the haskell wiki? | ||
autrijus | # haskell.org/hawiki/StateMonad | ||
under "Using ReaderT in place of StateT IO" | 22:20 | ||
I learned all my haskell on the wiki (and a bit from #haskell) | |||
sproingie | huh. wow, that is rather imperative | ||
knewt | i've been heavily using the haskell tutorial, "A Gentle Introduction to Haskell" | 22:21 | |
sproingie | knewt: i never found that tutorial particularly gentle | ||
autrijus | sproingie: and in my newbiehood, I went ahead and defined all sort of imperative constructs | ||
knewt | sproingie: i may not have done any haskell before, but i /have/ used functional languages in the past | ||
autrijus | infixl 5 $$ $= += %? %: @= %= %%= | 22:22 | |
that does array, hash, etc manipulation like I used to | |||
sproingie | i guess were i to do something as stateful as a mud, i'd just have a bunch of maps in that Vars section? | ||
autrijus | sproingie: each entry in Vars is a "lexical variable" | ||
sproingie: so you can have some Map that represents hash | 22:23 | ||
(Map String String) is a good start | |||
and some arrays [String] | |||
and some simple vars | |||
you can always read and write to them, and even enter a new lexical scope with "local". | |||
the only thing you can't do is a "return()" to end prematurely from a block. | |||
sproingie | ahh i see the difference ... modifyIORef is the stateful magic, eh? | 22:24 | |
autrijus | yes | ||
if you want that, you want to layer on ContT as well. then you have the Pugs's Eval monad. presto :) | |||
sproingie ponders, a haskell mud | |||
autrijus | so the main code in Eval, Prim and Types are all in Eval monad | 22:25 | |
sproingie | bottom hits! bottom hits! bottom hits! bottom hits! bottom hits! ......... | ||
and an infinite number of hits later, you die... | |||
autrijus | so you can say pugs internals have this "imperative flavour" | ||
(which is quite unlike how "normal" interpreters are done in haskell" | |||
theorbtwo | (multipragatisim)++ | 22:26 | |
sproingie | i wonder how hugs and ghci do it | ||
autrijus | sproingie: ghci compiles the code to .o, load it, run it. | ||
but it still "interprets" the bytecode object file | |||
sproingie | ah | 22:27 | |
autrijus | I don't know how it does that though. probably by calling into the RTS in C | ||
sproingie | hugs i guess does something similar? | ||
autrijus | hugs is all implemented in C | ||
:) | |||
sproingie | ah | ||
dvtoo | autrijus: I think you have to have native code generation support for ghci | 22:28 | |
sproingie | >>> ... Autrijus gets commit priveledges for Parrot. The general consensus was that he was too productive in Haskell and we needed to hobble him with a real mans language like C. | ||
autrijus | sproingie: where "general consensus" represents strictly the summariser's alone | 22:29 | |
dvtoo | shelling out to gcc would be kind of slow | ||
autrijus | dvtoo: right, so it does it in bytecode | ||
dvtoo: but it is still compiled | |||
it's just the emitter doesn't really shell out to gcc | |||
dvtoo | nod | ||
autrijus | ghc can emit bytecode, assembly, or C-- | ||
only the latter is passed to gcc | |||
theorbtwo | gcc does C--? | 22:30 | |
autrijus | theorbtwo: yeah, since 6.4 | ||
sproingie | ghc that is | ||
autrijus | that was one of the highlights of 6.4 | ||
GCC doesn't | |||
C-- can be trivially turned to C. | |||
sproingie | when are they gonna have it emit llvm? | ||
autrijus | sproingie: I thought GHC emits SSA now? | ||
so you can feed the SSA to LLVM | |||
what is the point though :) | |||
sproingie | didn't know that | ||
autrijus | er, I mean, GCC emits SSA now. | 22:31 | |
as of GCC4 | |||
sproingie | yes but it can only be processed by gcc | ||
autrijus | ahh. | ||
sproingie | RMS deliberately keeps gcc from being modular | ||
autrijus | so that's why llvm can pass to gcc but not vice versa | ||
really. tell me more! url? links? interviews? | |||
sproingie | he doesn't want proprietary compilers able to use any part of it | ||
autrijus | <- going to interview RMS next week | ||
sproingie | ask gcc developers | ||
they're pissed off at him | 22:32 | ||
autrijus | but but it's already GPL | ||
isn't GPL enough? | |||
sproingie | apparently not for RMS | ||
autrijus | that's wacko. got any url or googlable words? | ||
sproingie | well the SSA stuff i don't know what his politics are. commonly held that he held back documentation of RTL for similar reasons tho | 22:34 | |
lemme see what there is on that | |||
autrijus | held back documentation is even more wacko. | 22:35 | |
sproingie | gcc.gnu.org/ml/gcc/2000-01/msg00572.html | 22:36 | |
autrijus | hm, 5 years ago? | ||
sproingie | he hasnt changed | ||
this is RMS we're talking about | |||
autrijus | ah. looks actually kind of reasonable | 22:37 | |
he's not prohibiting things, just asking people to weight the benefits | |||
putter | odd question: I would like to quote chuncks of text (source code). one would normally use a heredoc. what is the most... heredoc-like... quoting construct which currently works. level 0 or 1 (non-interpolating). Thanks! | ||
iblech | YAY! I think I've implemented FIRST {...} :)) | 22:38 | |
putter: say "abc | |||
def | |||
ghi" | |||
putter | :) | ||
autrijus | iblech: wow. color me impressed | ||
sproingie | no, he's vetoing it. "Because of this, the GNU Project will in all probability not install such changes, should they be available. This statement reflects a firm conclusion based on a decade of thought." | ||
iblech | :) | 22:39 | |
autrijus | sproingie: but gcc3 iirc was born because people forked and ignored him :) | ||
sproingie | the SSA thing could take it out of his hands tho | ||
autrijus | (and was only later renamed to gcc3) | ||
dvtoo | and I thought RMS had a lot less to do with it now because of that? | ||
sproingie | RTL was the weapon before -- hardly anyone understood it, and it was the glue between gcc's front and backends | ||
autrijus | well, software wants to be free, is all I can say :) | 22:40 | |
(i.e. free from control, too) | |||
sproingie | i dunno, still might use RTL tho | ||
putter | any thoughts at all? else it's groveling over the smoke for quoting.t for me... | 22:42 | |
sproingie | i kind of like using tcc. i sometimes write scripts in C using #!/usr/local/bin/tcc at the tip | ||
top | |||
putter | libtcc++ | ||
sproingie | i just wish there was a tcc for windows. there was a project to port it, but it kind of fizzled out | 22:43 | |
autrijus | putter: I think implementing heredoc is the best bet. | 22:44 | |
putter | yeah. that's why I have an unfinished Inline::C::libtcc ;) | ||
sproingie | apparently it goes source -> GENERIC -> SSA -> RTL -> machine | ||
autrijus | I was looking at SSA<->ANF yesterday. ANF looks far more elegant than SSA | 22:46 | |
putter | autrijus: eeep. rule bootstrap first, *then* heredoc... | ||
sproingie | what's ANF? | ||
autrijus | putter: why? what does rules have to do with heredoc | ||
sproingie | BTW, anyone have any recommendations for introduction to compiler design? | ||
knewt | ok, sent my couple of patches off to darcs-devel :) | ||
autrijus | sproingie: www.jantar.org/papers/ssa-lambda/ | ||
sproingie | i tried the dragon book, but found it practically unreadable. seriously the typeface alone gives me headaches | 22:47 | |
autrijus | sproingie: TaPL and ATTaPL | ||
sproingie | autrijus: expansion of these acronyms? | ||
autrijus | knewt++ # I'm looking forward to your Pugs/src/ patches | ||
Types and Programming Languages - Benjamin C. Pierce | 22:48 | ||
Advanced Topics in Types and Programming Languages - Benjamin C. Pierce | |||
cognominal | sproingie: it takes time to make headwy in all this functional/type stuff | 22:49 | |
putter | I'm working on rules now. Heredoc or some nice quote op would only simplify some metaprogramming. But I can live with ' '. So heredoc later, no? | ||
cognominal | I know that I have some progress because some stuff that was indicepherable to me is become readable | ||
I have a long way to go though | 22:50 | ||
sproingie | cognominal: most texts on types assume i have graduate level education in category theory | ||
knewt | autrijus: heh. i knew i should have stayed away from haskell. yet another language to get stuck in my brain now. but the continue feature will be very useful for my darcs->svk mirror code *g* | 22:51 | |
autrijus | ooooh! | ||
knewt++ | |||
cognominal | in the jungle of papers, I have found authors I can read: Simon Peyton Jones, Wadler... | ||
autrijus | I want that code :D | ||
clkao | i thought you can use tailor alrady | ||
autrijus | cognominal: I think SPJ can write/co-author papers faster than I can read them | 22:52 | |
he is truly a machine. | |||
cognominal | Also, I like "Qualified type" from Mark P. Jones available as a book. | ||
I have a long way to go. | 22:53 | ||
knewt | doesn't do what i want unfortunately. so i'm still going to work on my mirror code. got a couple of new ideas on how i'm going to do the processing after playing with darcs a bit more | ||
autrijus | clkao: so, svk support for tailor? | ||
cognominal | Initially I had a lot of trouble with the functional vocabulary, than even parsing their rules | ||
sproingie | wadler is pretty readable, yah | 22:54 | |
xerox | #haskell people is dead, I'll ask here, it's not completely OT, I think. Why if I do "type Id a = a; data IntM m = IntM (m Int)", then :type 2 :: IntM Id does give this error: "Type synonym `Id' should have 1 argument, but has been given 0" ? | ||
clkao | autrijus: no. | ||
cognominal | Didier Remy is good too like the other ocaml folks | 22:55 | |
nothingmuch | does ingy know that pugs.kwiki.org is kaput? | 22:56 | |
autrijus | xerox: synonym can't be used in head form. | 22:58 | |
xerox: its args needs to be fully specified. | |||
think of it like C macros. | 22:59 | ||
xerox | autrijus, why? | ||
autrijus | why? because the spec says so :) | ||
I wasn't around, I don't know why it's specced like this | |||
you can usually use a newtype. | |||
newtype Id a = MkId a | |||
or something like that. | |||
xerox | I'd like to do it as (->) with Arrow | 23:02 | |
I mean, you can do "arr (+2) $ 2" ==> 4 | |||
autrijus | I'm completely clueless on Arrows | ||
:) | |||
xerox | It transparently works | ||
sproingie | what the heck is an arrow anyway? | 23:03 | |
xerox | hmpf.. | ||
autrijus | I mean, I know what an arrow is and how it relates to category theory | ||
but I had not used it in real life | |||
sproingie: haskell.org/arrows/ | |||
sproingie | autrijus: yah i've read that. i'm just as mystified now | ||
svnbot6 | r3613, iblech++ | Added type signatures to the compile_test()s of config_h.pl. | 23:04 | |
r3614, iblech++ | EOLs at EOFs and usual svn properties. | |||
r3615, iblech++ | * FIRST {...} and my $x = FIRST {...} support. :) | |||
r3615, iblech++ | * And a test for it (t/statements/first.t). | |||
autrijus eagerly looks at iblech's implementation | |||
sproingie | taking inputs of one type and producing outputs of another type sounds a lot like a plain ol function, except that the type changes | 23:05 | |
autrijus | iblech: neat! very neat! | ||
sproingie | or if it's actually mapping types, then a functor | ||
autrijus | iblech: only drawback is that it will run twice if the first run yields undef. | ||
xerox | Anyway, thanks for the answers. | ||
iblech | :) | ||
autrijus: Yeah, I'll propably add a second state var to it tomorrow or so | |||
autrijus | iblech: but you++ | 23:06 | |
sproingie | partly due to ambiguous language. "input of one type". is that an input that has that type or is that input a type? | ||
autrijus | this is wonderful | ||
sproingie | i love the language like "(specifically: a weakly symmetric lax monoidal functor)" | 23:07 | |
that sounds like a chronic condition my doctor would tell me i have | |||
iblech | :D | 23:08 | |
cognominal | prognosis => bad | ||
autrijus | sproingie: nah, it's only pre-monoidal structure | ||
sproingie | oh so i can get it removed | 23:09 | |
autrijus | you can still lift it out of its natural transformation, using Kleisli operations | ||
yeah | |||
sproingie | "you have a weakly symmetric lax monoidol functor. but don't worry, we can lift it out with a Kleisli operation" | 23:10 | |
i wish they accompanied the arrows page with real-world uses | |||
autrijus | isn't "generalized abstract nonsense" fun? | 23:11 | |
sproingie: arrows are used in FRP | 23:12 | ||
nothingmuch | autrijus: want to correct initial acrosyphilis 02? | ||
autrijus | in particular yampa. | ||
haskell.org/yampa/ | |||
nothingmuch: sure! | |||
pasteling | "nothingmuch" at 212.143.91.217 pasted "Pugs Apocryphon 2 - Overview of Pugs Internals" (194 lines, 7K) at sial.org/pbot/10311 | ||
autrijus | 194 lines! | 23:13 | |
please check it in. please :) | |||
docs/02Internals or something | |||
nothingmuch | going to sleep in 5 mins anyway | ||
yep | |||
i'll just run aspell | |||
sproingie | ooh FRP. i remember frantk | 23:15 | |
cognominal | nothingmuch, thx you. I really need the A2 to grok pugs | ||
nothingmuch:++ | |||
sproingie | i always thought frantk was the best gui design | ||
nothingmuch | yuck! cockroach! | 23:17 | |
eek! it got into my bag! | 23:18 | ||
eric256 | can anyone think of a good infix operator to signify a random range....i thought of between, and in, but those dont work infix. | 23:20 | |
say 1 to 5; | |||
nothingmuch changed it's state of matter | |||
autrijus | .?. | ||
say 1.?.5 | |||
eric256 | hmmm not bad. i like that. | ||
nothingmuch | should be trivial too | ||
eric256 | done. cool | 23:21 | |
nothingmuch | sub &infix:<.?.> ($to, $from){ any($from .. $to).pick }; | ||
eric256 | i'm gonna end up with my own library of these things. ;) | ||
autrijus | say 1 ā 5; | ||
eric256 | multi sub infix:<<.?.>> ($low,$high) {int ( rand ($high - $low) + $low ) + 1; }; | 23:22 | |
that way there is no memory issue with 1 .?. 10000 | |||
nothingmuch | blah blah blah | 23:23 | |
FP heads don't concern themselves with memory | |||
;-) | |||
eric256 | lol ;) autrijus what forieng language is that and how do i convice trillian to show those correctly? | ||
sproingie | FP folks know there's no such thing as a list, just the elements out of the list you need right now | 23:24 | |
autrijus | eric256: I don't know, it's utf8 | ||
FP folks know the value of everything and the cost of nothing | |||
nothingmuch | sub &infix:<+> ($n, 0) { $n }; sub &infix:<+> ($n, $m) { inc($n) + dec($m) }; | ||
sproingie hasnt found a windows irc client yet that doesnt suck | |||
autrijus | the cost of Nothing is, of course, the cost of Maybe. | ||
irssi doesn't suck! | |||
esp. when running on xorg on cygwin32 | 23:25 | ||
eric256 | how do you type those things on a keyboard anyway? or do you have second keyboard with those symbols on them. lol. /me pictures a computer setup with like 6 keyboards ;) | 23:26 | |
autrijus | eric256: no, I just look them up from Unicodedata.txt | 23:27 | |
UnicodeData.txt, rather | |||
sproingie | i want something where i can hit a key, start typing the description of the character, and have that narrow down a list of the characters | ||
hm. i could probably write such a beast come to think of it | 23:28 | ||
theorbtwo | www-950.ibm.com/software/globalizat...mo/unicode is quite useful, though the UI sucks. | ||
Later! | |||
autrijus | nothingmuch: how's aspell? | 23:29 | |
how's aspell going, that is | |||
nothingmuch | soon... i'm annotating the reduction of C<for> | ||
actually screw aspell, it's not installed | 23:30 | ||
knewt | ah, ā == U+2047 | ||
iblech turns into aspell and says to nothingmuch: At the top somewhere you wrote "perl 6" in lowercase and the filenames were not F<..>'ed | 23:33 | ||
svnbot6 | r3616, eric256++ | Added random element in range overload as .?. | 23:34 | |
eric256 | what do stars in the paramter list mean? | ||
nothingmuch | iblech: should F<> be in a heading? | ||
iblech | nothingmuch: IIRC F<> should be everywhere where there's a filename, no matter if it's in the heading or not | ||
autrijus | eric256: it means they are slurpy -- i.e. it will consume multiple arguments, or part of an argument array | ||
eric256: sub foo (*@_) { say @_[0] }; foo(1,2,3); # 1 | 23:35 | ||
sub foo (@_) { say @_[0] }; foo(1,2,3); # error - 1 is not arra | |||
array | |||
eric256: the * denotes a perl5ish behaviour. | |||
where all arguments are slurped together | |||
eric256 | cool | 23:36 | |
so quicksort ( *$x, *@xs ) { means $x is the head, and anything else goes in @xs....any reason $x is slurpy there? | |||
autrijus | because if it is not, then you can't say | ||
quicksort(@a) | |||
because $x will bind to @a | |||
*$x means it binds to @a[0] | |||
eric256 | ahhh. cool | 23:37 | |
\ | 23:42 | ||
opps. lol. sub test (@a) {@a.say}; (1..6).test; works. is that expected or a bug? i thought i would have to extend the Array class or something | 23:43 | ||
autrijus | that is not a bug :) | ||
AtnNn | isnt [|](1,2) supposed to be (1|2)? | 23:44 | |
clkao | pugs -Cparrot doesn't seem to work? | ||
autrijus | you will discover that perl 6's object invocation is even more magical than perl 5's | ||
clkao: capitalisation | |||
clkao: fix for that welcome | |||
look at Main.hs or Run.hs and allow the lowercase form | 23:45 | ||
AtnNn: yes. bug. test please | |||
clkao | but lots of builtins aren't translated? | ||
autrijus | clkao: yes, that's what I'm going to Leo's place for. | ||
to unify the interpreter core with compiler core | 23:46 | ||
so all interpreted contructs are compilable | |||
clkao | *nod* | ||
and that's happening in 2 weeks? | |||
autrijus | needs heavy help from the parrot side. | ||
something like that, yes. | |||
knewt | ah, i need to get round to booking the flight to vienna. and posting to the apw list and begging for crash space | ||
autrijus | and I need to apply for visa ;) | 23:47 | |
clkao | eval_parrot works? | ||
visa-- | |||
autrijus | clkao: sure does | ||
eric256 | why would you ever *want* [|](1..5) when you could do any(1..5) or (1..5).any .... realy i am curious. is there some other reason than it aught to work (which it should) | ||
AtnNn | to play golf? | ||
clkao | i am pondering about a module to produce parrot nci registration | ||
svnbot6 | r3617, nothingmuch++ | Initial version of the Pugs Apocryphon 02 - internals. | 23:48 | |
r3617, nothingmuch++ | Covers simple parse/eval workflow, and starts the details of Exp reduction. | |||
nothingmuch | okay, comitted | ||
autrijus | any is 3char, [|] also 3 | ||
clkao: that'd be cool. seen chromatic's p5nci? | |||
clkao | ya | ||
autrijus | nothingmuch++ | ||
clkao | but i'm not completely sure how things in parrot gets natively used in pugs yet | ||
nothingmuch | i hope this doesn't sound very assholy, but I'd appreciate it if no major changes are made till I'm done with a first draft, I have a pretty clear idea of how I want this. Corrections and small additions welcome, ofcourse. | 23:49 | |
autrijus | clkao: the short answer is it doesnt. | ||
yet. | |||
clkao | crap | ||
autrijus | clkao: it will, however, in 2 week's time. | ||
so please be patient and watch the blinkenlights. | |||
nothingmuch | anybody got any initial comments? | ||
clkao | we need to do that with the meta class and meta subroutine ? | ||
autrijus | that what eh? | 23:50 | |
nothingmuch: I prefer | |||
Pugs's | |||
to | |||
Pugs' | |||
clkao | tying alien (or native) functions | ||
eric256 | comments on what nothingmuch? | ||
autrijus | otherwise I read "Pugs prime" | ||
eric256: docs/02Internals.pod | |||
nothingmuch | heh | ||
autrijus | clkao: oh. no. in -CParrot mode they are just prims. | ||
nothingmuch | there, more karma for me =) | 23:51 | |
autrijus | clkao: in haskell space it may also be just AUTOMETH or friends. | ||
clkao | how do you define/override subroutine/method in runtime in perl6? | ||
autrijus | clkao: you use the store_global opcode. | ||
clkao | i guess no more crack like *foo::bar = sub { } | ||
autrijus | Globs Are Dead. | ||
clkao | s/guess/am glad/ | 23:52 | |
autrijus | then it's at least grateful dead | ||
svnbot6 | r3618, nothingmuch++ | Pugs' -> Pugs's | 23:53 | |
r3619, iblech++ | Usual svn properties and very minor PODification (.../ -> | |||
r3619, iblech++ | L<.../>) done to nothingmuch++'s 02Internals.pod. | |||
r3620, iblech++ | * state $x = 42 works! :) | |||
r3620, iblech++ | * Fixed t/var/state.t ([1,2,3] -> ((1,2,3)). | |||
putter | good night folks. | 23:54 | |
theorbtwo is back. | 23:55 | ||
autrijus | iblech: amazing | ||
iblech | That one was easy, now that there's FIRST :) | ||
autrijus | and you said it was easy :) | ||
I finally know the feeling of how other people perceive my internals work :) | |||
iblech | :) | ||
autrijus | looks correct. | 23:56 | |
iblech++ | |||
iblech | ok, gonna sleep & | 23:57 | |
(this day)++ | |||
knewt | oh hell. i haven't mirrored for a while it seems. back on r3231 | 23:58 |