Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-01-05

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:02 aindilis joined #perl6
00:22 Limbic_Region joined #perl6
00:30 eric256 joined #perl6
00:39 hercynium joined #perl6
00:39 alanhaggai joined #perl6
00:42 Chillance joined #perl6
00:44 azawawi @tell masak i finally got it working using your script as indexer... Padre::Plugin::Perl6 now shows you the S29 function documentation when you hit F2 over a function (or a word)
00:44 lambdabot Consider it noted.
00:49 j1n3l0 joined #perl6
00:59 DarkArkon joined #perl6
00:59 DarkArkon left #perl6
01:26 pdcawley joined #perl6
01:39 azawawi @tell masak Padre::Plugin::Perl6 + S29-Functions.pod integration, http://padre.perlide.org/wiki/Screenshots
01:39 lambdabot Consider it noted.
01:48 jrockway joined #perl6
01:56 Jedai joined #perl6
01:59 cspencer joined #perl6
02:04 alanhaggai_ joined #perl6
02:08 hercynium joined #perl6
02:18 alc joined #perl6
02:20 c9s_ joined #perl6
02:21 Jedai joined #perl6
02:28 alester joined #perl6
02:52 Eevee joined #perl6
03:10 sail0r joined #perl6
03:11 Jedai joined #perl6
03:17 sail0r left #perl6
04:20 Jedai joined #perl6
04:34 cspencer joined #perl6
04:41 Jedai joined #perl6
04:45 Jedai joined #perl6
05:02 araujo joined #perl6
05:17 jklai joined #perl6
05:27 Jedai joined #perl6
05:27 jklai left #perl6
05:34 cspencer_ joined #perl6
05:50 |jedai| joined #perl6
05:54 alc joined #perl6
05:55 xinming joined #perl6
06:11 alanhaggai_ joined #perl6
06:24 meppl joined #perl6
06:49 ejs joined #perl6
07:01 maerzhase joined #perl6
07:03 pugs_svn r24759 | pmichaud++ | typo fix.
07:05 DemoFreak joined #perl6
07:07 maerzhase joined #perl6
07:08 maerzhase joined #perl6
07:20 c1sung joined #perl6
08:06 alanhaggai joined #perl6
08:07 vixey joined #Perl6
08:08 ashizawa joined #perl6
08:16 elmex joined #perl6
08:23 |jedai| joined #perl6
08:52 iblechbot joined #perl6
08:55 |jedai| joined #perl6
09:02 lambdabot joined #perl6
09:06 lambdabot joined #perl6
09:09 ejs1 joined #perl6
09:26 ChrisDavaz joined #perl6
09:50 Matt-W Am I right in thinking that ultimately, things like @list>>.dosomething() could potentially autothread, and thus the various .dosomething() calls could happen (a) simultaneously and (b) in undefined order?
09:59 braceta joined #perl6
10:01 |jedai| joined #perl6
10:04 Tene Matt-W: yes, that's right.
10:05 Tene Matt-W: if you want to guarantee order, you need to use a different construct.
10:10 ft joined #perl6
10:25 lambdabot joined #perl6
10:29 funktio joined #perl6
10:30 Matt-W Tene: so .dosomething() for @list; would be order-preserving?
10:33 Ehtyar joined #perl6
10:41 mberends joined #perl6
11:07 ruoso joined #perl6
11:11 |jedai| joined #perl6
11:12 maerzhase joined #perl6
11:15 duke_leto joined #perl6
11:18 mberends left #perl6
11:27 Lorn joined #perl6
11:27 donaldh joined #perl6
11:33 mberends joined #perl6
11:45 masak joined #perl6
11:52 jferrero joined #perl6
12:01 pugs_svn r24760 | ruoso++ | [smop] default block signature defines $¿self.
12:01 pugs_svn r24760 | ruoso++ | [mildew] knowhow attributes work!
12:16 * ruoso just realized we need "bvalue"s for a lot of things...
12:25 ludan joined #perl6
12:28 braceta joined #perl6
12:33 alexn_org joined #perl6
13:04 ejs joined #perl6
13:13 moritz_ s1n: I don't have many tickets open, but I usually look through open tickets by others and see if their problem is being tested somewhere in the test suite. If not, I add it somewhere, and reply to the ticket. You could certainly help with that task.
13:14 moritz_ Matt-W: aye, that would  preseve order
13:17 Matt-W moritz_: cheers, thanks
13:17 Matt-W Perl 6 is more interesting than work
13:24 moritz_ I can very much confirm that ;-)
13:24 ruoso and that actually can harm you ;)
13:25 Matt-W Well I was just talking to a colleague about our in-house test-running language
13:25 Matt-W And how I'd like to rip apart the interpreter and do it properly
13:25 silenius joined #perl6
13:25 Matt-W Maybe on Parrot...
13:25 Matt-W Although that would depend, what's the native library call interface like
13:27 mberends if you could adapt it to TAP, I have a small rakudo based Test::Harness and prove util that you could try
13:28 Matt-W TAP?
13:28 moritz_ "Test Anything Protocoll"
13:29 mberends exactly, what Perl 5 and 6 use for testing
13:29 kidd joined #perl6
13:29 ruoso I've been using TAP+Test::Harness to test things in the most diverse languages
13:29 ruoso even C
13:30 Matt-W Oh
13:30 mberends yes it's that good. See Perl 5's Test::Tutorial
13:30 Matt-W I may be after something different
13:32 moritz_ TAP is just the output format of the tests
13:38 duke_leto left #perl6
13:41 Matt-W Yes, I'm looking for something different
13:41 Matt-W This is a tool we use for testing, for scripting one of our libraries
13:42 Matt-W But it uses an in-house, horrible scripting language
13:42 Matt-W would be nice to do it in Perl or something
13:42 Matt-W preferably Perl
13:42 Matt-W ah well, they'll never let me, the management have their eye on some horrible Java thing
13:44 eric256 left #perl6
13:55 |jedai| joined #perl6
14:02 pugs_svn r24761 | ruoso++ | [mildew] implements "has $.a"!
14:03 ruoso for now mildew routines are always "is rw" due to the way capture works...
14:04 Matt-W What's mildew?
14:04 ruoso mildew: $OUT.print("Hello from mildew")
14:04 p6eval mildew: OUTPUT«Use of uninitialized value in string eq at src/VAST/variable.pm line 9.␤Hello from mildew»
14:04 Matt-W It's a Perl 6 implementation then
14:04 ruoso Matt-W, mildew is a STD compiler backend targetting SMOP
14:05 Matt-W hmm
14:05 ruoso it uses STD as the parser, and SMOP as the runtime
14:05 Matt-W I hate to say it
14:05 Matt-W but what's SMOP
14:05 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop
14:05 * Matt-W reads
14:06 Matt-W Oh my
14:07 ruoso Matt-W, to make it easier to understand, take a look at v6/mildew/t in the pugs repo
14:07 Matt-W As if Parrot didn't make my head spin enough
14:07 Matt-W It is good to see multiple apparently-healthy implementations of Perl 6 appearing though
14:10 alanhaggai joined #perl6
14:10 ruoso std: unless 1 { } elsif 2 { } else { }
14:10 p6eval std 24761: OUTPUT«############# PARSE FAILED #############␤Syntax error at /tmp/86sxV3H2ie line 1:␤------> [32munless 1 { } [31melsif 2 { } else { }[0m␤    expecting terminator␤00:05 82m␤»
14:11 ruoso std: unless 1 { } elsif 2 { } else {...}
14:11 p6eval std 24761: OUTPUT«############# PARSE FAILED #############␤Syntax error at /tmp/YfmchRDIXZ line 1:␤------> [32munless 1 { } [31melsif 2 { } else {...}[0m␤    expecting terminator␤00:05 82m␤»
14:11 ruoso std: if 1 { } elsif 2 { } else {...}
14:11 p6eval std 24761: OUTPUT«00:05 82m␤»
14:11 ruoso cool... unless can't have "elsif"
14:11 ruoso std: unless 1 { } else {...}
14:11 p6eval std 24761: OUTPUT«############# PARSE FAILED #############␤unless does not take "else" in Perl 6; please rewrite using "if" at /tmp/FozsmnYM9l line 1:␤------> [32munless 1 { } [31melse {...}[0m␤00:05 82m␤»
14:11 ruoso coo
14:11 ruoso l
14:12 Matt-W good
14:12 Matt-W it shouldn't
14:12 Matt-W unless...else always made me a bit uncomfortable too
14:15 |jedai| joined #perl6
14:20 xinming_ joined #perl6
14:21 pugs_svn r24762 | ruoso++ | [mildew] implements unless
14:21 ruoso mildew turns "unless 1 {...}" into "if 1 {} else {...}"
14:22 Matt-W well if you can't have else clauses, that seems a nice sensible way to do it
14:22 Matt-W I remember being kind of surprised to see that Rakudo does it by making a PAST 'unless' node
14:23 Matt-W since that pushes awareness of unless down into Parrot... it's all more closely bound together than I expected
14:24 * ruoso close to compile v6/smop/src-s1p/Multi.pm
14:44 jnthn Matt-W: unless PAST nodes are actually a couple of line wrapper around PAST if nodes, IIRC. :-)
14:44 Matt-W jnthn: I'm sure they are, I was just surprised the transform wasn't done in Rakudo's action method
14:44 jnthn Stuff tends to go into PCT if it's felt that more than one language will make use of it.
14:45 jnthn But yes, it woulda been trivial to do it at a higher level too.
14:45 ruoso std: my @foo = loop { 1 };
14:45 p6eval std 24762: OUTPUT«Unknown routines:␤     loop called at 1 ␤00:05 86m␤»
14:46 ruoso cool... loop can't be rvalue... that makes things eaiser
14:46 Matt-W jnthn: and there are other languages with unless statements, so its inclusion there does make sense
14:46 jnthn Aye, I think so.
14:47 jnthn Note that it's not strictly Parrot that actually knows about unless here, just the Parrot Compiler Toolkit.
14:47 Exodist joined #perl6
14:47 jnthn Which is built on top of Parrot.
14:47 Matt-W Good point
14:47 Matt-W I'm still a little hazy on some of the details of this
14:47 Matt-W Which is why half the time I can never find the code that does what I want to find
14:47 jnthn There's quite a lot to get into your head, yes.
14:48 jnthn I've been through that process. :-)
14:48 Matt-W I used to follow the design process really closely
14:48 Matt-W but then I sort of drifted away again
14:48 Matt-W And now things are getting really interesting with implementation stuff, but there's an awful lot to catch up on
14:48 jnthn *nod*
14:48 Matt-W Although it's quite wonderful sometimes to try something and have it actually work
14:49 Matt-W You've all done a cracking job :)
14:50 Matt-W I'm going to keep asking questions though
14:50 eric256 joined #perl6
14:51 Matt-W Although not right now, I'm at work and they're not interested in Perl 6 :(
14:52 pugs_svn r24763 | ruoso++ | [mildew] supports accessing $.foo inside a method.
14:52 pugs_svn r24763 | ruoso++ | [mildew] supports loop statement_control
14:52 |jedai| joined #perl6
14:52 * eric256 finds that work is only ever interested in results though they pretend to care about process ;)
14:54 mberends process gives best long term results, but business is often short term
14:54 Matt-W Too true
14:55 Matt-W We try to point out that it's short-term thinking that got us in this mess to start with, but...
14:55 eric256 mberends: true..unless your boss thinks "open source" is a bad word ;) i've finaly convinced them that they don't care what i use as long as it works
14:55 Matt-W eric256: we got approval to use Python a few months ago... for running one script only. We're not allowed to write anything else in Python at all, or run anything else we might happen to have.
14:56 Matt-W fun, eh?
14:56 eric256 Matt-W: thats a pain in the arse
14:56 Exodist joined #perl6
14:56 eric256 i'm surprised they let you on IRC
14:56 Matt-W I didn't ask
14:56 * Matt-W whistles
14:56 eric256 my boss taught me to as for forgivness rather than permission, who am i to argue?
14:56 Matt-W the server I run my irc client on happens to listen for SSH on port 443 on a secondary IP
14:57 Matt-W and what do you know, putty can connect to that via the web proxy, which thinks I'm doing an https session
14:59 eric256 lmao
15:00 mberends similar to some of http://www.tldp.org/HOWTO/text/Firewall-Piercing
15:00 Matt-W basically yes
15:01 Matt-W it's really quite simple to do things like that when you have sudo on the remote server
15:02 mberends give Matt-W an inch, and he takes a yard ;)
15:02 Matt-W kind of hoping none of you end up being a future employer now
15:04 eric256 pmichaud: your website www.pmichaud.com seems a little dated ;) lol last entry is in 2006
15:04 pmichaud yes, I know.  I've been too busy writing Perl 6 to update my site.
15:04 eric256 not that i don't have plenty of similar cases ;) just followed the link off of rakudo.org
15:05 pmichaud (unless nodes) -- yes, I know that HLLs could do the if/unless transform easily enough, but there are two reasons for having it in PCT
15:05 pmichaud (1) the code to handle it is fairly simple
15:05 pmichaud (2) unless is also used to handle infix:<!!>
15:05 Matt-W pmichaud: don't let him distract you! Write more Rakudo!
15:05 pmichaud er, infix:<||>
15:05 eric256 i posted a link to github on your WSG post BTW...but i think i misunderstood the URL option and should have put the link in my actual comment
15:06 pmichaud by having the 'unless' type, infix:<||>  becomes easily implementable as
15:06 pmichaud proto infix:<||> is pasttype('unless') { ... }
15:06 pmichaud otherwise it's a _real_ pain to handle that one.
15:07 Matt-W infix:<||> is still short-circuiting logical or?
15:07 pmichaud yes
15:07 Matt-W yes that does make sense
15:07 Matt-W very cunning
15:07 pmichaud and _lots_ of languages have short-circuit or
15:07 pmichaud in fact, it was the short-circuit operators that drove 'unless' more than Perl.
15:08 pmichaud afk for a bit.
15:08 Matt-W short-circuit operators are wonderful things to have
15:10 * ruoso just realized mildew still doesn't support named parameters... *sigh*
15:11 Matt-W the mixture of positional, optional and named is a bit tricky, I gather
15:11 pugs_svn r24764 | ruoso++ | [mildew] put signature-named.t in ROADMAP
15:11 ruoso Matt-W, not really, considering STD already parses it
15:11 ruoso ;)
15:11 ruoso and SMOP already supports it as well
15:11 ruoso it's just a matter of turning STD VAST into mildew AST
15:12 ruoso which is just boring work
15:12 Matt-W well wehn you put it like that it doesn't sound like anywhere near as hard a problem
15:12 ruoso Matt-W, if you take a look at v6/mildew/src/VAST/*.pm
15:13 ruoso you'll see how easy it actually is
15:13 eric256 can we start a glossary somewhere? STD, SMOP, VAST, mildew, AST...lol
15:13 ruoso eric256, I think irc.pugscode.org already takes care of that ;0
15:14 ruoso ;)
15:14 ruoso alright.. not of all of them
15:14 ruoso maybe moritz_ could add some more acronyms to the irc log dictionary
15:21 Matt-W ruoso: wow it's all in Perl 5!
15:22 ruoso Matt-W, except for STD
15:22 Matt-W well yes
15:22 ruoso which is all in Perl 6
15:22 Matt-W that must be confusing
15:22 ruoso not really... mildew really receives a blessed tree-like structure
15:22 ruoso and generate a new blessed tree-like structure
15:23 Matt-W mmm tree transforms
15:23 Matt-W sounds like a job for Haskell :P
15:24 vixey why settle with lousy haskell when you can have XSLT!
15:24 Matt-W That's what I really should've done a few years back
15:24 Matt-W I knew Haskell, I should've got involved with pugs
15:24 ruoso we even use haskell
15:25 ruoso m0ld compiler is written in haskell
15:25 Matt-W I'm a little rusty, but I still like it
15:25 Matt-W they don't let me use that at work either
15:25 ejs joined #perl6
15:26 ruoso Matt-W, anyway... p5 is actually quite straight forward to do tree transforms
15:26 eric256 m0ld!!! another word ;)
15:26 ruoso as long as the incoming tree is a set of blessed items
15:26 ruoso eric256, m0ld is the smop lowlevel language (like PIR)
15:27 ruoso except that m0ld only refers to a single frame
15:27 Matt-W ruoso: yeah it is pretty good at it
15:27 eric256 you ciould have said that in latin and i'd have gotten the same out of it ;)
15:27 Matt-W I was asking all this earlier
15:28 Matt-W what's mildew... what's SMOP... what's that bright thing in the big blue room...
15:28 ruoso eric256, heh... basically, m0ld is a bootstrapping language, that has a very limited syntax and no context at all
15:28 ruoso it has only 4 different constructs
15:28 eric256 where do i read about it? or find it? is it in the parrot repo too?
15:28 ruoso eric256, no, in the pugs repo
15:29 ruoso eric256, besides the smop wiki page in perlfoundation.org
15:29 |jedai| joined #perl6
15:30 ruoso you can check out the pugs repo and take a look at v6/smop and v6/mildew
15:31 pugs_svn r24765 | ruoso++ | [smop/src-s1p] Multi.pm uses the capture with the appropriate | operator
15:32 pugs_svn r24766 | pmichaud++ | [t/spec]:  Fix erroneous test in S12-class/parent_attributes.t .
15:42 * ruoso lunch &
15:42 eric256 man i read smop and mold and i'm not surei  know any more than 20 minutes ago
15:45 Matt-W Well it must be more pleasant than what I've been doing for the last 20 minutes
15:46 eric256 hehe yea.. i need a picture ;) with perl6 and rakudo and smop and mold and s1p and PGE and parrot and STD and how this all relates
15:47 Matt-W well as I understand it, rakudo and PGE and parrot make one implementation of perl 6, and smop, m0ld, s1p and STD make another...
15:50 eric256 actualy if there is an opensource flowchart program and someone could tutor me i'd be happy to work on some sort of flowchart + wiki page
15:50 eric256 might help me and others figure this thing out ;)
15:51 Matt-W you can draw flowcharts using Dia, although it's not quite as easy as a dedicated flowchart program might be
15:53 jhorwitz joined #perl6
15:55 Matt-W hurrah! nearly home time!
15:55 Matt-W &
16:02 meppl joined #perl6
16:03 ludan joined #perl6
16:04 stephens joined #perl6
16:08 km2 joined #perl6
16:11 c9s_ joined #perl6
16:15 eric256 rakudo: my $test = "hell0"; say $test.replace("0","o").WHAT;
16:15 eric256 rakudo: my $test = "hell0"; say $test.replace("0","o").WHAT;
16:15 p6eval rakudo 34991: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 104 (EVAL_12:50)␤»
16:15 |jedai| joined #perl6
16:19 masak joined #perl6
16:20 ludan joined #perl6
16:25 eternaleye joined #perl6
16:25 masak something.
16:28 masak @tell azawawi re screenshots: wow! now I _really_ need to get my act together about S29. if someone asks, tell them that S29 needs a lot of love, and that people are welcome to help.
16:28 lambdabot Consider it noted.
16:31 masak std: my @foo = do loop { 1 };
16:31 p6eval std 24766: OUTPUT«00:05 86m␤»
16:34 REPLeffect joined #perl6
16:35 masak pmichaud: please explain why infix:<xor> isn't a relational op.
16:39 hercynium joined #perl6
16:39 pugs_svn r24767 | moritz++ | [t] and [t/spec]
16:39 pugs_svn r24767 | moritz++ |  * more tests for slurpy args + is copy/is rw
16:39 pugs_svn r24767 | moritz++ |  * moved macro test to spec/
16:39 pugs_svn r24767 | moritz++ |  * moved closure trait tests to spec/
16:39 pugs_svn r24767 | moritz++ |  * add tests for hygienic macros
16:39 pugs_svn r24767 | moritz++ |  * remove some is($something, undef) instances, ack++
16:39 pugs_svn r24767 | moritz++ |  * moved most tests from examples/99problems to spec/integration/99problems*
16:39 pugs_svn r24767 | moritz++ |    and merged ten each into one file; solved problems 55, 57, 59.
16:39 pugs_svn r24767 | moritz++ |  * moved lexical_subs.t to spec/
16:39 pugs_svn r24767 | moritz++ |  * more tests for Unicode string lengths
16:39 pugs_svn r24767 | moritz++ |  * merge most of map_*.t into map.t
16:39 pugs_svn r24767 | moritz++ |  * moved a regex test to spec/, deleted a mostly wrong/pointless regex test
16:39 pugs_svn r24767 | moritz++ |  * moved oo construction and destruction tests to spec/
16:39 pugs_svn r24767 | moritz++ |  * moved all tests in oo/roles/ and oo/traits/ to spec/
16:39 pugs_svn r24767 | moritz++ |  * fudged pointy.t for rakudo
16:40 masak we need an expression for this kind of occurrence... 'moritzbomb'? 'moritz attack'? 'massive moritz happening'?
16:40 masak moritz_++
16:40 masak moritz++
16:41 pmichaud masak: it's not testing a relation.  It's a logical op.
16:41 pmichaud relational ops compare relationships between two values.
16:41 masak pmichaud: doesn't that depend on the use and nothing else? xor returns a Bool.
16:41 pmichaud actually, xor does not return a bool.
16:41 masak oh?
16:41 pmichaud 'xyz' xor False  returns a Str
16:42 masak ah, right.
16:42 pmichaud similar to how  'and' and 'or' don't return Bool.
16:42 masak aye.
16:42 masak ok, I see.
16:42 masak then it doesn't count, no.
16:42 pmichaud it's really easy to confuse  "binary op", "relational op", "logical op", and "boolean op"  :-)
16:43 masak and there are no definitions in the synopses, as far as I can see.
16:43 masak just usages :)
16:43 moritz_ masak: add that to your laundry list ;-)
16:44 masak moritz_: it falls somewhat outside S29, my adopted child.
16:45 masak I wouldn't know where to add it, honestly.
16:45 masak s/honestly/to be honest/
16:45 masak moritz_: I thought you wouldn't be back until Thursday.
16:45 masak moritz_: also, where are the S29 commits you promised? :)
16:47 moritz_ masak: found a WLAN
16:48 masak \o/
16:50 rakudo_svn r34997 | moritz++ | [rakudo] track file merges/moves in t/spectest.data. Also add a few more test
16:50 rakudo_svn r34997 | moritz++ | files.
16:50 azawawi joined #perl6
16:51 moritz_ masak: or to be more specific, I helped somebody to set up a wlan + router, and now I may use it
16:51 masak :)
16:51 c9s_ joined #perl6
16:53 pugs_svn r24768 | particle++ | [S19] provide rules for negated single-character options; rearrange list items for clarity
16:53 azawawi hi
16:53 lambdabot azawawi: You have 1 new message. '/msg lambdabot @messages' to read it.
16:53 azawawi @messsages
16:53 lambdabot masak said 25m 29s ago: re screenshots: wow! now I _really_ need to get my act together about S29. if someone asks, tell them that S29 needs a lot of love, and that people are welcome to help.
16:54 masak I'm still here, but I'm about to leave.
16:54 azawawi hi masak
16:54 azawawi hi moritz_
16:54 masak azawawi: y0
16:54 PZt joined #perl6
16:55 pugs_svn r24769 | moritz++ | [S29] document isa, can, does, perl and clone
16:55 masak ...and there it is!
16:55 masak moritz_++
16:55 masak moritz_: I will now claim S29 for a couple of days, if that's ok.
16:56 masak by which I mean 'feel free to make changes, but there might be conflicts ahead in case you do'
16:57 masak the additions look great, by the way.
16:57 masak I hope to be able to keep up that standard.
16:57 azawawi masak: cool, meanwhile i can make the Perl6 Padre plugin fetch it and store a local S29 copy
16:57 masak azawawi: sounds like a plan.
16:58 masak azawawi: make sure you take note of all the things you find wanting in S29.
16:58 azawawi i think it is best to open the browser instead of the message box...
16:58 masak azawawi: I thought so as well.
16:58 masak azawawi: message boxes are so 1995.
16:59 masak anyway, gotta go.
16:59 azawawi masak: but they are the easiest lol
16:59 azawawi masak: cya
16:59 masak azawawi: :)
16:59 azawawi moritz_: can we upgrade Moose and Class::MOP to latest?
16:59 azawawi moritz_: through aptitude ofcourse
17:04 eric256 arg blue sscreen of death in my windows vm machine
17:05 |jedai| joined #perl6
17:08 GitHub109 joined #perl6
17:08 GitHub109 perl6-examples: 3Eric Hodges master0 SHA1-5af9dab
17:08 GitHub109 [WSG] Adding answer to Adv. #5 2008
17:08 eric256 can any one run wsg/advanced-2008/event005-eric256.pl from the perl6-examples repo for me? i started getting a seg fault on it for no apparent reason
17:08 GitHub109 http://github.com/eric256/perl6-examples/commit/5af9dab1d50412db43911ff891d6459cb822d7d0
17:09 GitHub109 left #perl6
17:09 azawawi eric256: using latest rakudo?
17:09 eric256 i'm rebasing now, but i rebased about 10 hours ago...i'll know in a few minutes
17:10 DemoFreak joined #perl6
17:10 azawawi eric256: gonna try it now... same here...
17:11 jan_ joined #perl6
17:15 azawawi eric256: where can i find perl6-examples?
17:16 eric256 http://github.com/eric256/perl6-examples/
17:18 pasteling "azawawi" at 212.38.139.31 pasted "$ ./perl6 event005-eric256.pl" (14 lines, 1K) at http://sial.org/pbot/34227
17:19 azawawi oops
17:21 azawawi yup segmentation fault
17:21 azawawi with the latest parrot & perl6
17:22 bsdperl joined #perl6
17:25 eric256 same here... i don't get it
17:26 eric256 size of the dictionary maybe?
17:26 azawawi dont know...
17:26 eric256 oddly i have a different script that uses the same line to load that dictionary...so maybe thats not it
17:27 eric256 yep...changing the length to 6 instead of 5 gets ride of the segfault
17:30 dwhipp joined #perl6
17:31 dwhipp pugs: my @a = 1..9; for @a -> @b[3] { say @b }
17:31 p6eval pugs: OUTPUT«*** ␤    Unexpected "["␤    expecting word character, "?", "!", trait, "=", default value, "-->" or block␤    at /tmp/A9vv5p9vdU line 1, column 27␤»
17:31 dwhipp std: my @a = 1..9; for @a -> @b[3] { say @b }
17:31 p6eval std 24769: OUTPUT«00:05 87m␤»
17:31 dwhipp rakudo: my @a = 1..9; for @a -> @b[3] { say @b }
17:31 p6eval rakudo 34997: OUTPUT«Statement not terminated properly at line 1, near "-> @b[3] {"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
17:31 pugs_svn r24770 | azawawi++ | [S:H:P6] updated to version 0.0297. Gonna release it now to CPAN.
17:31 pugs_svn r24770 | azawawi++ | [S:H:P6] updated to latest STD.pm and perl6.vim
17:32 ruoso joined #perl6
17:32 Student joined #perl6
17:34 ruoso Hello!
17:35 ruoso Matt-W, eric256, STD is not SMOP-specific... STD is *the* standard Perl 6 grammar, larry implemented a grammar->p5 compiler, and the result is STD.pmc
17:36 ruoso s1p was supposed to be the "first stage" language, which would be a subset of Perl 6,
17:37 ruoso but s1p in the end was not needed... we're already working for full Perl 6
17:37 ruoso but the concept of "s1p" as being the bootstrapping process
17:37 ruoso remaisn
17:38 ruoso SMOP supports the concept of "Polymorphic Eval", which means that it can support several interpreters co-running
17:38 ruoso the first interpreter was SLIME
17:39 ruoso then pmurias implemented Mold
17:39 ruoso SLIME used the sm0p mini-language
17:39 xinming joined #perl6
17:39 ruoso Mold uses the m0ld mini-language
17:40 ruoso mildew is the STD->m0ld compiler
17:41 |jedai| joined #perl6
17:44 xinming__ joined #perl6
17:52 eric256 so...STD actual takes perl6 code and make it into perl5 code?
17:52 eric256 could it then eventualy target parrot? or something else?
17:53 ruoso eric256, STD takes Perl 6 code and turns it into a parse tree
17:53 ruoso eric256, yes, it could target parrot, for sure
17:59 ruoso eric256, there's gimme5 which converts STD.pm to STD.pmc
18:07 eric256 ruoso: thanks. sorry reading about the Church of All worlds..  not realy sure how anyone got from Heinlein to this crap
18:07 eric256 lol
18:18 Psyche^ joined #perl6
18:27 pugs_svn r24771 | moritz++ | [t/spec] test for RT #61868 (slicing with empty range)
18:28 moritz_ uhm, wrong ticket number in commit msg
18:28 moritz_ should have been 61842
18:36 pugs_svn r24772 | moritz++ | [t/spec] really test for #61868 this time
18:57 rindolf joined #perl6
19:01 dwhipp eric256: Q re github (I've not used git before)
19:02 dwhipp I cloned the perl6-examples and added a few files
19:02 dwhipp how do I push them back?
19:03 dwhipp (they're committed to dwhipp/perl6-examples)
19:03 eric256 then you send me a pull request
19:03 eric256 or just let me know and i'll pull them
19:04 eric256 otherwise you have to pull down "git clone git@github.com:eric256/perl6-examples.git " instead of yours
19:04 eric256 and push changes directly to that, i think i made you a collaborator already
19:05 dwhipp how do I send you a pull request? (or have I already done so by gives you my github path?)
19:05 eric256 i already pulled it for you, i have a mangment space that shows all forks and their commits,  so i pulled in all pending fork changes
19:06 dwhipp thx
19:06 eric256 np. you probably want to use the command above and then you can push directly into my branch without waiting for me to pull it. i don't mind either way though
19:20 dwhipp I keep making the same typo :-( : "$txt =$*IN" -- which isn't a syntax error
19:21 dwhipp perhaps we should parse assignment only with consistent whitespace surrounding it?
19:21 ruoso rakudo: my $ace = 1 | 11; my $seven = 7; my @hand = $ace xx 3, $seven; my $j = [+] @hand; say $j.perl;
19:21 p6eval rakudo 35002: OUTPUT«any(any(any(10, 20), any(20, 30)), any(any(20, 30), any(30, 40)))␤»
19:21 ruoso rakudo: my $ace = 1 | 11; my $seven = 7; my @hand = $ace xx 3, $seven; my $j = [+] @hand; say $j[0]
19:21 p6eval rakudo 35002: OUTPUT«elements() not implemented in class 'Junction'␤current instr.: 'postcircumfix:[ ]' pc 1683 (src/classes/Positional.pir:108)␤»
19:21 pugs_svn r24773 | moritz++ | [t/spec] unfudge a few tests, found by autounfudge
19:21 ruoso so it does parse as expected ;)
19:22 ruoso dwhipp, I've just replied to your mail...
19:22 ruoso in summary, Junctions could provide a list API for its members
19:25 ruoso rakudo: my $a = 1|11; say $a.^methods
19:25 p6eval rakudo 35002: OUTPUT«Method 'methods' not found for invocant of class 'P6metaclass'␤current instr.: 'parrot;Perl6Object;!.^' pc 1181 (src/classes/Object.pir:725)␤»
19:25 ruoso pugs: my $a = 1|11; say $a.^methods
19:25 p6eval pugs: OUTPUT«*** No such method in class Class: "&methods"␤    at /tmp/K0OnzXJ87z line 1, column 19 - line 2, column 1␤»
19:25 ruoso hm
19:26 dwhipp I don't think that "$junction.elements" (or the implicit variation of that that you propose) is correct
19:26 dwhipp what if it's a "none" junction?
19:27 moritz_ .elems is reserved for the number of elements
19:27 moritz_ maybe .values, or I heard that .eigenstates was in the discussion
19:27 dwhipp I suggest using an operator because then you get to say how you're observing it
19:27 dwhipp "eigenvalues" is an private method in the Rakudo implementation
19:28 dwhipp I think it's good to keep it private
19:28 ruoso why?
19:28 ruoso (besides using a exotic name)
19:28 dwhipp because it's semantics aren't correct
19:28 dwhipp A junction can be compound
19:29 pugs_svn r24774 | particle++ | [S19] note behavior of clustered options with required values
19:29 ruoso dwhipp, but if you're introspecting a junction, you are supposed to know what you're doing
19:29 dwhipp but I don't want to introspect
19:30 ruoso you do...
19:30 dwhipp I just want to know what the "value" is
19:30 ruoso hm?
19:30 dwhipp Like when in quantum mechanics a hermitian operator defines how you want to "observe" the wave function
19:32 dwhipp Actually, "the value" is not a well defined concept
19:32 dwhipp so you need to supply the context of "the value"
19:32 moritz_ quantum mechanics is greatly overrated ;-)
19:33 dwhipp as a programming language feature, perhaps
19:33 dwhipp but p6 does have junctions -- albeit not Quantum::Superpositions
19:33 dwhipp no implicit collapse is fine
19:34 dwhipp but explicit feels necessary (to me)
19:34 TimToady we can build any operations into Junctions that we like over time; we just arrive at Junction operations by ordinary dispatch rules
19:34 TimToady but for now, nearly all operators should autothread junctions
19:34 dwhipp We would still need methods to introspect the junction in that case
19:34 dwhipp that would essential expose a (virtual) AST
19:34 moritz_ dwhipp: note the smiley in my statement above; I spend most of the time of my diploma thesis working with QM concepts
19:35 TimToady introspection is fine, but must be defined with unlikely-to-be-used operators
19:35 TimToady hence, .eigenstates and such
19:35 TimToady or as I said earlier, eigen<mumble>  :)
19:35 Limbic_Region joined #perl6
19:36 TimToady but mere mortals will almost always expect junctions to autothread on ordinary operators
19:36 mncharity joined #perl6
19:36 dwhipp yes, I really don't want to have to use exotic introspection to do simple things
19:36 ruoso TimToady, does that include plain method invocation?
19:36 dwhipp though they would at least allow friendly operators to be created in user-space
19:36 TimToady but there's no magic to junctions themselves as a type, just where they happen to sit in the dispatch hierarchy
19:37 TimToady yes, it includes plain method invocation
19:37 TimToady autothreading is done by Object noticing that Junction didn't handle it
19:37 ruoso so $junction.foo should autothread
19:37 TimToady unless Junction defines method foo
19:37 ruoso right...
19:38 TimToady which is why we should pick unusual names for Junction methods
19:38 ruoso I didn't get the other statement
19:38 ruoso what do you mean by "autothreading is done by Object"?
19:38 ruoso I was thinking autothreading was done by the junction itself
19:38 TimToady nope
19:38 ruoso (and by the multis that have Junction in the signature)
19:39 TimToady but we get to the routines by not matching Any,Any...
19:39 TimToady so basically it's on failure to dispatch within the realm of Any
19:39 ruoso that supposing you have a typed signature
19:39 TimToady for single dispatch, we could have a type between Junction and Object that is the implementation, I suppose
19:40 TimToady then Obect wouldn't have to worry about it
19:40 ruoso the problem with that perspective is that not all signatures are typed
19:40 ruoso but would it autothread?
19:40 TimToady and are slurpy, which are not autothreaded
19:41 TimToady slurpy args don't
19:41 hudnix what sort of result/error do you get if only some of the objects in a junction implement a method?
19:41 ruoso hmmm...
19:41 ruoso I'm almost thinking that Junctions are as fragile as Capture
19:41 ruoso meaning that it would autothread whenever you want to use it in some context
19:42 TimToady let us say they would be easy to abuse, and we'll have to rely on some cultural enforcement
19:42 TimToady but it feels right to use the existing dispatch system, not hardwire it
19:42 [particle]1 delicate, not fragile :)
19:42 ruoso [particle]++ that's a better term ;)
19:43 TimToady but if we had a JunctionImpl type, we could call $junk.JunctionImpl::eigenstates and such
19:43 TimToady hmm, wait that doesn't work
19:43 ruoso so basically if you send a junction inside a regular capture, it would autothread at bind-time
19:44 ruoso TimToady, that's p5
19:44 ruoso ;)
19:44 pugs_svn r24775 | putter++ | [STD.pm] Kludges to work around some p5 regexp parse failures.
19:44 ruoso my question would be then "When to 'join' the threads" ?
19:44 TimToady p6 too, but JunctionImpl would be doing autothreading on unrecognized methods, so the type coercion doesn't help anything
19:45 mncharity TimToady: fyi, STD.pm has been infiltrated by tabs.
19:46 mncharity Happy new year everyone. :)
19:46 moritz_ :retab helps
19:47 cspencer joined #perl6
19:47 moritz_ rakudo: say (undef max 2)
19:47 p6eval rakudo 35004: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤current instr.: 'infix:cmp' pc 14438 (src/builtins/cmp.pir:146)␤»
19:47 TimToady somebody probably edited it with emacs :)
19:47 moritz_ TimToady: what should infix:<min> and infix:<max> do with undef values?
19:48 ruoso moritz_, I'd suggest doing the same thing a database does
19:48 Limbic_Region oh, and imaginary numbers and NaN and Inf numbers
19:48 TimToady depends on what kind of undef it is
19:48 TimToady I suspect
19:48 moritz_ TimToady: compare them as 0 or empty string, depending on context
19:48 moritz_ ?
19:48 Limbic_Region salutations all btw
19:48 moritz_ TimToady: a bare undef
19:48 TimToady Failure should throw exception
19:49 TimToady there is no such thing as a bare undef
19:49 TimToady the undef function happens to return Object
19:49 Limbic_Region TimToady - you prude, no undefs in the nude
19:49 moritz_ ok, an Object then
19:49 TimToady please don't bare with me :)
19:50 estrabd joined #perl6
19:50 pugs_svn r24776 | moritz++ | [t/spec] test that (undef min 2) doesn't die
19:50 TimToady a protoobject should generally pretend to be "" or 0, maybe with a warning
19:50 TimToady depending on the operator
19:50 moritz_ ok, so (2 min undef) would return the undef
19:50 TimToady but maybe for min/max it should be something else
19:51 moritz_ I think min/max should use cmp internally
19:51 TimToady see table for [min] and [max] on 1 or 0 values
19:51 TimToady [min]() returns +Inf, as I recall
19:52 TimToady so perhaps infix:<min> should assume similarly
19:52 TimToady especially when used as min=
19:52 moritz_ so should [min] 1, undef the same as [min]?
19:53 TimToady the real question is when does a protoobject really reprepresent Nil
19:54 khisanth_ joined #perl6
19:54 TimToady Failure never does
19:55 TimToady reducing to when does a variable returning a protoobject represent an accumulator?
19:55 TimToady with min= we know it does
19:55 TimToady when a min b we don't necessarily know it
19:55 TimToady so I suspect the latter should warn and try to do the right thing
19:56 TimToady "Use of uninitialized value in 'min', assuming +Inf"...
19:56 estrabd joined #perl6
19:58 ruoso dwhipp, I'm unsure about: for @AoA -> @arr { ... }
19:58 mncharity :)  #re emacs.  hopefully not me :/
19:58 ruoso I think it was supposed to work without the additional dereferencing
19:59 TimToady or a vim that doesn't recognized the :expandtabs at the end
19:59 TimToady for @AoA supplies a list context, so it should work okay
19:59 dwhipp that would be my expectation
20:00 dwhipp perhaps the cases where it doesn't work quite right are rakudobugs
20:00 ruoso I'd assume so
20:00 TimToady rakudo has historically been weak on list context, but it's getting better
20:02 mncharity moritz_: Hmmm.  It seems the t/regex/ p5 regexp tests have been deleted?  What's up?   My fuzzy impression is that rx:P5/foo/ has been respeced as rx/:P5 foo/, but other than that, those should be valid tests.  A thousand of them.
20:02 mncharity no?
20:03 moritz_ mncharity: they live in t/spec/S05-modifier/ these days (I didn't move it, though)
20:04 ruoso rakudo: (2..200).grep{ ! (($_ % any(2..^$_))==0) }
20:04 p6eval rakudo 35004: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 76 (EVAL_15:41)␤»
20:04 ruoso rakudo: (2..200).grep: { ! (($_ % any(2..^$_))==0) }
20:04 pugs_svn r24777 | putter++ | [elf_h] Assorted improvements.  IR dump, concat, substr, push, 'is context', constant, default args, variable name mangling, infix:<//>, etc.
20:05 p6eval rakudo 35004: No output (you need to produce output to STDOUT)
20:06 * azawawi finishes Padre Perl6 S29 function calltips or baloons... masak++
20:06 TimToady mncharity: I'm leaning toward saying that rx:P5/$foo/ interpolates like p5 before feeding the regex parser, while rx/:P5 $foo/ doesn't, and just assumes it has post-interpolation text
20:06 TimToady which is why the tests have to be written with :P5 inside currently
20:07 TimToady since the :P5 just parses it like a string and it never gets to the P5Regex code
20:07 TimToady the outside :P5
20:08 moritz_ TimToady: any thoughts on @empty_array.pop? should it return Nil instead of an undef Object?
20:08 ruoso moritz_, I was already unhappy with Capture returning one of two things in item context, returning one of three sounds even worse...
20:10 ruoso but it could also provide a powerfull thing
20:11 ruoso return $item: $l,$i,$s,$t, :h(1), :a(2), :s(3), :h(4);
20:11 ruoso so that would make Capture in item context return:
20:11 ruoso - the invocant, if there's one
20:11 ruoso - the first positional argument, if there's only one
20:12 ruoso - an array of the positional arguments, if there's more than one
20:12 moritz_ that would be the ideal case for the issue you brought up on p6l
20:12 ruoso TimToady, what do you think?
20:13 TimToady in a meeting, so a bit hard to think
20:13 moritz_ no hurry, I'll backlog ;-)
20:13 ruoso TimToady, you might reply to the post on p6l as well
20:14 ruoso I still need to raise an even harder problem about that
20:14 TimToady sorry, things have been kinda hectic; brother-in-law had a minor stroke last week...
20:20 ruoso TimToady, sorry to hear that...
20:22 ruoso mildew: knowhow Foo { has $!bar; method bar { $!bar } }; Foo.bar = 2; $OUT.print(Foo.bar.FETCH);
20:22 p6eval mildew: OUTPUT«Could not find variable $?PACKAGE in the lexical scope.␤»
20:22 ruoso hmm... evalbot seems outdated...
20:23 ruoso moritz_, it seems smop wasn't rebuilt in the mildew evalbo
20:23 moritz_ sh: line 1: 23259
20:25 ruoso moritz_, if that's the svn revision, it's pretty outdated
20:25 moritz_ no, it's not
20:25 moritz_ Setup: At least the following dependencies are missing:
20:25 moritz_ utf8-string >=0.3.1.1
20:25 pugs_svn r24778 | putter++ | [elf] Merging STD_blue, STD_green, and rx_on_re directories into a new elfish/elfparse. (Part 1)
20:25 moritz_ that seems to be the culprit
20:26 ruoso libghc6-utf8-string-dev
20:26 ruoso install that package
20:26 moritz_ still complains
20:27 ruoso hmm.. which version?
20:27 moritz_ ii  libghc6-utf8-s 0.3.1.1-1      GHC 6 libraries for the Haskell UTF-8 librar
20:27 moritz_ I'm running ./configure now, as suggested in a later error message
20:27 ruoso ah... right
20:28 moritz_ but I'm low on power now, just ~12min to remain
20:28 ruoso ok...
20:28 moritz_ don't know if I'll make it today
20:29 pugs_svn r24779 | particle++ | [S06] add another command-line short name example; modify comment to line up visually with others
20:32 mncharity moritz_: ah, my thanks.  I was confused, accidentally searching two different copies of elf. and finding the the tests gone from one, but not yet in t/spec on the other.  D'oh.
20:33 mncharity TimToady: re rx:P5// rx/:P5/ and interpolation, ooo, that sounds nice.
20:34 ruoso dwhipp, also, $.is_winning_move is supposed to just work
20:35 ruoso if it doesn't it is probably a rakudobug
20:38 dwhipp rakudo: class A { method foo { say @_ }; method bar { self.foo } }; A.bar
20:38 p6eval rakudo 35004: OUTPUT«␤»
20:38 dwhipp rakudo: class A { method foo { say @_ }; method bar { $.foo } }; A.bar
20:38 p6eval rakudo 35004: OUTPUT«␤»
20:38 dwhipp rakudo: class A { method foo { say @_ }; method bar { $.foo(42) } }; A.bar
20:38 p6eval rakudo 35004: OUTPUT«␤invoke() not implemented in class 'Integer'␤current instr.: 'parrot;A;bar' pc 390 (EVAL_13:165)␤»
20:39 smarmy joined #perl6
20:39 ruoso that's a bug
20:40 dwhipp sending rakudobug...
20:41 maerzhase joined #perl6
20:43 jklai joined #perl6
20:45 azawawi moritz_: http://padre.perlide.org/raw-attachment/wiki/Screenshots/padre_s29_doc_integration.png
20:45 cowsaywut joined #perl6
20:46 cowsaywut joined #perl6
20:50 rakudo_svn r35006 | tene++ | Partially erge pct_hll branch into trunk.
20:50 rakudo_svn r35006 | tene++ | I'm *mostly* sure this doesn't break anything.
20:51 estrabd joined #perl6
21:03 azawawi hi *
21:06 mncharity Could we get the #perl6 /topic unlocked?  Is there some new threat which didn't exist a year or whatever ago?  It used to be world writable, with community maintenance.  We have enough people for that still.  But /topic is currently limited to channel operators.  So it's had a "The topic for #perl6 is:" typo for some time, can't easily be updated to reflect padre and other happenings, etc.
21:07 mncharity diakopter: jnthn: moritz_: PerlJam: pmichaud: Tene: TimToady: ^^
21:09 Tene mncharity: go ahead and fix it. :)
21:09 mncharity The topic can be and was a nice way to pass on community news, a community focus, orientation for new visitors.  [...] clip.
21:09 mncharity Tene: my thanks :)
21:09 Topic for #perl6is now  http://pugscode.org/ http://planetsix.perl.org/ | nopaste: http://sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: http://irc.pugscode.org/
21:10 mncharity left #perl6
21:10 mncharity joined #perl6
21:12 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/
21:12 mncharity perl6: say 3;
21:12 p6eval elf 24779, pugs, rakudo 35005: OUTPUT«3␤»
21:12 azawawi perl6: say 'hi' ~~ 5;
21:12 p6eval elf 24779: OUTPUT«Can't call method "Str" on an undefined value at ./elf_f line 649.␤ at ./elf_f line 3861␤»
21:12 p6eval ..rakudo 35005: OUTPUT«0␤»
21:12 p6eval ..pugs: OUTPUT«␤»
21:13 azawawi perl6: say 'hi' ~~ '5';
21:13 p6eval elf 24779: OUTPUT«Can't call method "Str" on an undefined value at ./elf_f line 649.␤ at ./elf_f line 3861␤»
21:13 p6eval ..rakudo 35005: OUTPUT«0␤»
21:13 p6eval ..pugs: OUTPUT«␤»
21:13 azawawi perl6: say 'hi' . '5';
21:13 p6eval pugs: OUTPUT«*** ␤    Unexpected "."␤    expecting operator, ":" or ","␤    at /tmp/ckhb8Le0B7 line 1, column 10␤»
21:13 p6eval ..elf 24779: OUTPUT«Parse error in: /tmp/i063nKqsn9␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say 'hi' . '5';␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
21:13 p6eval ..STD_red/std.rb:210:i...
21:13 p6eval ..rakudo 35005: OUTPUT«Statement not terminated properly at line 1, near ". '5';"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:13 * azawawi is sorry for the spam
21:17 * ruoso later &
21:20 pugs_svn r24780 | putter++ | [evalbot] Update to elf_h (from old elf_f).
21:27 araujo joined #perl6
21:28 alexn_org joined #perl6
21:37 estrabd joined #perl6
21:43 mncharity elf: say 3;
21:43 p6eval elf 24780: OUTPUT«3␤»
21:43 mncharity perl6: say 3;
21:44 p6eval elf 24780, pugs, rakudo 35007: OUTPUT«3␤»
21:44 mncharity elf: say 'hi' ~~ 5;
21:44 p6eval elf 24780: OUTPUT«Can't call method "Str" on an undefined value at ./elf_f line 649.␤ at ./elf_f line 3861␤»
21:49 cspencer is there a special method that i can define in a perl 6 class that determines how it stringifies? (or coverts to an integer or a num, for that matter)?
21:55 pugs_svn r24781 | putter++ | [elf] Merging STD_blue, STD_green, and rx_on_re directories into a new elfish/elfparse. (Part 2)
21:55 pugs_svn r24781 | putter++ | elfish/ STD_blue, STD_green, and rx_on_re are deleted.  Improved Makefile.  elf.pm is a ~week-old snapshot of STD.pm.  STD_green_run.pm is the start of a p6 version of STD_blue, using std.pm and elf's rx, instead of gimme5.
21:57 mncharity cspencer: .Str
21:57 mncharity .Int .Num
21:57 cspencer ah ok, so just define: method Str() { .. }
21:57 cspencer gotcha, thank you!
21:57 mncharity no problem :)
21:58 mncharity elf: say 'hi' ~~ 5;
21:58 p6eval elf 24780: OUTPUT«Can't call method "Str" on an undefined value at ./elf_f line 649.␤ at ./elf_f line 3861␤»
21:58 * mncharity wonders how to kick evalbot...
21:59 mncharity rakudo: class A { method Str { "foo" } }; say A.new;
21:59 p6eval rakudo 35007: OUTPUT«foo␤»
22:07 mncharity elf status update: I'm currently working through a copy of STD.pm, getting elf to run it.  The STD.pm copy is currently almost entirely commented out.  ./STD_green_run --start noun -e 42 , and not much else.  The running bits are mostly unmodified, but do contain elf-compatibility tweaks.  The vision is to work up to 'say 3', then elf self-compilation.  STD_green should be a drop-in replacement
22:08 mncharity for STD_blue.  Once elfblue can self compile on STD_green, then elf and STD_green will merge, and a new elf_i will no longer depend on an external parser.
22:11 mncharity Then perhaps transliterate the existing p5 rx_on_re runtime into p6, at which point the elf frontend will be all p6.  And the common-lisp background can then also switch to internal parsing.
22:11 |jedai| joined #perl6
22:11 mncharity s/background/backend/
22:11 azawawi nice
22:14 mncharity :)    s/backend/elf-compiled-to-common-lisp/
22:17 cspencer mncharity: which common lisp implementations are supported?
22:18 cspencer or is it able to run on all of them?
22:19 donaldh joined #perl6
22:21 cspencer rakudo: my Int $i = 12; my Num $n = $i; say $n ~ " is " ~ $n.WHAT
22:21 p6eval rakudo 35007: OUTPUT«12 is Int␤»
22:22 cspencer perl6: my Int $i = 12; my Num $n = $i; say $n ~ " is " ~ $n.WHAT
22:22 p6eval elf 24781, pugs, rakudo 35007: OUTPUT«12 is Int␤»
22:27 mncharity cspencer: currently,
22:27 mncharity only sbcl.  I'd like to see it generalized to clisp.
22:28 cspencer mncharity: hmmm...i'd like to give it a go, but i can't remember how the last time i'd tried to wrestle sbcl onto OS X turned out
22:28 cspencer or if sbcl even supports OS X for that matter
22:29 cspencer oh it does.  i'll give it a go then some time this week!
22:29 mncharity the cl side is actually quite simple.  should be able to get it working on any good implementation.
22:30 cspencer that's great.  any other CL package dependencies?
22:30 mncharity looking...
22:31 mncharity http://svn.pugscode.org/pugs/misc/elfish/on_sbcl/
22:31 |jedai| joined #perl6
22:31 cspencer thanks :)
22:32 mncharity mostly just weitz's perl compatible re / interpolation / unicode libraries.
22:33 cspencer that's easy enough then
22:33 mncharity make libraries  should build them all.
22:33 cspencer awesome.  is it running parts of the spec suite?
22:33 cspencer spec test suite, that is
22:36 mncharity not really.  my push was to get to self-compilation.  make check  does that, but there's an unresolved diff.  I've not looked at it - elf critical path drove me elsewhere.
22:38 cspencer fair enough, thanks for the info :)
22:39 mncharity for adding another cl impl, in http://svn.pugscode.org/pugs/misc/elfish/on_sbcl/PrimitivesSBCL.pm the 'is cl' subs, and the big string in http://svn.pugscode.org/pugs/misc/elfish/on_sbcl/EmitSBCL.pm method prelude, can be #+foo'ed.  "sbcl" are hardwired in a few places.  The library directory organization
22:39 mncharity may need tweaking for multiple cl implementations to be used simultaneously.
22:40 rakudo_svn r35008 | pmichaud++ | [rakudo]: spectest-progress.csv update: 265 files, 5914 passing, 0 failing
22:42 * mncharity runs clean on_sbcl build, just to make sure it all still works...
22:43 alexn_or1 joined #perl6
22:43 cspencer thanks :)
22:44 mncharity cspencer: you may be the first person other than me to touch any of it.  so if you have any questions, please ask.
22:44 cspencer will do :)
22:47 mncharity oh, I was wrong.  It *can* self-compile correctly.  It's the crosscheck of using a cl elf to compile a p5 elf which turns up the diff.
22:52 cspencer alrighty.  if that becomes an issue, i imagine you'll probably hear from me again on #perl6 :)
22:54 donaldh joined #perl6
22:58 mncharity fib() in cl elf's p6 is currently about 1/5 the speed of native p5.  it started at 10x, but as I added compatibility features, it declined.  the nice thing is, some of the features are ones a not-too-bright elf IRx1_Analysis and emitter might recognize are not needed in particular cases.  note at the bottom of http://svn.pugscode.org/pugs/misc/elfish/on_sbcl/README .
22:58 mncharity and I've done little performance optimization.
22:59 cspencer joined #perl6
23:05 pugs_svn r24782 | putter++ | [on_sbcl] README: QuickStart section: bugfix and addition.
23:07 mncharity cspencer: Sooo, self compilation still works.  Compiling a p5 elf has a new more severe problem.  The  elsif $v eq '$¢' {  I added to elf_h today triggers a unicode problem.
23:07 mncharity :/
23:09 mncharity My fuzzy impression is $¢ seems to be causing more unicode pain, in multiple settings, while things like « are just working.  curious.
23:10 |jedai| joined #perl6
23:10 mncharity though perhaps it's just the first unicode scalar variable name I'm using?
23:10 cspencer mncharity: heh, ok
23:11 cspencer by "p5 elf" , do you mean elf compiles to perl 5 as well?
23:11 wknight8111 joined #perl6
23:12 aindilis joined #perl6
23:15 mncharity elf is largely written in p6 (well, the elf mostly-compatible-subset of p6).  elf_h in http://svn.pugscode.org/pugs/misc/elf/ is a stand-alone p5 program, namely elf compiled to p5.  the elfish/on_sbcl just swaps out the emitter.  so elf_on_p5 can compile to p5 and to cl (depending on the emitter used), and so can elf_on_sbcl.
23:16 mncharity so "p5 elf" == "elf compiled as a p5 program".  hmm, "elf manifest as p5"? :)
23:16 cspencer ah ok
23:16 eric256 anyone mind if i scrap the IRC logs and put some of these things in a wiki? i swear you all are speaking in code and I intended to crack it!
23:19 [particle] s/scrap/scrape/
23:19 cspencer eric256: where're you logging the IRC stuff to?
23:19 mncharity elfcl is just  ${ELF} -I ${ELFDIR} EmitSBCL.pm -x -o elfcl Elf_SBCL.pm , where http://svn.pugscode.org/pugs/misc/elfish/on_sbcl/Elf_SBCL.pm just use()s the http://svn.pugscode.org/pugs/misc/elf/elf_h_src/ sources.
23:19 mncharity eric256: "scrap the IRC logs"???
23:19 [particle] the logs are public, so go ahead
23:20 mncharity re code, there is a "glossary" someone did somewhere... the perl.org wiki maybe?
23:20 eric256 err scrape? or scan...i just mean read and compile into something readable ;)
23:20 mncharity http://www.perlfoundation.org/perl6/index.cgi?glossary_of_perl_6_terms_and_jargon
23:20 eric256 i seem to recall a monk who didn't like his writings being re-used...so just covering my a$$
23:25 mncharity re elfcl, it's actually gotten even easier to do elf derivatives.  An Elf_SBCL.pm is not really needed at this point.  Things got modularized even further, so the various elf derivatives which are now elfparse http://svn.pugscode.org/pugs/misc/elfish/elfparse/ could simply say for instance  ${ELF} -x -o ./elfblue -I . -I  ${ELFDIR} -e 'use Elf_wo_main' IRx1_FromAST2.pm Parser2.pm -e elf_main
23:27 mncharity modularity was a design goal. :)
23:28 cspencer awesome.  i'm definitely going to have to bookmark this conversation for later this week when i try and get things going :)
23:32 xinming joined #perl6
23:33 mncharity eric256: making it easier for people to get started would definitely be nice.
23:34 eric256 sometimes i feel as if i'm treading water carrying a sack of potatoes ;) easy to drown in all this new information
23:34 fridim_ joined #perl6
23:34 * eric256 wishes there was an online coolaboritave flow chart (preferrable with revision control built in ;) )
23:36 hercynium joined #perl6
23:46 eric256 left #perl6
23:52 mncharity eric256: my fuzzy impression is there are a couple of them... some free, though perhaps only proprietary?
23:52 mncharity re "online coolaboritave flow chart", not potatoes.
23:57 cspencer rakudo: my $x = 12; my $y = $x; $x++; say "x = $x, $y = $y"
23:57 p6eval rakudo 35009: OUTPUT«x = 13, 12 = 12␤»
23:58 Tene It wouldn't be too hard to hack something like that together with git and graphviz
23:58 cspencer rakudo: my $x = 12; my $y := $x; $x++; say "x = $x, $y = $y"
23:58 p6eval rakudo 35009: OUTPUT«x = 13, 13 = 13␤»

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

Perl 6 | Reference Documentation | Rakudo