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