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