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