»ö« | 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
|