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