|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by wolfe.freenode.net on 30 October 2009. |
|||
|
00:01
romanhunt joined
|
|||
| romanhunt | hello all | 00:02 | |
|
00:02
colomon_ joined
|
|||
| masak | romanhunt: hi! | 00:03 | |
| zaslon | lolperl6adventhazblogged! perl6advent++ 'Day 5: Metaoperators': perl6advent.wordpress.com/2009/12/0...aoperator/ | ||
| 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 | |||
| hashes will never be the same! | |||
|
00:06
mberends left
|
|||
| masak | romanhunt: in Perl 6, curlies in term position mean a closure. always. | 00:10 | |
| sometimes they collapse to a hash, though. | |||
| romanhunt | i see. thx | 00:12 | |
|
00:13
brrant joined
|
|||
| 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 | |
|
00:14
colomon_ left
|
|||
| masak | 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:14 | |
| TimToady | yes, we outlawed $_ in the { a => 2 } form | 00:16 | |
|
00:17
beggars left
|
|||
| jnthn | Rakudo certainly didn't catch up with *that* one yet, afaik. | 00:17 | |
| oh hai btw :-) | |||
| jnthn 's new laptop has apparently been built and will be shipped to him soon. | |||
| 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 :) | ||
| masak | jnthn: hai! | ||
| Wolfman2000 | jnthn: what OS? | ||
| jnthn | Win 7. | ||
| If it sucks, back to XP. | |||
| But I'm hopeful not. | |||
| Wolfman2000 | ...you must be a glutton for punishment | ||
| jnthn gave Vista a skip | |||
| Wolfman2000 | okay, not that gluttnous | ||
| gluttonous* | |||
| jnthn | Wolfman2000: Nah. I can't be arsed with Linux on the desktop. | 00:19 | |
|
00:19
cdarroch left
|
|||
| jnthn | 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. :-) | |||
| Tool for the job and all that lot. | |||
| 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:20 | |
| its a sweet OS to meet in the middle of graphical do it all and *nix though | 00:21 | ||
| Wolfman2000 also uses Leopard. | |||
| romanhunt | and the fact that it ships with perl to begin with is titts | ||
| jnthn | Yeah, Mac is tempting. But I do a bunch of Windows dev too. | ||
| Wolfman2000 | jnthn: you can run windows on a Mac | ||
| jnthn | Wolfman2000: I could, but then...why buy a Mac? :-) | ||
|
00:21
quantumEd left
|
|||
| 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
pmurias left
|
|||
| avar | too bad you can't get them anymore from ibm;/ | 00:22 | |
|
00:23
MegaTron joined
|
|||
| 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 | ||
| jnthn | Aww. | ||
| Well, we'll see how many countries and conferences the new one handles. :-) | 00:24 | ||
| jnthn very much enjoyed a visit to the curry house that he used to frequent while living in England again tonight. | 00:26 | ||
|
00:26
MegaTron left
|
|||
| 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:26 | |
| 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 | ||
| jnthn: ok | 00:28 | ||
| jnthn | romanhunt: In those, you're writing in "full" Perl 6, as such. | ||
| romanhunt: In the bits behind that, most bits are written in a subset of Perl 6 that we call NQP. | |||
| 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 | ||
| jnthn | romanhunt: Right. | ||
| 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. | |||
| romanhunt | C I know well. PIR ... a different story | ||
| jnthn | Generally, the trend is towards more in Perl 6 and NQP and less in VM-specific stuff. | ||
| romanhunt | ok | ||
| avar | romanhunt: There are also self-hosted compilers you can look at, but they seem to be less maintained these days. | ||
| 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 | ||
| (B.t.w. I'm just an outside observer, I'm not involved in rakudo) | |||
| jnthn | avar: Your perspective is pretty much right though. :-) | ||
| 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. | ||
| 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?:) | ||
| jnthn: Yeah I've seen, neat:) | |||
| 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 :) | ||
| jnthn | avar: Yes, that's kinda my vision. | ||
| 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:) | |||
| 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:) | |||
| 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:34 | |
| pugs_svn | r29257 | lwall++ | [pm.txt] answer PM-12 for pmichaud++ | 00:35 | |
| 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? | |||
| more self-hosting? | 00:37 | ||
| 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. | |||
| 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. | |||
| TimToady | (and cuts many of the apron strings tying current rakudo to parrot) | 00:41 | |
| jnthn | TimToady: Well spotted. ;-) | ||
| Wolfman2000 | ...I missed something. parrot and rakudo are going to be separated? | ||
| TimToady | they've been separated for several years now | 00:42 | |
| jnthn | Wolfman2000: Rakudo and Parrot already *are* separate projects. | ||
| Wolfman2000 | ...that came out wrong | ||
| jnthn | Wolfman2000: Please don't read this as "Rakudo is not going to target Parrot". | ||
| That's not at all what is being planned. | |||
| diakopter | [by most] | ||
| Wolfman2000 | jnthn: understood. blame my hunger...supposed to be meeting someone soon, but said person has to call me first | ||
| jnthn | diakopter: :-/ | 00:43 | |
| diakopter | I mean | ||
| TimToady | diakopter: cats can't herd other cats either | 00:44 | |
| diakopter | but a mouse or few can divide the pack | ||
| masak | jnthn: also, before you did the OO refactors, you worked on parameter passing, which is also important for ng, no? | ||
| 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 | ||
| jnthn | masak: It's important for Rakudo *. | ||
| TimToady | everything is important, if only as a lesson :) | ||
| 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. | ||
| masak: The code now is *really* nice. | |||
| masak | that's what I meant. or something like that. :) | ||
|
00:46
ShaneC left
|
|||
| 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. :) | ||
| With tweaks thanks to TimToady++ spec tweaks. | |||
| masak | ok. :) | ||
| diakopter | 2 rethinks/redesigns/rewrites per year is great practice for more rewrites | ||
| (a lesson I've learned from myself) | |||
| TimToady | we're hoping each redesign takes half the time of the previous | 00:48 | |
| eventually Zeno loses :) | |||
| huf | jnthn: what other backends are you thinking about besides parrot? | ||
| or is that too far ahead yet? | |||
| TimToady | name a VM | ||
| huf | so, any? | ||
| TimToady | it's been thunka | ||
| diakopter | huf: they're all conceivable | ||
| jnthn | huf: I'm fairly open to various options. I think actually that the *hardest* one to add will be the second. | ||
| 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. | ||
| diakopter | pypy, llvm-ir, cil, jvm, js, go (fglock's Perlito targets go, now) | ||
| TimToady | the problem with the second will be discovering all the place we assumed how the circularity saw worked that were wrong | ||
| *places | |||
| jnthn | TimToady: Yes, indeed. | 00:50 | |
| diakopter | and of course, /usr/bin/perl | ||
| jnthn | diakopter: Yes, that too. :-) | ||
| TimToady | right now we're exploring abstract vs concrete versions of the same operation, hoping that will be an obvious place to saw | ||
| 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 | ||
| 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. | ||
| huf | diakopter: that's pretty cool | ||
| jnthn | TimToady: That one may hurt. | ||
| diakopter | huf: but I'm not afraid to ditch it all at any time and switch to C#/cil on clr/mono | ||
| 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 | ||
| cognominal | Is go the vm for the go google language? | ||
| diakopter | factor*s* I guess | ||
| 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. | ||
| :-( | |||
| diakopter | Perlito emits SBCL | ||
| TimToady | jnthn: my guess is that eventually parrot scraps it's internal system and bases everything off the Perl 6 types :) | 00:55 | |
| *its | |||
| 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. | ||
| except.. there's also a JS target that's not mentioned there | |||
| TimToady: well... then it would be Perl 6 | 00:56 | ||
| TimToady | not exactly | ||
| it'd be a VM that happens to be written in P6 | |||
| diakopter | imho, the nature of type system makes it very tied to the rest | ||
| TimToady | but we need to get the native types going better first | 00:57 | |
| 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 | ||
| 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. | ||
| *And then | 00:59 | ||
| sjohnson | hi guys | ||
| jnthn | hi sjohnson | ||
| TimToady | basically, I see the nqp-rx phenomenon happening all over again once we have full P6. | ||
| sjohnson | o? | ||
| oops | 01:00 | ||
| o/ | |||
| TimToady | the first would be scratching your head? | 01:01 | |
| diakopter | TimToady: so there'd be a stage0,1,2,3,4,5,6..... | ||
| I can see the FAQ entry now | |||
| TimToady | "The origins of this VM are lost (purposefully) in the mists of time." | 01:02 | |
| 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" | ||
| TimToady | gotta cross the Jordan first... | ||
| jnthn | TimToady: Who is it that's behind us and gets drowned? ;-) | 01:04 | |
| oh wait, that was the red sea. | |||
| :-) | |||
| diakopter | jordan too | ||
| TimToady | well, I know who gets left behind at the Jordon, and trying not to think about that... :) | ||
| jnthn | Ah well, it's all good. | ||
|
01:05
explorer__ left
|
|||
| 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 | |||
| jnthn | ooh...sleep time for me. | ||
| Catch y'all tomorrow. | |||
| o/ | |||
| diakopter | nite | ||
| TimToady | ciao | 01:08 | |
| diakopter | std: =end | 01:09 | |
| p6eval | std 29257: ok 00:01 102m | ||
| masak | found a new Perl 6 project: github.com/dbrunton/Automata-Cellular | ||
| diakopter | wha....? | ||
| oh, a 3-year hiatus | 01:10 | ||
| that was in pugscode at one point I think | 01:11 | ||
| masak | oh, cool. | ||
| yes, the tweet mentioned that it was being updated. | |||
|
01:13
colomon_ joined
|
|||
| diakopter | 8.8.8.8 | 01:14 | |
| talk about octets.. | 01:15 | ||
| I wonder what its ipv6 address is | |||
| 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. | ||
| 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:23 | ||
| zaslon | lolmasakhazblogged! masak++ 'November in the rearview mirror': use.perl.org/~masak/journal/39980?from=rss | 01:39 | |
| 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. | |||
| diakopter | I dunno, I'm quite certain you'll probably do it again next year | 01:45 | |
| prove me wrong ;) (kidding) | |||
| masak | :) | ||
| sjohnson | in p6, have the names "chomp" and "chop" been renamed, and will the chomp-like func chop off $/ instead of "\n" ? | ||
| diakopter | std: chop; chomp | 01:46 | |
| p6eval | std 29257: ok 00:01 103m | ||
| masak | sjohnson: three things: | ||
| sjohnson: (1) no, they have not been renamed. | |||
|
01:46
mariano__ left
|
|||
| masak | sjohnson: (2) their semantics have changed, though. they no longer change their argument, but return a modified string instead. | 01:46 | |
| 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 | ||
| diakopter: i finally understand the std: now thanks | 01:48 | ||
| diakopter++ # knows a lot | |||
| masak checks what $/ used to mean | |||
| TimToady | std: undef $/ | ||
| sjohnson | newline char thing, useful when using while | ||
| p6eval | std 29257: ===SORRY!===Obsolete 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 | ||
| masak | ah. input record separator. | ||
| TimToady | std: $/ = "" | ||
| p6eval | std 29257: ===SORRY!===Obsolete 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 | ||
| sjohnson | wow, nice warning / error msgs | 01:49 | |
| compilers helpful | |||
| masak | TimToady++ | ||
| TimToady | necessary when replacing with a different $/ | ||
| sjohnson | does chomp in p5 even look at $/, or is it static "\n" searching | ||
| 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'? | ||
| sjohnson: buubot used to be able to eval Perl 5 code. | |||
| sjohnson | thanks masak, forget to check here | 01:51 | |
|
01:51
pnate2 joined,
TimToady sets mode: +vv dalek hugme,
TimToady sets mode: +vvvv ilbot2 ilogger2 IRSeekBot lambdabot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny,
TimToady sets mode: +vvv pointme pugs_svn zaslon
|
|||
| sjohnson | masak++ # kind way of saying RTFM | 01:52 | |
| masak | food & | ||
| :) | |||
| TimToady | pugs: use v5; print "howdy\n" | ||
|
01:52
masak left
|
|||
| 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 | ||
| sjohnson | im gonna put up an sjbot. i'm excited | 01:53 | |
| implement a !perlfact trigger | |||
| TimToady | p5 == security breach to pugs :) | ||
| sjbot: p5eval: system 'rm -rf /' | 01:54 | ||
| diakopter | std: use v5; $| = 1; | 01:55 | |
| p6eval | std 29257: ===SORRY!===Obsolete use of $| variable; instead, in Perl 6 please use :autoflush on open at /tmp/HEMhttqWJD line 1:------> use v5; $|⏏ = 1;FAILED 00:01 104m | ||
| sjohnson | haha TimToady good think i didnt implement it yet | ||
| TimToady | STD doesn't understant 'use v5' yet | ||
| *stand | |||
| sjohnson | have to explain to my boss that the creator of Perl wiped my harddrive | ||
| he'd find it a bit hard to believe | 01:56 | ||
| diakopter | "but I was asking for it" | ||
| TimToady | I probably wouldn't, but diakopter might :) | ||
| 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 | ||
| sjohnson | ... i learn something new about perl everyday! | 01:58 | |
| TimToady | and maybe use Safe, fwiw | ||
| diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | ||
|
01:58
p6eval left
|
|||
| sjohnson | use Acme::KeepYourJob; | 01:58 | |
| or JobSecurity | |||
| diakopter | what | 01:59 | |
| that's a new one | |||
| huf | wasnt job the dude who lost all his family? | ||
| not sure i want that kind of security | |||
| diakopter | :D | 02:00 | |
| TimToady | only takes 13 seconds on my machine | ||
| diakopter | 13 seconds? | 02:01 | |
| TimToady | to parse all those $'s | ||
| diakopter | successful? | ||
| TimToady | Anonymous variable requires declarator at (eval) line 1: | ||
| and a couple deep recursion warnings :) | 02:02 | ||
| probably tickles lazymap too hard | |||
|
02:03
p6eval joined
|
|||
| TimToady | funny that it kills p6eval | 02:03 | |
| diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | ||
| 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.===SORRY!===Anonymous variable requires declarator at /tmp/jK1zfumA4B line 1:------> | ||
| ..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… | |||
| diakopter | o | ||
| TimToady | wow, that was fast | ||
| diakopter | std: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | ||
| 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.===SORRY!===Anonymous variable requires declarator at /tmp/M4RCmNQByu line 1:------> | 02:04 | |
| ..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… | |||
| diakopter | hm | ||
| Linux debian.4.x86_64 2.6.16-xen #1 SMP 1GB ram, raid10-ish scsi15k disks | 02:05 | ||
|
02:05
pnate left
|
|||
| TimToady | recompiled, still takes ~14 seconds | 02:05 | |
| diakopter | is your kernel x86_64? | 02:06 | |
| TimToady | I think I'm probably running a 32-bit kernel | ||
| 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 | ||
| diakopter | KIDDING | ||
| mebbe I can rework p6eval to use App::Persistent for STD | 02:08 | ||
| or mod_perl :} | |||
| TimToady | oh, heh, I had the debug log turned on :) | 02:09 | |
| diakopter | sum1 needs to write a source filter for that :}} | ||
| TimToady | < 1sec now | 02:10 | |
| diakopter | oh, why would V8's JS RegExp go quadratic on /^(?:a+)*ab$/.test("aaaaaa"), but the equivalent in Perl fails nearly instantly | 02:11 | |
| on "a" x 1e10, I mean | 02:12 | ||
| 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 | ||
| sjohnson | NFA = no f'ing around? | ||
| diakopter | sjohnson: pretty much | ||
| TimToady | Perl 5 goes to great lengths to *avoid* calling into the regex matcher | ||
| and the ab$ is special cased to fail fast | 02:15 | ||
| diakopter | O | ||
| TimToady | it would fail not quite so fast with just ab | ||
| 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 | |||
| it'd fail abcdefg a lot faster | |||
| diakopter | how could I force perl to go quadratic on that | 02:17 | |
| TimToady | I'll never tell :) | ||
| diakopter | hey | ||
| v8 starts slowing down very noticeably with only 20 chars of input | |||
| I haven't waited for it to terminate above that | 02:18 | ||
| oh, there we go :) | 02:19 | ||
| time perl -e 'print (("a" x 100000000) =~ /^(?:a+?)*a(b+)*c?$/)' # real 0m27.386s | 02:20 | ||
| actually, it's not quadratic still | 02:23 | ||
| TimToady | make the second a a* | ||
| 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 | ||
| that one will be pretty slow | |||
|
02:24
orafu left
02:25
orafu joined
|
|||
| diakopter | # still going | 02:27 | |
| # no increase in memory usage that I can see | |||
| TimToady | no, but it'll probably run a bit under 300 hours | 02:28 | |
| diakopter | killed | ||
| LOL | |||
| time perl -e 'print (("a" x 32766) =~ /^(?:a+?)*a{32766}$/)' # hm. | 02:29 | ||
| 19 seconds | |||
| interesting | |||
| 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:33
romanhunt left
|
|||
| diakopter | TimToady: speaking of char-by-char NFA, why not run the whole parser that way, scannerless | 02:34 | |
|
02:36
brrant left
|
|||
| TimToady | because it's not what people want | 02:37 | |
| diakopter | TimToady: oooooo.. since you have ubuntu KK now, that means you have mono-2.4!!!!!!!! :D | 02:39 | |
| `mono -V` | |||
| TimToady | I deny it--I've never had mono... | ||
| diakopter | oh | 02:40 | |
| TimToady | though, of course, there's a good chance I'd test positive for EBV | ||
|
02:41
rodi joined
|
|||
| diakopter | oh, but looks like the csharp repl doesn't come installed by default # apt-get install mono-csharp-shell mono-gmcs | 02:46 | |
| TimToady | I'm not particularly interested in playing with mono yet. Maybe after I get done with Perl 6... | 02:47 | |
| diakopter | jnthn gave me too many ideas | 02:49 | |
| pugs_svn | r29258 | lwall++ | [gimme5] more recursion warning suppression | ||
| TimToady | yes, well, one diakopter can only go so far in emulating a flooding algorithm | ||
| one TimToady too, for that matter | 02:50 | ||
|
02:50
am0c left
|
|||
| 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 | |||
| 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 :) | ||
| diakopter | sigh | 02:52 | |
| hrm | |||
| 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. | ||
| diakopter | TimToady: one neat thing about .net regexes - they can be told to run in reverse | ||
| oh, interesting, mono has a dependency on perl | 02:56 | ||
| TimToady | so does git :) | ||
| 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:57 | |
| the entire point of writing powershell was to provide a perl replacement, imho | 02:58 | ||
| it took about forever | |||
| 2.0 is mostly caught up in expressiveness, if not terseness | 03:00 | ||
| TimToady | decommuting & | 03:02 | |
| 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: | |||
| github.com/dbrunton/Automata-Cellul...ellular.pm | |||
| Looks like it's happening in the next() method. | 03:14 | ||
| Any general debugging tips would also be welcome. | |||
|
03:19
seanstickle joined
03:41
seanstickle left
|
|||
| diakopter | rodi: I'll take a look | 03:48 | |
| rodi: masak was just noticing your commits... (irclog above) | 03:49 | ||
| rodi | diakopter: oh, nice, thanks for the pointer. | 03:50 | |
| I like the spec changes that I noticed while updating the code. | 03:52 | ||
|
03:52
gfx joined
|
|||
| diakopter | rodi: $.rule.rule{ | 03:53 | |
| is that what you intended? | |||
| 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... | |||
| TimToady | seems a bit odd to index a hash by a decimal number | 03:56 | |
| rodi | Blame Wolfram. | ||
| :-P | |||
| TimToady | as in The Emperor's New Science :) | 03:57 | |
| rodi | A New Kind of Perl | ||
| TimToady | I'd make sure the keys of the hash aren't actually like '101' | 03:58 | |
| wrong keys would certainly get you uninits | |||
| diakopter | maybe stringify the key too | 03:59 | |
| I dunno | |||
| TimToady | likewise if it's really returning @ instead of % | ||
| though you'd think in that case it'd complain "I'm not a hash." | 04:00 | ||
| also, stylistically, you don't need parens on the for loop args | 04:01 | ||
| rodi | mmm, pretty. | ||
| TimToady | and the final conditional could simply return the result of the comparison, since that's already a Bool | ||
| well, you'd have to negate it | 04:02 | ||
| rodi | e.g. "return $.stage < $.steps" ? | 04:03 | |
| also pretty. | |||
|
04:03
meppel joined
|
|||
| diakopter | return $.steps < $.stage | 04:03 | |
| TimToady | <= maybe | 04:04 | |
| diakopter | or return $.stage <= $.steps | ||
| sjohnson | rakudo: $/ = "\n"; | ||
| p6eval | rakudo 7ef386: ( no output ) | ||
| TimToady | and the pod has a syntax error :) | ||
| std: while($ca.next()) { } | |||
| p6eval | std 29258: ===SORRY!===while() 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 | ||
| ..infi… | |||
| sjohnson | hmm | ||
| 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 | |||
| TimToady | in theory | ||
| 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 | |||
| 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 | ||
| 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 | |||
| TimToady | how big is the input? | ||
| 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 | |||
| sjohnson | about 1k EDIFACT files | ||
| TimToady | 1k each? | 04:10 | |
| sjohnson | around there, nothing bug | ||
| big* | |||
| they're for orders of books at work | |||
| maybe biggest one i'll ever see might be 50k at the most | |||
| 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 | ||
| tene was kind enough to write me a nice slurp() sub | |||
| i'll use it to slurp my way up the corporate ladder | |||
| .. in the programming sense | 04:12 | ||
| TimToady | is built-in to P6, fortunately | ||
| sjohnson | ( `ー´) | ||
|
04:13
stephenlb left
|
|||
| sjohnson | sweet | 04:13 | |
| perl6++ | |||
| @karma perl6 | |||
| lambdabot | perl6 has a karma of 5 | ||
| sjohnson | @karma P6 | 04:15 | |
| lambdabot | P6 has a karma of 0 | ||
| sjohnson | @karma p6 | ||
| lambdabot | p6 has a karma of 0 | ||
| TimToady | @karma lambdabot | 04:16 | |
| lambdabot | lambdabot has a karma of -1 | ||
| TimToady | so anything lambdabot says, you have to multiply by -1 | 04:17 | |
| sjohnson | heh | 04:18 | |
| thanks for the work tips too btw | |||
|
04:19
meppl left
|
|||
| sjohnson | advice straight from the Camel's mouth ! | 04:19 | |
|
04:20
seanstickle joined
|
|||
| sjohnson | i have a theory. i think the given () function simply sets $_ to be the given argument | 04:21 | |
| 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:22 | ||
| (my perldoc won't tell me about given or when :( | 04:25 | ||
| or maybe a last; | 04:27 | ||
| something to get out of that given block | |||
| rodi | TimToady, diakopter: thanks for the help, working great now. | ||
| TimToady | what was the problem? | ||
|
04:28
meppel left
|
|||
| rodi | Um, I was falling off the end of an array </sheepish> | 04:29 | |
| It's way prettier now, though :) | |||
| 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. | |||
| Funny how Advent is such a time for renewal. | 04:32 | ||
| Our four-year-old is insisting we go to church, too. | |||
| 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 :) | ||
| wonder what my two-year-old has in store... | |||
| TimToady | well, fortunately, you don't have to be an expert in everybody's kids, just your own | 04:35 | |
| unfortunately, you're not an expert in your own kids till they're grown up :) | 04:36 | ||
| 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:37 | |
|
04:38
seanstickle left
|
|||
| sjohnson | i'm wondering if i'm making a "programming paradigm" mistake | 04:38 | |
| TimToady | no, that's why we let you pick your own quotes | 04:39 | |
| 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 | |||
| 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 | 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 | ||
| this is where the snowman chars might come in handy... and what better time than christmas too | |||
| TimToady | doing that right is difficult; you basically have to parse left-to-right, and not make guesses about what came before | 04:42 | |
|
04:42
hack joined
|
|||
| TimToady | well, the snowman is cute enough that someone might use it. maybe you should go for something uglier | 04:43 | |
| hack | Dell | ||
| sjohnson | they havne't made a unicode character of my face yet though :[ | ||
| TimToady | ☹ | 04:44 | |
| sjohnson | haha there it is | ||
| i bet this could probably be used and would probably take 100 years before it broke | 04:45 | ||
| maybe longer actually | |||
| i doubt this unicode char would ever be used in an actual book title. i think i'm good! | |||
| TimToady | そうでしょう。。。 | 04:46 | |
| sjohnson | i suppose i could die("sad face") if m/☹/; | 04:47 | |
| before the parsing took place | |||
| <-- smart and safe | 04:48 | ||
| TimToady | I'd use ⎮, which isn't the character it looks like | 04:49 | |
| diakopter is blown away by search.cpan.org/~rivy/Win32-Command...andLine.pm | 04:50 | ||
| TimToady | or maybe ┋ | ||
|
04:51
hack left
|
|||
| TimToady | 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/; | ||
| p6eval | ng 545373: foo | ||
| carlin | ng: my $x = 'foo'; say 'foo' ~~ /$x/; | ||
| p6eval | ng 545373:  | ||
| TimToady | ng: my $x = 'foo'; say $x ~~ m┋$x┋; | ||
| p6eval | ng 545373: Confused at line 1, near "say $x ~~ "current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| sjohnson | TimToady++: good unicode picking skills | ||
| whatever doesn't get me fired i like | 04:52 | ||
|
04:52
smashz left
|
|||
| 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>) | ||
| TimToady | rakudo: my $x = 'foo'; say $x ~~ rx┋$x┋; | ||
| p6eval | rakudo 7ef386: Null PMC access in get_string()in Main (file <unknown>, line <unknown>) | ||
| carlin | can't use variables in regexs in master | ||
| TimToady | rakudo: my $x = 'foo'; say $x ~~ rx┋foo┋; | ||
| p6eval | rakudo 7ef386: foo | ||
| 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 | ||
| sjohnson | TimToady: best to pick a unicode character that looks like his favourite pet animal | ||
| lesson the blow | |||
| TimToady | don't think there's a tarantula symbol... | 04:54 | |
| diakopter | the Windows symbol works for that | ||
| sjohnson | i know what'll NEVER get used | ||
| 卐 | 04:55 | ||
| have to balance the risk of someone seeing that vs. it ever crashing | |||
| TimToady | well, that's not actually the Nazi swastika... | ||
|
04:55
quantumEd joined
|
|||
| sjohnson | TimToady: true, but not something i'd like to get into an argument with :) | 04:56 | |
| carlin | I quite like 몾 | 04:57 | |
| diakopter | rakudo: say "hihi" =~ 卐i卐; | ||
| p6eval | rakudo 7ef386: Unable to set lvalue on PAST::Val nodein Main (file <unknown>, line <unknown>) | ||
| diakopter | o wait | ||
| sjohnson | carlin: chinese chars might slip up though in book titles :) | ||
| diakopter | rakudo: say "hihi" ~~ 卐i卐; | ||
| p6eval | rakudo 7ef386: Could not find non-existent sub 卐i卐in Main (file src/gen_setting.pm, line 324) | ||
| carlin | rakudo: say chr 0xBABE | ||
| p6eval | rakudo 7ef386: 몾 | ||
| diakopter | aww, I liked the first response | ||
| sjohnson | diakopter: use racist; first | ||
| :) | |||
|
04:58
justatheory left
|
|||
| TimToady | I'd say that 卐 is quite likely to occur in a Chinese title | 04:58 | |
|
04:59
masak joined
|
|||
| diakopter | masak: g'morning | 04:59 | |
| masak | o/ | ||
| quantumEd | 卐 is chinese for helicopter | ||
| sjohnson | haha | ||
| 卐kopter | |||
| pool hall & | 05:00 | ||
| thanks for the help | |||
| quantumEd | np | ||
|
05:00
diakopter is now known as d,
d is now known as diakopter
05:01
diakopter is now known as ___,
___ is now known as __a
05:02
__a is now known as diakopter
|
|||
| masak | I've seen 卐 in various religious circumstances across the world. mostly outside of Europe, though. | 05:02 | |
| diakopter | rakudo: say "hihi" =~ 5 | 05:03 | |
| p6eval | rakudo 7ef386: Unable to set lvalue on PAST::Val nodein Main (file <unknown>, line <unknown>) | ||
| diakopter | masakbot: bug | ||
| masak | long since reported :) | ||
| it's a variant on "cannot assign to a literal" bug. | 05:04 | ||
| TimToady | no bug, I think | ||
| masak | it's an LTA bug. | ||
| TimToady | LTA message | ||
| yeah | |||
| std: say "hihi" =~ 5 | |||
| p6eval | std 29258: ===SORRY!===Obsolete use of =~ to do pattern matching; instead, in Perl 6 please use ~~ at /tmp/qYWsxSnBpZ line 1:------> say "hihi" =~⏏ 5FAILED 00:01 106m | ||
| masak | hugme: hug STD.pm | 05:05 | |
| hugme hugs STD.pm | |||
| diakopter | oh. I thought it was failing on the parse | ||
| b/c of the PAST mention | |||
| masak | no, it fails on the PAST->PIR transformation. | 05:06 | |
|
05:06
jaldhar joined,
reid06 left,
drbean_ joined
|
|||
| diakopter | oh | 05:07 | |
|
05:08
cotto_w0rk joined
|
|||
| diakopter | oh, interesting... mono has lower startup time than v8 | 05:09 | |
| but neither come close to perl's | |||
| TimToady | hugme: hug STD | 05:10 | |
| hugme hugs STD | |||
| TimToady | hmm, that didn't work | ||
| hugme: hug STD .pm | 05:11 | ||
| hugme hugs STD | |||
| TimToady | that didn't work either, hmm | ||
| Wolfman2000 | hugme: hug STD\.pm | ||
| hugme hugs STD.pm | |||
| Wolfman2000 | hugme: hug STD..pm | ||
| hugme hugs STD..pm | |||
| Wolfman2000 | hugme: hug STD.pm | ||
| hugme hugs STD.pm | |||
| Wolfman2000 | any of those TimToady? | ||
| TimToady | trying to get hugme to split on something invisible | ||
| as opposed to not splitting on something visible | 05:13 | ||
| rodi | hugme: hug me | ||
| hugme hugs rodi | |||
| rodi hugs hugme | |||
| TimToady | hugme: hug you and me | ||
| hugme hugs you and me | |||
| diakopter | hugme: hug ' | 05:14 | |
| hugme hugs ' | |||
| diakopter | hugme: hug \' | ||
| hugme hugs ' | |||
| diakopter | hugme: hug \\\\ | ||
| hugme hugs \\ | |||
| diakopter | hugme: hug $sssss | ||
| hugme hugs $sssss | |||
| diakopter | std: std: :std | 05:15 | |
| p6eval | std 29258: ok 00:01 104m | ||
| TimToady | hugme: hug and kisses for all | 05:16 | |
| hugme hugs and kisses for all | |||
| pmichaud | :-D | ||
| carlin | std: say "{}#{}"; | ||
| p6eval | std 29258: ===SORRY!===(Possible runaway string from line 1)Confused at /tmp/S86NJGdaBV line 1 (EOF):------> say "{}#{}";⏏<EOL> expecting escapeFAILED 00:01 105m | ||
| carlin | rakudo: say "{}#{}" | 05:17 | |
| p6eval | rakudo 7ef386: Embedded comments now require backticks at line 2, near "{}\""in Main (file <unknown>, line <unknown>) | ||
| masak reads with enjoyment in the backlog how Perl 5 special-cases /ab$/ et al. | |||
| TimToady | hugme: hug and kisses for all but TimToady | ||
| hugme hugs and kisses for all | |||
| quantumEd | hugme | ||
|
05:18
drbean left,
drbean joined
|
|||
| Wolfman2000 | ...right, masak is having his insomnia mode again | 05:21 | |
| quantumEd | me and masak | ||
| Wolfman2000 | ...technically, so am I | ||
| 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 | |||
| 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. :) | ||
| Wolfman2000 | PerlJam: you around? | ||
| masak: I'd...rather not. | |||
| 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 :) | ||
| What's up? | |||
| 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. | ||
| Tene | masak: That's normal for me... I can't fit that with my work, though. | ||
| masak | Tene: luckily, I'm on vacation. | 05:24 | |
| Wolfman2000 | Perhaps you had an answer | ||
| PerlJam | What was the question?> | ||
| 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. :) | ||
| Wolfman2000 | or are you...more of an advertiser/middleman for NFS? | ||
| PerlJam: how many of my websites would require converting to work on their servers? | |||
|
05:24
envi^home joined
|
|||
| Wolfman2000 wishes they had an IRC room | 05:24 | ||
|
05:25
cotto_work left
|
|||
| PerlJam | Wolfman2000: I have no relation to NFS really. | 05:25 | |
| and no, I have no answer for you. | |||
| Wolfman2000: I'm more what The Tipping Point calls a "Connector" (but only sometimes :) | 05:27 | ||
| Wolfman2000 | ...noted | ||
|
05:30
drbean_ left
|
|||
| rodi | nighty night, all & | 05:31 | |
|
05:32
rodi left
05:38
JimmyZ joined
|
|||
| pugs_svn | r29259 | lwall++ | [STD] string block escapes should be considered embedded, carlin++ | 05:47 | |
|
05:50
JimmyZ left,
orafu left,
orafu joined
05:51
cotto_w0rk left
|
|||
| 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:51 | |
| TimToady | sure | 05:52 | |
| syntactically it's just a variable | |||
| masak | ok; good. | ||
| TimToady | and $ varibles don't follow the bracket rule | ||
| *ia | |||
| masak | right. | ||
| that's what I gathered from S02. | |||
| 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
06:02
quantumEd left
06:05
perigrin_ is now known as perigrin
|
|||
| diakopter | speaking of snowmen: www.telegraph.co.uk/news/newstopics...owman.html | 06:13 | |
| hugme: hug ll b | 06:14 | ||
| hugme hugs ll | |||
| diakopter | .u | ||
| phenny | diakopter: 1 SPACE (U+0020) | ||
| diakopter | ha | 06:15 | |
| .u | |||
| phenny | diakopter: You gave me zero length input. | ||
| diakopter | .u l b | ||
| phenny | U+2114 L B BAR SYMBOL (℔) | ||
| diakopter | o_O | ||
| .u b | |||
| phenny | U+2114 L B BAR SYMBOL (℔) | ||
| diakopter | .u | ||
| phenny | diakopter: 1 SPACE (U+0020) | ||
| diakopter | .u b | ||
| oh | |||
| phenny | U+2114 L B BAR SYMBOL (℔) | ||
| diakopter | TimToady: nice one | 06:16 | |
| masak | if scientists create the world's smallest comet as well, we can arrange to have the world's smallest rakudobug submitted. | 06:17 | |
| JimmyZ | good afternoon, #perl6 | 06:20 | |
| masak | JimmyZ! \o/ | ||
|
06:23
JimmyZ left
|
|||
| TimToady | std: say "{}#{}"; | 06:29 | |
| p6eval | std 29259: ok 00:01 106m | ||
| TimToady | std: say "{ my $a; }#{ $a; }"; | ||
| p6eval | std 29259: Potential difficulties: Variable $a is not predeclared at /tmp/dZHTe7aeKt line 1:------> say "{ my $a; }#{ $a⏏; }";ok 00:01 106m | ||
| masak | std: say "{#}" | ||
| p6eval | std 29259: ===SORRY!===Unable to parse statement list; couldn't find right brace at /tmp/rpbKXsDRd2 line 1 (EOF):------> say "{#}"⏏<EOL>FAILED 00:01 104m | ||
| TimToady | std: say "{ our $a; }#{ $a; }"; | 06:30 | |
| p6eval | std 29259: ok 00:01 106m | ||
| TimToady | hmm | ||
| std: say "{ our $a; }#{ our $a; }"; | 06:33 | ||
| p6eval | std 29259: ok 00:01 106m | ||
| diakopter | std: say "{ our $a; }#{ foo; }"; | 06:36 | |
| p6eval | std 29259: Undeclared routine: 'foo' used at line 1ok 00:01 106m | ||
| 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
|
|||
| mberends | good morning, feeding the backlog habit | 06:49 | |
| masak | morning, mberends. | 06:50 | |
| mberends | masak: goodness me, you've been through another strange sleep cycle ;) In sync with Europe again now? | 06:51 | |
| diakopter | vm integer primitives: perl6.pastebin.com/d247eb23 yah; it's not really a fair comparison... | ||
| masak | mberends: no, I'm currently 180 degrees out of phase. | ||
| mberends | lol | 06:52 | |
| masak | give it a few more days and I'll be an early riser. :) | ||
| mberends | right. does you cycle average about 28 hours? several people seem to do that, and synthesize a 6 day week. | 06:54 | |
| masak | no, it seems to be about 26 hours. | 06:55 | |
| mberends | you could do a 13 day fortnight then | ||
| masak | heh :) | 06:56 | |
| I don't plan to keep this up when I return to $work. | |||
| 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. | |||
| mberends | I plan to study the spider to see whether a C port is feasible, sometime soon. | 06:58 | |
| so write it good ;) | |||
| masak | actually, I've finished it. | ||
| mberends | \o/ | ||
| masak | all it ever was was a proof-of-concept. | ||
| but I promise to write plenty of GGE documentation comments. :) | |||
| mberends | \o/ | 06:59 | |
| 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 | ||
| masak | it is. | ||
| mberends | \o/ | 07:01 | |
| feasibility has just shot up | |||
| 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. | ||
| mberends | good spider, keep spinning :) | ||
| 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. | |||
| mberends | because history of previous visits is state | 07:03 | |
| masak | yes. | ||
| the spider keeps a little 'lexpad' for each expression node, hashed on that node's reference id. | |||
| 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 | ||
| masak | mberends: yes. the current model in GGE does that. | ||
| but it's a pure optimization step. | |||
| mberends | \o/ | ||
| liking it more all the time | |||
| masak | I'll probably start with getting the spider to work, but slowly. | 07:05 | |
| (in GGE) | |||
| it'll involve throwing the old model out. | |||
| 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! | ||
| masak | mberends: backtracking is done through 'savepoints', with the analogy being your regular platform game where you can save where you are. | ||
| mberends | great analogy | ||
| 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. | |||
| and if the parent fails, it should trigger the savepoint. | |||
| but that turns out not to be the case. | |||
| mberends | no | ||
| savepoints are where you have alternatives | 07:08 | ||
| masak | simple counterexample: x[a*?]y | ||
| matching on 'xaaaay'. | |||
| mberends: yes, savepoints are forks in the road. | |||
| 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". | ||
| mberends | indeed | ||
| masak | mberends: no, if y is not found, it should revert to the *? node. | ||
| mberends | ok | ||
| 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. | ||
| mberends: this was actually the reason I implemented the linked list optimisation, because then this example works again. :) | |||
| 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. | ||
| mberends | yeah, testing corner cases is *very* important | ||
| masak | the test suite has been good at letting me know where I'm thinking wrongly. | 07:12 | |
| I'm on first-name basis with a few of the tests by now. :) | 07:13 | ||
| mberends | etched on your fingers, no doubt :) | ||
| 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 | ||
| masak | that's why I'm eager to put much of it in a series of blog posts. | ||
| mberends: www.youtube.com/watch?v=qItugh-fFgg | 07:15 | ||
| mberends | at least once, they get better each time | ||
| masak | yes. I think I'll have a much better chance to grok nqp-rx after this. | 07:16 | |
| mberends | cool "all your base are belong to us" reference :-) # for backloggers | 07:17 | |
| masak | mberends: that's where "for great justice" comes from. :) | ||
| mberends | read that on Wikipedia too | 07:18 | |
| the video is more derived content, but fits the meme well | 07:19 | ||
| OJ appears :) | |||
| masak wishes he knew enough Japanese to be able to read the Japanese in that Wikipedia article, not just the English translation | 07:23 | ||
| some things I grok a posteriori, though. had '通信士' ('communication operator') been Chinese, it could have meant 'through-send-scholar'. | 07:24 | ||
| which makes sense. :) | 07:25 | ||
| mberends | related Fox news piece: www.youtube.com/watch?v=cQnDkgdIn_A&NR=1 | ||
| etc. | |||
| masak | roses are red / violets are blue / all my base / are belong to you | 07:26 | |
| mberends | haha | ||
| masak | some day I will meet a partner nerdy enough to appreciate that one. :) | 07:27 | |
| mberends | and then appreciate that partner :) | ||
| masak | of course! all my base would be belong to her. | 07:28 | |
| mberends | even your base pairs | 07:29 | |
| masak | I'm willing to use them for cross-breeding experiments, yes. | ||
| mberends | aww, sweet. *sigh* | 07:30 | |
| masak | :P | 07:32 | |
| mberends | still backlogging, it was an interesting past 8 hours | 07:36 | |
| moritz_ | good morning | 07:40 | |
| masak | moritz_! \o/ | ||
| spinclad iz backlogging the last week. that too has been interesting on first glimpse. | |||
| mberends | good morning moritz_ | ||
| spinclad | good moritz, morniing | 07:41 | |
| masak | you want to see interesting? wait 'til ng lands. :) | ||
| laziness! infinite lists! metamodels! | |||
| variables in regexes! | |||
| moritz_ | Mu! | 07:42 | |
| spinclad | specchanges! | ||
| iz all gud | 07:43 | ||
| masak | rakudo: Mu # moritz_: doesn't master have Mu already? | ||
| p6eval | rakudo 7ef386: ( no output ) | ||
| moritz_ | masak: yes, but only as an alias to Object | 07:44 | |
|
07:45
gfx left
|
|||
| masak | moritz_: ah. | 07:45 | |
| rakudo: say Mu === Object | |||
| p6eval | rakudo 7ef386: 1 | ||
| spinclad -> bed & # good turningearth, all | |||
| masak | rakudo: say [-] (Mu, Object)>>.WHICH | 07:46 | |
| p6eval | rakudo 7ef386: 0 | ||
| masak | :) | ||
| 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
|
|||
| 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) | ||
| masak submits rakudobug | |||
| 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? :) | |||
| moritz_ | masak: that's already submitted | 07:52 | |
| masak | ok. | ||
| masak stands down | |||
| I had a feeling it might. | |||
| ok, time for me to buy nom and then go to bed. | 08:03 | ||
| see you later today, #perl6. | |||
|
08:03
masak left
08:18
zloyrusskiy joined
08:22
kaare joined
08:23
kaare is now known as Guest46985
08:26
pnate joined
08:36
pnate2 left
08:37
iblechbot joined
08:44
beggars joined
08:45
zloyrusskiy left
08:51
digirave joined
|
|||
| digirave | anyone have installed moritz.faui2k3.org/en/ilbot before? | 08:52 | |
| moritz_ did | 09:01 | ||
| but sometimes I get the impression the installation is not for the faint of hearted :/ | 09:02 | ||
| digirave | just finished installing | 09:14 | |
| noticed .htaccess is hard coded for / root install only, had to modd it | 09:15 | ||
|
09:19
digirave left
|
|||
| moritz_ | there might be some links in the template that are also hard-coded for / | 09:27 | |
| moritz_ will be offline for most of the weekend | 09:29 | ||
|
09:30
hanekomu_ joined
09:31
yako joined
09:40
digirave joined
09:41
digirave left
09:48
mikehh left
10:00
iblechbot left
10:07
JimmyZ joined
10:10
colomon_ left
10:16
JimmyZ left
10:23
snarkyboojum joined
10:25
szabgab joined
10:30
colomon joined,
beggars left
10:37
colomon left
|
|||
| huf | hm, so scripts get the extension .p6 but modules are still .pm, right? | 10:57 | |
| mberends | the .pm module convention is fairly common, but the .p6 extension is more a matter of personal taste | 10:59 | |
| in fact "use Test" currently implies reading a file called Test.pm, but extensions .pl and .pl6 (yuk) are valid | 11:00 | ||
| huf | modules with extensions other than .pm are supported? uh | 11:01 | |
| mberends | in theory maybe, but not in practice. Rakudo can also use modules suffixed .pir and .pbc | 11:02 | |
| 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:09 | ||
|
11:16
viklund joined
|
|||
| mberends | OH HAI viklund, how are things? | 11:18 | |
|
11:33
mikehh joined
11:38
iblechbot joined
11:41
payload left
11:44
envi_home joined
11:45
envi_home2 joined
11:50
mikehh left
11:51
envi^home left
12:02
iblechbot left
12:06
envi_home left
12:07
pmurias joined
12:10
zloyrusskiy joined
12:24
colomon_ joined
12:30
parduncia joined
12:31
colomon_ left
12:32
xomas_ joined
12:33
meppl joined
12:46
mikehh joined
|
|||
| 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 | ||
| mberends | afternoon, jnthn | 12:54 | |
| jnthn yawns | 12:59 | ||
| sjohnson | yo jnthn | 13:05 | |
| jnthn | sjohnson: oh hai | 13:06 | |
|
13:12
iblechbot joined
13:20
hanekom__ joined
13:23
colomon joined
13:29
hanekom__ left
13:34
hanekomu_ left
13:35
colomon left
13:49
colomon joined
|
|||
| colomon | masak: I've got a weird bug for you... | 13:52 | |
| 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. | 13:54 | ||
| pmichaud | colomon: that's because it's finding the wrong dynamic libraries, likely. | 14:02 | |
| good morning, #perl6 | |||
| jnthn | o/ | ||
| colomon | pmichaud: good morning! | ||
| I didn't know about the min operator before your Advent post. Yay! | 14:03 | ||
| pmichaud | yes, people are often surprised by that one :-) | 14:05 | |
|
14:07
zloyrusskiy left
|
|||
| colomon | I knew there was @array.min, and was stymied by the lack of min($a, $b). | 14:13 | |
| Knowing about the operator feels huge, though. Really handy, especially with the meta ops. | 14:14 | ||
|
14:15
romanhunt joined
14:17
payload joined
|
|||
| pugs_svn | r29260 | pmichaud++ | [perl6advent] Some perl6advent schedule/topic updates. | 14:20 | |
| jnthn just read the Perl 6 advent entries so far and is impressed. | 14:22 | ||
| Good work, folks. :-) | 14:23 | ||
| colomon | I know I've learned several new-to-me perl 6 tricks already... | 14:27 | |
| Happy comments rolling in about the metaoperators post, too... | 14:28 | ||
|
14:29
payload left,
payload joined
14:35
romanhunt left
14:39
mikehh left
14:45
payload1 joined
14:46
payload left
14:47
astrojp left
|
|||
| pugs_svn | r29261 | pmurias++ | [mildew] more porting over to new STD, t/if.t works | 14:49 | |
| pmurias | diakopter: hi | ||
| mathw | pmichaud: Advent Calendar win :) | ||
|
14:49
kcwu joined
|
|||
| colomon | ng: say Inf.WHAT | 14:50 | |
| p6eval | ng 545373: Num() | ||
| colomon | ng: say sin(1.2e0) | 14:55 | |
| p6eval | ng 545373: 0.932039085967226 | ||
| colomon | ng: say sin(Inf) | ||
| p6eval | ng 545373: too many positional arguments: 2 passed, 1 expectedcurrent instr.: '&sin' pc 185594 (src/gen/core.pir:0) | ||
| colomon | ng: say (1.2e0).WHAT | ||
| p6eval | ng 545373: Num() | ||
| colomon | ng: say Inf.WHAT | 14:56 | |
| p6eval | ng 545373: Num() | ||
| pmichaud | ng: say Inf.PARROT | ||
| p6eval | ng 545373: Float | ||
| pmichaud | hmmm. | ||
|
14:57
romanhunt joined
|
|||
| romanhunt | morning all | 14:57 | |
| does anyone have any opinions on the book Perl6 and Parrot essentials? | 14:58 | ||
| pmichaud | romanhunt: very out of date. | 14:59 | |
| mathw | I've got a copy | ||
| romanhunt | thx | ||
| mathw | It's good for nostalgic value | ||
| 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 | ||
| pmichaud | are you more interested in p6 or parrot? | ||
| romanhunt | perl 6 | ||
| both concepts are pretty facsinating though | 15:01 | ||
|
15:01
am0c joined
|
|||
| 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 ... | ||
| I do want to learn parrot though | 15:02 | ||
| pugs_svn | r29262 | pmichaud++ | [pm.txt]: Another short question for TimToady++ | 15:04 | |
| r29262 | | |||
| r29262 | Pm-13: What's the parent type of C<Regex>? (I hope it's C<Method>.) | |||
|
15:07
payload1 left,
he_ left
|
|||
| ng_feed | rakudo-ng: colomon++ | 15:08 | |
| rakudo-ng: Add all of the Num trig functions back in. | |||
| colomon | ng: say Inf.sin | ||
| p6eval | ng 545373: NaN | ||
| colomon | oooo, that worked. | ||
| pmichaud | ng: say Inf ~~ Num | ||
| p6eval | ng 545373: 1 | ||
| dalek | kudo/ng: 5b836a4 | (Solomon Foster)++ | src/core/Num.pm: Add all of the Num trig functions back in. |
15:12 | |
| pugs_svn | r29263 | pmichaud++ | [pm.txt]: Another question for TimToady++ | 15:16 | |
| r29263 | | |||
| r29263 | Pm-14: Is the :c modifier allowed on token/regex/rule? I.e., could | |||
| r29263 | someone do...? | |||
| r29263 | 'abcdef' ~~ token :c(1) { cdef } | |||
| r29264 | mattw++ | [advent] subject alterations for mathw | 15:19 | ||
|
15:30
romanhunt left,
he_ joined
15:42
rodi joined
15:50
Psyche^ joined
16:02
pmurias left
16:06
Patterner left,
Psyche^ is now known as Patterner
16:15
am0c__ joined,
colomon_ joined,
colomon left,
colomon_ is now known as colomon
|
|||
| dalek | p-rx: e6cb831 | pmichaud++ | src/Regex/Regex.pir: Initial version of regex matching. |
16:17 | |
| p-rx: fe021de | pmichaud++ | (4 files): Add ability to smartmatch regex/token/rule (although anchoring is |
|||
| p-rx: 01c9533 | pmichaud++ | (5 files): Refactoring for Regex::Method. |
|||
| p-rx: 6297c85 | pmichaud++ | src/Regex/Regex.pir: Remove obsolete file. |
16:18 | ||
| p-rx: df1c1da | pmichaud++ | src/NQP/Actions.pm: Small refactor of regex/token/rule action. |
|||
| p-rx: 5a0677a | pmichaud++ | (3 files): Add /.../ form of regexes and matching. |
|||
|
16:22
am0c left
16:23
am0c__ is now known as am0c
16:36
zloyrusskiy joined
16:45
romanhunt joined,
colomon left
|
|||
| Wolfman2000 | *yawn* morning | 16:45 | |
|
16:53
jeremiah joined
|
|||
| jeremiah | OH HAI | 16:53 | |
|
16:53
payload joined
|
|||
| jeremiah | is there a perl6 testing idiom for 'use'ing modules like in perl5? | 16:53 | |
| I'm thinking of something equivalent to use_ok | 16:54 | ||
|
16:57
am0c left
16:58
romanhunt left
17:00
colomon joined
17:04
snearch_ joined
17:05
pnate2 joined
|
|||
| jeremiah | rakudo; use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; | 17:08 | |
| rakudo: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; | 17:09 | ||
| p6eval | rakudo 7ef386: ( no output ) | ||
| jeremiah | perl6: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; | ||
| p6eval | elf 29264: Cant locate Test in ( . ). | ||
| ..rakudo 7ef386: ( no output ) | |||
| ..pugs: pugs: *** Unsafe function 'use' called under safe mode at /tmp/10oXn2wo4T line 1, column 1 | |||
| jnthn | jeremiah: there's some issues with Rakudo evalbot here...don't rely on "no output" meaning anything. | 17:12 | |
| jeremiah | okay :) | ||
| jnthn | ng: use Test; plan 1; sub ima_int(Int $x) {}; is ima_int(9), [], 'works with ints'; | ||
| p6eval | ng 5b836a: 1..1Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0) | ||
| jnthn | meh. | ||
| 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 | ||
| jeremiah | ah! | ||
| cool | |||
| 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) | ||
| jeremiah | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; dies_ok ima_int("oh hai"), 1, 'works _only_ with ints'; | ||
| 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) | ||
| jnthn | jeremiah: You need to pass dies_ok a closure. | 17:15 | |
| jeremiah | ah, okay. | ||
| jnthn | dies_ok { ima_int("lol") }, ... | ||
| jeremiah | ng: use Test; plan 1; sub ima_int(Int $x) { 1 }; dies_ok { ima_int("oh hai") } 'works _only_ with ints'; | ||
| p6eval | ng 5b836a: sh: ./perl6: No such file or directory | ||
|
17:16
pnate left
|
|||
| 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'; | ||
| p6eval | ng 5b836a: sh: ./perl6: No such file or directory | ||
| diakopter | mberends: I saw your comments with masak... the new jsmeta/sprixel works the same way.. | 17:18 | |
| 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 | |||
| there is just 1 allocation for each clone | 17:20 | ||
|
17:21
colomon left
|
|||
| diakopter | 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:22 | |
| jnthn: C# C# C# | 17:23 | ||
| jnthn | diakopter: Well, my priority is getting ng sorted out for now. :-) | 17:24 | |
| 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). | |||
| jnthn | Mmmm. does and but are so nicer in ng. :-) | 17:27 | |
|
17:27
nihiliad joined
17:29
astrojp joined
17:30
payload left
|
|||
| dalek | kudo/ng: 10bc6e8 | jnthn++ | (6 files): 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 | |
| jnthn | huh? | 17:31 | |
| dalek reports ng as well as ng_feed now? | |||
| jnthn would complain, but he likes the karma win. | |||
| mathw would complain, because it clogs up his screen | 17:32 | ||
| Wolfman2000 would complain, but he's doing homework | |||
|
17:33
envi_home2 left
|
|||
| cognominal | jnthn++ # more karma | 17:36 | |
| jnthn | @karma jnthn | 17:37 | |
| lambdabot | You have a karma of 587 | ||
| jnthn hopes his new laptop comes _early_ next week. | 17:38 | ||
|
17:42
pnate2 left
17:44
pnate2 joined
17:51
nihiliad left
|
|||
| ng_feed | rakudo-ng: (jnthn)++ | 17:55 | |
| rakudo-ng: Allow my $x does Foo to work again. | |||
| rakudo-ng: (jnthn)++ | |||
| rakudo-ng: Support for class Dog { does Smell }. | |||
|
17:56
pmurias joined
|
|||
| diakopter | pmurias: rehi | 17:57 | |
| pmurias | diakopter: once i port mildew to the new STD i could add a C# backend | 17:58 | |
| dalek | kudo/ng: 1f1e259 | jnthn++ | src/core/traits.pm: Allow my $x does Foo to work again. |
17:59 | |
| kudo/ng: 51c596c | jnthn++ | src/Perl6/ (2 files): Support for class Dog { does Smell }. |
|||
|
17:59
nihiliad joined
|
|||
| diakopter | pmurias: cool | 18:01 | |
|
18:23
pmurias_ joined
18:24
pmurias_ left,
pmurias left,
zloyrusskiy left,
pmurias joined
|
|||
| pmurias | diakopter: i'm not familiar with .net so i will need help with writing the runtime | 18:26 | |
|
18:28
quantumEd joined
18:33
fridim_ left
18:36
zaslon left,
pointme left
18:37
pointme joined,
zaslon joined
18:43
justatheory joined
18:44
pmurias left
18:54
justatheory left
19:06
justatheory joined
|
|||
| ng_feed | rakudo-ng: colomon++ | 19:06 | |
| rakudo-ng: Add Num.atan2. | |||
| rakudo-ng: colomon++ | |||
| 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,
colomon_ joined
|
|||
| dalek | kudo/ng: 8948704 | (Solomon Foster)++ | src/core/Any-num.pm: Temporary patch to Any!to-radians and Any!from-radians to get them working in ng. Also add Any.log. |
19:08 | |
| kudo/ng: 15da065 | (Solomon Foster)++ | src/core/Num.pm: Add Num.atan2. |
|||
|
19:16
quantumEd left
|
|||
| ng_feed | rakudo-ng: (jnthn)++ | 19:21 | |
| rakudo-ng: Put back .?, .+, .* for method calls by name. | |||
| colomon_ | jnthn: while I was messing around with trig, I discovered => doesn't work in ng yet. | 19:24 | |
| dalek | kudo/ng: 53a6f77 | jnthn++ | src/glue/dispatch.pir: Put back .?, .+, .* for method calls by name. |
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:26
justatheory left
19:33
r0bby left
|
|||
| jnthn | colomon_: Pair.new(key => ..., value => ...) | 19:36 | |
| I think. | |||
|
19:41
snearch_ left
|
|||
| colomon_ | jnthn: errr.... => doesn't work, does it? That was the whole point of the exercise... | 19:41 | |
| and ... | 19:42 | ||
| > say Pair.new(:key("hello"), :value("42")); | |||
| Could not find non-existent sub &fail | |||
| lambdabot | <no location info>: parse error on input `;' | ||
| colomon_ | Just occurred to me, though, that could be say failing rather than the new. Let me check... | ||
| ah, that's it, the new does work. | 19:43 | ||
| Groovy, I think I can quickly make some improvements here... | |||
| jnthn | colomon_: There's two => thingies. | ||
| colomon_: One is the operator | 19:44 | ||
| colomon_: The other is parsed by fatarrow. | |||
| colomon_ | oh? | ||
| jnthn | And happens when there's a literal on the lhs. | ||
| colomon_: See STD, fatarrow | |||
| colomon_ | I think I'll try to add Pair.Str and Pair.perl first, they should be easy. | 19:45 | |
|
19:45
jaldhar left,
SirKay joined
|
|||
| jnthn | colomon_: Which is separate from token infix:sym« => » | 19:45 | |
| colomon_: OK, nice :) | |||
| colomon_ | rakudo: say 10 => 20; | 19:47 | |
| p6eval | rakudo 7ef386: 10 20 | ||
|
19:47
jaldhar joined,
payload joined
|
|||
| jnthn afk for a bit | 19:48 | ||
| colomon_ | rakudo: say (10 => 20).Str | 19:49 | |
| p6eval | rakudo 7ef386: Pair()<0x11fb390> | ||
| colomon_ | rakudo: say ~(10 => 20) | 19:50 | |
| p6eval | rakudo 7ef386: 10 20 | ||
|
19:51
r0bby joined
|
|||
| colomon_ | Just want to check and make sure the spec doesn't say anything about defining Pair.Str or ~Pair... anyone know? | 19:58 | |
| ng_feed | rakudo-ng: colomon++ | 20:09 | |
| rakudo-ng: Early versions of Pair.perl and Pair.Str. | |||
| colomon_ is starting to think helping write its library is a good way to learn a language. :) | 20:10 | ||
| dalek | kudo/ng: 17a1ec1 | (Solomon Foster)++ | src/core/Pair.pm: Early versions of Pair.perl and Pair.Str. |
20:11 | |
|
20:13
finanalyst left,
finanalyst joined
20:14
finanalyst left
|
|||
| colomon_ | Hmmm... looks like fatarrow is already in ng's grammer. | 20:15 | |
|
20:17
PacoLinux left
|
|||
| colomon_ | Doesn't actually seem to be infix:sym« => » in STD.pm ? | 20:19 | |
|
20:19
PacoLinux joined
|
|||
| jeremiah | Can't find ./strict in @*INC | 20:21 | |
| ^^ What does that mean? | |||
| Am I missing a library? | 20:22 | ||
| colomon_ | did you say "use strict" in a Perl 6 program? | ||
| jeremiah | I'm not sure, I am trying to compile masak's Web | 20:23 | |
| And I think his Configure script calls strict | |||
| But I'm not certain since the next line of the error message is: | |||
| colomon_ | I don't know anything about Web, alas. | 20:24 | |
| jeremiah | in Main (file <unknown>, line <unknown>) | ||
| How can I print out the contents of @*INC? | |||
| colomon_ | rakudo: say @*INC.perl; | ||
| p6eval | rakudo 7ef386: ["/home/p6eval/.perl6/lib", "/home/p6eval//p2/lib/parrot/1.8.0-devel/languages/perl6/lib", "lib", "."] | ||
| colomon_ | but that won't be it. | ||
| jeremiah | no? | 20:25 | |
| colomon_ | there absolutely should not a ./strict for you to find. | ||
| jeremiah | okay | ||
| colomon_ | use strict is a Perl 5ism. | ||
| there is no Perl 6 equivalent yet (and actually, by default it is strict). | |||
| jeremiah | I see. | ||
| I think it is Configure.pm calling strict | 20:26 | ||
| In any case, strace outputs this: | |||
| stat64("./strict.pm", 0xbfc0affc) = -1 ENOENT (No such file or directory) | |||
| colomon_ | Huh. Web/lib/Configure.pm does not call use strict. | 20:28 | |
| wonder if you're getting the wrong Configure.pm? | |||
| jeremiah | I think I am! | ||
| Good catch! | |||
| I may have moved the wrong one. | |||
| Going to diff them now | 20:29 | ||
| Yup. Wrong Configure.pm | 20:30 | ||
| Lo and behold, it works. | 20:31 | ||
| Thanks colomon_ | |||
| colomon_ | jeremiah: you're welcome | 20:32 | |
| huf | where can i find a list of existing perl6 modules? | 20:34 | |
| colomon_ | huf: there isn't exactly one yet. | ||
| the closest I'm aware of is proto's projects list. | 20:35 | ||
| let me see... | |||
| nbrown_ | huf: github.com/masak/proto/blob/master/projects.list | ||
|
20:35
zloyrusskiy joined
|
|||
| nbrown_ | huf: like colmon said it's not complete, but it has a few | 20:36 | |
| huf | thanks | ||
| colomon_ | github.com/masak/proto/blob/master/projects.list ... whoops, nbrown_++ beat me to it. :) | ||
|
20:36
meppl left,
masak joined
|
|||
| masak | oh hai, #perl6. | 20:36 | |
| mberends | speak of the ... breaker of things ? | ||
| masak | anything need breaking? :) | 20:37 | |
| mberends | nah, your brainchild projects.list was being recommended | 20:38 | |
| jeremiah | lolitsmasak! | ||
| I am still working in installing Web :P | 20:39 | ||
| masak | omgitsjeremiah! | ||
| jeremiah | (And blogging about it.) | ||
| masak | jeremiah: let me know if I can help. | ||
| 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. | ||
| jeremiah | I've written 500 words, but I think about 100 more and it'll be finished. :) | ||
| masak | jeremiah: I'm currently working on getting the last grant week blog post out. | ||
| jeremiah | aha, groovy. | ||
| 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 | |||
| But I put the wrong one there, since there are three I think under the rakudo dir. | 20:42 | ||
| masak | jeremiah: PERL6LIB handling is not fun, agree. | 20:43 | |
| jeremiah | :) | ||
| 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. | |||
| jeremiah | Well, with Configure.pm, that seems like a really good solution. | ||
| Because there is more than on Configure.pm and users might get confused as to which one they want / need | |||
|
20:44
romanhunt joined
|
|||
| masak | nod. | 20:45 | |
| proto introduces 'unintended success' in many dimensions. | |||
| jeremiah | heh | ||
| masak | I consider the proliferation of 'Configure.pm' in various places to be one of those dimensions. | ||
|
20:49
colomon joined,
colomon_ left
21:04
colomon left
|
|||
| mberends | masak: those who do not learn history are doomed to repeat it: trac.parrot.org/parrot/browser/trun...E?rev=7051 ;-) | 21:07 | |
| Wolfman2000 | rakudo: say "©".subst(/./, { ord($/).fmt('%X') }, :global); | 21:08 | |
| p6eval | rakudo 7ef386: A9 | ||
| Wolfman2000 | err | ||
| rakudo: say "©".subst(/./, { ord($/).fmt('%04X') }, :global); | |||
| p6eval | rakudo 7ef386: 00A9 | ||
| Wolfman2000 | ...looks like I have to recompile rakudo | ||
| masak | should ord() be defined on Str? not Buf? | ||
| Wolfman2000 | masak: got me. | 21:09 | |
| I did discover something interesting though | |||
| rakudo: say "hi".ord | |||
| p6eval | rakudo 7ef386: 104 | ||
| Wolfman2000 | rakudo: say "h".ord | ||
| p6eval | rakudo 7ef386: 104 | ||
| Wolfman2000 | ord only looks at the first character | ||
| or buf, or whatever it is | |||
| 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 | ||
| I do have Web in PERL6LIB | |||
| Ah, but only as a dir, not as a .pm | |||
| 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! | ||
| jeremiah | ah okay | ||
| masak | mberends: oh yes. I've actually tracked down the same file once. :) | 21:12 | |
| mberends: PGE is a direct descendant of P6GE, IIRC. | |||
| 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 :) | ||
| that's why it has a very similar name. | 21:15 | ||
| mberends | my perhaps redundant idea of porting (back) to C | ||
| masak | oh! | ||
| now I see the relevant section. | |||
| 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? | |||
| yours would be a pure C regex engine. | |||
| 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. | ||
| pmichaud: thanks for a very good suggestion | |||
|
21:18
lmc joined
|
|||
| pmichaud | actually, I think it's more accurate to say that p6regex engines produce cursors nowadays | 21:18 | |
| match objects are really side-effects | 21:19 | ||
| masak | nod. | ||
| pmichaud | (even though they're the side effect we're most interested in :-) | ||
| mberends | ok, need to sort out my terminology | ||
| masak | I think I grokked the cursors model for a short while. need to re-grok it again soon. | ||
| pmichaud | nqp-rx is much clearer on that model than pge, fwiw | 21:20 | |
| mberends | "second system done right" | ||
| masak | :) | ||
| 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
|
|||
| 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. | ||
| jeremiah | So reseting PERL6LIB produces a different test message. | 21:23 | |
| pmichaud | nqp-rx isn't a refactor of PGE. It's a rewrite. | ||
| masak | jeremiah: o.O | ||
| jeremiah | I know, right. Weird. | ||
| masak | pmichaud: yes, I know. maybe that plan won't work. | ||
| jeremiah: I'm now going to open t/01/web-basics.t to see what it contains. | 21:24 | ||
| jeremiah | It is short. :) | ||
| masak | and totally useless. :/ | ||
| jeremiah | Well, doesn't it check to see if we can find Web.pm? | ||
| That seems useflu. | |||
| oops | |||
| useful. | 21:25 | ||
| masak | jeremiah: I don't think so anymore. | ||
| jeremiah | okay. | ||
| masak | jeremiah: if the real tests run, then we've foind Web.pm. | ||
| no need to test it individually. | |||
| jeremiah | okay | ||
| masak | it just means there will be one more failing test in a sea of failing tests... | ||
| 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. | ||
| jeremiah: that sounds like a plan. | |||
| jeremiah | cool | ||
|
21:37
rodi left
21:38
fridim_ joined
|
|||
| masak | S05 says :actions, but Rakudo uses :action. which is it? | 21:41 | |
| as uasi++ points out in 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:46 | ||
| I'll fix the ones that seem obvious, and leave the rest to TimToady or someone. | 21:47 | ||
|
21:48
colomon_ joined
|
|||
| pugs_svn | r29265 | masak++ | [S05] fixed a number of infelicities in action example | 21:49 | |
| jnthn | evenin' | ||
| masak | also, while I'm thinking about these things, why instantiate the action object? it has no state. | ||
| jnthn! \o/ | |||
| colomon_ | o/ | 21:50 | |
| masak | rakudo: grammar Integer { rule TOP { x } }; Integer.parse("x") | ||
| p6eval | rakudo 7ef386: ( no output ) | 21:51 | |
| masak | locally, that says "set_attr_str() not implemented in class 'Integer'" | ||
| masak submits rakudobug | |||
| jnthn | meh | ||
| rgrau | could any of the rakudoperl twitter admins tweet today's advent? it deserves to be known :) | ||
| masak | jnthn: works in ng? :P | ||
| 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. :-/ | |||
| masak | hugme: help | ||
| hugme | masak: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message ) | ||
| masak | hugme: tweet rakudoperl Perl 6 Advent Calendar Day 5: Metaoperators -- bit.ly/6ZiHlr | 21:54 | |
| hugme hugs masak; tweet delivered | |||
| masak | jnthn: well, that's just too bad. | ||
| literally. it's exceedingly bad. | |||
| rgrau | thanks masak++ | ||
| masak | rgrau: thanks for the suggestion. :) | ||
| jnthn | masak: It's only my first guess. | ||
| ng: class Integer { } | 21:55 | ||
| p6eval | ng 17a1ec: ( no output ) | ||
| jnthn | ng: class Integer { }; say Integer | ||
| masak | jnthn: it sounds reasonable. | ||
| p6eval | ng 17a1ec: Integer() | ||
| jnthn | ng: class Integer { }; say Integer.new.WHAT | ||
| p6eval | ng 17a1ec: Integer() | ||
| jnthn | hm | ||
| ng: grammar Integer { }; | |||
| p6eval | ng 17a1ec: ( no output ) | ||
| jnthn | ng: grammar Integer { }; Integer.new | ||
| p6eval | ng 17a1ec: ( no output ) | ||
| jnthn | ng: grammar Integer { }; Integer.parse("") | ||
| p6eval | ng 17a1ec: Could not find non-existent sub diecurrent instr.: 'perl6;Grammar;parse' pc 8144 (src/builtins/Any.pir:52) | ||
| 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) | ||
| jnthn | heh | ||
| masak: It looks like ng may resolve it, but I don't think we do rule/regex/token yet. | |||
| masak | nod. | 21:58 | |
| will we have ng for the December release? or even for Christmas Eve? only time will tell. | |||
| masak glances longingly skyward | |||
|
22:00
romanhunt left
|
|||
| jnthn | masak: I'm getting settled down again now in the UK, so am digging in again. :-) | 22:01 | |
| masak | hugme: hug jnthn gratefully! | ||
| hugme hugs jnthn | |||
| jnthn | masak: Things should accelerate once I can haz a laptop that's not powered by clockwork. :-) | ||
| masak thought all digital computers were powered by clocks | |||
| jnthn: are you getting one of those analog computers? | 22:02 | ||
| I hear Windows 7 runs smoother on those. | |||
| jnthn | masak: I thought everything was smoother in the analog world. ;-) | 22:03 | |
| masak | yes, exactly! :) | 22:04 | |
| well, as exact as it gets with physical moving parts. :) | |||
|
22:06
snarkyboojum_ joined
|
|||
| jeremiah | Solid state analog | 22:06 | |
|
22:07
snarkyboojum left
|
|||
| mathw | jnthn: are you on a seasonal visit to the UK? | 22:11 | |
| jnthn | mathw: Sorta. | ||
| jeremiah | I Sweden, the seasons visit you. | 22:12 | |
| jnthn | mathw: At the moment I'm on a looking-after-family-dog visit. :-) | ||
| mathw | woof | ||
| jnthn | w00f | ||
| mathw | oh it's an internet dog is it | 22:13 | |
| masak | loldog. | ||
|
22:13
iblechbot left
|
|||
| jnthn | Mostly it's a sleeping and eating and barking at the postman dog. :-) | 22:13 | |
| mathw | sounds a bit like my cat | 22:14 | |
| except for the barking at the postman bit | |||
| instead of that, he sits on the laptop | |||
| 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. :-) | ||
| mathw | probably | ||
| 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
|
|||
| jeremiah | A self-walking cat! | 22:24 | |
| What will they think of next. | |||
| mberends | self-GC (or at least G-hiding) is also superior to dogs | ||
| mathw | a self-writing compiler? | 22:26 | |
| jeremiah | _that_ will be the singularity for sure. | ||
|
22:27
snarkyboojum_ left
|
|||
| 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 | ||
| but now I'm off to bed | |||
| night | |||
| masak | mathw: 'night! | ||
| jeremiah | Self-sleeping human ^^ | ||
| Wolfman2000 is almost done... | |||
| jnthn is finally doing something (small) for book! | 22:31 | ||
| colomon_ | mathw: how goes the Advent post? | 22:36 | |
|
22:38
snarkyboojum_ joined
|
|||
| 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) | ||
| 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:41
snarkyboojum left
|
|||
| 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:44 | |
| p6eval | rakudo 7ef386: ( no output ) | 22:45 | |
| masak | locally, that yields 0, 42, foo, 123 (each on its own line) | ||
| Perl 6 aims to remove unnecessary surprises; things that complicate learning and hinder memory. | |||
| jnthn | hehe | ||
| dalek | ok: dd9b746 | jnthn++ | src/roles.pod: Stub in an initial example we can use for explaining/discussing roles. |
||
| ok: 7519c2f | jnthn++ | outline.pod: Remove (?) from Roles chapter in outline, add an idea of something else we could have a chapter on. |
|||
| masak | why do I have to define the methods true, Num, Str, and list to do the above? | ||
| it's totally random. | |||
| Bool, Num, Str and List would have been fine. | |||
| or bool, num, str and list. | |||
| 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. | |||
| And hopefully they'd be more consistent. | |||
| 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. | ||
| masak | it looks like a corner no-one's ever thought to dust. | ||
| jnthn | colomon_: No, they don't. | ||
| colomon_: We only did infix ones. | |||
| >>. is a special case. | 22:49 | ||
| masak: It's come up in various other ways before. | |||
| masak | jnthn: nod. | ||
| I've been known to bring it up, too. | |||
| 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. | ||
| :) | |||
| jnthn | ;-) | ||
| 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. | |||
| jnthn | masak: Part of the problem though is that .Num suggests "return a Num" | ||
| But we'd rather +42 did not. | |||
| We want an Int there. | |||
| masak | Int does Num. | 22:52 | |
| Wolfman2000 | If $ == $.Int, force Int? I don't know | ||
| jnthn | masak: In a slightly haphazard kinda way, yes. | ||
| 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 :) | |||
| 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. | |||
| jnthn: easiest is $sender ~~ any(@!whoz-op), I think. | 22:56 | ||
|
22:57
snarkyboojum_ left
|
|||
| jnthn | masak: Oh, that was taken out? | 22:57 | |
| You sure? | |||
| masak | 100% sure. | ||
| that was part of the big smartmatch refactor that got backported into 5.10. | |||
| in a way, smartmatch got slightly less smart. | |||
| I think I've come around to it being a good change, though. | 22:58 | ||
| jnthn | masak: OK, go ahead and fix. | ||
| 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'? | ||
| jnthn | masak: not as far as I'm aware. | ||
| masak | jnthn: I think I'll make it 'eq' instead of '~~' then, too. since it's string comparison anyway. | ||
| jnthn | masak: There's "a way" | ||
| masak: Yes, do. | |||
|
23:00
colomon_ left
|
|||
| jnthn | masak: Keep a copy of the object around, pre-compositon. | 23:00 | |
|
23:00
colomon joined
|
|||
| jnthn | masak: well, but that doesn't actually do what you want too well though. | 23:00 | |
| masak | no, not really. | ||
| jnthn | masak: heh. use Role::doesn't | ||
| masak | :) | ||
| Role::undoes | |||
| jnthn | Role::donotwant | 23:01 | |
| masak | :) | ||
| cognominal | short for Role does is Droid? | ||
| 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. :-) | |||
| masak | \o/ | ||
| jnthn | masak: Does it look like a decent example, overall? | 23:03 | |
| (once we tidy up the rough edges, of course) | |||
| masak | jnthn: yes, I like it. | 23:04 | |
| 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:05 | ||
| 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. | |||
| masak: It is quite a bit of code though, yes. | |||
| masak | nod. | ||
|
23:07
meppl joined
|
|||
| dalek | ok: 9a50799 | masak++ | src/roles.pod: [roles] fixed spelling error, smartmatch thinko |
23:09 | |
| ok: c41383f | masak++ | src/builtins.pod: [builtins] fixed typo |
|||
| jnthn has to say, (my family)++ for equipping the conservatory with good heating and a good sound system. | 23:11 | ||
| This is quite a cool hacking/writing space. | |||
| masak | what's a conservatory? sounds like a fancy word for 'storeroom' :P | 23:12 | |
| jnthn | lol | ||
| masak: best explained with an image... | 23:13 | ||
| masak: something like www.clean2u.com/images/Conservatory%20clean.gif | |||
| arnsholt | masak: Vinterhage, in Norwgian | ||
| masak | arnsholt: oh. never heard that. | ||
| arnsholt: I think we'd just say 'glasveranda'. | |||
| arnsholt | That works too =) | ||
| mberends | not where one puts one's conserves :-/ | ||
| masak | mberends: or one's embalmed relatives. | 23:14 | |
| mberends | lol | ||
| jnthn | mberends: Huh? You expected English to be logical? :-) | ||
| 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. | ||
| 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:16
Guest46985 left
|
|||
| mberends | it's the pantry where one puts one's conserves, but not one's pants | 23:17 | |
|
23:18
brrant joined
|
|||
| mberends | jnthn: English can be consistently illogical | 23:19 | |
| jnthn | .oO( mum: JONATHAN!!! What are THESE doing in here?! ) |
||
| mberends: I guess there's always a chance that the larder contains a bar of lard... | |||
| Tene | jnthn: where does your family live? | ||
| jnthn | Tene: In a village in Yorkshire. | 23:20 | |
| (North east of England) | |||
| If I walk fast, I can get to somewhere that I can see the sea in ~ 30 mins. | |||
| Tene | nice. :) | ||
| jnthn | Yeah. It's quite a change in pace after having spent the rest of the year mostly living in a capital city. :-) | 23:21 | |
|
23:22
pmurias left
23:30
zloyrusskiy left
23:40
IllvilJa left
23:43
colomon left,
fridim_ left
|
|||