svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by avar on 16 November 2006. |
|||
nothingmuch | putter: if pugs adopts MO then the OO AST can be implemented as a very simple procedural thing, as long as the MO::Run::* stuff is implemented OK in it | 00:02 | |
that's the simplest thing that could work | |||
in which case the answer is "nearly there", i suppose | |||
putter | any ast can be implemented as a simple procedural thing, no? | 00:04 | |
nothingmuch | making the AST better is a matter of balancing out what the compiler knows from the compile time meta model, what the emitter's target knows about the runtime, and what the intermediate language wants to represent as the best bridge between the two, but this is all designed to be extensible | ||
well, yes, but i meant implemented soon as a very simple procedural thing | |||
short answer: the AST doesn't need to know much about OO and OOness till we become interested in early binding, etc | |||
does that make more sense? | 00:05 | ||
putter | hmm, check me on the following strawman explanation... | 00:06 | |
ok, starting with a strawman question - why is noone writing a p6 implementation in p6? | 00:07 | ||
nothingmuch | fglock is | 00:08 | |
good progress, too | |||
putter | for a long time an answer (mine, may have been wrong) was p6 objects aren't working well engough in pugs to do it, and attempting a non-oo impl was silly. | 00:09 | |
re fglock, yes. by starting over from scratch. redsix, p6 on ruby, could have been used similarly. perhaps the strawman question should have been "noone... on pugs". | 00:10 | ||
nothingmuch | ah | ||
okay | |||
so the answer to *that* is that audrey has been absent a lot lately | |||
since cmarcelo ported MO to .hs and audrey finished it off | |||
putter | I don't have a good understanding of how much p6 is/isnt implemented in mp6/kp6. | 00:11 | |
nothingmuch | there is not that much left to have "good" support for objects | ||
at which point pugs itself could start moving more of it's own guts into p6 | |||
putter | "good" in the previous sentence meant useably non-buggy, rather than compliant with some spec. | 00:12 | |
Ziggy6 | so continuing pugs would be a waste of time? | 00:13 | |
ekelund | __Ace__: dont you have birthday soon? | ||
putter | audreyt has said for some time that pugs object support is current usable for a large oo-ish p6 project. Before that, I thought it not. I don't know if anyone has tested it. Ie, built a biggish project in p6 oo. | 00:14 | |
00:15
luqui joined
00:16
Ziggy6 left,
Ziggy6 joined
|
|||
putter | Ziggy6: emphatically not. pugs is passing most of the test suite. the only thing which comes close is pil2js, which uses pugs to parse (which in p6, is aka utterly dependent). | 00:16 | |
nothingmuch | Ziggy6: yes, it's a total waste of time... in fact, you should probably just /quit and ignore us all henceforth | ||
putter: i think the problem with pugs, that fglock is trying to solve, is that the grammer is not extensible | 00:17 | ||
in a sense to have a "real" perl 6 it needs to be self hosted in that funky way, or at some point the user will see it's a fake | |||
i think that pugs is becoming more and more a project to make more tests, and to validate those tests, and to provide a bootstrapping springboard for a "real" perl 6 | |||
Ziggy6 | but we already have bootstraped 6-on-6 | 00:18 | |
nothingmuch | (or at least i theorize it is being perceived as such) | ||
Ziggy6: it's not nearly as complete | |||
Ziggy6 | i don't understand the priorities here | ||
nothingmuch | ... an d hence it lost momentum | ||
there are no priorities, everybody decides what they care about most and tries to work on that | |||
given the time that they have | 00:19 | ||
luqui | putter has a nice graph so people can pick what they care about, though | ||
nothingmuch | i mean, there are priorities, but they are private | ||
Ziggy6 | :) | 00:20 | |
it's hard to choose... :) | |||
(for me, because i'm totally new | |||
putter | Perhaps one defect of our flooding algorithm approach to project management is that when the thing that people want to work on have unsatisfied dependencies on things they don't or can't, we don't have a positive feedback mechanism. Only the null one of people wandering away. | ||
00:22
AtomicStack joined
|
|||
nothingmuch | the bootstrapping issues make it really difficult | 00:22 | |
the effort:benefit ratio looks very grim in the long term, unfortunately | |||
but it's probably necessary | |||
putter | Hmm... it might be interesting to have one-paragraph stories from people on "what they want to work on and what the sticking points have been". | ||
nothingmuch | my 2c on that: | ||
1. projects that have been interesting from an ADD perspective - learn about new stuff really fast and feel smarter as a result (various stuff like blondie, the forth stuff, etc that are all side projects related to pugs) | 00:23 | ||
__Ace__ | ekelund: yea soon | ||
nothingmuch | 2. stuff that is actually useful, mainly because it's also useful outside of pugs (Moose, etc) | ||
putter | nothingmuch: and are you at all stuck? or puttering along happily, modulo available tuits? | 00:25 | |
Ziggy6: I haven't forgotten your "but what about bootstrapped 6-on-6" questions. bbiab. | |||
nothingmuch | well | 00:27 | |
tuits are hard | |||
but I also feel that I'm lacking focus recently | |||
in a sense i no longer feel enthusiastic about pugs itself, because my curiosity faded out and the potential for benenfit is far too low right now | 00:28 | ||
s/pugs/perl 6 compilers in general/; # for the next few months, at least | |||
the things that are interesting for me are a bit later on in the toolchain's life | 00:29 | ||
but I feel that MO has been both interesting and directly useful | |||
partly because it was explicitly designed to be useful not just for pugs | |||
so a little of both, i would say | |||
Ziggy6 | things like ... ? | ||
nothingmuch | interesting? | 00:30 | |
making it go fast | |||
early binding | |||
Ziggy6 | i guess you must wait for parrot | ||
nothingmuch | partial evaluation without making an icky evaluator impl | ||
actually no, i think that part belongs in the perl 6 toolchain | 00:31 | ||
generic optimizations | |||
Ziggy6 | aa | ||
yes, that would be quite interesting for me too :) | |||
nothingmuch | inferring scope reachability of data | ||
for example to flag a certain data constructions so that it can be allocated on a stack instead of a heap for a potentially interested runtime | |||
i doubt i'll be able to actually do good because I have no required background | 00:32 | ||
but I know that's what's puzzling me ;-) | |||
putter | so a "need greater transparency; know where to focus; see how it fits in" concept? plus a "project progress too slow; later phases distant; can't work on things you want to for the forseeable future" concept? | ||
Ziggy6 | but for now i really want to learn perl6 first, and contribuiting to the project in it's current state gets me the most benefits | ||
nothingmuch | Ziggy6: one word: tests | ||
read, write, update etc the tests... i think that's basically how we all got started | |||
then move on to the synopses | |||
once you found something a vague, or incomplete | 00:33 | ||
Ziggy6 | either that or missing features from pugs | ||
nothingmuch | or if you just want to learn more iteratively | ||
refactoring is also a good way to learn | |||
pugs grew organically and could use refactoring | |||
00:34
seano joined
|
|||
nothingmuch | and that helps with both .hs knowlege and pugs internals knowlege | 00:34 | |
helping fglock is probably more interesting though | |||
Ziggy6 | kp6? | ||
nothingmuch | kp6? | ||
Ziggy6 | what's fglock working on? | ||
nothingmuch | i think nowadays it's called PCR? | 00:35 | |
Ziggy6 | huh? | ||
nothingmuch | miniperl6 is the language | ||
luqui | kp6 = kindaperl6 = miniperl6++ | ||
nothingmuch | ah | ||
i'm out of date | 00:36 | ||
=) | |||
putter | nothingmuch: I interviewed fglock on it... two days ago? three? | ||
Ziggy6 | :) | ||
nothingmuch | that's definitely better than what I have to say then | ||
ignore whatever I said about it =) | 00:37 | ||
Ziggy6 | can i see the article pls? | ||
putter | looking... | ||
nothingmuch | i need spleeep | ||
see you guys | 00:38 | ||
00:39
weinig is now known as weinig|bbl
|
|||
putter | lambdabot: ?tell masak in the diagram, postfix double asterisk marks a node which occurs in two places. once attached to the parrot box. dot doesnt have a "draw a straight line, ignoring overlaps". so actually adding edges to the parrot stuff either unhappily distorts the graph (if the edge is springy), or wanders-all-over clutters it (if not). | 00:39 | |
lambdabot | Consider it noted. | ||
putter | Ziggy6: colabti.de/irclogger/irclogger_log/...l=294#l480 through colabti.de/irclogger/irclogger_log/...l=527#l810 | 00:42 | |
lambdabot | Title: #perl6 2007-01-15,Mon, tinyurl.com/3dc3xh | ||
Ziggy6 | thanks :) | ||
putter | It really needs to be summarized. That could be a neat/useful thing to do... ;) | 00:43 | |
Ziggy6 | i'm not good at writing something other than code :D | 00:44 | |
00:45
diotalevi left
|
|||
putter | nothingmuch: a thought exercise... | 00:45 | |
pil2js is a parser-compiler-emitter-runtime written in hs-hs-p5-js. | 00:46 | ||
the emitter is p5 because at the time p5 worked much better than p6. | 00:47 | ||
Ziggy6 | hs writes ast to a file and then starts a p5 interpreter? | 00:48 | |
putter | the parser-compiler remained hs-hs because no other exists (or does it now?) | ||
the prelude is js because the parser-compiler's ast didn't, and doesn't, support objects. | |||
it might now be possible to migrate the emitter from p5 to p6. | 00:50 | ||
once the oo ast is implemented in pugs, it would be possible to migrate the runtime at least partially to p6. | 00:51 | ||
00:52
rashakil joined
|
|||
putter | until there is a full parser implementation in p6, one can't do much about bootstrapping pil2js (ie, dropping its pugs dependency). | 00:53 | |
pil2js's non-oo test passing has been similar in extensiveness to pugs, greater than the old pilrun, and much greater than any other implementation. | 00:54 | ||
that it hasnt moved in 1+ years seems a function of insufficient payoff (migrate p5 emitter to p6), and a lack of a rules engine, let alone parser, written in p6 (or js, or, for much of that year, anywhere at all). | 00:56 | ||
00:56
bonesss joined
|
|||
putter | if fglock's stuff permit doing a full, ie, covering most of the test suite, parser in p6, perhaps its time to wake up pil2js. | 00:57 | |
its performace was never outstanding, but... it is more an implementation of p6 than anything else which has existed, except pugs. | 00:58 | ||
00:58
penk joined
|
|||
putter | nothingmuch: hows that for a strawman argument. thoughts? | 00:58 | |
one thing I would find reassuring is if mp6/kp6 were using the test suite. the test suite is certainly a bear for new implementations. it would be much more useful for them if tests, rather than files, were the unit of compilation and failure. but redsix managed to start using the test suite (largely failing of course) in only a couple of weeks existence. it was a priority. perhaps kp6 should be nudged in that direction?? | 01:03 | ||
hmm.... could the mp6 parser/compiler be run on pil2js? | 01:04 | ||
oh, no. the current pugs ast won't support it.. :/ | 01:05 | ||
but when the oo ast goes into pugs, depending on when that happens, it might be neat to try a kp6 on js using pil2js. | 01:06 | ||
hmm, for those following at home, I clarify that the pugs _internal_ ast supports it, but the exported ast, which pil2js's p5-based emitter uses, does not. | 01:07 | ||
01:07
mako132_ joined
01:12
elianto joined
|
|||
putter | once there is an oo ast spec. or it's clear the oo ast is in some way similar to the current ast, someone should start working on a p6-based emitter and p5 runtime. perhaps this is kp6? though under pugs, one could use pugs-p6, rather than mp6-p6, which is a much larger subset of p6. | 01:13 | |
could use the same runtime | 01:14 | ||
the kp6 ast and pugs oo ast should be largely compatible | 01:15 | ||
fglock: how much of the existing Prelude.p6 can be handled by kp6/mp6? | 01:19 | ||
pugs Prelude is said to currently be able to handle anything pugs can. so pugs Prim to Prelude migration should currently be unstuck. someone should be trying it. | 01:20 | ||
perhaps creation of a unified prelude could be going on right now? | |||
using pugs and kp6. and adding pil2js once the oo ast finally goes in. | 01:22 | ||
that would provide the multiple backends needed to motivate the even and io specs. | |||
s/even/event | |||
Ziggy6 | pugs.kwiki.org/ got vandalized | 01:30 | |
lambdabot | Title: HomePage - Pugs - A Perl 6 Implementation | 01:31 | |
putter | repeatedly. it should probably become a cname for the new wiki | ||
actually, we need a wiki.pugs.org pointer, and use that. pointed, for the moment, at the socialtext rather than kwiki site. | 01:32 | ||
luqui | *wiki.pugscode.org ? | 01:35 | |
01:36
lyokato joined
01:39
mako132_ joined
01:41
putter left,
mako132_ joined
01:42
bonesss joined
02:06
seano_ joined
02:13
vel joined
02:20
Ziggy6 left
|
|||
GeJ | win 3 | 02:26 | |
oops, sorry all | |||
Good morning still :) | 02:27 | ||
02:29
Ziggy6 joined
02:43
b00t joined
03:12
weinig|bbl is now known as weinig
03:38
rashakil joined
03:39
spoop joined
03:58
Schwern joined
04:02
weinig is now known as weinig|zZz
04:21
vitaminmoo joined
04:39
nipra joined
04:45
avar joined
04:48
b00t joined
04:53
luqui joined
05:28
leed joined
05:46
nipra joined
06:07
iblechbot joined
06:13
BooK_ joined
06:16
jabbot joined
07:03
_Jack_ joined
07:16
pen1 joined
07:18
pen1 is now known as penk_1
|
|||
xinming_ | I see there are many use v6-alpha; in our source. Anyone here can tell me where it located? >_< | 07:28 | |
07:31
marmic joined
|
|||
xinming_ | Or, We just use pugs to parse the file. and then, dump the AST? | 07:33 | |
dduncan | the "use v6-alpha;" is special ... | 07:37 | |
as it parses both as valid Perl 6 and valid Perl 5 ... | |||
in Perl 6, it has a similar meaning to "use 5.nnn" in Perl 5 ... or specifically, it says use the alpha version of Perl 6, not the final version ... saying just "use v6;" will die unless it is Perl 6.0.0 release version | 07:38 | ||
xinming_ | dduncan: You misunderstood me. | 07:39 | |
dduncan | in Perl 5, that would include the v6.pm Perl 5 module, which acts as a source filter, treating the rest of the file as Perl 6 code which it converts into Perl 5 code, and so any module with use v6-alpha is also a valid Perl 5 module as well as a valid Perl 6 module | ||
xinming_ | dduncan: I mean, for that line, where is the lib located? | ||
dduncan | on CPAN, it is v6.pm; in the Pugs repository, I have to check ... | 07:40 | |
try perl5/Pugs-Compiler-Perl6/ | 07:41 | ||
xinming_ | thanks | ||
dduncan | it contains a lib/v6.pm, and otherwise looks like the CPAN release | ||
avar | use v6-alpha; deparses to use v6 (-'alpha'); in p5 | 07:46 | |
sili | ... | 07:48 | |
yves is back (gone 15:03:21) | 07:51 | ||
07:58
nipra joined
08:17
drrho joined
08:18
elmex joined
08:21
Ziggy6 left
08:25
dduncan left
08:29
rhizo joined
08:54
avarab joined
08:58
autark_ joined
09:04
buetow joined
09:16
avarab is now known as avar
09:23
Ziggy6 joined
09:29
luqui joined
09:53
Salzh joined
09:55
tewk__ joined
09:58
iblechbot joined
09:59
jferrero joined
10:05
Salzh joined
10:06
lambdabot joined
10:16
fglock joined
10:41
theorbtwo joined
|
|||
masak | putter: I see. thx | 10:41 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
fglock | putter: re prelude.p6 - the plan is to write containers in the prelude, and mode most of the existing runtime to the prelude too; but pugs prelude is not currently usable for kp6 | 10:44 | |
s/mode/move/ | |||
re AST - kp6 ast is moving in the direction of src/Pugs/AST/CapInternals.hs | 10:46 | ||
kp6 already has metaclass support; it can be fit to pil2js with some work - maybe 1 week | 10:48 | ||
maybe add some days for learning both systems | 10:49 | ||
11:04
theorbtwo joined
11:12
TimToady joined
11:28
xinming joined
11:31
avarab joined
11:36
buetow joined
11:37
ruoso joined,
Odin- joined
11:47
avarab is now known as avar
12:11
foo\ joined
12:12
chris2 joined
12:23
dduncan joined
12:30
rhizo joined
12:38
buetow joined
12:40
thepler joined
12:54
nipra joined
13:10
Limbic_Region joined
13:11
__Ace__ joined
13:33
gnuvince joined
13:47
dduncan left
13:55
foo\ joined
14:25
penk joined
14:31
bonesss joined
14:33
mdiep_ joined
|
|||
Limbic_Region | has anyone else read luqui's blog entry on the recent change to s5? | 14:49 | |
[particle] | eric meyer's s5? | 14:50 | |
oh, S05 | 14:51 | ||
wolverian | that'd be: luqui.org/blog/archives/2007/01/19/...ocabulary/ | 14:54 | |
lambdabot | Title: The dreams that stuff is made of Ā» Perl 6 Rules: Elementary Compositionality an ..., tinyurl.com/24ofcn | ||
Limbic_Region | right | ||
14:54
vel joined
14:55
fglock joined
14:56
b_jonas joined
|
|||
Limbic_Region | well, if anyone has read it and understands both points of view - I would love to ask some dumb questions | 14:58 | |
fglock | Limbic_Region: not sure about the "understand" part, but I wonder what the questions are | 15:03 | |
15:05
hexmode joined
|
|||
fglock | [particle]: re miniperl6 -> PAST, it might be better to work on an emitter for kp6 instead | 15:17 | |
[particle] | i'll up and look at kp6 now | 15:21 | |
15:23
thepler joined
|
|||
fglock | [particle]: nice! the place to look is v6/v6-KindaPerl6/lib/KindaPerl6/Visitor/ | 15:23 | |
there are AST transforms of all kinds, and an AST dumper, and an AST-to-Perl5 emitter | 15:24 | ||
[particle] | Visitor/EmitPAST.pm i suppose | ||
fglock | yes | ||
these modules work like plugins - you call them in sequence | |||
[particle] | right-o. glad to see you've gone in that direction | 15:25 | |
makes optimization easier | |||
fglock | sure | ||
you'd probably transform kp6AST to PAST, and then write the emitter itself | 15:26 | ||
you'll probably skip the MetaClass transform, but the Hyper transform may be useful | 15:28 | ||
kp6 modules can be compiled with the mp6.pl script | 15:31 | ||
until the kp6-OO bootstrap is finished | 15:32 | ||
Limbic_Region | fglock - sorry, was AFK | ||
fglock - my understanding is that larry has retained existing functionality and said - but for those of you who would like to walk on the wild side - try this | 15:33 | ||
fglock | [particle]: it's even possible that kp6 be bootstrapped in parrot instead :) | ||
[particle] | that's an interesting thought | 15:34 | |
15:35
vex_ joined
|
|||
Limbic_Region | fglock - and luqui is saying, the extra bit is nice but could cause problems for those who do | 15:35 | |
grrr - I apologize if I just flooded the channel | |||
fglock | hmm | 15:38 | |
[particle] | luqui says the optimization may cause unintended semantic differences | ||
just by refactoring | 15:39 | ||
Limbic_Region | particle - but only if you use the feature | ||
[particle] | yes, precisely | ||
Limbic_Region | particle - what I am trying to confirm to myself is that existing functionality exists (albeit less optimized) and whackoness only results if you use the new feature | 15:40 | |
[particle] | since the feature hasn't been implemented, it's hard for me to judge real-world usage and by extension real-world consequences | ||
lr: that's correct | 15:41 | ||
Limbic_Region | ok, well then I don't think it matters much | 15:42 | |
fglock | Limbic_Region: the existing functionality is with <%terms> - the main difference is that the definition of what's a token is not automatic | ||
Limbic_Region | or rather, I think the weirdness issue can be worked out in a parallel stream | ||
[particle] | we're talking about eg. %foo || %bar vs %foo | %bar | 15:43 | |
the first tries all keys of %foo, and if none match, proceeds to %bar | |||
fglock | in luqui's example, the definition of 'token' changes with the reafactoring | ||
15:44
theorbtwo joined
|
|||
fglock | refactoring | 15:44 | |
but that's specced behaviour - the problem is, is it too unexpected | 15:45 | ||
[particle] | i think luqui's example is one where there is a side effect | ||
so it's no longer a "token pattern" as larry defines it | 15:46 | ||
so, yes, his refactor did change semantics | |||
(due to the closure and fail call) | |||
i'm not 100% sure of that, but that's my take | 15:48 | ||
fglock | I don't see a problem with the specification - you can fix that by using || | 15:50 | |
Limbic_Region | one of these days I am going to stop hiding under a rock and learn enough of this stuff to understand it for myself | ||
fglock | the problem is, will this create new hard-to-find errors | ||
Limbic_Region | fglock - that's what I understood too | ||
[particle] | fglock: the problem really lies with @a | @b, not with $a | $b which can be trivially fixed with || | 15:51 | |
since it changes the search order for longest token | 15:52 | ||
@a || @b exhausts all members of @a before trying @b | |||
lambdabot | Maybe you meant: activity activity-full admin all-dicts arr ask . v | ||
[particle] | @a | @b combines the two (almost as if it was a junction) | 15:53 | |
fglock | [particle]: you mean you want: { [|] ( *@a, *@b ) } | 15:54 | |
actually, || + sort | |||
I'll take a while to write that expression :) | |||
[particle] | yes, the optimization is left as an implementation detail for folks like us :) | 15:55 | |
...taming dragons... | |||
fglock | luqui's example wouldn't fail if all tokens were tried until one suceeded, just like || does | 15:57 | |
the problem is, <float> actually succeeds | 15:59 | ||
15:59
[particle] joined
|
|||
fglock | so what would really fix the problem is backtracking on | - which is disabled by definition - | works on 'token', which is ratcheting | 16:01 | |
16:03
GabrielVieira joined
|
|||
[particle] | i'm still not sure... it's not the first match, it's the longest, right? | 16:04 | |
so it exhaustively attempts all regexes in @a | @b and returns the longest | 16:05 | ||
16:06
turrepurre joined
|
|||
fglock | [particle]: it does a 'longest token' match, rather than a 'longest regex' - it stops if it finds a backtracking/separator spot - that's why <float> ands up being longer than <ip> | 16:09 | |
s/ands/ends/ | |||
the {...} in <byte> is one of those spots | 16:10 | ||
[particle] | yeah, that's right. | 16:11 | |
that's due to the side effect in the refactored byte token | 16:12 | ||
which larry warns about in the synopsis | |||
svnbot6 | r15094 | audreyt++ | * si.hs: Add type signature and generally make it compile with GHC-trunk. | 16:14 | |
fglock | audreyt: I'd like to do some brainstorming on kp6/6-on-6 sometime | 16:18 | |
svnbot6 | r15095 | audreyt++ | * Pugs.Class: Transplant the relevant parts of si.hs into newVal. | 16:23 | |
16:27
Limbic_Region joined
|
|||
fglock wishes there was an @fglock | 16:32 | ||
TimToady | me too, but at the moment I'm wishing more for coffee... | 16:34 | |
fglock | mp6-on-VHDL would be nice to play at home | 16:36 | |
svnbot6 | r15096 | audreyt++ | * Pugs.Val: Make ICoercible a superclass of Boxable, and | 16:42 | |
r15096 | audreyt++ | introduce PureStr (Str in userland) as the first MO'ed class. | |||
16:47
ozo_ joined
|
|||
TimToady | I think we need to figure out a way of explicitly telling the longest token analyzer that certain kinds of closure can be deferred till the end of DFA matching. This includes both assertions and all those { say... } things fglock has scattered around the grammar | 17:06 | |
17:07
DoctorMach joined,
b_jonas joined
|
|||
TimToady | the trick is to provide the closure with the same context later, which might force a reparse to get that context. | 17:09 | |
then if the delayed closures fail, you back off to the next longest DFA match and see if it needs any delayed testing... | 17:10 | ||
[particle] | it's starting to sound less optimized | 17:11 | |
TimToady | only if you throw in closures | ||
assertion closures, that is | 17:12 | ||
result closures would still be "showstoppers" | |||
17:12
DoctorMach left
|
|||
[particle] | so you'd need to classify which ops are safe | 17:12 | |
(or perhaps the unsafe list is shorter) | 17:13 | ||
fglock | it's kind of parallel-backtracking | 17:14 | |
TimToady | in particular, the canonical way to write an assertion is not { fail if ... } but rather <?{...}>, so we could make the latter invisible to DFA snarfing | 17:15 | |
and then if you want to insert debugging you can use <?{ say "got here" }> | 17:16 | ||
assuming say returns true :) | |||
?eval say "Goodnight, Gracie." | 17:17 | ||
assuming it returns at all... | |||
[particle] | :) | ||
17:17
evalbot_r15093 is now known as evalbot_r15095
|
|||
evalbot_r15095 | OUTPUT[Goodnight, Gracie.ā¤] Bool::True | 17:17 | |
TimToady | another candidate for okayness is **{n..m} | 17:19 | |
at least where n and m are known to be constants at compile time | |||
[particle] | will **{*} parse? | 17:20 | |
TimToady | yes, but don't know if ** will know what to do with Whatever | ||
it's looking for a Range | |||
but could likely be taught to deal with it. | 17:21 | ||
or not | |||
[particle] | i figured it'd become * | ||
TimToady | force people to either write * or **{0..*} | ||
[particle] | i guess **{^*} would work | ||
TimToady | uh, yeah, what he said | ||
but that's just * | 17:22 | ||
[particle] | yes. i wasn't aware **{...} was expecting Range | ||
so, **{3} isn't valid? | |||
TimToady | however if you wanted **{$x}, then $x could contain ^* | ||
yes it is, but | |||
it means 3..3 | |||
17:22
penk joined
|
|||
TimToady | what does **{*..*} mean? | 17:22 | |
[particle] | and * doesn't mean *..* | ||
it's just a smiley whatever | 17:23 | ||
TimToady | it's the koala range | ||
it matches anything that is Ordered, I think | |||
[particle] | ooh, tricky. | ||
TimToady | of course, matching against Ordered woudl be clearer | 17:28 | |
[particle] | i want line noise, like perl 5 | 17:30 | |
<'{*..*}'>**{*..*} | 17:31 | ||
would that match an empty string? | 17:32 | ||
Juerd | I think it would match any number of "{*..*}" sequences | 17:33 | |
[particle] | meetoo. | 17:34 | |
17:35
TimToady joined
|
|||
b_jonas | it could be **{{1}} if the closure {1} matches anything | 17:38 | |
or does it only accept ranges? | 17:39 | ||
Juerd | IIRC it accepts any code block, in list context. | 17:40 | |
TimToady | doesn't need list context | 17:41 | |
.. works fine in scalar context | |||
[particle] | S05: The curlies are taken to be a closure returning an Int or a Range object. | ||
Juerd | TimToady: But the closure was in list context, right? | ||
Oh, object. | |||
Hm. Too bad. | |||
a**{@foo} | |||
TimToady | well, it could be generalized to Selector | ||
Juerd | Not that I can think of a good use for **{@foo} right now, but someone will. | 17:42 | |
[particle] | **{1,3} could be useful | ||
TimToady | a**{any(@foo)} maybe | ||
NO! | |||
that's a typo! | 17:43 | ||
[particle] | i know it doesn't parse | ||
Juerd | Why wouldn't it parse? | ||
[particle] | but **{1..3:by(2)} # or whatever | ||
TimToady | because we force it to not parser, I hope | ||
*parse | |||
17:43
weinig|zZz is now known as weinig
|
|||
[particle] | It is illegal to return a list, so this easy mistake fails: / [foo]**{1,3} / | 17:43 | |
b_jonas | **{1,3} should warn or die because people used to the old syntax could write it | ||
yeah | 17:44 | ||
TimToady | but they could also mean any(1,3), in which case they should write that. | ||
Juerd | TimToady: Even under "no v5; use v6 :all_of_it;"? | ||
[particle] | any() returns Range? | ||
TimToady | I can't be accountable for every dialect of Perl 6... | ||
17:45
buetow joined
|
|||
TimToady | no, a Junction | 17:45 | |
Juerd | I think it's great to help beginning migrators, but after a few years those Perl 5-based parse errors will just get annoying | ||
TimToady | but that's a valid Selector | ||
[particle] | ok, you've gone with the abstraction route already | ||
TimToady | for you, but not for the people that waited ten years to switch... | ||
Juerd | TimToady: Hence a pragma | 17:46 | |
TimToady | I think the error is "Selector 1,3 can never match scalar count" | ||
or some such | |||
b_jonas | Juerd: that's true for =~ but {1,3} isn't just perl5 based, it's much older | ||
Juerd | TimToady: Not "Selector expected, got List, at - line -"? | ||
TimToady | List is a valid selector, if you happen to want to match against another list | 17:47 | |
Juerd | Oh | ||
TimToady | Selector is anything that is a Pattern, plus Junctions | ||
Pattern is anything that you can use on the right of ~~ | |||
b_jonas | even if it was valid, it could cause a warning that you could avoid with some easy change like **{(1,3)} or something | 17:48 | |
Juerd | You can put anything on the right of ~~, I thought. | ||
TimToady | but if we can warn that 42 ~~ (1,3) can never match... | ||
[particle] | **{1|3} | ||
Juerd | b_jonas: I'm against such workarounds. | ||
TimToady | 1|3 would be fine under the Selector view | ||
Juerd | TimToady: I guess I should read the new smart match stuff. | 17:49 | |
TimToady | well, I wrote it for a reason. :) | ||
[particle] | the problem is that so many prior implementations got it wrong | ||
b_jonas | what? it can never match? you can't write 'when 1, 3' then? | ||
Juerd | I didn't know it'd also be relevant to **{} (which still kills my fingers) | ||
TimToady | sure, if you want to match a list [1,3] | ||
b_jonas | so you have to write 'when 1|3' to match either of two things? | 17:50 | |
TimToady | no, you get to write that | ||
17:51
Tene joined
|
|||
Ziggy6 | r15096 doesn't compile for me | 17:51 | |
17:51
Limbic_Region joined
|
|||
Ziggy6 | r15095 works fine | 17:51 | |
[particle] | svn diff -c 15096 | 17:52 | |
b_jonas | well 1|3 isn't so bad in fact | ||
well I'll go back to developping cbstream now instead of thinking about perl6 | 17:53 | ||
TimToady | have the appropriate amount of fun | ||
b_jonas | thanks | ||
[particle] | my, my, more comments about lexical redeclaration | 17:55 | |
pasteling | "evalbot_r15095" at 194.145.200.126 pasted "Pugs build failure" (500 lines, 29.7K) at sial.org/pbot/22510 | 17:58 | |
18:13
justatheory joined
18:19
ozo_ joined
|
|||
TimToady | yeah, looks like audreyt broke the build. maybe something that works under 6.7 but not 6.6? | 18:21 | |
do we have any MO experts online at the moment? | 18:22 | ||
Ziggy6 | i think it's related to the ghc version | 18:25 | |
the error doesn't seem to connect in any meaningfull way to the code changes | 18:26 | ||
allbery_b svn ups and pokes, having both 6.6 and (a couple week old) 6.7 around | 18:27 | ||
18:33
weinig is now known as weinig|bbl
|
|||
allbery_b doesn't think that error should happen, unless something's wonked in a makefile somewhere so MO/Base.hi is in the wrong place | 18:34 | ||
I'm regenning makefiles now so I can try to check | |||
Ziggy6 | ./configure again? | 18:35 | |
allbery_b | haven't done a build, I'm working off of evalbot's report | 18:36 | |
just running Makefile.PL now, having svn up-d | |||
18:36
xinming joined
|
|||
allbery_b | if I do a build it';ll be a while (G4 macmini :> ) | 18:36 | |
18:40
mdiep joined
18:41
ashelyb_ joined
|
|||
allbery_b | blargh. not seeing anything, although I'd guess the need for MO/Base.hi dep came from Pugs.Class being added by the patch | 18:50 | |
running build now, with -v hacked in | |||
18:51
beppu_ joined
|
|||
allbery_b | (I expect this to take a while...) | 18:51 | |
if I don't see anything I'll "make clean" andretry with 6.7, still with -v, to see what changes in the build | 18:52 | ||
but that's likely to require a coupel hours on aggregate | |||
would be faster if audreyt were around to do it, of course | |||
18:55
TimToady_ joined,
mdiep joined
19:01
TimToady_ is now known as TimToady
|
|||
allbery_b | 55/106... | 19:05 | |
19:06
codermattie joined
|
|||
audreyt | fixing. | 19:10 | |
lambdabot | audreyt: You have 9 new messages. '/msg lambdabot @messages' to read them. | ||
audreyt | Pugs.cabal.in needs new entries; sorry. | ||
allbery_b | ah | 19:11 | |
allbery_b aborts sloooow build | |||
codermattie | is there a parrot specific channel ? or is this an appropriate forum for a parrot question ? | ||
allbery_b | there's at least one parrot dev who hangs out here | 19:13 | |
svnbot6 | r15097 | audreyt++ | * Pugs.cabal.in: Add MO to the build tree to unbreak the build. | ||
audreyt | codermattie: irc.perl.org #parrot | ||
codermattie | thanks | ||
[particle] | codermattie: i can answer parrot questions, but audreyt pointed you to our channel | 19:14 | |
audreyt: happy new year! | |||
audreyt | [particle]: happy new year, and congrats on the progress & release! | ||
[particle] | thanks! | ||
audreyt | [particle]++ # seriously | 19:15 | |
[particle] | we could really use some c coders. languages are progressing, but without leo & chip lately, parrot core has suffered | ||
Ziggy6 | what does "nick++" mean? | 19:16 | |
diakopter | Ziggy6++ | ||
[particle] | karma [particle] | ||
jabbot | [particle]: [particle] has neutral karma | ||
codermattie | [particle], I was stuck in a dialog to add the irc server, the question is how to run pheme, is there a POD or faq on how to run a language on parrot ? | ||
diakopter | karma Ziggy6 | ||
jabbot | diakopter: Ziggy6 has karma of 1 | ||
[particle] | codermattie: have you built pheme? | 19:17 | |
Ziggy6 | nice :) | ||
[particle] | karma particle | ||
jabbot | [particle]: particle has karma of 34 | ||
[particle] | hrmm, doesn't like my brackets, i suspect | ||
audreyt ponders about reduced particles | |||
codermattie | [particle], I have parrot installed, other than that I know very little | ||
audreyt | bbl, sleep :) & | 19:18 | |
svnbot6 | r15098 | audreyt++ | * Makefile.PL: Add MO to clean_files | ||
[particle] | codermattie: best to join #parrot if you can, don't wanna chatter off topic too much here | ||
codermattie | [particle], ok , will do | ||
[particle] | but cd languages/pheme && make && make test | 19:19 | |
then ../../parrot pheme.pbc <your_file_here> | |||
Ziggy6 | karma audreyt | 19:21 | |
jabbot | Ziggy6: audreyt has karma of 2787 | ||
pasteling | "evalbot_r15097" at 194.145.200.126 pasted "Pugs build failure" (399 lines, 23.3K) at sial.org/pbot/22511 | ||
svnbot6 | r15099 | audreyt++ | * Pugs.cabal.in: Add Pugs.Class to build list. | 19:24 | |
19:35
beppu_ joined
|
|||
svnbot6 | r15100 | audreyt++ | * Unbreak the build For Real(tm) by adding the missing Pugs.Class.C3 | 19:35 | |
r15100 | audreyt++ | to Pugs.cabal.in. | |||
fglock | will p6 classes be 'Show, Eq, Ord, Data, Typeable' like Haskell's? | 19:37 | |
ie, follow the same class hierarchy | 19:38 | ||
audreyt | no, Haskell's typeclasses are Perl6 Roles | ||
[particle] | however, a class is autogenerated from a role if requested by name | ||
fglock | what's a good link for role x class differences? | ||
audreyt | for example, Ord in Haskell is more or less equiv to Perl6's Ordered role | 19:39 | |
[particle]: and, if I recall correctly, vice versa | |||
fglock: well, S12 obviously... | |||
[particle] | roles are compile time only. they're composition units. | ||
audreyt | the basic difference is that roles don't have an idea of SUPER that you can call into | ||
at runtime | |||
so they are used compositionally, not with inheritance, and they cause compile-time error when you have two roles with overlapping methods | 19:40 | ||
s/have two roles/mix in two roles/ | |||
[particle] | we're considering role-based class composition for parrot | ||
audreyt | otherwise they're the same | ||
fglock | ok - so roles can be optimized more easily, and can be tested at compile-time | 19:42 | |
PerlJam | [particle]: What would that look like? (Is there some docs/code/whatever in the parrot tree?) | ||
[particle] | role A { method a() {...} }; role B { method a() }; class Foo does A does B { ... } # error | ||
audreyt | correct. | ||
[particle] | pj: it's in idea form only. there's been recorded discussion, but the pdd draft hasn't been written yet (no time) | 19:43 | |
PerlJam | gotcha | ||
PerlJam idly wonders how many perl6 concepts can be pushed down to parrot-land before the parrot bursts ;-) | |||
audreyt | what does "cat" (or the Cat type) stand for? | 19:44 | |
catenate? | |||
PerlJam | audreyt: that would be my guess. | ||
audreyt | or concatenate? ;) | ||
allbery_b | that was what larry seemed to be up to, yeh. /bin/cat :) | 19:45 | |
audreyt | and what would happen to | ||
%cats\ .{'fluffy'} = Cat.new; | |||
and other Cat in S* examples? | |||
shouldn't animated strings be called Snakes? | |||
</troll> | 19:46 | ||
it's confusing to see two Cat in examples that means different things, though. | |||
audreyt ponders if "Stream" would be a better name. but then... coding > ergonomics | 19:47 | ||
audreyt goes back sleephacking | |||
PerlJam | The PDL folks have cat and dog operators that are used to join and unjoin piddles. | 19:48 | |
fglock | starting 2 days offline... | ||
[particle] | fglock: enjoy the silence | ||
audreyt | fglock: have fun offlining | ||
I'll backlog kp6 stuff meanwhile | |||
19:49
weinig|bbl is now known as weinig
|
|||
audreyt | (having done Syn and mailing list backlogging) | 19:49 | |
bbl & | |||
allbery_b | <audreyt> shouldn't animated strings be called Snakes? | ||
only if there's a Planbe class somewhere :) | |||
*Plane | 19:50 | ||
kolibrie | fglock: happy weekend | ||
fglock | thanks :) | 19:54 | |
& | |||
19:55
spx2 joined
20:15
autark joined
20:18
luqui joined
|
|||
svnbot6 | r15101 | audreyt++ | * pick.t and capture.t - unTODO passing tests | 20:18 | |
20:20
lampus joined
20:22
codermattie left
20:27
spoop joined
20:29
beppu_ joined
20:33
weinig is now known as weinig|bbl
20:39
autark_ joined
20:55
autark__ joined
20:56
beppu_ joined
21:02
autark joined
21:07
autark___ joined
|
|||
kolibrie | I just ran into a difficulty while trying to refactor a regex into subrules | 21:18 | |
pasteling | "kolibrie" at 66.239.158.2 pasted "refactoring capturing regexes" (41 lines, 1.2K) at sial.org/pbot/22513 | ||
kolibrie | fglock is not around, but perhaps someone else can shed some insight | ||
[particle] | try { $/ = $/.name_first_last() } | 21:23 | |
the closure is perl6 code, right? | |||
kolibrie | yes | ||
[particle] | so use p6 syntax, not regex syntax | 21:24 | |
er, method syntax | |||
hrmm, i suppose it shouldn't matter | 21:25 | ||
luqui | $/ := <name_first_last> ? | ||
[particle] | $<name_first_last> := <name_first_last> ?? | 21:27 | |
21:28
Aankhen`` joined
|
|||
kolibrie | [particle]: method syntax did not work, at least under v6.pm | 21:29 | |
luqui: that seems like it should work, but then my regex didn't match at all | |||
[particle] | dev.perl.org/perl6/doc/design/syn/S...o_subrules | ||
lambdabot | Title: Synopsis 5: Regexes and Rules - perl6:, tinyurl.com/mqbs8 | ||
kolibrie | well, with [particle]++ and luqui++ 's suggestions, I managed to get this to work: | 21:35 | |
$<name> := <name_first_last> | |||
{ $/ = $<name> if $<name>; return ::Name(...) } | |||
luqui | yuck. I expect some of that is due to bugs :-) | 21:36 | |
kolibrie | probably | ||
I hope that your initial example is what should work | |||
21:37
beppu_ joined
21:38
GabrielVieira2 joined
21:46
GabrielVieira joined
21:50
weinig|bbl is now known as weinig,
larsen_ joined
22:10
as joined
22:15
iblechbot_ joined
|
|||
ingy | [particle]: ping | 22:34 | |
23:10
Limbic_Region joined
23:15
jferrero joined
23:16
ashleyb joined
|
|||
Limbic_Region | are the warnings issued when compiling Pugs.Var.Base known and acceptable or should I nopaste? | 23:18 | |
23:18
beppu_ joined
23:25
Psyche^ joined
23:40
ashleyb left
23:41
ashleyb joined,
Psyche^ is now known as Patterner
23:42
ashleyb joined
23:59
beppu_ joined
|