6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by autrijus on 10 October 2005. |
|||
leo__ | I didn't look right now - I'm currently working on that, 1 need one more week | 00:00 | |
geoffb | leo__, ah, OK | ||
leo__ | anyway at that time Parrot did spend 1/2 of all the exec time in cache misses (on my arch) | 00:01 | |
# in that ver benchmark ... | |||
fib | |||
geoffb | FWIW, I'm a performance numbers *nut*. When you produce them, link them here. :-) | ||
leo__ | damn lies and benchmarks ... | ||
I'll do a compare again after variable sized register frames are done | 00:02 | ||
geoffb | They're only lies about what the poster wants you to believe. But if you look at them for what they *are*, there's always interesting data there. | ||
leo__, nodnod | 00:03 | ||
leo__ | the fib benchmark per se isn't important at all, it tells you how fast dumb recursive functions work | 00:04 | |
but it says also how fast function calling speed is, somehow | |||
geoffb | nod. And as you pointed out, the real value of the benchmark wasn't that Lua is crazy fast at it, but rather that parrot of that era was a cache nightmare. | 00:05 | |
You found the real data. :-) | |||
leo__ | I think that's the point yes | 00:06 | |
you can find a lot of benchmarks here (you know it presumably): shootout.alioth.debian.org/ | 00:07 | ||
autrijus | geoffb: re slide, thanks! | ||
autrijus just spent much time wrestling with mysql :-/ | |||
autrijus praises sqlite by comparison | |||
nothingmuch | evening | 00:11 | |
autrijus | yo. | ||
geoffb | autrijus, sqlite++ -- It's how I'm getting from XML to Oracle at $work. | 00:17 | |
leo__, yes, knew of shootout, but hadn't thought of it in this context. Will think. | |||
leo__ | one more tool comes to my mind: 'common sense' - that is needing ~750 bytes for one fib() recursion call can't be really efficient, when a stacked based language would need ~ 24 (estimated) | 00:24 | |
geoffb | leo__, nodnod | 00:25 | |
But common sense is often wrong -- part of learning to do optimization is learning why something is true, rather than guessing. | 00:26 | ||
leo__ | that's true of course, above is maybe an 'educated guess' | 00:35 | |
geoffb | nodnod | 00:37 | |
leo__ | anyway the most important question probably is: is it fast enough, which is easily answered for an application, but not for a program (interpreter, VM), where all possible applications might run on | 00:38 | |
geoffb | Someone once said (or probably, many people have said over and over) that structural code needs to be as fast as possible, because you have to multiply its slowness by its usage to determine the net detriment to humanity. And structural code gets run a LOT. | 00:39 | |
chip | "I don't mind giving up a factor of two in performance. The problem is, neither do nine of my friends." - Stu Feldman, inventor of make(1) | 00:40 | |
geoffb | :-) | 00:41 | |
chip | autrijus: I think BEGIN{} makes it impossible to depend on a sub being fully constructed before an inner sub runs | 00:45 | |
autrijus: Foo.pm: my $a; BEGIN { $a = 1 } my $b; | |||
autrijus | chip: eh. | 00:48 | |
BEGIN runs in the compiler | 00:49 | ||
it's not in the outputted pir code | |||
you can't reenter BEGIN from runtime code | |||
so what's the problem? | |||
chip | None for Pugs, apparently. | ||
autrijus | by the time parrot see it's already | ||
my $a ::= 1; # pre-initted to 1 | |||
the "$a = 1" is not run | 00:50 | ||
this is true even for | |||
chip | But that's because Pugs seems to be treating Parrot code like a huge JIT ... running the code via PIR is optional | ||
autrijus | my $a; BEGIN { $a = readline() } | ||
explain please? this is already true in perl5 -- if you run that line thru perlcc | |||
then at runtime that pad is just gone | |||
I mean that BEGIN block | |||
chip | I don't know perlcc | 00:51 | |
autrijus | chip: no, eventually pugs will be rewritten in perl6, which would run on parrot, but even then, we have this Separate Compilation Doctrine | ||
so even though the compiler and runtime are the same process | |||
conceptually they are not. | |||
so the thing runs in BEGIN and the things runs in normal runtime | 00:52 | ||
chip | So ... as far as lexicals are concerned, BEGIN need not exist? (And INIT has no problems) | ||
autrijus | right | ||
exactly | |||
because the thing in each BEGIN | 00:53 | ||
and the thing outside BEGIN | |||
are run by different computers | |||
conceptually. | |||
chip | Well. I'm happy to punt, even if I feel somewhat like Indiana Jones in the Last Crusade stepping on the invisible bridge | ||
autrijus | :D | ||
coral pushes a boulder towards chip | |||
autrijus | (but really, this is the same with perlcc) | ||
chip | me kneels before "Bob" | ||
leo__ ponders if perl6 should really support valid but else meaningless code just to bother compiler implementers | 00:54 | ||
nothingmuch | leo__: example? | ||
leo__ | nothingmuch: the BEGIN above | ||
chip | sub randroid { my $a = $a } | ||
leo__: I was actually thinking of C<use> | |||
nothingmuch | it's not that hard, the compiler must have a VM that produces a value | 00:55 | |
leo__ | there is a real cool thing: 'rules' | ||
nothingmuch | and the valuue is then compiled into the result | ||
autrijus | ooh, nothingmuch is here, he'll speak for separate compilation | ||
and I'll sleep :) | |||
nothingmuch | which may be run by the same VM or another VM | ||
no, i'll also sleep | |||
leo__ | inside a BEGIN block diffrent rules are to adhere | ||
chip | So 'import' isn't allowed to have runtime effects? | 00:56 | |
leo__ | sleep? didn't chip mention somethin' like that recently? | ||
chip | heh | ||
nanosleep | |||
nothingmuch | chip: in perl5 we had completely adhoc linking, right? *{$symbol} = \&code; | ||
chip | right | ||
nothingmuch | that much at least is taken care of by separate compilation | 00:57 | |
the role of import as a runtime-in-compiletime sub that performs linkage is phased out | |||
in favour of a real linker with a declarative interface | |||
chip | A real linker? You speak madness | ||
Great learning has driven you into madness | 00:58 | ||
nothingmuch | now, as for the role of import as a hack to do nice tricks - that should be run in INIT usually | ||
by real linker i don't mean one which takes .o's and makes an ELF file | |||
autrijus | chip: yeah, if your module want to do weird things at runtime, that is INIT. maybe we can spec some other thing that means import-but-happens-at-runtime. | ||
nothingmuch | i mean a real linker in the abstract sense, that takes an object with missing symbols and exported symbols | ||
and other objects like it | |||
and glues them together | |||
compile time happens once in perl 6 | 00:59 | ||
chip | Yes, that much I get | ||
nothingmuch | each module is compiled separately | ||
compilation of a consuming module might depend on the providing module's export | |||
s | |||
and then setup jobs that happenned in 'import' in perl 5 should be carried over to the real runtime in perl 6 | 01:00 | ||
chip | The origin of conscious programming in the breakdown of the bicameral compiler | ||
nothingmuch goes to find a dictionary | |||
chip | best check amazon instaed. | 01:01 | |
nothingmuch | bicameral - does that mean "each unit is separate" in this context? | ||
chip | www.amazon.com/exec/obidos/tg/detai...0618057072 | ||
nothingmuch | oh | ||
chip | It means that compile time and run time no longer share a context, but are separate systems | ||
nothingmuch | they are separate, but unlike in C they are also mutually recursive | 01:02 | |
chip | Well, see, that's where I'm getting pretty disturbed | ||
But perhaps due to ignorance | |||
nothingmuch | i personally don't find it troubling | ||
or at least far less troubling than perl 5 | 01:03 | ||
chip | Once I figured out Larry's idea - 'the full power of the environment must be available during compilation as well as after it' - it made perfect sense | ||
Without that, I just can't see BEGIN{}. | |||
I think you need instead declarative assertions of the things BEGIN{} used to do. | 01:04 | ||
Like :export | |||
nothingmuch | chip: is that book consumable by normal people? it seems very interesting | ||
chip | nothingmuch: I haven't read it, only seen many references to it | ||
nothingmuch | we have that for export | ||
chip | nothingmuch: which is why I used it as an example :-) | ||
nothingmuch shoves it into the wishlist anyway | 01:05 | ||
autrijus | chip: think undump() | 01:07 | |
which is what happens at BEGIN boundary | |||
nothingmuch | good night | 01:09 | |
leo__ | chip: ad BEGIN - did you ever see: $ less t/pmc/sub_4[34].pir | 01:11 | |
chip | autrijus: the situation before BEGIN and the desired situation after BEGIN are clear to me. How BEGIN runs, is not. BEGIN has an %OUTER which is a subroutine that has not yet been fully compiled. That's Just Not Right. | 01:13 | |
autrijus | it is fully compiled | 01:15 | |
it's just maybe missing some symbols. | |||
i.e. it needs to take whatever the parser sees up to that point | |||
pretend we close over all unclosed scopes | |||
and compile right there | |||
chip | I don't think the word "fully" means what you think it means. | ||
autrijus | right. | ||
what I mean is, we end up compiling a part of the original sub | |||
but we pretend it's a full sub in its own right. | 01:16 | ||
chip | so BEGIN doesn't run in the outer, but in outer' which is the part of outer before the BEGIN | ||
autrijus | yes. | 01:17 | |
chip | so the effect of the BEGIN is made persistent ... how, exactly? outer' isn't what the user asked for and shouldn't run. | ||
autrijus | BEGIN yields a value | ||
that value is serialized | |||
and put back as if the user wrote a constant there | |||
chip | and side effects? | ||
leo__ | please folks have a loo at these 2 tests | ||
autrijus | happens during compile time | ||
not runtime | |||
chip | leo__: those files don't exist | 01:18 | |
leo__ | $ make test # or faster : perl -Ilib t/pmc/sub.t | ||
autrijus | @IMMEDIATE? | 01:19 | |
leo__ | compile time | ||
autrijus | PIR compile time | ||
most definitely not Perl6 parsing time :) | |||
leo__ | :immediate in newer parrots | ||
pir time of course | |||
autrijus | { BEGIN { ...add a new operator... } ...use the new operator... } | 01:20 | |
leo__ | but that's what I can imagin parrot receives | ||
autrijus | is the usual perl6 case | ||
which would affect parsing | |||
so I can't have it all shoved to PIR | |||
leo__ | sorting out perl6 BEGIN from parrot's is up to you ;-) | 01:21 | |
autrijus | I know, I don't envy my task ;) | ||
(and it's separated now anyway) | 01:22 | ||
chip | leo__: I noticed ":immediate" (and I think the syntax for calling the immediate sub ... should be revisited) ... but handy immediate subs aren't really going to address what autrijus is doing, AFAIK | ||
leo__ | could be of course - and now I'm really taking the 'and why in the planet of hell ...' direction (good night) | 01:25 | |
nothingmuch wonders whether chromatic is saying he doesn't like it, or that perl 6 shouldn't have support for closed source module loading at all | 01:26 | ||
autrijus | nothingmuch: he is saying no, in p6, I think | 01:28 | |
nothingmuch | hmm | 01:29 | |
i'm not sure we can stop it | |||
autrijus | nothingmuch: but .pbc is of course another matter. | ||
nothingmuch | and I'm not sure we should | ||
autrijus | I don't care... see PAR::Filter::Obfuscate ;) | ||
nothingmuch | closed source makes the world sad | ||
hola stevan_ | 01:30 | ||
autrijus | sleeps & | 01:33 | |
mugwump | I thought he meant that no classes should be exempt from being mucked with at runtime. | 01:34 | |
But I like the idea of being able to compile programs to executables | 01:35 | ||
without them all being linked to libpugs.so | |||
and I think closed classes are a good way for this to be enforced | |||
svnbot6 | r7604 | autrijus++ | * larry_mariner.txt: one-word patch from allison | ||
chip | nothingmuch: What you leave unsaid is that open source *also* makes the world sad. | 01:37 | |
All software sucks. (cf. Linux sound and video) | 01:38 | ||
obra | linux sound is a lot better now. But I still agree | ||
chip | "911 operator tells caller fire is actually fog. Historic fort catches fog, burns to ground" - fark | 01:44 | |
04:00
sleepster is now known as typester
|
|||
geoffb | Meh. This blog is getting *long*. Like article long. That probably means it will be split into pieces | 04:23 | |
The problem is exactly how to arrange that split. | |||
brentdax watches Synaptic download new Ubuntu packages. | 04:53 | ||
(Just an hour or two more...) | |||
svnbot6 | r7605 | duff++ | * Rearranged examples/qotw directory structure and added a few new entries | 05:00 | |
r7605 | duff++ | * Added myself to the VICTUALS file :) | |||
geoffb | This week's blog entry up: www.oreillynet.com/pub/wlg/8097 | 05:35 | |
I decided to break it up into multiple weeks, and stopped at the first breaking point after 2000 words. | |||
Sorry to those expecting to see all the stuff from my notes in one post. :-) | 05:36 | ||
Time for a nice snack. | |||
& | |||
stevan_ | geoffb++ # as always :) | 05:57 | |
stevan_ sends his metaclass/class-method dispatch opus to p6l and calls it a night | |||
dduncan | I just finished watching the 1999 movie "The Thirteenth Floor", following a reference to it here on #perl6 a couple weeks ago ... great movie, thanks for bringing it up | 06:25 | |
geoffb | stevan_, thanks. As always. :-) | 06:59 | |
obra | geoffb: you're now on planetsix.perlfoundation.org | 07:00 | |
geoffb | obra, thank you! | ||
obra | Thanks for blogging | 07:01 | |
geoffb | obra: is it intentional that my name link points back to planetsix? | 07:02 | |
obra, :-) | |||
obra | No. | ||
hang on | |||
I've pushed an attempted fix. | 07:03 | ||
not sure what the problem is | |||
geoffb | How long does it take to propagate? | 07:04 | |
obra | 20 min | 07:06 | |
geoffb | ok. | ||
I'll go check mail then. :-) | |||
obra | oh! | ||
the problem is that oreillynet's feeds suck | |||
geoffb | lol | 07:10 | |
Gee, something else that doesn't dwim in the O'Reilly blogs? NEVER. | |||
dduncan | geoffb, yep, that's another good blog ... I also noticed that you've been doing this for awhile, and not since last week, so I plan to look at the earlier ones | 07:21 | |
geoffb | dduncan, thank you, and thank you. :-) | ||
dduncan | the latter comment is due to the fact you linked to an earlier post in your new one ... I otherwise wouldn't have thought to look for awhile | 07:22 | |
it certainly does appear that PBP is leading to a lot of discussions | |||
geoffb | I'm just happy I have a ready made topic for next week. I need to come up with some more ideas for 2-3 weeks from now | ||
dduncan, nodnod | 07:23 | ||
dduncan | I also agree with a lot of that book (only about 4 chapters unread so far), and have found few complaints | ||
I'll also point out that the avoid-unless argument seemed quite sound, and I had no problem with switching out of it, after using it a lot | |||
mainly the argument concerned what happened when you had multiple conditions, and keeping track of all that reversed logic is more difficult in the brain ... I found so in my own experience too | 07:24 | ||
geoffb | Personally, I found the anti-unless comments smacked of Guidoism. I could grant him his starting point, I just think he overgeneralized and reached the wrong conclusion. | 07:25 | |
dduncan | I actually found, when doing comparisons, that my brain could process if !foo faster than unless !foo, or was no slower | 07:26 | |
s/process/comprehend/ | |||
also take the second ! out | |||
one interesting side effect of reading the book is that there were numerous cases where I wanted to evaluate whether to do something one way or another, and so I tried looking up a suggestion in the book, but there was none for those questions | 07:28 | ||
geoffb | Oh, speed of comprehension wasn't my complaint. I like my algorithms to read cleanly in English. | ||
dduncan, nodnod | |||
dduncan | for example, whether I should be using Module::Build in my distros or just Makemaker | ||
I decided to put that decision off for later, and stick to Makemaker for now | 07:29 | ||
but I did notice that Makemaker didn't seem to let me do some of the things that I can do with the Perl 6 replacement | |||
which is custom, and I thought incorporated some Build ideas | |||
geoffb | nod | 07:30 | |
dduncan | but as your article points out, Damian's main goal was to have us make conscious decisions to do things one way or another based on rationale, rather than simple habit ... very good idea that | 07:31 | |
and so its helpful to have other people critique your code, because they can point out such things that we take for granted without realizing it | 07:32 | ||
I came up with that one | |||
geoffb | :-) | 07:34 | |
dduncan | on that note, in a few weeks I will want people to look through my re-written Rosetta framework and make suggestions of better ways to do things, or question why I did certain things, whether said better ideas come from PBP or their own experience | 07:36 | |
this goes for both the perl 6 and 5 versions ... but in particular, perl 6 has so many new features I probably forgot a lot of them | |||
and I *want* to learn new ways of thinking that perl 6 provides | 07:37 | ||
some of the PBP helps with that too ... many recommended modules happen to correspond to functions built-in to perl 6 | 07:38 | ||
geoffb | ditto | ||
yep, and I think that's no mistake | |||
dduncan | eg, first() | ||
definitely | |||
in fact, I spoke to Damian at OSCOn ... | |||
and I told him my observation ... | 07:39 | ||
... I thought that most of the PBP was to get people thinking in certain ways with perl 5 that would become natural in perl 6 | |||
he said I had a lot of insight | |||
and its not surprising, since he has a big hand in designing perl 6, at the same time as writing the book | 07:40 | ||
partly from that book I've also changed a big habit of mine too ... | 07:41 | ||
I've learned to embrace CPAN for even small-functionality tasks, rather than writing my own and using CPAN for just big things | |||
eg, a year ago I would have stayed away from things like List::Utils on principle of having as few dependencies as possible | 07:42 | ||
geoffb | I have a love-hate relationship with CPAN. | ||
dduncan | of course, I still want to just stick to the quality stuff | ||
obra | I'd categorize my relationship with cpan as 'codependent' | ||
dduncan | and still being careful about gratuitous dependencies | 07:43 | |
geoffb | I actually try pretty hard to not use CPAN directly, but only via Debian packages. | ||
Direct CPAN is usually heartache-inducing | |||
dduncan | right now, my new view of CPAN is that I want to exploit 2 types of dependencies: | ||
1. big functionality that I don't want to rewrite and that is good, like DBI etc | |||
2. small functionality that provides efficient implementations of things that Perl 6 will have built-in, such as List::Utils | 07:44 | ||
geoffb | List::Utils is Standard in recent Perls, isn't it? | 07:45 | |
dduncan | I will still have my own function to url-decode a query string for example, rather than bringing in a module that just does that | ||
maybe | |||
geoffb | (Yes, I know that's just an example, but still) | ||
dduncan | that module is included with modern perls, but I still consider it to be external | ||
I consider anything that you have to say 'use Foo' to be external, save pragmas | 07:46 | ||
geoffb | Core v. Standard and all that | ||
dduncan | this said, since my current modules have 5.8.x as their mimimum version requirement, I know some of those are bundled and exploit them more comfortably | ||
geoffb | .oO( Sounds like a Supreme Court case . . . ) |
||
dduncan | of course, some things are bundled with perl that shouldn't be, like CGI ... better to encourage CPAN use | 07:47 | |
geoffb | obra, any luck fixing the link on planetsix? Or is it just a lost cause? | 07:48 | |
obra | ask tomorrow after I ask robert | 07:49 | |
geoffb | sure, np | ||
dduncan | on a different matter ... tomorrow I'm going to interview for a perl job, one of the few in my area ... wish me luck | 07:50 | |
geoffb | Good luck! | 07:51 | |
dduncan | would be nice to get paid for work with the language so far ... save for a quick 5-hr one-off, all the perl I've done in my life was un-paid | 07:52 | |
and thanks | |||
geoff, on another note, what does Oreilly pay you for those? ... only other thing I heard about pay rates was that Piers Cawley got about $200 a pop for the weekly perl 6 summaries ... I may be wrong about the detail though | 07:54 | ||
and that's ended last week | 07:55 | ||
or at least your "blogs" look official | |||
being on oreillynet and all | |||
or don't answer if its uncomfortable | 07:56 | ||
and I could be wrong, you may get nothing, then sorry I asked | |||
anyway good night | 08:01 | ||
geoffb assumes dduncan backlogs . . . | 08:03 | ||
Sorry, dduncan, I didn't see you ask because you said "geoff" instead of "geoffb" and xchat didn't beep me. :-) | |||
I don't get paid for the O'Reilly blogs, but I do get freebies. One month of good blogs == 1 free book. After a solid year, I get an O'Reilly conference pass. | 08:05 | ||
GeJ | hum... sweet... | ||
geoffb | It's not much, but I think they do that much just to keep it from falling to the bottom of people's stacks when they get busy. | 08:06 | |
GeJ should try that new blog technology thingy... | |||
geoffb | Keeping this up for a year may be tough, but I will at least get a lot of writing practice. :-) | 08:08 | |
GeJ | planning on something special? a new edition of one of the perl books for Perl6? | 08:10 | |
geoffb | Meaning, do I plan to write one? | 08:11 | |
GeJ | yup | ||
geoffb | I'd like to. We'll see. I don't know whether I'll have the time/energy to do it, but you never know. | 08:12 | |
Personally, I think it would be wicked cool to be a published author. | 08:13 | ||
GeJ | :) | ||
geoffb | And there's nothing like going to a job interview and saying "Well, actually, I wrote the book on that." | ||
GeJ | true, true | 08:14 | |
geoffb | .oO( Maybe "Thinking Perl 6" ) |
08:15 | |
You know, that's not a bad idea, actually. | |||
GeJ | Just backlogging what's been said here for the last 222 days should give enough material to write an encyclopedia on CS if you ask me. | 08:16 | |
geoffb | heh | ||
definitely. | |||
That reminds me, I need to throw some tuits at my great books tool and check it in | 08:17 | ||
GeJ | One thing I'm afraid with this title is the lack of practical-ity. It puts Perl6 on some philosophical level that might scare people. Something a little more "down-to-earth" would be better. But hey, just my guess | ||
geoffb | I was thinking along the lines of Thinking Forth | 08:18 | |
But yeah, you may be right | |||
GeJ | It's just that sometimes, you guys scare me. For sure I get the -Ofun, all the benefits of the Perl6's functional-isation, but in the end, I fear that it might get a scary beast. | 08:20 | |
That's why I want to get my feet wet as soon as 6.28.0 is out and try to port xUnit to Perl6. | 08:21 | ||
geoffb | I see it more along the lines of Go or Chess. Once the curfuffle is all over and the dust clears, we will be left with something with a simple set of basic rules, and amazing depth. | ||
But then, I'm a Perl 6 optimist | |||
"I'm a Perl 6 Optimist" <-- bumper sticker material, if ever there were any | 08:22 | ||
GeJ | I have no doubt that Perl6 will be great, that's certain. But the migration from p5 to p6 will not be an easy thing. Sure Ponie will make p5 scripts on p6... | 08:24 | |
geoffb | s/on p6/on parrot/ | ||
Yeah, I think the transition will be jarring. | |||
GeJ | hum, yes... sorry... | ||
geoffb | I expect what will happen is there will be parallel ecologies for a good long time. | 08:25 | |
oh, np, just correcting in case you were confused with Larry's P5 -> P6 translator | |||
.oO( And how is that going, anyway . . . ? ) |
08:26 | ||
GeJ | it's going fine, thanks... still have to put somewhere in my head that P6 will run on a VM. I know it for sure, but sometimes it slips... | 08:27 | |
geoffb | "it's going fine, thanks" . . . er, what? | ||
GeJ | "And how is that going, anyway . . . ?" <-- "just correcting in case you were confused..." | 08:28 | |
geoffb | ah | ||
GeJ | sorry, my huge ego thought the question was addressed to me | ||
geoffb | I was wondering how Larry's translator was going | ||
heh | |||
I haven't heard anything recently about it (Larry's code, not your ego ;-) | 08:29 | ||
GeJ | :) | ||
I can't remember where (one of luqui's reports or jesse's parrot sketches) but I thought that Ponie's development was stalled (or at least progressing slowly) | 08:30 | ||
geoffb | yeah, I got the feeling it was running slow when I saw the talk at OSCON. Slow but steady was the impression I got then | 08:31 | |
Bigger project than they expected, I think. | |||
GeJ | nod nod | 08:32 | |
is parrot going to... hum not sure to find a correct and not offending word... 'calm down' or is it still a high velocity target? | 08:33 | ||
as in deprecating function calls every two other weeks. | 08:34 | ||
wolverian | geoffb, I think ponie was stalled until the recent parrot release | 08:35 | |
geoffb | wolverian, I would believe that. OSCON was 2.5 months ago, so I'm guessing my impression was out of date. | 08:36 | |
GeJ | Not that I want to show disrespect to leo and chip's team. But trying to catch a snail is easier than trying to catch a jumbo jet at mach 1. | ||
geoffb | GeJ, I dunno, frankly. I get the feeling they've taken enough heat on that. | 08:37 | |
When chip first came in, he seemed gung-ho about stabilizing. I dunno how he feels now. | |||
GeJ | Ah damn... checked out an amazon order and forgot to add TaPL. | 08:44 | |
Well, that proves one thing, without my first coffee, I'm worthless | 08:45 | ||
geoffb | :-) | 08:46 | |
scook0 | (Benjamin C. Pierce must be loving all the attention, anyway :) | 08:47 | |
GeJ | Well, he surely find some nice PR agent with autrijus. | 08:48 | |
s/find/found/ | |||
brother | I posted to perl.perl6.language through nntp.perl.org two hours ago and it hasn't showed up yet. (first post) | 09:19 | |
Is that to be expected? | |||
wolverian | brother, I don't know if the nntp is two way. it's really a mailing list. in any case, it's also moderated, and first timers need to be whitelisted. | 09:20 | |
brother | ok, then I just wait to be whitelisted. | ||
wolverian | I'd subscribe to the mailing list, anyway. :) | 09:21 | |
brother | Otherwise it's been a long time since I last complained to Ask Bjōæ½xF8rn Hansen about something | 09:22 | |
geoffb sighs mightily | |||
I should stop procrastinating and go to bed | |||
& | 09:24 | ||
GeJ | bye geoffb | ||
dduncan | geoffb, I reconnected just long enough to say that I *sometimes* backlog, and did so in this case to see your answer to my question, which I did see on the html log, thank you ... now, really truly nap time | 09:52 | |
r0nny_ | hoi | 10:14 | |
Juerd | Hello | ||
r0nny_ | anyone here knows cons ? | 10:17 | |
QtPlatypus | cons? | 10:18 | |
r0nny_ | perl based build system | ||
autrijus | steven knight's cons? I've casually glanced at it | ||
r0nny_ | www.dsmit.com/cons/ | 10:20 | |
i want to know, if i can do the same trick they use fir the build controll files in perl6 | |||
autrijus | which trick? | 10:23 | |
r0nny_ | all controll files are perl scripts - but they are all in the same namespace | 10:24 | |
they save/restore this namespace | |||
autrijus | sure, easily | 10:30 | |
r0nny_ | btw - is there a online documentation or something helping learning perl6 better ? | 10:35 | |
autrijus | in the pugs tree, try docs/quickref/ | ||
and docs/* | |||
also see Perl6::Bible on CPAN | |||
GeJ | autrijus: I had a look this morning on docs/quickref/oo With all the discussions on MM raging on p6l, am I right to assume that this file will need some huge revamp (as probably will the OO Apocalypse) ? | 10:38 | |
autrijus | GeJ: not huge, but significant, yes :) | ||
I'll try to get some more rulings on euro oscon. | 10:39 | ||
r0nny_ | btw - is it valid to use perl5 modules ? | ||
autrijus | r0nny_: yes | ||
use perl5:DBI; | |||
my $dbh = DBI.connect(...); | |||
# works today | |||
r0nny_ | whats with Class::DBI ? wich needs some inheritance ? | 10:40 | |
autrijus | would work too I think. | ||
r0nny_ | argh | 10:44 | |
there is a problem | |||
using a shebang line to execute a script with pugs, but if i use --help, pugs shoes the pugs cmdline help | |||
is there a fix ? | 10:48 | ||
autrijus | currently no, because Pugs.Run.Args uses gnu style flagging | 10:50 | |
pugs foo.pl -- --help | |||
would work ('--' serves as separator) | |||
but this is of course suboptimal | |||
maybe write a t/pugsrun/ test for the "correct" behaviour? | |||
(assuming you have a committer bit... if not, your email please) | 10:51 | ||
r0nny_ | hmm | ||
i dont know haskell, and i dont know perl6 :/ | |||
btw - what about supporting specifying the file right after the -- | 10:52 | ||
so i could use #!/...pugs -- as shebang line | |||
autrijus | I think it is supported. | ||
so you can do that just fine. | 10:53 | ||
r0nny_ | oh - it works :) | ||
autrijus | what's your name and/or CPAN ID? I'd like to add you to AUTHORS :) | 10:57 | |
svnbot6 | r7606 | autrijus++ | * Add notes to Perl6::Pugs and pugs::run documentation about | 11:02 | |
r7606 | autrijus++ | the use of -- to separate pugs options and program options. | |||
r7606 | autrijus++ | Reported by r0nny. | |||
autrijus | renap & | 11:04 | |
r0nny_ | autrijus: atm i got no CPAN-ID | ||
autrijus | name, then :) | 11:05 | |
r0nny_ | Ronny Pfannschmidt | ||
autrijus | ta. thanks! | 11:06 | |
autrijus waves... bbiab | |||
svnbot6 | r7607 | autrijus++ | * add Ronny "r0nny" Pfannschmidt to AUTHORS. | 11:08 | |
r0nny_ | wow :) | 11:09 | |
time to put my "im sooo cool" t-shirt on ;) | |||
brother | "... and I was to lazy to do it myself" | 11:11 | |
I had to commit my changes myself | |||
liberal with the commit bit doesn't mean 'we trust people' it means "we're lazy" | 11:12 | ||
? | |||
autrijus | ...and proud of it, yes. :) | 11:15 | |
r0nny_ | afaik lazy evaluation is allways good ;P | 11:16 | |
brother | Well, probally I wouldn't have spent so much time making sure my patch wouldn't make any regression on corner cases if I just could fire it agains a mailling list | 11:33 | |
autrijus | hm? [email@hidden.address] ? | ||
brother | I'm raised with SML so lazy evaluation is a bit obscure for me | 11:34 | |
Paulsons ML for the Working Programmer does describe lazy evaluation but it is a hack with SML | 11:35 | ||
autrijus | *nod* | ||
broquaint | How does one pull down a directory using svk? | ||
autrijus | broquaint: svk co svn.openfoundry.org/pugs/ | ||
broquaint | Aha, nice one. I had to move up out of pugs/. Thanks, autrijus :) | 11:36 | |
autrijus | np :) | 11:37 | |
svnbot6 | r7608 | gaal++ | fix URL for hs-plugins | 11:45 | |
gaal | eep, the build seems broken on linux | 11:58 | |
many "Duplicate instance declarations" errors | 11:59 | ||
i must go now though | |||
:( | |||
12:22
r0nny_ is now known as r0nny
|
|||
svnbot6 | r7609 | fglock++ | * perl5/List - allow unboxed values in List.from_range() | 13:08 | |
Juerd | wolverian: The R51 has a US QWERTY keyboard | 13:25 | |
wolverian | Juerd, hmm. does it have the same physical keys that a Finnish keyboard has, do you know? | 13:36 | |
Juerd, (that is, the pictures on the keys don't matter, but their existence does :) | |||
Juerd, I thought it was a R52, by the way | 13:38 | ||
Juerd | wolverian: Probably not. | 14:00 | |
wolverian: It's an R51 | |||
wolverian | Juerd, hmm. I think I'll rather buy one with all the keys, then. (105 or so, I think) | 14:04 | |
Juerd, it's fairly important for typing Finnish | |||
r0nny | re | 14:05 | |
how is the specification for perl6 threads going ? | |||
wolverian | Juerd, thanks for checking, though | 14:10 | |
gaal | the build problem i saw earlier is resolved after `make realclean`. | 14:13 | |
wow, this is the first time i ever saw this machine thrash except for heavy games. i must remember not to try to build two pugs simultaneously, one in a virutal machine. | 14:15 | ||
r0nny: the implementation is way ahead of the specification in this case... there's haskellish atomic{} and async{} in pugs for a while. | 14:17 | ||
r0nny | so i use async {} to generate threads ? | 14:26 | |
any way to control them ? | |||
eric256 realizes his computer clock is 12hours off....so much for aotmic clock synchronization | 14:32 | ||
Juerd | wolverian: Dutch keyboards have equal numbers of keys :) | 14:33 | |
wolverian: And it sucks. | |||
wolverian: It means I have to lift my right hand in order to hit enter. Pinky can't reach enter on those keyboards | |||
theorbtwo thinks that has more to do with /placement/ of keys then with /number of/ keys. | 14:34 | ||
wolverian | Juerd, heh. | ||
theorbtwo | Enter should be wide, but not tall; backslash should be above enter. | ||
wolverian | Juerd, oh, wow, a new R51 model arriving on 29.10. at 1087 euros | ||
Juerd, it's only 1.6ghz and 256mb RAM, but it's a thinkpad.. | 14:35 | ||
(with a Finnish keyboard :) | |||
eric256 has considers collecting keyboards from around the world..i think it would make cool wall art | |||
theorbtwo shrugs. Most european keyboards have the same physical layout with different markings. | 14:36 | ||
(And looking at the markings is a sign of weakness and shall not be tolerated!) | |||
I still want one that's layed out like an en_US with the extra 105th key, though. | 14:37 | ||
Juerd | wolverian: "but it's a thinkpad". You've learned a lot in just one day :) | 14:38 | |
wolverian | Juerd, I trust you. :) | ||
Juerd | And the 1.6 won't be a problem | 14:39 | |
Don't forget that it's a Pentium M | |||
Not a Pentium 4 | |||
wolverian | right | 14:40 | |
Juerd | PM 1.6 translates roughly to P4 2.8, but with much beter power economy | ||
eric256 | theorbtwo...i was thinking more like japanese, korean, russian,...and its the markings i was interested in | ||
wolverian | heh, IBM really doesn't believe in high resolution, eh? | ||
brother | 'svn ci' without -m starts $EDITOR jusl like cvs does, right? | 14:41 | |
wolverian | yes | ||
Juerd | wolverian: No. They're business machines. Businessmen are single taskers. | ||
eric256 | yes brother | ||
wolverian | Juerd, true. but I'm not a businessman | ||
Juerd, then again, I always maximise my windows and just alt-tab between them. | |||
Juerd | wolverian: Then you will be glad that Lenovo took over, and is going to consider home consumers too :) | ||
brother | thanks, just wanted to be sure befor making an uncommented commit | ||
Juerd | Maximization is single tasking | 14:42 | |
wolverian | true enough | ||
Juerd | Alt tabbing means you switch between tasks | ||
I'm a bit afraid of lenovo's future actions | 14:43 | ||
So far, what they've been doing is great | |||
But they very easily break tradition | |||
They have already made not-black thinkpads | |||
(Titanium cover) | |||
wolverian | hmm | 14:46 | |
I hate how they group many different specs into one Rxx | |||
dammit, now I'm totally lost again what to buy. | 14:48 | ||
especially as the Fujitsu I was looking at seems to be out of production | |||
svnbot6 | r7610 | iblech++ | * Usual svn props. | ||
r7610 | iblech++ | * t/syntax/pairs.t: unTODO | |||
r7610 | iblech++ | * t/types/variables.t: Fixed test (&dies_ok expects a coderef, not a piece of | |||
r7610 | iblech++ | sourcecode to eval()). | |||
brother | Grrr, I want some more ram for my iBook | 14:49 | |
wolverian | Juerd, if I absolutely can't get thinkpad, do you have other recommendations? | 14:50 | |
Juerd | wolverian: Hmm. Tough. | ||
wolverian: Most manufacturers have wildly different ethics | 14:51 | ||
wolverian | right | ||
I know Acers are terribly plastic | |||
Juerd | wolverian: They make machines to look beautiful, to be fast, or to be multi media monsters | ||
wolverian: Or plain simple, to be cheap | |||
theorbtwo | Toughbook? | 14:52 | |
Juerd | Almost no laptops are made to last anymore | ||
theorbtwo: One who can afford a toughbook, can afford a thinkpad :) | |||
In general | |||
wolverian: I do have a blacklist for you, if you want :) | |||
wolverian | Juerd, yes, please | 14:53 | |
Juerd | wolverian: acer, medion, promedion, asus, jewel, cheap dells, cheap toshibas, cheap HPs | ||
dell, toshiba and HP do have good laptops | |||
I don't know fujitsu siemens' current offerings, so I shouldn't judge them | 14:54 | ||
wolverian | I was just looking at a 900 euro HP | ||
:) | |||
Juerd | I only know that my experiences with them, five years ago, were bad | ||
Hm, what else does laptop land have | 14:55 | ||
joao | LG's look nice, but I don't know if they are good | ||
Juerd | LG. I haven't seen those in real life yet | 14:56 | |
wolverian: And always, always, always check www.linux-laptop.net/ first | |||
wolverian: An unlisted laptop is still preferred to a listed laptop that nobody got working well | |||
joao | well, i've seen one yesterday and it has a great feature set, nice price for features and is lightweight | ||
wolverian | Juerd, right. | ||
Juerd | joao: Sturdy? | 14:57 | |
joao | sturdy? ;) | ||
Juerd | joao: Does it survive a 3 feet drop? | 14:58 | |
wolverian | egh. why do all the otherwise great laptops have SIS graphics boars | ||
erm, boards | |||
Juerd | wolverian: Avoid! | ||
Blicero | whats wrong with SIS | ||
Juerd | Blicero: Almost everything | ||
wolverian | Blicero, read some review. | ||
they suck mightily. | |||
joao | Juerd: It was my supervisor's daughter laptop. Not a good idea to try it :) | ||
Juerd | Blicero: That is: I wouldn't want essential parts to be sis. And since in a laptop you can't exchange parts, everything is essential. | ||
joao | Juerd: my pbook 12'' survives, though :) | ||
Juerd | Powerbooks are nice | 14:59 | |
wolverian | Juerd, how cheap is a cheap Toshiba? | ||
Juerd | wolverian: "Satellite" | ||
wolverian: And "Satellite Pro" | |||
wolverian | Tecra? | ||
Juerd | wolverian: less cheap are "Portege" and, to lesser extent "Tecra" | 15:00 | |
Tecra is a weird series | |||
It includes good and bad laptops | |||
wolverian | this is A3-101 | ||
Juerd | I don't know model numbers, and I can't judge from images | ||
wolverian | it has a Intel graphics chipset. I don't know about those. not that I play games at all, heh. | ||
Juerd | Sorry | ||
wolverian | Juerd, no problem. it's good to know that they vary. | ||
Juerd | Their qosmios are nice. Heavy, huge, bulky, but very powerful and they have great screens. Wonderful for movie fans, not so wonderful if you travel a lot. | 15:01 | |
They don't look sturdy, but there's so much plastic and slack that I think it's safe | 15:02 | ||
wolverian | I want a somewhat portable laptop :) | ||
Juerd | Always test a few things with a real product, if you can't find someone who has experience with the laptop you want to buy: | 15:04 | |
1. test the keyboard! | |||
2. would you trust holding the thing by its screen? | |||
wolverian | are all Acers bad? | 15:05 | |
Juerd | 3. is the power brick reasonable of size? huge bricks (Lite-on is a red flag, fans and heat sinks are blinking fluorescent red flags) are bad | ||
I have yet to encounter a good acer laptop. | |||
But it is possible they exist. | |||
Still, the entire brand is tainted by their numerous bad models. | |||
4. can it boot from usb? | 15:06 | ||
5. do you like its pointing device? | |||
6. Where is the fan? Is it loud or quiet? | 15:07 | ||
joao | wolverian: I know some people who have acer laptops and they've never complained... | ||
Juerd | 7. Pentium 4m isn't Pentium M, high GHz numbers are signs of heat, noise and short battery life. | ||
joao: What do they use it for? Travel or portable desktop? | 15:08 | ||
joao | on the other hand, I know lots of people with asus laptops and they all complain :) | ||
Juerd | Almost any laptop is a nice portable desktop for home or office usage for a non-geek. | ||
kolibrie | anyone know what would cause this error (from my server and from feather): Irssi: Unable to connect server irc.freenode.net port 6667 [Cannot assign requested address] | ||
Juerd | kolibrie: Are you passing any local address to irssi? | 15:09 | |
kolibrie: -h | |||
joao | Juerd: well, most of them use it to program... | ||
Juerd | joao: Hard to believe, but I believe you | ||
kolibrie | Juerd: don't think so: irssi -c irc.freenode.net -n kolibrie | ||
Juerd | kolibrie: Then I have no idea | ||
joao | Juerd: well, lots of people complain that their laptops are bad, but they don't have any attention how they use it. For instance, I had a toshiba satellite who gave me lots of probs with the screen. I sent it twice for warranty and it returned ok. After that, I bought a good backpack for my laptop and I've never had problems with it :) | 15:11 | |
Juerd | joao: Keyboards are extremely important - more so than hardware specs, if you ask me. | 15:12 | |
joao | hmmm, really? why? | ||
Juerd | joao: I find all acer keyboards suck. Their touchpads usually do too. | ||
kolibrie | Juerd: that was it (-h), I mistyped -c once and it stuck it in my .irssi/config | ||
PerlJam | joao: Because there are good keyboards and there are bad keyboards. | 15:13 | |
joao | ok. but how do you define a good keyboard? | ||
Juerd | joao: I have always seen this as a fact of life. It's hard to explain. | ||
15:13
kolibrie_ is now known as kolibrie
|
|||
joao smiles | 15:13 | ||
Juerd | joao: Bad keyboards make fingers and wrists hurt. | ||
joao | Are pbooks 12'' bad keyboards? | 15:14 | |
svnbot6 | r7611 | pmakholm++ | Limited support for transliterations from one character to multiple | ||
r7611 | pmakholm++ | characters. (Still doesn't support spaces on left hand side) | |||
PerlJam | joao: bad keyboards will have useful keys in awkward places. | ||
kolibrie | Juerd: thanks, I thought I was cut off from the world! | ||
Juerd | A good keyboard has good feedback, doesn't break with normal use, has keys that aren't in a curved layout, has no surprises in depression force | ||
kolibrie: You're welcome | |||
PerlJam | joao: Like this IBM thinkpad I have that puts the ESC key just above F1. It's *really* easy to hit the F1 instead of or in addition to ESC | 15:15 | |
Juerd | joao: Whether a keyboard is good is partly subjective. I don't like powerbook keyboards, but I do recognise that they are technically good. | ||
PerlJam: The alternative was to cram F1..F12 together, and to find other places for the insert..pgdn block | |||
theorbtwo | ...esp if you go ohfuck, and reach for the esc a lot. | 15:16 | |
Juerd | PerlJam: And considering that, I really love that they have given Esc this place. | ||
PerlJam | Juerd: I think they could have switched the position of the function keys with the set of keys just above the function keys. | ||
joao | well, I have some issues with my PT keyb. related with {}[] keys :) | 15:17 | |
PerlJam | It would have required a little layout rethink, but certainly doable. | ||
Juerd | PerlJam: Then the very often alt-Fx and ctrl-Fx combinations would become hard for people without long fingers | ||
Combinations with Esc are usually special and not much used. The Start button in Win32 being a noteworthy exception. | |||
PerlJam | Juerd: Still, the F1 key is where my fingers think the ESC key should be (and where it *is* on most of the other keyboards I use) | 15:18 | |
Juerd | PerlJam: Yes. | ||
PerlJam: This is annoying, I agree. But less annoying than alternatives, in my opinion. | |||
Given the little space on a laptop keyboard, I think IBM did best of all. | 15:19 | ||
PerlJam | Sure, all things considered, it's not really that bad. | ||
(I've trained my fingers to do the little dance required to hit the ESC on the thinkpad) | |||
Juerd | And the thinklight is one of the reasons it's not a great problem. | ||
wolverian | Juerd, did you say something about Toshiba Qosmio? | ||
joao | I really appreciate the 0% space waste , 12'' pbooks have :D | ||
wolverian | (what is up with those names?!) | 15:20 | |
Juerd | I hit F1 with the thinklight off, Esc with it on | ||
:) | |||
PerlJam | heh | ||
Juerd | wolverian: Yes. | ||
wolverian | oh, right | ||
/last is nice | |||
Juerd | wolverian: So is its output, provided a useful query. | ||
wolverian | right :) | ||
Juerd | Bye, evalbot | 15:21 | |
Wonderful. | |||
I'm backing up my old laptop's XP partition | 15:22 | ||
`xp/System Volume Information/_restore{643F3327-07A7-40EB-8A9D-065FC6CB7447}/rp3/snapshot/Repository' -> `/mnt/xp/System Volume Information/_restore{643F3327-07A7-40EB-8A9D-065FC6CB7447}/rp3/snapshot/Repository' | |||
I love meaningful file names. | |||
And *short* numbers, when numbers are needed. | |||
Surely this could havebeen _restore15? | |||
Welcome back, evalbot | |||
wolverian | are Intel graphics okay? | ||
Juerd | Yes, but not great for gaming. | 15:23 | |
The i810 driver for X is under constant development and keeps getting better. | |||
wolverian | does that work for with the 855GME chipset? | ||
Juerd | IIRC | ||
wolverian | thanks :) | 15:24 | |
I'll check | |||
Juerd | In general, I trust Intel stuff to Just Work. | ||
It was a surprise when they came with their ipw2100 at first | |||
wolverian | seems to support it | ||
Juerd | But the ipw2100 is the most important reason that we now have two great NDIS driver loaders, of which one fully open source | 15:25 | |
And there is native support now too | |||
So I'm happy, after all | |||
wolverian | hmm. Broadcom 440x looks like a somewhat troublesome chipset | ||
Juerd | And I didn't mind paying $20 to get my wifi nic working with a commercial driver the first year. | 15:26 | |
wolverian | but I might be wrong | ||
s,chipset,wireless, | |||
Juerd | I don't know much about broadcom nics | ||
The broadcom 10/100/1000 in my x41 works well with linux | |||
wolverian | I guess I could wait until 29. for that R51 | 15:27 | |
Juerd | `xp/winnt/ServicePackFiles/i386/msxactps.dll' -> `/mnt/xp/winnt/ServicePackFiles/i386/msxactps.dll' | 15:28 | |
Why still 8.3? | |||
What's wrong with them? | |||
wolverian: In the meantime, read reviews and linux installation experiences, and let it mess with your mind freely. | 15:29 | ||
wolverian: Let it convince you that it's a great product, and that everything else sucks. | |||
Works for me :) | 15:30 | ||
wolverian: Also, mentally bookmark thinkwiki.org :) | |||
mrborisguy | does anybody know of a link for Carrot (C-to-Parrot Compiler?) | 15:32 | |
I was hoping to check it out, but can't seem to find it | |||
nothingmuch | functional examples of quicksort have always bothered me | 15:34 | |
Juerd | All quicksorts bother me | ||
I hate algorithms. I hate maths. | |||
nothingmuch | the thing that makes quicksort quicker than mergesort is that it uses swapping very easily as opposed to say mergesort | ||
mrborisguy | may I ask why? | ||
Juerd | Bubble sorts are about as complex a thing as I can grok without resorting to real thinking. | 15:35 | |
wolverian | Juerd, 256MB RAM - 64MB for the GFX card seems a bit low | ||
nothingmuch | if you take that bit out it's no longer a pretty algorithm | ||
wolverian | Juerd, (that's the R51) | ||
nothingmuch | Juerd: err, isn't thinking a good thing? | ||
Juerd | wolverian: Were you planning on gaming? | ||
nothingmuch: I dunno. It hurts, so it probably isn't. | |||
nothingmuch | =( | ||
wolverian | Juerd, maybe one game a year - I'm picky with them. no 3D games really. | ||
Juerd | wolverian: Then 8 MB will suffice :) | 15:36 | |
mrborisguy | juerd: for someone who doesn't like maths, your logic is astounding! ;) | ||
wolverian | Juerd, well, I do run gnome... | ||
Juerd | wolverian: Okay, 15 MB | ||
eh | |||
16 | |||
Khisanth | wolverian: wouldn't be very pleasant building pugs on that! :) | ||
Juerd | Khisanth: This is graphics memory. Not something many people use when compiling. | ||
wolverian | it's both | 15:37 | |
256MB total for both | |||
Khisanth | I was refering to the 256MB RAM | ||
wolverian | so RAM is 196MB really | ||
Juerd | wolverian: That's configurable. | ||
wolverian | yeah. | ||
is it just normal DDR333 memory? | |||
Juerd | wolverian: Probably DDR2 | ||
wolverian | this says "Memory speed: DDR333" | 15:38 | |
(I know nothing about memory) | |||
Juerd | It's a different form factor. | ||
Smaller, for notebooks. | |||
wolverian | ah. | ||
Juerd | so-dimm. | ||
wolverian | 128, 256 or 512MB/2GB PC2700 DDR SDRAM | ||
from IBM's PDF | |||
Juerd | Not DDR2 then | 15:39 | |
gaal | what's a portable way to make a make(1) rule return success? I just ran make && make smoke on a clean tree and the smoke didn't run, although there were no errors; I think it's the manifypods dependent rule because running the same thing again (now that the dep had already been satisfied) did invoke the smoke. | ||
wolverian | ah - it's only the R52 that has DDR2 | ||
qwr | somecommand; true ? | 15:44 | |
gaal | qwr, true isn't portable. | 15:45 | |
hmmm. $(PERL) -e42 is. | |||
come to think of it ; isn't portable either ;-) | 15:46 | ||
wolverian | what is that weird looking thingy above the touchpad on thinkpads? | 15:47 | |
with two red and one blue, er, thing | |||
Khisanth | also for moving the cursor | 15:49 | |
wolverian | oh? so there are three methods to do that on thinkpads? :) | ||
brother | Hmmm, -e42 -- my favorite script to debug before I started using pugs | 15:50 | |
Juerd | wolverian: Buttons for the trackpoint | 15:51 | |
wolverian: You see, if your index finger is on the trackpoint, above the touchpad is exactly where your thumb is :) | 15:52 | ||
wolverian | right :) | ||
Juerd | Also, IBM's placement of the touch pad makes it not be in the way | ||
With many other laptops it is constantly in the way | |||
Blicero | trackpoints are awesome | 15:58 | |
gaal | anyone here understand Pugs.Eval.debug? | 16:01 | |
am i correct that it has a recursion guard that counts in unary, and is keyed by string in the caller? | 16:05 | ||
ah, the keyed guard doubles as a literal indentation string. why should this be keyable, and why does it need to be stored as a literal string? | 16:08 | ||
brother | ?eval "ABC-DEF".trans("-AB-Z" => "_a-z") | 16:18 | |
evalbot_7611 | "aefcghi" | ||
brother | ?eval "ABC-DEF".trans("A-YZ-" => "a-z_") | 16:19 | |
evalbot_7611 | "abc-def" | ||
eric256 | hey brother....deteremined to get that worknig right eh? | 16:20 | |
btw you should probably add a check and warning if they do something like z-a (or handle it in some other manner) | 16:21 | ||
brother | Actually I got it working. | ||
eric256 | i meant get the lone dash part working | ||
i know you got the other part | |||
PerlJam | BTW, is this .trans() method specced? | 16:22 | |
svnbot6 | r7612 | pmakholm++ | Adding support for '-' in translitterations like tr/-a-z/_A-Z/ | ||
brother | PerlJam: Kind of at the end of S05 | 16:23 | |
eric256: There you go | |||
eric256 | brother is brute forcing the spec for it ;) | 16:24 | |
PerlJam | well brother++ and hack away! | 16:25 | |
QtPlatypus | Yay for pmakholm | 16:26 | |
eric256 | QtPlatypus .... 'borther' === 'pmakholm' | ||
brother | Well, I'll probally let it rest till perl6-language sais something about the <a b c> => "ABC" thingy | 16:27 | |
theorbtwo | ?eval "ABC-DEF".trans('-'=>'_', 'A-Z'=>'a-z'); | 16:28 | |
evalbot_7611 | *** No compatible subroutine found: "&eval" at -e line 11, column 5-82 | ||
brother | if I had been aware of svnbot I would have choosen brother for svn too | ||
theorbtwo wishes broquaint a good trip. | |||
?eval "ABC-DEF".trans('-'=>'_', 'A-Z'=>'a-z'); | |||
evalbot_7611 | *** No compatible subroutine found: "&eval" at -e line 11, column 5-82 | ||
theorbtwo | Huh? | ||
eric256 | lol | ||
something broke | |||
theorbtwo | ?eval exit | 16:29 | |
evalbot_7611 | *** No compatible subroutine found: "&eval" at -e line 11, column 5-22 | ||
theorbtwo | Yep. | ||
brother | ?eval 1+2 | ||
evalbot_7611 | *** No compatible subroutine found: "&eval" at -e line 11, column 5-22 | ||
brother hides | |||
eric256 | lol | 16:30 | |
bad brother!! bad! j/k | |||
brother | it worked 10 minutes ago last time *I* used it | ||
eric256 | ?eval 1; | 16:33 | |
evalbot_7612 | 1 | ||
eric256 | ?eval 1 + 2; | ||
evalbot_7612 | 3 | ||
eric256 | hmmm. better now. odd | ||
?eval "ABC-DEF".trans('-'=>'_', 'A-Z'=>'a-z'); | |||
evalbot_7612 | "abc_def" | ||
brother | ?eval "ABC-DEF".trans("A-YZ-" => "a-z_") | ||
evalbot_7612 | "abc_def" | ||
eric256 | nice | ||
?eval "ABC-DEF".trans('-'=>'_', 'A-Z'=>'z-a'); | 16:34 | ||
evalbot_7612 | "zBC_DEF" | ||
eric256 | ?eval "ABC-DEFZ".trans('-'=>'_', 'A-Z'=>'z-a'); | ||
evalbot_7612 | "zBC_DEFZ" | ||
eric256 | ?eval "a".."z" | ||
evalbot_7612 | ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") | ||
brother | that is you illegal range | ||
eric256 | ?eval "z".."a" | ||
evalbot_7612 | ("z") | ||
eric256 | not exatly DWIM . lol | ||
theorbtwo thinks most DWIM option is to die. | 16:36 | ||
brother | not reverse('a'..'z') | ||
Juerd | I think backward ranges should be possible. | 16:41 | |
eric256 | theorbtwo me too | ||
Juerd | 9..0 makes a lot of sense, and every reader knows that it is 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | ||
Why shouldn't Perl be able to do a simple less-than check? | |||
Likewise, "z".."a" | |||
theorbtwo | They are possible in .. ranges; I suppose they should probably be possible in direct char-class ranges as well. | 16:42 | |
brother | VRat what type is that? | ||
Juerd | theorbtwo: Really? Then I said nothing. | 16:43 | |
theorbtwo | OTOH, z-a doesn't have a meaning really different from a-z in a charclass or trans range. | ||
brother, 1/3? | |||
?eval ref 1/3 | |||
evalbot_7612 | ::Rat | ||
nothingmuch | my sister is so violent | 16:45 | |
eric256 | .. ranges can't go backwards...at least not yet. is that a planned addition/ | ||
? | |||
nothingmuch | why can't they? | ||
that always bothered me about perl 5 | |||
eric256 meant can't as in "they don't" but mispoke | 16:46 | ||
?eval 9..1; | |||
?eval 1; | |||
evalbot_7612 | () | ||
1 | |||
nothingmuch | ?eval reverse 1 .. 9 | ||
evalbot_7612 | "9 8 7 6 5 4 3 2 1" | ||
nothingmuch | that's completely unhuffmanized | ||
Juerd | <--- MARK | ||
I'm timing something :) | |||
eric256 | I didn't say they shouldn't. I said they don't and asked if that is a planned addition. | 16:47 | |
Juerd | theorbtwo: "z-a" => "a-z" | ||
brother | Shouldn't be too hard to add if it is wanted | ||
nothingmuch will add it | 16:48 | ||
Juerd | Yay | ||
PerlJam | what about unintentional errors? They're harder to spot if you allow ranges to go either way. | ||
(I'm only talking about .. here, not "a-z" ) | |||
Juerd | PerlJam: ... | ||
PerlJam: Can we please trust the coder? | 16:49 | ||
Instead of crippling the language, taking away useful constructs because they might be used wrong | |||
nothingmuch | PerlJam: i haven't ever gotten '9 .. 1' wrong by accident | ||
PerlJam | okay. I'll trust the coder. As long as it's literals | ||
nothingmuch | i did try it several times though | ||
each time i forgot it isn't supporte | 16:50 | ||
d | |||
PerlJam | i.e., $alpha..$beta had better not switch on my | ||
nothingmuch | huh? | ||
PerlJam | er, s/my/me/ | ||
Juerd | PerlJam: If they want $min > $max to die, they should write "$max > $min or die". | ||
eh | |||
s/or/and/ # another thing we don't have or need protection for | |||
nothingmuch | how come? | ||
Juerd | PerlJam: If you need to make sure your data is correct, make sure your data is correct. Perl shouldn't assume that certain sets of data are valid or invalid. It doesn't know what their functions are | 16:51 | |
nothingmuch agrees with Juerd | 16:52 | ||
Juerd | I've actually writtensomething like $foo > $bar ? $bar..$foo : $foo..$bar a few times. It sucks to have to do it. It sucks that such a great language can be so annoying. | ||
PerlJam | Take it up with p6l and get it sanctioned by @Larry then | ||
nothingmuch | sometimes I feel like for some reason perl 6 contains a huge bundle of useless rules to protect the idiots | ||
gaal | uh, please p6l this. it's a common idiom to have a loop not enter if to < from. | ||
geoffb | Um. It is a really common idiom to say something in Perl 5 like 'foreach my $index1 (1 .. @foo) { ... }', and know that if @foo has no elements, the loop won't run | ||
Juerd | gaal: Then they can add :by(+1), to make sure it won't pick -1 automatically. | ||
gaal | Juerd: they can. my point is conventional, not technological. | 16:53 | |
Juerd | But automatically choosing between +1 and -1 is, IMO, the best option | ||
geoffb | gaal, OK, then you're dehuffmanizing a different DWIM | ||
theorbtwo | geoffb: foreach my $index (@foo.keys) {...} | ||
I could have sworn 9..0 was specced. | |||
eric256 | shouldn't => be creating a pair now? and if so then how do sign a sub such that it expects a list of pairs? | ||
geoffb | theorbtwo, I know that. I'm saying, it's an idiom P5'ers expect. That will trip people up. | ||
Juerd | geoffb: Really? I'd say it's bad style, and change the code. | ||
eric256 | and can pairs have complex keys or do the keys still get turned into strings? | ||
gaal | Juerd: that's a valid position. But this certainly needs to be raised for discussion. | 16:54 | |
geoffb | Juerd, it's a style used (with obvious variants) in almost every imperative language. | ||
nothingmuch | eric256: 'sub foo (*@list of Pair) { }'D | ||
Juerd | geoffb: For starters, $index is used with 1..something, horribly unmaintainable, of course, as indexes start at 0. | ||
geoffb: Secondly, it has a condition without it being written, which is also hurting maintainability. | |||
geoffb | Juerd, I'm not disagreeing that it's hazardous and unclean and comes from the elder gods. I'm saying it's really bloody common | 16:55 | |
PerlJam | eric256: keys can be anything. | ||
Juerd | geoffb: Do note that the same problem does exist with 0..$#foo | ||
geoffb: But that's 1 bad habit less | |||
geoffb | Juerd, right. | ||
Juerd | geoffb: And lets many less alarm bells ring in my head. | ||
Now, $#foo returning -1 is the real problem here | |||
It should be undef | 16:56 | ||
brother | keys got turned into string 24 hour ago, right? | ||
Juerd | -1 is a convention that Perl uses almost nowhere. | ||
The same weird convention is used by substr | |||
But not anywhere else, as far as I know. | |||
nothingmuch | brother: keys can be anything, but are by default strings | 16:57 | |
Juerd | nothingmuch: "by default"? | ||
theorbtwo | Huh? Even on arrays? | ||
nothingmuch | IIRC hashes will stringify keys by default | ||
Juerd | nothingmuch: Nafaik. | ||
theorbtwo | ?eval [0..9].keys | ||
evalbot_7612 | (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) | ||
theorbtwo | Whew. | ||
nothingmuch | theorbtwo: err, right, i was only speaking about hashes | ||
? class Foo {}; my $x = Foo.new; my %hash; %hash{$x} = "1"; \%hash; | 16:58 | ||
Juerd | ?eval { 0..9.map:{$_=>1} }.keys | ||
evalbot_7612 | Error: Not a keyed reference: VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subEnv = Just (MkEnv {envContext = CxtItem (mkType "Any"), envLValue = True, envLexical = MkPad (padToList [("$?1",[(<ref>,<ref>)]),("$_",[(<ref>,<ref>)]),("$code",[(<ref>,<ref>)]),("$lang",[(<ref>,<ref>)]),("&?BLOCK_EXIT",[(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>)]),("&break",[(<ref>,<ref>),(<ref>,<ref>)]) | ||
Juerd | Right. Bad habit, leaving hash out. | ||
?eval hash { 0..9.map:{$_=>1} }.keys | |||
evalbot_7612 | Error: cannot cast from VUndef to Handle (VHandle) | ||
nothingmuch | Juerd: you have to disambiguate that as hash | ||
geoffb | Juerd, (sorry, had been called away for a sec) -- I'd argue that $#foo returning -1 is *so that this idiom works* | ||
nothingmuch | ?eval class Foo {}; my $x = Foo.new; my %hash; %hash{$x} = "1"; \%hash; | ||
Juerd | ?eval (hash { 0..9.map:{$_=>1} }).keys | ||
evalbot_7612 | {("<obj:Foo>" => "1")} | ||
Error: cannot cast from VUndef to Handle (VHandle) | |||
Juerd | I give up. | ||
PerlJam | Juerd: Quoting S09: "To declare a hash that can take any object as a key rather than just a string, say something like: my %hash is shape(Any);" | 16:59 | |
nothingmuch | ?eval class Foo {}; my $x = Foo.new; my %hash is shape(Any); %hash{$x} = "1"; \%hash; | ||
evalbot_7612 | {("<obj:Foo>" => "1")} | ||
Juerd | geoffb: Can be. Then we have two reasons to change it :) | ||
theorbtwo | ?eval 0..9.map:{hash($_=>1)}.keys | ||
evalbot_7612 | Error: cannot cast from VUndef to Handle (VHandle) | ||
Juerd | PerlJam: Oh. | ||
PerlJam: That is unfortunate and at the same time very useful. | |||
PerlJam | and "The standard Hash is just my Any %hash is shape(Str);" | ||
nothingmuch always wondered why that is | 17:00 | ||
yet another special case I find unpleasing | |||
geoffb | Juerd, heh. In the end, I think DWIMming for both people used to that idiom and people expecting 9 .. 0 == reverse 0 .. 9 is nigh impossible | 17:01 | |
eric256 | ?eval ( [1..5] => 'a-e' ); | ||
evalbot_7612 | ([1, 2, 3, 4, 5] => "a-e") | ||
nothingmuch | eric256: that's just a pair, it hasn't got that restriction | ||
eric256 | hmmm. in that case brother your question to p6l is pointless (although inspired by me so i take blame)....must need to change the signatuer of your sub | ||
Juerd | geoffb: What does "neigh" mean? | 17:02 | |
nothingmuch | which is part of why I think the default hash is an odd default | ||
eric256 | nothingmuch...that was the goal...to pass a list of pairs | ||
geoffb | "near" | ||
PerlJam | Juerd: that's the sound a horse makes! :) | ||
nothingmuch | oh, i thought you were making a point in the hash shape discussion | ||
Juerd | geoffb: I disagree | ||
And I hate to admit that PHP has it right (see range()) | |||
geoffb | You think you can make both of them happy? | ||
And DWIM for both? How? | 17:03 | ||
eric256 | nah the whole idea of shapes scare me. for now. | ||
PerlJam | Juerd: um ... as right as it can given the fundamental brokenness you mean? | ||
brother | eric256: ehm, yes I see that but ... | ||
nothingmuch wonders what is right about from x to y being () for 'from ten to zero' | |||
count down from ten to zero. | |||
() | |||
brother | "abc".trans("a b c" => <A B C>) | ||
?eval "abc".trans("a b c" => <A B C>) | |||
evalbot_7612 | "ABC" | 17:04 | |
brother | That shouldn't work then | ||
gaal | nothingmuch: most anything can be hashed, but strings have a straightforward way | ||
PerlJam | holy crap ... /me just discovered that the U where he works has a course called "Visual Programming Languages" | ||
brother | ... with myr present trans | ||
nothingmuch | gaal: hashing is easy for objects too | ||
you have a static address or offset pointer | |||
a number is easier to hash than a string | |||
eric256 | it does with your current because you strinigiy the right(joining with spaces) | 17:05 | |
nothingmuch | some data structures know to hash by value instead of by id | ||
like strings | |||
eric256 | ?eval sub trans(*@intable as Pair) {}; | ||
evalbot_7612 | Error: unexpected "a" expecting trait, "-->", ",", ":" or ")" | ||
eric256 | ?eval sub trans(*@intable of Pair) {}; | ||
evalbot_7612 | Error: unexpected "o" expecting trait, "-->", ",", ":" or ")" | ||
Juerd | geoffb: No, I think one of the DWIMs is wrong. | ||
geoffb | nothingmuch, there's nothing "right" about the current x .. y state of affairs. It's just that right now, the equivalent of :by(+1) is implied, in a sop to the loop idiom. | ||
brother | ?eval "ABC".trans(<A B C> => "abc") | 17:06 | |
evalbot_7612 | "acC" | ||
nothingmuch | the loop idiom should be phased out then | ||
geoffb | nothingmuch, so people expect it to remain true. | ||
nothingmuch | many things are changing in perl 6 towards correctness | ||
eric256 | ?eval sub trans(*@intable ) {}; trans(<a b c> = > "1-5"); | ||
evalbot_7612 | Error: unexpected "t" expecting ";", statements or end of input | ||
eric256 | ?eval sub trans(*@intable ) {}; trans(<a b c> => "1-5"); | ||
evalbot_7612 | undef | ||
nothingmuch | the converter could convert .. into .. :by(+) for perl 5 code | 17:07 | |
and new code will benefit from more useful operators | |||
eric256 | ?eval sub trans(*@intable ) { return @intable.perl; }; trans(<a b c> => "1-5"); | ||
evalbot_7612 | "[]" | ||
eric256 | that makes no sense to me. | ||
geoffb | nothingmuch, in the end, the suggested change will result in correctness. For a long time, people will forget, and their code will be silently wrong, as it's not something like a type error that we can possibly error on. | ||
brother | I'm confused | 17:08 | |
geoffb | I wouldn't even bring this up if not for the fact that we'll end up with broken code that produces no warnings and no errors. | ||
nothingmuch | i thought the whole thing with perl 6 is that we allow the community to break backwards compatibility where it couldl help | ||
brother | ?eval sub trans(*%intable ) {say %intable.perl}; trans(<a b c> => "1-5"); | 17:09 | |
evalbot_7612 | {("a b c" => "1-5")} bool::true | ||
brother | That is compatible with the .trans signature | 17:10 | |
geoffb | nothingmuch, (and this is an honest question), how many times have we broken compatibility in a way that makes a working P5 construction silently do the wrong thing? | ||
nothingmuch | i don't know | ||
but the words 'no longer' and 'now' appear a lot in the synopses | |||
geoffb | The compatibility breaks I am coming up with off the top of my head would at least trigger an error. | ||
Juerd | geoffb: People cannot expect things to stay the same, because most will just not. | 17:11 | |
eric256 | use Perl5Warnings; #for those things you just wouldn't noitce. ;) | ||
Juerd | geoffb: This is something of far wider scopethan ranges | ||
geoffb | It's being able to trigger an error that makes a compatibility break easy for me. Ones that cause silent failure have a higher hill to climb | ||
Juerd | geoffb: Syntax and semantics change at all levels. It'd be silly to keep something the wrong way for backwards compatibility, while the rest does change for the better. | ||
geoffb: Abigail had a good example of something else that will silently do somethning A perl5 programmer won't expect | 17:12 | ||
svnbot6 | r7613 | iblech++ | * t/operators/range.t: Reenabled one subtest and added some more tests for | ||
r7613 | iblech++ | $char1..$char2. | |||
r7613 | iblech++ | * t/data_types/pair.t: => should not stringify the key. (Passes in vanilla and | |||
r7613 | iblech++ | PIL2JS). | |||
Juerd | geoffb: On the hates-software list | ||
eric256 | for @array.values and for @array.keys are mech better idioms than the current and should be forced onto the heathen that don't use them. ;) | ||
Juerd | geoffb: We can cripple the language again, sure | ||
geoffb: I just don't think that's a good idea | |||
eric256 would like to get back to his question that stared all this....does pugs currently allow you to pass pairs? becuase it doesn't seem to be, or i'm doing something wrong | 17:13 | ||
?eval sub trans(*@intable ) { return @intable.perl; }; trans((<a b c> => "1-5")); | 17:14 | ||
evalbot_7613 | "[]" | ||
eric256 | ?eval sub trans(*@intable ) { return @intable.perl; }; trans(<a b c> => "1-5"); | ||
evalbot_7613 | "[]" | ||
brother | ?eval sub trans(*%intable ) {say %intable.perl}; trans(<a b c> => "1-5"); | ||
evalbot_7613 | {("a b c" => "1-5")} bool::true | ||
eric256 | yea but % is forceing hash which by default stringifies the key.. i though that was the difference between a hash and a list of pairs | ||
ods15 | ?eval say "a" | 17:15 | |
evalbot_7613 | a bool::true | ||
ods15 | ?eval say "a"; say "a" | ||
evalbot_7613 | a a bool::true | ||
brother | eric256: I see (I think...) | 17:16 | |
eric256 | also a list of pairs could have two pairs with the same key and different values... i see use to having that in addition to hashes, not the least of which is being able to code trans() in a sane logical way | 17:17 | |
Limbic_Region | brother - did you check in your patches and add yourself to the AUTHORS file? | 17:18 | |
brother | Limbic_Region: yes | ||
geoffb | Juerd, (sorry, had been alled away again) I don't disagree with you. Just two things: 1) I think it is valid to make someone at least present a decent case for why a silent-fail compatibility break is worth it, and 2) I think all known silent-fail breaks should be written up in a GOTCHAS file or somesuch in 72-point bright magenta type | 17:19 | |
er, called away | |||
eric256 | also a list of pairs maintains order while a hash does not. | ||
Juerd | geoffb: Except it's not failure | ||
geoffb: It does something very noticeable | 17:20 | ||
geoffb: And thus easy to debug in case you have to | |||
So I wouldn't even call it silent | |||
When using element [0] of an empty array, you probably get a warning | |||
When using element [-1], it is fatal | 17:21 | ||
geoffb looks askance at Juerd | |||
Juerd | What does askance mean? | ||
Limbic_Region | brother - glad to see that you are onboard. Since you are new face, mind if I ask what you are working on primarily? | ||
PerlJam | eric256: given %hash = ( a=>1, b=>2, a=>3); What does this output? say %hash<a>; | ||
geoffb needs to limit self to commonly-used words, oops | |||
Juerd | geoffb: No, don't. Then I'll never learn :) | 17:22 | |
geoffb | sidelong? um, suspiciously? | ||
Juerd | Then: why look that way? | ||
eric256 | PerlJam....why are you asking me? that should be (a=>3,b=2) but i don't see what that has to do with lists of pairs? | ||
PerlJam | eric256: You were commenting on a list of pairs maintaining order as compared to a hash. I thought that might be a good example. | 17:23 | |
geoffb | OK, can we agree that at least this would deserve an entry in a GOTCHAS file, along the lines of "Did your loop iterating over a range suddenly switch from 0 iterations to 2? That's because ranges can now sanely go in reverse. You probably want a .. b :by(+1)." | ||
eric256 | right. in that example it could aslo return (b=2, a=>3) looseing order | ||
theorbtwo | The suggested solution should likely mention @array.keys as well. | 17:24 | |
Juerd | geoffb: Suddenly? Automated translation should do that: translate, and not just literally copy | ||
geoffb: And everything you type in by hand should be safely assumable as Perl 6 | |||
brother | Limbic_Region: At the moment fixing stuff I find which can be fixed in Prelude.pm | ||
geoffb | Juerd, do you really believe that people won't baby talk in Perl 6, as we (explicitely) assume they will in Perl 5? | ||
eric256 | in the case of trans ( "a-z" => "A-Z", b => b) the order is important. because that is very different than ( b => b, "a-z" => "A-Z") | 17:25 | |
geoffb | We have to help the people making the transition to fix their brains piece by piece. | ||
mrborisguy | ?eval my %hash = (a=>1, b=>2, a=> 3); %hash<a> | ||
eric256 | excuse my poor quoting practice | ||
evalbot_7613 | \3 | ||
Juerd | geoffb: I think this belongs in a migration document, but is not a gotcha. | ||
Nor a trap. | |||
geoffb | There's just no way that someone new to Perl 6 will soak up all the AES before starting to code | ||
Juerd, OK, I might be able to accept a migration doc. | |||
Juerd | But then, so does every important change. | ||
geoffb | Right now, we have translation docs. But a migration doc that called out these kinds of expectation changes gets +1 in my book. | 17:26 | |
Juerd | We need a very solid and clear migration document | ||
PerlJam | geoffb: I'll agree that we need to be real careful about syntax that looks the same in both perl5 and perl6 but has slightly difference semantics. If that's a "migration doc" and/or a "gotchas" doc and/or a note next to each entry in the docs that describe the syntax, that's fine with me. | ||
geoffb | Would you accept that the migration doc would at least highlight breakages of expectation, as opposed to meer changes of syntax? | ||
Juerd | That doesn't dive into details, but does warn of all the important changes. | 17:27 | |
Where new features are NOT important enough to mention! | |||
geoffb | PerlJam, nodnod | ||
Juerd, nodnod as well | |||
Juerd | (Except of course in possible new idioms/solutions) | ||
geoffb | OK, I think we're starting to reach some sort of consensus. Is this true? | ||
theorbtwo | I think it's a good idea as well. | ||
mrborisguy | as someone who tried to read AES for a bit, but was overwhelmed, I'd say it's a good idea | 17:28 | |
Juerd | geoffb: I refuse to work with user expectation. It's impossible. What someone expects depends on their ability to think logically, the language they came from (might be PHP, not Perl 6, for example), and their knowledge of that language | ||
theorbtwo | (Though in some cases, like the one being discussed earlier, the solution should mention a new feature.) | ||
Juerd | geoffb: Instead, their expectations must be adjusted to reality. | ||
Expectation is never a good point of view to document from. | |||
geoffb | Juerd, but do you agree that a migration doc is the appropriate way to adjust their reality? | ||
Juerd | Don't take this personally. It's a pet peeve. | ||
geoffb: Yes. | |||
geoffb | w00t, consensus | 17:29 | |
eric256 | Perl6 Idioms and their Perl5 counterparts. (or vic versa) | ||
theorbtwo | Juerd, expectation is often a good point of view to document from, it's just not good as an only place to document from. | ||
Juerd | geoffb: But in the form of: "foo was written as bar, but is now written as baz", and "foo used to bar, but it now bazs" | ||
theorbtwo | Perl 5 idioms that break in perl 6, and how to fix them. | ||
PerlJam | mrborisguy: it's all the minutia that really get you. "REs are now called rules with radical syntax changes? no problem" ".. can go forward *and* backward? wha?" :_) | ||
geoffb | Juerd, as opposed to? | ||
PerlJam | :-) even | ||
Juerd | geoffb: Never in the form "You might expect it to xyzzy, but it will quux instead." That only makes people think the language is stupid, and that they themselves are not, while the reverse is usually true. | ||
geoffb | Juerd, ah, OK, using appropriate language in the doc, I think I understand you now. | 17:30 | |
PerlJam | Juerd: were you a psychologist in a past life? :) | ||
theorbtwo | It'd be very bad if something were only documented here. It'd be good if it were documented there and somewhere else. | ||
Juerd | Only bashing myths should be done from expectation, because myths need to be mentioned explicitly in order for them to be correctly destroyed. | ||
geoffb | theorbtwo, "here" and "there" ? | ||
Juerd | PerlJam: I don't know. | 17:31 | |
PerlJam: But I do have very strong opinions about good documentation. | |||
geoffb | Juerd, good. | ||
theorbtwo | geoffb: Here and there are supposed to be the same place, in this gotchas file. | ||
PerlJam | theorbtwo: are you just advocating redundancy in documentation? | ||
mrborisguy | on feather: man pugs -> no manual entry for pugs | ||
theorbtwo | I'm advocating this specific redundancy, as well as reduncay in general. | ||
Juerd | 19:32 < theorbtwo> Perl 5 idioms that break in perl 6, and how to fix them. | 17:32 | |
mrborisguy | has nobody written a man page for pugs? | ||
Juerd | theorbtwo: See? That's the wrong way :) | ||
PerlJam | mrborisguy: man pages aren't sexy | ||
geoffb | PerlJam, theorbtwo: I think it is perfectly appropriate to have one canonical set of docs that specifies everything, then views into it (like the migration doc) that pull out things that a particular use case will care about. | ||
brother | isn't that usually a Debian maintainers job? | ||
Juerd | theorbtwo: It's not breakage, it's change. | ||
mrborisguy | PerlJam: That's not where people to expect to get information? | ||
theorbtwo | Yeah, geoffb, that's likely a good idea, but I'm not sure from what point of view to implement it. | ||
Juerd | theorbtwo: Instead, "Old idioms and their new counterparts" :) | ||
geoffb | And I meant "views into it" in a general sense, not a technical implementation sense | 17:33 | |
Juerd | Perl 5 is bad, Perl 6 is good. That's the only way people will accept change. | ||
eric256 | Juerd since the perl5 idiom IS broken if used in perl 5 it is true. /me thinks Juerd needs his morning coffee | ||
PerlJam | mrborisguy: given the choice of implementing a pugs feature and writing a man page, I'd go for implementing the feature. I think most people are that way. | ||
brother | pugs in Debian has a man page installed | ||
eric256 | people wont accept change no matter what you do. ;) people don't like change | ||
theorbtwo | geoffb: Oh, right. In that case, it's certianly a good way to do it. | ||
Juerd | Saying Perl 5 was good, and that Perl 6 breaks the code (is bad) is likely to result in people hating Perl 6 unnecessarily. | ||
It breeds little abigails. | |||
PerlJam | mrborisguy: feel free to write the doc though; I think it would be great to have. | ||
Juerd | OMG It breaks my code! | ||
No, you have to accept that it is another language. | 17:34 | ||
eric256 | no one said good or bad. Perl6 isn't Perl5+1...thats a fact people need to come to terms with. | ||
mrborisguy | PerlJam: a'ight, maybe I will sometime. I'll look into it. | ||
Juerd | Hence my continued preference for a non-perl name for Perl 6. | ||
geoffb | mrborisguy, there are actually a couple manpages for pugs. pugs::hack and pugs::run. There's just no overall pugs manpage that points you to the others | ||
chip | Juerd: how about "Topaz"? | ||
PerlJam | eric256: no, it's perl5i+1 | ||
Juerd | chip: Why? | ||
PerlJam | chip: :-PP | ||
chip grins | |||
Juerd: old joke | |||
Juerd | chip: I like "pugs", actually. | ||
eric256 casts vote for pugs | 17:35 | ||
Juerd | chip: Will you explain it? | ||
eric256 | hey you stole my idea for a name! | ||
PerlJam | Juerd: chip wrote the first stab at a perl6. It was called Topaz. | ||
chip | Juerd: years ago I decided that I liked Perl but hated its guts, so I set out to reimplement Perl 5 in C++ | ||
geoffb | Damian did a conceptual exercise call Perl 5+ i, when Perl 6 was being thought of. | ||
chip | No language changes | ||
PerlJam | oh right. That was what? 7 years ago? | ||
give or take a year | 17:36 | ||
geoffb | PerlJam, don't remind me. :-P | ||
theorbtwo feels old. | |||
Juerd | 7 years ago... That's just before I started using Perl. | ||
geoffb | Juerd, really? Wowsers | ||
Juerd | Are those good or bad wowsers? | ||
PerlJam | Juerd: Why must everything have a good/bad connotation ? :) | 17:37 | |
geoffb | Juerd, for some reason I thought you had been around the camel longer. Don't know why. | ||
Juerd | geoffb: I wanted a programming language to replace basic when I migrated from win32 to linux | ||
geoffb: That was 7 years ago. | |||
geoffb | Juerd, good choice then! | ||
And good for you. | |||
PerlJam | geoffb: How long have you been hacking perl? | 17:38 | |
geoffb | PerlJam, Since the Perl 4 days. What was that, a decade or so? | ||
Juerd | geoffb: I've only learned about the entire community thing in 2001 | ||
I've had Perl 4 days, by the way. My linux distribution at home was very old and I had no internet connection big enough to leech a newer. | |||
PerlJam | geoffb: Since you've been steeped in perl for so long it's hard to imagine anyone of clue in the perl community who isn't "from the old days" :) | ||
Juerd | For half a year, I used Perl 4 | 17:39 | |
And became really intimate with split and join. | |||
PerlJam | Juerd: you poor poor man. | ||
geoffb is not exactly an old-timer, but the percentage of people with Perl 4 experience seems small these days. | |||
Juerd, heh. | |||
PerlJam, nodnod | |||
Juerd | I've tried Perl 1 too, a few years ago | 17:40 | |
geoffb | Juerd, heh. | ||
Juerd | Only to try and write perl 1|5 programs | ||
Which was possible and very challengirg. | |||
s/irg/ing/ | |||
geoffb | Hubris | ||
Juerd | Did you know that "do subname (list);" syntax is STILL available in 5.8? | ||
geoffb | ! | 17:41 | |
PerlJam | Juerd: I bet "reset" is still around too. | ||
PerlJam checks | |||
Juerd | It is. | ||
As is study. | 17:42 | ||
PerlJam | There's lots of perl<5 hanging around in perl 5.8 | ||
Juerd | Study's penalty nowadays is greater than its benefit. | ||
chip remembers when "&" was introduced. TEH SHINY | |||
geoffb | Juerd, study actually has a purpose. | ||
Juerd | chip: You're OLD! | ||
geoffb | :-) | ||
theorbtwo has never called study or reset, but knows what both of them do. | |||
PerlJam | Has anyone actually used study in production code? | ||
geoffb | Yeah, chip qualifies as an old-timer | ||
Juerd | I've thought for a while that study was there only for poetry. | ||
geoffb | PerlJam, I have. And yes, I benchmarked. And yes, it was a win. | 17:43 | |
PerlJam | I used study once ... then I optimized my code by removing the call to study :) | ||
geoffb | You have to be careful how you use it. | ||
Juerd | PerlJam: I have. To discover that it wasn't useful enough. | ||
PerlJam | geoffb: I was attempting to use it in the manner that the docs said would be a win (perl4 days). It wasn't. | 17:44 | |
svnbot6 | r7614 | iblech++ | t/data_types/array.t, t/data_types/array_extending.t: | ||
r7614 | iblech++ | * Assigning to @array[-1] of an empty array should die. | |||
r7614 | iblech++ | * defined @array[-1] should live (and return false) and should not alter @array. | |||
r7614 | iblech++ | * @array.exists(-1) should live (and return false) and should not alter @array. | |||
geoffb | PerlJam, nodnod | ||
iblech++ again # for all the wonderful spec testing he does | |||
theorbtwo | Hmm? iblech, where are those specced? | 17:45 | |
xerox | Yow. | ||
geoffb | xerox, ? | ||
Juerd | Hello, dear fax machine | ||
xerox | Hi there! | ||
PerlJam | theorbtwo: those last two seem sane. That first one is questionable though | ||
Juerd | Why did you take two sheets of paper today? You know that jams. | 17:46 | |
xerox slurps some sheets | |||
Juerd | PerlJam: What's the last element of an empty array? | ||
theorbtwo | Autovived element zero, in an autoviving context, I'd say. | ||
chip | it's teh fractional part of an integer | ||
geoffb | chip, *chuckle* | 17:47 | |
Juerd | theorbtwo: What's the -2nd element of an empty array? | ||
Why would -1st be different? | |||
theorbtwo | Autoviv element 0 to the value assigned, and autoviv element 1 to undef. | ||
orafu, die. | 17:48 | ||
Damm broken autocompletion! | |||
or, die. | |||
Juerd | theorbtwo: But after that, -1 is no longer the same -1 as before. | ||
PerlJam | Juerd: Since we normally inflect about the 0, why not make assignment to @array[-1], @array[-2], etc. autovivify appropriately? | ||
theorbtwo | But assigning to $foo[-1] without testing if @foo is useful, whereas assigning to $foo[-2] probably isn't. | ||
Juerd | theorbtwo: Useful why? | ||
xerox | I'd say, the empty array again, or an error? | ||
geoffb | I agree with Juerd and iblech: Assigning to @array[-$a] when $a > @array.elems should die | 17:49 | |
Juerd | Is -1 ever used in a place where autovivification makes sense? | ||
Is there ever a need to enforce that an array has a last element? | |||
Aren't you, in such a case, looking at the array in the wrong order anyway? | |||
theorbtwo | I've assigned to $foo[-1] on purpose, though I cannot now recall what that purpose was. | 17:50 | |
Juerd | theorbtwo: Please look it up. It should be easily greppable. | ||
Although | |||
You probably changed it after finding that it didn't work | 17:51 | ||
PerlJam | Juerd: you could always just use the "it dies in perl5..." argument too :) | ||
theorbtwo | Indeed. | ||
Juerd | PerlJam: This dies for very different reasons | ||
wolverian: I forgot to mention: anything with bright blue leds is suspicious. | 17:52 | ||
PerlJam | I still think that my @array; @array[-5] = 3; should create a 5 element array with @array[0] = 3; | ||
Juerd | PerlJam: Will you be likely to use another -$foo after that? | 17:53 | |
Or, actually: are you likely to ever write @array[-5] = 3? | 17:54 | ||
theorbtwo wishes his fan control thingy didn't have blue lights, but I couldn't find one that wasn't full of geek bling. | |||
Juerd | theorbtwo: s/fan control/potentiometer/ | 17:55 | |
Et voila! | |||
theorbtwo | Juerd: I know that... more or less. But it has four pots, with nice dials on them, and the correct sockets. | 17:56 | |
r0nny | re | ||
theorbtwo | And I didn't have to build the blasted thing myself. | ||
r0nny | hoi there | ||
Juerd | theorbtwo: That's a very different story :P | ||
PerlJam | Juerd: I don't know. But I can still be stubborn (if wrong) on this point until I change my mind :) | ||
r0nny | got a question about pug's perl thread controlls | ||
Juerd | Threads in pugs? | 17:57 | |
PerlJam | r0nny: does such a thing even exist? | ||
r0nny | yeah | ||
PerlJam continues to stay away from threads | |||
r0nny | pugs got threads | ||
theorbtwo | Pugs has threads. | 17:58 | |
r0nny | i want to know, how to controll them better | 17:59 | |
PerlJam | brother++ (praise from larry is always good :) | 18:00 | |
brother | \o/ | 18:02 | |
geoffb | Apropos to discussion last night with GeJ, and to our discussion earlier about migration documents, what do you folks think of this idea: | 18:11 | |
A book, "Migrating to Perl 6", released on or about the same date as 6.0.0. Includes a sections on: | 18:12 | ||
* converting today's P5 scripts to P6, including discussions about Ponie and automatic translation. | 18:13 | ||
PerlJam | geoffb: great! Now we'll have *two* things that never get released ;) | ||
geoffb | * Things to change from P5 coding style to P6 coding style, with migration tips as per earlier discussion | ||
* Moving the mindset to P6, and making use of the new features | 18:14 | ||
PerlJam, :-P | |||
theorbtwo | I'd be really PO'd to learn that 6.0.0 is being delayed so as to co-incide with the book. | ||
geoffb | theorbtwo, well of course not, silly | ||
I'm saying that would be the goal timeline for the book author. | |||
PerlJam | geoffb: When you refer to "coding style", what are you talking about? | 18:15 | |
theorbtwo | How else are you going to do it? The press timeline between final draft and release has got to be *at* *least* 6 months. | ||
...and things will change with perl6 up to the day 6.0.0 is declared. | |||
PerlJam | geoffb: translating idioms? while (<>) {...} becomes for =<> { ... } and that sort of thing | ||
geoffb | theorbtwo, that's what second editions and online websites are for | ||
PerlJam, yeah, that's what I meant with the second section | 18:16 | ||
PerlJam | theorbtwo: plus publication could mean "published in book form on the web" instead of "published in dead tree form" | ||
geoffb | Because I see a few phases: 1) Just make old code work again, 2) get idiomatic without using lots of whiz-bang features, 3) start trying out the whiz-bang stuff. | 18:17 | |
theorbtwo | Ah. To me "book" and "published" implied dead-tree pretty strongly. | ||
geoffb | And I'd think a book could follow that progression relatively well | ||
theorbtwo, my image was a simultaneous release under Creative Commons or somesuch. | |||
O'Reilly, ferinstance, doesn't seem actively against that. | |||
theorbtwo | Yeah, but if it's a simultaneous release, you've still got the problems of press delay. | 18:18 | |
svnbot6 | r7615 | iblech++ | * t/data_types/pair.t: Pairs with complex keys should not get stringified when | ||
r7615 | iblech++ | passed to a sub. | |||
r7615 | iblech++ | * t/var/autoref.t: Using array literals, arrayref literals, and hashref | |||
r7615 | iblech++ | literals as keys and values of pairs should cause appropriate | |||
r7615 | iblech++ | autoreferentiation (key => <a b c> should be the same as key => [<a b c>]). | |||
r7615 | iblech++ | (Both Pugs's vanilla core and PIL2JS pass 57/57.) | |||
geoffb | theorbtwo, I think you're too caught up in the date issue. I thought that would be cool -- it's not the centerpoint of my suggestion. | 18:19 | |
"First feature request to axe if needed" | |||
Wow, does everyone just think this is stupid? | 18:21 | ||
theorbtwo | I'd like a good migration guide. | 18:22 | |
I think it'd be very good. | |||
PerlJam | geoffb: Depends. Are you volunteering to be the author ? :) | ||
theorbtwo | I think pulling in the word "book" and mentioning a release sechedule is bad. | ||
geoffb | PerlJam, sortof judging interest. | 18:23 | |
The economics of publishing mean that it has to go over well or the author starves. | |||
PerlJam | geoffb: oh, then mark me down as interested but only if there's a definite author (as opposed to "would it be great if ..." with no one to do the work) | 18:24 | |
geoffb | theorbtwo, my bad. | ||
geoffb weighs spending off-contract time writing such a book, which has the potential to help people and produce a little bit of income, versus writing 3D code, which has considerably less potential for either of those, but is much more fun (and less exhausting) than writing a book | 18:26 | ||
nothingmuch, please backlog ~15 minutes or so and tell me what you think. | 18:27 | ||
nothingmuch | okies | ||
theorbtwo | Really, I think the best WTDI would be a wiki, probably, and then for somebody to go back and make a book of it. | ||
...except that I think if there was the perception that that person was making too much money for too little work it'd set things back a fair way. | 18:28 | ||
geoffb | wikis are good at getting random stuff down. They are bad at flow and completeness (wikipedia of course being special) | ||
renormalist | Regarding your discussion about how to tell people the migration of idiom: it would already be useful, if people would start using more of those Perl6:: modules. I don't know anyone using them. | ||
geoffb | Oh nice, momentary power outage | ||
obra | I'd actually expect 3 months between "draft completion" and "paper books", theorbtwo | 18:29 | |
geoffb | Damn, I need to get UPS #2 fixed, the mac got shut down | ||
obra | as that's what oreilly did for the book I just put out. ;) | ||
nothingmuch | geoffb: that's a good idea | ||
geoffb | obra, what is your book? | ||
nothingmuch, OK, so there's some interest at least, between you and PerlJam | 18:30 | ||
nothingmuch | don't look at me for help though | ||
PerlJam | geoffb: If you're going to go with the book idea, you can also put me down as someone who'll help in any way. | ||
nothingmuch can't write worth crap | |||
theorbtwo | Thanks, obra. I don't have any experince with this. | ||
geoffb | nothingmuch, I wasn't expecting such. | ||
PerlJam | geoffb: proofing, writing, whatever | ||
nothingmuch | i also read too slow to help editing/proof reading | ||
geoffb | PerlJam, that's a kind offer! | ||
nothingmuch | but i would be very eager to help in any way you think i can | ||
obra | geoffb: RT Essentials | 18:31 | |
nothingmuch | which is mostly code examples (review + writing) | ||
geoffb | obra, ah. Good man. | ||
obra would love to see the perl6 cookbook | |||
published as a real book ;) | |||
PerlJam | geoffb: Not really. I'm selfish. The easier it is to get people using perl6, the more people will use it, and the stronger the community will be. :) | ||
geoffb | obra, OT curiosity: does RT support authentication from Active Directory these days? I lost a contract once because I asked too much to implement that. :-) | 18:32 | |
PerlJam, well said. | |||
nothingmuch | geoffb: i will also be very glad to help with high level editorial - feedback on structure, digressions, TOC, ordering, etc | ||
theorbtwo | PAM++ | ||
nothingmuch | but I guess all of #perl6 fits into that role anyway | ||
nothingmuch ponders if we could make it into a wikibook | |||
geoffb | nothingmuch, yeah, if I did it, I'd pretty much beg for help here with regularity. | 18:33 | |
theorbtwo has yet to see his name on the acknowlagements page of a book. | |||
PerlJam | nothingmuch: That would be best I think. | ||
nothingmuch | where one person is the dictator and gets vetoing rights on structure, as well as putting in most of the input | ||
obra | geoffb: sure. basically you tell RT to trust apache. and then have apache do it | ||
nothingmuch | but everyone does proof reading, group think | ||
and adds new ideas, improves examples, etc | |||
obra | geoffb: also, ther'es a contrib on the website that does it internally | ||
nothingmuch | the problem with making a wiki do that is that someone still needs to pull the whole thing into a linearized, chapter structured piece | ||
geoffb | obra, ah. Thanks for the info | ||
nothingmuch | and someone has to provide consistent and coherent glue | 18:34 | |
theorbtwo | Exactly, nm. | ||
nothingmuch | but after the skeleton is there the wiki style could really help | ||
geoffb | nothingmuch, nodnod | ||
PerlJam | There's a "plugin" for pmwiki that I've been meaning to install that will take a page or a group of pages and automatically generate a TOC, etc. and create a PDF of it all. | ||
nothingmuch | geoffb: i think a practical approach would be to start a TOC | ||
and I volunteer you for the job | |||
PerlJam | Do any other wiki engines have something like this? | ||
geoffb | I should have paid more attention to how the SVK book was built in #svk . . . | ||
nothingmuch, hold on a sec. | 18:35 | ||
nothingmuch | PerlJam: a TOC page could be good enough, with large chapters having a sub TOC | ||
theorbtwo | Have a wiki on the topic, and then somebody needs to go in and make it into a real book. | ||
nothingmuch | theorbtwo: i think that approach is slightly too chaotic for a good book | ||
geoffb | A) I have not committed yet, I really have to think about this. I would treat it as a responsibility if I took it on. And as a big one, I need to think about it. | ||
nothingmuch | i think the same person needs to start the book, and finish it | ||
PerlJam | geoffb: indeed. think hard. | ||
nothingmuch | geoffb: that's OK, i still volunteer you =) | ||
geoffb | B) I don't know everything I would put in it yet, so a TOC may be slightly premature. | 18:36 | |
theorbtwo | Possibly this can be helped by making a template, and somehow keeping the template and the bits that are filled into it sepperately. | ||
geoffb | .oO( I wonder if I can turn this into blog fodder ( |
||
PerlJam | geoffb: sure, why not? | ||
nothingmuch | theorbtwo: think of it as a binary tree | ||
for content to be organized well you need a good rootset | |||
which is i * (log 2 n) of the size of the book | 18:37 | ||
geoffb | nothingmuch, nod | ||
nothingmuch | where i is at most 2-3 | ||
then the community can help fill everything up | |||
and then an editor strings the leafs together and makes them into a book by throwing some away, and adding some where it's needed | |||
geoffb contemplates all of these good ideas | 18:38 | ||
nothingmuch thinks about the rootset a bit | 18:39 | ||
it'll be on the wiki if I get something out of it | |||
geoffb | post an url if you do | 18:40 | |
nothingmuch | yup | ||
PerlJam | Where's the doc that describes kwid? | 18:45 | |
mrborisguy | wow... just did a pugs -CPerl5 program and looked at the output... crazy | ||
nothingmuch | mrborisguy: hehe =) | ||
mrborisguy | looks like a direct functional language translation in Perl, eh? | 18:46 | |
one REALLY big line! | |||
nothingmuch | mrborisguy: that's PIL, which is ANF with more jazz | 18:47 | |
and ANF is a lambda calculus which is similar in purpose to SSA form | |||
mrborisguy | alright... I'll, um... keep that one in mind | 18:48 | |
(I'm only an undergrad here, keep it simple! :D ) | |||
nothingmuch | pugs.kwiki.org/?MigratingToPerl6 | 18:54 | |
svnbot6 | r7616 | iblech++ | * t/data_types/array.t: Binding @empty_array[-1] should fail as well. | ||
r7616 | iblech++ | * PIL2JS: Prelude::JS::Array: Assigning to @empty_array[-1]/@one_elem_array[-2] | |||
r7616 | iblech++ | fails now, which means that PIL2JS passes 67/67 of array.t again. | |||
r7616 | iblech++ | JS-- # var a = 42; a.my_property = 23; print(a.my_property); // undefined | |||
r7616 | iblech++ | (But:) # var a = [42]; a.my_property = 23; print(a.my_property); // 23 | |||
nothingmuch | geoffb: ping | 18:55 | |
I added some updates | 18:58 | ||
PerlJam, theorbtwo: please also comment | 19:00 | ||
mrborisguy: use.perl.org/~autrijus/journal/25964 | 19:01 | ||
geoffb | nothingmuch, pong -- sorry, @children to take care of. | 19:02 | |
nothingmuch | tell them no dinner if they don't give you a few mins ;-) | ||
geoffb | Thanks for the expansion . . . I'll look at it once $child[0] starts shoveling food in | 19:03 | |
& | |||
nothingmuch | =) | ||
eric256 | brother: ping | 19:06 | |
brother | eric256: pongt | ||
eric256 | hey. you got a response from larry himself...nice ;) | 19:07 | |
brother | nice start for my perl6 career | 19:09 | |
nothingmuch | brother: =) | ||
eric256 | so larry says its early strinigifcation...but i'm still confused as to weather %incoming in a signature is *suppose* to force stringification or not, and weather pugs has some other signature for accepting a list of pairs or not, or if this is an unfinished feature/bug....anyone with more insight? i'm going fishing for tests as soon as svn up finishes | 19:11 | |
nothingmuch | moose! | 19:12 | |
nothingmuch is done with the book page for now | |||
eric256 | ?eval sub x (Pair $x) { return $x.perl }; x( 1..5 => 2); | 19:13 | |
evalbot_7616 | "((1, 2, 3, 4, 5) => 2)" | ||
eric256 | ?eval sub x (Pair @x) { return @x.perl }; x( 1..5 => 2); | ||
evalbot_7616 | "[((1, 2, 3, 4, 5) => 2)]" | ||
eric256 | ahh!!! not of Pair just Pair in front | ||
?eval sub x (Pair *@x) { return @x.perl }; x( 1..5 => 2); | |||
evalbot_7616 | "[((1, 2, 3, 4, 5) => 2)]" | ||
nothingmuch | eric256: that's a pugs bug then | ||
eric256 | it is? why? should be of Pair instead? | 19:14 | |
nothingmuch | both should be supported | ||
eric256 | ahh | ||
gotcha | |||
nothingmuch | my Pair @array; my @array of Pair; my @array is shape(...some syntax I forgot by now...); # same thing | ||
eric256 | ?eval sub x (*@x) { return @x.perl }; x( 1..5 => 2); | 19:15 | |
evalbot_7616 | "[]" | ||
eric256 | ?eval sub x (Any *@x) { return @x.perl }; x( 1..5 => 2); | ||
evalbot_7616 | "[((1, 2, 3, 4, 5) => 2)]" | ||
eric256 | that just seems broken that way | ||
theorbtwo | What is C3 dispatch order? | 19:17 | |
Does the new compilation stuff really need to be in the first chapter? | 19:18 | ||
nothingmuch | theorbtwo: i think that C3 was decided on | 19:22 | |
as foor the compilation stuff - just a simple 2 paragraph intro - perl 6 now runs on separate backends, including parrot | |||
note that BEGIN and INIT and all that will run slightly differently | |||
geoffb | nothingmuch, thank you, that's a good start! | 19:23 | |
nothingmuch | =) | ||
geoffb | theorbtwo, Perl 5 people need to at least be aware that the pseudoblocks like BEGIN and CHECK are now different. | ||
And giving them a couple paragraphs about why makes sense. | 19:24 | ||
nothingmuch | gaal++ | 19:26 | |
geoffb: please make sure the last 3 paragraphs are OK with you | 19:27 | ||
eric256 | ?eval sub x (Str $t, Pair @x) { return @x.perl.say; }; x("hello", 1 => 5); | ||
evalbot_7616 | [(1 => 5)] bool::true | ||
geoffb | What was the gaal increment for? | 19:28 | |
nothingmuch buys some shirts | |||
eric256 | *** Insufficient number of required parameters: 0 actual, 1 expected | ||
nothingmuch | geoffb: he added some to the wiki page | ||
eric256 | any idea what causes that error? | ||
geoffb | gaal, ah, cool | ||
er, nothingmuch, ah, cool | |||
But I guess both. :-) | |||
As for last three paragraphs: | |||
nothingmuch thinks that looks pretty solid for a 15 minute project ;-) | 19:29 | ||
i'm guessing Juerd will have lots of feeback | |||
geoffb | For 1 & 2 I'm not sure whether community or editor(s) will end up supplying more content. It's a decent way to start, at least. | ||
eric256 | seems to be being generated by : for @intable -> $item { | ||
geoffb | For 3, it's a good idea, but you never know if a publisher would buy off on that for real. | ||
Juerd | 21:32 < nothingmuch> i'm guessing Juerd will have lots of feeback | 19:30 | |
nothingmuch: re what? | |||
nothingmuch | Juerd: pugs.kwiki.org/?MigratingToPerl6 | ||
geoffb | nothingmuch, yeah, pretty good for 15 min. | ||
nothingmuch | Juerd: geoffb's book iddea | ||
geoffb: i think both oreilly and another publisher has a history of publishing opensource books, so it might not be that hard | |||
Juerd | nothingmuch: I'm opposed to the entire "incompatible changes" thing because of its wording | 19:31 | |
nothingmuch | god a better name? | ||
Juerd | nothingmuch: In general, I believe that the old should be construed as that: old, gone. | ||
geoffb | Publishing, yes, absolutely. Being willing to pay an author/editor *and* give money to TPF, that's another question. | ||
eric256 | yep definitly caused by the for loop... | ||
geoffb | Of course, I may just not have noticed it happen. | ||
Juerd | nothingmuch: In a way, all changes are incompatible. They're just changes. | ||
nothingmuch | geoffb: well, let's say the TPF publishes the book, and gives grants to the authors - what's the diff? | ||
Juerd | nothingmuch: Avoid negative words when you can do so without taking away meaning | 19:32 | |
nothingmuch | Juerd: that's a good mantra | ||
but I don't know how to apply it now... what could you say about 'for (my $i = 1; $i <= 10; $i++) { }' being "loop" now? | |||
Juerd | nothingmuch: Removed features, added features, changed features, equal features with different syntax: all changes, all incompatible | ||
eric256 | ?eval sub x (Str $t, Pair @x) { for @x -> $z { $x.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
Juerd | nothingmuch: If something changed compatibly, for all intents and purposes, it's not a change :) | ||
geoffb | nothingmuch, might be workeable. Note: I would like your suggestion to happen. I just was mildly dubious about it *actually* coming to pass. :-) | 19:33 | |
eric256 | tell me i'm missing something obvious... | ||
nothingmuch | geoffb: details details | ||
geoffb | nothingmuch, :-) | ||
Juerd | nothingmuch: "C-style for loops are now written as..." | ||
eric256 | even if it doesn't become a realy book, a nice wiki like that would be good | ||
Juerd | nothingmuch: "Used to be written as, are now written as" | ||
nothingmuch: In general, Perl 5 is past tense, Perl 6 is present (not future) | |||
nothingmuch | hmm | ||
Juerd | You're describing changes in history. | 19:34 | |
Khisanth | eric256: *@x maybe? | ||
eric256 | ?eval sub x (Str $t, Pair *@x) { for @x -> $z { $x.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
nothingmuch | Juerd: could you please hack it up a bit in the wiki? i tried 2 times now, while you were typing, and felt that I only degraded it | ||
Juerd | nothingmuch: Destroy the entire chapter, and fit its children elsewhere :) | ||
PerlJam | How does kwiki handle dueling edits? | 19:35 | |
Juerd | nothingmuch: I myself would prefer a structure equal to a reference manual: | ||
PerlJam: awfully | |||
PerlJam | last one wins or is there some other resolution? | ||
Juerd | nothingmuch: control structures, operators, variables... | ||
PerlJam: former | |||
nothingmuch: Perhaps a good idea would be to have side-by-side examples throughout the book | 19:36 | ||
geoffb | Juerd, a thought: Can we separate "technical content" and "editorial massaging" as separate passes? I'm worried that we'll bikeshed style instead of fill in useful data. | ||
eric256 | ?eval sub x (Str $t, *@x) { for @x -> $z { $x.perl.say;} }; x("hello", 1 , 5); | 19:37 | |
evalbot_7616 | Error: Undeclared variable: "$x" | ||
eric256 | ?eval sub x (Str $t, *@x) { for @x -> $z { $z.perl.say;} }; x("hello", 1 , 5); | ||
evalbot_7616 | \1 \5 undef | ||
geoffb | Juerd, not that we're there yet, just trying to cut it off at the pass. | ||
nothingmuch | Juerd: i'll record all this, but I really like the 3 part incremental approach that geoffb brought up... I think a strong index would take care of the reference part (index not only by word) | ||
geoffb | Juerd, side-by-side examples I think is an excellent idea. | ||
nothingmuch, nodnod | |||
Juerd | geoffb: I'm not sure what you mean by editorial massaging | ||
geoffb | Turning the raw data that the community comes up with into prose that is acceptable for a finished product | 19:38 | |
Juerd | geoffb: Oh, of course. | ||
eric256 wonders what he did to offend the Pugs god.....please oh god let my Pair type work! ;) | |||
nothingmuch | also, WRT the reference appraoch - we already have the synopses | ||
eric256 | ?eval sub x (Str $t,Any *@x) { for @x -> $z { $z.perl.say;} }; x("hello", 1 , 5); | ||
evalbot_7616 | \1 \5 undef | ||
eric256 | ?eval sub x (Str $t,Any *@x) { for @x -> $z { $z.perl.say;} }; x("hello", (1 => 5)); | ||
evalbot_7616 | Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
Juerd | nothingmuch: Synopses are very, very comprehensive. That's too much info to grok. | ||
For migration, in the change of foreach loops, all you need to know is that: | 19:39 | ||
eric256 | ?eval sub x (Str $t, *@x) { for @x -> $z { $z.perl.say;} }; x("hello", (1 => 5)); | ||
evalbot_7616 | undef | ||
Juerd | 1. foreach is gone, it's now for | ||
nothingmuch | i think what we really need is a book that a perl 5 programmer can go along with and incrementally become more acquainted | ||
Juerd | 2. parens are gone | ||
3. the variable is written in a different place, and has -> in front of it | |||
PerlJam | heh ... I'm going insane I think. I just tried to cut-n-paste from my browser to paper (maybe I should stop using paper, but I need to give my fingers a rest now and then) | ||
Juerd | And these things are for later: | ||
1. it's &statement:for | 19:40 | ||
2. -> creates a sub | |||
3. -> can take several variables | |||
4. zip | |||
brother | PerlJam: I usually try the other way | ||
Juerd | 5. the block can be a &subref | ||
eric256 | printing = cut & paste -> paper | ||
nothingmuch | Juerd: please copy paste chatlog to the wiki page, i'm becoming busy | ||
Juerd | i.e. separation of changes and new features | ||
theorbtwo | Paper gives your fingers a rest? | 19:41 | |
Juerd | nothingmuch: I won't edit wiki pages that others are editing. It doesn't work. Wikis don't work well for collaboration on the same pages. | ||
PerlJam | theorbtwo: from typing it does. | ||
Juerd | And I dislike kwiki's syntax :P | ||
(I dislike textareas even more, though) | |||
I'll try to write something up later | |||
PerlJam | theorbtwo: plus it's alot easier to draw pictures on paper than digitally using the input media avialable to me. | 19:42 | |
geoffb | Juerd, thank you. | ||
eric256 wonders if a simple wiki could be built using SVN (or svk) and as the version control / multiple edit merging backend | |||
geoffb | eric256, I've done similar things in the past. But when you know that everyone who will use the "wiki" knows how to use source control, | 19:44 | |
integral | hmm, I think someone in #haskell (shapr?) uses darcs for that kind of wiki thing | ||
geoffb | the easiest thing is just to throw up a renderer that just reads an SVN checkout. | ||
(i.e. no web UI for editing, people checkin at the command line, and view only via web) | 19:45 | ||
eric256 | well thats easy enough. don't see why a quick text area for online editing would hurt though. /me considers implementing it for pugs. still need a wiki markup parser though. | ||
geoffb | .oO( Mason's dhandlers are *great* for this, BTW) |
19:47 | |
eric256, AFT is close, though not the same dialect as KWID | |||
eric256 | i was thinking a p6 implementation. since we have wanted a p6 based wiki for a while | ||
geoffb | Is there a KWID2HTML? | ||
eric256 | or did i misunderstand you? | ||
geoffb | eric256, nope, I was on a parallel train of thought | 19:48 | |
Juerd | When writing a Perl 6 based wiki now, pay little attention to its software design and write it mostly imperatively, because otherwise it will perform so bad that it will perhaps look great in the source, but be unusable in practice. | 19:51 | |
nothingmuch | Juerd: can I quote you on the wiki? | ||
btw, if writing a wiki, use either textile or kwid | |||
please don't invent a new language | |||
integral | Juerd: just add bits to the perl6 optimizer specifically for whatever coding style you use | 19:52 | |
eric256 | ahhh you ruin all my fun nothingmuch ;) | ||
Juerd | Please invent a new language :) | ||
Or use html :) | |||
In any case, optimize the wiki for code. Kwid sucks for code :) | |||
integral: There is no perl6 optimizer. | 19:53 | ||
integral | the first addition is the optimizer ;-) | 19:54 | |
I thought the whole point of getting a new language, and a new implementation was so that we wouldn't have to cripple our programming style just because the old system is slow in a particular way? | |||
nothingmuch likes the way mediawiki lets you inline HTML when it just doesn't cut it | |||
that's a very good feature | 19:55 | ||
it's just like perl, impossible, easy, hard and all that (i never remember how that saying goes) | |||
PerlJam | nothingmuch: easy things easy, hard things possible. | 19:56 | |
or, perhaps for perl6, easy things easy, hard things not so hard, and nigh impossible things possible. | 19:57 | ||
nothingmuch | i'm going to get ready for my outing | 19:58 | |
ciao | |||
geoffb: thanks for a wonderful idea | |||
Juerd: so far I incorperated your smaller points into the current structure | 19:59 | ||
geoffb | nothingmuch, :-) | 20:00 | |
nothingmuch, have fun on your outing | |||
nothingmuch | grazie | ||
nothingmuch can't resist and addss some more | 20:01 | ||
geoffb | :-) | ||
nothingmuch | please link to the wiki from a mailing list post | 20:03 | |
geoffb in $work mtg | 20:04 | ||
nothingmuch | ciao | ||
20:05
ods15_ is now known as ods15
|
|||
nothingmuch will post | 20:05 | ||
geoffb | thx nm | ||
nothingmuch | bing | 20:11 | |
Juerd | Okay here it is | 20:13 | |
feather.perl6.nl/~juerd/p6migrate | |||
I too can do stuff in 15 minuts | |||
nothingmuch | i'm linking to that from the wikipage | ||
Juerd | But now my wrists hurt so afk | ||
nothingmuch | Juerd++ | ||
geoffb | hope you feel better, Juerd, and thx | ||
nothingmuch | heh, turns out i misused the word outing | 20:14 | |
tee hee | |||
geoffb | ? | ||
nothingmuch | FYI /me meant that he is going out, not going to publicly admit some little known fact | ||
geoffb | I assumed the former | ||
nothingmuch | gaal corrected me anyway ;-) | 20:15 | |
eric256 | outing normaly means going out....if you out someone, that would be publicy admiting some fact on there behalf..normaly without there permission. ;) | ||
nothingmuch | hmm | ||
www.google.com/search?client=safari...p;oe=UTF-8 | |||
eric256 | hey i was right !!! lol. i do know some english no matter what that teacher said. ;) | 20:16 | |
?eval sub x (Str $t, *@x) { for @x { $_.perl.say;} }; x("hello", (1 => 5)); | 20:18 | ||
evalbot_7616 | undef | ||
eric256 | ?eval sub x (Str $t, *@x) { for @x { $_.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | undef | ||
eric256 | ?eval sub x (Str $t, *@x) { @x.perl.say; for @x { $_.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | [] undef | ||
eric256 | ?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x { $_.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | [(1 => 5)] Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
eric256 | for just realy doesn't like that. | 20:19 | |
?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x.values { $_.perl.say;} }; x("hello", 1 => 5); | |||
evalbot_7616 | [(1 => 5)] Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
eric256 | ?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x.kv { $_.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | [(1 => 5)] \0 Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
eric256 | ?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x ->$k,$v { $k.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | [(1 => 5)] Error: Insufficient number of required parameters: 0 actual, 2 expected | ||
eric256 | ?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x ->Pari $k { $k.perl.say;} }; x("hello", 1 => 5); | 20:20 | |
evalbot_7616 | [(1 => 5)] Error: Insufficient number of required parameters: 0 actual, 1 expected | ||
eric256 | ?eval sub x (Str $t, Any *@x) { @x.perl.say; for @x -> Pair $k { $k.perl.say;} }; x("hello", 1 => 5); | ||
evalbot_7616 | [(1 => 5)] (1 => 5) undef | ||
eric256 | ;) | ||
still feels like a bug...but at least there is a way around it | |||
is there any way to test Prelude.pm without remakeing? | 20:27 | ||
svnbot6 | r7617 | eric256++ | Change string.trans to accept a list of pairs instead of a hash, now allows 'abcdefg'.trasn( ['a'..'c'] => 'A-C'); | 20:43 | |
geoffb | Juerd++ # Good thoughts on the migration doc | ||
autrijus, ping | |||
Juerd | Thank you | 20:46 | |
leo__ | sb end | 20:47 | |
Juerd | s[^]/] | 20:48 | |
eh | |||
svnbot6 | r7618 | fglock++ | * perl5/Array - started O(1) optimization of Perl6::Container::Array | ||
r7618 | fglock++ | currently disabled with "if 0 &&" because some tests fail | |||
Juerd | s[^][/] | ||
integral | is `make ghci` meant to be broken? | 20:53 | |
eric256 | ?eval 'c'..'a'; | 20:56 | |
evalbot_7618 | ("c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") | ||
eric256 | lol. | 20:57 | |
?eval 'z'..'a'; | |||
evalbot_7618 | ("z") | ||
eric256 | ?eval 5..1 | ||
evalbot_7618 | () | ||
eric256 | ?eval 1..5 | ||
evalbot_7618 | (1, 2, 3, 4, 5) | ||
eric256 | okay thats just plain broken.../me searchs for the haskell for this. | 20:58 | |
buu | ?eval $a="c"; $a--; $a | ||
evalbot_7618 | Error: Undeclared variable: "$a" | ||
buu | ?eval my$a="c"; $a--; $a | ||
evalbot_7618 | \-1.0 | ||
buu | =[ | ||
eric256 | thats normal | 20:59 | |
only ++ is magic | |||
?eval my$a="c"; $a++; $a | |||
evalbot_7618 | \"d" | ||
Juerd | 23:02 < eric256> only ++ is magic | 21:00 | |
And likewise, we shouldn't expect "zz".."aa" to work :) | |||
eric256 | i don't. but 'c' .. 'a' shouldn't give the whole alphabet | ||
which is what i meant by broken | |||
?eval 'y' .. 'a'; | |||
evalbot_7618 | ("y", "z") | ||
eric256 | ?eval 'y' .. 'c'; | 21:01 | |
evalbot_7618 | ("y", "z") | ||
eric256 | broken | ||
is there a name for .. that i can search src/ for? | |||
Juerd | range? | 21:07 | |
eric256 | yea...turns into strRange through op2Range ...now search for strRange ;) | 21:08 | |
anyone know haskels string comparison? s1 > s2 should just DWIM right? | 21:10 | ||
Juerd | tafo | 21:12 | |
:) | |||
eric256 | working on that...takes a while for it to compile though....duh ghci | ||
eric256 smacks head | |||
eric256 is pleased to find out it should work ;) | 21:13 | ||
should graph the time to compile pugs through history. ;) probably an exponential curve | |||
Juerd | Good luck graphing that :) | 21:14 | |
7618 commits | |||
Graph every 50 and it'll still take a long time | |||
eric256 | yea i was thinking about just starting now and recording data. | 21:15 | |
buu | eval: 7618/50*2 * 60 | ||
Juerd | Nah, then include history :) | ||
buu | er | ||
Juerd | buu?! | ||
buu | JUERD | 21:16 | |
eric256 | if i knew any bash i would let the feather track it on rebuilds | ||
?eval 7618/50*2 * 60 | |||
evalbot_7618 | 18283.2 | ||
Juerd | Where does that formula come from? | ||
buu | Randomness mostly | ||
joao | eric256: get an homogeneous cluster, and record every 100 releases :-) | ||
Juerd | eric256: Why know bash? It's easy to change the script to perl. | ||
eric256 | true | ||
buu | Juerd: 7618 commits, by 50, times two hours per build.. | ||
Juerd | TWO HOURS per build? | 21:17 | |
Hell no :) | |||
eric256: If you will do this, take my advice and output to a text file, not a database :) | |||
eric256 | yea i was gonna...no need for a db | ||
buu | Juerd: Just a guess! | 21:18 | |
nothingmuch | why do we need to know pugs build times in the past? | ||
it might help in the future (i don't really see how) | |||
eric256 | ?eval (7618 / 50) * 10 | 21:19 | |
evalbot_7618 | 1523.6 | ||
nothingmuch | but is it really worth all that CPU time? | ||
eric256 | ?eval 1532.6 / 60 | ||
evalbot_7618 | 25.5433333333333333333333333333333333333333 | ||
eric256 | only a day to build them all | ||
give or take 2 days. ;) | |||
why? because we can! ;) | |||
Juerd | nothingmuch: For the graph. For fun. Fun is always worth cpu time. | 21:20 | |
nothingmuch | okies | ||
Juerd | eric256: Feel free to use feather to create historical data | 21:21 | |
eric256 | 'z'..'a' is fixed now | ||
Juerd | eric256: It won't be entirely accurate, but enough for a nice graph | ||
eric256 | cool | 21:23 | |
svnbot6 | r7619 | eric256++ | Fixed 'z' .. 'a' to return empty list instead of entire alphabet. | ||
eric256 anxiously awaits evail bot updating... | |||
that was my first Haskell hack!! ;) | |||
nothingmuch | eric256++ | 21:24 | |
Juerd | eric256++ | ||
eric256 | ?eval '1' .. '5'; | ||
evalbot_7618 | ("1", "2", "3", "4", "5") | ||
eric256 | ?eval '9' .. '21'; | 21:25 | |
evalbot_7618 | ("9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21") | ||
eric256 | hmmm... doesn't that seem odd? | ||
?eval 'a'..'Z'; | 21:26 | ||
evalbot_7618 | ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") | ||
nothingmuch | night all | 21:27 | |
21:27
Grrrr is now known as Gruber
|
|||
Juerd | eric256: Seems useful. | 21:27 | |
nothingmuch: Good night | |||
?eval 'A'..'Z' | |||
evalbot_7618 | Can't exec "./pugs": Permission denied at examples/network/evalbot//evalhelper.p5 line 42. | ||
eric256 | ?? | ||
Juerd | ?eval 'A'..'Z' | ||
evalbot_7619 | ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z") | 21:28 | |
eric256 | ahh you hit it as it updated | ||
?eval 'z'..'a'; | |||
evalbot_7619 | () | ||
Juerd | ?eval 'Z'..'A' | ||
evalbot_7619 | () | ||
eric256 | ;) | ||
gives me a warm fuzzy feeling | |||
i don't see the code in eval bot for restarting....or is it part of some cron job or something? | 21:30 | ||
?uptime | 21:32 | ||
svnbot6 | Running for 2524875 seconds. | ||
evalbot_7619 | Running for 274 seconds. | ||
Juerd | svnbot6 wins! | 21:33 | |
eric256 | yea. since eval bot updates every 15 minutes. lol | ||
?eval 10..0; | 21:35 | ||
evalbot_7619 | () | ||
eric256 wanders aroun in search of another bug he can fix... ;) | 21:36 | ||
geoffb | obra, did you find out how to fix my link on planetsix? | 21:41 | |
svnbot6 | r7620 | stevan++ | Perl6-MetaModel - minor changes to the mini-metamodels; link to relevant p6l discussion in tests | ||
obra | geoffb: no. I'll poke robert. | ||
geoffb | obra, thx | 21:42 | |
eric256 | ?eval ?1 | 21:50 | |
evalbot_7620 | bool::true | ||
eric256 | ahhh ? means bool. ;) | ||
?eval (?1).perl | |||
evalbot_7620 | "bool::true" | ||
eric256 | ?eval (?1).ref | ||
obra | geoffb: your feeds...they have no content | ||
evalbot_7620 | ::Bool | ||
geoffb | ! | ||
eric256 | ?eval (::Bool).ref | ||
evalbot_7620 | ::Class | ||
geoffb | obra, wow, that's messed up | ||
eric256 | ?eval (bool::true).ref | 21:51 | |
evalbot_7620 | ::Bool | ||
eric256 | ?eval undef.perl | ||
evalbot_7620 | "undef" | ||
eric256 | ?eval undef.ref | ||
evalbot_7620 | ::Scalar | ||
geoffb | Oh wait, are you saying you're getting just the link and title, and no body? That might be an O'Reilly thing to keep page views were they can make money off of them . . . . | 21:52 | |
obra | yeah | ||
well, that's going to get the feeds not-aggregated. | |||
"It works for radar" | |||
geoffb | you mean O'Reilly's Radar site? | 21:56 | |
Bah, I'm sorry to hear that it's broken like that. | 21:57 | ||
Ah well, O'Reilly didn't want to pay me decently enough to work there, so that's what they get. :-) | 21:58 | ||
eric256 | Shouldn't 3e5 stay 3e5 when printed? | 22:04 | |
?eval 3e5 ~ "-"; | |||
evalbot_7620 | "300000-" | ||
eric256 | ?eval 3e5 + 1; | ||
evalbot_7620 | 300001 | ||
geoffb | eric256, why would it? | ||
eric256 | i would have expected the first one to be "3e5-" | ||
so thats eval($x.perl) === $x | |||
geoffb | Internally it's just converted to some sort of Num. At that point, it doesn't matter if you said 3e5 or 30000 or 30_000 | 22:05 | |
eric256 | actualy internaly its stored as a rational number...right up till you convert it to a string | ||
its part of the reason perl.t is failing on some tests. maybe .perl needs to use a different output than stringified. dunno | 22:06 | ||
geoffb | eric256, um . . . still not seeing why it's surprising that numbers input any which way become all one and the same. | ||
eric256 | geoffb. because they are stored internaly as 3e5 as a rational number. and because the specs say that $x.perl.ref need to equal $x.ref | 22:07 | |
geoffb is exhausted | |||
eric256 | ?eval (3e5).ref | ||
evalbot_7620 | ::Rat | ||
eric256 | ?eval (30000).ref | ||
evalbot_7620 | ::Int | ||
geoffb | ?eval (30000/1).ref | 22:08 | |
evalbot_7620 | ::Rat | ||
eric256 | eval($x.perl).ref == $x.ref | ||
geoffb | A Rat is just an Int / Int, no? | ||
eric256 | hmm. then i could add a Rat method to output n / d | 22:09 | |
geoffb | eric256, that might be useful. | ||
I'm assuming, by the way, that scientific notation with a positive exponent becomes a Rat rather than directly an Int to be able to share code with the negative exponent case, not because it's necessarily the best WTDI | 22:10 | ||
eric256 knows not. ;) | 22:13 | ||
wrangling what little haskel knowledge i have, and trying not to break too much ;) | 22:15 | ||
hmmm got it to compile...now to see if it actualy works ;) | 22:22 | ||
this thing takes like 10 times longer if you are watching the make process!! lol | 22:30 | ||
eric256 pouts as the build fails with its "i'm out of memory but i'm going to tell you some other strange thing error" | 22:34 | ||
pugs> 3e5.perl --> "300000/1" | 22:40 | ||
;) | |||
?eval -Inf | 22:44 | ||
evalbot_7620 | -Infinity | ||
eric256 | ?eval (-Inf).perl | ||
evalbot_7620 | "-Infinity" | ||
eric256 | ?eval eval((-Inf).perl).ref | 22:45 | |
evalbot_7620 | ::Scalar | ||
eric256 | ?eval (-Inf).ref | ||
evalbot_7620 | ::Num | ||
eric256 | ?eval (-Infinity).ref | ||
evalbot_7620 | Error: No compatible subroutine found: "&Infinity" | ||
eric256 | ahh | ||
?eval eva("Inf").ref | |||
evalbot_7620 | Error: No compatible subroutine found: "&eva" | ||
eric256 | ?eval eval("Inf").ref | ||
evalbot_7620 | ::Num | 22:46 | |
eric256 | ?eval eval("Infinity").ref | ||
evalbot_7620 | ::Scalar | ||
eric256 | anyone who is familary with the internals around? | 22:51 | |
?eval Inf ~ "test"; | 22:52 | ||
evalbot_7620 | "Inftest" | ||
eric256 | ?eval Inf ~ " test"; | ||
evalbot_7620 | "Inf test" | ||
eric256 | ?eval my $x = { 1 => Inf }; $x.perl | 22:53 | |
evalbot_7620 | "\{(\"1\" => Inf)}" | ||
eric256 | ?eval my $x = Inf; $x.perl | ||
evalbot_7620 | "\\Inf" | ||
eric256 | ?eval Inf.perl; | ||
evalbot_7620 | "Inf" | ||
eric256 | ?eval (-Inf).perl; | 22:54 | |
evalbot_7620 | "-Infinity" | ||
eric256 | ahh | ||
eric256 whistles while he compiles | 23:01 | ||
?check | 23:03 | ||
svnbot6 | r7621 | eric256++ | Fixed support for pretty printing for -Inf and Rat (though the Rat may not be the *right* way to do it. | ||
eric256 | woot. haskell hacking carreer is underway...even if i'm all alone and babbling to myself.... | 23:04 | |
later | |||
luqui | later :-) | ||
?eval (-Inf).perl | 23:17 | ||
evalbot_7621 | "-Inf" | ||
luqui | hooray | ||
eric256++ | |||
Juerd | I'm not sure how to interpret "Do you know more people like this?" in [email@hidden.address] | 23:28 | |
It's almost as if he hasn't noticed the lots of people doing lots of things. | 23:29 | ||
coral | ?eval (Inf).perl; | 23:40 | |
evalbot_7621 | "Inf" | ||
coral | ?eval (-Inf).perl; | ||
evalbot_7621 | "-Inf" | ||
eric256 | :) /me can't help but smile | ||
mrborisguy | good work, eric256 | 23:45 | |
eric256 | thanks. just thrilled to understand any haskell at all ;) off to dinner | 23:47 | |
dolmen | ?eval (Inf+1).perl | 23:52 | |
evalbot_7621 | "Inf" | ||
dolmen | ?eval (Inf-1).perl | ||
evalbot_7621 | "Inf" | ||
dolmen | ?eval (-Inf-1).perl | ||
evalbot_7621 | "-Inf" | ||
dolmen | ?eval (3/2).perl | ||
evalbot_7621 | "3/2" | ||
dolmen | ?eval (3/.00002).perl | ||
evalbot_7621 | "150000/1" | ||
dolmen | ?eval (150000/1).perl | 23:53 | |
evalbot_7621 | "150000/1" | ||
dolmen | ?eval (150000).perl | ||
evalbot_7621 | "150000" | ||
dolmen | ?eval 150000.perl | ||
evalbot_7621 | "150000" | ||
dolmen | ?eval 150000/1.perl | ||
evalbot_7621 | 150000.0 |