Perl 6 | Rakudo | Specs | Parrot | source cross referenced
← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first
All times shown according to UTC.
| Time | Nick | Message |
|---|---|---|
| 00:01 | romanhunt joined #perl6 | |
| 00:02 | romanhunt | hello all |
| 00:02 | colomon_ joined #perl6 | |
| 00:03 | masak | romanhunt: hi! |
| 00:03 | zaslon | lolperl6adventhazblogged! perl6advent++ 'Day 5: Metaoperators': http://perl6advent.wordpress.c[…]y-5-metaoperator/ |
| 00:04 | romanhunt | so this shal be my first big perl6 weekend... (after writing 5 all week long at work!) |
| 00:04 | I really cant wrap my head around the power curly brakets have obtained | |
| 00:04 | hashes will never be the same! | |
| 00:10 | masak | romanhunt: in Perl 6, curlies in term position mean a closure. always. |
| 00:10 | sometimes they collapse to a hash, though. | |
| 00:12 | romanhunt | i see. thx |
| 00:13 | brrant joined #perl6 | |
| 00:14 | masak | romanhunt: there are some simple rules as to when it turns into a hash. it works out pretty naturally, and DWIMs most of the time. I've had it trip me up in &map calls, sometimes, but that's all. |
| 00:14 | I believe the spec was changed to make even those cases of &map confusion go away. but I don't believe Rakudo implements those changes yet. | |
| 00:16 | TimToady | yes, we outlawed $_ in the { a => 2 } form |
| 00:17 | jnthn | Rakudo certainly didn't catch up with *that* one yet, afaik. |
| 00:17 | oh hai btw :-) | |
| 00:17 | * jnthn | 's new laptop has apparently been built and will be shipped to him soon. |
| 00:18 | jnthn | That means I'll have a machine I can hack on Rakudo on that doesn't take like over 2 minutes to compile it. :-/ |
| 00:18 | TimToady | romanhunt: curlies have gained power by *reducing* the number of uses from what Perl 5 does, actually :) |
| 00:18 | masak | jnthn: hai! |
| 00:18 | Wolfman2000 | jnthn: what OS? |
| 00:18 | jnthn | Win 7. |
| 00:18 | If it sucks, back to XP. | |
| 00:18 | Wolfman2000 | ...you must be a glutton for punishment |
| 00:18 | jnthn | But I'm hopeful not. |
| 00:18 | * jnthn | gave Vista a skip |
| 00:18 | Wolfman2000 | okay, not that gluttnous |
| 00:18 | gluttonous* | |
| 00:19 | jnthn | Wolfman2000: Nah. I can't be arsed with Linux on the desktop. |
| 00:19 | I'm fine that it works for some people. I'm just not one of those people. :) | |
| 00:19 | Equally, I hate windows on the server. :-) | |
| 00:19 | Tool for the job and all that lot. | |
| 00:20 | romanhunt | I never thought Id say it but ever since I started getting to use macos on the desktop I have been hooked. I however run a network of XP xlients running on mac hardware so its not all perfect... |
| 00:21 | its a sweet OS to meet in the middle of graphical do it all and *nix though | |
| 00:21 | * Wolfman2000 | also uses Leopard. |
| 00:21 | romanhunt | and the fact that it ships with perl to begin with is titts |
| 00:21 | jnthn | Yeah, Mac is tempting. But I do a bunch of Windows dev too. |
| 00:21 | Wolfman2000 | jnthn: you can run windows on a Mac |
| 00:21 | jnthn | Wolfman2000: I could, but then...why buy a Mac? :-) |
| 00:22 | Wolfman2000 | ...one of these days, you'll see the light |
| 00:22 | * jnthn | went for a ThinkPad again. They're familiar, comfortable, and don't care about being dropped from the overhead bin in an aircraft. |
| 00:22 | avar | too bad you can't get them anymore from ibm;/ |
| 00:23 | MegaTron joined #perl6 | |
| 00:23 | jnthn | avar: Yeah, I was a bit bothered the quality may have gone way down, so asked around...and got "yeah, they're still decent". |
| 00:23 | avar | still decent, but not as good |
| 00:23 | jnthn | Aww. |
| 00:24 | Well, we'll see how many countries and conferences the new one handles. :-) | |
| 00:26 | * jnthn | very much enjoyed a visit to the curry house that he used to frequent while living in England again tonight. |
| 00:26 | MegaTron left #perl6 | |
| 00:26 | romanhunt | so once I get a grip on the new syntax how should I move forward? I am incredibly interested in perl6 compiler being writen in perl6 and want to work on that aspect (generating parse trees etc) I mean I dont mind just writing code in it but most of the stuff I write turns into several hundren line projects that it probably isnt ready for |
| 00:27 | jnthn | romanhunt: The easiest place to jump in is the setting, which is a chunk of built-in functions/classes that are written in Perl 6. |
| 00:27 | romanhunt | plus writing large system administration scripts in a language so new and blowing up a system at work would probably piss my boss off to no end |
| 00:28 | jnthn: ok | |
| 00:28 | jnthn | romanhunt: In those, you're writing in "full" Perl 6, as such. |
| 00:28 | romanhunt: In the bits behind that, most bits are written in a subset of Perl 6 that we call NQP. | |
| 00:29 | Which is very easy to work with if you know Perl 6, so long as you keep in mind what it does and doens't provide. | |
| 00:29 | romanhunt | ./rakudo/src/setting I assume |
| 00:29 | jnthn | romanhunt: Right. |
| 00:30 | romanhunt: We have a bunch that is written in PIR to interface with the underlying Parrot VM, and a few bits in C too. | |
| 00:30 | But you can contribute quite a lot without having to look at those. | |
| 00:30 | romanhunt | C I know well. PIR ... a different story |
| 00:30 | jnthn | Generally, the trend is towards more in Perl 6 and NQP and less in VM-specific stuff. |
| 00:30 | romanhunt | ok |
| 00:30 | avar | romanhunt: There are also self-hosted compilers you can look at, but they seem to be less maintained these days. |
| 00:31 | jnthn | Because it's (a) easier to hack on and (b) means that when we get to having Rakudo running on additional backends there's less that we have to hand-port. |
| 00:31 | avar | Rakudo historically has been built upon a mountain of C/PIR with some very small parts in Perl 6, but those parts have been growing a lot for the past ~2 years |
| 00:31 | (B.t.w. I'm just an outside observer, I'm not involved in rakudo) | |
| 00:31 | jnthn | avar: Your perspective is pretty much right though. :-) |
| 00:32 | romanhunt | I think I will focus on setting/ for sure at least to begin with |
| 00:32 | jnthn | avar: Though in a way we're working towards replacing some of the PIR with NQP and Perl 6 too. |
| 00:32 | avar | jnthn: Are you guys planning on growing it slowly over time so that Parrot might be Just Another Target, along with JVM, .net, ASM or whatever?:) |
| 00:32 | jnthn: Yeah I've seen, neat:) | |
| 00:32 | romanhunt | after that maybe some porting of PIR to perl6 if needed. But I am getting ahead of myself as I am still reading synopses :) |
| 00:33 | jnthn | avar: Yes, that's kinda my vision. |
| 00:33 | avar | jnthn: I haven't looked at it after you guys started hacking on rakudo-ng but when I did a lot of the heavy lifting in setting/ seemed to be done by Q:PIR |
| 00:33 | jnthn: Cool:) | |
| 00:33 | romanhunt: Anyway, I used to work on one of the self-hosted compilers a while back but if I wanted to hack something now I'd hack rakudo, fwiw:) | |
| 00:34 | jnthn | avar: In ng, we're using a pir::op_name construct instead, which unlike Q:PIR is easier to deal with in the "support a different backend" case. |
| 00:35 | pugs_svn | r29257 | lwall++ | [pm.txt] answer PM-12 for pmichaud++ |
| 00:36 | avar | jnthn: Nice, I also noticed you're passing like 0.1% of the tests you did before, are you tearing the whole thing out to replace it with .. what ? |
| 00:36 | I've read some of the blog postings but I haven't got the gist of exactly what you guys are doing, is it just the regex engine replacement or a lot more? | |
| 00:37 | more self-hosting? | |
| 00:39 | jnthn | avar: We're doing a bunch of refactors in one go. |
| 00:39 | avar: The new grammar engine and getting a load closer to STD is a key one of them. | |
| 00:40 | avar: The underlying object model is also changing greatly - that's the bit I'm heading up (whereas the grammar enigne awesomeness is pmichaud++'s great work). | |
| 00:40 | Essentially, everything OO is going back in on top of a sound meta-model foundation, which puts us on the path to custom metaclasses and the like. | |
| 00:41 | TimToady | (and cuts many of the apron strings tying current rakudo to parrot) |
| 00:41 | jnthn | TimToady: Well spotted. ;-) |
| 00:41 | Wolfman2000 | ...I missed something. parrot and rakudo are going to be separated? |
| 00:42 | TimToady | they've been separated for several years now |
| 00:42 | jnthn | Wolfman2000: Rakudo and Parrot already *are* separate projects. |
| 00:42 | Wolfman2000 | ...that came out wrong |
| 00:42 | jnthn | Wolfman2000: Please don't read this as "Rakudo is not going to target Parrot". |
| 00:42 | That's not at all what is being planned. | |
| 00:42 | diakopter | [by most] |
| 00:42 | Wolfman2000 | jnthn: understood. blame my hunger...supposed to be meeting someone soon, but said person has to call me first |
| 00:43 | jnthn | diakopter: :-/ |
| 00:43 | diakopter | I mean |
| 00:44 | TimToady | diakopter: cats can't herd other cats either |
| 00:44 | diakopter | but a mouse or few can divide the pack |
| 00:44 | masak | jnthn: also, before you did the OO refactors, you worked on parameter passing, which is also important for ng, no? |
| 00:45 | jnthn | Wolfman2000: Basically though, Rakudo - like gcc - is a compiler. Just as gcc can produce code for x86 and Sparc, so I'd like Rakudo to be able to target multiple backends. |
| 00:45 | diakopter | the sunk cost delusion will be lifted one day |
| 00:45 | jnthn | masak: It's important for Rakudo *. |
| 00:45 | TimToady | everything is important, if only as a lesson :) |
| 00:46 | masak | jnthn: oh. ok. |
| 00:46 | jnthn | masak: In ng, we actually get to use the foundations I laid pre-ng in the parameters refactoring in an even neater, more elegant way. |
| 00:46 | masak: The code now is *really* nice. | |
| 00:46 | masak | that's what I meant. or something like that. :) |
| 00:47 | TimToady | in other words, we're still groping our way forward, but we're getting much faster at it. :) |
| 00:47 | jnthn | masak: But the actual binder refactor is pretty much the same as I did for master. :) |
| 00:47 | With tweaks thanks to TimToady++ spec tweaks. | |
| 00:47 | masak | ok. :) |
| 00:47 | diakopter | 2 rethinks/redesigns/rewrites per year is great practice for more rewrites |
| 00:47 | (a lesson I've learned from myself) | |
| 00:48 | TimToady | we're hoping each redesign takes half the time of the previous |
| 00:48 | eventually Zeno loses :) | |
| 00:48 | huf | jnthn: what other backends are you thinking about besides parrot? |
| 00:48 | or is that too far ahead yet? | |
| 00:48 | TimToady | name a VM |
| 00:48 | huf | so, any? |
| 00:48 | TimToady | it's been thunka |
| 00:48 | diakopter | huf: they're all conceivable |
| 00:48 | jnthn | huf: I'm fairly open to various options. I think actually that the *hardest* one to add will be the second. |
| 00:49 | TimToady | and the 3rd will be 1/2 that, then 1/4, 1/8.... :) |
| 00:49 | jnthn | huf: If it's me that adds the second one, it'll be the .Net CLR just out of personal familiarity and because it'll make a nice platform for various bits of Perl 6 spec exploration and research I wish to do. |
| 00:49 | diakopter | pypy, llvm-ir, cil, jvm, js, go (fglock's Perlito targets go, now) |
| 00:49 | TimToady | the problem with the second will be discovering all the place we assumed how the circularity saw worked that were wrong |
| 00:49 | *places | |
| 00:50 | jnthn | TimToady: Yes, indeed. |
| 00:50 | diakopter | and of course, /usr/bin/perl |
| 00:50 | jnthn | diakopter: Yes, that too. :-) |
| 00:50 | TimToady | right now we're exploring abstract vs concrete versions of the same operation, hoping that will be an obvious place to saw |
| 00:51 | so .Str conversion might be in the VM, while ~ conversion is in P6 | |
| 00:51 | diakopter | huf: to answer your question more precisely, I'm working on an nqp-rx clone-esque in javascript |
| 00:52 | TimToady | (and crossing our fingers that we don't end up with the too-many-levels-of-indirection problem) |
| 00:52 | jnthn | TimToady: I suspect that we're going to end up having to abandon Parrot's Class/Object PMCs somewhere along the way. |
| 00:52 | huf | diakopter: that's pretty cool |
| 00:52 | jnthn | TimToady: That one may hurt. |
| 00:52 | diakopter | huf: but I'm not afraid to ditch it all at any time and switch to C#/cil on clr/mono |
| 00:53 | TimToady | pugs had a CL backend at one point, iirc |
| 00:53 | diakopter | due to my coding style, the biggest factor that affects my choice of platform is speed of prototyping and instantaneity of feedback |
| 00:53 | cognominal | Is go the vm for the go google language? |
| 00:53 | diakopter | factor*s* I guess |
| 00:54 | TimToady | or maybe it was one of the other parsers |
| 00:54 | jnthn | TimToady: Especially because when I tried to take Parrot down the road to having multiple interoperating object systems, nobody else understood the goal particularly well, and now it's a mess I don't feel like fixing. |
| 00:54 | :-( | |
| 00:54 | diakopter | Perlito emits SBCL |
| 00:55 | TimToady | jnthn: my guess is that eventually parrot scraps it's internal system and bases everything off the Perl 6 types :) |
| 00:55 | *its | |
| 00:55 | diakopter | MiniPerl6 (mp6) is a subset of Perl 6, which was designed as a light bootstrapping language. The initial bootstrap used v6.pm and was then self-hosted in Perl 5. MiniPerl6 is now self-hosted both in SBCL Lisp and in Perl 5. A developer can modify the compiler source code (written in MiniPerl6) and recompile either with the Perl 5 or with the SBCL backend. The backends can cross-compile to each other. |
| 00:55 | except.. there's also a JS target that's not mentioned there | |
| 00:56 | TimToady: well... then it would be Perl 6 | |
| 00:56 | TimToady | not exactly |
| 00:56 | it'd be a VM that happens to be written in P6 | |
| 00:56 | diakopter | imho, the nature of type system makes it very tied to the rest |
| 00:57 | TimToady | but we need to get the native types going better first |
| 00:58 | jnthn | TimToady: That's one of the things I'm most interested in exploring / working out on a different backend. |
| 00:58 | diakopter | masak: how's TreeTraverser |
| 00:58 | jnthn | TimToady: And the dragging back to Parrot - or at least, going to the Parrot dev team with an idea of what's needed - afterwards. |
| 00:59 | *And then | |
| 00:59 | sjohnson | hi guys |
| 00:59 | jnthn | hi sjohnson |
| 00:59 | TimToady | basically, I see the nqp-rx phenomenon happening all over again once we have full P6. |
| 00:59 | sjohnson | o? |
| 01:00 | oops | |
| 01:00 | o/ | |
| 01:01 | TimToady | the first would be scratching your head? |
| 01:01 | diakopter | TimToady: so there'd be a stage0,1,2,3,4,5,6..... |
| 01:01 | I can see the FAQ entry now | |
| 01:02 | TimToady | "The origins of this VM are lost (purposefully) in the mists of time." |
| 01:03 | jnthn | TimToady: That's entirely possible, and wouldn't surprise me, but it's a little way off yet. :-) |
| 01:03 | diakopter | "... and then it emits pugs-6.2.5-Perl6, which emits javascript to WebKit/V8, which emits CIL to mono, which emits xs and is built into a Perl 5 extension" |
| 01:03 | TimToady | gotta cross the Jordan first... |
| 01:04 | jnthn | TimToady: Who is it that's behind us and gets drowned? ;-) |
| 01:04 | oh wait, that was the red sea. | |
| 01:04 | :-) | |
| 01:04 | diakopter | jordan too |
| 01:04 | TimToady | well, I know who gets left behind at the Jordon, and trying not to think about that... :) |
| 01:04 | jnthn | Ah well, it's all good. |
| 01:07 | diakopter | .oO( and then there were 49 days of cacophonous [line] noise, and then the VValls just fell down ) |
| 01:07 | or 56, I don't remember | |
| 01:07 | jnthn | ooh...sleep time for me. |
| 01:07 | Catch y'all tomorrow. | |
| 01:07 | o/ | |
| 01:07 | diakopter | nite |
| 01:08 | TimToady | ciao |
| 01:09 | diakopter | std: =end |
| 01:09 | p6eval | std 29257: ok 00:01 102m |
| 01:09 | masak | found a new Perl 6 project: http://github.com/dbrunton/Automata-Cellular |
| 01:10 | diakopter | wha....? |
| 01:10 | oh, a 3-year hiatus | |
| 01:11 | that was in pugscode at one point I think | |
| 01:11 | masak | oh, cool. |
| 01:11 | yes, the tweet mentioned that it was being updated. | |
| 01:13 | colomon_ joined #perl6 | |
| 01:14 | diakopter | 8.8.8.8 |
| 01:15 | talk about octets.. | |
| 01:15 | I wonder what its ipv6 address is | |
| 01:22 | masak: how's TreeSpider | |
| 01:22 | masak | diakopter: it's been sitting nicely undisturbed since yesterday. as far as I'm concerned, it's a successfully finished experiment. |
| 01:23 | diakopter: next step is to implement the corresponding thing onto the GGE data model. will probably get around to that in a few days. | |
| 01:39 | zaslon | lolmasakhazblogged! masak++ 'November in the rearview mirror': http://use.perl.org/~masak/journal/39980?from=rss |
| 01:44 | masak | I checked the IRC logs from a year ago. I am on record saying "I'll probably do it again next year" :) |
| 01:44 | I'll say the same this time, with a bit less certainty. | |
| 01:45 | diakopter | I dunno, I'm quite certain you'll probably do it again next year |
| 01:45 | prove me wrong ;) (kidding) | |
| 01:45 | masak | :) |
| 01:45 | sjohnson | in p6, have the names "chomp" and "chop" been renamed, and will the chomp-like func chop off $/ instead of "\n" ? |
| 01:46 | diakopter | std: chop; chomp |
| 01:46 | p6eval | std 29257: ok 00:01 103m |
| 01:46 | masak | sjohnson: three things: |
| 01:46 | sjohnson: (1) no, they have not been renamed. | |
| 01:46 | sjohnson: (2) their semantics have changed, though. they no longer change their argument, but return a modified string instead. | |
| 01:47 | sjohnson: (3) $/ is long gone, and there's a new $/ which does something comeletely different (match results). | |
| 01:47 | sjohnson | masak: has $/ been given a new name? or is it just not implemented |
| 01:48 | diakopter: i finally understand the std: now thanks | |
| 01:48 | diakopter++ # knows a lot | |
| 01:48 | * masak | checks what $/ used to mean |
| 01:48 | TimToady | std: undef $/ |
| 01:48 | sjohnson | newline char thing, useful when using while |
| 01:48 | p6eval | std 29257: ===[0mSORRY!===[0mObsolete use of $/ variable as input record separator; instead, in Perl 6 please use the filehandle's .slurp method at /tmp/RkGcbOd23U line 1:------> undef⏏ $/FAILED 00:01 103m |
| 01:48 | masak | ah. input record separator. |
| 01:48 | TimToady | std: $/ = "" |
| 01:48 | p6eval | std 29257: ===[0mSORRY!===[0mObsolete use of $/ variable as input record separator; instead, in Perl 6 please use filehandle's :irs attribute at /tmp/caD1U8GPPU line 1:------> $/⏏ = ""FAILED 00:01 104m |
| 01:49 | sjohnson | wow, nice warning / error msgs |
| 01:49 | compilers helpful | |
| 01:49 | masak | TimToady++ |
| 01:49 | TimToady | necessary when replacing with a different $/ |
| 01:49 | sjohnson | does chomp in p5 even look at $/, or is it static "\n" searching |
| 01:50 | would anyone be opposed to the idea if i ran a p5eval bot here, for fun and learning purposes? | |
| 01:50 | masak | sjohnson: are you familiar with 'perldoc -f chomp'? |
| 01:50 | sjohnson: buubot used to be able to eval Perl 5 code. | |
| 01:51 | sjohnson | thanks masak, forget to check here |
| 01:51 | pnate2 joined #perl6 | |
| 01:52 | sjohnson | masak++ # kind way of saying RTFM |
| 01:52 | masak | food & |
| 01:52 | :) | |
| 01:52 | TimToady | pugs: use v5; print "howdy\n" |
| 01:52 | p6eval | pugs: Error eval perl5: "sub { use ops (':default', 'binmode', 'entereval');; print "howdy\n"}"*** 'print' trapped by operation mask at (eval 2) line 3.Undefined subroutine &main:: called. |
| 01:52 | TimToady | heh |
| 01:53 | sjohnson | im gonna put up an sjbot. i'm excited |
| 01:53 | implement a !perlfact trigger | |
| 01:53 | TimToady | p5 == security breach to pugs :) |
| 01:54 | sjbot: p5eval: system 'rm -rf /' | |
| 01:55 | diakopter | std: use v5; $| = 1; |
| 01:55 | p6eval | std 29257: ===[0mSORRY!===[0mObsolete use of $| variable; instead, in Perl 6 please use :autoflush on open at /tmp/HEMhttqWJD line 1:------> use v5; $|⏏ = 1;FAILED 00:01 104m |
| 01:55 | sjohnson | haha TimToady good think i didnt implement it yet |
| 01:55 | TimToady | STD doesn't understant 'use v5' yet |
| 01:55 | *stand | |
| 01:55 | sjohnson | have to explain to my boss that the creator of Perl wiped my harddrive |
| 01:56 | he'd find it a bit hard to believe | |
| 01:56 | diakopter | "but I was asking for it" |
| 01:56 | TimToady | I probably wouldn't, but diakopter might :) |
| 01:57 | sjohnson | i suppose the safest way to do nothing, would be to give mself no read permission to anything, and use sudo to edit sjbot.pl |
| 01:57 | TimToady | and maybe run in a chroot jail |
| 01:58 | sjohnson | ... i learn something new about perl everyday! |
| 01:58 | TimToady | and maybe use Safe, fwiw |
| 01:58 | diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ |
| 01:58 | sjohnson | use Acme::KeepYourJob; |
| 01:58 | or JobSecurity | |
| 01:59 | diakopter | what |
| 01:59 | that's a new one | |
| 01:59 | huf | wasnt job the dude who lost all his family? |
| 01:59 | not sure i want that kind of security | |
| 02:00 | diakopter | :D |
| 02:00 | TimToady | only takes 13 seconds on my machine |
| 02:01 | diakopter | 13 seconds? |
| 02:01 | TimToady | to parse all those $'s |
| 02:01 | diakopter | successful? |
| 02:01 | TimToady | Anonymous variable requires declarator at (eval) line 1: |
| 02:02 | and a couple deep recursion warnings :) | |
| 02:02 | probably tickles lazymap too hard | |
| 02:03 | p6eval joined #perl6 | |
| 02:03 | TimToady | funny that it kills p6eval |
| 02:03 | diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ |
| 02:03 | p6eval | std 29257: Deep recursion on subroutine "Cursor::_BRACKETr" at STD.pm line 23016.Deep recursion on subroutine "Cursor::_SUBSUMEr" at STD.pm line 22885.===[0mSORRY!===[0mAnonymous variable requires declarator at /tmp/jK1zfumA4B line 1:------> |
| 02:03 | ..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… | |
| 02:03 | diakopter | o |
| 02:03 | TimToady | wow, that was fast |
| 02:03 | diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ |
| 02:04 | p6eval | std 29257: Deep recursion on subroutine "Cursor::_BRACKETr" at STD.pm line 23016.Deep recursion on subroutine "Cursor::_SUBSUMEr" at STD.pm line 22885.===[0mSORRY!===[0mAnonymous variable requires declarator at /tmp/M4RCmNQByu line 1:------> |
| 02:04 | ..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… | |
| 02:04 | diakopter | hm |
| 02:05 | Linux debian.4.x86_64 2.6.16-xen #1 SMP 1GB ram, raid10-ish scsi15k disks | |
| 02:05 | TimToady | recompiled, still takes ~14 seconds |
| 02:06 | diakopter | is your kernel x86_64? |
| 02:06 | TimToady | I think I'm probably running a 32-bit kernel |
| 02:07 | diakopter | oh, this perl is built with llvm |
| 02:07 | TimToady | Linux edo 2.6.31-15-generic #50-Ubuntu SMP Tue Nov 10 14:54:29 UTC 2009 i686 GNU/Linux |
| 02:07 | diakopter | KIDDING |
| 02:08 | mebbe I can rework p6eval to use App::Persistent for STD | |
| 02:08 | or mod_perl :} | |
| 02:09 | TimToady | oh, heh, I had the debug log turned on :) |
| 02:09 | diakopter | sum1 needs to write a source filter for that :}} |
| 02:10 | TimToady | < 1sec now |
| 02:11 | diakopter | oh, why would V8's JS RegExp go quadratic on /^(?:a+)*ab$/.test("aaaaaa"), but the equivalent in Perl fails nearly instantly |
| 02:12 | on "a" x 1e10, I mean | |
| 02:14 | I mean, I thought perl always nfa-simulated left-right with full backtracking? | |
| 02:14 | TimToady | because Perl isn't even getting into the NFA on that one |
| 02:14 | sjohnson | NFA = no f'ing around? |
| 02:14 | diakopter | sjohnson: pretty much |
| 02:14 | TimToady | Perl 5 goes to great lengths to *avoid* calling into the regex matcher |
| 02:15 | and the ab$ is special cased to fail fast | |
| 02:15 | diakopter | O |
| 02:15 | TimToady | it would fail not quite so fast with just ab |
| 02:16 | but still faster than the regex would figure it out, but it'd have to scan for the constant string | |
| 02:16 | and ab doesn't buy you much with boyer-moore | |
| 02:16 | it'd fail abcdefg a lot faster | |
| 02:17 | diakopter | how could I force perl to go quadratic on that |
| 02:17 | TimToady | I'll never tell :) |
| 02:17 | diakopter | hey |
| 02:17 | v8 starts slowing down very noticeably with only 20 chars of input | |
| 02:18 | I haven't waited for it to terminate above that | |
| 02:19 | oh, there we go :) | |
| 02:20 | time perl -e 'print (("a" x 100000000) =~ /^(?:a+?)*a(b+)*c?$/)' # real 0m27.386s | |
| 02:23 | actually, it's not quadratic still | |
| 02:23 | TimToady | make the second a a* |
| 02:24 | diakopter | time perl -e 'print (("a" x 100000000) =~ /^(?:a+?)*a{32766}$/)' # not finished yet |
| 02:24 | TimToady | no, that won't work either, since your end matter can match null string |
| 02:24 | that one will be pretty slow | |
| 02:25 | orafu joined #perl6 | |
| 02:27 | diakopter | # still going |
| 02:27 | # no increase in memory usage that I can see | |
| 02:28 | TimToady | no, but it'll probably run a bit under 300 hours |
| 02:28 | diakopter | killed |
| 02:28 | LOL | |
| 02:29 | time perl -e 'print (("a" x 32766) =~ /^(?:a+?)*a{32766}$/)' # hm. | |
| 02:29 | 19 seconds | |
| 02:29 | interesting | |
| 02:32 | time perl -e 'print (("a" x 500) =~ /^(?:a+?)*a*a{500}$/)' # 0.05s | |
| 02:32 | time perl -e 'print (("a" x 5000) =~ /^(?:a+?)*a*a{5000}$/)' # 27s | |
| 02:34 | TimToady: speaking of char-by-char NFA, why not run the whole parser that way, scannerless | |
| 02:37 | TimToady | because it's not what people want |
| 02:39 | diakopter | TimToady: oooooo.. since you have ubuntu KK now, that means you have mono-2.4!!!!!!!! :D |
| 02:39 | `mono -V` | |
| 02:39 | TimToady | I deny it--I've never had mono... |
| 02:40 | diakopter | oh |
| 02:40 | TimToady | though, of course, there's a good chance I'd test positive for EBV |
| 02:41 | rodi joined #perl6 | |
| 02:46 | diakopter | oh, but looks like the csharp repl doesn't come installed by default # apt-get install mono-csharp-shell mono-gmcs |
| 02:47 | TimToady | I'm not particularly interested in playing with mono yet. Maybe after I get done with Perl 6... |
| 02:49 | diakopter | jnthn gave me too many ideas |
| 02:49 | pugs_svn | r29258 | lwall++ | [gimme5] more recursion warning suppression |
| 02:49 | TimToady | yes, well, one diakopter can only go so far in emulating a flooding algorithm |
| 02:50 | one TimToady too, for that matter | |
| 02:50 | diakopter | well, there's just a TON more system interaction libraries already available from mono/cil/clr.. notwithstanding that it could run in silverlight(win,mac) and moonlight(linux) |
| 02:50 | more than JS/V8, I mean | |
| 02:51 | but the compile/run/test time is still just as fast.... | |
| 02:51 | TimToady | well, you are one the cats I don't try to herd :) |
| 02:52 | diakopter | sigh |
| 02:52 | hrm | |
| 02:54 | phenny: tell jnthn ok, now you've gone and done it. ^^ # apt-get install mono-csharp-shell mono-gmcs # in Ubuntu Karmic | |
| 02:54 | phenny | diakopter: I'll pass that on when jnthn is around. |
| 02:54 | diakopter | TimToady: one neat thing about .net regexes - they can be told to run in reverse |
| 02:56 | oh, interesting, mono has a dependency on perl | |
| 02:56 | TimToady | so does git :) |
| 02:57 | diakopter | so does every .NET build & derivative project inside microsoft... the C/C++ source tree was managed with perl scripts for years (probably still is) (as externally visible in the rotor source release) |
| 02:58 | the entire point of writing powershell was to provide a perl replacement, imho | |
| 02:58 | it took about forever | |
| 03:00 | 2.0 is mostly caught up in expressiveness, if not terseness | |
| 03:02 | TimToady | decommuting & |
| 03:13 | rodi | updating some old Perl6 code to work with Rakudo. Everything's working, except I'm getting a "Use of uninitialized value" warning in one method, don't know why... |
| 03:13 | anyone willing to take a peek at it, might be able to tell at a glance: | |
| 03:13 | http://github.com/dbrunton/Aut[…]omata/Cellular.pm | |
| 03:14 | Looks like it's happening in the next() method. | |
| 03:14 | Any general debugging tips would also be welcome. | |
| 03:19 | seanstickle joined #perl6 | |
| 03:48 | diakopter | rodi: I'll take a look |
| 03:49 | rodi: masak was just noticing your commits... (irclog above) | |
| 03:50 | rodi | diakopter: oh, nice, thanks for the pointer. |
| 03:52 | I like the spec changes that I noticed while updating the code. | |
| 03:52 | gfx joined #perl6 | |
| 03:53 | diakopter | rodi: $.rule.rule{ |
| 03:53 | is that what you intended? | |
| 03:55 | rodi | heh, good question. I think so, though. $.rule is an Automata::Cellular::Rule object, and $.rule.rule is a hash. Does that make my sigil wrong? |
| 03:55 | I'm fuzzy on that... | |
| 03:56 | TimToady | seems a bit odd to index a hash by a decimal number |
| 03:56 | rodi | Blame Wolfram. |
| 03:56 | :-P | |
| 03:57 | TimToady | as in The Emperor's New Science :) |
| 03:57 | rodi | A New Kind of Perl |
| 03:58 | TimToady | I'd make sure the keys of the hash aren't actually like '101' |
| 03:58 | wrong keys would certainly get you uninits | |
| 03:59 | diakopter | maybe stringify the key too |
| 03:59 | I dunno | |
| 03:59 | TimToady | likewise if it's really returning @ instead of % |
| 04:00 | though you'd think in that case it'd complain "I'm not a hash." | |
| 04:01 | also, stylistically, you don't need parens on the for loop args | |
| 04:01 | rodi | mmm, pretty. |
| 04:01 | TimToady | and the final conditional could simply return the result of the comparison, since that's already a Bool |
| 04:02 | well, you'd have to negate it | |
| 04:03 | rodi | e.g. "return $.stage < $.steps" ? |
| 04:03 | also pretty. | |
| 04:03 | meppel joined #perl6 | |
| 04:03 | diakopter | return $.steps < $.stage |
| 04:04 | TimToady | <= maybe |
| 04:04 | diakopter | or return $.stage <= $.steps |
| 04:04 | sjohnson | rakudo: $/ = "\n"; |
| 04:04 | p6eval | rakudo 7ef386: ( no output ) |
| 04:04 | TimToady | and the pod has a syntax error :) |
| 04:04 | std: while($ca.next()) { } | |
| 04:04 | p6eval | std 29258: ===[0mSORRY!===[0mwhile() interpreted as function call at line 1; please use whitespace instead of parensUnexpected block in infix position (two terms in a row) at /tmp/djrRJwk5LT line 1:------> while($ca.next()) ⏏{ } expecting any of: bracketed |
| 04:04 | ..infi… | |
| 04:04 | sjohnson | hmm |
| 04:05 | does p6 supprt input_record_separator-type things? | |
| 04:05 | i was thinking irs supporting regex would be pretty cool, as i can't get that to work in p5 | |
| 04:05 | TimToady | in theory |
| 04:06 | that's because P5 doesn't support that | |
| 04:06 | you need a regex engine that can ask the input system for more string for that to work | |
| 04:07 | sjohnson | i took a guess that it didnt support it either once i couldn't get it to work :] |
| 04:07 | TimToady | you didn't have to guess; the documents say as much :P |
| 04:08 | sjohnson | i suppose i could wing it, by splitting input instead of using while and $/ on it |
| 04:08 | split it by a regex thingy | |
| 04:08 | TimToady | how big is the input? |
| 04:09 | if it's smaller than your memory, just slurp the whole thing in and split | |
| 04:09 | otherwise you're likely to end up with buffer-wrap errors | |
| 04:09 | sjohnson | about 1k EDIFACT files |
| 04:10 | TimToady | 1k each? |
| 04:10 | sjohnson | around there, nothing bug |
| 04:10 | big* | |
| 04:10 | they're for orders of books at work | |
| 04:10 | maybe biggest one i'll ever see might be 50k at the most | |
| 04:11 | TimToady | then by all means, just slurp in entire files; it's much more straightforward that way |
| 04:11 | sjohnson | boss asked me to parse some edifact data to grab a few of the fields out |
| 04:11 | tene was kind enough to write me a nice slurp() sub | |
| 04:11 | i'll use it to slurp my way up the corporate ladder | |
| 04:12 | .. in the programming sense | |
| 04:12 | ( `ー´) | |
| 04:12 | TimToady | is built-in to P6, fortunately |
| 04:13 | sjohnson | sweet |
| 04:13 | perl6++ | |
| 04:13 | @karma perl6 | |
| 04:13 | lambdabot | perl6 has a karma of 5 |
| 04:15 | sjohnson | @karma P6 |
| 04:15 | lambdabot | P6 has a karma of 0 |
| 04:15 | sjohnson | @karma p6 |
| 04:15 | lambdabot | p6 has a karma of 0 |
| 04:16 | TimToady | @karma lambdabot |
| 04:16 | lambdabot | lambdabot has a karma of -1 |
| 04:17 | TimToady | so anything lambdabot says, you have to multiply by -1 |
| 04:18 | sjohnson | heh |
| 04:18 | thanks for the work tips too btw | |
| 04:19 | advice straight from the Camel's mouth ! | |
| 04:20 | seanstickle joined #perl6 | |
| 04:21 | sjohnson | i have a theory. i think the given () function simply sets $_ to be the given argument |
| 04:22 | to make way for the pretty p5.10.0 when () which i believe is simply an if statement, as it needs the () brackets... and does a next; implicately | |
| 04:25 | (my perldoc won't tell me about given or when :( | |
| 04:27 | or maybe a last; | |
| 04:27 | something to get out of that given block | |
| 04:27 | rodi | TimToady, diakopter: thanks for the help, working great now. |
| 04:27 | TimToady | what was the problem? |
| 04:29 | rodi | Um, I was falling off the end of an array </sheepish> |
| 04:29 | It's way prettier now, though :) | |
| 04:31 | I just printed rule 30 with it, which is the WHOLE ENTIRE UNIVERSE, and there's probably a little tiny me inside of it, debugging this same problem again. Actually, I was a little fuzzy on that part of New Kind of Science, but it was something along those lines... | |
| 04:31 | I also added some fmt-fu, thanks to today's Perl6 Advent. | |
| 04:32 | Funny how Advent is such a time for renewal. | |
| 04:32 | Our four-year-old is insisting we go to church, too. | |
| 04:34 | TimToady | yes, well, sometimes they know better than we do :) |
| 04:34 | rodi | It was my three-month-old that sat with me at the terminal writing Perl 6 :) |
| 04:34 | wonder what my two-year-old has in store... | |
| 04:35 | TimToady | well, fortunately, you don't have to be an expert in everybody's kids, just your own |
| 04:36 | unfortunately, you're not an expert in your own kids till they're grown up :) | |
| 04:37 | sjohnson | TimToady: is it wrong to make life easy by using unicode characters that you can assume no one will ever use as delimiters, to get around escaping nightmares? |
| 04:38 | i'm wondering if i'm making a "programming paradigm" mistake | |
| 04:39 | TimToady | no, that's why we let you pick your own quotes |
| 04:40 | of course, if you're generating code, you probably shouldn't assume that, but be ready to do proper escaping for pathological cases | |
| 04:40 | but usually you can be lazy and get away with it | |
| 04:41 | sjohnson | yeah, splitting by ' but not ?' is kind of hard in regex, as i don't want the /[^\?]'/ regex to suck up the not-question mark character in the split job |
| 04:41 | TimToady | sometimes I run through a list of delimiters to pick one that doesn't occur in the text, just to avoid backslashes |
| 04:41 | sjohnson | this is where the snowman chars might come in handy... and what better time than christmas too |
| 04:42 | TimToady | doing that right is difficult; you basically have to parse left-to-right, and not make guesses about what came before |
| 04:42 | hack joined #perl6 | |
| 04:43 | TimToady | well, the snowman is cute enough that someone might use it. maybe you should go for something uglier |
| 04:43 | hack | Dell |
| 04:43 | sjohnson | they havne't made a unicode character of my face yet though :[ |
| 04:44 | TimToady | ☹ |
| 04:44 | sjohnson | haha there it is |
| 04:45 | i bet this could probably be used and would probably take 100 years before it broke | |
| 04:45 | maybe longer actually | |
| 04:45 | i doubt this unicode char would ever be used in an actual book title. i think i'm good! | |
| 04:46 | TimToady | そうでしょう。。。 |
| 04:47 | sjohnson | i suppose i could die("sad face") if m/☹/; |
| 04:47 | before the parsing took place | |
| 04:48 | <-- smart and safe | |
| 04:49 | TimToady | I'd use ⎮, which isn't the character it looks like |
| 04:50 | * diakopter | is blown away by http://search.cpan.org/~rivy/W[…]32/CommandLine.pm |
| 04:50 | TimToady | or maybe ┋ |
| 04:51 | something that's usually used only in drawings vertically is unlikely to occur in a title | |
| 04:51 | carlin | ng: my $x = 'foo'; say $x ~~ /foo/; |
| 04:51 | p6eval | ng 545373: foo |
| 04:51 | carlin | ng: my $x = 'foo'; say 'foo' ~~ /$x/; |
| 04:51 | p6eval | ng 545373:  |
| 04:51 | TimToady | ng: my $x = 'foo'; say $x ~~ m┋$x┋; |
| 04:51 | p6eval | ng 545373: Confused at line 1, near "say $x ~~ "current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) |
| 04:51 | sjohnson | TimToady++: good unicode picking skills |
| 04:52 | whatever doesn't get me fired i like | |
| 04:52 | TimToady | rakudo: my $x = 'foo'; say $x ~~ m┋$x┋; |
| 04:52 | p6eval | rakudo 7ef386: Null PMC access in get_string()in Main (file <unknown>, line <unknown>) |
| 04:52 | TimToady | rakudo: my $x = 'foo'; say $x ~~ rx┋$x┋; |
| 04:52 | p6eval | rakudo 7ef386: Null PMC access in get_string()in Main (file <unknown>, line <unknown>) |
| 04:52 | carlin | can't use variables in regexs in master |
| 04:52 | TimToady | rakudo: my $x = 'foo'; say $x ~~ rx┋foo┋; |
| 04:52 | p6eval | rakudo 7ef386: foo |
| 04:53 | carlin | I hope it's fixed in ng |
| 04:53 | TimToady | sjohnson: yes, well, scattering frowny faces all over your code might not impress your boss |
| 04:53 | sjohnson | TimToady: best to pick a unicode character that looks like his favourite pet animal |
| 04:53 | lesson the blow | |
| 04:54 | TimToady | don't think there's a tarantula symbol... |
| 04:54 | diakopter | the Windows symbol works for that |
| 04:54 | sjohnson | i know what'll NEVER get used |
| 04:55 | 卐 | |
| 04:55 | have to balance the risk of someone seeing that vs. it ever crashing | |
| 04:55 | TimToady | well, that's not actually the Nazi swastika... |
| 04:55 | quantumEd joined #perl6 | |
| 04:56 | sjohnson | TimToady: true, but not something i'd like to get into an argument with :) |
| 04:57 | carlin | I quite like 몾 |
| 04:57 | diakopter | rakudo: say "hihi" =~ 卐i卐; |
| 04:57 | p6eval | rakudo 7ef386: Unable to set lvalue on PAST::Val nodein Main (file <unknown>, line <unknown>) |
| 04:57 | diakopter | o wait |
| 04:57 | sjohnson | carlin: chinese chars might slip up though in book titles :) |
| 04:57 | diakopter | rakudo: say "hihi" ~~ 卐i卐; |
| 04:57 | p6eval | rakudo 7ef386: Could not find non-existent sub 卐i卐in Main (file src/gen_setting.pm, line 324) |
| 04:57 | carlin | rakudo: say chr 0xBABE |
| 04:57 | p6eval | rakudo 7ef386: 몾 |
| 04:57 | diakopter | aww, I liked the first response |
| 04:57 | sjohnson | diakopter: use racist; first |
| 04:57 | :) | |
| 04:58 | TimToady | I'd say that 卐 is quite likely to occur in a Chinese title |
| 04:59 | masak joined #perl6 | |
| 04:59 | diakopter | masak: g'morning |
| 04:59 | masak | o/ |
| 04:59 | quantumEd | 卐 is chinese for helicopter |
| 04:59 | sjohnson | haha |
| 04:59 | 卐kopter | |
| 05:00 | pool hall & | |
| 05:00 | thanks for the help | |
| 05:00 | quantumEd | np |
| 05:02 | masak | I've seen 卐 in various religious circumstances across the world. mostly outside of Europe, though. |
| 05:03 | diakopter | rakudo: say "hihi" =~ 5 |
| 05:03 | p6eval | rakudo 7ef386: Unable to set lvalue on PAST::Val nodein Main (file <unknown>, line <unknown>) |
| 05:03 | diakopter | masakbot: bug |
| 05:03 | masak | long since reported :) |
| 05:04 | it's a variant on "cannot assign to a literal" bug. | |
| 05:04 | TimToady | no bug, I think |
| 05:04 | masak | it's an LTA bug. |
| 05:04 | TimToady | LTA message |
| 05:04 | yeah | |
| 05:04 | std: say "hihi" =~ 5 | |
| 05:04 | p6eval | std 29258: ===[0mSORRY!===[0mObsolete use of =~ to do pattern matching; instead, in Perl 6 please use ~~ at /tmp/qYWsxSnBpZ line 1:------> say "hihi" =~⏏ 5FAILED 00:01 106m |
| 05:05 | masak | hugme: hug STD.pm |
| 05:05 | * hugme | hugs STD.pm |
| 05:05 | diakopter | oh. I thought it was failing on the parse |
| 05:05 | b/c of the PAST mention | |
| 05:06 | masak | no, it fails on the PAST->PIR transformation. |
| 05:06 | jaldhar joined #perl6 | |
| 05:06 | drbean_ joined #perl6 | |
| 05:07 | diakopter | oh |
| 05:08 | cotto_w0rk joined #perl6 | |
| 05:09 | diakopter | oh, interesting... mono has lower startup time than v8 |
| 05:09 | but neither come close to perl's | |
| 05:10 | TimToady | hugme: hug STD |
| 05:10 | * hugme | hugs STD |
| 05:10 | TimToady | hmm, that didn't work |
| 05:11 | hugme: hug STD .pm | |
| 05:11 | * hugme | hugs STD |
| 05:11 | TimToady | that didn't work either, hmm |
| 05:11 | Wolfman2000 | hugme: hug STD\.pm |
| 05:11 | * hugme | hugs STD.pm |
| 05:11 | Wolfman2000 | hugme: hug STD..pm |
| 05:11 | * hugme | hugs STD..pm |
| 05:11 | Wolfman2000 | hugme: hug STD.pm |
| 05:11 | * hugme | hugs STD.pm |
| 05:11 | Wolfman2000 | any of those TimToady? |
| 05:11 | TimToady | trying to get hugme to split on something invisible |
| 05:13 | as opposed to not splitting on something visible | |
| 05:13 | rodi | hugme: hug me |
| 05:13 | * hugme | hugs rodi |
| 05:13 | * rodi | hugs hugme |
| 05:13 | TimToady | hugme: hug you and me |
| 05:13 | * hugme | hugs you and me |
| 05:14 | diakopter | hugme: hug ' |
| 05:14 | * hugme | hugs ' |
| 05:14 | diakopter | hugme: hug \' |
| 05:14 | * hugme | hugs ' |
| 05:14 | diakopter | hugme: hug \\\\ |
| 05:14 | * hugme | hugs \\ |
| 05:14 | diakopter | hugme: hug $sssss |
| 05:14 | * hugme | hugs $sssss |
| 05:15 | diakopter | std: std: :std |
| 05:15 | p6eval | std 29258: ok 00:01 104m |
| 05:16 | TimToady | hugme: hug and kisses for all |
| 05:16 | * hugme | hugs and kisses for all |
| 05:16 | pmichaud | :-D |
| 05:16 | carlin | std: say "{}#{}"; |
| 05:16 | p6eval | std 29258: ===[0mSORRY!===[0m(Possible runaway string from line 1)Confused at /tmp/S86NJGdaBV line 1 (EOF):------> say "{}#{}";⏏<EOL> expecting escapeFAILED 00:01 105m |
| 05:17 | carlin | rakudo: say "{}#{}" |
| 05:17 | p6eval | rakudo 7ef386: Embedded comments now require backticks at line 2, near "{}\""in Main (file <unknown>, line <unknown>) |
| 05:17 | * masak | reads with enjoyment in the backlog how Perl 5 special-cases /ab$/ et al. |
| 05:17 | TimToady | hugme: hug and kisses for all but TimToady |
| 05:17 | * hugme | hugs and kisses for all |
| 05:17 | quantumEd | hugme |
| 05:18 | drbean joined #perl6 | |
| 05:21 | Wolfman2000 | ...right, masak is having his insomnia mode again |
| 05:21 | quantumEd | me and masak |
| 05:21 | Wolfman2000 | ...technically, so am I |
| 05:22 | I will want sleep within an hour so that I can wake up and knock out my last online final stuff | |
| 05:22 | or rather, take home final stuff | |
| 05:22 | masak | Wolfman2000: I've fallen into a steady sleep cycle where I sleep for 6 hours and stay awake for 20 hours. you do the math. :) |
| 05:22 | Wolfman2000 | PerlJam: you around? |
| 05:22 | masak: I'd...rather not. | |
| 05:23 | masak | it means I have a daily phase shift of 2 hours relative to the sun. |
| 05:23 | PerlJam | Wolfman2000: oddly enough, I just arrived :) |
| 05:23 | What's up? | |
| 05:23 | Wolfman2000 | I havne't gotten an answer on my NFS forum topic yet...at least, if the "email me on reply" thing is working right. |
| 05:23 | Tene | masak: That's normal for me... I can't fit that with my work, though. |
| 05:24 | masak | Tene: luckily, I'm on vacation. |
| 05:24 | Wolfman2000 | Perhaps you had an answer |
| 05:24 | PerlJam | What was the question?> |
| 05:24 | masak | Tene: and I've timed it so that if I keep this up, by the time I get back to work, I'll be a very early riser. :) |
| 05:24 | Wolfman2000 | or are you...more of an advertiser/middleman for NFS? |
| 05:24 | PerlJam: how many of my websites would require converting to work on their servers? | |
| 05:24 | envi^home joined #perl6 | |
| 05:24 | * Wolfman2000 | wishes they had an IRC room |
| 05:25 | PerlJam | Wolfman2000: I have no relation to NFS really. |
| 05:25 | and no, I have no answer for you. | |
| 05:27 | Wolfman2000: I'm more what The Tipping Point calls a "Connector" (but only sometimes :) | |
| 05:27 | Wolfman2000 | ...noted |
| 05:31 | rodi | nighty night, all & |
| 05:32 | rodi left #perl6 | |
| 05:38 | JimmyZ joined #perl6 | |
| 05:47 | pugs_svn | r29259 | lwall++ | [STD] string block escapes should be considered embedded, carlin++ |
| 05:50 | orafu joined #perl6 | |
| 05:51 | masak | TimToady: don't know if you saw in the backlog the other day -- is it correct that I can call a method .foo by interpolating the string "$.foo" ? |
| 05:52 | TimToady | sure |
| 05:52 | syntactically it's just a variable | |
| 05:52 | masak | ok; good. |
| 05:52 | TimToady | and $ varibles don't follow the bracket rule |
| 05:52 | *ia | |
| 05:52 | masak | right. |
| 05:52 | that's what I gathered from S02. | |
| 05:53 | TimToady | "It is a comfort not to be mistaken in all things." |
| 05:53 | masak | I guess I was just surprised because it hadn't occurred to me before. :) |
| 06:01 | JimmyZ joined #perl6 | |
| 06:13 | diakopter | speaking of snowmen: http://www.telegraph.co.uk/new[…]lest-snowman.html |
| 06:14 | hugme: hug ll b | |
| 06:14 | * hugme | hugs ll |
| 06:14 | diakopter | .u |
| 06:14 | phenny | diakopter: 1 SPACE (U+0020) |
| 06:15 | diakopter | ha |
| 06:15 | .u | |
| 06:15 | phenny | diakopter: You gave me zero length input. |
| 06:15 | diakopter | .u l b |
| 06:15 | phenny | U+2114 L B BAR SYMBOL (℔) |
| 06:15 | diakopter | o_O |
| 06:15 | .u b | |
| 06:15 | phenny | U+2114 L B BAR SYMBOL (℔) |
| 06:15 | diakopter | .u |
| 06:15 | phenny | diakopter: 1 SPACE (U+0020) |
| 06:15 | diakopter | .u b |
| 06:15 | oh | |
| 06:15 | phenny | U+2114 L B BAR SYMBOL (℔) |
| 06:16 | diakopter | TimToady: nice one |
| 06:17 | masak | if scientists create the world's smallest comet as well, we can arrange to have the world's smallest rakudobug submitted. |
| 06:20 | JimmyZ | good afternoon, #perl6 |
| 06:20 | masak | JimmyZ! \o/ |
| 06:29 | TimToady | std: say "{}#{}"; |
| 06:29 | p6eval | std 29259: ok 00:01 106m |
| 06:29 | TimToady | std: say "{ my $a; }#{ $a; }"; |
| 06:29 | p6eval | std 29259: Potential difficulties: Variable $a is not predeclared at /tmp/dZHTe7aeKt line 1:------> say "{ my $a; }#{ $a⏏; }";ok 00:01 106m |
| 06:29 | masak | std: say "{#}" |
| 06:29 | p6eval | std 29259: ===[0mSORRY!===[0mUnable to parse statement list; couldn't find right brace at /tmp/rpbKXsDRd2 line 1 (EOF):------> say "{#}"⏏<EOL>FAILED 00:01 104m |
| 06:30 | TimToady | std: say "{ our $a; }#{ $a; }"; |
| 06:30 | p6eval | std 29259: ok 00:01 106m |
| 06:30 | TimToady | hmm |
| 06:33 | std: say "{ our $a; }#{ our $a; }"; | |
| 06:33 | p6eval | std 29259: ok 00:01 106m |
| 06:36 | diakopter | std: say "{ our $a; }#{ foo; }"; |
| 06:36 | p6eval | std 29259: Undeclared routine: 'foo' used at line 1ok 00:01 106m |
| 06:37 | masak | rakudo: { our $a = 42 }; { say $a } |
| 06:37 | p6eval | rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/KOB2laIP38:2)in Main (file <unknown>, line <unknown>) |
| 06:49 | mberends joined #perl6 | |
| 06:49 | mberends | good morning, feeding the backlog habit |
| 06:50 | masak | morning, mberends. |
| 06:51 | mberends | masak: goodness me, you've been through another strange sleep cycle ;) In sync with Europe again now? |
| 06:51 | diakopter | vm integer primitives: http://perl6.pastebin.com/d247eb23 yah; it's not really a fair comparison... |
| 06:51 | masak | mberends: no, I'm currently 180 degrees out of phase. |
| 06:52 | mberends | lol |
| 06:52 | masak | give it a few more days and I'll be an early riser. :) |
| 06:54 | mberends | right. does you cycle average about 28 hours? several people seem to do that, and synthesize a 6 day week. |
| 06:55 | masak | no, it seems to be about 26 hours. |
| 06:55 | mberends | you could do a 13 day fortnight then |
| 06:56 | masak | heh :) |
| 06:56 | I don't plan to keep this up when I return to $work. | |
| 06:56 | but it has been very good for getting the tree spider semantics nailed down. and a bunch of other tasks I've done the last few nights. | |
| 06:58 | mberends | I plan to study the spider to see whether a C port is feasible, sometime soon. |
| 06:58 | so write it good ;) | |
| 06:58 | masak | actually, I've finished it. |
| 06:58 | mberends | \o/ |
| 06:58 | masak | all it ever was was a proof-of-concept. |
| 06:58 | but I promise to write plenty of GGE documentation comments. :) | |
| 06:59 | mberends | \o/ |
| 07:00 | masak | mberends: the basic idea of the tree spider is very simple: break down all recursive-descent-calls and continuations into simple message passing, so that it can all be done in the same lexical scope. |
| 07:00 | mberends | that's a very useful concept, and sounds compatible with almost any implementation language |
| 07:00 | masak | it is. |
| 07:01 | mberends | \o/ |
| 07:01 | feasibility has just shot up | |
| 07:01 | masak | there are four messages: DESCEND, MATCH, FAIL and BACKTRACK, and the spider queries regex expression nodes, gets back one of these messages and. reacting to it, goes to another node and queries it. |
| 07:01 | mberends | good spider, keep spinning :) |
| 07:02 | masak | diakopter advised me that I'll want to do this on an expression tree cloned from the original one. he never said why. :) |
| 07:02 | but I can see there'd be a problem with reentrancy without the cloning. | |
| 07:03 | mberends | because history of previous visits is state |
| 07:03 | masak | yes. |
| 07:03 | the spider keeps a little 'lexpad' for each expression node, hashed on that node's reference id. | |
| 07:04 | I like how all this is handled by the spider though, and not by the nodes themselves. it feels very pure. | |
| 07:04 | mberends | a stack or linked list for state would be more economical than a tree clone |
| 07:04 | masak | mberends: yes. the current model in GGE does that. |
| 07:04 | but it's a pure optimization step. | |
| 07:04 | mberends | \o/ |
| 07:04 | liking it more all the time | |
| 07:05 | masak | I'll probably start with getting the spider to work, but slowly. |
| 07:05 | (in GGE) | |
| 07:05 | it'll involve throwing the old model out. | |
| 07:06 | mberends: I'll tell you about what was probably the biggest surprise in all this. | |
| 07:06 | mberends | p6re! p6re! Soon coming to a language near you! |
| 07:06 | masak | mberends: backtracking is done through 'savepoints', with the analogy being your regular platform game where you can save where you are. |
| 07:06 | mberends | great analogy |
| 07:07 | masak | mberends: the question is, at which point do we consider the regex to be so failed that it should activate a savepoint? |
| 07:07 | first I thought that a node should register a savepoint with its immediate parent. | |
| 07:07 | and if the parent fails, it should trigger the savepoint. | |
| 07:07 | but that turns out not to be the case. | |
| 07:07 | mberends | no |
| 07:08 | savepoints are where you have alternatives | |
| 07:08 | masak | simple counterexample: x[a*?]y |
| 07:08 | matching on 'xaaaay'. | |
| 07:08 | mberends: yes, savepoints are forks in the road. | |
| 07:09 | mberends | if y is not found, revert to x, not a |
| 07:09 | masak | they're a way of saying "oh, I can go this way or that way. I'll try this way first". |
| 07:09 | mberends | indeed |
| 07:09 | masak | mberends: no, if y is not found, it should revert to the *? node. |
| 07:09 | mberends | ok |
| 07:10 | yes, * has the alternatives of course | |
| 07:10 | masak | mberends: but if the savepoint is registered with that node's parent (which is the [] group), we've already passed the point where the savepoint would have been triggered, and the match fails instead. |
| 07:10 | mberends: this was actually the reason I implemented the linked list optimisation, because then this example works again. :) | |
| 07:11 | mberends | that's all very C compatible, \o/ |
| 07:11 | masak | it's interesting to see how my four or five attempts all caught little glimpses of the real solution. |
| 07:11 | mberends | yeah, testing corner cases is *very* important |
| 07:12 | masak | the test suite has been good at letting me know where I'm thinking wrongly. |
| 07:13 | I'm on first-name basis with a few of the tests by now. :) | |
| 07:13 | mberends | etched on your fingers, no doubt :) |
| 07:14 | masak | I'm now of the opinion that implementing a parser is something many programmers should try at least once. |
| 07:14 | mberends | for great justice |
| 07:14 | masak | that's why I'm eager to put much of it in a series of blog posts. |
| 07:15 | mberends: http://www.youtube.com/watch?v=qItugh-fFgg | |
| 07:15 | mberends | at least once, they get better each time |
| 07:16 | masak | yes. I think I'll have a much better chance to grok nqp-rx after this. |
| 07:17 | mberends | cool "all your base are belong to us" reference :-) # for backloggers |
| 07:17 | masak | mberends: that's where "for great justice" comes from. :) |
| 07:18 | mberends | read that on Wikipedia too |
| 07:19 | the video is more derived content, but fits the meme well | |
| 07:19 | OJ appears :) | |
| 07:23 | * masak | wishes he knew enough Japanese to be able to read the Japanese in that Wikipedia article, not just the English translation |
| 07:24 | masak | some things I grok a posteriori, though. had '通信士' ('communication operator') been Chinese, it could have meant 'through-send-scholar'. |
| 07:25 | which makes sense. :) | |
| 07:25 | mberends | related Fox news piece: http://www.youtube.com/watch?v=cQnDkgdIn_A&NR=1 |
| 07:25 | etc. | |
| 07:26 | masak | roses are red / violets are blue / all my base / are belong to you |
| 07:26 | mberends | haha |
| 07:27 | masak | some day I will meet a partner nerdy enough to appreciate that one. :) |
| 07:27 | mberends | and then appreciate that partner :) |
| 07:28 | masak | of course! all my base would be belong to her. |
| 07:29 | mberends | even your base pairs |
| 07:29 | masak | I'm willing to use them for cross-breeding experiments, yes. |
| 07:30 | mberends | aww, sweet. *sigh* |
| 07:32 | masak | :P |
| 07:36 | mberends | still backlogging, it was an interesting past 8 hours |
| 07:40 | moritz_ | good morning |
| 07:40 | masak | moritz_! \o/ |
| 07:40 | * spinclad | iz backlogging the last week. that too has been interesting on first glimpse. |
| 07:40 | mberends | good morning moritz_ |
| 07:41 | spinclad | good moritz, morniing |
| 07:41 | masak | you want to see interesting? wait 'til ng lands. :) |
| 07:41 | laziness! infinite lists! metamodels! | |
| 07:41 | variables in regexes! | |
| 07:42 | moritz_ | Mu! |
| 07:42 | spinclad | specchanges! |
| 07:43 | iz all gud | |
| 07:43 | masak | rakudo: Mu # moritz_: doesn't master have Mu already? |
| 07:43 | p6eval | rakudo 7ef386: ( no output ) |
| 07:44 | moritz_ | masak: yes, but only as an alias to Object |
| 07:45 | masak | moritz_: ah. |
| 07:45 | rakudo: say Mu === Object | |
| 07:45 | p6eval | rakudo 7ef386: 1 |
| 07:45 | * spinclad | -> bed & # good turningearth, all |
| 07:46 | masak | rakudo: say [-] (Mu, Object)>>.WHICH |
| 07:46 | p6eval | rakudo 7ef386: 0 |
| 07:46 | masak | :) |
| 07:50 | rakudo: say True.name | |
| 07:50 | p6eval | rakudo 7ef386: Method 'name' not found for invocant of class ''in Main (file src/gen_setting.pm, line 324) |
| 07:50 | cotto_work joined #perl6 | |
| 07:50 | masak | rakudo: say Bool::True.name |
| 07:50 | p6eval | rakudo 7ef386: Method 'name' not found for invocant of class ''in Main (file src/gen_setting.pm, line 324) |
| 07:50 | * masak | submits rakudobug |
| 07:51 | masak | there are just so many ways in which the Bool type doesn't behave like an enum... |
| 07:51 | jnthn: is Bool implemented as an enum in ng? :) | |
| 07:52 | moritz_ | masak: that's already submitted |
| 07:52 | masak | ok. |
| 07:52 | * masak | stands down |
| 07:52 | masak | I had a feeling it might. |
| 08:03 | ok, time for me to buy nom and then go to bed. | |
| 08:03 | see you later today, #perl6. | |
| 08:18 | zloyrusskiy joined #perl6 | |
| 08:22 | kaare joined #perl6 | |
| 08:26 | pnate joined #perl6 | |
| 08:37 | iblechbot joined #perl6 | |
| 08:44 | beggars joined #perl6 | |
| 08:51 | digirave joined #perl6 | |
| 08:52 | digirave | anyone have installed http://moritz.faui2k3.org/en/ilbot before? |
| 09:01 | * moritz_ | did |
| 09:02 | moritz_ | but sometimes I get the impression the installation is not for the faint of hearted :/ |
| 09:15 | digirave | just finished installing |
| 09:15 | noticed .htaccess is hard coded for / root install only, had to modd it | |
| 09:19 | digirave left #perl6 | |
| 09:27 | moritz_ | there might be some links in the template that are also hard-coded for / |
| 09:29 | * moritz_ | will be offline for most of the weekend |
| 09:30 | hanekomu_ joined #perl6 | |
| 09:31 | yako joined #perl6 | |
| 09:40 | digirave joined #perl6 | |
| 10:07 | JimmyZ joined #perl6 | |
| 10:23 | snarkyboojum joined #perl6 | |
| 10:25 | szabgab joined #perl6 | |
| 10:30 | colomon joined #perl6 | |
| 10:57 | huf | hm, so scripts get the extension .p6 but modules are still .pm, right? |
| 10:59 | mberends | the .pm module convention is fairly common, but the .p6 extension is more a matter of personal taste |
| 11:00 | in fact "use Test" currently implies reading a file called Test.pm, but extensions .pl and .pl6 (yuk) are valid | |
| 11:01 | huf | modules with extensions other than .pm are supported? uh |
| 11:02 | mberends | in theory maybe, but not in practice. Rakudo can also use modules suffixed .pir and .pbc |
| 11:09 | The preference is for all perl scripts to use the .pl extension or no extension at all, and for the shebang line or a perl-6-only construct such as "class" or "use v6;" to indicate Perl 6, and to otherwise default to Perl 5. Alas, no implementation does all that yet. | |
| 11:16 | viklund joined #perl6 | |
| 11:18 | mberends | OH HAI viklund, how are things? |
| 11:33 | mikehh joined #perl6 | |
| 11:38 | iblechbot joined #perl6 | |
| 11:44 | envi_home joined #perl6 | |
| 11:45 | envi_home2 joined #perl6 | |
| 12:07 | pmurias joined #perl6 | |
| 12:10 | zloyrusskiy joined #perl6 | |
| 12:24 | colomon_ joined #perl6 | |
| 12:30 | parduncia joined #perl6 | |
| 12:32 | xomas_ joined #perl6 | |
| 12:33 | meppl joined #perl6 | |
| 12:46 | mikehh joined #perl6 | |
| 12:51 | jnthn | afternoon, #perl6 |
| 12:51 | phenny | jnthn: 02:54Z <diakopter> tell jnthn ok, now you've gone and done it. ^^ # apt-get install mono-csharp-shell mono-gmcs # in Ubuntu Karmic |
| 12:54 | mberends | afternoon, jnthn |
| 12:59 | * jnthn | yawns |
| 13:05 | sjohnson | yo jnthn |
| 13:06 | jnthn | sjohnson: oh hai |
| 13:12 | iblechbot joined #perl6 | |
| 13:20 | hanekom__ joined #perl6 | |
| 13:23 | colomon joined #perl6 | |
| 13:49 | colomon joined #perl6 | |
| 13:52 | colomon | masak: I've got a weird bug for you... |
| 13:54 | When I try to run master rakudo from my ng rakudo root directory, I get the "You need to run make install" message like master has not been installed. If I run it from any other directory it's fine. | |
| 14:02 | pmichaud | colomon: that's because it's finding the wrong dynamic libraries, likely. |
| 14:02 | good morning, #perl6 | |
| 14:02 | jnthn | o/ |
| 14:02 | colomon | pmichaud: good morning! |
| 14:03 | I didn't know about the min operator before your Advent post. Yay! | |
| 14:05 | pmichaud | yes, people are often surprised by that one :-) |
| 14:13 | colomon | I knew there was @array.min, and was stymied by the lack of min($a, $b). |
| 14:14 | Knowing about the operator feels huge, though. Really handy, especially with the meta ops. | |
| 14:15 | romanhunt joined #perl6 | |
| 14:17 | payload joined #perl6 | |
| 14:20 | pugs_svn | r29260 | pmichaud++ | [perl6advent] Some perl6advent schedule/topic updates. |
| 14:22 | * jnthn | just read the Perl 6 advent entries so far and is impressed. |
| 14:23 | jnthn | Good work, folks. :-) |
| 14:27 | colomon | I know I've learned several new-to-me perl 6 tricks already... |
| 14:28 | Happy comments rolling in about the metaoperators post, too... | |
| 14:29 | payload joined #perl6 | |
| 14:35 | romanhunt left #perl6 | |
| 14:45 | payload1 joined #perl6 | |
| 14:47 | astrojp left #perl6 | |
| 14:49 | pugs_svn | r29261 | pmurias++ | [mildew] more porting over to new STD, t/if.t works |
| 14:49 | pmurias | diakopter: hi |
| 14:49 | mathw | pmichaud: Advent Calendar win :) |
| 14:49 | kcwu joined #perl6 | |
| 14:50 | colomon | ng: say Inf.WHAT |
| 14:50 | p6eval | ng 545373: Num() |
| 14:55 | colomon | ng: say sin(1.2e0) |
| 14:55 | p6eval | ng 545373: 0.932039085967226 |
| 14:55 | colomon | ng: say sin(Inf) |
| 14:55 | p6eval | ng 545373: too many positional arguments: 2 passed, 1 expectedcurrent instr.: '&sin' pc 185594 (src/gen/core.pir:0) |
| 14:55 | colomon | ng: say (1.2e0).WHAT |
| 14:55 | p6eval | ng 545373: Num() |
| 14:56 | colomon | ng: say Inf.WHAT |
| 14:56 | p6eval | ng 545373: Num() |
| 14:56 | pmichaud | ng: say Inf.PARROT |
| 14:56 | p6eval | ng 545373: Float |
| 14:56 | pmichaud | hmmm. |
| 14:57 | romanhunt joined #perl6 | |
| 14:57 | romanhunt | morning all |
| 14:58 | does anyone have any opinions on the book Perl6 and Parrot essentials? | |
| 14:59 | pmichaud | romanhunt: very out of date. |
| 14:59 | mathw | I've got a copy |
| 14:59 | romanhunt | thx |
| 14:59 | mathw | It's good for nostalgic value |
| 15:00 | romanhunt | unfortunately I cannot afford to spend the cash if its out of date. I was just hoping for something to read on the train etc |
| 15:00 | frettled | Perhaps we should work on a small ebook? :D |
| 15:00 | pmichaud | are you more interested in p6 or parrot? |
| 15:00 | romanhunt | perl 6 |
| 15:01 | am0c joined #perl6 | |
| 15:01 | romanhunt | both concepts are pretty facsinating though |
| 15:01 | pmichaud | some of the parrot stuff is available as an e-book now (and updated). there's not really an up-to-date perl6 book at the moment, although many of us are working on that. |
| 15:01 | romanhunt | the multi-language interpreter <=> multi-interopreter-language ... |
| 15:02 | I do want to learn parrot though | |
| 15:04 | pugs_svn | r29262 | pmichaud++ | [pm.txt]: Another short question for TimToady++ |
| 15:04 | r29262 | | |
| 15:04 | r29262 | Pm-13: What's the parent type of C<Regex>? (I hope it's C<Method>.) | |
| 15:08 | ng_feed | rakudo-ng: colomon++ |
| 15:08 | rakudo-ng: Add all of the Num trig functions back in. | |
| 15:08 | colomon | ng: say Inf.sin |
| 15:08 | p6eval | ng 545373: NaN |
| 15:08 | colomon | oooo, that worked. |
| 15:08 | pmichaud | ng: say Inf ~~ Num |
| 15:08 | p6eval | ng 545373: 1 |
| 15:12 | dalek | rakudo/ng: 5b836a4 | (Solomon Foster)++ | src/core/Num.pm: |
| 15:12 | rakudo/ng: Add all of the Num trig functions back in. | |
| 15:12 | rakudo/ng: WARNING: Unfortunately, the trig spec tests are well beyond ng's capabilities at the moment. atan, sin, cos, tan, sec, asin, and acos pass the basic tests from the old trig test suite (not counting the Inf tests, which all fail hard). The rest are basically untested at this point. I think I forgot to even implement atan2. | |
| 15:12 | rakudo/ng: review: http://github.com/rakudo/rakud[…]18ba814474da8e688 | |
| 15:16 | pugs_svn | r29263 | pmichaud++ | [pm.txt]: Another question for TimToady++ |
| 15:16 | r29263 | | |
| 15:16 | r29263 | Pm-14: Is the :c modifier allowed on token/regex/rule? I.e., could | |
| 15:16 | r29263 | someone do...? | |
| 15:16 | r29263 | 'abcdef' ~~ token :c(1) { cdef } | |
| 15:19 | r29264 | mattw++ | [advent] subject alterations for mathw | |
| 15:30 | he_ joined #perl6 | |
| 15:42 | rodi joined #perl6 | |
| 15:50 | Psyche^ joined #perl6 | |
| 16:15 | am0c__ joined #perl6 | |
| 16:15 | colomon_ joined #perl6 | |
| 16:17 | dalek | nqp-rx: e6cb831 | pmichaud++ | src/Regex/Regex.pir: |
| 16:17 | nqp-rx: Initial version of regex matching. | |
| 16:17 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]ab374a2052b31b749 | |
| 16:17 | nqp-rx: fe021de | pmichaud++ | (4 files): | |
| 16:17 | nqp-rx: Add ability to smartmatch regex/token/rule (although anchoring is | |
| 16:17 | nqp-rx: currently incorrect). | |
| 16:17 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]2f45e6dc65c0e6b0a | |
| 16:17 | nqp-rx: 01c9533 | pmichaud++ | (5 files): | |
| 16:17 | nqp-rx: Refactoring for Regex::Method. | |
| 16:17 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]8566cb0ee05fbfb47 | |
| 16:18 | nqp-rx: 6297c85 | pmichaud++ | src/Regex/Regex.pir: | |
| 16:18 | nqp-rx: Remove obsolete file. | |
| 16:18 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]5cd56dc6a97a90e54 | |
| 16:18 | nqp-rx: df1c1da | pmichaud++ | src/NQP/Actions.pm: | |
| 16:18 | nqp-rx: Small refactor of regex/token/rule action. | |
| 16:18 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]b0f2e4df779393436 | |
| 16:18 | nqp-rx: 5a0677a | pmichaud++ | (3 files): | |
| 16:18 | nqp-rx: Add /.../ form of regexes and matching. | |
| 16:18 | nqp-rx: review: http://github.com/perl6/nqp-rx[…]f0df081507b3eb90b | |
| 16:36 | zloyrusskiy joined #perl6 | |
| 16:45 | romanhunt joined #perl6 | |
| 16:45 | Wolfman2000 | *yawn* morning |
| 16:53 | jeremiah joined #perl6 | |
| 16:53 | jeremiah | OH HAI |
| 16:53 | payload joined #perl6 | |
| 16:53 | jeremiah | is there a perl6 testing idiom for 'use'ing modules like in perl5? |
| 16:54 | I'm thinking of something equivalent to use_ok | |
| 17:00 | colomon joined #perl6 | |
| 17:04 | snearch_ joined #perl6 | |
| 17:05 | pnate2 joined #perl6 | |
| 17:08 | jeremiah | rakudo; use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; |
| 17:09 | rakudo: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; | |
| 17:09 | p6eval | rakudo 7ef386: ( no output ) |
| 17:09 | jeremiah | perl6: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; |
| 17:09 | p6eval | elf 29264: Cant locate Test in ( . ). |
| 17:09 | ..rakudo 7ef386: ( no output ) | |
| 17:09 | ..pugs: pugs: *** Unsafe function 'use' called under safe mode at /tmp/10oXn2wo4T line 1, column 1 | |
| 17:12 | jnthn | jeremiah: there's some issues with Rakudo evalbot here...don't rely on "no output" meaning anything. |
| 17:12 | jeremiah | okay :) |
| 17:12 | jnthn | ng: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; |
| 17:12 | p6eval | ng 5b836a: 1..1Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0) |
| 17:12 | jnthn | meh. |
| 17:13 | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; is ima_int(9), 1, 'works with ints'; | |
| 17:13 | p6eval | ng 5b836a: 1..1ok 1 - works with ints |
| 17:13 | jeremiah | ah! |
| 17:13 | cool | |
| 17:14 | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; is ima_int("oh hai"), 1, 'works _only_ with ints'; | |
| 17:14 | p6eval | ng 5b836a: 1..1Nominal type check failed for parameter '$x'; expected Int but got Str insteadcurrent instr.: '&ima_int' pc 153 (EVAL_1:56) |
| 17:14 | jeremiah | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; dies_ok ima_int("oh hai"), 1, 'works _only_ with ints'; |
| 17:14 | p6eval | ng 5b836a: 1..1Nominal type check failed for parameter '$x'; expected Int but got Str insteadcurrent instr.: '&ima_int' pc 153 (EVAL_1:56) |
| 17:15 | jnthn | jeremiah: You need to pass dies_ok a closure. |
| 17:15 | jeremiah | ah, okay. |
| 17:15 | jnthn | dies_ok { ima_int("lol") }, ... |
| 17:15 | jeremiah | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; dies_ok { ima_int("oh hai") } 'works _only_ with ints'; |
| 17:15 | p6eval | ng 5b836a: sh: ./perl6: No such file or directory |
| 17:16 | jnthn | ah, that'll just be the half-hourly rebuild. |
| 17:16 | jeremiah | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; dies_ok { ima_int("oh hai") }, 'works _only_ with ints'; |
| 17:16 | p6eval | ng 5b836a: sh: ./perl6: No such file or directory |
| 17:18 | diakopter | mberends: I saw your comments with masak... the new jsmeta/sprixel works the same way.. |
| 17:19 | except instead of trampolining method calls (or recursive method calls as in TreeSpider) it's all inlined into one loop/switch | |
| 17:19 | and the clones are extremely economical | |
| 17:20 | there is just 1 allocation for each clone | |
| 17:22 | mberends: except now I've got the itch to write a C# edition... b/c I'm morbidly curious how much faster it'd be :/ | |
| 17:23 | jnthn: C# C# C# | |
| 17:24 | jnthn | diakopter: Well, my priority is getting ng sorted out for now. :-) |
| 17:26 | ng_feed | rakudo-ng: (jnthn)++ |
| 17:26 | rakudo-ng: Get role to instance application implemented (operators are fully in Perl 6, applicator is in NQP with one little Parrot-specific bit that we can eliminate later). | |
| 17:27 | jnthn | Mmmm. does and but are so nicer in ng. :-) |
| 17:27 | nihiliad joined #perl6 | |
| 17:29 | astrojp joined #perl6 | |
| 17:30 | dalek | rakudo/ng: 10bc6e8 | jnthn++ | (6 files): |
| 17:30 | rakudo/ng: Get role to instance application implemented (operators are fully in Perl 6, applicator is in NQP with one little Parrot-specific bit that we can eliminate later). | |
| 17:30 | rakudo/ng: review: http://github.com/rakudo/rakud[…]01175632915e34aa5 | |
| 17:31 | jnthn | huh? |
| 17:31 | dalek reports ng as well as ng_feed now? | |
| 17:31 | * jnthn | would complain, but he likes the karma win. |
| 17:32 | * mathw | would complain, because it clogs up his screen |
| 17:32 | * Wolfman2000 | would complain, but he's doing homework |
| 17:36 | cognominal | jnthn++ # more karma |
| 17:37 | jnthn | @karma jnthn |
| 17:37 | lambdabot | You have a karma of 587 |
| 17:38 | * jnthn | hopes his new laptop comes _early_ next week. |
| 17:44 | pnate2 joined #perl6 | |
| 17:55 | ng_feed | rakudo-ng: (jnthn)++ |
| 17:55 | rakudo-ng: Allow my $x does Foo to work again. | |
| 17:55 | rakudo-ng: (jnthn)++ | |
| 17:55 | rakudo-ng: Support for class Dog { does Smell }. | |
| 17:56 | pmurias joined #perl6 | |
| 17:57 | diakopter | pmurias: rehi |
| 17:58 | pmurias | diakopter: once i port mildew to the new STD i could add a C# backend |
| 17:59 | dalek | rakudo/ng: 1f1e259 | jnthn++ | src/core/traits.pm: |
| 17:59 | rakudo/ng: Allow my $x does Foo to work again. | |
| 17:59 | rakudo/ng: review: http://github.com/rakudo/rakud[…]aa891ae1d7cbc5a9e | |
| 17:59 | rakudo/ng: 51c596c | jnthn++ | src/Perl6/ (2 files): | |
| 17:59 | rakudo/ng: Support for class Dog { does Smell }. | |
| 17:59 | rakudo/ng: review: http://github.com/rakudo/rakud[…]d83c00de4261ebf71 | |
| 17:59 | nihiliad joined #perl6 | |
| 18:01 | diakopter | pmurias: cool |
| 18:23 | pmurias_ joined #perl6 | |
| 18:24 | pmurias joined #perl6 | |
| 18:26 | pmurias | diakopter: i'm not familiar with .net so i will need help with writing the runtime |
| 18:28 | quantumEd joined #perl6 | |
| 18:37 | pointme joined #perl6 | |
| 18:37 | zaslon joined #perl6 | |
| 18:43 | justatheory joined #perl6 | |
| 19:06 | justatheory joined #perl6 | |
| 19:06 | ng_feed | rakudo-ng: colomon++ |
| 19:06 | rakudo-ng: Add Num.atan2. | |
| 19:06 | rakudo-ng: colomon++ | |
| 19:06 | rakudo-ng: Temporary patch to Any!to-radians and Any!from-radians to get them working in ng. Also add Any.log. | |
| 19:07 | finanalyst joined #perl6 | |
| 19:07 | colomon_ joined #perl6 | |
| 19:08 | dalek | rakudo/ng: 8948704 | (Solomon Foster)++ | src/core/Any-num.pm: |
| 19:08 | rakudo/ng: Temporary patch to Any!to-radians and Any!from-radians to get them working in ng. Also add Any.log. | |
| 19:08 | rakudo/ng: review: http://github.com/rakudo/rakud[…]3c624277c866d2bda | |
| 19:08 | rakudo/ng: 15da065 | (Solomon Foster)++ | src/core/Num.pm: | |
| 19:08 | rakudo/ng: Add Num.atan2. | |
| 19:08 | rakudo/ng: review: http://github.com/rakudo/rakud[…]baf718711e2806be4 | |
| 19:16 | quantumEd left #perl6 | |
| 19:21 | ng_feed | rakudo-ng: (jnthn)++ |
| 19:21 | rakudo-ng: Put back .?, .+, .* for method calls by name. | |
| 19:24 | colomon_ | jnthn: while I was messing around with trig, I discovered => doesn't work in ng yet. |
| 19:25 | dalek | rakudo/ng: 53a6f77 | jnthn++ | src/glue/dispatch.pir: |
| 19:25 | rakudo/ng: Put back .?, .+, .* for method calls by name. | |
| 19:25 | rakudo/ng: review: http://github.com/rakudo/rakud[…]6e491929d939f03b5 | |
| 19:25 | colomon_ | I looked at adding it, but I can't figure out how to create a Pair other than :key(value), which doesn't seem useful for writing => |
| 19:36 | jnthn | colomon_: Pair.new(key => ..., value => ...) |
| 19:36 | I think. | |
| 19:41 | colomon_ | jnthn: errr.... => doesn't work, does it? That was the whole point of the exercise... |
| 19:42 | and ... | |
| 19:42 | > say Pair.new(:key("hello"), :value("42")); | |
| 19:42 | Could not find non-existent sub &fail | |
| 19:42 | lambdabot | <no location info>: parse error on input `;' |
| 19:42 | colomon_ | Just occurred to me, though, that could be say failing rather than the new. Let me check... |
| 19:43 | ah, that's it, the new does work. | |
| 19:43 | Groovy, I think I can quickly make some improvements here... | |
| 19:43 | jnthn | colomon_: There's two => thingies. |
| 19:44 | colomon_: One is the operator | |
| 19:44 | colomon_: The other is parsed by fatarrow. | |
| 19:44 | colomon_ | oh? |
| 19:44 | jnthn | And happens when there's a literal on the lhs. |
| 19:44 | colomon_: See STD, fatarrow | |
| 19:45 | colomon_ | I think I'll try to add Pair.Str and Pair.perl first, they should be easy. |
| 19:45 | SirKay joined #perl6 | |
| 19:45 | jnthn | colomon_: Which is separate from token infix:sym« => » |
| 19:45 | colomon_: OK, nice :) | |
| 19:47 | colomon_ | rakudo: say 10 => 20; |
| 19:47 | p6eval | rakudo 7ef386: 10 20 |
| 19:47 | jaldhar joined #perl6 | |
| 19:47 | payload joined #perl6 | |
| 19:48 | * jnthn | afk for a bit |
| 19:49 | colomon_ | rakudo: say (10 => 20).Str |
| 19:49 | p6eval | rakudo 7ef386: Pair()<0x11fb390> |
| 19:50 | colomon_ | rakudo: say ~(10 => 20) |
| 19:50 | p6eval | rakudo 7ef386: 10 20 |
| 19:51 | r0bby joined #perl6 | |
| 19:58 | colomon_ | Just want to check and make sure the spec doesn't say anything about defining Pair.Str or ~Pair... anyone know? |
| 20:09 | ng_feed | rakudo-ng: colomon++ |
| 20:09 | rakudo-ng: Early versions of Pair.perl and Pair.Str. | |
| 20:10 | * colomon_ | is starting to think helping write its library is a good way to learn a language. :) |
| 20:11 | dalek | rakudo/ng: 17a1ec1 | (Solomon Foster)++ | src/core/Pair.pm: |
| 20:11 | rakudo/ng: Early versions of Pair.perl and Pair.Str. | |
| 20:11 | rakudo/ng: review: http://github.com/rakudo/rakud[…]428eb026803495fe1 | |
| 20:13 | finanalyst joined #perl6 | |
| 20:14 | finanalyst left #perl6 | |
| 20:15 | colomon_ | Hmmm... looks like fatarrow is already in ng's grammer. |
| 20:19 | Doesn't actually seem to be infix:sym« => » in STD.pm ? | |
| 20:19 | PacoLinux joined #perl6 | |
| 20:21 | jeremiah | Can't find ./strict in @*INC |
| 20:21 | ^^ What does that mean? | |
| 20:22 | Am I missing a library? | |
| 20:22 | colomon_ | did you say "use strict" in a Perl 6 program? |
| 20:23 | jeremiah | I'm not sure, I am trying to compile masak's Web |
| 20:23 | And I think his Configure script calls strict | |
| 20:23 | But I'm not certain since the next line of the error message is: | |
| 20:24 | colomon_ | I don't know anything about Web, alas. |
| 20:24 | jeremiah | in Main (file <unknown>, line <unknown>) |
| 20:24 | How can I print out the contents of @*INC? | |
| 20:24 | colomon_ | rakudo: say @*INC.perl; |
| 20:24 | p6eval | rakudo 7ef386: ["/home/p6eval/.perl6/lib", "/home/p6eval//p2/lib/parrot/1.8.0-devel/languages/perl6/lib", "lib", "."] |
| 20:24 | colomon_ | but that won't be it. |
| 20:25 | jeremiah | no? |
| 20:25 | colomon_ | there absolutely should not a ./strict for you to find. |
| 20:25 | jeremiah | okay |
| 20:25 | colomon_ | use strict is a Perl 5ism. |
| 20:25 | there is no Perl 6 equivalent yet (and actually, by default it is strict). | |
| 20:25 | jeremiah | I see. |
| 20:26 | I think it is Configure.pm calling strict | |
| 20:26 | In any case, strace outputs this: | |
| 20:26 | stat64("./strict.pm", 0xbfc0affc) = -1 ENOENT (No such file or directory) | |
| 20:28 | colomon_ | Huh. Web/lib/Configure.pm does not call use strict. |
| 20:28 | wonder if you're getting the wrong Configure.pm? | |
| 20:28 | jeremiah | I think I am! |
| 20:28 | Good catch! | |
| 20:28 | I may have moved the wrong one. | |
| 20:29 | Going to diff them now | |
| 20:30 | Yup. Wrong Configure.pm | |
| 20:31 | Lo and behold, it works. | |
| 20:31 | Thanks colomon_ | |
| 20:32 | colomon_ | jeremiah: you're welcome |
| 20:34 | huf | where can i find a list of existing perl6 modules? |
| 20:34 | colomon_ | huf: there isn't exactly one yet. |
| 20:35 | the closest I'm aware of is proto's projects list. | |
| 20:35 | let me see... | |
| 20:35 | nbrown_ | huf: http://github.com/masak/proto/[…]ter/projects.list |
| 20:35 | zloyrusskiy joined #perl6 | |
| 20:36 | nbrown_ | huf: like colmon said it's not complete, but it has a few |
| 20:36 | huf | thanks |
| 20:36 | colomon_ | http://github.com/masak/proto/[…]ter/projects.list ... whoops, nbrown_++ beat me to it. :) |
| 20:36 | masak joined #perl6 | |
| 20:36 | masak | oh hai, #perl6. |
| 20:36 | mberends | speak of the ... breaker of things ? |
| 20:37 | masak | anything need breaking? :) |
| 20:38 | mberends | nah, your brainchild projects.list was being recommended |
| 20:38 | jeremiah | lolitsmasak! |
| 20:39 | I am still working in installing Web :P | |
| 20:39 | masak | omgitsjeremiah! |
| 20:39 | jeremiah | (And blogging about it.) |
| 20:39 | masak | jeremiah: let me know if I can help. |
| 20:39 | colomon_ | jnthn, pmichaud: If one of you gets the chance, I've got an infix:«=>» for Pair, but can't figure out how to make the ng grammar recognize it. |
| 20:39 | jeremiah | I've written 500 words, but I think about 100 more and it'll be finished. :) |
| 20:39 | masak | jeremiah: I'm currently working on getting the last grant week blog post out. |
| 20:39 | jeremiah | aha, groovy. |
| 20:41 | So, one of the things is, perl6 doesn't necessarily have all the libraries needed in PERL6LIB to configure a given module | |
| 20:41 | For example, when installing Web, I needed to add Configure.pm to PERL6LIB | |
| 20:42 | But I put the wrong one there, since there are three I think under the rakudo dir. | |
| 20:43 | masak | jeremiah: PERL6LIB handling is not fun, agree. |
| 20:43 | jeremiah | :) |
| 20:44 | masak | jeremiah: that's probably the main reason I'm pushing for installed-modules despite being initially hesitant. |
| 20:44 | jeremiah: after that one lands, PERL6LIB will need to be set only for not-yet-installed modules. | |
| 20:44 | jeremiah | Well, with Configure.pm, that seems like a really good solution. |
| 20:44 | Because there is more than on Configure.pm and users might get confused as to which one they want / need | |
| 20:44 | romanhunt joined #perl6 | |
| 20:45 | masak | nod. |
| 20:45 | proto introduces 'unintended success' in many dimensions. | |
| 20:45 | jeremiah | heh |
| 20:45 | masak | I consider the proliferation of 'Configure.pm' in various places to be one of those dimensions. |
| 20:49 | colomon joined #perl6 | |
| 21:07 | mberends | masak: those who do not learn history are doomed to repeat it: http://trac.parrot.org/parrot/[…]e/README?rev=7051 ;-) |
| 21:08 | Wolfman2000 | rakudo: say "©".subst(/./, { ord($/).fmt('%X') }, :global); |
| 21:08 | p6eval | rakudo 7ef386: A9 |
| 21:08 | Wolfman2000 | err |
| 21:08 | rakudo: say "©".subst(/./, { ord($/).fmt('%04X') }, :global); | |
| 21:08 | p6eval | rakudo 7ef386: 00A9 |
| 21:08 | Wolfman2000 | ...looks like I have to recompile rakudo |
| 21:08 | masak | should ord() be defined on Str? not Buf? |
| 21:09 | Wolfman2000 | masak: got me. |
| 21:09 | I did discover something interesting though | |
| 21:09 | rakudo: say "hi".ord | |
| 21:09 | p6eval | rakudo 7ef386: 104 |
| 21:09 | Wolfman2000 | rakudo: say "h".ord |
| 21:09 | p6eval | rakudo 7ef386: 104 |
| 21:09 | Wolfman2000 | ord only looks at the first character |
| 21:09 | or buf, or whatever it is | |
| 21:10 | masak | mberends: I'm curious about your URL, but I've yet to get through to the server. |
| 21:10 | jeremiah | doing a 'perl6 t/01-web-basics.t' in Web's test dir produces this error Can't find ./Web in @*INC |
| 21:10 | I do have Web in PERL6LIB | |
| 21:10 | Ah, but only as a dir, not as a .pm | |
| 21:11 | masak | jeremiah: export PERL6LIB=`pwd`/lib |
| 21:11 | mberends | masak: tracked down pmichaud++'s first release of p6ge, relevant to parsers and grammar engines. 2004-11-18! |
| 21:11 | jeremiah | ah okay |
| 21:12 | masak | mberends: oh yes. I've actually tracked down the same file once. :) |
| 21:12 | mberends: PGE is a direct descendant of P6GE, IIRC. | |
| 21:14 | mberends | just wanted to be careful not to re-invent the same wheel ;) |
| 21:14 | masak | hm, which wheel exactly? I'm already fully aware that what I'm writing is a port of PGE :) |
| 21:15 | that's why it has a very similar name. | |
| 21:15 | mberends | my perhaps redundant idea of porting (back) to C |
| 21:15 | masak | oh! |
| 21:15 | now I see the relevant section. | |
| 21:17 | right, P6GE started out as a PIR code generator written in C, and then changed into a PIR code generator written in PIR. | |
| 21:17 | mberends: but your plan is to make neither, right? | |
| 21:17 | yours would be a pure C regex engine. | |
| 21:18 | pmichaud | If I were to attempt a p6 regex engine in C, I'd start with nqp-rx. |
| 21:18 | mberends | indeed, so there might be something not repeating there. The output would be the match object. |
| 21:18 | pmichaud: thanks for a very good suggestion | |
| 21:18 | lmc joined #perl6 | |
| 21:18 | pmichaud | actually, I think it's more accurate to say that p6regex engines produce cursors nowadays |
| 21:19 | match objects are really side-effects | |
| 21:19 | masak | nod. |
| 21:19 | pmichaud | (even though they're the side effect we're most interested in :-) |
| 21:19 | mberends | ok, need to sort out my terminology |
| 21:19 | masak | I think I grokked the cursors model for a short while. need to re-grok it again soon. |
| 21:20 | pmichaud | nqp-rx is much clearer on that model than pge, fwiw |
| 21:20 | mberends | "second system done right" |
| 21:20 | masak | :) |
| 21:21 | pmichaud | anyway, to get p6regexes to work in C, you really need an underlying object model and methods |
| 21:21 | masak | pmichaud: my plan for GGE is to first implement PGE to my own satisfaction, and then try to refactor it into nqp-rx. |
| 21:21 | pmurias joined #perl6 | |
| 21:22 | jeremiah | t/01-web-basics.t ............. Symbol '$PERL6LIB' not predeclared in <anonymous> (t/01-web-basics.t:5) |
| 21:22 | pmichaud | masak: (refactor into nqp-rx) ... that doesn't sound right. |
| 21:23 | jeremiah | So reseting PERL6LIB produces a different test message. |
| 21:23 | pmichaud | nqp-rx isn't a refactor of PGE. It's a rewrite. |
| 21:23 | masak | jeremiah: o.O |
| 21:23 | jeremiah | I know, right. Weird. |
| 21:23 | masak | pmichaud: yes, I know. maybe that plan won't work. |
| 21:24 | jeremiah: I'm now going to open t/01/web-basics.t to see what it contains. | |
| 21:24 | jeremiah | It is short. :) |
| 21:24 | masak | and totally useless. :/ |
| 21:24 | jeremiah | Well, doesn't it check to see if we can find Web.pm? |
| 21:24 | That seems useflu. | |
| 21:24 | oops | |
| 21:25 | useful. | |
| 21:25 | masak | jeremiah: I don't think so anymore. |
| 21:25 | jeremiah | okay. |
| 21:25 | masak | jeremiah: if the real tests run, then we've foind Web.pm. |
| 21:25 | no need to test it individually. | |
| 21:25 | jeremiah | okay |
| 21:25 | masak | it just means there will be one more failing test in a sea of failing tests... |
| 21:26 | jeremiah | I'll just jump over the tests for now and see if I can use Web.pm directly. |
| 21:26 | masak | Ovid (I think it was him) has written at length about the evils of use_ok in Perl 5. |
| 21:26 | jeremiah: that sounds like a plan. | |
| 21:26 | jeremiah | cool |
| 21:38 | fridim_ joined #perl6 | |
| 21:41 | masak | S05 says :actions, but Rakudo uses :action. which is it? |
| 21:46 | as uasi++ points out in http://twitter.com/uasi/status/6366831553 , there are numerous problems with S05:3794. calling the grammar 'Integer' produces a strange error in Rakudo. there's a missing semicolon on the line ending with "'binary'". &make doesn't work, since the parameter is named $match, not $/. | |
| 21:47 | I'll fix the ones that seem obvious, and leave the rest to TimToady or someone. | |
| 21:48 | colomon_ joined #perl6 | |
| 21:49 | pugs_svn | r29265 | masak++ | [S05] fixed a number of infelicities in action example |
| 21:49 | jnthn | evenin' |
| 21:49 | masak | also, while I'm thinking about these things, why instantiate the action object? it has no state. |
| 21:49 | jnthn! \o/ | |
| 21:50 | colomon_ | o/ |
| 21:50 | masak | rakudo: grammar Integer { rule TOP { x } }; Integer.parse("x") |
| 21:51 | p6eval | rakudo 7ef386: ( no output ) |
| 21:51 | masak | locally, that says "set_attr_str() not implemented in class 'Integer'" |
| 21:51 | * masak | submits rakudobug |
| 21:51 | jnthn | meh |
| 21:51 | rgrau | could any of the rakudoperl twitter admins tweet today's advent? it deserves to be known :) |
| 21:51 | masak | jnthn: works in ng? :P |
| 21:52 | jnthn | masak: Dobut it. |
| 21:52 | masak: I fear it's the darn Parrot Integer PMC leaking in...even though we're in a HLL. :-/ | |
| 21:52 | masak | hugme: help |
| 21:52 | hugme | masak: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message ) |
| 21:54 | masak | hugme: tweet rakudoperl Perl 6 Advent Calendar Day 5: Metaoperators -- http://bit.ly/6ZiHlr |
| 21:54 | * hugme | hugs masak; tweet delivered |
| 21:54 | masak | jnthn: well, that's just too bad. |
| 21:54 | literally. it's exceedingly bad. | |
| 21:54 | rgrau | thanks masak++ |
| 21:54 | masak | rgrau: thanks for the suggestion. :) |
| 21:54 | jnthn | masak: It's only my first guess. |
| 21:55 | ng: class Integer { } | |
| 21:55 | p6eval | ng 17a1ec: ( no output ) |
| 21:55 | jnthn | ng: class Integer { }; say Integer |
| 21:55 | masak | jnthn: it sounds reasonable. |
| 21:55 | p6eval | ng 17a1ec: Integer() |
| 21:55 | jnthn | ng: class Integer { }; say Integer.new.WHAT |
| 21:55 | p6eval | ng 17a1ec: Integer() |
| 21:55 | jnthn | hm |
| 21:55 | ng: grammar Integer { }; | |
| 21:55 | p6eval | ng 17a1ec: ( no output ) |
| 21:55 | jnthn | ng: grammar Integer { }; Integer.new |
| 21:55 | p6eval | ng 17a1ec: ( no output ) |
| 21:55 | jnthn | ng: grammar Integer { }; Integer.parse("") |
| 21:55 | p6eval | ng 17a1ec: Could not find non-existent sub diecurrent instr.: 'perl6;Grammar;parse' pc 8144 (src/builtins/Any.pir:52) |
| 21:56 | jnthn | ng: grammar Integer { method TOP { say "called" } }; Integer.parse("x") |
| 21:56 | p6eval | ng 17a1ec: Unexpected named parameter 'grammar' passedcurrent instr.: 'perl6;Integer;TOP' pc 250 (EVAL_1:112) |
| 21:56 | jnthn | heh |
| 21:56 | masak: It looks like ng may resolve it, but I don't think we do rule/regex/token yet. | |
| 21:58 | masak | nod. |
| 21:58 | will we have ng for the December release? or even for Christmas Eve? only time will tell. | |
| 21:58 | * masak | glances longingly skyward |
| 22:01 | jnthn | masak: I'm getting settled down again now in the UK, so am digging in again. :-) |
| 22:01 | masak | hugme: hug jnthn gratefully! |
| 22:01 | * hugme | hugs jnthn |
| 22:01 | jnthn | masak: Things should accelerate once I can haz a laptop that's not powered by clockwork. :-) |
| 22:01 | * masak | thought all digital computers were powered by clocks |
| 22:02 | masak | jnthn: are you getting one of those analog computers? |
| 22:02 | I hear Windows 7 runs smoother on those. | |
| 22:03 | jnthn | masak: I thought everything was smoother in the analog world. ;-) |
| 22:04 | masak | yes, exactly! :) |
| 22:04 | well, as exact as it gets with physical moving parts. :) | |
| 22:06 | snarkyboojum_ joined #perl6 | |
| 22:06 | jeremiah | Solid state analog |
| 22:11 | mathw | jnthn: are you on a seasonal visit to the UK? |
| 22:11 | jnthn | mathw: Sorta. |
| 22:12 | jeremiah | I Sweden, the seasons visit you. |
| 22:12 | jnthn | mathw: At the moment I'm on a looking-after-family-dog visit. :-) |
| 22:12 | mathw | woof |
| 22:12 | jnthn | w00f |
| 22:13 | mathw | oh it's an internet dog is it |
| 22:13 | masak | loldog. |
| 22:13 | jnthn | Mostly it's a sleeping and eating and barking at the postman dog. :-) |
| 22:14 | mathw | sounds a bit like my cat |
| 22:14 | except for the barking at the postman bit | |
| 22:14 | instead of that, he sits on the laptop | |
| 22:14 | jnthn | mathw: I suspect your cat would take less kindly to having a leash put on it and being taken for a walk around the block, though. :-) |
| 22:14 | mathw | probably |
| 22:15 | not many people train their cats to be walked | |
| 22:15 | and I find that self-walking is one of the best features of the cat | |
| 22:18 | snarkyboojum joined #perl6 | |
| 22:24 | jeremiah | A self-walking cat! |
| 22:24 | What will they think of next. | |
| 22:24 | mberends | self-GC (or at least G-hiding) is also superior to dogs |
| 22:26 | mathw | a self-writing compiler? |
| 22:26 | jeremiah | _that_ will be the singularity for sure. |
| 22:27 | mberends | self-certifying wasn't good for mortgages though |
| 22:27 | mathw | yes, when we have a computer that's as smart as jnthn and pmichaud combined |
| 22:27 | but now I'm off to bed | |
| 22:27 | night | |
| 22:27 | masak | mathw: 'night! |
| 22:27 | jeremiah | Self-sleeping human ^^ |
| 22:27 | * Wolfman2000 | is almost done... |
| 22:31 | * jnthn | is finally doing something (small) for book! |
| 22:36 | colomon_ | mathw: how goes the Advent post? |
| 22:38 | snarkyboojum_ joined #perl6 | |
| 22:38 | colomon_ | rakudo: say (-<<(1, 2, 3, 4)).perl |
| 22:38 | p6eval | rakudo 7ef386: say requires an argument at line 2, near " (-<<(1, 2"in Main (file src/gen_setting.pm, line 2593) |
| 22:39 | colomon_ | rakudo: say (-«(1, 2, 3, 4)).perl |
| 22:39 | p6eval | rakudo 7ef386: say requires an argument at line 2, near " (-\x{ab}(1, 2,"in Main (file src/gen_setting.pm, line 2593) |
| 22:44 | masak | rakudo: class A { method true() { False }; method Num() { 42 }; method Str() { "foo" }; method list() { (1,2,3) } }; my $a = A.new; say ?$a; say +$a; say ~$a; say @($a) |
| 22:45 | p6eval | rakudo 7ef386: ( no output ) |
| 22:45 | masak | locally, that yields 0, 42, foo, 123 (each on its own line) |
| 22:45 | Perl 6 aims to remove unnecessary surprises; things that complicate learning and hinder memory. | |
| 22:45 | jnthn | hehe |
| 22:45 | dalek | book: dd9b746 | jnthn++ | src/roles.pod: |
| 22:45 | book: Stub in an initial example we can use for explaining/discussing roles. | |
| 22:45 | book: review: http://github.com/perl6/book/c[…]42c24d9370b08cd98 | |
| 22:45 | book: 7519c2f | jnthn++ | outline.pod: | |
| 22:46 | book: Remove (?) from Roles chapter in outline, add an idea of something else we could have a chapter on. | |
| 22:46 | book: review: http://github.com/perl6/book/c[…]9a69cd694a9b4447e | |
| 22:46 | masak | why do I have to define the methods true, Num, Str, and list to do the above? |
| 22:46 | it's totally random. | |
| 22:46 | Bool, Num, Str and List would have been fine. | |
| 22:46 | or bool, num, str and list. | |
| 22:47 | jnthn | masak: I think there's some improvement to do there, yeah. I do wonder to what degree the Numeric role etc factors in to this. |
| 22:47 | That is, we'd go by those names in th efuture. | |
| 22:47 | And hopefully they'd be more consistent. | |
| 22:48 | masak: I agree that as it currently stands it's sub-optimal though. | |
| 22:48 | colomon_ | Are prefix and postfix hyperoperators supposed to work at the moment in master? I can get >>. to work, and nothing else I've tried this week works. |
| 22:48 | masak | it looks like a corner no-one's ever thought to dust. |
| 22:48 | jnthn | colomon_: No, they don't. |
| 22:48 | colomon_: We only did infix ones. | |
| 22:49 | >>. is a special case. | |
| 22:49 | masak: It's come up in various other ways before. | |
| 22:49 | masak | jnthn: nod. |
| 22:49 | I've been known to bring it up, too. | |
| 22:50 | jnthn | masak: Aye. It's worth asking again. Hopefully each time it's asked, a solution gets more likely. :-) |
| 22:50 | masak | ok, I'll ask it again then. |
| 22:50 | :) | |
| 22:50 | jnthn | ;-) |
| 22:51 | masak | why do the conversion methods to Bool, Str, Num and List look so haphazard? |
| 22:51 | they're pretty important, and it would really help if they were consistent. | |
| 22:51 | jnthn | masak: Part of the problem though is that .Num suggests "return a Num" |
| 22:51 | But we'd rather +42 did not. | |
| 22:51 | We want an Int there. | |
| 22:52 | masak | Int does Num. |
| 22:52 | Wolfman2000 | If $ == $.Int, force Int? I don't know |
| 22:52 | jnthn | masak: In a slightly haphazard kinda way, yes. |
| 22:54 | masak | jnthn++ # @!whoz-op |
| 22:54 | it's a "Kill your darlings" kind of joke to have in a book, but at least I enjoyed it :) | |
| 22:55 | jnthn: oh, and you seem to suffer from the illusion that one can check array membership by smartmatching against the array. that hasn't been true for some time. | |
| 22:55 | jnthn: I can fix it, if you want. | |
| 22:56 | jnthn: easiest is $sender ~~ any(@!whoz-op), I think. | |
| 22:57 | jnthn | masak: Oh, that was taken out? |
| 22:57 | You sure? | |
| 22:57 | masak | 100% sure. |
| 22:57 | that was part of the big smartmatch refactor that got backported into 5.10. | |
| 22:58 | in a way, smartmatch got slightly less smart. | |
| 22:58 | I think I've come around to it being a good change, though. | |
| 22:58 | jnthn | masak: OK, go ahead and fix. |
| 22:59 | masak: It reads nicer anyway. | |
| 22:59 | masak | is there a way to remove a role at runtime? the opposite of 'self does $plug-in'? |
| 22:59 | jnthn | masak: not as far as I'm aware. |
| 22:59 | masak | jnthn: I think I'll make it 'eq' instead of '~~' then, too. since it's string comparison anyway. |
| 22:59 | jnthn | masak: There's "a way" |
| 22:59 | masak: Yes, do. | |
| 23:00 | masak: Keep a copy of the object around, pre-compositon. | |
| 23:00 | colomon joined #perl6 | |
| 23:00 | jnthn | masak: well, but that doesn't actually do what you want too well though. |
| 23:00 | masak | no, not really. |
| 23:00 | jnthn | masak: heh. use Role::doesn't |
| 23:00 | masak | :) |
| 23:00 | Role::undoes | |
| 23:01 | jnthn | Role::donotwant |
| 23:01 | masak | :) |
| 23:01 | cognominal | short for Role does is Droid? |
| 23:02 | jnthn | masak: Anyway, I'll try and fill out the text in that chapter a bit tomorrow :-) |
| 23:02 | masak: It's another little bit of progress towards book. :-) | |
| 23:02 | masak | \o/ |
| 23:03 | jnthn | masak: Does it look like a decent example, overall? |
| 23:03 | (once we tidy up the rough edges, of course) | |
| 23:04 | masak | jnthn: yes, I like it. |
| 23:05 | jnthn: I'm thinking whether it might be too much to show all that code and then explain it, but we can always think about order a bit later on. | |
| 23:06 | jnthn | masak: Well, I'm assuming classes (and thus methods and attrs) along with a bunch of basics, plus regexes and so on have come before this. |
| 23:06 | masak: If so, it puts many things together as well as adding some new things. | |
| 23:06 | masak: It is quite a bit of code though, yes. | |
| 23:06 | masak | nod. |
| 23:07 | meppl joined #perl6 | |
| 23:09 | dalek | book: 9a50799 | masak++ | src/roles.pod: |
| 23:09 | book: [roles] fixed spelling error, smartmatch thinko | |
| 23:09 | book: review: http://github.com/perl6/book/c[…]ff3a983eb9fa9920e | |
| 23:09 | book: c41383f | masak++ | src/builtins.pod: | |
| 23:09 | book: [builtins] fixed typo | |
| 23:09 | book: review: http://github.com/perl6/book/c[…]67815f5605b11b043 | |
| 23:11 | * jnthn | has to say, (my family)++ for equipping the conservatory with good heating and a good sound system. |
| 23:11 | jnthn | This is quite a cool hacking/writing space. |
| 23:12 | masak | what's a conservatory? sounds like a fancy word for 'storeroom' :P |
| 23:12 | jnthn | lol |
| 23:13 | masak: best explained with an image... | |
| 23:13 | masak: something like http://www.clean2u.com/images/[…]atory%20clean.gif | |
| 23:13 | arnsholt | masak: Vinterhage, in Norwgian |
| 23:13 | masak | arnsholt: oh. never heard that. |
| 23:13 | arnsholt: I think we'd just say 'glasveranda'. | |
| 23:13 | arnsholt | That works too =) |
| 23:13 | mberends | not where one puts one's conserves :-/ |
| 23:14 | masak | mberends: or one's embalmed relatives. |
| 23:14 | mberends | lol |
| 23:14 | jnthn | mberends: Huh? You expected English to be logical? :-) |
| 23:14 | cognominal | conservatory: 2 a room with a glass roof and walls, attached to a house at one side and used as a greenhouse or a sun parlor. |
| 23:15 | jnthn | cognominal: Pretty much. |
| 23:15 | On a clear night, also nice to lie on a sofa in it and look at the stars. :-) | |
| 23:17 | mberends | it's the pantry where one puts one's conserves, but not one's pants |
| 23:18 | brrant joined #perl6 | |
| 23:18 | mberends | jnthn: English can be consistently illogical |
| 23:19 | jnthn | .oO( mum: JONATHAN!!! What are THESE doing in here?! ) |
| 23:19 | mberends: I guess there's always a chance that the larder contains a bar of lard... | |
| 23:19 | Tene | jnthn: where does your family live? |
| 23:20 | jnthn | Tene: In a village in Yorkshire. |
| 23:20 | (North east of England) | |
| 23:20 | If I walk fast, I can get to somewhere that I can see the sea in ~ 30 mins. | |
| 23:20 | Tene | nice. :) |
| 23:21 | jnthn | Yeah. It's quite a change in pace after having spent the rest of the year mostly living in a capital city. :-) |
← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first
Perl 6 | Rakudo | Specs | Parrot | source cross referenced