Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-02-10

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 aindilis joined #perl6
00:05 r0bby joined #perl6
00:09 araujo joined #perl6
00:11 nihiliad left #perl6
00:24 zamolxes joined #perl6
00:33 REPLeffect joined #perl6
00:38 pugs_svn r25261 | hinrik++ | [util/perl6.vim] variable interpolation fixes
00:49 hercynium joined #perl6
00:58 Khisanth joined #perl6
01:00 eternaleye joined #perl6
01:06 s1n is it legal to autovivify a range?
01:08 s1n will (1..10)[0;11] ~~ (1,11)?
01:12 alester_ joined #perl6
01:13 alester joined #perl6
01:29 pugs_svn r25262 | hinrik++ | [util/perl6.vim] revise matching of angled strings, update TODO
01:39 nihiliad joined #perl6
01:46 sahadev joined #perl6
02:10 aindilis` joined #perl6
02:24 aindilis joined #perl6
02:28 cognominal joined #perl6
02:37 eternaleye joined #perl6
02:50 alc joined #perl6
03:34 mncharity joined #perl6
03:39 nihiliad left #perl6
03:52 sahadev joined #perl6
03:55 vpace joined #perl6
04:11 mtnviewmark joined #perl6
04:16 sahadev left #perl6
04:22 Entonian joined #perl6
04:35 mncharity hmm... maybe elfg5 will go on a web site rather than in the pugs repo... the gimme5 p5 code seems 2MB.  I wonder if there's a "uncompress p5 source" filter...
04:36 Entonian joined #perl6
04:36 mncharity doesn't matter - file doesn't compress well.
04:43 finanalyst left #perl6
04:55 pugs_svn r25263 | putter++ | [gimme_elf] First draft of ParserGimme5_create.pl.
04:55 pugs_svn r25263 | putter++ | [STD_blue_run] Add marker comments to facilitate code extraction for gimme_elf.
05:11 Tene_ joined #perl6
05:19 Entonian joined #perl6
05:21 diakopter who needs a type-checker in a bootstrapping (throwaway?) runtime?
05:22 mtnviewmark is that a trick question?  :-)
05:30 diakopter mtnviewmark: I guess it depends on your answer.
05:31 mtnviewmark see - that's what makes it trick!  I'm afraid to answer it either way!
05:32 c9s joined #perl6
05:32 diakopter lol.  I'm afraid to decide whether it's a trick question, then.
05:34 mtnviewmark so is the question: "Can we just let all the type checking be dynamic at run-time for the bootstrap, and not bother to statically check the bootstrap code?"
05:34 diakopter seriously though
05:34 diakopter yeah, that
05:34 mtnviewmark or is it more of "Can we just trust that the bootstrap code got it all right, and, without checking, just plow forward?"
05:35 diakopter heh
05:35 mtnviewmark I'd think so long as the runtime is doing the dynamic typing to keep everything safe, then I'd think you could bootstrap w/o static type checking...
05:36 diakopter well, that's ultimately a (non-)failure of the test suite's completeness
05:36 diakopter I mean, if it *works*
05:36 diakopter ...
05:36 mtnviewmark after all, after you've bootstrapped, if you were concerned for correctness of the bootstrap, you could always cycle it through itself
05:36 diakopter ,
05:36 diakopter yeah, once your type-checker is written
05:38 mtnviewmark imagines a type-checker with  backdoor holes to allow the bootstrap through, virally adding the backdoor into the bootstrap as it's compiled....
05:38 mtnviewmark ...and then the machines all rise up and make us slaves!
05:38 diakopter now, this is not to say that your type-inference could be any mor liberal
05:40 diakopter class BruteForceAllRoutines does MultiMethodDispatching {
05:42 diakopter although I guess inference is only for literals.
05:43 mtnviewmark well, is there any perl6 feature that depends on the type inferencer or on static type checking or analysis?
05:44 mtnviewmark if the compiler declares the type of every literal to be "er, well, something, ya know, a value"
05:44 mtnviewmark and if it goes "oh a type declaration on an argument? er, whatever, dude"
05:44 diakopter class CouchSurfer does Visitation {
05:44 mtnviewmark will that mater?
05:47 diakopter class Value_or_Reference_who_knows does Something_or_Other {
05:47 mtnviewmark I guess - the answer is definitively "no": You aren't trying to make the bootstrap fast with fancy type-enhanced optimization, and you don't need to aid the bootstrap programmer with extra type-assisted diagnostics (bootstrap programmers prefer to code in binary, anyway and think diagnostics in text other than ABEND-0C7 are a distraction...)
05:48 diakopter yeah
05:49 diakopter but I still at least need *some* runtime model of the type system.  Metaphor's schema will do.
05:50 diakopter the DLR's is...  ...cumbersome.
05:51 diakopter okay... here's some more for you
05:51 diakopter autothreading
05:51 mtnviewmark (and yes, I *do* remember decoding the three card mystical bootstrap program for the IBM 1401-- it opened my eyes to "the way things really work"!)
05:51 mtnviewmark as in Junctives?
05:51 mtnviewmark do those need to be supported in the boot-strap?
05:52 diakopter yeah.  I mean, maybe this should be going the other way around.
05:52 mtnviewmark well, I don't think STD.pm has any junctives in it
05:53 mtnviewmark meaning, define the minimal bootstrap sub-set of perl6 -- rather than exclude stuff?
05:54 diakopter what actually is essential?  I'll start.  1. Runtime/string eval  2. dynamic parsing/rules (possibly influenced by runtime codegen eval'd)
05:56 diakopter or is that asking too much?
05:56 mtnviewmark well - this seems to me to be the right way - define what is in, not what is out
05:57 mtnviewmark but you'd have to appeal to TimToady to know what is needed for real
05:57 diakopter well, static/linked/executable compilation isn't necessary, so an interpreter or source conversion at least.
06:00 diakopter but I don't want "real"; I want "virtual".  seriously though, I'm going to claim that anyone/we can figure out the necessary subset without a language designer decision.. I mean, it's definitely implementation (starting point) dependent.
06:03 mtnviewmark well - it wasn't that I was thinking that a language designer was needed - but the author of STD.pm -- since isn't the intention to use that to bootstrap?
06:03 diakopter if you tried to solve the platform compatibility and language implementation interoperability problem up front, well, that would, erm, be assuming that a bootstrap/self-hosting isn't necessary [or even desirable].
06:08 alester_ joined #perl6
06:09 diakopter yeah, but there's lots of semantics of Perl 6 not encoded in the syntax definition/parser.  It's more a question of what language features are needed to implement a/the self-hosted implementation...
06:11 diakopter hrm. actually though, lots more semantic rules *could* be encoded in STD.pm.  Some more language features might be needed though.
06:11 TimToady I'm currently hacking in symbol tables, for instance
06:12 diakopter maybe that's where TimToady's going with his cryptic "'real' symbol table implmentation" commit message
06:12 TimToady but I do avoid junctions, at least for now...
06:12 diakopter oh, wait, you just said that
06:13 TimToady unfortunately that means I have to figure out how to generate a lexical pad for a signature, or STD gets lots of undefineds currently :)
06:13 diakopter I want junctions with probabilistic annotations/hints
06:14 diakopter parameterized.
06:14 TimToady not for the bootstrap you don't :P
06:14 mtnviewmark 1 :usually | 10 :sometimes | 100 :once_in_a_blue_moon
06:15 mtnviewmark actually - I'm still unclear what the whole bootstrap path will look like --- is there a wiki page with the plan on it?
06:15 diakopter mtnviewmark: you're writing it
06:16 TimToady what is this "plan" thing of which you speak?
06:16 mtnviewmark ya know, this is a dangerous channel to hang out in!
06:16 diakopter you should see the baseband transliteration
06:18 diakopter seriously though, there are several starts (and 2-3 very far along) of Perl 6 compiler systems in Perl 6 in the pugscode repo
06:19 TimToady until one of them can parse and run STD.pm, they're just that...starts...
06:20 TimToady the only thing that can do that right now is gimme5, and it's nothing to be proud of...
06:20 diakopter well, with STD.pmc, they can definitely parse it if they can read YAML. but run it?
06:21 mtnviewmark hmmm... how can one really bootstrap with STD.pm -- it has no semantic actions -- it doesn't even really build a correct AST, does it?
06:21 TimToady just has to be correct enought to replace gimme5
06:22 diakopter hm, so gimme5 truly does define the syntactical subset
06:22 diakopter ugh; lag causing dittoes
06:22 TimToady at the moment, only things translatable by gimme5 are allowed, and it does distort the p6 code in STD somewhat
06:23 maerzhase joined #perl6
06:23 mtnviewmark can one get the gimme5'd version of STD.pm (STD.pm5 or STD.pmc... not sure what the difference is) to emit an AST that is reasonably complete enough to execute?
06:23 mtnviewmark that is to interpret?
06:23 TimToady well, viv is supposed to develop into that
06:24 TimToady it spits out a typed AST at least as good as what the gimme5 parser does, for the most part, and in many place much better
06:24 TimToady (gimme5 only really parses the insides of rules)
06:24 eternaleye joined #perl6
06:25 TimToady everything else is completely ad hoc
06:25 TimToady but I think it's really only a week or two of work to get viv to where it spits out the same code gimme5 spits out, more or less
06:26 diakopter ...which are really the non-perl5-ish parts anyway (rules)
06:26 TimToady and it would be much more robust, for some def
06:27 mtnviewmark wishes he had a shared whiteboard
06:27 TimToady it might still be doing a lot of cargo-culty translation of 6 to 5, but it would at least be well parsed
06:27 mtnviewmark so what's the difference between viv and gimme5 -- if they are both perl6-subset to perl5 translators written in perl5
06:28 TimToady viv is front-ended with a real p6 parser
06:28 diakopter gimme5 feeds viv the real p6 parser (translated)
06:28 mtnviewmark so viv is perl6-the-full-magilla to perl5 written in perl5?
06:29 mtnviewmark (sorry if I'm being dense!)
06:29 TimToady yes, but as soon as we have that, we can rewrite Cursor.pmc and viv in p6
06:30 mtnviewmark (just don't loose the viv-version-0!)
06:30 TimToady or gimme5, either, if you're paranoid :)
06:30 mtnviewmark woot - source control - woot
06:30 TimToady mainly just make sure we keep the previous known-to-work(sorta) version around
06:31 mtnviewmark remembers doing this sort of thing with META IV -- and without source control, loosing your stepping stone version could be fatal
06:32 * diakopter dares to google META IV and is reminded of Metaphor
06:32 TimToady it'll be a while before we can safely rewrite STD to avoid gimme5isms
06:32 TimToady but the intent is that it be good p6 code even when catering to gimme5
06:33 TimToady often implies poking things into temporaries so as not to blow gimme5's mind
06:33 mtnviewmark so, viv becomes perl6 to perl5 written in perl6
06:33 diakopter is Perl 6 the SIL/UCB school of the VDM?
06:33 TimToady %$hashref.{$key}:delete can't get too complicated, for instance
06:34 mtnviewmark whereas gimme5 is perl6-subset to perl5 written in perl5
06:34 TimToady VDM?
06:34 diakopter something about META IV and VDM-SL
06:35 TimToady yes, gimme5 is rather more demanding, hence the name :)
06:35 PantheraUncia joined #perl6
06:36 TimToady fortunately, the regex engine in Cursor can be expressed in P5 without requiring gimme5 to understand how to translate that
06:36 TimToady it just has to know how to call into Cursor, as in STD.pmc
06:37 TimToady whenever I found something too hard to express in gimme5ese in STD, I'd just turn it into a method call
06:38 mtnviewmark okay --- so if STD.pm is perl6 to AST in perl6
06:40 mtnviewmark then we should be able to plug that set of tools together to result in an a perl6 to AST compiler written in AST
06:40 TimToady Protasis without corresponding apodosis found at mtnviewmark line 22:37
06:40 mtnviewmark (sorry was trying to write it in some clever notation - gave up and wrote english)
06:41 TimToady for some definition of AST or other
06:42 mtnviewmark (abstract syntax tree --- and yes, therein lies the crux: Just *WHAT* does that AST have to minimally contain to run that compiler?)
06:44 TimToady so you're not actually worried about the abstract syntax so much as the abstract semantics :)
06:45 mtnviewmark right - because the AST subset that viv compiled itself (!) into is the minimal AST that a bootstrap implementation needs, right?
06:45 mtnviewmark s/compiled/compiles/
06:47 mtnviewmark OR, was there some other plan for bootstrapping?  (I know, I know... no plan, really...)
06:47 TimToady I've never viewed viv as much more than a tree-walker-emitter, so its own requirements are pretty low
06:48 TimToady but I'm assuming STD puts all the info in a handy place for backend emission
06:48 mtnviewmark ah, is viv expected to be fronted by STD.pm
06:48 mtnviewmark okay
06:48 TimToady which is a reasonable enough assumption for emitting p5, but maybe not for others...
06:48 mtnviewmark so the AST subset that (STD.pm + viv) compiles itself into...
06:49 TimToady which assumes the semantic subset provided by Cursor, more or less
06:49 mtnviewmark I suppose the issue here is that the parser and front end for perl6 should stay forever in perl6 ... and not have to be recast...
06:49 TimToady (and p5, currently)
06:49 TimToady givent that all other languages are subsets of Perl 6, that goes without saying :)
06:50 mtnviewmark still - isn't that a pretty high bar for a bootstrap?  a large subset?
06:50 DemoFreak joined #perl6
06:50 TimToady why do you think it's taken this long :P
06:51 mtnviewmark so rakudo and elf have hand built parsers for now -- but I suppose their run-time feature set is approaching enough to do STD.pm?  So now the question is bootstrapping that on top of them?
06:51 mtnviewmark (sorry if this is all clear to all of you -- I'm still hazy on the state of the implementations)
06:52 TimToady it mostly comes down to being able to run Cursor semantics
06:52 mtnviewmark well - gee - that's *only* 2500 lines of perl5 -- how hard could it be to duplicate in whatever the base for for those implementations?
06:53 TimToady there are several things mixed in together in Cursor that really shouldn't be
06:54 TimToady the longest-token table generation should probably be split out, but it's still a necessity
06:54 ashizawa joined #perl6
06:55 TimToady the basic semanics of STD rely on being able to ask, "In the current language, for the current set of alternatives, what is the complete set of longest tokens, transitively through all subrules?"
06:56 TimToady the actual regex implementation in Cursor is actually fairly straightforward once you understand the use of lazy lists for continuations
06:57 TimToady (and the avoidance of lazy lists when you don't need 'em, since p5 is so horrid at implementing them)
06:57 TimToady the original version of Cursor was actually written in p6 in terms of gather/take
06:57 TimToady but pugs couldn't quite manage executing it
07:00 masak joined #perl6
07:03 TimToady but I'd say that writing a code emitter for a backend is probably the trivial part, once you've implemented a Cursory set of semantics
07:03 ashizawa joined #perl6
07:04 TimToady Cursor also requires to be able to introspect your classes in a Moosey way in order to build up the longest token tables for the current language
07:04 TimToady since the current language is a layering of multiple derived grammars
07:14 spooneybarger joined #perl6
07:31 masak rakudo: $*OUT.say: "OH HAI"
07:31 p6eval rakudo 577566: OUTPUT«Cannot write to a filehandle not opened for write␤current instr.: 'parrot;IO;print' pc -1 ((unknown file):-1)␤»
07:31 * masak submits rakudobug
07:32 masak rakudo: $*DEFOUT.say: "OH HAI"
07:32 p6eval rakudo 577566: OUTPUT«too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;Perl6Object;say' pc 626 (src/classes/Object.pir:176)␤»
07:46 justatheory joined #perl6
07:47 iblechbot joined #perl6
07:56 maerzhase joined #perl6
08:14 mberends joined #perl6
08:17 wilx joined #perl6
08:23 wilx left #perl6
08:50 ludan joined #perl6
08:57 pugs_svn r25264 | azawawi++ | [S:H:P6] version 0.41 is going to depend on Moose 0.68
09:09 xinming joined #perl6
09:34 agentzh joined #perl6
09:43 pugs_svn r25265 | lwall++ | [STD] better reporting of variable declaration difficulties
10:30 Nom- joined #perl6
10:37 Nom- joined #perl6
10:57 meppl joined #perl6
11:09 mberends masak: your RT#63136 should be linked to my RT#62540
11:10 literal is "not" a function?
11:10 literal I thought it was an operator
11:11 literal in S02-magicals/subname.t it's used as "not(defined $baz)"
11:12 literal and parens without intervening whitespace always indicates a function call, right?
11:12 literal or does it do the right thing until you actually define a not() sub?
11:20 literal hm, so it's just named unary operators that allow this, it seems
11:28 iblechbot joined #perl6
11:35 ruoso joined #perl6
11:35 masak joined #perl6
11:36 ruoso Hello!
11:37 masak y0
11:44 ruoso TimToady, I was assuming no dispatch looked into $?PACKAGE, I mean... an "our only sub" registers a lexical alias to that sub, so there's no need to look in the package. (Packages are much less relevant in Perl 6, I think), the sub is in the package for the case the user use the fully-qualified-name...
11:45 * masak snickers at 'our only'
11:45 ruoso So, calling "foo()" always mean looking only in the lexical scope, and nowhere else..
11:45 ruoso while Package::foo() always mean looking at the package
11:48 ruoso (I'm trying to avoid making much a special case of multis)
11:49 meppl joined #perl6
11:50 ruoso In a practical sense, I'm planning that when the compiler installs a lexically scoped multi variant, it will simply copy all the variants from the outer definition and that's it
11:55 jnthn ruoso: FWIW, I'm expecting Rakudo will do a similar copy-style thing.
11:56 ruoso cool... that is pretty much cleaner than my previous solution
11:56 ruoso which was to make the variants list virtual
12:06 masak I see interesting interactions between this and lexical closures.
12:19 pugs_svn r25266 | ruoso++ | [mildew/prelude] Multi.pm now only consider its own variants. The compiler should copy all the variants from an outer definition at compile-time.
12:21 ruoso jnthn, the most important benefit of having the list of variants immutable is that the compiler may already pre-order the candidates at compile-time
12:21 ruoso and it doesn't need to care about cache invalidation
12:21 ruoso it's conceptually optimized
12:23 pugs_svn r25267 | ruoso++ | [mildew/prelude] Multi.pm also assume the compiler had already sorted the variants at compile-time, so it gets the first valid candidate and dispatch.
12:23 ruoso so "ambiguous signature" can be catch at compile time, and not left to runtime
12:25 ruoso hmm...
12:25 ruoso is failing to find a valid candidate on multi dispatch a Failure or a Control Exception?
12:26 * ruoso thinks it is probably a Failure
12:26 moritz_ it's definitively not a control exception
12:27 masak would a Failure halt execution?
12:27 ruoso masak, as long as noone CATCH it
12:28 masak ruoso: wait, so a method is not found, and (unless I take special measures) nothing is done about it?
12:28 masak that sounds Wrong.
12:28 masak for one thing, that's not how only methods work.
12:28 ruoso masak, I said the opposite
12:29 masak ruoso: ah, yes. you did.
12:29 masak beg your pardon. :)
12:29 ruoso ;)
12:30 ruoso TimToady, any chance of that renaming of the  * twigil to mean the same as +? I see $*OUT and others all around, and it really feels weird that we use that as globals
12:31 ruoso I'd argue that it would be cool if we dehuffmanize globals... forcing GLOBAL::<$OUT> if that's what the user really wan
12:32 ruoso but I really think it should be PROCESS::<$OUT>
12:33 moritz_ why should a program have access to its own PROCESS::<$OUT>?
12:33 ruoso hm?
12:34 moritz_ it should only ever care about its GLOBAL:: namespaces
12:34 moritz_ unless it messes around with executing multiple independent perl processes
12:34 ruoso moritz_, the regular user would still simply use $*OUT
12:35 ruoso but I was arguing that the stdout doesn't really belong to a GLOBAL package
12:35 ruoso but rather to the PROCESS package, as it is a process-related information
12:35 moritz_ you notice that PROCESS:: is even more "global" than global variables?
12:35 ruoso sure,
12:35 ruoso that's what I meant
12:36 ruoso if the user really wants to talk to fd 0
12:36 ruoso it can use PROCESS::<$OUT>
12:36 ruoso otherwise it talks to $*OUT
12:36 ruoso which could be overriden by a outer dynamic scope
12:36 moritz_ my point is that it should never try to use variables from PROCESS:: namespace
12:37 ruoso moritz_, well, PROCESS::<$OUT> is already a very cryptic name
12:37 ruoso but it should indeed be available
12:37 ruoso because it *is* available to any process
12:37 moritz_ but it shouldn't be writeable
12:37 ruoso you mean re-bindable
12:38 ruoso in the sense that you can't replace PROCESS::<$OUT> value
12:38 ruoso yes, you can't
12:38 moritz_ I mean the user shouldn't be allowed to write to the PROCESS::<$OUT> handle
12:38 ruoso why not?
12:38 ruoso if he really wants to do that
12:38 moritz_ imagine a mod_perl application
12:38 moritz_ all the threads in which perl apps run should be separate from each other
12:38 ruoso well, I don't see a reason why would anyone try to write to PROCESS::<$OUT> in a mod_perl application
12:39 ruoso but the file descriptor is there
12:39 moritz_ and no one should be allowed to mess with the process-global file handles
12:39 ruoso and it is writeable
12:39 moritz_ well, from a security point of view that would be a disaster
12:39 moritz_ because in general you can't trust your client scripts
12:39 ruoso but you can't anyway
12:40 ruoso it's not making PROCESS::<$OUT> readonly that solves that
12:40 ruoso you may want a VM that can do "sandbox"
12:40 moritz_ no
12:40 ruoso and run the client code inside it
12:40 moritz_ isn't sandboxing what teh PROCESS:: namespace is for?
12:41 ruoso ahm?
12:41 ruoso sandboxing is something that happens in a much lower level
12:41 moritz_ not necessarily
12:42 ruoso you have to apply ACL to objects
12:42 ruoso that happens in a much lower level
12:42 moritz_ or you only provide objects which the user is allowed to use
12:43 moritz_ then you don't need ACLs
12:43 ruoso that's very much fragile
12:43 ruoso and it's not a sandboxing
12:44 moritz_ ok, then what is that namespace for?
12:44 zamolxes joined #perl6
12:45 ruoso the PROCESS namespace holds variables that properly belong to the actual process as a whole
12:45 ruoso (that was supposed to have quotes around)
12:45 ruoso "the GLOBAL namespace holds variables that properly belong to the individual virtual process"
12:46 moritz_ so it's meant for stuff like PID, parent PID etc?
12:46 ruoso OUT
12:46 ruoso and all the other stuff that usually resides in /proc/PID/ in a linux os
12:47 ruoso if you need sandboxing, you need sandboxing
12:48 ruoso hiding that filedescriptors is not going to provide you with any serious security
12:51 ruoso but that shouldn't be a problem for parrot, I think... as it implements all of its memory management itself, it should be easy to implement a sandbox inside it, or ACL to memory access...
12:51 ruoso in SMOP, otoh, you're damned to use FCGI ;)
12:51 ruoso because there's no way to implement ACL or sandboxing
12:51 moritz_ well, there should be a security pdd by now for parrot
12:53 moritz_ pdd18
12:53 moritz_ don't know how much of it is actually implemented
13:03 yves joined #perl6
13:09 maerzhase joined #perl6
13:14 mberends masak: your RT#63136 should be linked to my RT#62540
13:14 masak mberends: checking.
13:16 maerzhase joined #perl6
13:16 masak mberends: aye, mine is practically a dup of yours. fixing.
13:20 mberends the great rvar2 merge of r35311 knocked out those special vars (and possibly others)
13:20 mberends that was one of the reasons to keep 7 parrots for offline regressions ;)
13:21 masak mberends++
13:21 masak with November, we have just fearlessly forged ahead along with Parrot, for better or worse.
13:22 masak we've been discussing targetting stable versions starting with the next stable Rakudo version.
13:23 mberends I miss my $*ERR.say: "trace messages bypass Test::Harness"
13:23 masak I can imagine.
13:23 masak we don't really do that in November. :)
13:24 masak mberends: does 'warn' work for you?
13:24 mberends maybe it will :)
13:27 masak mberends: speaking of which, would Pod withstand the long-awaited review I've been planning to do (and blog about)? I might have a time slice for it this weekend.
13:28 mberends yes, thanks :) I'll do some spit and polish before then too. afk now &
13:32 masak I have this idea that the Perl 6 culture is very malleable now when it is still small. and therefore we have a great opportunity to create good community practices, such as publicly reviewing code.
13:33 masak besides, I've always been slightly fascinated by Literate Programming.
13:38 moritz_ I've recently read a rant against literate programming, which rather convinced me that it's not so great ;/
13:40 * ruoso already tried to use Lingua::Romana::Perligate, but lacked latin skills
13:40 masak moritz_: I'd like to read that. but I also think that all technologies and philosophical scools can be successfully argued against.
13:40 masak all I'm saying is that Literate Programming appeals to me. the fact that it inspired JavaDoc made me interested, I think.
13:41 * ruoso also tried to implement a parser for the Brazillian Portuguese grammar in Perl 6, but the lack of a LTM made the parser stuck
13:41 masak JavaDoc, though very nice, is not half as revolutionary as Literate Programming.
13:41 * ruoso always thougth JavaDoc was inspired by pod
13:41 moritz_ masak: http://www.perlmonks.org/?node_id=735910
13:42 masak moritz_: dz. it's in my queue. :/
13:44 * masak has an odd relation to Firefox 3.0. currently 469 tabs open.
13:44 aindilis` joined #perl6
13:45 moritz_ masak: one more, and you have an even relation :-)
13:45 moritz_ scnr
13:45 masak :P
13:59 literal moritz_: "[...] since he published his paper in 1984. [...] If it is such a good idea, how come that after 28 years, there are so few examples of real-world use?"
13:59 literal interesting arithmetic there
14:00 masak and a specious argument, to that.
14:00 mikehh joined #perl6
14:00 moritz_ literal: yes, but that doesn't invalidate his other points
14:00 literal of course not, I haven't even read them yet :)
14:01 moritz_ masak: you could also read that as questions - if LP *is* really great, there must be a reason why didn't took off earlier
14:01 moritz_ and maybe we can learn something from the answer to that question
14:01 masak moritz_: I prefer that interpretation. I'm wondering that as well.
14:02 masak I also haven't read the text yet. will in a week or so.
14:02 guru joined #perl6
14:06 Matt-W Maybe because there isn't much movement in popular languages
14:06 Matt-W people are still using C
14:06 Matt-W and c++
14:06 Matt-W and Java and C# are basically the same sort of thing with reference counting
14:07 masak I think most people would think that LP would be too big a step to take, for unknown gains.
14:07 Matt-W There is that
14:07 masak after all, if Just Writing The Program works, why do it the other way?
14:07 Matt-W Especially as most programmers seem to be hideously averse to any form of documentation at all
14:08 masak the part about LP that I especially like is having the view towards giving the "story" behind a module, method or other entity. good JavaDoc captures that, to some extent.
14:09 Matt-W One thing I always liked about literate programming syntax in Haskell was how you could write a paper with embedded code, and feed it to LaTeX to generate the PDF to publish, or to GHC to run the code you were writing about
14:10 Matt-W But that kind of thing's not always practical
14:10 moritz_ maybe I'm writing my thesis in the wrong subject here
14:10 Matt-W lol
14:10 moritz_ nobody would even know what that "haskell" thing is
14:11 Matt-W they would if they read your citations
14:11 moritz_ they wouldn't, because they have papers to write on their own
14:11 moritz_ not much time for reading "external" stuff
14:12 Matt-W I know, but it's a convenient way to shift the blame onto them and do less work :)
14:12 moritz_ I don't think haskell would easy my pain of heavy duty numerics
14:13 masak maybe OCaml would, though.
14:14 moritz_ maybe
14:14 moritz_ but with C++ I already have a hard time finding libraries to do what I want
14:15 moritz_ I don't think OCaml has a much wider spectrum here :/
14:16 IRSeekBot joined #perl6
14:18 IRSeekBot joined #perl6
14:18 PantheraUncia joined #perl6
14:18 masak no, likely not.
14:22 pmurias joined #perl6
14:28 * moritz_ would like to see the parrot.org feed on planetsix
14:44 Exodist joined #perl6
14:51 pugs_svn r25268 | hinrik++ | [util/perl6.vim] various small fixes and TODO updates
14:54 pugs_svn r25269 | hinrik++ | [S05] fix Pod error due to misplaced =back
15:01 pugs_svn r25270 | hinrik++ | [S29] fix Pod error due to missing =back
15:02 ejs joined #perl6
15:14 go|dfish joined #perl6
15:16 [particle] joined #perl6
15:40 Whiteknight joined #perl6
15:40 cj joined #perl6
15:41 cj TimToady: if I wanted to write an emitter that uses your fantsy new parser, where might I start?
15:41 justatheory joined #perl6
15:43 moritz_ cj: there is already a syntax hilighter that uses STD.pm - maybe look at that?
15:43 cj thanks, moritz_, I'll look there.
15:43 cj where in the tree is that?
15:44 moritz_ cj: misc/Syntax-Highlight-Perl6
15:44 stephenlb joined #perl6
15:45 Tene joined #perl6
15:48 mberends left #perl6
15:49 cj thanks.  where's the parser live?
15:49 moritz_ in src/perl6
15:50 cj great.  thanks once more
15:53 mberends joined #perl6
15:56 [particle] cj: what do you plan to emit?
15:59 masak is there any hope of using such an emitter from within Rakudo?
15:59 masak (jury-rigging with files and stuff is allowed)
16:00 mberends masak: looked for your SVG module, failed, but discovered the following: 1) your mug shot is improved 2) you have a skeleton MVC called Web. This 2) makes me shudder, because I did exactly the same a few months ago, and stalled after about 50 lines of code. Fortunately I've deleted my efforts now, and from experience suggest you do the same ASAP ;)
16:00 masak mberends: you didn't find it because my SVG module is not online yet.
16:00 icwiener joined #perl6
16:01 masak mberends: we also have a grant proposal for the Web idea.
16:01 masak mberends: http://news.perlfoundation.org/2009/0​2/2009q1_grant_proposal_webpm_-.html
16:03 mberends That probably relates to the project you hinted at a few weeks ago. I sit by my advice - get over it, the feeling will pass. Frameworks are the Bermuda triangle of software development.
16:03 masak mberends: noted.
16:04 masak it's not primarily the 'framework' part that interests me.
16:04 masak it's the 'nice start for someone coming to Perl 6' part.
16:05 mberends Rakudo on Rails?
16:05 moritz_ masak: speaking of startings... do you already know how you want to get enough parseable metadata into u4x's Pod?
16:05 masak moritz_: I'm glad you ask. :) no, not in any deep sense.
16:05 masak I figure I will run into relevant problems one I actually sit down and try to write those representative examples.
16:06 moritz_ =begin meta\n keywords: foo, bar, baz\n=end meta
16:06 moritz_ that would be my ad-hoc ansatz
16:06 masak anyone who wants to speed up the u4x effort is very welcome to try and write their own representative examples, and commit them to u4x for public review.
16:07 masak moritz_: that may or may not be necessary. we'll see.
16:07 * moritz_ already did
16:07 masak oh!
16:07 * masak looks
16:07 moritz_ and pmichaud looked over it and improved the wording
16:07 pugs_svn r25271 | rhr++ | [STD] missing ;
16:07 pugs_svn r25271 | rhr++ |       duped line of code - should it be deleted or was it meant to be something else?
16:07 DemoFreak joined #perl6
16:08 masak moritz_++
16:08 masak didn't see that till now.
16:09 masak for the 'special terms' category, I currently don't think more than that is needed.
16:09 masak something makes me want to invent as little metadata scaffolding as possible.
16:10 moritz_ masak: at least we want to have synonyms
16:10 masak moritz_: ack.
16:10 moritz_ or different forms of the words
16:10 masak sure.
16:10 moritz_ autothread, autothreading, junction dispatch
16:10 masak =for synonyms, perhaps?
16:11 moritz_ we're not writing it for the synonyms
16:11 masak :)
16:11 masak neither are we writing it for the meta.
16:11 moritz_ =begin meta\nsynonms: ....\n=end meta
16:11 cj [particle]: C# with calls into the DLR (Microsoft.Scripting.Core*)
16:11 moritz_ that's why I don't write "for meta"
16:11 moritz_ but "begin meta"
16:11 [particle] FeP6. nice!
16:12 masak moritz_: there's nothing special, semantically, about =for in Pod6
16:12 pmichaud I wondered if the glossary entry should have a link to the relevant synopsis section.
16:12 lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
16:12 masak pmichaud: that might be a good idea.
16:12 moritz_ pmichaud: sure. The more information and cross linking, the better
16:12 pmichaud Andy Lester also suggested that we do something like   perl101.org   for Perl 6.
16:12 pmichaud which I think would be very useful.
16:12 masak depends on what status the synopses will have when Perl 6 is released.
16:13 masak I guess they will still be very relevant, so yet.
16:13 masak s/yet/yes/
16:20 icwiener_ joined #perl6
16:25 hercynium joined #perl6
16:31 mberends left #perl6
16:37 aindilis joined #perl6
16:50 jferrero joined #perl6
16:55 pugs_svn r25272 | lwall++ | [STD] delete example of convergent evolution noted by rhr++
17:41 charsbar joined #perl6
17:54 [particle]1 joined #perl6
18:00 TimToady std: $x
18:00 p6eval std 25272: OUTPUT«Potential difficulties:␤  Variable $x not declared at /tmp/hORwyMlX2Y line 1:␤------> [32m[31m$x[0m␤00:02 33m␤»
18:01 TimToady std: my $x; state $x;
18:01 p6eval std 25272: OUTPUT«Potential difficulties:␤  Redeclaration of $x at /tmp/1YFn1oqMRO line 1:␤------> [32mmy $x; state [31m$x;[0m␤00:02 33m␤»
18:05 TimToady std: -> $x { my $x }
18:05 p6eval std 25272: OUTPUT«Potential difficulties:␤  Redeclaration of $x at /tmp/7hryMmqNiQ line 1:␤------> [32m-> $x { my [31m$x }[0m␤00:02 34m␤»
18:06 moritz_ std: sub f { say @_ }
18:06 p6eval std 25272: OUTPUT«Potential difficulties:␤  Variable @_ not declared at /tmp/GrgL0jLnF0 line 1:␤------> [32msub f { say [31m@_ }[0m␤00:02 33m␤»
18:08 eternaleye joined #perl6
18:10 ruoso TimToady, have you seen my comments about $*OUT earlier?
18:13 TimToady it should most naturally be in PROCESS, yes
18:13 TimToady and I probably will combine * and + somehow
18:14 ruoso I was thinking that '*' could mean, '+' + GLOBAL
18:14 ruoso although, $*OUT could always be defined in the dynamic prelude
18:14 ruoso so it doesn't really need to be in GLOBAL
18:14 TimToady these days almost nothing goes into GLOBAL except what a user puts there
18:15 ruoso so maybe '*' and '+' are just synonims
18:15 ruoso *synonyms
18:16 TimToady or * looks in the current scope while + goes up one first
18:16 TimToady which would mean that ? should look only in your caller, except...
18:16 TimToady ? is currently something else
18:16 ruoso yes, it's compile-time
18:17 ruoso like $?PACKAGE
18:17 ruoso but I'm not sure looking only in the caller is a use that really requires huffmanization
18:17 ruoso maybe CALLER::<$foo> is ko
18:17 ruoso *ok
18:18 TimToady the problem with putting $OUT into the lexical scope is then people will just write $OUT instead of $*OUT and then the dynamic scope won't be able to override
18:18 ruoso TimToady, I said "dynamic prelude" not "lexical prelude"
18:18 ruoso I'm aware this terminology is void
18:19 ruoso but it's what we have ;)
18:19 moritz_ std: my ($n, $a); say "$n:$a"
18:19 p6eval std 25272: OUTPUT«Potential difficulties:␤  Variable $n:$a not declared at /tmp/w5PUkwiQFM line 1:␤------> [32mmy ($n, $a); say "[31m$n:$a"[0m␤00:04 34m␤»
18:19 ruoso by "dynamic prelude" I mean the code that will call your code
18:19 TimToady moritz_: identifiers can be extended with adverbials, and :$a is legal
18:20 moritz_ TimToady: that's not very intuitive in strings...
18:20 TimToady agreed
18:20 moritz_ because it doesn't end in a postcircumfix
18:20 TimToady and it certainly messes up some places in the test suite that way
18:21 TimToady but I'm not sure how to degeneralize it
18:22 pugs_svn r25273 | moritz++ | [t/spec] remove some variable re-declarations found by STD.pm. TimToady++
18:23 ruoso TimToady, but is there really a case for making a dynamic lookup beggining in the current scope or in the caller scope? I mean... do we need twigils for both?
18:24 TimToady might be able to do away with "is context" if we have my $*foo = $+foo
18:24 dominiko joined #perl6
18:24 ruoso but then the only thing you're saving is the "is context" trait
18:25 ruoso because if you have my $*foo, and you use $*foo anywhere in your code, it will automatically be the same as $foo
18:26 ruoso even with closures where $+foo would be intercepted
18:26 ruoso liek
18:26 ruoso my $*foo = $+foo;
18:27 ruoso my @a = map { say $*foo }, 1,2,3;
18:27 ruoso you could use a plain "$foo" there
18:27 TimToady unless the lexical name is actualy $*foo
18:28 TimToady thinking of the * as more like the ^ though
18:28 ruoso I meant that the above code would be the same as
18:28 ruoso my $foo = $+foo;
18:28 ruoso my @a = map { say $foo }, 1,2,3;
18:29 ruoso (with the "is context" trait, actually)
18:29 ruoso but I think I got what you meant
18:29 TimToady if we made $*foo itself declartive like $^foo (is my new idea)
18:29 masak joined #perl6
18:29 ruoso yeah... I see now
18:29 TimToady then you just write my @a = map { say $*foo }, 1,2,3;
18:29 ruoso you're really just trying to save the trait
18:30 ruoso that should be fine
18:30 TimToady but the map's scope auto-localizes $+foo
18:30 TimToady so it's saving the whole my declaration
18:30 ruoso hm?
18:30 ruoso I didn't get the last part
18:31 ruoso how is that different from "my @a = map { say $+foo }, 1,2,3"?
18:32 TimToady doesn't get you anything there, but if you said
18:32 TimToady my @a = map { say $*foo; bar() }, 1,2,3
18:32 viklund joined #perl6
18:32 TimToady bar would see the map's $*foo, not the outside of that, and mods would be localized to the map closure
18:33 ruoso map closure's $*foo you mean
18:34 ruoso I think I lost it
18:35 ruoso sub doit($closure) { my $foo is context<rw> = 1 }; sub bar { say $+foo }; doit {$*foo = 2; bar() };
18:35 TimToady any use of $* in a block would imply what must currently be expressed as "my $*foo is context = $+foo"
18:35 PerlJam TimToady: is that like an auto-temp?
18:36 maerzhase joined #perl6
18:36 Psyche^ joined #perl6
18:36 TimToady something like that, yes
18:36 ruoso TimToady, so bar would say 2 in the example I wrote above
18:37 rhr joined #perl6
18:37 pugs_svn r25274 | moritz++ | [t/spec] some more variable declaration fixes
18:37 ruoso and in fact, the "<rw>" is unecessary... since $*foo makes it a new contextual variable
18:38 ruoso I think I see where you're heading...
18:38 ruoso $*OUT = $myfile; say "Hello";
18:38 TimToady $*DEFOUT really
18:38 TimToady but maybe we don't need DEFOUT then
18:39 ruoso I kinda fail to see it's meaning
18:39 ruoso (in the new meaning of '*')
18:40 ruoso and as I said earlier... if you really wants to talk to fd 0, you can always use PROCESS::<$OUT>
18:42 ft joined #perl6
18:43 ruoso now we could drop GLOBAL entirely ;)
18:43 TimToady another possible syntax would be "temp $OUT = $myfile; say 'hello'"
18:43 TimToady assuming that temp would autodeclare a dup of $+OUT
18:44 TimToady and that'd look more familiar to a p5 programmer
18:45 ruoso yeah... but it's kind funny for it not to have a twigil
18:46 ruoso maybe force temp variables to use the * twigil
18:46 TimToady well, could force use of temp $*OUT I suppose
18:47 TimToady (assuming we throw out + entirely)
18:47 ruoso (interesting timing)
18:47 ruoso that makes sense
18:47 ruoso if you have a local declaration of $*OUT it will point to it
18:48 ruoso if you don't it will do a dynamic lookup
18:48 ruoso sounds absolutely sane
18:48 TimToady and you're consistent for the normal case
18:48 TimToady and CALLER::<$*foo> is still available, presumably
18:48 moritz_ std: printf("%d", 3)
18:48 p6eval std 25274: OUTPUT«Potential difficulties:␤  Variable %d not declared at /tmp/FhQHx7ptie line 1:␤------> [32mprintf("[31m%d", 3)[0m␤00:04 34m␤»
18:49 TimToady moritz_: known problem
18:49 moritz_ TimToady: ok
18:49 TimToady the current impl is busted on any lookahead or backtracking
18:49 ruoso moritz_, weren't you supposed to use '%d' in that case?
18:49 TimToady hence the REALLYADD kludge
18:49 TimToady ruoso: no
18:50 moritz_ ruoso: %d without a subscript is fine
18:50 TimToady it's not supposed to interpolate without []
18:50 moritz_ ruoso: and not interpolating
18:50 TimToady er, {}
18:50 ruoso ok
18:50 TimToady but that's determined currently by backtracking
18:50 ruoso so, '+' twigil is dead?
18:50 TimToady and by then it's already added the name %d
18:51 TimToady ruoso: probably, let me stew about it just a bit longer, maybe prototype it in STD
18:51 pugs_svn r25275 | moritz++ | [t/spec] more variable declaration fixes
18:51 TimToady moritz_: btw, I have a similar problem thinking about class Foo is also, since it wants to add the name Foo as soon as it sees it, before it sees the is also
18:52 TimToady so considering pulling also and instead out front somehow
18:52 ruoso TimToady, just a sanity check... in the last version plain $*foo doesn't make a local declation, right? you need to make "temp $*foo" for it to localize it...
18:52 TimToady yes
18:52 ruoso ok
18:52 TimToady $*foo is just always the name of the context variable as a context variable
18:53 TimToady also the rw policy is probably controlled by the original outermost declaration, I suspect
18:53 TimToady temp being exempt, since it's just doing hiding
18:53 TimToady so either you can do $*OUT = $myfile everywhere, or nowhere
18:54 ruoso but if I do "my $OUT is context" I still override $*OUT
18:54 ruoso TimToady, but you still can "temp $*OUT" anywhere
18:54 TimToady yes
18:54 TimToady and yes
18:55 TimToady package GLOBAL { our $FOO is context }
18:55 PerlJam TimToady: class Foo is also -->  class +Foo   maybe?  Doesn't Moose do something like this for attributes?
18:56 TimToady and class !Foo for instead, maybe?
18:56 ruoso why not using another keyword
18:57 ruoso ?
18:57 PerlJam ruoso: reclass Foo ?
18:57 ruoso customize Foo { }
18:57 ruoso replace Foo { }
18:57 TimToady monkey class Foo
18:57 PerlJam heh
18:57 * moritz_ likes that
18:57 ruoso MONKEY_PATCH Foo {
18:58 PerlJam just   monkey Foo { ... }
18:58 masak MONKEY_AROUND_WITH Foo {
18:58 TimToady I'm assuming that monkey still requires "use MONKEY_PATCHING;" at the top
18:58 PerlJam patch Foo { ... }
18:58 ruoso monkey add Foo {
18:58 ruoso monkey replace Foo {
18:58 TimToady donkey class Bar  # replace
18:59 PerlJam reclass Foo / patch Foo  sit well with me for some reason
18:59 ruoso TimToady, do you need the second keyword there?
18:59 TimToady multi/proto class
18:59 PerlJam But I kind of like the repetition of "class" in there too.
18:59 moritz_ it should also be applicaple for roles, grammars etc
18:59 M_o_C joined #perl6
18:59 ruoso you're adding or replacing something to Foo, no matter what Foo is
19:00 ruoso if Foo is a class, it will still be a class
19:00 TimToady only class
19:00 moritz_ no monkey patching of grammars_
19:00 masak TimToady: while I remember it, can 'grammar' and/or 'role' start a file just like 'class' can?
19:00 moritz_ s/_/?/
19:00 TimToady yes, I said that to your lambdabot, I thought...
19:00 ruoso so, if Foo is not a class it will fail anyway
19:00 TimToady any package_declarator except package, go figure...
19:00 masak TimToady: my lambdabot was completely silent on the issue...
19:01 masak lambdabot: what do you have to say for yourself?
19:01 masak TimToady: makes sense.
19:01 masak moritz_: you see? not lazy. :) just prescient.
19:03 TimToady to do monkey patching on grammars, you have to "use IRRESPONSIBLY_EGREGIOUS_MONKEY_PATCHING"
19:03 ruoso TimToady, considering current scheme of linking the package_declarator keyword with a HOW
19:03 ruoso using a single keyword for monkey patching fits very well
19:03 masak TimToady: is that de-Huffmanized enough? :)
19:04 ruoso since that HOW can lookup the original symbol and perform the monkey patch
19:05 TimToady I think the proto/multi/only mechanism may be what we're really talking about
19:05 TimToady where "use MONKEY_PATCHING" really pries open classes that forgot to declare themselves "multi" :)
19:06 ruoso multi  class ?
19:06 ruoso that's a new one to me
19:06 TimToady that's why I said it ;)
19:07 TimToady std: my only class Foo {...}
19:07 p6eval std 25275: OUTPUT«Undeclared routines:␤  my used at 0 ␤    only used at 0 ␤00:02 33m␤»
19:07 TimToady heh
19:08 TimToady predictive parser shouldn't allow that backtrack
19:08 TimToady biab &
19:09 abra joined #perl6
19:11 dominiko left #perl6
19:13 rindolf joined #perl6
19:14 abra joined #perl6
19:15 Util joined #perl6
19:29 Patterner joined #perl6
19:29 maerzhase joined #perl6
19:29 PZt joined #perl6
19:29 ascent_ joined #perl6
19:29 ilogger2 joined #perl6
19:29 JarJarBinks joined #perl6
19:29 Aisling joined #perl6
19:29 p6paste joined #perl6
19:29 perlbot joined #perl6
19:39 Tene_ joined #perl6
19:41 rindolf joined #perl6
19:46 sahadev joined #perl6
19:47 sahadev hello all. i am trying to compile rakudo (from parrot distribution). I updated my svn copy and am at revision 36555. Compiling parrot was successful, but 'make perl6' gives me the error: make: *** No rule to make target `config/makefiles/root.in', needed by `Makefile'.  Stop.
19:48 moritz_ sahadev: rakudo has moved out of the parrot repo... please see http://perlgeek.de/blog-en/pe​rl-6/where-rakudo-lives.html for new instructions
19:49 PantheraUncia joined #perl6
19:49 sahadev ah, this is in addition to the earlier move to parrot.org?
19:50 moritz_ sahadev: that kind of triggered it...
19:50 masak sahadev: aye.
19:50 rakudo_svn r36555 | coke++ | don't bother ignoring files in this dir anymore.
19:50 moritz_ any objections to killing rakudo_svn now that languages/perl6/ is essentially empty?
19:52 masak moritz_: what's the function of languages/perl6/ now that Rakudo resides in languages/rakudo/ ?
19:53 moritz_ masak: holding a README that points to my blog post
19:53 masak :)
19:53 masak good function.
19:54 moritz_ lots of hits for blog, I suppose ;-)
19:55 * moritz_ stares at http://www.perl6.ru/articles/5to6/ - just found it as a referrer in the logs
19:57 masak beautiful.
20:00 pugs_svn r25276 | lwall++ | [STD] start to fill out some entries in the toy symbol table
20:00 pugs_svn r25276 | lwall++ | (hash elements eventually need to become container mixins, I suppose)
20:00 pugs_svn r25276 | lwall++ | can now report original line number on redeclaration
20:00 moritz_ I think that's the first time that somebody made the effort to translate anything that I wrote
20:01 TimToady std: my $x; my $x
20:01 p6eval std 25275: OUTPUT«Potential difficulties:␤  Redeclaration of $x at /tmp/HJMXvrKs4B line 1:␤------> [32mmy $x; my [31m$x[0m␤00:02 33m␤»
20:02 masak moritz_: it's quite a nice feeling.
20:02 moritz_ masak: aye
20:03 masak plus it warms my heart what it'll do for Perl 6 in Russia.
20:04 moritz_ we need more russian perl 6 hackers
20:05 moritz_ (actually of *any* nationality ;-)
20:05 masak да.
20:06 masak er, I mean 是.
20:07 * ruoso just sent the longest ever report about SMOP... maybe jhorwitz will have to edit it before publishing ;)
20:07 masak rakudo: my * = 5;
20:07 p6eval rakudo 577566: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2579 (src/classes/Role.pir:42)␤»
20:08 * moritz_ starts running around in circles, screaming at p6eval all the time
20:08 masak moritz_: that's not what I get locally. is something the matter with p6eval again?
20:08 masak moritz_: :/
20:10 moritz_ rakudo: "moep"
20:10 pugs_svn r25277 | lwall++ | [tryfile] move ok reporting from teststd into tryfile
20:10 p6eval rakudo 577566: RESULT«"moep"»
20:10 masak rakudo: my * = 5;
20:10 TimToady std: my $x; my $x
20:10 p6eval rakudo 577566: OUTPUT«Could not find non-existent sub my␤current instr.: '_block14' pc 84 (EVAL_15:43)␤»
20:10 p6eval std 25277: OUTPUT«can't create CORE.pad.store: Permission denied at Cursor.pm line 194␤FAILED 00:02 32m␤»
20:10 masak is the above declaration supposed to work?
20:11 masak moritz_: is p6eval on feather?
20:11 TimToady no
20:11 masak TimToady: ok. thanks.
20:11 moritz_ masak: no, on timtowtdi.org
20:11 TimToady my (*) = 5 should work though
20:11 TimToady iirc
20:11 moritz_ masak: do you want access?
20:11 masak rakudo: my (*) = 5;
20:11 p6eval rakudo 577566: OUTPUT«Could not find non-existent sub my␤current instr.: '_block14' pc 84 (EVAL_17:43)␤»
20:11 masak moritz_: wouldn't hurt, I guess.
20:11 * masak submits rakudobug
20:12 masak moritz_: I'm asking because viklund has trouble building Parrot on feather right now.
20:12 TimToady std: my $x; my $x
20:12 p6eval std 25277: OUTPUT«Potential difficulties:␤  Variable $x declared at line 1 is redeclared at /tmp/G89KBcIX7Y line 1:␤------> [32mmy $x; my [31m$x[0m␤ok 00:02 33m␤»
20:13 TimToady std: my $x;
20:13 p6eval std 25277: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/lY4jCd7Upq line 1:␤------> [32mmy $x;[31m[0m␤    expecting any of:␤      prefix or noun␤   statement end␤    whitespace␤FAILED 00:02 33m␤»
20:14 TimToady wow, so much for ^V^M  :)
20:15 TimToady std: my $x;my $x
20:16 p6eval std 25277: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/Q9pQnuI6U8 line 1:␤------> [32mmy $x;[31mmy $x[0m␤    expecting any of:␤ prefix or noun␤   statement end␤    whitespace␤FAILED 00:02 33m␤»
20:16 TimToady doesn't much like ^L either  :)
20:30 TimToady std: my $x;
20:30 p6eval std 25277: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/S20vaacQ19 line 1:␤------> [32mmy $x;[31m[0m␤    expecting any of:␤      prefix or noun␤   statement end␤    whitespace␤FAILED 00:02 33m␤»
20:39 mikehh joined #perl6
20:40 abra joined #perl6
20:41 mikehh Hi I just did a new checkout of parrot and a git clone of rakudo
20:41 mikehh The make spectest failed to do a checkout of pugs
20:42 mikehh I edited the makefile and it has now passed the spectest
20:42 masak mikehh: did you put Parrot inside the Rakudo dir?
20:43 mikehh other way round
20:44 mikehh it reported: svn co http:////svn.pugscode.org/pugs/t/spec t/spec
20:45 mikehh I edited the makefile to set this right
20:45 moritz_ mikehh: did you run 'perl Configure.pl' after the last git-pull?
20:45 moritz_ or (git clone)
20:45 moritz_ I thin pmichaud++ had fixed that problem
20:46 mikehh I did a new clone and then perl Configure.pl, make perl6
20:46 masak that should do it.
20:46 mikehh make spectest then failed until I edited the makefile
20:48 moritz_ so we have cases when the double slashes are removed, and others where they're not
20:48 mikehh It worked yesterday after a git pull
20:48 moritz_ sigh
20:48 Util as a work-around, I just did `svn co http://svn.pugscode.org/pugs/t/spec t/spec` (changed the 4 slashes into 2), then `make spectest`
20:48 Util It worked, about 1 hour ago.
20:49 moritz_ mikehh: could you please try to change the URL config/makefiles/root.in to use single slashes, and quote it? ie svn co "http://svn.pugscode.org/pugs/t/spec" t/spec
20:49 moritz_ mikehh: and then run Configure.pl again, and tell me if it works?
20:49 mikehh It worked fine when I edited the makefile, but it is being incorrectly generated
20:49 mikehh ok hold on
20:50 mikehh should i do a make clean first?
20:50 moritz_ yes
20:52 ispy_ joined #perl6
20:53 moritz_ in fact that doesn't even work here :(
20:53 masak hokay. I did the following on Parrot: svn co https://svn.parrot.org/parrot/trunk parrot; cd parrot; perl Makefile.PL; make
20:53 masak it fails.
20:53 moritz_ masak: that's bad.
20:53 masak moritz_: but reproducible.
20:54 moritz_ masak: I recommend #parrot instead :/
20:54 masak good idea.
20:54 moritz_ meh, there's also build/Makefile.in
20:56 Util masak: I made the same mistake - do not run Makefile.PL; it is a new addition for CPAN config only. Run Configure.PL instead!
20:56 masak Util: oki, thanks!
20:56 mikehh svn co http:////svn.pugscode.org/pugs/t/spec t/spec
20:58 moritz_ ok, I now have a fix that seems to work for both build models
21:00 dalek rakudo: 196ea50 | (Moritz Lenz)++ | build/Makefile.in:
21:00 dalek rakudo: quote URL in Makefile.in and use single slashes
21:00 dalek rakudo: This seems to work on linux for both build layouts, reports are welcome.
21:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​96ea505b0227160a3593df4ec8ad7bd0192c9b0
21:00 mikehh it comes from config/makefiles/root.in
21:00 moritz_ mikehh: I've just uploaded a fix... could you please 'git-pull', then perl Configure.pl, and try again?
21:02 pugs_svn r25278 | lwall++ | [STD] clarify non-declared message
21:03 mikehh ok that generates the cottect line in the makefile
21:03 mikehh correct
21:03 moritz_ mikehh: thank you for testing
21:06 vpace joined #perl6
21:07 mikehh Files=301, Tests=8918, 1309 wallclock secs ( 9.23 usr  2.33 sys + 2222.17 cusr 79.81 csys = 2313.54 CPU)
21:08 masak mikehh++
21:09 mikehh the make perl6 is now a lot faster - I was following the discussion on #parrot
21:10 jnthn Hmm. On Win32, the line
21:10 jnthn if (open my $PARROT_CONFIG, '-|', "$exe --dump") {
21:10 jnthn Seems to come out true even if $exe doesn't exist.
21:10 jnthn You get the error...later. Hmm.
21:11 moritz_ during close?
21:11 pugs_svn r25279 | lwall++ | [STD] catch call to non-existent .text method when bare $ param found
21:12 masak std: my ($) = 5
21:12 p6eval std 25278: OUTPUT«Can't call method "text" on an undefined value at STD.pm line 30961.␤FAILED 00:02 33m␤»
21:12 masak hee hee.
21:12 jnthn moritz_: No, it seems about here: while (<$PARROT_CONFIG>) {
21:12 masak p6eval: recompile!
21:12 moritz_ std: my ($x) = 5
21:12 p6eval std 25279: OUTPUT«ok 00:02 33m␤»
21:13 moritz_ jnthn: maybe just use `$cmd --dump` and check if it's empty?
21:13 moritz_ or add an eval { ... } block around it, or somthing other evil ;/
21:14 moritz_ anyway, tools/test_summary.pl works only in the "rakudo in languages/rakudo" setup
21:15 dalek rakudo: f202f7f | jnthn++ | Configure.pl:
21:15 dalek rakudo: Get Configure to work on Win32. open seems not to return false if $exe doesn't exist, this works around it somewhat. Cleaner solutions welcome, but this works.
21:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​202f7fbfd8cd7efe5833413307b2e40ed23adec
21:15 jnthn Phew. I'll be able to hack on Rakudo again now. ;-)
21:16 masak that's good news for us all.
21:16 jnthn masak: Tomorrow is Rakudo Day. :-)
21:16 masak jnthn: \o/
21:17 jnthn I have your list of most-wanted-tickets still. ;-)
21:17 masak jnthn: goodie. the first on that list is fixed already.
21:17 masak Util++
21:17 TimToady std: my ($) = 5
21:17 p6eval std 25279: OUTPUT«Can't call method "text" on an undefined value at STD.pm line 30961.␤FAILED 00:02 33m␤»
21:18 masak still not updated :)
21:18 Util :)
21:19 zamolxes joined #perl6
21:19 masak TimToady: we seem to need a way to force-update p6eval.
21:20 moritz_ masak: you have a way now
21:20 masak moritz_: indeed.
21:20 moritz_ std: my ($) = 5
21:20 p6eval std 25279: OUTPUT«ok 00:02 33m␤»
21:22 masak viklund++ # using infix:<X> when testing all layouts against all markup parsers in November
21:24 moritz_ ok, I git-pull'ed some changes, and now I want to get rid of those again
21:24 TimToady X is the "brute force" operator  :)
21:24 moritz_ so that they don't go into the main repo when I push again
21:25 moritz_ how do I do that?
21:25 masak moritz_: check out the last commit you liked.
21:25 masak rename it 'master' :)
21:26 moritz_ masak: so do I need to manually identify which the last "nice" commit was?
21:26 masak I think so.
21:26 moritz_ should I generally switch to a branch before pulling stuff?
21:26 masak moritz_: if you're unsure whether you want the changes, you shouldn't pull.
21:27 dalek rakudo: 50e135b | jnthn++ | Configure.pl:
21:27 dalek rakudo: Oops, didn't mean to hard-code an unrequired .exe suffix, was just from trying to hunt down the problem. Works fine without it.
21:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​0e135b0e0b6bc721164734b9557e767b5c44476
21:27 masak you shoult fetch, inspect the changes, and then merge.
21:27 avar If that's your workflow it's often better to get into the habit of doing git fetch + git merge manually
21:27 moritz_ ok
21:27 moritz_ I'll just push petdance's changes for now ;-)
21:27 moritz_ they look quite sane anyway
21:27 dalek rakudo: 58d5f2c | (Moritz Lenz)++ | Configure.pl:
21:27 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
21:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​8d5f2c10cebe249a03b0f01e7b1d2b4f35e8c1e
21:28 masak 'night, people.
21:28 masak tomorrow is Rakudo day.
21:28 moritz_ good night masak
21:28 avar It's very nice that parrot stuff is moving to git too:)
21:28 IllvilJa joined #perl6
21:29 moritz_ well, at least rakudo stuff for now ;-)
21:29 Util night, masak
21:29 alester joined #perl6
21:29 moritz_ avar: and I slowly start liking git's ways
21:30 avar Well, just as long as it's distributed and not cvs/svn/perforce
21:43 dalek rakudo: e73c958 | (Moritz Lenz)++ | CREDITS:
21:43 dalek rakudo: updated my CREDITS entry; removed svn $Id$
21:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​73c9586051a205a84d35f0629ae3a96fe2d69c7
21:45 pugs_svn r25280 | lwall++ | [STD] disallow post_contraint on bare variable declaration
21:55 toddr joined #perl6
21:56 ispy_ left #perl6
22:03 Whiteknight joined #perl6
22:04 toddr left #perl6
22:49 ilbot2 joined #perl6
22:49 Topic for #perl6is now http://pugscode.org/ http://planetsix.perl.org/ | nopaste: http://sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: http://irc.pugscode.org/ | ~315 days 'til Xmas
22:53 pugs_svn r25281 | moritz++ | [irclog] add a whitespace while logging topic changes
22:58 Whiteknight joined #perl6
22:59 wolverian joined #perl6
23:01 pugs_svn r25282 | lwall++ | [tree-node-parameters.t] post_constraint not allowed outside signature
23:03 sahadev left #perl6
23:48 mikehh joined #perl6
23:58 wolverian joined #perl6

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

Perl 6 | Reference Documentation | Rakudo