Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-02-18

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:07 awwaiid joined perl6
00:24 weinig|bbl is now known as weinig
00:27 [particle] joined perl6
00:38 mjk joined perl6
00:40 dduncan okay, I have committed what I promised, Juerd, so go ahead and tweak or develop it as you see fit
00:40 svnbot6 r15281 | Darren_Duncan++ | Acting as Juerd's proxy, added initial versions of ext/HTTP/ and ext/Web/ based on his p6u proposal emails of 20060917,21
00:42 dduncan hmm, so I guess that took me 2 whole hours, not 1, but whatever
00:44 CardinalNumber joined perl6
00:55 mako132 joined perl6
00:55 Aankhen`` No PUT or DELETE HTTP::Request objects allowed?
01:04 CardinalNumber is now known as ProperNoun
01:04 rashakil joined perl6
01:07 neonse left perl6
01:15 shachaf joined perl6
01:15 shachaf left perl6
01:17 justatheory joined perl6
01:25 Alchemist joined perl6
01:32 nperez joined perl6
01:33 dduncan if you're talking about what I uploaded, ask Juerd
01:33 rashakil left perl6
01:41 dduncan that said, I would expect that PUT and DELETE are allowed, since they are part of the HTTP standard
01:42 dduncan in fact, properties ascribed by some to "web 2.0" were actually part of "web 1.0" all along ... that you can edit web pages using the same HTTP client you view them with
01:42 dduncan that's why PUT and DELETE are there
01:53 jlamr joined perl6
01:54 sunnavy joined perl6
01:57 Aankh|Clone joined perl6
02:08 jlamr I can't follow the cpan entry for xml::simple does any body know of one written a bit less complex?
02:09 nperez joined perl6
02:19 sunnavy joined perl6
02:29 dduncan jlamr, this channel, #perl6 is for people making Perl 6, the next version of Perl ... if you have Perl 5 questions, I suggest you go to a different channel like #perl and ask there
02:30 jlamr left perl6
02:35 thorat joined perl6
02:41 iblechbot joined perl6
02:41 DebolazX joined perl6
02:41 weinig joined perl6
02:41 qmole joined perl6
02:47 Aankh|Clone joined perl6
02:48 sunnavy joined perl6
02:50 svnbot6 r15282 | lwall++ | more cogitations on linkage to main program and general language embeddibility
02:53 prism joined perl6
03:06 putter joined perl6
03:11 putter
03:18 TimToady hey putter
03:21 sunnavy joined perl6
03:26 awwaiid joined perl6
03:27 sunnavy joined perl6
03:30 weinig is now known as weinig|away
03:35 xwrn joined perl6
03:37 putter hi TT
03:44 Aankh|Clone is now known as Aankhen``
03:47 sunnavy joined perl6
04:20 mako132 joined perl6
04:23 stevan__ joined perl6
04:25 PerlJam we're a talkative bunch tonight :-)
04:30 putter After utterly wasting 1/2+ hour, putter is busy writing 1000 times one the blackboard "The Perl 5 regexp engine is not reentrant, and bizarre bugs occur when you forget that." :/
04:31 putter I dearly like (?{ }), but it can be a real pain.
04:32 Schwern joined perl6
04:32 PerlJam putter: and that's why we want perl6  ;)
04:33 putter The ironic thing is the obtaining reentrancy is the whole point of my current code.  So now is a particularly odd time to forget and get burned.
04:38 putter re want p6, ohh yeah.  Ruby/p6 is my current baseline for metaprogramming.  p5... makes me really want to use a bunch of Filter::Simple's.
04:39 audreyt putter: or you can use perl 5.9.x on cpan
04:39 audreyt which is reentrant
04:39 audreyt and bizarre bugs may not occur
04:40 audreyt that may be useful
04:44 PerlJam audreyt: hey, I heard you were sick.  Feeling better I hope?
04:44 audreyt marginally
04:44 audreyt getting another bloodcheck tomorrow; may be discharged from the hospital if all goes well
04:45 PerlJam As long as the margin is in your favor, that's all that matters :-)
04:45 audreyt hopefully :)
04:45 audreyt at least there's an explanation to my sudden-drowsiness in the past few months
04:45 putter hi audreyt :)
04:46 audreyt so hopefully things will get better from this point on
04:46 audreyt putter: heya :)
04:46 putter glad you are getting better
04:47 audreyt :) still pretty sick; attention span improved to ~30min
04:47 audreyt but it beats 15min by far :)
04:47 putter re 5.9.x... there's a thought.
04:48 putter indeed.  and the very many other potential downsides
04:48 putter am I solving the wrong problem?
04:50 putter with a reentrant p5 engine, one can trivially do rules on top of...  oh, I remember that zoo.  sigh.  well, not trivial, but perhaps easier/better than current path.
04:51 * putter greatly misses design discussions when working on pugs stuff
04:51 audreyt I think dmq also has named captures hacked in
04:52 PerlJam yep
04:52 putter hacked in to what?
04:52 audreyt so it may be easier to try targetting 5.9 and let dmq/p5p know which new OPs we will need for the regex engine, if any
04:52 putter oh, 5.9.x
04:52 audreyt to perl5.9
04:53 audreyt also we can selectively augment the existing re engine
04:53 audreyt because re::engine::* is now canonical as of 5.9
04:53 audreyt and the augmentation can exist in pure-perl land
04:53 PerlJam 5.10 is going to have such a better re engine than 5.8  :-)
04:53 putter :)
04:55 putter is all the 5.9.x stuff, and separately the re::override stuff, _really_ working?  ie, the full p5 re test suite passes, as do those of a bunch of re-intensive cpan modules?  it is so easy to do "sort of but not fully" in this domain.
04:56 audreyt well, full p5 re test passes
04:56 audreyt re::override is renamed re::engine
04:56 putter is re::engine also dmq?
04:56 audreyt currently http://search.cpan.org/dist/re-engine-PCRE/ is on CPAN
04:56 lambdabot Title: Yves / re-engine-PCRE - search.cpan.org
04:56 audreyt yes, also dmq
04:56 audreyt I did the early prototype
04:56 audreyt he picked it up and polished it a bit
04:56 audreyt but userland (p5-level) re engine is avar
04:57 audreyt http://simnet.is/boaesd/re-engine-Plugin-0.01.tar.gz # early prototype
04:57 audreyt was about to help getting it CPANized
04:57 audreyt but then went sick
04:57 putter ah
04:57 dduncan I'm seeing lots of reasons to want to move to 5.10 from 5.8
04:57 audreyt but reentrancy is really working
04:57 audreyt and is separate from this plugin engine thing
04:58 audreyt so at least on this regard, you should see your bug go away -- well recompiling 5.9.x is but 20min
04:58 putter one place to look for trouble in... split. s///.  p5 core was playing wacky latent segfault inducing games.
04:58 audreyt so why not give it a try :)
04:58 dduncan hmm, http://www.nntp.perl.org/group/ has been given an overhaul
04:58 lambdabot Title: perl.org lists - nntp.perl.org
04:59 PerlJam Didn't someone (dmq?) hack some speed improvements into the RE engine too?
04:59 audreyt I believe dmq traced the re-override experiment notes, and subsequently fixed core to work around them
04:59 audreyt yes, that's also dmq, with trie optimization
04:59 PerlJam yes, that's it.
04:59 dduncan that's quite useful, separating active from inactive lists
04:59 audreyt dduncan: indeed
04:59 dduncan now if only 5.10 would come out
05:00 dduncan afaik, its basically just waiting on getting some more CPAn modules integrated, and testing with many cpan modules
05:00 PerlJam Place your bets now!  Which will come out first?  5.10  or perl 6?  ;-)
05:00 audreyt 5.10 of course ;)
05:01 Debolaz joined perl6
05:02 PerlJam btw ... today I was wandering around the tech section at the local Borders bookstore and I noticed a decided absence of perl books.  I mean there were some, but very few.   Lots of books on ajax and ruby and mumble for dummies.
05:04 Debolaz PerlJam: That's the case in pretty much any technical book store I go to. They just don't sell much, so they don't keep more than a bare minimum.
05:04 svnbot6 r15283 | lwall++ | treat labels as lexically scoped pseudo type
05:04 CardinalNumber joined perl6
05:04 dduncan oh, and audreyt, sorry to hear about your illness ... mentioned a few times in backlogs
05:04 dduncan but I won't keep mentioning it after this
05:05 audreyt dduncan: no prob, I'm going to survive :)
05:05 dduncan great!
05:05 PerlJam It seems to me that perl needs some good press or something to reinvigorate the popular perception of perl.
05:05 allbery_b ......and only the very hottest memes :)
05:05 PerlJam (maybe a perl6 release and a couple of perl6 books would do it)
05:05 audreyt I'm much relieved in fact; what I thought of as a strange nonmotivation turns out to be simple illness
05:06 audreyt PerlJam: sure, llama6 and camel6 can fix that.
05:07 PerlJam some "valid hype" on par with what ruby-on-rails got wouldn't hurt either ;)
05:07 audreyt jifty-in-jails?
05:07 Debolaz PerlJam: As I've said before in this channel, I doubt perl 6 will become very hot.
05:08 * Debolaz is mr the-glass-is-half-empty
05:08 clkao audreyt!
05:08 leed joined perl6
05:08 dduncan earlier today, which some of you may have noticed in backlogging, Juerd was wanting to do HTTP related modules, but says that he needs some language features that aren't present yet to do what he wants ... for example, an "ordered hash" ... I think he was mainly concerned about this from the point of what the syntax would be
05:08 PerlJam Debolaz: perl6 already has some "hot" ideas.  IF perl6 doesn't make it big at least those memes will
05:09 dduncan I can't explain more than this, though
05:10 TimToady Debolaz: I don't want Perl 6 to become very hot.  Or very cold.  Call me Goldilocks...
05:10 offby1 ok, you're Goldilocks
05:10 audreyt hi TimToady :)
05:10 audreyt er sorry
05:10 audreyt hi Goldilocks :)
05:10 TimToady :) xx 2
05:10 PerlJam TimToady: good evening mister slow-and-steady  :)
05:11 TimToady I think I can I think I can I think I can...
05:11 * offby1 thanks TimToady falettin him be lazy, impatient, and hubristic
05:11 offby1 (although I think I already had those qualities)
05:12 * PerlJam fully expects to be programming in perl 50 years from now  (though my grandkids or great-grandkids will probably code rings around me)
05:12 audreyt but I thought there won't be a perl 50, even years from now...
05:12 PerlJam heh
05:13 TimToady "I don't know what language we'll be coding in, but it'll be called Perl".
05:13 audreyt clkao: hi :) how's the new year?
05:13 Debolaz PerlJam: Most people don't want some esoteric hot idea that doesn't actually decrease the amount of time it takes to develope a program or make the results look prettier though.
05:13 TimToady indeed 新年快樂
05:13 unobe joined perl6
05:14 audreyt :D
05:14 TimToady but Perl 6 does both of those
05:14 PerlJam Debolaz: Do you consider regular expressions esoteric?
05:14 Debolaz To give an example: I like closures. But they usually don't affect the time it takes to develope a program for a customer. Garbage collection on the other hand, saves me an enormous amount of development time.
05:15 clkao audreyt: so far alright
05:16 TimToady Debolaz: I think you might give closures more credit after programming more in a language that doesn't have 'em.  At least if you want to do any kind of callbacks...
05:17 TimToady but maybe your customers don't want to be called back...  :)
05:17 Debolaz TimToady: I'm not saying they're completely useless. I'm saying that they're an example of a feature that the majority of script programmers today don't care about.
05:17 TimToady but I think the main thing that Perl 6 will give you there is the ability to come up with a domain specific language that speeds up what you want to do for your customer
05:18 Debolaz Even though they do allow some quite advanced stuff.
05:18 Debolaz PerlJam: Not really no.
05:19 PerlJam Debolaz: they don't care about such things because they don't know of them.  But would you rather a language where you could only speak baby-talk or a language where you could speak baby-talk and then as you learn more your vocabulary could increase so that you can express yourself in many and varied ways?
05:21 Debolaz PerlJam: What I personally want is somewhat irrelevant though, we're talking about why perl don't sell books and why perl 6 won't change that.
05:22 allbery_b bookstores cater to ooh-shiny.
05:22 PerlJam But perl6 will change that!
05:22 PerlJam We're shifting away from what the language is (syntax, etc.) to what it enables.
05:23 PerlJam Why do you think ruby on rails has been so successful?
05:23 PerlJam There's nothing fundamentally new there
05:23 ProperNoun joined perl6
05:23 PerlJam But the language used to express the concepts is different.  Better.
05:25 * PerlJam just hopes TimToady has at least some intellectual progeny who can carry on in his capacity long after he's gone so that quip he said above can be true  :)
05:26 Debolaz RoR has been successfull because it gives you a simple way to create large web applications that at least perl and python didn't have any comparable frameworks for. Or put how I previously phrased it: It saves time.
05:26 TimToady well, the original was about Fortran...
05:27 PerlJam Debolaz: but perl and python *did* (and do) have comparable frameworks!
05:28 Debolaz PerlJam: Not in my experience. Are you refering to Mason? It wasn't that much better than PHP.. Or perhaps Zope - The overkill framework that only a few select could understand?
05:36 audreyt well, there's Jifty...
05:36 CardinalNumber joined perl6
05:37 audreyt imvvho it is better at saving time than RoR, but ymmv :)
05:37 audreyt also, Django.
05:37 Debolaz audreyt: I don't believe Jifty existed back in 2004 though. :)
05:38 allbery_b jifty came after RoR, no?
05:38 PerlJam Maypole did  :-)
05:38 audreyt yeah, before jifty there's only RT, and it's not really a framework :)
05:38 PerlJam I started playing with RoR earlier this week in fact and it reminded me quite a bit of Jifty
05:38 allbery_b django I'm not sure but the little I heard about it early on suggested most people thought it was either a toy or unsupported or both
05:38 allbery_b (moral:marketing?)
05:39 PerlJam only Jifty seems to be slightly smarter about some things.
05:39 audreyt probably marketing. cf: http://code.djangoproject.com/wiki/DjangoPoweredSites#Sites/featuresatTheWashingtonPost
05:39 lambdabot Title: DjangoPoweredSites#Sites/featuresatTheWashingtonPost - Django Code - Trac, http://tinyurl.com/rpagl
05:42 PerlJam In any case, perl6 needs some well written text that inspires and enlightens people to its wonders  :-)
05:42 PerlJam "Programming Perl 6" probably isn't going to cut it.
05:42 TimToady "Head First Perl 6"
05:43 Debolaz I haven't talked to many about this so I don't know how representative my experience is, but I felt that it was actually easier to go to ruby from perl 5 than perl 6 from perl 5, syntax wise.
05:43 TimToady "Learn Perl 6 in 24 years"
05:43 audreyt Debolaz: sure, since ruby is midway
05:43 TimToady that's not at all surprising
05:43 allbery_b sure; ruby stole a lot from perl5
05:43 allbery_b :)
05:44 TimToady 70% of ruby syntax is straight outa Perl
05:44 allbery_b well, excep for the stuff they stoll from smalltalk :)
05:44 allbery_b *stole
05:44 audreyt 70% of ruby semantics is straight outa smalltalk
05:44 Debolaz It isn't so much why that interests me, that ruby might be the place people will go when they want to move beyond perl 5, instead of perl 6 where they see syntax like $foo!bar.
05:45 * PerlJam remains glad that perl 6 is blazing a trail for others to follow  :)
05:45 allbery_b p6 has an image problem, I'm afraid
05:46 allbery_b (1) changed "too much" (2) "never going to be done"
05:46 PerlJam As long we still have humor like this in perl6:  http://xkcd.com/
05:46 lambdabot Title: xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe
05:46 PerlJam :-)
05:46 TimToady after we fix (2) the (1) will take care of itself
05:47 putter tired happy me.  need a p6 regexp grammar.  going to look at STD.
05:47 TimToady it's mostly done
05:47 putter actually, 1am.  punt and sync.
05:47 TimToady biggest thing left is to get away from the hashes describing quote sublanguages.
05:48 TimToady well, and actually making it work might take a little effort too. :)
05:48 PerlJam someone needs to pull an audrey on that.
05:48 * PerlJam volunteers pmichaud
05:48 TimToady he already knows he's on the hook for that
05:49 TimToady but he's this month's release manager for Parrot, so a little busy
05:51 Debolaz Perl 6 are built and carried on the shoulders geniouses like Wall, Tang, and many others whose name I honestly don't remember at 6:50am (no sleep). But are clever features enough to save it from going the way of the poodle or our primitive notions of modesty? I mean, in favour of ruby and python which are now both building up a momentum..
05:51 PerlJam "clever features"?
05:51 ProperNoun joined perl6
05:51 PerlJam that's about a big of an understatement as I've seen in a long time.
05:52 * Debolaz opens up a window.
05:52 Debolaz Sorry, it's hot in the room, brain is melting in addition to sleep deprevation. I don't mean to understate what perl 6 can do. :-)
06:00 Debolaz I think another thing is that ruby and python are very pretty languages to look at. Perl 5 and perl 6, not really so. Looking at an expression like $foo!bar, it strikes me as very unestetic.
06:00 svnbot6 r15284 | audreyt++ | * DrIFT.YAML: Add asYAMLmapBuf for the eventual VStr transition
06:00 svnbot6 r15284 | audreyt++ |   from String to ByteString.
06:05 TimToady and exactly how often do you use private variables from a different object?
06:06 TimToady I doubt you'll ever use that
06:06 CardinalNumber joined perl6
06:06 TimToady it's designed to look strange on purpose
06:08 svnbot6 r15285 | putter++ | yet_another_regex_engine - minor progress.  Now includes a few p6 tests.
06:08 svnbot6 r15285 | putter++ | Next major steps include importing a grammar for p6 regex, and implementing rules taking arguments.
06:09 putter s/rules/regex/g  sigh. ;)
06:11 PerlJam So ... who's going to write Perl6::Regex for perl5?    :-)
06:11 putter I hope to have a few more hours this weekend.  Perhaps get very basic p6 working.
06:11 Debolaz TimToady: But if I want to declare an attribute private, then I do have to refer to it as $!foo everywhere in the class, right?
06:11 putter PerlJam: perhaps that should be a directory/category, rather than a single package.
06:12 TimToady you can just call it $foo there
06:13 TimToady and in any case $! is just using ! as a twigil, whereas $foo!bar is something else
06:13 TimToady Perl 6 programmers will get to liking their twigils quite rapidly, I think.
06:13 TimToady they're basically filling the same role as sigils in ruby
06:13 BooK joined perl6
06:14 Debolaz TimToady: S12 says this "If you declare with the ! form, you must use that form consistently everywhere" which I interpret as $! is required for all access to it. And S12 also gives the impression that $!foo is the only way to declare an attribute private. So I have no choice but to use $! if I want private attributes.
06:14 PerlJam As long as there aren't too many of them.
06:14 Debolaz If I read S12 correctly that is.
06:14 drupek12167 joined perl6
06:16 putter s/Perhaps get very basic p6 working/Perhaps get very basic p6-dialect regex working/ ;)
06:17 czth_ joined perl6
06:17 TimToady you must be reading an old S12 somehow, because mine sure doesn't say that.
06:17 PerlJam Debolaz: I think you need to read the whole paragraph that talks about $!foo
06:17 PerlJam Debolaz: or what Larry said
06:18 Debolaz This version is dated 15 feb, 2007.
06:19 PerlJam Debolaz: are you reading http://dev.perl.org/perl6/doc/design/syn/S12.html  ?
06:19 lambdabot Title: Synopsis 12: Objects - perl6:
06:19 TimToady the first two paragraphs under Attributes explain that the ! is normally optional
06:20 allbery_b hm, the phrasing of that paragraph is a little unfortunate, I see where Debolaz got that interpretation
06:20 putter "quotesnabber" :) :)   src/perl6/Perl-6.0.0-STD.pm
06:21 TimToady well, the whole class declaration is the typical scope of a "has"
06:21 allbery_b (the ! form is being contrasted to the . form, but you have to read the whole paragraph t realize it's not being contrasted against the no-twigil form)
06:21 TimToady lexically speacking
06:26 TimToady yeah, it could be better written
06:27 TimToady putter: feel free to fix any obvious errors as you go
06:27 TimToady or @tell me things you notice that don't seem right
06:29 PerlJam TimToady: if /@foo/  matches as if we'd written / @foo[0] | @foo[1] | ... /,  is there a concise way to match as if we'd said  / @foo[0] || @foo[1] || ...  /   ?
06:29 Debolaz At best, it's a very confusing statement. I have talked to other people about this before and I know I'm not the only one who has read it like that.
06:30 Debolaz In fact, this is the very first time I've heard otherwise. :-)
06:30 TimToady PerlJam: not that I can think of offhand.
06:30 TimToady well, just don't get tunnel vision over a particular feature; it'll be the overall impression that either wins or loses, and by and large I think Perl 6 has a clean look to it.
06:31 TimToady at least compared to Perl 5.  :)
06:31 putter TimToady: will do.  likely start out as puzzled questions though :)
06:31 ProperNoun joined perl6
06:31 Debolaz TimToady: Another thing that has annoyed me is how spaces are more significant than in perl 5. I can no longer write foo (); :-/
06:32 PerlJam Debolaz: but you can write  foo\  .()
06:32 Debolaz That's of course minor and almost nobody does it like that so I don't predict that'll have a lot of impact.
06:32 Debolaz PerlJam: Which looks so beautiful.. :-)
06:33 TimToady the whitespace dependency is necessary to allow generalized postfix operators
06:33 Debolaz Yes, I am aware of that.
06:34 TimToady and you can still write foo ();  it just parses differently...
06:34 TimToady sorry, just being a little silly
06:35 * Debolaz picked up this bad habit from wanting consistency and not wanting to write if()
06:35 TimToady if is not a function
06:35 TimToady the bad habit is seeing consistency where there is none.  :)
06:35 Debolaz s/consistency/mental consistency/
06:36 TimToady anyway, people will learn to drop the parens on the if, and then it won't be a problem that way at least
06:36 offby1 I'm an old C programmer ... leaving out parens after an "if" makes me nervous ..
06:36 PerlJam perl6 has fewer parens (does that make it the anti-lisp as least in syntax?) but way more braces.
06:37 TimToady how does it have more braces?
06:37 PerlJam offby1: learn, adapt, overcome  ;-)
06:37 PerlJam TimToady: maybe it's just me but they seem to be everywhere in perl6 as compared with perl5
06:37 TimToady you mean more braces than Lisp?
06:37 offby1 what will make me feel better is a perl6 mode for emacs
06:38 lisppaste3 joined perl6
06:38 TimToady so write one!  :D
06:38 CardinalNumber joined perl6
06:39 PerlJam But only perl 6 can parse perl 6 ...  
06:39 PerlJam ;->
06:39 TimToady actually, there's lots of places Perl 5 used braces that perl 6 doesn't
06:39 Debolaz But I have to be honest, if ruby had anywhere near the documentation and usefull modules (Especially a good ORM) that perl 5 has, I probably would've jumped ship by now.
06:39 TimToady ${$x} => $($x)
06:39 TimToady \x{ffff} => \x[ffff]
06:41 allbery_b I've used ruby for a few things, but it has one unfortunate misfgeature
06:41 allbery_b it runs at liek 20% of perl5 speed
06:41 Debolaz allbery_b: That'll change with ruby 2.0.
06:41 tene how is that a feature at all, allbery_b?
06:41 allbery_b "misfeature"
06:41 Debolaz allbery_b: Ruby 2.0 is getting JIT afaik.
06:42 tene Isn't misfeature "Considered to be a feature by some, but is actually bad."?
06:42 allbery_b well, more like "not *really* a bug, but..."
06:43 tene Okay.
06:43 TimToady well, if ruby ends up with the fastest VM we'll just run Perl 6 on it.  :)
06:43 TimToady but I doubt JIT will help much without optional typing
06:44 TimToady and JIT is really hard on portability
06:44 putter (if ruby 1.9 was more stable, a p6 variant would *already* be running on it;)
06:44 TimToady but Parrot already has a JIT too...
06:45 PerlJam I sure hope perl6 doesn't obtain the dubious honor of being the language with the most non-useful implementations
06:45 putter lol
06:45 audreyt I thought that's intercal
06:46 putter hmm, that's an interesting question.  if anything which passes the test suite is "official p6", does the test suite include _performance_ specs?
06:46 audreyt you mean, like scheme's guaranteed tail recursion?
06:47 putter or x is within N x the speed of y
06:47 putter so design tradeoffs are maintained across impls
06:47 TimToady well, if it doesn't perform well enough they'll never finish running the tests...
06:47 PerlJam putter: as long as it's fast enough, that's all that matters
06:47 TimToady "we can run slower than ruby better than ruby can run slower than perl 5..."
06:47 putter simplicity++
06:47 allbery_b well, lambdabot speaks Umlambda and Brainf**k :)
06:48 PerlJam who knows ... maybe there will be enough ghc improvements that it will make pugs the implementation of choice  :-)
06:48 putter could well be
06:48 audreyt ghc improvements is already there :)
06:48 audreyt it's just pugs doesn't take advantage of them yet
06:48 audreyt (the current slowness is really mostly the artifact of the horribly slow [Char] type)
06:48 putter that (wizzy ghc pugs) would be very neat
06:49 putter but objects first :)
06:49 PerlJam audreyt: well ... aren't you in a hospital with nothing better to do than hack on pugs?  ;)
06:49 audreyt as my brain doesn't quite handle MO yet
06:49 TimToady you just have to do the Improvement monad
06:49 allbery_b how long before pugs requires 6.7 so it can use overloaded string literals?
06:49 audreyt I'm bytestringifying pugs instead
06:49 audreyt allbery_b: aha, you see, I have a commit here that uses overloaded string literals
06:49 audreyt trying to make it work with both 6.6 and 6.7 atm
06:49 audreyt but going to bench it first
06:50 audreyt also wondering if there's a proprocessor-oriented way so we can avoid 6.7
06:50 putter are continuations in or out at this point?
06:50 * putter crosses his fingers
06:50 TimToady in or out of what?
06:50 putter spec
06:50 putter can an official p6 not have continuations
06:51 TimToady it doesn't have to have fast continuations
06:51 PerlJam putter: perl isn't about closing doors  :)
06:51 putter lol
06:51 Debolaz Is it about revolving doors? :-)
06:52 TimToady revolutionary doors
06:52 mjk joined perl6
06:52 PerlJam doors with knobs in the center ala Tolkien  :)
06:52 allbery_b I thought I'd heard whispers of some TH-based way to wrap literals, but don't recall any piointers
06:52 TimToady but I think that doing backtracking into rules basically requires continuations.
06:53 TimToady given they're really methods
06:53 * putter tries to find ghc 6.7 info
06:53 putter ah, right.
06:53 audreyt allbery_b: some help in hunting it down would be nice
06:54 audreyt would prefer not upping the req for some time
06:54 allbery_b might try #haskell, sadly I'm recalling that someone mentioned such a thing and dons replied that sjanssen  (IIRC) had sent in a patch to 6.7 to overload literals instead, end of discussion
06:55 TimToady in fact I'm sure you've noticed I freely intermix methods with rules in STD
06:56 TimToady though I don't believe I've actually written an methods that require being backtracked into, given we're trying to do a predictive parser most of the time
06:57 TimToady assuming longest-token, I think there's only two spots that currently require a backtrack.
06:57 TimToady (other than || <panic> things)
06:57 CardinalNumber is now known as ProperNoun
06:58 * PerlJam is really going to have to get used to using || in regexs
06:59 allbery_b looks like it could be done with a compile-time (i.e. TH) transofrmation of a literal via unsafePackAddress
06:59 TimToady I find it's pretty easy to get used to.  Just put | until you know you want sequencing
07:00 TimToady the | would even work on a <panic>, since it's the shortest token
07:00 TimToady but the || is just good documentation there
07:00 putter "Just put | until you know you want sequencing"  <- nice sentence.  should be captured someplace.
07:01 audreyt allbery_b: I think what we want is just a simple proprocessor that inserts fromString instances
07:01 audreyt i.e. perform sjanssen's transformation on GHC 6.6. maybe.
07:03 allbery_b hm.  I'd kinda thing that would operate at runtime and therefore be slow, but I don't know this fromString (I see only pack)
07:04 audreyt yeah, it needs to be lifted out to toplevel. something like
07:04 audreyt f "foo" = "bar"
07:04 PerlJam TimToady: well, given the most salient feature of an @array is that it is ordered, don't you think it would make more sense for /@foo/ to match as / @foo[0] || @foo[1] || ... /   ?
07:04 audreyt becomes
07:04 audreyt f _foo = _bar
07:04 audreyt _foo = fromString "foo"
07:05 audreyt _bar = fromString "bar"
07:05 audreyt that ensures sharing
07:05 audreyt except it needs to be
07:05 audreyt f __foo__ | _foo = __foo__ = _bar
07:06 allbery_b you're definitely beyond my haskell capabilities.  this is a #haskell or maybe a haskell-cafe@ question
07:06 audreyt *nod*
07:06 audreyt well, if the bench is a clear win, I'll pursue it there
07:07 audreyt if not, going to punt until 6.8
07:07 TimToady PerlJam: it's a good argument
07:07 TimToady on the other hand, arguably when you have an array is precisely when you need it automatically reordered
07:08 TimToady but maybe <{ @array }> could do that
07:08 TimToady or the other
07:08 PerlJam I almost want a prefix form of | and || here.
07:08 PerlJam |@foo /
07:08 PerlJam but that means something different already doesn't it?
07:09 PerlJam gah   / |@foo /
07:09 TimToady we'd have to undo the implicit null ignored before first |
07:10 TimToady <{ any(@array) }> might reorder
07:10 TimToady for that matter / @array.any() / might be good enough
07:10 * allbery_b thinks, at 2am, he's losing coherency and should consider sleep.  gnite all
07:10 TimToady some of us never had coherency.  night!
07:12 TimToady but in general, I find I *don't* want to use arrays or hashes in the Perl grammar because they don't derive properly.
07:12 putter wave, collapse immanent.  g'night &
07:14 jisom joined perl6
07:15 CardinalNumber joined perl6
07:24 PerlJam well, it's now my bed time.  Good night all.
07:24 * PerlJam &
07:26 czth__ joined perl6
07:34 ProperNoun joined perl6
07:53 CardinalNumber joined perl6
07:56 CardinalNumber is now known as ProperNoun
08:01 westymatt left perl6
08:17 audreyt finally finished the ByteString port. let's see if it affects smoke time...
08:17 svnbot6 r15286 | audreyt++ | * Perl6::Perl5::Differences - Minor typo.
08:23 svnbot6 r15287 | audreyt++ | * More ~~:e fixes in ext/.
08:31 CardinalNumber joined perl6
08:35 svnbot6 r15288 | audreyt++ | * Pugs.AST.Utils: Beginning of VStr/String distinction that
08:35 svnbot6 r15288 | audreyt++ |   precedes ByteString-fication of Pugs source.
08:35 svnbot6 r15289 | audreyt++ | Pugs.DeepSeq: Add ByteString instance.
08:36 Juerd audreyt: Good to see you're better
08:37 audreyt terminally bored though.
08:38 Juerd Me too. Can't concentrate, and there's nothing that I want to do.
08:38 audreyt may I suggest nethack.
08:38 allbery_b lindley's dungeon crawl :)
08:38 Juerd You may, but it's just another thing that I don't feel like doing :)
08:39 * allbery_b paying for afternoon nap.  grrrh.  braindead but can't sleep
08:39 Juerd I've even considered tidying my room, so I must really be sick.
08:39 audreyt mm, that sounds severe
08:42 svnbot6 r15290 | audreyt++ | Pugs.Internals.Cast: Introduce the _cast form that makes
08:42 svnbot6 r15290 | audreyt++ | casting from strings easier.
08:47 drrho joined perl6
08:50 CardinalNumber is now known as ProperNoun
09:13 CardinalNumber joined perl6
09:15 larsen_ joined perl6
09:17 CardinalNumber joined perl6
09:20 xdg__ joined perl6
09:32 CardinalNumber is now known as ProperNoun
09:48 devogon joined perl6
09:48 elmex joined perl6
10:03 bernhard joined perl6
10:17 chris2 joined perl6
10:21 svnbot6 r15291 | audreyt++ | syck_st.c: Avoid a C-level warning. (backported from YAML::Syck)
10:33 dduncan left perl6
10:49 devogon joined perl6
10:51 devogon joined perl6
11:14 devogon joined perl6
11:18 neonse joined perl6
11:30 svnbot6 r15292 | audreyt++ | Config-Tiny: Remove the obsolete .TEST form in basic.t.
11:37 svnbot6 r15293 | audreyt++ | * misc_junctions.t: unTODO.
11:41 moritz audreyt: are you bored beeing ill? *g*
11:41 audreyt yeah :)
11:42 moritz good attitude ;)
11:43 audreyt :)
11:46 svnbot6 r15294 | audreyt++ | * constant.t: unTODO
11:46 moritz ?eval 1
11:46 evalbot_r15277 is now known as evalbot_r15293
11:46 evalbot_r15293 1
11:46 moritz hey, it's up to date
11:48 moritz nearly ;)
12:14 CardinalNumber joined perl6
12:23 TimToady joined perl6
12:35 CardinalNumber is now known as ProperNoun
12:42 explorer joined perl6
12:44 elmex joined perl6
13:01 buetow joined perl6
13:18 avar audreyt: I'm working some more on re::engine::Plugin:)
13:19 avar audreyt: and welcome back:)
13:24 audreyt :)
13:24 chris2 joined perl6
13:56 pbuetow joined perl6
14:12 CardinalNumber joined perl6
14:14 clkao 5  
14:31 sunnavy joined perl6
14:34 CardinalNumber is now known as ProperNoun
14:41 svnbot6 r15295 | audreyt++ | Pugs.Internals: More preparation for the IsString class in GHC 6.7.
14:44 rindolf joined perl6
14:44 rindolf Hi all.
14:46 moritz hi rindolf ;)
14:47 rindolf Hi moritz! Sup?
14:47 moritz rindolf: audreyt is back ;)
14:47 rindolf moritz: really? How does she feel?
14:47 rindolf Is she OK?
14:48 moritz rindolf: ask her, she did ~10 commits today ;)
14:48 moritz 12:41 < moritz> audreyt: are you bored beeing ill? *g*
14:48 moritz 12:41 < audreyt> yeah :)
14:49 moritz (time in GMT+1) ;)
14:49 audreyt rindolf: I'm ok. about to sleep.
14:49 audreyt not really fully back to action
14:49 audreyt in ~6hrs will get tested to see if I can be discharged
14:49 weinig|away is now known as weinig
14:49 audreyt from the hospital
14:49 rindolf audreyt: good medicine.
14:49 rindolf audreyt: sleep tight.
14:50 moritz and sleep fast ;-)
14:51 audreyt ok, so the preliminary bytestringified VStr/Pugs is faster, but only by 5%
14:51 audreyt of course that's with string operations untuned
14:51 audreyt but that means it's not the autoperfwin I looked for
14:52 audreyt so, consider that branch discarded
14:52 audreyt tomorrow I'll look at OO first :)
14:54 gaal why discard it? because it deps on 6.7?
14:54 audreyt aye.
14:54 audreyt in particular, depends on -foverloaded-strings
14:55 gaal checkinout maybe?
14:55 audreyt done.
14:55 audreyt (well, the "in" part.)
14:55 gaal 5% is kinda underwhelming.. I'm surprised :(
14:56 audreyt I suppose there's still redundant pack/unpack going on
14:56 audreyt memory use decreased as expected
14:56 audreyt but otherwise no, not a huge win.
14:56 gaal could it be around encodeUTF8 again? hmmm
14:56 svnbot6 r15296 | audreyt++ | * Convert VStr from String to ByteString, and Syn from
14:56 svnbot6 r15296 | audreyt++ |   String to ID, in Pugs.  Benchmark shows the perf gain is 5%,
14:56 svnbot6 r15296 | audreyt++ |   so it's not worth the trouble of writing a GHC 6.7-compatible
14:56 svnbot6 r15296 | audreyt++ |   processor.  The next commit will revert this commit.
14:56 gaal audreyt**
14:59 svnbot6 r15297 | audreyt++ | * Revert the previous patch; everything back to normal.
14:59 audreyt I should definitely sleep. :)
14:59 * audreyt waves &
15:00 rindolf audreyt: good nigth.
15:00 moritz sleep well
15:00 rindolf $audreyt.sleep("well")
15:00 gaal mooooose
15:05 weinig is now known as weinig|bbl
15:07 rindolf gaaaaaaaal
15:07 rindolf gääääääääääääl
15:07 rindolf rïïïïïïïïïïïïïïïïndolf
15:08 gaal huh. decodeUTF8 is buggy, I just realized. :(
15:08 gaal because it looks at 4k chunks of bytes, and can be unlucky in utf8 breaks.
15:08 rindolf Üñïçödé
15:08 moritz gaal: first write a test case that fails ;)
15:09 moritz gaal: just to reproduce it ;)
15:10 moritz 'a' x (2**12-1) ~ 'ä' should fail then...
15:10 gaal moritz: perl -le 'print (("A"x4065) . chr 99999'
15:10 Belaf joined perl6
15:10 gaal well, the source code should contain a unicode char on the chunk break
15:11 moritz gaal: that's why I choose 'ä' - of course it has to be unicode-encoded ;)
15:11 gaal yes, yes
15:11 Juerd unicode isn't an encoding ;)
15:11 gaal what I mean is that this has to come in the $nth byte in a source.
15:12 moritz Juerd: you're right, s/unicode/utf-8/
15:12 gaal ugh, no pugs. feather++
15:18 gaal ?eval 1
15:18 evalbot_r15293 is now known as evalbot_r15294
15:18 evalbot_r15294 1
15:27 gnuvince_ joined perl6
15:29 Schwern joined perl6
15:31 ruoso joined perl6
15:32 gaal hah, b0rk. vim gets very confused with U+10900
15:33 gaal (I wanted a really wide UTF-8 character, to make fudging for DOS lineendings easier.)
15:33 Limbic_Region joined perl6
15:40 rindolf gaal: what's up?
15:40 [M]erk joined perl6
15:44 * Limbic_Region just svn'd up and saw that almost every source file has been updated - has there been a flurry of activity or is something else afoot?
15:45 moritz Limbic_Region: I think audreyt changed something in the string representation...
15:45 moritz Limbic_Region: just look at the last svn log
15:45 gaal there has been some, yeah; also, there was a big commit+intentional revert
15:46 * avar pokes the regex engine some more
15:48 gaal ok problem reproduced.
15:48 gaal i think i know the fix, too; it's to change
15:49 gaal decodeUTF8' :: String -> String
15:49 gaal to decodeUTF8' :: String -> (String, String)
15:50 gaal so the caller can refeed the trailing end
15:50 gaal that probably breaks some optimizations or something, though :(
15:50 moritz well, correctness is more important than performance ;)
15:51 gaal true dat.
15:51 gaal but it also means we can't use concatMap, so I'm thinking on it some more
15:51 moritz or as Knuth would say "Premature optimization is the root of all evil" ;)
15:53 gaal yeah. we can disable chunking in the meanwhile on decodeUTF8, but nobody's reported any problems yet have they :-p
15:53 xdg__ is now known as xdg_
15:53 gaal (problem is this DOES affect performance)
15:53 gaal (significantly)
15:53 gaal anyway, something to think about in the ride home. moose! &
15:53 moritz gaal: well, you did ;)
15:54 moritz gaal: hf ;)
15:54 gaal ty
15:54 PerlJam gaal: or you could arrange it such that chunks don't cross utf8 character boundaries  :)
15:55 rindolf gaal: bye
15:55 rindolf Hi PerlJam \
16:06 moritz hey, maybe we should offer a libjustdoit-backend: http://lists.debian.org/debian-devel/2005/04/msg00004.html ;)
16:06 lambdabot Title: Bug 456789: ITP: libjustdoit -- Always does what you want
16:23 bonesss joined perl6
16:32 bernhard joined perl6
16:33 gaal remoose
16:33 gaal PerlJam: how do you do that?
16:34 gaal UTF-8 is varaiable-length, and figuring out where the boundaries are is as expensive as decoding :)
16:36 gaal what I was proposing was returning a tuple (decoded, trailing_moose_to_prepend_to_next_chunk)
16:36 gaal but I fear that may break fusion
16:37 explorer joined perl6
16:39 PerlJam I don't have any good ideas
16:41 PerlJam Would something like  (four4kbytefoo, byte1, byte2, byte3, byte4, rest) help in locating the boundary?
16:42 gaal this is what, the output of the (chunked) decodeUTF8' ?
16:42 gaal src/Pugs/Internals/String.hs:60
16:42 gaal oope 50
16:43 gaal oops oops
16:44 xdg_ joined perl6
16:48 xdg_ is now known as xdg
17:00 iblechbot joined perl6
17:05 svnbot6 r15298 | gaal++ | * factor out makefile rules for DrIFTing
17:10 JimmyZ joined perl6
17:17 svnbot6 r15299 | gaal++ | * add diagnostic comment about too-old snapshot GHCs
17:21 stevan_ joined perl6
17:22 stevan_ joined perl6
17:28 bonesss joined perl6
17:34 drupek12167 joined perl6
17:35 xerox joined perl6
17:48 shillo joined perl6
17:48 shillo joined perl6
18:18 nipra joined perl6
18:30 svnbot6 r15300 | gaal++ | * add test to demonstrate decodeUTF8 breakage. I don't have a way to
18:30 svnbot6 r15300 | gaal++ |   benchmark fixes competing with:
18:30 svnbot6 r15300 | gaal++ |     decodeUTF8 = decodeUTF8'
18:30 svnbot6 r15301 | lwall++ | build noun phrase, interleaving prefix and postfix according to precedence
18:30 svnbot6 r15302 | lwall++ | whoops, forgot precedence is now method rather than hash lookup
18:36 rhr re: decodeUTF8: in principle, you only have to examine at most the last 3 bytes in the buffer to see if a code ran over
18:37 rhr if the last byte begins with 01xxxxxx, scan back to find a byte begining 1xxxxxxx and count leading 1s to see how long the char is
18:38 offby1 here's a really dumb one: what svn repository is svnbot6 reporting on?
18:39 moritz offby1: http://svn.pugscode.org/pugs/ afaict
18:39 lambdabot Title: Revision 15302: /
18:39 * offby1 nods
18:50 avar audreyt: re::engine::Plugin is going to CPAN now, it's still incomplete but what's there works
18:57 bonesss joined perl6
18:58 avar once I get match vars working it'll be pretty easy to make Pugs::Compiler::Rule use the built-in syntax:)
18:58 marmic joined perl6
19:19 rindolf joined perl6
19:19 rindolf Hi all.
19:29 amnesiac joined perl6
19:33 svnbot6 r15303 | putter++ | Perl-6.0.0-STD.pm - Added missing regex_quantifier :<?>.
19:38 jisom joined perl6
19:39 jisom left perl6
19:39 jisom joined perl6
19:42 svnbot6 r15304 | putter++ | Perl-6.0.0-STD.pm - Add a commit to avoid backtracked metachars succeeding as non-metachars.
19:50 shachaf joined perl6
19:50 shachaf left perl6
19:52 upd_ joined perl6
19:56 ludan joined perl6
20:09 gaal rhr: point. wanna work it? better take somewhere between maxchunksize-maxutfwidth to maxchunksize, not the other way around
20:09 gaal i'm too sleepy to do it now
20:10 rindolf Hi gaal
20:10 gaal hello rindolf
20:11 rindolf gaal: what's up? Still working on that Unicode bug?
20:11 gaal rhr: utf8 is up to four bytes
20:11 rhr I don't know any haskell :(
20:11 gaal rindolf: going to sleep now actually
20:11 gaal rhr: this is a good place to start! :)
20:11 rindolf gaal: good night.
20:12 rhr right, but (assuming valud utf8) a 4-byte code 4 bytes back needn't be moved
20:12 gaal true
20:12 gaal src/Pugs/Internals/String.hs, around line 50
20:13 gaal anyway, good night
20:13 gaal zzZ&
20:13 rhr the logic you want is if($buf[-3]&0xF0 == 0xF)) { move 3 bytes }
20:13 rhr if($buf[-2]&0xE0 == 0xE0)) { move 2 bytes }
20:13 rindolf rhr: do you have a Pugs commit bit?
20:13 rhr if($buf[-1]&0xC0 )) { move last byte }
20:14 rhr (modulo syntax errors)
20:14 rhr no, I don't
20:14 ajs_home joined perl6
20:16 Schwern joined perl6
20:21 svnbot6 r15305 | putter++ | Perl-6.0.0-STD.pm - Revert r15304.  The commit is implicit in a rule.
20:24 devogon joined perl6
20:29 avar http://search.cpan.org/~avar/re-engine-Plugin-0.01/Plugin.pod # mmmm ...
20:29 avar somebody think of a better usage example:)
20:29 avar Acme:: like even:)
20:29 [particle] joined perl6
20:34 Ziggy6 joined perl6
20:42 awwaiid_ joined perl6
20:52 offby1 my @a = ("dog", "god") ;  "god" ~~ @a      yields False, but I expected True.  Am I misunderstanding something?
20:53 [M]erk joined perl6
20:54 allbery_b ?eval my @a = <dog god>; @a ~~ 'god'
20:54 evalbot_r15294 is now known as evalbot_r15305
20:54 evalbot_r15305 Bool::False
20:55 allbery_b ?eval my @a = <dog god>; any(@a) ~~ 'god'
20:55 evalbot_r15305 (Bool::False | Bool::True)
20:55 offby1 ?eval my @a = ("dog", "god") ;  "god" ~~ @a
20:55 evalbot_r15305 Bool::False
20:55 offby1 ?eval my @a = ("dog", "god") ;  "god" ~~ (@a)
20:55 evalbot_r15305 Bool::False
20:55 * allbery_b kinda expected comparisons against arrays to auto-any() as well; dunno
20:55 offby1 ?eval my @a = ("dog", "god") ;  "god" ~~ any (@a)
20:55 evalbot_r15305 (Bool::False | Bool::True)
20:56 offby1 huh
20:56 offby1 ?eval my @a = ("dog", "god") ;  "god" ~~ any @a
20:56 evalbot_r15305 (Bool::False | Bool::True)
20:56 offby1 ?eval my @a = ("dog", "god") ;  "god" eq any @a
20:56 evalbot_r15305 (Bool::False | Bool::True)
20:57 allbery_b hm, nope, string match causes @a to stringify.  oh well
20:57 allbery_b (looking at S03/Smart matching
20:57 justatheory joined perl6
20:57 allbery_b )
20:57 allbery_b I'm not sure how/where the junction gets cleaned up
20:57 offby1 how about this?
20:57 offby1 ?eval my %d; %d{3}.push("fred"); %d{3}.push("ethel"); say %d.perl; "fred" ~~ any %d{3}
20:58 evalbot_r15305 OUTPUT[{("3" => ["fred", "ethel"]),}␤] (Bool::False)
20:58 offby1 I'd have expected true
20:58 allbery_b ?eval my @a = <dog god>; if (any(@a) ~~ 'god') {1} else {0}
20:58 evalbot_r15305 1
20:59 allbery_b ?eval my %d; %d{3}.push("fred"); %d{3}.push("ethel"); say %d{3}
20:59 evalbot_r15305 OUTPUT[fred ethel␤] Bool::True
20:59 offby1 I wonder if I'm mixing up lists and arrays ... never did understand the difference
20:59 allbery_b again, it stringifies
21:00 offby1 I guess I don't understand what "it stringifies" means.
21:00 allbery_b hm, guess I don't know that in your case
21:00 offby1 how do I simply get it to tell me if any element of the list is "fred"?
21:00 allbery_b but the smartmatch rule for string ~~ something is string eq ~something (that is, convert something to its strng representation and compare for equalify)
21:01 allbery_b not sure about yours
21:01 offby1 I suspect I don't even need "smartmatch"; I'd have thought "any" would suffice.
21:01 offby1 ?eval "fred" eq any ["fred", "ethel"]
21:02 evalbot_r15305 (Bool::False)
21:02 offby1 I think _that's_ my problem.
21:02 allbery_b ?eval my %d; %d{3}.push("fred"); %d{3}.push("ethel"); say any %d{3}
21:02 evalbot_r15305 OUTPUT[any(VRef <Array:0xb7bd13d0>)␤] Bool::True
21:02 allbery_b huh.  thought p6 was smarter about that
21:02 allbery_b ?eval my %d; %d{3}.push("fred"); %d{3}.push("ethel"); say any @(%d{3})
21:02 evalbot_r15305 OUTPUT[any(VStr "ethel",VStr "fred")␤] Bool::True
21:03 allbery_b ?eval my %d; %d{3}.push("fred"); %d{3}.push("ethel"); "fred" ~~ any @(%d{3})
21:03 evalbot_r15305 (Bool::False | Bool::True)
21:03 offby1 hmm
21:03 offby1 ah
21:03 offby1 I was trying @{%d{3}}, like in perl5
21:03 allbery_b yeh, syntax changed
21:09 thorat joined perl6
21:13 nipra joined perl6
21:22 Aankhen`` joined perl6
21:37 justatheory_ joined perl6
21:50 theorbtwo joined perl6
21:54 thorat left perl6
22:09 sunnavy joined perl6
22:19 dduncan joined perl6
22:21 audreyt rhr: thanks for the algorithm; implemented
22:24 rhr audreyt: cool.  btw, that last one should have been if($buf[-1]&0xc0 == 0xc0)
22:24 rhr I'm pretty sure that covers all the cases
22:25 audreyt nod
22:26 PerlJam rhr++
22:26 ludan joined perl6
22:27 Psyche^ joined perl6
22:29 dduncan seen Juerd
22:29 jabbot dduncan: Juerd was seen 7 hours 18 minutes 13 seconds ago
22:36 charsbar joined perl6
22:36 svnbot6 r15306 | audreyt++ | * Pugs.Internals.String: Improve our chunking algorithm,
22:36 svnbot6 r15306 | audreyt++ |   prompted by gaal++ and rhr++, to properly decode UTF-8
22:36 svnbot6 r15306 | audreyt++ |   strings that happens to have a character fall between
22:36 svnbot6 r15306 | audreyt++ |   two chunks.
22:36 svnbot6 r15306 | audreyt++ |   This makes gaal++'s r15300 test pass.
22:43 Psyche^ is now known as Patterner
22:43 amnesiac joined perl6
22:44 avar audreyt: moo:)
22:44 avar audreyt: I cpaned re::engine::Plugin :)
22:44 audreyt heya :) congrats on the cpan release
22:45 avar still not complete/useful
22:45 audreyt well you can do shellglobs already
22:45 audreyt (which does not capture)
22:46 audreyt hm, how come you're not in AUTHORS?
22:46 offby1 ?eval "fred" eq any @(["fred", "ethel"])
22:46 evalbot_r15305 (Bool::False | Bool::True)
22:46 offby1 ?eval "fred" eq any ["fred", "ethel"]
22:46 evalbot_r15305 (Bool::False)
22:46 offby1 why the difference?
22:47 audreyt offby1: because any is a listop; it takes a list or two elements in one instance
22:47 audreyt and a list of one element (of type Array) in another
22:47 audreyt this is a case of what we call, autoflattening of lists
22:47 offby1 :-|
22:47 audreyt i.e. @() when fed to a function expecting an indeterminable number of arguments
22:47 offby1 ?eval say ["fred", "ethel"].perl
22:47 audreyt (i.e. in "slurpy" or "list" context)
22:48 evalbot_r15305 OUTPUT[["fred", "ethel"]␤] Bool::True
22:48 offby1 ?eval say ("fred", "ethel").perl
22:48 evalbot_r15305 OUTPUT[("fred", "ethel")␤] Bool::True
22:48 audreyt they become separate arguments themselves
22:48 offby1 but [...] is just one argument, right?
22:48 audreyt it's one of perl's distinctive features
22:48 audreyt right.
22:48 audreyt or maybe misfeature, some of the time.
22:48 offby1 and yet ...
22:48 audreyt but in perl6 we're using it to distinguish lazy and eager evaluation
22:48 offby1 ?eval say (1, 2, 3).yaml
22:49 evalbot_r15305 OUTPUT[--- ␤- 1␤- 2␤- 3␤␤] Bool::True
22:49 offby1 ?eval say [1, 2, 3].yaml
22:49 evalbot_r15305 OUTPUT[--- ␤- 1␤- 2␤- 3␤␤] Bool::True
22:49 audreyt well, because as an object you invoke things with
22:49 offby1 same output.
22:49 audreyt the number of expected element is always one
22:49 audreyt this is called item context, or scalar context
22:49 offby1 so the (1, 2, 3) gets transformed into [1, 2, 3] automagically?
22:50 audreyt well, sort of.
22:50 audreyt (1,2,3) remains as one single List object.
22:50 offby1 what's the best thing to read that will clarify all this for me?
22:51 audreyt good question.
22:51 offby1 :-(
22:51 audreyt what is a good document to explain contexts in perl5?
22:51 offby1 beats me
22:51 offby1 Camel BOok.
22:52 audreyt it's really the same as perl5
22:53 audreyt except that comma under scalar context constructs a single List object
22:53 audreyt instead of discarding everything up until the last expression in it
22:53 audreyt but I need to get some more sleep :)
22:53 audreyt bbiab... &
22:53 offby1 nice to know audreyt is still running in the background
22:53 offby1 fg %audreyt
22:54 audreyt rehi
22:54 offby1 ^Z
22:54 offby1 bg
22:54 offby1 renice +10 %audreyt
22:54 audreyt [1]+  Stopped
22:54 audreyt &
22:55 offby1 kill -SNOOZE %1
22:57 jisom pugs people are weird.....
22:58 Juerd bg
22:58 Juerd My favourite tool of the day:  perl -C2 -MFont::TTF::Font -le'print "=== $_ ===\n", map {chr $_ } sort {$a <=> $b} keys %{ Font::TTF::Font->open($_)->{cmap}->read->find_ms->{val} }  for @ARGV' *
22:59 offby1 lists all installed TrueType fonts?
23:00 offby1 sorted by size?
23:00 Juerd offby1: No, all codepoints supported by fonts
23:00 offby1 huh
23:00 Juerd Per font it outputs a list like
23:00 Juerd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿıŁłŒœŠšŸŽžƒˆˇˉ˘˙˚˛˜˝μ–—‘’‚“”„†‡•…‰‹›⁄€™−∕∙fifl
23:00 offby1 ah
23:00 offby1 you could find the font that supports the most codepoints, then.
23:01 jisom as long as they weren't stubs
23:01 Juerd Well, that's easier done by ftdump | grep "number of"
23:01 moritz Juerd: but it's not that cool ;)
23:01 Juerd jisom: Most fonts don't have stubs. Code point "0" is used for unknown characters. Usually, it's a square.
23:02 wolverian "Finds the a Unicode table, giving preference to the Microsoft one, ..." heh, what?
23:02 Juerd For comparison, DejaVu Sans Mono supports a huge list of glyphs
23:02 Juerd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖÅ
23:02 Juerd ЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџҐґҒғҔҕҘҙҚқҢңҪҫҬҭҮүҲҳҺһӀӁӂӃӄӇӈӋӌӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹᴂᴈᴉᴔᴖᴗᴝᴞᴟᵃᵄᵅᵆᵇᵈᵉᵊᵋᵌᵍᵎᵏᵐᵑᵒᵓᵔᵕᵖᵗᵘᵙᵚᵛᵷᵻᶅᶛᶜᶝᶞᶟᶠᶡᶢᶣᶤᶥᶦᶧᶨᶩᶪᶫᶬᶭá¶
23:02 Juerd ₁₂₃₄₅₆₇₈₉₦€₴₵ℎ№™ΩKÅ⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅟∂∆∇∈∉∊∋∌∍∏∑−∕∗∘∙√∝∞∟∠∧∨∩∪∫∸∹∺∻∼∽≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊏⊐⊑⊒⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⋍
23:02 Juerd I think this is the hugest font on my system
23:03 czth__ juerd: i find your ideas intriguing and wish to subscribe to your alien newsletter
23:03 jisom too much binary data, quit trying to hack into my computer!
23:03 Juerd wolverian: Yeah, never really understood that. But the other one doesn't work as well :)
23:03 Juerd czth__: Haha
23:03 Juerd jisom: One hacks *on* a computer, not *into* one.
23:03 jisom depends, do you own it?
23:04 avar Juerd: highly awesome
23:04 Juerd How is that relevant?
23:04 wolverian can it take the weight?
23:04 Juerd avar: DejaVu rocks.
23:04 czth__ Juerd: not according to the authoritative documentary "Hackers" [Softley, 1995]
23:04 jisom if you own it, say forgot the password to root and you made it physically secure....you might need to hack into it
23:05 Juerd czth__: You should watch Freedom Downtime.
23:05 avar for i in $(locate .ttf); do perl -COA -MFont::TTF::Font -le'print "=== $_ ===\n", map {chr $_ } sort {$a <=> $b} keys %{ Font::TTF::Font->open($_)->{cmap}->read->find_ms->{val} }  for @ARGV' $i; done
23:05 Juerd juerd@lanova:~$ locate .ttf | wc -l
23:05 Juerd 22770
23:05 Juerd Let's not.
23:06 Juerd jisom: No, you just need to re-install and restore you latest backup.
23:06 Juerd s/you/your/
23:06 jisom backup?
23:07 wolverian that's a _lot_ of fonts you have there
23:08 Juerd wolverian: I have a few more, but not on this system
23:08 Juerd I will probably never have the tuits for it, but I want to write an archive system for them all.
23:09 Juerd And then tag them (programatically)
23:10 Juerd And record the characters supported by each of the fonts, so that I can paste some blob of text, and know which fonts could be used to render it.
23:10 czth__ is now known as czth
23:11 * Juerd now just has a lot of fonts. An archive in which it's impossible to find what you are looking for, unless you already know the name.
23:11 jisom and then merge fonts together that supports all codepoints.......one font to rule them all
23:11 Juerd No, you can't do that.
23:12 jisom not legally maybe.....
23:12 Juerd As if all these fonts are installed legally... ):
23:12 Juerd That's unaffordable.
23:12 jisom well, can probably legally make the tool, just not distribute the resulting font...
23:12 Juerd It's an aesthetic crime to merge unrelated fonts :)
23:13 Juerd Note, by the way: whenever I use a font for professional work, I do buy licenses.
23:13 jisom like the font for japanese and the font for russian, along with mayan?
23:13 Juerd I just find it impossible to properly evaluate fonts using online web shops. I need to see them in action, used in the right context.
23:13 Juerd Quick brown foxes don't help.
23:15 PerlJam slow grey foxes?
23:15 PerlJam :-)
23:16 Juerd And it's really surprising that Linotype, which sells a lot of fonts, often supports many glyphs fewer than the original font!
23:18 Juerd Eurostile has 399, Eurostile LT has 246
23:18 Juerd But I need to use the LT one, because the original doesn't have the € :(
23:19 Juerd former:
23:20 Juerd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĂ㥹ĆćČčĎďĐđĘęĚěĞğİıĹ弾ĿŀŁłŃńŇňŐőŒœŔŕŘřŚśŞşŠšŢţŤťŮůŰűŸŹźŻżŽžƒʺˆˇˉ˘˙˚˛˜ΓΘΣΦΩαδεπστφ–—‗
23:20 Juerd latter:
23:20 Juerd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿıŁłŒœŠšŸŽžƒˆˇˉ˘˙˚˛˜˝;ΔΩμπ–—‘’‚“”„†‡•…‰‹›€™∂∏∑−∕∙√∞∫≈≠≤≥◊fifl
23:21 Juerd They depend on combining characters...
23:22 moritz Juerd: it's hard to follow you with a non-unicode terminal ;)
23:22 PerlJam moritz: welcome to the 21st century  :-)
23:22 Limbic_Region joined perl6
23:24 moritz PerlJam: well, the irssi in Debian Stable isn't the newest ;)
23:24 Juerd moritz: ñ€äţ - ẃè ¢âń ĥïđê ţĥïñģş ƒřöm ýøŭ ☺☻
23:25 Juerd Hidden in plain sight.
23:25 Juerd moritz: Doesn't matter. Irssi has supported UTF-8 for a very long time. The version in Debian Stable does too.
23:26 moritz then it could really be the terminal
23:26 Juerd It's not that non-English language users have avoided Debian Stable all this time :)
23:26 Juerd What's your terminal?
23:27 moritz xterm
23:27 Juerd Use uxterm :)
23:27 beppu try uxterm
23:27 moritz installing...
23:27 avar or just use xterm, I see such characters perfectly on an xterm on debian stable
23:27 Juerd You should use an (existing!) UTF8 locale, a UTF8 supporting terminal (note that screen(1) is also a terminal, run with screen -U), and UTF8 supporting programs.
23:28 avar Juerd: No, don't use -U, the best way is simply to run it with a different locale, everything will just work
23:28 moritz there's no uxterm in debians repositories, so xterm will have to do
23:29 Juerd avar: Not always. I don't know why.
23:29 Juerd moritz: It's in the xterm package.
23:29 avar Juerd: Yes always, you were doing something wrong!:)
23:30 avar moritz: stop listening to Juerd >:)
23:30 moritz_utf8 joined perl6
23:30 moritz_utf8 just a try ;)
23:31 Juerd avar: Typo in the locale.
23:32 Juerd avar: I hate it that things don't complain when you use a locale that doesn't exist
23:34 allbery_b מה זה? :)
23:35 avar eek
23:35 allbery_b ?
23:35 Juerd There, feather's sshd now accepts the locale env vars from the connecting host.
23:36 Juerd (Which partly sucks, for me, because I want English stuff on feather, but Dutch stuff locally. But I can address that in my .bashrc later.)
23:36 Juerd moritz: ▲►▼◄◊○◘◙☺☻☼♀♂♠♣♥♦♪♫
23:36 Juerd moritz: Does it work? :)
23:36 moritz_utf8 Juerd: no
23:36 wolverian Juerd, thanks, that's nice.
23:37 Juerd Might be your font
23:37 Juerd moritz_utf8: éëẽē
23:37 moritz which env variables do I have to change?
23:37 Juerd wolverian: Why is it nice?
23:37 Juerd moritz: LANG
23:37 wolverian Juerd, I like having the same local everywhere, automatically.
23:37 wolverian locale.
23:37 Juerd moritz: have a look in /etc/locale.gen for valid UTF-8 locales on your box
23:37 Juerd wolverian: You should have asked for it then :)
23:38 Juerd (or put it in your user config)
23:38 moritz_utf8_2 joined perl6
23:38 Juerd 00:37 < Juerd> moritz_utf8: éëẽē
23:38 Juerd 00:36 < Juerd> moritz: ▲►▼◄◊○◘◙☺☻☼♀♂♠♣♥♦♪♫
23:38 moritz_utf8_2 now with LANG=UTF8
23:38 moritz_utf8_2 nope
23:38 Juerd Who said LANG=UTF8?
23:39 moritz_utf8_2 nobody ;)
23:39 Patterner after the two musical symbols I see three squares
23:39 Juerd moritz: Don't guess syntax!
23:39 Juerd (or values)
23:39 Patterner Juerd: what are the last three symbols?
23:39 Juerd Patterner: I have no idea.
23:39 Juerd I see boxes too
23:39 Patterner Oh.
23:39 moritz_utf8_2 Juerd: ok, so where is it documented?
23:39 Juerd 00:37 < Juerd> moritz: have a look in /etc/locale.gen for valid UTF-8 locales on your box
23:40 Juerd If there are none, add, for example: en_US.UTF-8
23:40 Juerd Then run update-locales
23:40 Juerd Then set LANG to en_US.UTF-8
23:40 moritz_utf8_2 ok
23:40 Patterner How do you enter unicode?
23:40 Juerd Patterner: In this case, by copying and pasting.
23:40 Juerd Patterner: Normally, by using the multi key.
23:41 Juerd Pain attack; afk
23:41 moritz_utf8_3 joined perl6
23:41 moritz_utf8_3 next try...
23:41 allbery_b ▲►▼◄◊○◘◙☺☻☼♀♂♠♣♥♦♪♫
23:41 allbery_b hm
23:42 allbery_b my client is fakingthe ligatures, this has unfortunate results with c&p
23:45 [M]erk I don't understand what a Seq is. Is it already evaluated code or something?
23:46 CardinalNumber joined perl6
23:50 [M]erk Nor do I understand what a Range is.
23:51 audreyt [M]erk: a Seq is an ImmutableFixedSizedArray
23:51 audreyt a Range is two values of the same, ordered type.
23:52 audreyt and yes, values in Seq are eager.
23:52 audreyt as in, they must be fully reduced
23:52 Patterner ⌥
23:53 Patterner that is U+2325 (in case you wonder :)
23:55 audreyt [M]erk: in R6RS speak, a Seq is called "immutable vector"
23:55 audreyt i.e. you can't call vector-set! on them.
23:55 [M]erk And a Range is a Haskell Pair?
23:55 audreyt well, it's a specialized Pair
23:56 audreyt where both ends are of the same type that derived Ord
23:56 audreyt to be used like
23:56 audreyt $x ~~ 1..10000
23:56 audreyt which actually just tests
23:56 audreyt 1 <= $x <= 10000
23:56 audreyt instead of malloc'ing 10000 elements of some kind
23:57 [M]erk Ah.
23:57 [M]erk Thanks.
23:57 audreyt np :)
23:58 audreyt in GHC, a Seq is represented as
23:58 audreyt [: Object :]
23:58 audreyt or rather, [:Val:]
23:58 audreyt where the [::] notation is that of parallel strict arrays
23:58 audreyt instead of the normal [] list, which is cons-chained
23:59 audreyt as an additional benefit, operations on parallel arrays could be automatically parallelized (with SMP, GPU, SSE, or some mix of them)
23:59 audreyt can't do that with cons-chained lists.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo