Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-03-10

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 fglock stevan_: sorry - I'm still reading
00:00 stevan_ fglock: no problemo
00:03 hexmode joined perl6
00:04 TimToady >
00:05 fglock stevan_: it will need some low-level bootstrapping code to start, but after that there will be no problem, I think
00:06 stevan_ fglock: yes, that was just a basic brain-dump,.. I expect it will need much more fleshing out
00:06 stevan_ my point only is that the class Foo {} should desugar into mm calls
00:06 stevan_ which should simplify the AST/PIL for object
00:06 fglock stevan_: like - MetaClass.new() must be defined somewhere first, but that's easy
00:07 stevan_ fglock: oh yes,.. sorry,.. that example assumes the metamodel is already loaded and available
00:07 stevan_ sorry if that was not clear
00:07 fglock stevan: re simplify the AST - shouldn't this be left to a AST-simplifier level?
00:07 stevan_ fglock: isnt that what Macros are :)
00:08 fglock stevan: as in, depends on what backend it will run
00:08 stevan_ fglock: no I think the metamodel implementation should be shared between backend
00:08 fglock if the backend already supports high level OO, then you don't need to simplify
00:08 fglock stevan_: ok
00:09 fglock stevan_: re macros: yes
00:09 stevan_ fglock: think of the MOP as the API to the class system.. all class creation code should be written to the API
00:10 stevan_ but the MOP may use high level features from the host platform is they are sufficient
00:10 stevan_ but only to implement the API
00:11 fglock stevan: sure - we are doing the specification of a pluggable Grammar/Compiler/everything - so it would be no problem to operate on many levels
00:11 fglock "no problem" is too strong :)
00:11 stevan_ fglock: yes, i was planning on writing the details of the MOP this week
00:11 stevan_ but right now I have to pick up my friend as the airport,.. so I must sign off :)
00:11 fglock ok!
00:12 stevan_ buh bye
00:15 fglock later &
00:16 fglock left perl6
00:16 avar joined perl6
00:18 tuxxboxx joined perl6
01:08 Khisanth joined perl6
01:13 FurnaceBoy_ joined perl6
01:23 jisom "Being the pathological anarchist that Larry Wall is, he couldn't care less about striving to nice round version numbers. Which I think is actually an excellent principle." I wonder if that's a compliment or something
01:37 avar jisom: where'd you read that?
01:38 jisom one of D's usenet lists
01:38 jisom http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/35007
01:40 avar how can OO purists be comparing java and c++?
01:41 jisom I don't know, I don't know what oo purism is.... mongrels are often better
01:56 GabrielVieira left perl6
02:17 itsthetide3 joined perl6
02:17 itsthetide3 must go today 2 laptops price 500 each message me if interested on msn at [email@hidden.address] yahoo at thishastogotoday or aim at ogd443.
02:21 mugwump 500 what?  TWD?  :)
02:32 nivrrex joined perl6
02:36 tcliou joined perl6
02:36 nivrrex left perl6
02:39 jisom $500 for a second hand computer? I overpaid for my two 900mHz computers, $90!!!
02:39 jisom together
02:41 r0nny joined perl6
02:41 jisom there's no svn bot in here?
02:47 tcliou joined perl6
03:04 dvtoo joined perl6
03:57 CocaineSmoothie joined perl6
03:57 CocaineSmoothie left perl6
04:05 Khisanth jisom: that would be svnbot6
04:09 stevan joined perl6
04:15 arcady joined perl6
04:15 amnesiac joined perl6
04:18 fglock joined perl6
04:24 fglock obra: sent to p6-compiler- thanks! link: http://www.nntp.perl.org/group/perl.perl6.compiler/1331
04:25 obra woot!
04:25 obra fglock++
04:25 obra communication++
04:25 fglock is it ok?
04:26 fglock obra: it helped to talk with you first, so I could focus more
04:27 obra I'm glad.
04:27 obra yes. it's great
04:27 fglock "1331" looks like "133t" :)
04:28 obra :)
04:29 Supaplex truth in advertising
04:48 sapper joined perl6
05:12 K joined perl6
05:39 binary42 joined perl6
05:51 ingy seen audreyt_
05:51 ingy seen audreyt
05:52 obra hey ingy
05:57 ingy hi obra
05:58 obra how goes?
06:21 audreyt joined perl6
06:22 FurnaceBoy joined perl6
06:26 audreyt joined perl6
06:31 GeJ morning folks
06:31 audreyt joined perl6
06:31 GeJ hum, seems like audreyt still having issues with tcpip.eu :/
06:32 Supaplex fun x 3
06:32 FurnaceBoy fun^3
06:34 spinclad ack(fun,fun)
06:34 jisom ackermann ack?
06:34 jisom what about fannuch
06:36 audreyt joined perl6
06:41 audreyt joined perl6
06:46 audreyt joined perl6
06:51 audreyt joined perl6
06:56 audreyt joined perl6
06:57 fandango joined perl6
07:02 audreyt joined perl6
07:07 audreyt joined perl6
07:12 audreyt joined perl6
07:17 audreyt joined perl6
07:22 audreyt joined perl6
07:22 Aankhen`` joined perl6
07:26 svnbot6 r9375 | gaal++ | * Pugs::Doc::* - minor cleanups
07:27 audreyt joined perl6
07:32 audreyt joined perl6
07:37 audreyt joined perl6
07:43 audreyt joined perl6
07:48 kanru joined perl6
07:48 audreyt joined perl6
07:50 Barry joined perl6
07:53 audreyt joined perl6
07:55 Barry left perl6
07:58 audreyt joined perl6
08:03 audreyt joined perl6
08:06 iblechbot joined perl6
08:08 audreyt joined perl6
08:13 audreyt joined perl6
08:18 audreyt joined perl6
08:24 audreyt joined perl6
08:29 audreyt joined perl6
08:30 osfameron joined perl6
08:32 osfameron pugs tests take a metric eternity to run on my laptop.  I think it hadn't finished after 3 hours after which the laptop overheated and fainted.
08:33 clkao move to somewhere colder?
08:34 audreyt joined perl6
08:35 clkao pesky renaming involing cases
08:35 GeJ osfameron: are your running an up-to-date pugs version?
08:36 GeJ IIRC lots of development has been done to reduce the length of smoke lately.
08:36 GeJ See audrey's latest blog entries
08:36 GeJ might be worth to svn up
08:36 GeJ or svk...
08:37 * GeJ greets clkao :)
08:37 clkao hi :)
08:39 audreyt joined perl6
08:40 GeJ might be [OT], but did anyone had to deal with schwern for a bugfix request for a module not related whatsoever to E::M :)
08:40 GeJ I tried to send him some emails but never got an answer. Can't even know if he received them
08:42 K joined perl6
08:42 osfameron GeJ: compiled from checkout yesterday
08:43 GeJ osfameron: hum... well. I would consider clkao's suggestion then.
08:43 osfameron yeah, I made the mistake of leaving laptop in bed.  It tends to overheat if it's on a soft surface :-)
08:44 audreyt joined perl6
08:45 xern joined perl6
08:49 audreyt joined perl6
08:54 audreyt joined perl6
08:59 audreyt joined perl6
09:04 audreyt greetings
09:05 audreyt joined perl6
09:05 * audreyt goes journaling (finally)
09:06 Kattana salutations
09:10 audreyt joined perl6
09:12 drrho joined perl6
09:14 jisom_ joined perl6
09:15 audreyt joined perl6
09:17 GeJ morning audreyt
09:20 audreyt joined perl6
09:25 audreyt joined perl6
09:30 audreyt joined perl6
09:31 gaal osfameron: actually we are in mild borkage now, and the precompiled prelude doesn't work.
09:34 arcady yeah, what's up with the prelude?
09:35 arcady I'm guessing something is wrong with the way the YAML is being generated/parsed
09:35 arcady Loading Prelude... user error (unhandled elementYamlStr "~")
09:35 audreyt joined perl6
09:36 arcady probably either a null is being written as "~", or else a ~ is being parsed as a string instead of a null
09:37 bsb joined perl6
09:41 audreyt joined perl6
09:43 gaal my guess is "!hs/Pugs.AST.Internals.Exp ~", which on my Prelude.yml is on line 13526.
09:46 audreyt joined perl6
09:46 elmex joined perl6
09:51 audreyt joined perl6
09:56 audreyt joined perl6
09:59 osfameron gaal, arcady: ah, yeah, I got those errors, but as it carried on forging ahead I kinda ignored them :-)
09:59 osfameron thanks
10:01 audreyt joined perl6
10:03 arcady gaal I think that's a problem in the original AST
10:04 audreyt hm
10:04 audreyt ?eval "lag?"
10:05 evalbot_9364 is now known as evalbot_9375
10:05 evalbot_9375 user error (unhandled elementYamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
10:06 jisom_ scary error message
10:06 audreyt joined perl6
10:06 arcady wow, don't think I've seen that one before
10:07 arcady also, when it recompiles the prelude it spits out a couple warnings like
10:07 arcady Warning: Unknown modifier :<Object> will probably be ignored.
10:11 audreyt joined perl6
10:11 nothingmuch joined perl6
10:16 audreyt joined perl6
10:22 pdcawley joined perl6
10:22 audreyt joined perl6
10:23 tewk_ joined perl6
10:27 audreyt joined perl6
10:32 audreyt joined perl6
10:32 jisom_ is now known as jisom
10:37 audreyt joined perl6
10:42 audreyt joined perl6
10:44 awwaiid joined perl6
10:47 audreyt joined perl6
10:50 * lypanov doesn't like ignoring audreyt :P
10:51 * lypanov is glad /ignore has parts joins quits functionality
10:52 nothingmuch צםרמןמע
10:52 nothingmuch morning
10:52 audreyt joined perl6
10:55 nothingmuch lypanov: you can also do a meta-ignore
10:55 nothingmuch one that happens in your head
10:55 nothingmuch it seems like this is an irssi locked in a screen that is losing connectivity once in a while
10:55 nothingmuch i don't know... i think can bring myself to forgive that ;-)
10:56 nothingmuch it's not like it's interleaved with conversation
10:57 audreyt joined perl6
10:59 audreyt ?eval 1
10:59 evalbot_9375 user error (unhandled elementYamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
11:00 audreyt joined perl6
11:01 nothingmuch lypanov: audreyt switched server
11:01 nothingmuch you can unignore
11:02 ayrnieu wetware ignores.
11:03 audreyt sorry about that.
11:03 * audreyt goes back to pfeather for screen
11:04 audreyt after some discussion in #perl, I think the pragma to start perl6 chunks inside perl5 modules should just be
11:04 audreyt { use perl6; ... }
11:04 nothingmuch use v6?
11:04 audreyt no, lexer catches that
11:04 audreyt V6 perhaps, but not good
11:05 nothingmuch okies
11:05 jisom too typo prone...
11:05 audreyt and the project of re-expressing Pugs-the-perl6-implementation into a mixture of p5/p6 code (with p5 parts piecemeal replaced with p6, and some p6 parts translated into p5 via Hs-Pugs first and then boot later)
11:05 audreyt should be called simply
11:05 audreyt Pugs.pm
11:05 jisom well do you expect perl 5.0 to support embedded perl6?
11:05 audreyt jisom: 5.6.0+
11:05 nothingmuch will we be getting Inline::GHC? ;-)
11:05 audreyt I expect to make it happen, yeah :)
11:06 audreyt nothingmuch: calling out to external programs suffices for this, really
11:06 nothingmuch =(
11:06 jisom what happens if you make a module named "v6.pm"?
11:06 audreyt jisom: you can't load that.
11:06 audreyt perl6.pm, otoh, works and is much cleaner
11:06 jisom ok
11:07 audreyt well, you _can_ with "require 'v6.pm'"
11:07 audreyt but it's neither here nor there.
11:07 nothingmuch wow, i like that
11:07 jisom yeah
11:07 nothingmuch BEGIN { require "v6.pm" }
11:07 jisom and awkward from "conventional" usage
11:07 nothingmuch much cleaner than 'use perl6';
11:07 audreyt ...
11:08 nothingmuch anyway, i have to go to the supermarket
11:08 nothingmuch ciao
11:08 audreyt ciao
11:08 * jisom doesn't agree with nothingmuch
11:08 nothingmuch jisom: i think you actually do ;-)
11:09 rgs [rafael@grubert ~]$ touch v6.pm ; perl -Mv6
11:09 rgs Perl v6.0.0 required--this is only v5.8.8, stopped.
11:09 jisom I like readability....."begin require v6" doesn't read well
11:09 audreyt jisom: nothingmuch was being undetectably sarcastic
11:10 jisom deadpan sarcasm is horrible online
11:10 audreyt indeed
11:10 rgs that's why smileys were Invented
11:10 jisom c'est la vie
11:10 * jisom wonders if any language supports e(pi * i) + 1 = 0
11:11 rgs mathematica does
11:11 jisom that doesn't count of course
11:11 jisom it has too!
11:12 azuroth I think my body's falling apart
11:21 LeTo jisom: patches welcome for parrot's Complex.pow
11:21 jisom yeah, I'll get around to it.....
11:21 kane_ joined perl6
11:23 jisom mathematica's website gave some function that just seemed recursive......maybe I'll work on perl's Math::Complex and use it
11:24 pdcawley joined perl6
11:26 jisom I think part of the problem is e is common in complex equations yet it's rarely used as a constant
11:52 bsb joined perl6
11:54 gaal rehi
11:54 audreyt hey gaal
11:55 Juerd I had a short peek at lrep. It blows my mind.
11:57 * gaal purrs
11:57 gaal or rather, underpurrs
11:57 gaal (location: under a cat)
11:58 rindolf joined perl6
11:58 rindolf Hi all!
11:58 rindolf Juerd: here?
11:58 gaal anymoose. the fail is in DrIFT.YAML:57
11:59 gaal I wish there were a way to add coordinates to failing fromYAML(?:.*)
11:59 audreyt there is... using CPP macros
11:59 audreyt or using assert
11:59 Juerd rindolf: Why?
11:59 rindolf Juerd: regarding the my @a = 1,2,3
11:59 gaal I meant where in the context of the original expression the fail was
12:00 Juerd rindolf: @a = 1
12:00 gaal telling me a node is unfromable doesn't tell me where the node was
12:01 rindolf Juerd: I searched the entire synposis for either "=" or "comma". Didn't find anything.
12:01 gaal I'm not sure there is a sensible way to express the information I'm after... maybe a show one level up, but of course fromYAML doesn't know who one level up was.
12:05 szabgab joined perl6
12:06 Juerd rindolf: See precednce table.
12:06 Juerd precedence
12:06 Juerd In S03.
12:08 rindolf Juerd: I see it now. However, the precendence is the same for "=" and for "," as in Perl 5.
12:08 audreyt gaal: maybe just add the src location into YamlElem info?
12:09 rindolf Juerd: perl -e '@a=1,2,3;print join(",",@a), "\n";'
12:10 gaal audreyt: that's quite space-expensive!
12:10 rindolf audreyt: perhaps you can help as well. Why does "my @a=1,2,3;" assigns the three elements to @a in pugs?
12:10 chris2 joined perl6
12:11 audreyt ?eval my @a; @a = 1,2,3; @a
12:11 evalbot_9375 user error (unhandled elementYamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
12:11 audreyt wow.
12:12 audreyt gaal: it is... hm.
12:12 audreyt gaal: as a #ifdef guard maybe?
12:12 audreyt build-for-instrumentation
12:12 rindolf pugs> my @a = 1,2,3;
12:12 rindolf (1, 2, 3)
12:12 rindolf pugs> print @a
12:12 rindolf 123bool::true
12:12 rindolf pugs>
12:12 audreyt rindolf: because the "my" form in pugs is currently hard-coded
12:12 audreyt and that is a parsebug
12:12 audreyt if you had sayd
12:12 audreyt my @a;
12:12 audreyt @a = 1,2,3;
12:13 audreyt then it works as specced.
12:13 pmurias joined perl6
12:14 rindolf audreyt: I see.
12:14 rindolf audreyt: indeed it does.
12:18 svnbot6 r9376 | gaal++ | fix typo
12:20 rindolf audreyt: this bug is pretty old. We discussed it in #perl a couple of months ago.
12:20 svnbot6 r9377 | gaal++ | * Pugs.AST.Internals: add CompUnit data type for serialization
12:20 svnbot6 r9377 | gaal++ |   (see docs/notes/precompilation_cache.pod)
12:20 svnbot6 r9377 | gaal++ | * DrIFT.[Rule]?YAML: small readability fixes
12:20 svnbot6 r9377 | gaal++ | * reDrIFT.
12:21 audreyt rindolf: it is, as it's not considered critical
12:21 rindolf audreyt: I see.
12:23 lypanov joined perl6
12:25 lypanov joined perl6
12:27 lypanov joined perl6
12:27 * lypanov apologises for all the noise
12:28 Juerd Just play some nice music for compensation :)
12:29 lypanov audreyt: so it turns out not only is my new box going to take weeks to arrive, but on top of that, hanging around #perl6 got me back into my ruby interpreter :P
12:30 audreyt :D
12:33 audreyt so I wrote Regexp::PCRE
12:33 audreyt and it's working
12:33 audreyt if putter is around, we can hook it to the ReplaceEngine in no time
12:35 gaal haha!
12:35 gaal (begins the fun)
12:36 audreyt but putter is not here... so I have to do it by hand
12:49 gaal hey, I just noticed that -CParse-YAML doesn't load the Prelude. That's neat, but is it correct?
12:51 audreyt yay, I finished the hook.
12:51 audreyt prolly not :)
12:53 svnbot6 r9378 | gaal++ | * DrIFT.YAML and Data.Yaml.Syck: golfing for readability (is like...)
13:03 kolibrie joined perl6
13:03 audreyt this now works:
13:03 audreyt    use Regexp::PCRE;
13:04 audreyt    if ("Hello, world" =~ /(?<=Hello|Hi), (world)/) {
13:04 audreyt        print "Greetings, $1!";
13:04 audreyt    }
13:04 rgs woot
13:04 audreyt whereas in p5:
13:04 audreyt Variable length lookbehind not implemented in regex; marked by <-- HERE in m/(?<=Hello|Hi), (world) <-- HERE / at - line 1.
13:04 rgs is the effect of Regexp::PCRE global ?
13:04 audreyt also, we get reentrancy and safe pad callout for free
13:04 audreyt no, it's lexical via %^H
13:05 audreyt it affects the regcomp
13:05 gaal audreyt: how to go about adding source on YamlElem info? add a member in the data type, and ... ~V~
13:05 audreyt gaal: ~Y~ ~Y~
13:05 audreyt (the nullary handwavy operator)
13:05 gaal parseYaml, get coords?
13:06 rgs cool
13:06 audreyt you can get
13:06 audreyt        p->linect + 1,
13:06 audreyt        p->cursor - p->lineptr,
13:06 audreyt as the row and col
13:07 audreyt inside parseYaml
13:07 audreyt by peek into the parser struct
13:07 gaal ah, so the serialized form need not change. goodie.
13:07 audreyt :)
13:08 gaal how expensive is a record field? should I put its existence in the ifdef guard too?
13:08 Limbic_Region joined perl6
13:08 audreyt make it strict
13:08 audreyt two ints isn't expensive
13:09 audreyt two thunks are.
13:09 audreyt we can always benchmark and the ifdef later.
13:09 gaal yeah
13:09 gaal okies
13:10 gaal audreyt++ # ferocious implementor
13:11 gaal is !(Int, Int) equivalent to (!Int, !Int)?
13:11 audreyt no, tuples are lazy
13:11 audreyt please use two fields
13:12 gaal k
13:36 audreyt re::override is on CPAN.
13:37 audreyt putter's idea of
13:37 audreyt use re::override-p6rules;
13:37 audreyt is the next step
13:37 audreyt use re::override-pcre; # works
13:39 ruz joined perl6
13:40 broquaint Awe + sum
13:42 audreyt :D
13:42 Juerd Is re::override what I think it is?
13:42 audreyt it marks regexes defined in the lexical scope
13:42 audreyt and set a closure to be invoked when match happens
13:42 audreyt as to allow different RE implementations.
13:42 Juerd Neat.
13:42 audreyt it's basically putter's work
13:42 Juerd There's been discussion about that feature for years
13:42 audreyt but I packaged it and linked against pcre and did some swig magic
13:42 Juerd And now it's implemented in a matter of days :))
13:43 audreyt as putter put it, it's all thanks to #perl6 :)
13:43 Juerd Incredible :)
13:43 Juerd And a bit surreal
13:46 audreyt :)
13:46 audreyt ok, re::override code is now in src/pcre/
13:46 audreyt I'll go for a short walk
13:46 audreyt bbiab
13:47 audreyt &
13:47 svnbot6 r9379 | audreyt++ | * src/pcre/ is now also the hope for re::override.  This is
13:47 svnbot6 r9379 | audreyt++ |   just so I don't want to host two copies of pcre.
13:47 svnbot6 r9379 | audreyt++ |   (putter++ and folks, please feel free to reorg / commit here)
13:48 audreyt s/hope/home/ of course ;)
13:49 audreyt (it might be unwise and should be moved to perl5/re-override/ later)
13:49 audreyt but walk first :) &
13:57 pmurias profiling lrep,is there a way to indetify anonymous subroutines displayed in dproffpp -R?
13:57 nwc10 joined perl6
13:58 gaal got error pos in, but I think it's lying
13:58 nwc10 can the evalbot cope with multiline scripts?
14:00 nwc10 evalbot_9375: "Hello world"
14:00 nwc10 evalbot: "Hello world"
14:00 nwc10 Hello world? :-)
14:01 gaal ?eval "hello, nwc10"
14:01 evalbot_9375 is now known as evalbot_9379
14:01 evalbot_9379 user error (unhandled element: YamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
14:01 gaal grrr. well, we broke that too
14:01 nwc10 thanks. I'd forgotten that that was the syntax
14:02 nwc10 ?eval 3
14:02 evalbot_9379 user error (unhandled element: YamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
14:02 gaal that'd work on normal days
14:02 nwc10 ah OK.
14:02 nwc10 so I should come back in 10 minutes when it's fixed? :-)
14:03 Juerd pmurias: There is a way to name anonymous subroutines (yea...)
14:04 Juerd pmurias: Sub::Name. I don't know if it helps, but I think it should.
14:07 pmurias it looks handy, do anonymous soubroutines getter better names than __ANON__ in p6?
14:08 Juerd I personally hope they will take the form of ANON_file_line
14:08 Juerd Or something like it
14:15 nnunley joined perl6
14:16 pmurias I'll try Devel::FastProf, maybe it will prove to be more usefull
14:21 Qiang joined perl6
14:30 fglock joined perl6
14:30 stevan pmurias: Sub::Name should do exactly what you are looking for, I used it when profiling the metamodel
14:30 stevan (which had way too many anon-subs in it too)
14:31 stevan audreyt, putter: ping
14:31 Limbic_Region she went for a walk
14:31 audreyt stevan: pong
14:31 Limbic_Region she went for a short walk
14:31 stevan heya audreyt :)
14:32 audreyt hey!
14:32 Limbic_Region either that - or she is walking with her laptop and Leo has really good wi-fi
14:32 audreyt want to gobby my journal with me? :D
14:32 stevan :)
14:32 * stevan googles gobby
14:32 stevan sure
14:33 stevan audreyt: I also want to discuss what a "type" is so that I can start writing/implementing p6-object-space for putter
14:33 audreyt ok
14:33 svnbot6 r9380 | audreyt++ | * move the re::override bits from src/pcre/ to perl5/re-override/
14:33 svnbot6 r9380 | audreyt++ |   where they belong.
14:33 stevan but let me fetch gobby first
14:34 lypanov Limbic_Region: lol
14:36 vel joined perl6
14:37 audreyt gaal: do we know which commit broke prelude parsing?
14:37 svnbot6 r9382 | audreyt++ | * re::override - copy ../src/pcre/* over instead on Makefile.PL
14:37 svnbot6 r9382 | audreyt++ | * the LICENCE file belongs to src/pcre/
14:44 stevan audreyt: installing gobby right now
14:45 rgs audreyt: I found that I need to add "cc_lib_links   'pcre';" to re::override's makefile.pl to get it to pass tests.
14:45 gaal audreyt: the one with "gaal--" in the log
14:45 gaal I gotta go now, sorry
14:46 * rgs remembers that he has the commit bit
14:46 audreyt gaal: ok
14:46 audreyt rgs: yes, please commit.
14:47 audreyt gaal: np
14:47 chris2 joined perl6
14:48 rgs audreyt: actually that's no longer needed since it uses pugs's bundled pcre
14:48 fglock audreyt: I've got some new ideas on ::compiler - will commit in a while
14:48 audreyt rgs: strange
14:48 audreyt rgs: I did bundle all pcre stuff into the cpan release too, didn't i
14:49 rgs I haven't seen the cpan release :)
14:49 audreyt heh
14:50 audreyt try the CPAN release :)
14:55 fglock audreyt: already there - the idea is: Perl6, YAML, perl5, XML are all Pugs::<compiler_part>::<language_name> things, like Pugs::Grammar::Perl6 and Pugs::Emitter::YAML
14:56 audreyt well, YAML and XML are formats
14:56 fglock audreyt: and this is how eval( $str, :lang<name> ) is implemented
14:56 audreyt so Emitter::YAML isn't very interesting
14:57 audreyt unless we know what is it that we are encoding as
14:57 audreyt i.e. "./pugs Parse-YAML" emits parse tree as yaml
14:57 audreyt -C I mean
14:57 fglock audreyt: you could do $data = eval( $yaml, :lang<YAML> )
14:58 fglock but maybe that's just an IO layer
14:59 audreyt the thing is that "1+2" has no yaml encoding
14:59 audreyt no native ones
14:59 audreyt "[1,2,3]" has
14:59 fglock the idea was just to abuse 'Grammar' to implement eval - the rest is not important
14:59 fglock s/Grammar/Compiler/
14:59 audreyt oh. of course.
14:59 audreyt it's just the emitter that doesn't work that way.
15:00 fglock so that you can have other languages too
15:00 audreyt for emitting, "emitting to yaml" doesn't make sense
15:00 audreyt unless you specify what representation of the source code are you aiming at
15:00 fglock oh, I actually meant to emit the AST, right
15:03 audreyt :)
15:04 fglock audreyt: I was talking to stevan about the MOP - I suggested in the Notes that it could be specified as: ::compiler( parser => ['Perl6', 'MOP6', 'PrimP6'], ... )
15:05 fglock that is, you specify a bunch of Parsers that will be loaded sequentially
15:05 audreyt gaal: I'm backing up your commit for now :)
15:05 fglock and you can choose specific things about how the language is parsed in higher level or lower level AST
15:06 fglock but maybe I'm just complicating things
15:06 audreyt fglock: that sounds fine
15:06 audreyt oh btw
15:06 audreyt for all things you plan to separately release to CPAN
15:06 audreyt like Pugs::Grammar
15:06 audreyt I think put it to perl5/ still
15:06 audreyt and have its own Makefile.PL
15:06 audreyt and we'll link it with our main Makefile.PL
15:07 audreyt in the form of util/src_to_blib.pl
15:07 audreyt which will copy perl5/Pugs-*/ over to blib
15:07 audreyt perl5/Pugs-*/lib/ I mean
15:07 audreyt that gives us flexibility of release
15:07 audreyt and continuity
15:07 audreyt sounds like a plan?
15:08 nwc10 ?eval 3
15:08 evalbot_9379 is now known as evalbot_9382
15:08 evalbot_9382 user error (unhandled element: YamlStr "~") pugs: *** cannot cast from VUndef to Handle (VHandle)     at <prelude> line 200, column 24-45        <prelude> line 224, column 13-25        <prelude> line 278, column 5-55        -e line 1, column 1
15:08 audreyt nwc10: recompile takes time
15:08 fglock nice. There will be modules like Pugs::Grammar::MOP6, which should share a minimal common API (maybe a base Class)
15:08 audreyt it'll repair in ~5mins
15:09 nwc10 5 minutes! This is Pugs! How can anything take that long. I thought that Pugs ran on Internet time :-)
15:09 audreyt fglock: yes, but I think it's not part of Pugs::Grammar I think
15:09 audreyt ;)
15:09 svnbot6 r9383 | audreyt++ | * back out gaal's macro commit as it breaks prelude loading.
15:10 audreyt fglock: the metaspace->userspace MOP promoters should probably live in another module
15:10 audreyt oh wait, you did say ::MOP6
15:10 audreyt sure
15:10 audreyt though Pugs::ObjectSpace::Grammar may work as well
15:11 audreyt naming can change, the idea is the functionality could be strictly p5 and hooked to p6 land via a layer of glue
15:11 audreyt stevan: still there?
15:11 stevan yes
15:12 fglock audreyt: Pugs::ObjectSpace::Grammar (perl6 macros) and Pugs::ObjectSpace (implementation)
15:12 fglock ?
15:12 stevan fglock: sounds good to me
15:12 * stevan backlogs a little
15:14 fglock audreyt: about compiler "components": Grammar (includes MOP), Emitter, AST (includes optimizer and YAML-dump), more?
15:15 * stevan wonders how long this gobby compile is going to take :P
15:15 audreyt er, I'm not sure grammar includes MOP
15:15 stevan audreyt: I think what fglock is thinking is more the macros which desugar the class Foo {} form into MOP calls
15:15 audreyt oh ok
15:15 * stevan looks for that paste
15:15 audreyt in that case, sure
15:16 audreyt fglock: maybe first populate perl5/Pugs-Grammar/ ?
15:16 fglock audreyt: right - I'm trying to figure out problems like this - what are the special cases that the "pluggable" compiler will have to deal with
15:16 audreyt because I'd like to hook it to perl5/re-override/ :)
15:16 audreyt like, today :)
15:17 fglock audreyt: such that we can get a minimal compiler working, with whatever grammar, etc
15:18 audreyt fglock: minimal, as in passsing t/01-sanity/01-tap.t ?
15:18 audreyt I think you already pass that
15:18 stevan audreyt: see this paste (which has many wrong things in it, so should only be evaluated only as the scribblings of an insane person) http://sial.org/pbot/16191
15:18 fglock audreyt: look for MOP6 in Note-Pugs.pm
15:18 pmurias stevan: thanks for the Sub::Name tip
15:19 stevan pmurias: no problem, Sub::Name is one of my all time favorite "useful" modules for doing whacky Pugs-ish things :)
15:19 audreyt stevan: makes sense. a lot.
15:19 stevan audreyt: :)
15:20 pmurias fglock: i've got a complaint and a suggestion for lerp, which one should I start with?
15:20 stevan audreyt: nothingmuch pointed out that the class macro should also wrap everything with a BEGIN {}  too
15:21 audreyt no
15:21 audreyt only named declarators do that
15:21 audreyt class foo { ... }
15:21 audreyt is same as
15:21 fglock stevan: re 16191 - will it support lexical classes too?
15:21 audreyt our class foo { ... }
15:21 audreyt which is a named declarator of "our ::foo ::= class { ... }"
15:21 fglock pmurias: just go on :)
15:21 audreyt and the ::= desugar into BEGIN
15:22 stevan audreyt: good point
15:22 audreyt and the "class" then could be just a normal-time subroutine, even
15:22 audreyt s/just a/just desugared into a call to/
15:23 pmurias the suggestion first, we could make unresolved ast nodes turn into sub_applications, or the other way around
15:23 audreyt because this is valid p6:
15:23 stevan audreyt: thats one possibility too, then &class would do all the meta-voodoo
15:23 audreyt my $x = class Foo { ... };
15:23 nwc10 left perl6
15:23 fglock stevan_: yes it does :)
15:23 TimToady one could go as far as to get rid of BEGIN and use ::= do {...}, but I think people like the BEGIN sugar.
15:23 audreyt stevan: yeah. then the named-declarator form just tells the anonymous class object what its name is.
15:24 audreyt TimToady: I thought BEGIN is fundamental and ::= is a infix macro that desugars into BEGIN
15:24 TimToady Hmm, that means we can do "::= my $x" to have declarations "escape" their BEGIN block-ish-ness.
15:25 TimToady maybe not.
15:25 fglock pmurias: that's a good idea - however, this part of the compiler will be rewritten soon and we can implement this afterwards
15:25 pmurias fglock: will it be rewritten in p6?
15:26 rantanplan_ joined perl6
15:27 stevan audreyt, TimToady: while I have you both here,.. what exactly is a type... meaning what do I create when I say "my subtype Str_not2b of Str where /^[isnt|arent|amnot|aint]$/;"
15:27 audreyt it's "subset" now
15:27 fglock pmurias: it will be rewritten to follow the Pugs structure - either in p6 or p5 (but moved to p6 later)
15:27 stevan audreyt: ??
15:27 audreyt my subset
15:27 audreyt you create a ^Str_not2b and ::Stre_not2b
15:27 stevan ah,.. ok,.. but what is it still that I am creating
15:27 audreyt just like classes
15:27 stevan hmm
15:28 audreyt which has a constraint placed on it
15:28 TimToady it's some base class plus constraints
15:28 pmurias fglock: you mean Notes-Pugs.pm, I'll read it then
15:28 audreyt TimToady: think is very well worth a look
15:28 audreyt s/think/this/
15:28 audreyt TimToady: http://weblogs.mozillazine.org/roadmap/archives/2005/11/js2.html
15:28 stevan ok, but I can't do Stre_not2b.new() can I?
15:28 audreyt TimToady: the "as" "to" "is" distinction is _very_ useful
15:29 audreyt stevan: sure you can, if you can do Str.new
15:29 stevan hmm
15:29 fglock pmurias: Notes-Pugs.pm is written in anarchic language
15:29 stevan interesting
15:29 audreyt TimToady: it allos the form
15:29 audreyt function f(a is int, b as Object, c to String) is Number {...}
15:29 fglock fglock: it requires a 2 pass read
15:30 fglock pmurias: it requires a 2 pass read :)
15:30 audreyt TimToady: "is" is a hard guarantee; "as" is a soft cast (fail on undef), "to" is coercion (user extensible)
15:31 audreyt TimToady: now the soft-case may or may not be of use to p6, but maybe we can allow
15:31 audreyt sub f ($x is Dog, $y as Dog)
15:31 audreyt to distinguish between autocoercive and noncoercive forms. just a thought
15:31 pmurias fglock:I understant that Notes-Pugs is the structure it will be rewritten to comform to
15:31 audreyt (previously the coercive lookup was ill-defined)
15:32 pmurias fglock: am i right?
15:32 fglock pmurias: yes
15:32 TimToady audreyt: can do whatever turns out to be useful.
15:32 audreyt cool
15:32 TimToady stevan: when evaluated for anything other than the constraint, a subset acts like its base class.
15:32 pmurias fglock:did you think of it yourself or is it based on something else?
15:32 audreyt ?eval 1
15:33 evalbot_9382 is now known as evalbot_9383
15:33 evalbot_9383 user error (unhandled element: YamlStr "~")
15:33 stevan TimToady: do we have a "type" constructor? (probably not I assume since we now call "subtype" , "subset")
15:33 stevan or is that just "class" :)
15:33 pmurias fglock: it look pretty reasonable for me by the way:)
15:34 audreyt stevan: it's called "enum" or "class"
15:34 stevan cool
15:34 fglock pmurias: feel free to contribute :)
15:34 * stevan erases putter's "type Any" and replaces it with "class Any"
15:35 pmurias fglock: the think that I think will need to be adressed soon is compilation speed
15:36 pmurias s/think/thing
15:36 stevan TimToady, audreyt: hmmm... is Any basically equivalent to Object??
15:36 pmurias it may be premature optimization, but it begins to hurt bootstraping
15:37 audreyt stevan: see lattice: http://weblogs.mozillazine.org/roadmap/archives/2005/11/js2.html
15:37 audreyt ?eval 1
15:37 audreyt pmurias: you mean speed of "make pugs"?
15:37 evalbot_9383 1
15:37 audreyt or speed of "pugs -c"?
15:38 pmurias i meant the speed of lrep prelude compilation :)
15:38 audreyt stevan: the JS "T" is P6 "Any", JS "Void" is p6 "Void", JS Null is p6 "Undef"
15:38 audreyt stevan: p6 has no formal nullable support
15:39 audreyt in effect everything is nullable
15:39 pmurias i use "set the compilation before going to school" workaround for make pugs
15:39 stevan audreyt: ok,.. sounds good to me
15:40 audreyt stevan: remember I said that for static parts look to Scala? I think for dynamic parts we can look to JS2 :)
15:40 stevan :)
15:40 audreyt (which has bootstrapping as its primary goal at the moment, too, so they are working on ~exactly the same problems)
15:40 stevan audreyt, TimToady: does the metamodel need to support anything special for type constraints?
15:41 audreyt (and also infiltrated by LtU ninjas)
15:41 audreyt <nothingmuch> lambda ninjas flip out and write compilers
15:41 audreyt <nothingmuch> all the time
15:42 audreyt stevan: prolly not at MM level
15:42 TimToady I think of it more like, everything derived from Object is born nulled, if "nullable" means you can make a Maybe-ish type from it.
15:42 stevan born without sin,.. hmmm
15:42 audreyt TimToady: yeah. JS1 is like that; in JS2 they allow you to say "this is never undef"
15:42 audreyt and hence require an initializer
15:42 webmind does anyone managed to compile pugs for Intel Xscale cpu's ?
15:43 TimToady Note that native types are not required to support undefined values.
15:43 audreyt yeah. JS2 killed native types for simplicity
15:43 audreyt the P6 lattice has the "Value" dimension which is not nullable
15:43 stevan audreyt: ok, so I assume that p6 will mostly use nominal typing, which the MM can already pretty much handle
15:44 audreyt stevan: structural subtyping is something I'd like but none of the spec has it
15:44 TimToady The is/as/to distinction in JS2 seems to confuse containers with values...
15:44 audreyt stevan: so we are safely nominal, yeah.
15:44 stevan audreyt: yes, :)
15:44 audreyt TimToady: they are just sugar... :)
15:44 audreyt var v is t = x ? if (!(x is t)) throw TypeError; var v = x
15:44 audreyt var v as t = x ? var v = x as t
15:44 audreyt var v to t = x ? var v = x to t
15:45 TimToady saw that, and noted the lack of parallelism.
15:45 audreyt parallelism?
15:45 * stevan thinks Perl 6 is going to root teeth with all it's suger
15:45 audreyt stevan: it's all aspartame
15:45 TimToady can't say var v = x is t
15:45 stevan audreyt: thats a carcinagen IIRC
15:45 TimToady so it's abit apples and orangutans.
15:46 * stevan doesn't want to kill off all the perl community
15:46 TimToady kills lab rats, but then research kills lab rats
15:46 audreyt TimToady: right, in p6 .isa and infix:<is> are two words
15:47 TimToady I'm trying to convince myself that "as" and "does" mean basically the same thing given punning.
15:48 audreyt punning?
15:48 audreyt oh!
15:48 TimToady class/role punning
15:48 audreyt good idea.
15:48 audreyt yeah, got it.
15:48 * stevan is lost
15:48 * audreyt GCs stevan away
15:48 stevan :)
15:48 stevan left perl6
15:48 audreyt sub f ($x does Dog){...} # coercive
15:49 * TimToady leaves the 90 and 9 to search for the one lost sheep...
15:49 audreyt sub f ($x is Dog){...} # non-coercive
15:49 stevan joined perl6
15:49 audreyt sub f (Dog $x){...} # non-coercive as well
15:49 stevan Stevan.new() # im back :P
15:49 LeTo ESTEVANEXISTSALREADY
15:50 TimToady $x is Dog indicates that Dog is a container type.
15:50 * audreyt resists Agent Stevan jokes
15:50 * stevan marks audreyt for collection
15:51 audreyt TimToady: er, right.
15:52 audreyt it used to be that ":(Dog $x)" and ":($x does Dog)" has same meaning
15:52 audreyt iirc
15:52 FurnaceBoy joined perl6
15:52 audreyt are you saying that we split them so that the "does" calls infix:<as> but the first form do not?
15:52 TimToady we have sugar :($x of Dog) to mean :(Dog $x)
15:53 audreyt or even :($x returs Dog)
15:53 audreyt returns
15:53 audreyt which very strangely means different things than "of" if used in contravariant position
15:53 TimToady :(Dog @array is MyArray)
15:54 TimToady :(@array is MyArray of Dog)
15:54 audreyt nod.
15:57 fglock pmurias: re compilation speed: yesterday audreyt and I found a way to improve the compiler whthout making it "slower". That's a start.
15:59 fglock food &
15:59 TimToady backlogging--you can say "use 1.2.3 v6" and have it look for v6.pm.
15:59 TimToady not suggesting that, of course../
15:59 audreyt and why does it work?
15:59 TimToady s/\//./
15:59 audreyt the "use 0 v6" thing
16:00 audreyt mm, undocumented
16:00 TimToady because the lexer swaps "use v6 1.2.3" around
16:00 audreyt and it does that because... ?
16:00 TimToady so the parser only ever sees it in one direction.
16:00 audreyt oh ok.
16:00 audreyt use 9 CGI;
16:00 audreyt CGI version 9 required--this is only version 3.10 at - line 1.
16:00 TimToady don't look at me like that.
16:01 TimToady I didn't do that part.
16:01 audreyt sure... :)
16:01 rgs the lexer does horribly evil things, so the parser doesn't get to do things even worse.
16:01 audreyt the jenga tower is indeed fractal
16:01 TimToady Er, um, yeah, that's the ticket...
16:01 audreyt it's fractals all the way down
16:01 rgs I'll quote you on this
16:01 audreyt sure
16:02 Juerd That's nice for poetry too.
16:02 Juerd use 5 towels;
16:02 TimToady I wonder if p55 handles the reversed form...
16:02 datengaertner joined perl6
16:02 TimToady Nope.
16:02 audreyt so maybe
16:02 audreyt use v6-pugs;
16:02 audreyt is the ticket
16:02 LeTo use 666 esu;
16:03 * audreyt just looked at the lexer chunk in p5
16:03 audreyt anything else wouldn't do, but -pugs works
16:03 audreyt use v6 -pugs; # this breaks
16:03 audreyt as does all other forms
16:04 audreyt I like this :)
16:04 TimToady use pugs-v6; also seems to work.
16:05 audreyt sure, but pugs -v6 also works
16:05 audreyt the idea is to make it both valid p6 and p5
16:05 audreyt v6-pugs can easily be contrued as Perl-6.0.0-pugs;
16:05 audreyt not the other way around
16:05 TimToady hmm, so your desugaring v6-pugs to Perl-6-pugs
16:05 TimToady right
16:06 Juerd Is this the right time at which to say that having to specify you want 6-not-5 would really suck? :)
16:06 audreyt and v6.pm in p5land will do the same
16:06 audreyt Juerd: you can start with "class" :)
16:06 TimToady 6.0.0 means it has to be 6.0.0 not 6.1
16:06 Juerd audreyt: I'd prefer my use statements before class...
16:06 audreyt Juerd: well, that's no longer legal
16:06 Juerd That sucks.
16:06 audreyt Juerd: file-scope classes needs to be the 1st statement
16:06 TimToady or invoke perl6, or use *.p6, or...
16:07 audreyt (block-scope classes still works, of course)
16:07 TimToady module Main;
16:07 audreyt Juerd: I'm abusing the thing that makes 6 and 5 coexist based on src alone
16:07 Juerd The class declaration itself can have expressions in it.
16:07 audreyt to make Pugs.pm parts be rewritable in perl6 without changing user code
16:07 Juerd So lexical pragmas should be loadable before then.
16:08 audreyt class Foo;
16:08 audreyt use pragma;
16:08 audreyt # not the other way around
16:08 Juerd class Foo is bar(expr)?
16:09 audreyt that's desugared into
16:09 Juerd And what about executed code before the class?
16:09 audreyt class Foo { is bar(expr) }
16:09 Juerd I know it's desugared.
16:09 Juerd I also know there are workarounds; but I don't like having to use workarounds.
16:09 audreyt so if you need expr, and need to use pragma in that expr, it seems the only way to do it is to use the desugar form.
16:09 audreyt failing that, use this form
16:09 audreyt use pragma;
16:09 audreyt class Foo {
16:09 audreyt  ...
16:10 audreyt }
16:10 Juerd Also, not everything defines a class.
16:10 audreyt which is fine.
16:10 TimToady fine, just never use the class Foo; form
16:10 Juerd Then I misunderstood the point, I think.
16:11 Juerd I interpreted it as: everything is perl5, unless the first statement encountered uses a perl 6 specific thing.
16:12 TimToady Okay, then you want
16:12 TimToady class Foo {...}
16:12 TimToady use pragma;
16:12 TimToady class Foo { stuff }
16:12 TimToady or use the desugared form.
16:13 Juerd That means that if my outermost element is a loop, I'd need some kind of declaration before it, to trick the parser.
16:13 TimToady like "use v6"?
16:13 Juerd That, or class.
16:13 TimToady or module.
16:14 Juerd I can't say this feels like Perl to me.
16:14 TimToady or #!/usr/bin/perl6
16:14 TimToady or #!/usr/bin/perl -Mv6
16:14 audreyt (or #!/usr/bin/pugs -- we don't do that defaulting thing)
16:14 Juerd It feels too restrictive, and silly to have to declare things in order to not get back to an older (in a few years deprecated) version
16:15 TimToady we just can't break shell scripts that invoke /usr/bin/perl
16:15 audreyt Juerd: what is the alternative you are proposing?
16:15 Juerd audreyt: Parse everything with Perl 5, on syntax error, try 6. If people want *efficiency*, they can get it with added declarations.
16:15 TimToady this is heavily thrashed out in some A or other...
16:16 Juerd But declarations just to get it working feels bad.
16:16 audreyt "on syntax error try 6"
16:16 audreyt wow. hm.
16:16 Juerd (And this is exactly why I think "Perl" is a bad name for Perl 6, but that's another discussion.)
16:17 * audreyt hands Juerd the name "#!/usr/bin/pugs" which always runs just p6 scripts
16:17 TimToady Look, I'm getting tired of that discussion too.  Either keeping the name or not keeping the name is bad.
16:18 TimToady I think it's much more important to make the Perl 5 folks think they have a stake in Perl 6, even if it makes them unhappy.
16:18 audreyt Juerd: but... if you'd like hack perl5/main.c to allow custom fallback on syntax error, that's wonderful
16:18 audreyt currently it only respects the #! line
16:19 TimToady #!/usr/bin/perl...er, perl6 -w
16:19 TimToady s/er,/err/
16:19 Juerd TimToady: It's a different discussion, and mostly irrelevant because you decided already. I'm okay with the decision, but just don't want that the language is hurt by it; only the implementation.
16:20 audreyt /usr/bin/perl...err,: bad interpreter: No such file or directory
16:20 TimToady ln -s perl perl...err
16:20 Juerd audreyt: I'm not a C programmer, but in the worst case you can even parse the error message string :)
16:21 Juerd audreyt: Aren't DIE handlers already usable at that stage, by the way?
16:21 TimToady I'm extremely leary of "retry on syntax error" solutions, because it tends to cloak real syntax errors.
16:21 TimToady That certainly happened with interactive pugs a little while ago...
16:21 audreyt right.
16:22 Juerd TimToady: Then perhaps auto-recognition itself is a bad idea.
16:22 Juerd TimToady: And unspecified perl should just be 5
16:22 TimToady One token lookahead ain't bad.  Or maybe 2 in the case of "use v6".
16:23 audreyt and we are going to put a p5 pragma by that name :)
16:23 TimToady but mostly people will just #! it.
16:23 Juerd TimToady: What's your opinion on having 6 as part of the name, instead of a version number?
16:23 Juerd (i.e. Perl 6 1.0.0)
16:23 TimToady I think that would be confusing.
16:23 Juerd Okay
16:24 TimToady That's part of the reason I always write "Perl 6" instead of "Perl6".
16:24 TimToady Eventually I want to deprecate "Perl 5" so that "Perl" means "Perl 6" by default.
16:24 Juerd I think whitespace as part of names isn't weird.
16:24 TimToady When we get there, we can deprecate the need for "use v6".
16:24 Juerd I have whitespace in my own name.
16:25 TimToady Hey I have two whitespaces in my name.
16:25 rgs I have utf-8 in mine !
16:25 TimToady I have utf-8 in mine too.  :-)
16:25 Juerd TimToady: What's so different 10 years from now, that it's okay then to break compatibility with old scripts by then, but not now?
16:25 TimToady chance to go through a year's deprecation cycle without breaking too many things all at once.
16:26 Juerd The cycle can already start.
16:26 rgs one year is short
16:26 TimToady and this problem arises *only* for the main program.
16:26 pmurias #!/usr/bin/perl6 is perfectly fine at least for me
16:26 Juerd TimToady: Which is exactly the place where people have the throwaway code.
16:26 Juerd And just want things to work.
16:27 TimToady (assuming the class/module/package thingie)
16:27 Juerd In general, modules are more cleanly coded and contain more cruft like documentation, version declarations, etc., anyway.
16:27 Juerd pmurias: Same for me, but if there's going to be a /usr/bin/perl that handles both 5 and 6, I want it to be nice.
16:28 Juerd The availability of alternatives is never a good excuse for annoying software, IMO
16:29 TimToady The availability of alternatives implies the necessity of choice.
16:29 svnbot6 r9384 | audreyt++ | * Add lib/v6.pm.  This works:
16:29 svnbot6 r9384 | audreyt++ |     #!/usr/bin/perl
16:29 svnbot6 r9384 | audreyt++ |     use v6-pugs; # Here is some Perl 6 code...
16:29 svnbot6 r9384 | audreyt++ |     sub postfix:<!> { [*] 1..$_ }
16:29 svnbot6 r9384 | audreyt++ |     sub sum_factorial { [+] 0..$_! }
16:29 svnbot6 r9384 | audreyt++ |     no v6;       # Here is some Perl 5 code...
16:29 svnbot6 r9384 | audreyt++ |     print sum_factorial(3); # 21
16:30 audreyt (the dependency of Inline.pm is going away soon, as noted by fglock et al)
16:31 Juerd TimToady: But if you expect/want people to use #!perl6, then there's no point in *having* the heuristics anymore. They don't need to be there in order for a deprecation cycle to start.
16:31 audreyt Juerd: maybe the heuristics only applies to modules. I'm fine with that. ;)
16:31 Juerd So I was assuming you want people to declare in their code, somehow, that they use 6
16:31 audreyt Juerd: (and I'd argue it's neccessary for modules.)
16:31 Juerd audreyt: I'm fine with modules too. As said, I don't mind putting effort into writing modules.
16:31 audreyt .pm6 would be teerrible idea.
16:32 Juerd I don't think it would be a terrible idea.
16:32 audreyt I think it'd be. I'd like to be able to use perl6 .pm from p5 code and vice versa.
16:32 Juerd I think that seeing perl 6 and perl 5 as different languages with no interrelation is the most sane path; it may be obvious that this opinion isn't shared by you :)
16:33 audreyt yeah. sadly. I'd like to use DBI and pretend it's the same language :)
16:33 Juerd So would I, but I would not mind using the same mechanism that I use for loading Python modules.
16:33 Juerd :lang<perl5> or :lang<python>... Works for me.
16:34 audreyt maybe then we just go the python route and use .p6 for both modules and scripts.
16:34 Juerd If I try to load Perl 5 code from Perl 6 without specifying that I want Jenga, it's okay to punish me with syntax errors... :)
16:34 TimToady blech
16:34 Juerd Oh, it's dinner time. I should get home.
16:34 Juerd Bye for now
16:34 TimToady ciao.
16:34 audreyt ciao :)
16:35 fglock pmurias: re compiling speed: rule nodes can be compiled statically (no "flags"); we can use an inlining emitter; we can emit regexes whenever possible - quite a lot of options
16:35 audreyt what's the bottleneck currently?
16:35 audreyt fglock: seen v6.pm?
16:35 audreyt fglock: hook that to Pugs::Grammar et al and we have a nice experiment ground
16:35 audreyt (for people writing p5/p6 mixed code)
16:35 audreyt and the parts that bootstrap itself can start with
16:35 turrepurre joined perl6
16:35 audreyt use v6-pugs;
16:36 fglock audreyt: cool!
16:36 audreyt module Pugs::Some::Component;
16:36 audreyt ...p6 code...
16:36 audreyt and expect to be still loadable from p5 land
16:36 audreyt and usable as such
16:36 audreyt that should simplify rollout a lot
16:36 audreyt (i.e. stepwise rollout of components written in p6)
16:36 fglock audreyt: I'd like to quickly have a Pugs::Compiler which we can plug things into - any ideas? did you see the Notes-Pugs?
16:37 audreyt I did, and I'm journaling about it
16:37 audreyt but the journal keeps being obsoleted by new Notes
16:37 TimToady maybe pipe irc ==> Notes lazily...
16:37 TimToady s/Notes/Journal/
16:38 audreyt TimToady: that's what I've been doing :)
16:38 TimToady /irc/Notes/
16:38 fglock audreyt: because I'd like to publish the compiler before the rules module (which would need a lot of work to provide full compliance)
16:38 audreyt fglock: publish, as in upload to CPAN? how do you get it without rules?
16:38 TimToady bleh, ENOTLD50OFCAFFEINEYET
16:39 fglock audreyt: rules as a subset of perl6 is working; for standalone rules it should be more complete
16:39 stevan audreyt: I have a feeling gobby is not going to be done compiling for a very long time
16:40 audreyt fglock: "completeness" is overrdated
16:40 audreyt stevan: :/
16:40 audreyt stevan: no binary packages?
16:40 fglock fglock: I mean, there is a single Perl6/Perl6Rule compiler - it's not much modularized
16:40 stevan audreyt: not that i could find,.. only darwinports
16:40 audreyt fglock: yeah, so I'd like to modularize it first
16:40 audreyt I can give it a go after journaling
16:41 audreyt the reason for that is that I'd like the compiler part to not be overly friendly to the parser part
16:41 audreyt given that we are working in P5 instead of Hs
16:41 audreyt interface is even more important, as refactoring in P5 has real costs
16:42 audreyt (in sanity and time)
16:42 fglock audreyt: ok - I can split the compilers very quickly - the problem is packaging, documenting, having tests
16:42 audreyt and the sooner we can move to a more-refactorable language -- that's P6 here -- it'd rock
16:42 audreyt fglock: that's my expertise.
16:42 audreyt (packaing random code as CPAN modules)
16:42 fglock I'll start then...
16:42 audreyt fglock++
16:43 audreyt perl5/Pugs-* is yours :)
16:43 audreyt stuff things there and I'll make then CPAN-worthy
16:44 fglock ok - anyway, I'd like to hear your opinions about a pluggable compiler - I'd really like to have, say, an option to use PGE, i_e, or putter's rules
16:44 fglock or to compile Ruby instead of P6 :)
16:44 pmurias or xquery :)
16:45 * audreyt just handed Steve Peters a commit bit
16:45 fglock pmurias: I'll just copy things to /perl5/Pugs-* - your work in lrep will not be thrown away (not soon, I hope)
16:46 audreyt fglock: Ruby instead of p6, sure!
16:46 fglock pmurias: pretty much will probably be rewritten anyway
16:46 audreyt fglock: re pluggable engines, let's just get one interface there :)
16:47 pmurias I'll be hapy to help with /perl5/Pugs-*
16:47 fglock pmurias: nice!
16:51 audreyt turns out steve_p (going to commit a fix to re::override) was subjected to this treatment before:
16:51 fglock audreyt: not sure - rule metalanguage goes in Pugs::Grammar::Rule, the rule compiler goes in Pugs::Compiler::Rule, the p5 emitter goes in Pugs::Emitter::Rule::Perl5
16:51 audreyt # http://aspn.activestate.com/ASPN/Mail/Message/perl6-internals/3039726
16:51 pmurias please don't move p5hacks over :)
16:51 audreyt fglock: goodenough.
16:52 fglock pmurias: not moving, but why?
16:52 * Steve_p points out to pmurias that he added some of the earliest test files
16:53 audreyt Steve_p: indeed, you already got a commit bit :)
16:56 Steve_p rgs did added a few things early on too
16:57 audreyt IRC bots. that I remember :)
16:58 rgs except that I don't remember my password, and that the email address I registred with is dead
16:58 audreyt rgs: another addr?
16:59 rgs audreyt: [email@hidden.address]
16:59 audreyt rgs: ok... register another id is perhaps easiest
16:59 audreyt (commit bit sent)
17:00 Juerd That was a somewhat unsubstantial dinner :(
17:00 pmurias fglock: it was just a wish that they won't be needed
17:00 rgs audreyt: thanks!
17:01 pmurias Steve_p why did you point it out to me?
17:01 audreyt I think it's a mispointer and meant for me :)
17:01 eric256 joined perl6
17:02 eric256 svkbot check
17:02 eric256 svnbot check
17:03 Steve_p I thought you were joking about p5hacks as in people.  You must have been talking code :)
17:03 audreyt yeah, misc/pX/Common/lrep/p5hacks.pl :)
17:03 eric256 arg... my feather pugs repo is jacked. lol. now i'm afraid
17:04 audreyt svnbot6: check
17:04 Juerd "jacked"?
17:04 svnbot6 r9385 | fglock++ | perl5/Pugs-Compiler-Rule/README
17:04 svnbot6 r9386 | eric256++ |  r17634@feather:  eric256 | 2006-03-10 18:01:32 +0100
17:04 svnbot6 r9386 | eric256++ |  Added bowling.p6 example
17:04 eric256 messed up. ahh there it is... i had to do svk ci -m and then svk push
17:04 fglock Steve_p: parts of the code that are marked for re-implementing either in p5 or p6
17:04 pmurias Steve_p: sorry if you felt ofended
17:04 eric256 but it hadn't been done in a while so it was giving me lots of interesting feed back
17:05 Steve_p pmurias, no, certainly not offended :)
17:06 pmurias misc/fglock seemed to reappear, why?
17:07 Juerd YAPC::Europe--  # they should at least acknowledge.
17:08 fglock pmurias: I don't know - but ignore it :)
17:09 pmurias remove it so nobody forks it?
17:09 fglock pmurias: ok
17:09 fglock (please do)
17:12 pmurias fglock: what svn client are you using?
17:12 svnbot6 r9387 | pmurias++ | merge in long ago
17:14 fglock pmurias: plain svn in linux, and tortoise in windows
17:14 svnbot6 r9388 | fglock++ | Pugs::Grammar::Rule
17:16 fglock audreyt: Pugs::Runtime::Rule - for storing iterator_engine.pl ?
17:16 * eric256 advocates Perl6 through code  
17:16 eric256 http://perlmonks.org/?node_id=535754
17:16 audreyt fglock: Pugs::Grammar::Runtime perhaps?
17:17 audreyt Pugs::Grammar::Engine?
17:17 audreyt Pugs::Grammar::Engine::Iterator?
17:18 audreyt Very::Long::Module::Names::Like::Catalyst::Components
17:18 fglock Pugs::Grammar::Rule::Engine then
17:18 audreyt k
17:18 fglock eric256: I got 2 xp for looking
17:19 Juerd fglock: Probably 1 for being logged in, 1 for some node that was upvoted since your last visit :)
17:19 iblechbot joined perl6
17:20 eric256 nah its a p6 conspiracy, pm automagicaly gives you extra XP for viewing nodes with perl6 code on them!
17:20 nnunley joined perl6
17:21 * pmurias wonders how difficult would it be to convert http://www.w3.org/2004/08/applets/xpath-grammar.xml to a grammar
17:24 Juerd pmurias: Trivial, but it'll take a lot of time to write the parser/emitter.
17:24 fglock pmurias: it looks like something that could be automated - read XML, emit grammar (you certainly can do it!)
17:25 Juerd Do we have a pure Perl 6 XML parser yet? :)
17:26 fglock audreyt: for the 2 versions of the engine: Pugs/Grammar/Rule/Perl5/Engine.pm, Pugs/Grammar/Rule/Perl6/Engine.pm ? (this is getting big)
17:28 pmurias I'll take a break (eye strain) and convert the xquery grammar latter in the evening
17:29 fglock pmurias++ (if you make an automated converter, you can reuse it for other grammars)
17:29 svnbot6 r9389 | smpeters++ | Changes to allow re::override to compile with a threaded Perl.
17:30 audreyt fglock: no, just Pugs::Grammar::Rule::Engine
17:31 audreyt fglock: leave the p6 part as .p6 for now if you'd like, or as comment
17:31 audreyt fglock: we can switch the entire thing to p6 once we get p6 compilation to p5 figured out. maybe.
17:32 audreyt fglock: .p6 sounds best for me.
17:33 fglock k
17:38 fglock oops - writing the Match object will be hard
17:38 svnbot6 r9390 | fglock++ | Pugs::Compiler::Rule::Engine.pm/p6
17:39 * fglock looks at putter's code
17:40 fglock Juerd: re time to write the parser - if you write a grammar, lrep will make a parser :)
17:40 dduncan joined perl6
17:41 Juerd fglock: Can't do that, sorry.
17:41 Juerd But maybe http://perlmonks.org/index.pl?node_id=179755 can be a nice starting point.
17:42 fglock Juerd: np - just telling you that doing the parser can be easy (or not too difficult)
17:42 Juerd It needs revision, though (most importantly: I interpreted the meaning of "-" within <> wrong)
17:42 Juerd fglock: XML is hard.
17:42 fglock Juerd: cool post
17:43 fglock (btw, lrep doesn't implement character classes yet)
17:44 Juerd fglock: Isn't implementation, at first, a matter of desugaring to alternation?
17:44 * audreyt gives up about finishing the Pugs.pm journal entry
17:44 audreyt (the GPW entry is up, though.)
17:45 audreyt Steve_p: re-override-commit-p?
17:45 fglock audreyt: :(
17:45 eric256 hey Juerd, the code i posted was tested with no warnings...although that might just be a pugs bug. but being able to say "say;" to get a new line is nice. ;)
17:46 svnbot6 r9391 | fglock++ | Pugs-Compiler-Rule/TODO
17:46 Juerd eric256: I think maybe you should p6l it
17:46 fglock Juerd: yes - but I didn't need it, so it was left behind
17:46 Juerd fglock: Ah, I guess that's just the difference in how we code :)
17:47 Juerd I even write stuff I'll never use, like in July in 2002, that perlmonks post.
17:47 fglock Juerd: how?
17:47 Juerd :)
17:47 Juerd I'm not that practical
17:47 audreyt . o O (you use it if you write a test for it)
17:48 TimToady eric256: "-> my" is also bogus.  The my is implied on any formal params.
17:49 TimToady Also, .<> can be reduced to <> since the . is implied.
17:49 eric256 ahhh yes i was wondering about that.
17:50 fglock Juerd: I write so many things that some even survive :)
17:50 fglock Juerd: not all are useful
17:50 fglock biab - finally finish my registration &
17:52 eric256 TimToady should say; be warning then about it being undefined?
17:53 Juerd s/it/$_/
17:53 TimToady If it defaults to $_, then yes.  I suppose an argument could be made for not defaulting it.
17:54 TimToady There always .say if you want it defaulted...
17:54 TimToady *is
17:54 audreyt in that case, maybe we can relook at all the $+_ forms
17:54 Steve_p audreyt: ?
17:54 audreyt $+_? that is
17:54 audreyt er I mean
17:54 audreyt =$+_
17:55 Steve_p Did I mess something up?
17:55 audreyt oh nvm, I didn't "svk up"
17:55 audreyt Steve_p++ # it works
17:56 Steve_p Alright :)
17:56 audreyt Steve_p: can you think of some interesting re::override::*?
17:56 audreyt re::override::glob # bad idea
17:56 audreyt re::override::sql_like # bad idea
17:57 audreyt re::override::posix_dfa # may be even of some use
17:57 Steve_p That might me one...
17:57 Steve_p re::override::libc ?
17:57 audreyt libc?
17:57 audreyt the posix res, that is?
17:57 Steve_p Oh, nevermind that would be POSIX
17:57 Steve_p Ahh you type to fast!
17:58 Steve_p :)
17:58 TimToady re::override::perl7 :)
17:58 * Steve_p fears for TimToady ;)
18:01 Steve_p re::override::Boost ?
18:01 Steve_p ...if you want to endure some C++ torture
18:08 ruoso joined perl6
18:09 * ruoso is impressed with lrep
18:12 audreyt ruoso: hi :)
18:12 audreyt ruoso: want a commit bit? :)
18:13 dduncan I just saw the new re-override module ... looks interesting
18:13 ruoso audreyt, not yet... :)
18:14 ruoso audreyt, :)
18:14 dduncan why wait?
18:14 justatheory joined perl6
18:15 ruoso dduncan, I'm just starting a real-read on the code...
18:15 audreyt ruoso: daniel at ruoso dot com?
18:15 ruoso audreyt, yes
18:16 audreyt a commit bit is on your way. add yourself to AUTHORS when you feel like :)
18:16 ruoso :)
18:17 TimToady ruoso: welcome to the mosh pit.
18:18 ruoso :) :)
18:20 TimToady for $Larry -> $job {...}
18:20 wolverian btw, does given $foo -> $bar { ...use $bar... } work? not very useful but..
18:21 audreyt ?eval given 3 -> $x { $x }
18:21 evalbot_9383 is now known as evalbot_9391
18:21 evalbot_9391 Error:  unexpected ">" or "-" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:21 audreyt no.
18:21 Juerd wolverian: Why wouldn't it be useful? It's like my $bar := $foo with added indication of scoping.
18:21 wolverian ah, I thought ?eval was broken
18:21 wolverian Juerd, I said not _very_ useful.
18:21 Juerd I think it's very useful.
18:22 TimToady wouldn't work anyway, binding is at run time, but use is at compile time.
18:22 * audreyt seconds Juerd's opinion this time
18:22 audreyt TimToady: the "use" there is in English not in Perl6 I think
18:22 wolverian yes, sorry about that
18:23 TimToady k
18:23 TimToady really gone now. &
18:23 audreyt dinner, brb &
18:23 wolverian have fun :)
18:27 datengaertner hi @ all
18:29 datengaertner I'm a bit familiar with php, c and shell-scripting and now I want to learn perl ... is the camel book a good book to start or shoot I read "Introduction to Perl" first?
18:30 datengaertner or is there a better internet-tutorial available?
18:31 wolverian datengaertner, Beginning Perl is good. see learn.perl.org .. Learning Perl as well. don't forget perldoc (perldoc.perl.org and at your shell with 'perldoc perlintro')
18:31 wolverian datengaertner, also, this channel is for the development of the next perl version, not really generic perl discussion. see #perl and #perlhelp (if that exists on this network, I forget :)
18:31 datengaertner wolverian, thanks for your informations
18:31 datengaertner oh sorry, I don't want to disturb here
18:33 wolverian don't worry about it. just don't ask perl5 questions here :)
18:33 wolverian at least.. not too many..
18:33 * ruoso is happy... he could understand iterator_engine quite easily... :)
18:33 FurnaceBoy joined perl6
18:46 fglock_ joined perl6
18:48 fglock_ ruoso!
18:51 ruoso fglock, eae
18:52 ruoso fglock_, README is kind of outdated, isn't it?
18:52 Juerd Anything's outdated in a few days here ;)
18:52 hexmode` joined perl6
18:52 ruoso :)
18:52 fglock_ Juerd: :)
18:52 ruoso I was just playing with the said implemented Perl6 grammars...
18:52 ruoso but without much success
18:54 Juerd audreyt: "stimmt nicht" translates as "is wrong" or "goes wrong", rather than "went wrong". It's present tense.
18:54 Juerd (Hm, Dutch person informing Taiwanese person in English about German...)
18:54 fglock_ ruoso: did you try to modify the existing grammar (p6prelude.p6) - you can start with small things and see what happens
18:55 fglock_ ruoso: or see the example (*.p6t, I think)
18:56 ruoso fglock, I created a p6sample2.p6 and tried "if (1) { say "true"; }"
18:56 ruoso it failed
18:57 ruoso otoh, "eval('print "opioi\n"', :lang<perl5> );" worked
18:57 fglock_ ruoso: only single quoted strings are implemented - like "if ( '1' ) { say 'true' }" might work - the runtime part of the compiler is almost non-existent yet
18:58 ruoso fglock_, hmmm.. let me try...
18:59 ruoso fglock_, oops
18:59 ruoso fglock_, didn't work
18:59 fglock_ '1' and 'say 'true'' are implemented as subroutines, by now - not a top priority to fix
18:59 fglock_ oh, put a ; after say 'true' - it´s not optional yet
19:00 ruoso still not working...
19:00 fglock_ try if ( return '1'; ) ...
19:01 ruoso no
19:01 ruoso still not working...
19:02 * ruoso wonders if p6compiler.pl could receive source from STDIN...
19:02 audreyt Juerd: fixed, danke
19:03 * audreyt blames the fish
19:03 fglock_ statement_control:<if> ( '1' ) { say '<if> is ok!'; }
19:03 fglock_ ruoso: statement_control:<if> ( '1' ) { say '<if> is ok!'; }
19:03 fglock_ ruoso: statement_control:<if> ( '1' ) { say '<if> is ok!'; }
19:03 fglock_ oops
19:04 fglock_ ruoso: short names not implemented yet
19:04 wolverian that looks like a weird syntax
19:04 wolverian statement_control:<if>('1', { say ... }); # I would have thought the long type to not have the syntax sugar
19:05 fglock_ wolverian: it was just a minimal syntax for bootstrapping
19:05 fglock_ wolverian: it was implemented just to test the syntax sugar
19:06 pmurias are there any tools for helping the translation from p5 2 p6 ?
19:06 Steve_p MAD?
19:06 pmurias joined perl6
19:06 Steve_p Oh, where'd he go?
19:06 Steve_p pmurias, MAD?
19:06 fglock_ ruoso: did it work?
19:06 evalbot_9391 joined perl6
19:07 pmurias what does MAD mean?
19:08 audreyt pmurias: http://pugs.blogs.com/pugs/2006/03/osdcil_recap.html
19:08 Steve_p Ahh...faster typing!
19:08 Steve_p :)
19:08 wolverian fglock_, ah, okay.
19:09 fglock_ ruoso: we are working on organizing the module hierarchy - short names, primitives, grammar options are all left for later
19:10 ruoso fglock, ok... now it worked...
19:10 ruoso fglock, I'm just looking around to understand it...
19:10 ayrnieu joined perl6
19:10 fglock_ ruoso: take a look at p6prim.p6 - 'if' is defined there
19:12 Steve_p audreyt, there's something else up with re::override or PCRE.  When I run the benchmarking code, it eventually gets killed by the kernel.  Valgrind'ing it now.
19:12 fglock_ bbiab - someone needs to use this computer :(
19:12 fglock_ left perl6
19:13 audreyt Steve_p: also the callback should be done in XS land instead of using a closure
19:14 Steve_p Oh, OK.  I'll try to see what I can refactor out.
19:14 audreyt Steve_p++
19:15 audreyt ideally override and override-pcre should be two different XS bootstraps
19:15 audreyt but MakeMaker seems to only like one main .so file
19:15 pasteling "ruoso" at 200.195.79.180 pasted "Compile from STDIN for compilation tests" (21 lines, 867B) at http://sial.org/pbot/16249
19:15 audreyt that means two modules
19:15 audreyt which is fine with me really, but a bit annoying.
19:16 audreyt so currently all symbols are installed in override::*, even pcre ones.
19:17 ruoso audreyt, what do you think about http://sial.org/pbot/16249 ?
19:17 Steve_p Yeah, I think Paul Marquis(?) and Matt Sergeant may have found ways around it, IIRC.  I'll look further.
19:18 wolverian hm, interesting. I see it's Wittgenstein who said "whereof one cannot speak, thereof one must be silent". I saw it quoted in Accelerando. (great book)
19:18 audreyt Steve_p: ok. feel free to create ./perl5/re-override-pcre/ or some such if it's inevitable
19:19 audreyt use re::override-perl6;
19:19 audreyt use re::override-p6rules;
19:19 audreyt use re::override-rules;
19:20 audreyt which of the three (or more besides) is clearer?
19:22 TimToady If that's supposed to be a P5 use I don't understand the '-'.
19:22 audreyt that's a p5 use.
19:23 audreyt the - is golfing.
19:23 TimToady is that a -bareword then?
19:23 audreyt use re::override -perl6; # same
19:23 TimToady gotcha.
19:23 audreyt yeah, which is autoquoted
19:23 TimToady let's hear it for Tk...
19:23 audreyt that's what enabled
19:23 audreyt use v6-pugs;
19:23 audreyt because the - special form is _very_ special apparently
19:24 TimToady k, i was thinking someone had hacked the lexer.
19:24 TimToady I guess it was me.  :-)
19:24 audreyt it was you :)
19:24 audreyt (part of 5.000 I think?)
19:25 TimToady somewhere thereabouts
19:25 Juerd What is special about the - exactly?
19:25 audreyt Juerd: use v6 -pugs; # this is syntax error
19:25 TimToady lexer turns -bareword into '-bareword'
19:25 audreyt Juerd: as is "use v6 '-pugs'"
19:26 audreyt but if you write v6-pugs, it defeats the "use VERSION" check
19:26 audreyt and yet gets unpacked into "v6->import('-pugs')"
19:26 Juerd Hmm
19:26 * Steve_p puts a little sugar on his Perl
19:26 Juerd I see
19:26 TimToady now that part (the version hackery) I don't claim credit for...
19:27 TimToady At least, not the version on modules.  Just the bare "use 5.0.0" part.
19:31 datengaertner joined perl6
19:39 * fglock back
19:41 fglock ruoso: please commit
19:43 ruoso fglock, I'm also creating a shell script to do compile tests, like the one I did...
19:43 fglock ruoso: nice!
19:43 fglock how is perl6-compiler different from perl6-language?
19:43 fglock ruoso: thanks for helping!
19:43 audreyt compiler concerns implementation
19:43 Lorn ;win 2
19:43 audreyt language concerns user-experience
19:44 fglock audreyt: ok
19:44 fglock I sent a mail to the list with some suggestions on what to read in order to grok lrep
19:46 audreyt so, with misc/pX/Common/lrep being refactored
19:46 audreyt where do you see "lrep" will stay?
19:46 audreyt maybe a command line program "lrep"?
19:46 rep lrep?
19:46 audreyt I'm kinda thinking of a "pugs.pl" frontend
19:46 fglock audreyt: that would be ok
19:47 audreyt also in my journal I was wondering whether to call it "lrep" or "Pugs.pm" or even "v6.pm"
19:47 audreyt as they mean roughly the same thing with different connotations
19:47 integral don't call it pugs: people will think "eww, scary haskell"
19:47 fglock audreyt: we don't need a front-end compiler yet - people can use emit( parse( $string ) ) and such
19:47 eric256 the .pm will tell them its not haskell
19:48 eric256 (well it will tell anyone who matters ;) )
19:48 integral is :: currently a perl6 operator?
19:50 PerlJam integral: what do you mean?
19:50 integral PerlJam: I mean, will I be shadowing a spec'ed operator called "::" if I define my own
19:50 PerlJam integral: It's still used as in module Foo::Bar and it's one of the cut operators in the new rules syntax.
19:50 audreyt I think by far v6.pm is easiest to explain :)
19:50 integral but not a normal infix operator, right?
19:51 PerlJam integral: I don't think so.
19:51 audreyt integral: right, you are free to use
19:51 integral great :)
19:51 audreyt you can overload it to mean "isTypeOf"
19:51 audreyt and pretend you are writing haskell
19:51 PerlJam heh
19:51 integral yeah, that's exactly what I'm going to do :)
19:51 audreyt lol
19:51 integral But more along the lines of Coq's calculus of inductive constructions
19:52 svnbot6 joined perl6
19:53 audreyt I really need to learn Coq some time
19:53 audreyt lyf so short etc.
19:55 svnbot6 r9393 | fglock++ | Pugs-Compiler-Rule/t/iterator_engine.t - tests pass!
19:55 svnbot6 r9394 | audreyt++ | * Regexp::ReplaceEngine - note the existence of repackaged perl5/re-override/
19:58 svnbot6 r9395 | fglock++ | Pugs-Compiler-Rule/t/iterator_engine.p6t - tests pass!
19:58 fglock audreyt: it may need some hack to run perl for p5 tests, and pugs for p6 tests
19:59 audreyt fglock: "it" means iterator_engine.p6t?
19:59 fglock audreyt: yes
20:00 fglock is anyone interested in co-maintaining Inline-Parrot?
20:00 svnbot6 r9396 | audreyt++ | * DrIFT.YAML: Unicode source files (Set.pm) now drifts fine.
20:01 fglock I could bring it to Pugs :)
20:02 audreyt oh, Inline-Parrot is yours?
20:02 svnbot6 r9397 | audreyt++ | * Prelude: disable Pugs::Internals::compile_file_to_yml for
20:02 svnbot6 r9397 | audreyt++ |   anything but Test.pm, at least before I fix emission of closures.
20:02 fglock yes
20:02 gaal hi there
20:02 audreyt it's what inspired me to write Inline::Pugs (and hence v6.pm)
20:02 audreyt gaal: yo
20:02 gaal just saying hello, gotta go in a moose
20:02 fglock audreyt: cool!
20:02 audreyt fglock: seriously though, maybe parrotembed is the better way to go
20:03 audreyt in which case maybe it belongs to the parrot repo?
20:03 fglock audreyt: sure, but Inline Parrot works in plain Windows
20:03 audreyt plain windows is overrated now we have camelpack
20:03 nothingmuch joined perl6
20:03 audreyt (imvvho)
20:04 audreyt gaal: yo
20:04 audreyt I mean
20:04 fglock I'd donate it to parrot repo
20:04 audreyt gaal: ciao
20:04 * nothingmuch makes empty baloon sounds
20:04 fglock camelpack?
20:04 hlen joined perl6
20:04 audreyt http://stennie.org/camelpack/
20:04 * fglock eats an apple
20:05 gaal lots of cool stuff, glee!
20:05 fglock audreyt: I've been using PxPerl - I'll try it :)
20:07 fglock chromatic de-warnocked me in p6-c :)
20:07 audreyt "where's the docs?" he asks
20:09 audreyt fglock: anotherThoughtIsPutPugsCompilerRuleInExtDirectory
20:09 audreyt andMakeThatThePerl6Version
20:09 * audreyt finds her whitespace
20:09 audreyt so basically have ext/Pugs* and perl5/Pugs* in sync
20:10 TimToady integral: if there's a specced '::' operator, it'd probably be a postfix:<::> to turn a bare name into a package object that can then be dereffed as a hash.  But an infix:<::> would probably be safe if you always put whitespace before.
20:11 integral interesting
20:11 fglock audreyt: maybe - but that presents a problem to people who want to run it outside the pugs tree, as the p5 version uses some p6 files - like the rule grammar (unless we compile the grammar and send it separately)
20:11 TimToady On the other hand, don't really need postfix:<::> since you can always write ::($foo):: for that.
20:12 audreyt fglock: so maybe not such a hot idea
20:12 audreyt the best idea so far is to allow installation of perl6 packages in p5 setting
20:12 audreyt by implementing S22 in perl5
20:12 audreyt I wonder if we can instead of .jib just reuse .par
20:12 audreyt because PAR already allows multiversioning
20:12 audreyt just need an indexer that handles .par files
20:13 fglock audreyt: will look S22
20:13 audreyt ok. I'm thinking to use .par for that (and enlist PAR hackers into the mix)
20:13 audreyt but it's just a half-formed idea (though it's been running in my mind for ~6yrs)
20:14 audreyt will think about it some more
20:14 audreyt (the idea being p5 and p6 should share a sitelib)
20:14 audreyt (which is per-package indexed, not per-file)
20:14 audreyt so that will allow CPANPLUS to install p6 modules even if you don't have pugs installed
20:15 audreyt but, too many multiplexes
20:15 fglock audreyt: the problem right now is just the tests - I could just create a perl6tests/ and put the files there
20:16 audreyt fglock: t6/ then
20:16 fglock ok
20:16 audreyt or split into t/perl5/*.t and t/perl6/*.t
20:17 fglock audreyt: I think the perl5 tester look into subdirs - better not call p6 tests '.t'
20:17 audreyt fglock: you can control that in Makefile.PL
20:18 fglock I'm calling p6/*.p6
20:18 fglock oops - t6/*.p6
20:19 fglock audreyt: I'll leave proper packaging to you, sorry :)
20:19 audreyt fglock: just put stuff in there and I'll roll packages :)
20:19 fglock ok!
20:22 audreyt Nicholas++ # MAD is part of bleadperl now
20:27 ruoso fglock, any docs you'd like to point?
20:28 fglock ruoso: for what kind of work? there are the synopsis - you can read about grammars, p6 syntax
20:29 fglock ruoso: Tasks :)
20:29 ruoso fglock, messing p6compiler around...
20:29 ruoso fglock, Tasks say what to do... but doesn't explain how it works...
20:30 fglock ruoso: have you installed CPAN module Perl6::Bible ? That's the current p6 docs
20:30 ruoso fglock, I mean, something that explain how p6compiler.pl works...
20:30 fglock ruoso: how the compiler works? I could explain to you, and you write them?
20:30 ruoso :)
20:30 ruoso fglock, better than nothing :)
20:31 fglock ruoso: there are little bits in Notes-Pugs.pm
20:31 sapper joined perl6
20:31 fglock ruoso: you did grok iterator_engine, right? did you see the output in p6prelude-cache.pl ?
20:32 fglock ruoso: the perl5 code is written by emit.pl
20:32 fglock in emit.pl there are subroutines like
20:33 fglock node:xxx - these subroutines are called from the main emitter sub, which is following a tree structure
20:34 fglock which was built by p6prelude-cache.pl, as it was running across the p6 source code
20:35 fglock p6compiler opens the source code, calls the main grammar subroutine in p6prelude - the tree is built, and returned to p6compiler
20:36 fglock which sends the data to the emitter, which returns a big string of perl5 code
20:36 audreyt fglock: are you going to YAPC::NA?
20:36 audreyt (or any other conference/hackathon sites)
20:36 audreyt EuroOSCON, for example.
20:37 fglock audreyt: no - YAPC::Brasil - next month, and YAPC::SouthAmerica in September
20:37 fglock audreyt: anything else is too expensive
20:37 audreyt where are you based in realspace?
20:37 fglock ruoso: some parts of the code need to be excuted before proceeding
20:38 wolverian meatspace :)
20:38 fglock audreyt: Porto Alegre, Brazil
20:38 ruoso fglock, I'll try to make a diagram...
20:38 fglock ruoso: thanks!
20:38 * audreyt ponders a trip to Brazil
20:39 * ruoso is from brazil too
20:39 fglock audreyt: that would be cool!
20:39 audreyt can't make it to YAPC::Brasil
20:39 audreyt OSDC.tw is also April
20:39 fglock ruoso lives faaar away from fglock
20:39 eric256 is there some way to use the [] reduction on a certain key in an AoH ?
20:39 eric256 my $sum = [+] map { $_.<score> } @bowlers;
20:39 audreyt but hm, maybe going there after the US trip
20:40 audreyt we'll see
20:40 eric256 something like that mabye?
20:40 ruoso fglock, nah... just 4k kilometers by road...
20:40 meppl joined perl6
20:40 pawel joined perl6
20:40 fglock audreyt: http://www.perl.org.br/yapc/
20:40 audreyt [+] @bowlers.map:{.<score>}
20:41 wolverian [+] @bowlers».score
20:41 audreyt except it's not a method
20:41 audreyt and >>.<score> is not yet implemented I think
20:41 fglock audreyt: merlyn is coming - it's his 3rd time here, he loved the country
20:41 wolverian well, yeah, fixing all those .. :)
20:41 eric256 lol
20:41 audreyt fglock: nice
20:42 audreyt fglock: I don't have travel budget without sponsorship though
20:43 fglock audreyt: I organize the YAPC::Brasil - we have zero budget :) we use lent space from the bigger conferences
20:43 audreyt I understand :) I'm just explaining why I can't make it this time :)
20:43 fglock audreyt: np!
20:45 fglock audreyt: you should submit a talk next year: http://fisl.softwarelivre.org/7.0/www/ - sometimes they offer tickets for speakers
20:47 larsen joined perl6
20:47 eric256 i though =$<in> chomped?
20:48 audreyt it should
20:50 svnbot6 r9398 | audreyt++ | * re::override 0.02 - add Changes file, ppport.h, etc.
20:50 eric256 how do i tell what revision the version of pugs i'm running is?
20:50 audreyt pugs -V
20:51 audreyt (or pugs -v)
20:51 eric256 hmmm no revision showing on either
20:51 dduncan your build is borken
20:51 dduncan are you using the repository or the release?
20:51 audreyt it's broken here too
20:51 eric256 i'm using feathers
20:52 dduncan as of r9391, my last done build, it does work for me
20:52 dduncan it says: Version: 6.2.11 (r9391)
20:52 dduncan I'm now building r9398
20:52 eric256 the feather build must be broken then...running a test build now ;)
20:54 audreyt oh, it's broken because I have ./MANIFEST
20:54 audreyt rm'ed it and itworks
20:57 eric256 why would that brake it?
20:58 eric256 ls
21:00 audreyt because ./MANIFEST means you are in release
21:00 audreyt and release doesn't ahve revs
21:00 audreyt (I think that's the idea)
21:01 fglock pmurias++ - '--print-program'
21:01 svnbot6 r9399 | fglock++ | compile_grammar.sh - compiles the rule grammar from Rule.p6 to Rule.pm
21:01 * eric256 thinks thats lame. lol
21:02 eric256 then shouldn't it at least say (RELEASE) or something?
21:05 fglock cool - 'package Pugs::Grammar::Rule;' - compiled from p6 :)
21:07 svnbot6 r9400 | fglock++ | Rule.pm - hand-edits: add '1;', remove compiler messages
21:09 eric256 3
21:09 eric256 sorry ;)
21:09 audreyt fglock: oooh
21:10 audreyt eric256: it's lame. feel free to fix it - it's in utils/version_h.pl
21:10 eric256 cool ;)
21:10 audreyt ok. how's this for a talk proposal in September
21:10 audreyt Title: Deploying Perl 6
21:10 audreyt With the advent of v6.pm, one can write "use v6-pugs;" and start coding in Perl 6, deploy it as Perl 5 applications, without any extra dependencies such as Haskell, Parrot, or even C compilers.
21:10 audreyt This tutorial will discuss typical deployment scenarios, as well as recipes for reusing Perl 5 modules in Perl 6 programs and vice versa.
21:11 audreyt s/as Perl 5 applications/as part of a Perl 5 application/
21:12 fglock audreyt - nice - we will hopefully have some (useful) p6 modules available for running in p5 by september
21:12 audreyt too far-fetched?
21:12 audreyt yeah. 6 months from now
21:12 eric256 can that realy happen? is that using this IE?
21:13 fglock Pugs::Grammar::Rule already uses actual p6 :)
21:13 ruoso fglock, p6prelude-cached.pl is the one that was written by hand at first time, right?
21:13 ruoso in perl5
21:13 fglock ruoso: no - it was always written in p6
21:14 audreyt eric256: yes.
21:14 fglock the part that was written in p5 is p6rule.pl - some parts are still there, but will go away...
21:15 ruoso fglock, alright... in the bootstrap some things already gone away...
21:15 * eric256 wonders if there will be a built in prompt function. it would be nice to be able to say
21:15 fglock p6rule is the compiler for the rule language
21:16 eric256 my $x = prompt("How old are you?", Int);
21:16 fglock ruoso: there are 3 languages in there: iterator_engine, rule, and perl6 - one is used to write the next, and p6 is reused to write the others back
21:16 ruoso fglock, but p6prelude-cached.pl is the only who defines gramar1::gramar by now...
21:17 dduncan build done,
21:17 dduncan it says: Version: 6.2.11 (r9398)
21:17 fglock ruoso: yes - that's called meta-circularity (I think)
21:17 dduncan also, the long delays and few errors when loading the prelude are gone
21:17 ruoso fglock, yes. as I said, some things already gone away in the bootstrap process
21:17 dduncan so no version display problems here
21:17 fglock ruoso: yes
21:18 fglock ruoso: if you miscompile the grammar, the compiler is gone. There is no more compiler to compile itself :)
21:18 PerlJam fglock++ I finally looked at lrep today.  It makes me think that "the" perl6 compiler is closer than ever.
21:18 svnbot6 r9401 | eric256++ | Added bowling2.p6 a more p6ified version
21:19 fglock PerlJam: thanks!
21:19 ruoso fglock, the same way if you miscompile gcc
21:19 fglock ruoso: exactly
21:20 ruoso so... the fact is: Perl 6 bootstrap really happened already...
21:20 fglock ruoso: yes!
21:20 PerlJam ruoso: several times even  ;-)
21:20 ruoso fglock, it is still necessary to target Parrot...
21:20 fglock ruoso: you can write new emitters, and you'll have p6 for other backends
21:21 * ruoso wonders how hard would it be to use another emitter to write parrot code...
21:21 fglock ruoso: someone with good Parrot knowledge could bootstrap it in a few hours in Parrot
21:21 lisppaste3 joined perl6
21:21 ruoso fglock, fantastic
21:21 fglock ruoso: it's just source code - quite easy, actually
21:22 LeTo fglock: don't worry, we are working on that
21:22 * fglock used to know assembler :(
21:22 ruoso LeTo, does Parrot already have all the needed features to implement it?
21:22 fglock LeTo: we?
21:22 PerlJam fglock: has there been any out-of-band response to your message to p6c?
21:23 LeTo fglock: patches to src/jit are welcome as well
21:23 Odin- LeTo = Leo Tötsch?
21:23 LeTo fglock: audreyt and me
21:23 fglock PerlJam: chromatic asked hot to run it
21:23 LeTo Odin-: yes
21:23 Odin- Figures. :p
21:23 fglock LeTo: great!!!
21:23 FurnaceBoy is now known as FB|afk
21:23 fglock LeTo: please let me know if I can help
21:24 fglock LeTo: you can reuse PGE - there will not be too much code to write, I hope
21:25 LeTo sure, but first we've to put in some missing pieces like P6 PMcs
21:26 ruoso fglock, could I call gramar1::gramar a "huge regexp"?
21:26 Kattana no.
21:27 fglock ruoso: kind of - p6 rules can return complex data structures, while p5 only return strings
21:27 ruoso would it be better to be "huge rules-set"?
21:28 * ruoso is drawing a diagram
21:28 fglock ruoso: it is a 'package' in perl5 speak - a set of subroutines: grammar==package, rule==sub
21:28 ruoso ok
21:29 fglock rule has 'return' and can call other rules - rules can have parameters too
21:30 ruoso fglock, p6compiler can emit STDIN read and STDOUT writing?
21:31 ruoso fglock, it can print...
21:31 ruoso fglock, can it read? like my $source = <STDIN>;
21:32 fglock ruoso: "--print-program" - see interface.pm
21:32 audreyt hm, I started writing "#perl6 develops at breakneck speed" in journal and found myself writing "brokeback speed"
21:32 * audreyt blames Ang Lee
21:32 fglock ruoso: re read: it could (if it can't, just do it)
21:33 fglock ruoso++
21:33 * Juerd hopes the current momentum lasts for a long while.
21:34 audreyt I think there's room for acceleration :)
21:34 ruoso fglock, Correct me if I'm wrong... with STDIN/OUT we could receive the STDIN as the source and spit the emitted code to STDOUT, entirely in perl 6... right?
21:34 * fglock considers using another editor for multiple files/subdirs
21:34 * stevan fastens his seatbelt
21:35 ruoso making the compiler a single runnable code
21:35 fglock ruoso: what it means 'entirely in perl6'?
21:35 Juerd audreyt: But I can already understand but a small part of what's happening.
21:36 fglock ruoso: you can check if STDIN and STDOUT are pipes, and act accordingly
21:36 ruoso fglock, my idea was emit a single output of the entire compiler...
21:36 fglock audreyt: there is room for parallellization
21:37 audreyt fglock: which is the source of momentum
21:37 audreyt deadlock=bad
21:37 audreyt has been avoiding it since day 1 :)
21:37 fglock ruoso: nao entendi :)
21:37 ruoso and you could just: cat new_version.p6 | old_version.pl > new_version.pl
21:38 ruoso and then: cat new_new_version.p6 | new_version.pl > new_new_version.pl
21:39 ruoso and so on
21:39 ruoso or implement GetOpt
21:39 fglock ruoso: right - you can do this: check if there is a filename - if there isn't, read from stdin
21:39 ruoso fglock, I did that... but the compiler itself is not a single code
21:39 fglock ruoso: I think getopt is already there - pmurias was implementing
21:39 ruoso fglock, the p6compiler.pl is like a dispatcher...
21:40 fglock ruoso: you wan to have the whole compiler as a single file?
21:40 fglock ruoso: we are actually splitting it even more...
21:40 ruoso fglock, p6compiler.pl doesn't compile itself today... that's what I'm trying to address...
21:40 ruoso not a number of files issue
21:40 fglock ruoso: great! what to do next...
21:41 fglock try to find out what is the minimal commands you need to implement p6compiler
21:41 fglock write the grammar for these commands in p6primitives.p6 - make macros or subs to implement them
21:42 fglock then rewrite p6compiler in p6 and compile it!
21:42 fglock if there is something you don't want to implement, just move it out of the way to a p5 module
21:47 audreyt fglock: that's a brilliant summary, the last few lines
21:48 Kattana where, what?
21:48 fglock audreyt: :)
21:49 audreyt fglock: I need to sleep now, but will resume packaging/linking/doccing tomorrow
21:49 audreyt in 9hrs
21:49 audreyt http://pugs.blogs.com/pugs/2006/03/use_v6pugs.html # punted journal
21:50 fglock audreyt: have a good night!
21:50 audreyt fglock++ # acceloraptor
21:50 audreyt # i.e. faster than velociraptors
21:51 eric256 left perl6
21:51 Odin- Acceloraptor ... a bird of prey increasing its speed? :D
21:51 fglock audreyt: Pugs::Compiler::Rules is not complete yet - there are requires() to fix, whatever...
21:52 fglock audreyt: :)
21:52 audreyt fglock: yeah, I'm estimating it'd be fixed in the next 24hrs :)
21:52 ruoso Ok... p6compiler.p6 would "use p6prelude", which would be written in p6 also...
21:53 ruoso /would be/is/
21:53 Limbic_Region joined perl6
21:53 fglock ruoso: yes (or require)
21:54 ruoso fglock, the p6compiler.pl (result of p6 compiling) would then use p6prelude...
21:54 fglock ruoso: yes
21:54 ruoso should we just assume the modules will have the same name?
21:54 ruoso and the .p6 file will be compiled to a .pm file?
21:55 ruoso I mean p6prelude.p6 -> p6prelude.pm
21:55 rantanplan_ joined perl6
21:55 ruoso could we assume that?
21:55 fglock ruoso: yes - the 'cache' thing is a pre-bootstrap name, it can be changed now
21:55 ruoso so, this means we're saying that the gcc .o is our .pm
21:56 fglock ruoso: yes - perl5 is our virtual machine
21:56 ruoso fglock, so, every .p6 will turn into a .pm
21:56 fglock yes
21:56 ruoso ok
21:57 fglock or pm6->pm and p6->pl (?)
21:57 fglock better yet,
21:57 fglock perl6/things and perl5/things - but that would be too much structure for this
21:58 ruoso by file name is better
21:58 ruoso as perl 5 already does that
21:58 fglock we are migrating things to proper CPAN modules, so don't care much about structure right now
21:59 ruoso I was just worried about how a "use p6prelude;" in p6compiler.p6 would be translated to the p6compiler.p[lm] file
21:59 fglock ruoso: if you could implement anonymous subroutines, we could fix the 'if' macro messages...
22:00 fglock ruoso: it can be done by the 'use' macro (just add .pm)
22:00 eric256 joined perl6
22:01 fglock ruoso: or a big eval( :lang<perl5>) - but that's not fair :)
22:01 eric256 audreyt you think it should always show the revision number even for releases? was there realy a reason not to have those show?
22:01 * ruoso is going home now... I'll try to write p6compiler.p6 just to know exactly what would be necessary to compile it...
22:04 mauke_ joined perl6
22:04 * ruoso leaving
22:04 Hamilton joined perl6
22:05 eric256 ohhh i wonder if it doesn't svn check on a release so that people who downloaded the source can build it without having svk....
22:19 fglock left perl6
22:19 fglock joined perl6
22:24 larsen joined perl6
22:26 SamB joined perl6
22:26 jisom joined perl6
22:35 samv_home joined perl6
22:40 mj41_______ is now known as mj41
23:08 FurnaceBoy_ joined perl6
23:30 swarm joined perl6
23:33 samv_home hey where is elixus irc server these days?  hcchien , gugod ?

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo