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 |