The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by stevan on 23 December 2005.
svnbot6 r8511 | stevan++ | PIL/Native/Bootstrap.pil 00:16
r8511 | stevan++ | - added ::Package.FETCH and ::Package.STORE to handle basic
r8511 | stevan++ | package variable/subroutine accessing
anatolyv quit 00:24
dduncan question ... 00:41
regarding that there is a Haskell native subset of PGE functionality
can we start using that by default, or do we need to especially compile it with a make flag? 00:42
I guess not ... attempts to say $foo ~~ m/pattern/ give an error about can't find parrot 00:43
with default 'make' 00:44
avar $ pugs -e 'if "xfoon" ~~ /foo/ { say "works" }' 00:51
*** Cannot parse PGE: foo
*** Error: does not exist
rx:perl5 works though..
Alias_ Anyone got a url for where the schemes for C<use> are documented? 01:20
03:29 wolv is now known as wolverian 04:23 audreyt_ is now known as audreyt
tewk audreyt: I made an attempt at a rules parser, it could be simplified I'm sure, I'd like to see what changes you make, and I'll learn. 04:29
audreyt tewk: woot! 04:30
I just woke up... will take a look in ~5mins 04:31
hm, wait, did you commit it?
geoffb morning, audreyt 04:32
tewk 8512, seen svnbot6 ?
jabbot tewk: svnbot6 was seen 4 hours 15 minutes 46 seconds ago
geoffb
.oO( Man, I love old CS books that have damn cool stuff in them that modern texts have completely forgotten )
04:33
azuroth like what?
geoffb The original Graphics Gems 04:34
audreyt tewk: got it
geoffb And the old edition of Programming Pearls
audreyt tewk: excellent, looks lovely. which means I need to finish support for <-[ ...]> 04:35
azuroth I read a pascal text that had the entire grammar in ebnf or something. I thought that was interesting
audreyt dduncan: I'll link Text.Parser.Rule to main Pugs code when it can pass a respectiable amount of tests 04:36
dduncan okay
audreyt but yes, I think in the future we'll use the native Rule implementation be default when running on the haskell runcore, and switch to PGE when compiled to parrot or requested by the user 04:37
not sure how "requested by" should look like though...suggestions welcome
tewk audreyt: is there a run harness for Text.Parser.Rule? (Something like ./pil) I could work on tests for Text.Parser.Rule. I was to the point where I needed a run harness for the miniLang Rule parser to test it also. 04:40
dduncan question 04:43
do I use postcircumfix:<"">
to provide a stringification method for a class?
or do I not need the 'post'?
or is it something else?
azuroth I think postcircumfix is like... class A { postcircumfix:<[]> ($index) { ... } }; $a[2] 04:44
audreyt tewk: yes, I think what needs to happen is either integrate rule support to ./pil, or to make another executable to harness 04:45
tewk: ...or write Inline::GHC
tewk: which would you prefer?
dduncan: I think stringification is coerce:as(Str)
dduncan so then, just circumfix:<""> should do what I need, then
even simpler
audreyt I'll support in the new runcore (which has correct coercion/promotion design) 04:46
dduncan basically, I'm looking to set things up so that, if someone is handed a Locale::KeyedText::Message etc object, whether from a return value or an exception, and they use it in a string (such as for debugging), then something useful will come out 04:47
in perl 5, overloading "" does the job
or with Class::Std in perl 5, adding the :STRINGIFY trait 04:48
audreyt right, but I think coerce: is the right way to go
dduncan okay
audreyt since it hapens other places as well
dduncan use of that will be checked in shortly
audreyt without an explicit circumfix ""
tewk audreyt: I'd say start simple how about a new cmdline arg for ./pil -r?
audreyt tewk: .pil -g grammar 04:49
and then take the match str as STDIN?
./pil -g grammar.file -r rulename 04:50
tewk YEah, I hate cmdline escaping
-i input.file ?
GammaRay anyone know any status info on a perl6 debugger?
audreyt tewk: sure, that works 04:51
GammaRay: no, but if you have some idea of what it should look like, I'd appreciate a cleanup on docs/AES/A20draft.pod and turn it into docs/AES/S20draft.pod
bbiab
azuroth audreyt gave a talk in sydney? arrggh 04:54
Alias_ audreyt: ping? 04:56
stevan__ audreyt: when you have a moment if you could remove the object-space trace/dump from ./pil output, that would be very helpful, it is messing up the Test::PIL module :) 05:09
I looked, but couldnt find where it was coming from,..
and I must sleep now &
tewk++ # rule + mini-language :) 05:10
tewk stevan__: give me a test to work with I think I can remove the object-space dump pretty easy -- src/PIL.hs 05:15
stevan__ tewk: any of the tests 05:17
try running ./pil -e '"Hello world"'
and you will see what I mean
05:18 stevan__ is now known as stevan
stevan tewk: I think I see it now... in PIL.hs 05:18
stevan recompiles 05:19
tewk yep eval:: 05:20
stevan tewk: yup,.. ok
it worked
thanks :) 05:21
I was looking in the wrong places all this time :)
stevan commits,.. and goes to bed 05:23
night all &
svnbot6 r8513 | stevan++ | PIL - removing the obj-space dump 05:25
r8514 | audreyt++ | * primitive support for matching on Text.Parser.Rule in pil shell: 05:40
r8514 | audreyt++ | ./pil -r rule input
r8514 | audreyt++ | * support for grammar files is forthcoming.
audreyt Alias_: pong 05:41
Alias_ um.. um..
svnbot6 r8515 | audreyt++ | * $scalar.STORE should return the container itself,
r8515 | audreyt++ | because this is legal perl6:
r8515 | audreyt++ | (($x = 4) = 5)
Alias_ oh right, you were talking about IPC::Run
When you were here... 05:42
I had a look and it's hideous cryptic
audreyt yes it is
IPC::Run3 is better
but doesn't cover the same platforms as IPC::Run
Alias_ Do you know if anyone has wrapped a $object->stdout/stderr/exitcode object around it?
audreyt yes
that'd be kane's IPC::Cmd
Alias_ I need a shitload of platforms for this specific use
PITA::Scheme
Running inside the images
audreyt yeah, IPC::Cmd is it -- talk to kane-xs if you want more features 05:43
Alias_ ok
will do
Thanks, I could find anything in search.cpan
audreyt np :)
dduncan question, 06:16
is there a shorthand for calling private methods?
eg, with public ones, we say .foo()
with private, the corresponding would be !foo()
though that may confuse with !.foo() 06:17
Alias_ and .!foo
dduncan perhaps
Alias_ in fact, I think that might be it
dduncan so, the qualified form is $obj!foo() but unqualified is .!foo() ? 06:18
Alias_ dunno
audreyt I think there's no unqualified form
have to say $_!foo
dduncan or $?SELF!foo
audreyt self!foo
"self" is an easier synonym for $?SELF 06:19
dduncan is it in the synopsis?
anyway ...
right now, perhaps my fault, ...
I'm having issues where an invocation fails to find a private function with arguments, though a test without one having args works 06:20
it may be mismatched signitures, but I have to test that
s/function/method/
audreyt k 06:24
dduncan ?eval class T { method mypub () { say "called mypub"; $?SELF!myprv(); say "end of mypub"; } my method myprv () { say "called myprv"; } } my $t = T.new(); $t.mypub(); 06:45
06:45 evalbot_8510 is now known as evalbot_8515
evalbot_8515 OUTPUT[called mypub end of mypub ] bool::true 06:45
dduncan the error seems different depending where I test
when testing the pugs command line, or the -e oneliner, or here, the call to the private method is a no-op 06:46
when calling such a sub with args from within my module, I get a "no such" error 06:47
for that matter, a script containing only the above is also silent
...
?eval class T { method mypub () { say "called mypub"; $?SELF!myprv( 06:49
'fu'); say "end of mypub"; } my method myprv (Str $x) { say "called myprv with '$x'"; } } my $t = T.new(); $t.mypub();
evalbot_8515 Error: unexpected "!" expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}"
dduncan ...
?eval class T { method mypub () { say "called mypub"; $?SELF!myprv('fu'); say "end of mypub"; } my method myprv (Str $x) { say "called myprv with '$x'"; } } my $t = T.new(); $t.mypub(); 06:50
evalbot_8515 OUTPUT[called mypub ] Error: No such method in class T: "&myprv"
audreyt hm
dduncan so, we get silence when there are zero args, and a "no such" error with one or more ags
audreyt I'll take a look. 06:51
Alias_ audreyt: IPC::Run is enough... barely...
audreyt: It's still pretty ugly, but I'm not going to write yet another wrapper around THAT
audreyt k 06:55
svnbot6 r8516 | audreyt++ | * Dynamic rule support; allows the use of OpTable into a Rule 06:57
r8516 | audreyt++ | (pretty much anything that can function as a parser will do,
r8516 | audreyt++ | including user-code and Parsec). For example, this works:
r8516 | audreyt++ | ruleGrammar :: Grammar
r8516 | audreyt++ | ruleGrammar = grammar
r8516 | audreyt++ | [ "ruleDecl" ~:~ "rule \\s* \\{ <ruleBody> \\}"
r8516 | audreyt++ | , "ruleBody" ~&~ ruleTable
r8516 | audreyt++ | ]
tewk [23:51 tewk@flaka:~/srcs/pugs]$ ./pil -r '<[abcde]>+' 'ababababa' 06:58
pil: TermSubrule (CaptureNam "[abcde]") "[abcde]"
audreyt tewk: charset support is not there yet -- moving to that now 06:59
also errmsg can use some work :)
s/charset/charenum/
tewk Ok, that make sense now. 07:00
dduncan commit pending any minute now ... 07:08
audreyt xern: ping 07:11
dduncan commit done 07:25
svnbot6 r8517 | Darren_Duncan++ | r1704@Darren-Duncans-Computer: darrenduncan | 2005-12-30 23:23:16 -0800 07:27
r8517 | Darren_Duncan++ | /ext/Rosetta-Incubator : continued converting generic string exceptions to specific LKT ones; added 4 messages to LKT/L/en.pm, upgraded Translator class in LKT.pm, adding 5 private methods; updated both LKT.as_debug_string() so they handle string coersion of LKT objects, and made output easier to read; updated both example MyApp.p6 to use the coersion ... currently, this doesn't execute, mainly due to Pugs' non-handling of priv
audreyt bbiab... 07:47
GammaRay hmm how am I supposed to program w/ german quotes? 07:56
Alias_ audreyt: You've played with Archive::Extract right? 07:59
(I only ask because kane is 5 days missing)
audreyt I had not 08:00
Alias_ darn 08:01
audreyt GammaRay: docs/quickref/unicode
Alias_ OK, I shall just file a bug
audreyt and I shall get something to eat and finish Array containers
:) &
GammaRay hmm Ā«thisĀ» could be Ā»worseĀ« 08:26
tewk printMatch currently prints the MatchRule, I want it to print the MatchObj.matchString 08:45
GammaRay hmmm Ā»thisĀ« is odd: cvs.perl.org/viewcvs/perl6/ gives 404
08:46
GammaRay aww crap 08:46
The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 08:47
tewk audreyt: What am I doing wrong? 08:54
printMatch r i = either (hPut stdout) printMatchResult (matchRule r i)
printMatchResult :: MatchRule -> IO ()
printMatchResult MatchObj{matchString} = print matchString
printMatchResult mr = print mr
Alias_ Well, I think that's me done for the year 08:57
The testing scheme drivers are half done (they can recieve the injected package and set it up)
One more day tommorrow before back to commercial work for me... so I'll see if I can get to the point we can throw a pugs package at it
Won't get TAP details for now, but should be a start 08:58
gaal hey anatolyv 09:42
anatolyv hey gaal 09:43
gaal in passing, I noticed an even more !!!ish combinator on #haskell: 09:44
let y f = f (y f) in y
anatolyv ugh
:(
gaal it's the *spec* of a fix function 09:45
and it works!
don't ask me how :)
anatolyv tell gaal ok, can't commit due to Parser.hs being out-of-date. what do I do to merge? "svn up" or something?
heh
gaal "/msg" 09:46
svn up, yes
anatolyv re-adjusting to irc is so difficult to me after not using it for quite a few years.
gaal it will probably just say "G Parser.hs", but "G" means "merge" in svn.
anatolyv yup, you anticipated my next question 09:47
gaal not conflict or anything like that.
because I've asked it myself in the past :)
anatolyv it updated a lot of stuff. I'd better remake and retest.
gaal yup. "make unoptimized" may save you time if you're just sanitytesting. 09:48
I think most of the recent commits weren't in the old core though. audreyt and stevan have been working on the minilang 09:49
anatolyv: <lj user=pugscode_svn> if you want to keep track
anatolyv mm... okay, prolly not just yet :) 09:51
gaal yeah ok
svnbot6 r8518 | anatolyv++ | *added unary ^ (^num a shortcut for 0..^num). 10:09
gaal whee!
anatolyv grins.
gaal some time in the future, when we fix ranges to work in the case you mentioned (~~), we need to modify op2Range to return an range object, not a reduced list. 10:11
anatolyv nods 10:13
gaal that's a somewhat deeper change, but I don't *think* it should be very difficult
nnunley gaal: Look for a paper called 'The Why of Y', which explains the y combinator, and how it's derived. 12:49
gaal nnunley: thanks. I know what "fix" and "Y" are (to the point of being able to use them, and sometimes even show a combinator is equivalent to fix). But I can't understand the spelling I quoted. Or rather, how Haskell is clever enough to understand it. 12:52
it's the same feeling of pattern matching -- "but where did the computation *go*?" -- but in this case it's much more acute :) 12:53
In other words. I need "The How of That Weird Y" :-) 12:54
nnunley Right -- I'll see if I can dig up the link, because it does explain it. Still mind bending, but it shows how. 12:55
www.dreamsongs.com/NewFiles/WhyOfY.pdf 12:57
gaal yes, I read it (thanks)
nnunley Ahh. Sorry. Misread. 12:58
Yeah, It's just the lambda calculus. There's also some good reading in the explaination of Unlambda. 12:59
rafl_ Juerd: ping
Juerd rafl_: pong 13:50
audreyt praises leo_ for (inadvertently) designing the PILN runcore 14:21
stevan: I think I nailed the "representation" thing. will commit in a bit, with much better support for array/hash containers 14:22
tewk: still around? 14:23
nnunley audreyt: Are charsets supposed to work with Text.Parser.Rule, yet? 14:28
audreyt no, not yet, I've been distracted into reforming object representations layout support 14:33
I'd like to get Hash and Array done properly first :) 14:34
azuroth audreyt party with mee 15:00
audreyt heh :)
you @ .au? is it already 2006 there?
azuroth two hours into it 15:01
audreyt cool... still 1hr to go here
azuroth I'll help you count down! 15:02
why aren't you out having celebratory drinks?
joao almost 9h to go here 15:13
Southen, happy new year for those who already are in 2006
s/Southen/so
(and for the others too :P )
azuroth :-) it's good 15:15
obra seen audreyt 15:25
jabbot obra: audreyt was seen 23 minutes 13 seconds ago
rafl_ Juerd: Where shall I send the camera to? 15:32
stevan audreyt: ping 15:45
happy new year to all those to whom it applies :) 15:46
audreyt: we have some issues with the refactored new_opaque,..but I will wait until you commit to be sure they still exist 15:52
audreyt yo 15:54
stevan hey :)
happy new year
audreyt committing now.
stevan cool
audreyt it's a very drastic change.
and you may not like it :)
stevan well tests are breaking already,.. so it cant be too much worse :)
audreyt: try this and tell me what you get 15:56
./pil -e '::Class`trace(); ::A := ::Class.new({}); ::A.set_superclasses([ ::Object ]); ::A`trace(); ::A.new({})`trace();'
audreyt k, sec 15:58
hmm 16:03
I'm seeing "no such method: add_name"
investigating 16:04
stevan add_name? 16:09
odd,..
the issue I was trying to illustrate was that new_opaque is not assigning classes correctly
I get this
#trace# <obj:#1|cls:#1>
#trace# <obj:#22|cls:#1>
#trace# <obj:#25|cls:#1>
the first trace is ::Class, then ::A,.. then an instance of ::A... which shows it's class as being ::Class
audreyt yeah 16:10
I'll fix add_name here
new_opaque and mro_merge is now class specific
and doesn't have the cls/obj confusion it did
especially mro_merge is really bad and doesn't belong
stevan ok
audreyt: I have to run some dirt-world errands, I will check in later 16:14
stevan & 16:15
audreyt okay 16:17
audreyt is still tracing mromerge
stevan: I'm seeing 16:34
#trace# <obj:#1|cls:#1>
#trace# <obj:#22|cls:#1>
#trace# <obj:#25|cls:#22>
which I assume to be correct
so I'll commit 16:35
leo_ any Win32 user here, who can do a quick 'svn up' of parrot and test if it groks os.pmc (especially the Exx cases)? 17:06
audreyt stevan: committed as r8517 17:08
er I mean, 8521
stevan audreyt: got it 17:12
audreyt: what are the changes that I "might not like"? 17:13
audreyt each object now carries its own prims 17:14
stevan oh
thats fine :)
audreyt it's very eigen :)
stevan yes
audreyt it's locked upon creation
so common instances of a repr shares the vtable
so it's a single malloc and no perf penalty
stevan cool
audreyt and we can mix in interfaces using addRepr at composition time
it's all due to leo_
stevan leo_++ # as if I need to say that 17:15
so I can override new_opaque and mromerge on a class-per-class basis?
leo_ thx all - we just have to convince some other folks to get that working in parrot
stevan and get_attr, set_attr too?
audreyt stevan: yup 17:16
everything
basically all prim methods get the same signature asif they are userland
stevan audreyt: nice this will make it easy for hash repr and cstruct repr etc
so I can do .set_attr?
audreyt and uses the same prim dispatch
stevan cool
audreyt but we still retain 3level
svnbot6 r8521 | audreyt++ | * Proper Scalar support using the new per-obj-prims architecture.
r8521 | audreyt++ | Leo++ for speccing this.
audreyt `set_attr .set_attr !set_attr are still different
stevan ok 17:17
how are the diff?
audreyt the diff is there was a fixed vtable for all objs
stevan oh, gotcha
audreyt and much of it just throws exception for objs where they don't make sense
like o_store for values
this is _exactly_ like parrot
and I was unhappy about it
stevan but if I call `set_attr on an opaque,.. what does it do? 17:18
leo_ btw this was inspired by reading quickref/data (which OTOH is weird, or a bit wrong imho ;)
stevan still work?
audreyt stevan: yes, but only on an opaque
stevan ok
audreyt if you call it on eg. a scalar container
it does nothing
stevan gotcha
audreyt or rather you get a method-missing
same goes if you call it to an autoboxed int
stevan excellent
audreyt leo_: it is... needs refactorings into p6docs/ 17:19
this made things a lot simpler :)
leo++ # again
stevan leo++ # for sure
audreyt also it made hash and array trivial to implement
so I'll go to it now
stevan simplicity++
audreyt please check for breakage in tests and your model
stevan audreyt: sounds great,.. I have to continue errands,.. but will check in later to see if all is well
I will do a test run now 17:20
audreyt k, take yer time... I'm around all day tomorrow as well
leo_ stevan: did you get these pods?
stevan leo_: what pods?
audreyt leo_: no, I had not showed it to anyone else
may I?
leo_ audreyt: please forward to stevan
audreyt url not for public consumption yet? :) 17:21
leo_ I'd still like a word from chip
stevan audreyt: BTW you can run all the model tests like this: prove -I ext/Test/lib/ t/pil/metamodel/*
audreyt stevan: msg'ed to you
excellent
stevan audreyt: got em
leo_ and of course p6/pugs approval, which looks like given ;)
azuroth night everyone 17:22
stevan night azuroth (happy new year as well)
audreyt leo_: right, it makes most sense :)
leo_ I thought so, but its great to have some confirmation
stevan leo_: I will look over them today,.. but I tend to agree with audreyt so I will probably arrive at similar conclusions :) 17:23
audreyt has a strange feeling of role reversal... leo writings specs for me to implement? :)
leo_ these docs were emerging the last 2 weeks - but I was of course not sure, if all is sane
*g* 17:24
stevan runs off to buy some food, bbiab & 17:26
audreyt leo_: I've only implemented interfaces.pod and PMC.pod
String.pod looks very sane btw 17:27
leo_ GGC is really parrot internal
audreyt I may want to carry it to Haskell' (the next version of haskell)
leo_ heh
audreyt (planning to write unicode/string proposal for it tomorrow)
Juerd rafl_: Einsteinstraat 67, 3316 GG Dordrecht, .nl 17:29
rafl_: And *please* don't make that "strasse", as that tends to delay things :)
audreyt is there another Einsteinstrasse nearby? :) 17:30
tewk audreyt: I'm back. 17:42
audreyt tewk: rehi 17:46
tewk: printMatch Result MatchObj{matchString = str} = print str 17:47
haskell records doesn't allow you to pun
(i.e. write {matchString} and mean {matchString=matchString})
which sucks, and which people are fixing
but for now you need to write out the binding explicitly
17:54 webmind_ is now known as webmind
Juerd audreyt: No 17:57
audreyt: There's no -strasse at all here. 17:58
audreyt: However, German people sending me stuff tend to be funny by changing the name, which apparently disrupts the delivery process :(
(Which is stupid, because the zipcode should suffice even without a street name) 17:59
audreyt indeed 18:00
joao Juerd, straat is the german word for road? 18:12
audreyt stevan: I need some help in role-ifying container types 18:17
see the last secion in Bootstrap
but I've finished primitive ::Hash and ::Array support
and can sleep with ah clear conscience :) 18:18
also:
t/pil/metamodel/bootstrap............FAILED test 54
hadn't investigated yet
also, I've renamed `new_opaque to `create because that's what it is
tewk audreyt: can you look at src/Text/Parser/Rule.hs:61-65, I checked it in last night and it works but the pattern matching probably isn't right. 18:20
audreyt compiler warns about overlapped matching
printMatchResult mo = (hPut stdout) (matchString mo) 18:21
printMatchResult mr = print mr
the second case never matches
svnbot6 r8522 | audreyt++ | * ::Array and ::Hash container objects landed!
r8522 | audreyt++ | Currently they have these primitive methods:
r8522 | audreyt++ | `create(*)
r8522 | audreyt++ | `fetch_list() `store_list(*)
r8522 | audreyt++ | `fetch_elem($) `store_elem($,$)
r8522 | audreyt++ | and public methods:
r8522 | audreyt++ | .FETCH($) .STORE($,$)
r8522 | audreyt++ | * Rename `new_opaque to `create.
audreyt fixed.
first line now reads 18:22
printMatchResult mo@MatchObj{} = (hPut stdout) (matchString mo)
note that the {} trick also works even if it's not a record constructor.
svnbot6 r8523 | audreyt++ | * Fix tewk's printMatchResult implementation by constraining 18:23
r8523 | audreyt++ | the first case to only match on MatchObj.
tewk Thanks didn't realize that the {} trick worked. Thanks. 18:55
SamB I don't think I knew about the {} trick working on non-record constructors until I saw it in a comment in GHC's source... 18:57
qmole what's the {} trick? 18:58
SamB so either its an undocumented extension or its Haskell 98
tewk I tried it last night, but I was getting some other compile error so I backed out
SamB you can do for example: 18:59
tewk It effectively lets you pattern match against a specific data construction, instead of the entire type.
audreyt SamB: I think it's h98
if I heard spj correctly, that is 19:00
SamB isJust (Just {}) = True; isJust (Nothing {}) = False
qmole oh i see 19:04
SamB obviously thats a silly example 19:05
tewk So can you match against a specific data construction with a specific record member data DD = D1 | D2 { a :: Str, b :: Str}; func :: D1 -> String; func d1@D1{a="somestring"} = "D1 a == somestring"
qmole ahh 19:06
tewk that was suppose to be a question, can you?
SamB tewk: huh? 19:07
qmole yeah, seems like you can 19:09
though with a 'fields not initialised' warning
SamB oh. now I see what you wrote. 19:10
however... that doesn't use the {} trick. 19:11
it just uses normal pattern matching on records
tewk So does construction occur in the func, why the 'fields not initialised'? 19:12
audreyt there's no construction going on; that is valid
SamB the other {} trick lets you do things like 19:13
> Just {}
tewk Why the warning? Is the compiler just saying I didn't specify a match criterion for all record memenbers? 19:14
qmole sorry, there's no warning 19:15
audreyt I don't think there will be a warning.
qmole i tested it wrong
audreyt tewk: I probably can't stay up long enough to finish TermEnum support... definitely tomorrow
journals up; need to sleep now :)
audreyt waves & 19:16
tewk qmole: Ah, Ok
audreyt: I'll start looking into TermEnum
audreyt tewk: oh ok... the strategy is simple -- write something like wsLiterals and call it wsEnum 19:17
see parse_enumclass in svn.perl.org/parrot/trunk/compilers...P6Rule.pir
once you can get it to parse, compiling it is dead simple 19:18
you can go with a simple "choice", or a fancier MDyn
probably "choice" is good enough for now
anyway... be back in ~10 hours
good night!
19:20 DesreveR is now known as r0nny
leo_ obra: the msg via freenode doesn't work 19:30
(for me - unregistered) 19:31
avar leo_: you have to 1. register 2. get the other user to turn on messages from unreg users 19:39
leo_ I don't want to register just another service, /msg on irc.pobox.com works anyway 19:40
stevan audreyt: the failed test in bootstrap.t is when I check for the number of subclasses for Object 20:14
it used to be 1,.. now it is 9 :)
so the test needs to be fixed
(which I will do right now)
aufrank hey all 20:36
no takers, eh? 20:38
stevan hullo aufrank :)
aufrank oh, hi stevan! 20:39
how goes it?
stevan it goes well, and yourself?
aufrank very well-- the cavs are beating up on the pistons
do you know anything about the ghc side of the make install process?
stevan aufrank: not a thing sorry :) 20:40
aufrank me neither, unfortunately
stevan hey luqui
luqui hi stevan 20:41
luqui realizes he has been away for a while...
que ha pasado?
stevan has been only minimally here, so he didnt realy notice
luqui ahh
I haven't really been doing anything at all... just watching tv, practicing music... I think it's because I haven't been exercising 20:42
my brain has been off
stevan yeah I have been finishing all the unfinished projects around the house,.. so my brain was pretty mushy too 20:43
luqui (where by "exercising" I mean "walking around campus" ;-)
anyway, I'm trying to force myself to pick up these projects again
aufrank hi luke! 20:44
stevan luqui: I think the Text.Parse.Rule stuff has come along nicely,.. you might wanna take a look
see the journal for details 20:45
luqui hi aufrank...
aufrank stevan: audreyt's journal, neh?
stevan aufrank: yes
luqui read the bulletin posted to p6c
stevan looks to see wtf luqui is talking about 20:46
luqui audreyt just posted his journal to p6c
stevan cool,.. I didn't know audreyt was doing this
luqui because people said they'd be interested in that, and to help the summarizers
I'm happy about it 20:47
I'm much more content in my mail reader than having to check somebody's site every so often. And I don't have an RSS reader that i like.
aufrank which mail reader, luqui?
stevan yes it is nice
luqui gmail 20:48
aufrank gotcha
luqui it's interface was good enough to get me off of mutt, and I was kind of a zealot
(though I do miss writing in vim)
aufrank re: practicing music, me and my brother have been playing our banjos together. much fun. 20:49
stevan aufrank: dueling ? 20:50
luqui :-)
aufrank heh
we tried
but neither of us knows the breakdown
he doesn't play that style, anyway
luqui breakdown is a technical term? 20:51
aufrank yeah
luqui what does it mean?
aufrank good question
I started to type a definition and then realized I had to think about it 20:52
a long period of really fast picking?
stevan time for a little ... foggy mountain breakdown
luqui hmmm... I wonder how hard it would be to write a C backend for PIL2...
stevan luqui: using banjos, yes
aufrank yes is always the answer to how hard it would be 20:53
luqui a C backend for banjos?
stevan luqui: you can probably start with PIL^N first,..
luqui PIL^N?
stevan it is the level below PIL2
luqui oh. I can probably start? Ha.
I'm not touching that. Not for a week at least ;-)
(two weeks ago I said I'm not touching PGE for P6) 20:54
stevan it is the level the metamodel bootstrap and container types are created at
luqui what's with the name?
stevan PIL.Native
luqui and the caret was just a pun..?
stevan it is the core stuff needed in the runtime
no it is PIL with a superscript N 20:55
but in ASCII... PIL^N
luqui Yeah, like "PIL to the N"
Not a pun, but a play on a cliche
aufrank ok, /me has to figure out what's going on for new year's here in cleveland 21:00
happy new year, all
stevan luqui: is there a definitive list of "types" for p6 anywhere? 21:02
luqui IIRC, S06 has the closest definitive thing there is 21:04
around line 1200 21:05
stevan yeah, it is missing a number of items though
luqui somebody ought to figure out what those are and post them to p6l
stevan although maybe I am wrong,.. there seemed to be many other types mentioned in other Syns, but maybe they are not all up to date
luqui: I have a ruough list going 21:06
luqui cool. if you post, I will wait a day and then update
stevan luqui: I will post it next week, I need to clean it up a bit first
luqui mmkay
stevan we will also need to define the interfaces for each, as well as determine the role/class hierarchies 21:07
luqui er
sorry for being a stickler about this 21:08
but types don't have interfaces
roles have interfaces (roles are interfaces)
stevan ok,.. then we need to define the roles which match these types
i am thinking implementation details,.. not theory
luqui okay
stevan or we can define the multi-methods which operator on the types 21:09
luqui but still, I think one of the biggest blocking points has been the confusion between types and classes
stevan however you wanna look at it :)
well wont types eventually be implemented as classes?
luqui not necessarily
stevan I assumed that because of the "perl6 is oo" statement in S01
luqui subtypes for example, and type synonyms
stevan ok
luqui anyway... 21:10
luqui goes back to work
which isn't to the typing point yet
so it's easy to get distracted
stevan ok
nothingmuch luqui: great blog on the music stuff 21:19
luqui++
i wish i could come =)
yummy yummy yummy: www.thelightandtheland.com/pages/Po..._05_b.html 21:20
anywayk, i'm off 21:22
ciao
stevan audreyt: I roughed in the Array and Hash roles, based on quickref/data for now 21:35
I only implemented Array.elems for now,.. more to come later
luqui for the record, I don't see any reason to make the Array and Hash interfaces skinny
stevan skinny? 21:36
luqui er, I mean, the Array and Hash methods. The interfaces (required methods to implement) should be skinny
svnbot6 r8524 | stevan++ | PIL/Native/Bootstrap
r8524 | stevan++ | - added rArray and rHash roles for Array and Hash, they just have
r8524 | stevan++ | method stubs for now (except for rArray.elems is implemented)
r8524 | stevan++ | - I got the method list from quickref/data which may be wrong
r8524 | stevan++ | but it is something to start with
r8524 | stevan++ | t/pil/bootstrap.t
luqui the opposite of fat
svnbot6 r8524 | stevan++ | - fixed failing test
stevan is not understanding luqui
luqui fat interfaces have lots of methods 21:37
stevan you want them to be fat? or to be skinny?
luqui I see no reason for them not to be fat
stevan yes I get the meanings ,.. but which way
ok
yeah me either
why have a built in when you can have a method :)
luqui likes haskell because there's a function that does everything I need
stevan luqui: I am starting with the ones defined in quickref/data,.. and I will add more as needed 21:38
luqui mmkay
stevan starts to picture luqui as a guidance counsler with a very large head and small skinny body at a school somewhere in colorado :P 21:39
luqui skinny's bad, mmkay? 21:40
stevan goes off to prepare for tonight's festivities
drugs er bad,.. mmmkay
luqui My middle school geometry teacher was just like that
stevan :)
luqui "You're gonna fail, mmkay? You don't know the material, mmkay?"
stevan I had a high school math teacher like that, and he liked to refer to himself in the 3rd person too 21:41
stevan really has to go or he will be in trouble with the $boss
luqui I always find people like that disturbing
okay
stevan uh huh ,.. mmkay 21:42
svnbot6 r8525 | Darren_Duncan++ | r1717@Darren-Duncans-Computer: darrenduncan | 2005-12-31 13:59:46 -0800 22:06
r8525 | Darren_Duncan++ | /ext/Rosetta-Incubator : multiple small updates to all 18 files containing Locale::KeyedText Templates
webmind happy new year.. and happy coding in it :) 23:14
DaGo os desea un FELIZ 2006 23:23
avar "An administrator of 'Pugs' has changed your role in the staff list. 23:26
Your role in the project is now 'Admin'."
"An administrator of 'Pugs' has changed your role in the staff list.
Your role in the project is now 'Member'."
funky
tewk DaGo: de nada, nos falta ocho horas aqui
23:33 avar is now known as avar\afk\woo