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:01 forsaken joined, jisom left 00:02 jisom joined 00:09 Lorn joined, shay_ joined 00:13 Psyche^ joined 00:17 Psyche^ is now known as Patterner 00:23 macli left 00:28 shay joined 00:30 Aankhen`` joined
specbot6 r14325 | larry++ | As noted by allbery_b++, Smylers++, and david.green++, we've thoroughly 00:41
r14325 | larry++ | neglected to thoroughly spec the intended version sharing and emulation model.
allbery_b okay, I've got that update at least :) saving it as I should at least try to pretend to be a good little almost-jew, even if $job doesn't allow me to do so :/ 01:12
01:17 Psyche^ joined 01:19 IllvilJa joined 01:29 Psyche^ is now known as Patterner 01:32 gomoku joined 01:33 Psyche^ joined 01:42 dec joined 01:47 Psyche^ is now known as Patterner 02:00 mako132_ joined 02:15 ajs_ joined 02:20 dmq joined 03:07 mako132_ joined 03:39 rashakil left 03:50 gomoku joined 03:54 SamB joined, charsbar joined, cls_bsd_ joined, gaal joined, qmole_ joined, statico joined, aukjan|gone joined, Gothmog__ joined, Maddingue joined, specbot6 joined, cookys joined, silug joined, takesako__ joined, kolibrie joined, spo0nman joined, stef_ joined, mugwump joined, Odin- joined, jamessan joined, nnunley joined
offby1 gaah. Host svn.pugscode.org not found: 2(SERVFAIL) 04:02
anyone have the IP address of svn.pugscode.org handy?
TimToady 194.145.200.126 04:03
offby1 thanks
04:08 SamB joined, charsbar joined, cls_bsd_ joined, gaal joined, qmole_ joined, statico joined, aukjan|gone joined, Gothmog__ joined, Maddingue joined, specbot6 joined, cookys joined, silug joined, takesako__ joined, kolibrie joined, spo0nman joined, stef_ joined, mugwump joined, Odin- joined, jamessan joined, nnunley joined, mako132_ joined 04:10 Psyche^ joined 04:12 ayrnieu joined 04:13 gomoku is now known as ShoyuRamen 04:16 Psyche^ is now known as Patterner 04:23 ShoyuRamen left 04:27 silug joined 04:28 justatheory joined 04:57 nekokak_ joined 05:01 drupek12 joined 05:17 DebolazX joined
meppl guten morgen 05:57
offby1 guten stanley 06:00
meppl good morning offby 06:01
offby1 yawns, stretches, and scratches his ear with his hind leg
06:14 BooK joined
gaal something really weird is happening inside this IO monad. I refactored the code a little to do the getCPUTime measurements in another function, but now the values don't seem to be sequenced! 06:42
do { v1 <- getCPUTime; results <- dispatch_on_sample ; v2 <- getCPUTime ; ??? } 06:43
at ??? there's a print that happens before dispatch_on_sample completes. v1 and v2 are equal.
getCPUDuration :: IO a -> IO (a, Integer)
TimToady this is #perl6. I don't know what makes you think you'll get Haskell help here. :) 06:45
gaal huh? I'm doing this inside eval $str :lang<haskell> :-p 06:46
TimToady oh, well that's okay then...
06:49 drupek12 joined
audreyt greetings \camels 07:20
gaal: laziness perhaps?
gaal but how? the two queries are in one bind sequence... 07:34
(and, hi)
audreyt if you do two readFile on two files
it still doesn't guarantee the sequence 07:35
gaal oh, so I have to force dispatch_on_sample up there?
audreyt v1 <- getCPUTime; results <- seq v1 dispatch_on_sample
v2 <- getCPUTime 07:36
gaal nod
audreyt return (seq results (results, v2 - v1))
something like that
TimToady morning audreyt
audreyt greetings TimToady
TimToady how'd it go a gooooogle
audreyt well the talk went fabulously
TimToady did they like it? 07:37
audreyt sure
back in the MS talk I changed 10**10**10 to 9**9**9
because it formats better
TimToady did they ask any good questions?
audreyt but I erroneously kept the slide and mentioned it's a googol
was promptly corrected
cuz they of all people should know :)
TimToady ya think? 07:38
audreyt re good questions... they have this internal language designed by Rob Pike
Sawmill
TimToady sides, a googol is only 10**10**2
saw a short talk from Pike mentioning it here in MV 07:39
though it was mostly about stats gathering
audreyt er, 10**10*10, right.
TimToady er, not that either without parens... 07:40
audreyt it's a bit more than stats gathering
it's the native language of MapReduce
you remiliar with that particular architecture? 07:41
*familiar
TimToady pretty much
should I add anything to Perl 6? :)
gaal audreyt: still too lazy, somehow.
audreyt if feeds are made to work suitably well, no :)
none of them has heard of STM 07:42
someone commented they are still using stone-age tools
(compared to STM and hyperops)
TimToady things with whitespace as syntax maybe?
audreyt aye.
gaal audreyt: I was looking in Eval for whatever it is that makes hyper -N2-fast
audreyt well, many are perl5ers who really don't like perl being nonofficial lang 07:43
gaal couldn't find it... is ghc simply That Smart?
audreyt I think the rationale is that autochecked readability for perl5 wasn't there
TimToady we'll just have to write a stone-age to space-age translator for them. :)
audreyt and even today I'm not sure Perl::Critic is on par with existing tools for Java/Python
they mentioned that as a possibly July google hackathon project yes. 07:44
python frontend; not exactly sure how to go about it :)
TimToady but it looks like not much of anyone is signing up to be a mentor
audreyt oh, as in mountain-view-pugs-hackathon, not SoC 07:45
TimToady ah
that I'm willing to help mentor. :D
audreyt :D 07:46
07:47 avarab joined
TimToady they're putting a Python grammar onto Parrot under the name of pynie, if you hadn't noticed, or even if you had. 07:47
audreyt gaal: grep -r forkIO src/Pugs/{Junc,Prim/List}.hs
I had
not sure that it can progress beyond piethon with the current infrastructure though
TimToady given it's in pge it'd probably be pretty easy to filch. 07:48
audreyt (not about compiler tools, but about the undrelying OO support)
TimToady I'm still thinking translator
gaal audreyt: thanks
audreyt gaal: np :) commit your new borked-by-laziness bench code to qc-dispatch and let me take a look? 07:49
audreyt just woke up
ayrnieu audreyt - particle has been saying that OO is coming along.
pasteling "gaal" at 192.115.25.249 pasted "borked by laziness, ravaged by io" (43 lines, 1.6K) at sial.org/pbot/23401
audreyt ayrnieu: I've been following commits :) 07:51
ayrnieu: pdd15 is coming along. not seeing things at the implementation front, though :) 07:53
TimToady maybe someone should just port haskell to run on parrot. 07:54
ayrnieu looks like 326 lines of PIR in compiler/smop
TimToady after all, there's only 2 or 3 actual primitives in haskell...
ayrnieu TimToady - take Yhc and write a Parrot backend is easiest. 07:55
:-)
audreyt avarab expressed interest in #perl a few minutes ago :)
ayrnieu: heh :)
TimToady great minds *cough*
avarab audreyt: I'd never finish it:)
audreyt :D
avarab well, maybe the parser
audreyt yhc gets you the parser 07:56
you just need to write codegen :)
TimToady a SMOP
avarab ah, to generate parrot bytecode?
audreyt right.
ayrnieu avarab - or PIR, which is good enough.
avarab I've only done PAST in my limited ventures with parrot
audreyt PAST doesn't quite map to haskell semantics 07:57
but if you can extend PAST along the way, yay :)
TimToady that's the idea; porting haskell would keep the parrot folks honest, albeit not without some swearing here and there. 07:58
it's really easy to just keep porting the languages that are easy.
(relatively speaking)
audreyt *nod*
TimToady now, porting Perl 5 to run on Parrot just involves swearing without a lot of honesty. :) 07:59
08:00 jisom joined
ayrnieu (only a few of the ports seem sincere, right now, if that makes sense.) 08:00
TimToady speaking of taking over the world, I just defined the module declaration syntax to allow a Perl module to claim to support the API defined by a module in another language. it fell out naturally from the ability to claim to support older versions of the same module... 08:02
'course, claiming to support the API and actually doing so are two different things
I think a Python to Perl 6 translator would be not terribly difficult, but I think the world really needs a refactoring PHP to Perl 6 translator more. 08:03
audreyt gaal: again laziness; seq a list doesn't seq the entire producer. fixing 08:04
gaal ah 08:05
tene TimToady: what would the typical usage scenario of a PHP-Perl 6 translator be?
avarab a better runtime for php
08:06 avarab is now known as avar
gaal I was going to ask if there weren't a strict version of IO, but that comment makes me realize that probably not 08:06
audreyt gaal: done 08:09
TimToady the problem with PHP is that people are slowing getting boiled to death without realizing it. I don't think of a translator as something they will look for without prompting, but something that will become popular if Perl 6 gets cool.
audreyt *nod* 08:10
TimToady and just remove the impediment to migration when they want to for other reasons
svnbot6 r15548 | audreyt++ | * qc-dispatch: forcing evaluation the right way
TimToady same for any other language, really, even COBOL or Java.
audreyt 9.692064 seconds, 103177.1973441364 dispatches/sec
gaal: that looks correct?
gaal that's inside ghci, right? or was your computer busy? 08:11
audreyt that was compiling with -O2
gaal because eariler you had gotten way more throughput
iirc 08:12
audreyt really?
gaal you said it took you ~1sec to run the 100k
audreyt I increased the times by 10x
gaal ah
audreyt it's now 1m
TimToady is that recalculating the candidates each time or with checking last lookup to see if it's the same type profile or some other kind of caching?
audreyt TimToady: no, this is raw uncached
gaal no caching, but no randomness (== hardcoded seed)
audreyt won't matter 08:13
TimToady not too bad then, if 90% is same type profile
gaal oh right: audreyt your throughput figure looks reasonable
audreyt now we need to make type narrowness comparison really fast
gaal what cpu are you using btw?
audreyt working on that...
2Ghz CoreDuo x2
but only using 1
gaal can the algo be parallelized, I'm wondering 08:14
audreyt doing that!
TimToady candidate mismatch detection probably could
gaal @index rnf 08:15
lambdabot Control.Parallel.Strategies
gaal huh
audreyt reduce-to-normal-form
aka fully sequencing 08:16
08:23 Squern joined 08:29 iblechbot joined
gaal audreyt: any idea why the following slows down testing so much? 08:38
-sequence_ [quickCheck prop_dispatch | _ <- [1..10]]
+check defaultConfig{ configMaxTest = 1000 } prop_dispatch
is random data generation nubbed? 08:39
audreyt not sure... 08:40
gaal I
'm inclined to say if the data is repeated ten times we don't need ten tests, but the slowdown may be just by the fact that there's a nub running, not necessarily that it's discarding inputs... 08:41
audreyt nodnod 08:42
svnbot6 r15549 | gaal++ | * cleanups
gaal (oleg Text.Printf) would be so interesting 08:43
svnbot6 r15550 | audreyt++ | * More tidying up to reduce overhead 08:44
audreyt need to go out to get catstuff... be back in O(3hr) and finish up multis and VRef refactoring 08:47
gaal audreyt: my throughput went down by half
audreyt by r15550?
!?
devbot6 audreyt: Error: "?" is not a valid command.
gaal heh
audreyt mine stayed constant
08:47 Schwern joined
audreyt I compiled with -O2. feel free to revert... 08:48
I improved 10% here
gaal making sure
audreyt I put times back to 100000 from 1m too
gaal fwiw i'm running 6.6 and ghci, so your benchmarks win, i think 08:49
though it's curious.
yes: definitely r15550 08:50
even worse than half 08:51
but I guess that just means the interpreter misses some important optimization
09:27 ozo_ joined 10:13 larsen_ joined 10:17 dec_ joined
svnbot6 r15551 | gabriele++ | 99problems:first dummy solution for #54 10:24
10:33 dec_ is now known as dec 10:47 marmic joined 11:10 chris2 joined, explorer joined 11:32 eden_c joined 11:35 iblechbot joined 12:00 Gothmog_ joined 12:44 eden_c left 12:49 bonesss joined 12:59 cognominal joined 13:00 cognominal joined 13:14 eden_c joined 13:40 kanru joined 13:43 eden_c left 13:45 ayrnieu joined
ayrnieu audreyt - belatedly, I get the same errors with those settings. Set in mk/config.mk (which sets them) rather than mk/build.mk , which doesn't seem to exist. 13:46
14:04 pmurias joined 14:07 bonesss joined
audreyt ayrnieu: you'e supposed to create one... 14:15
nopaste the errors? also try ghc-usesrs and #haskell?
ayrnieu I don't have them now; I'll run it again with the created one. 14:18
14:24 wilx joined
gaal meows 14:24
moritz unleashes the hunting dogs ;) 14:26
gaal outcutes the dogs 14:27
moritz is 0wned ;) 14:28
14:34 pmurias left
audreyt purrs 14:44
finally back to pugspace
gaal heya A 14:45
were you LIL again?
audreyt no... was teaching isis haskell 14:46
14:46 sisi joined
gaal goes to grab a sandwich; brb 14:46
oh cool
audreyt er, she's here now. hi :)
sisi hi audreyt 14:47
audreyt a wonder that how natural it seems when one does not have to unlearn anything...
clkao fnord
audreyt clkao: greetings
clkao audreyt: how goes
sisi hi clkao
clkao just spent the last hour putting contact lens on.. my glasses destroyed themselves yesterday 14:48
audreyt mm spotaneous combusting lenses
moritz well, every decent weapon has as self destruction button ;)
clkao audreyt: have you seen sāˆ€kura ? 14:49
audreyt I've seen sakura yes
cute unicody name
clkao the screenshot?
14:49 buetow joined
audreyt yeah 14:49
clkao must have css fu. and must make it actually work 14:50
14:51 penk joined 14:52 JYC joined 14:57 putter joined
gaal sakura? 14:58
clkao some cherry picking ui for svk 14:59
gaal good name :)
audreyt hopefully evolving into jifty-based svkgui? 15:00
putter re what's up with yet_another_regex_engine, unless anyone has a better idea, my current thought is to focus on shaking down the STD opp definition. 15:01
btw, hi all
which prompts two questions
gaal hi putter
shay hi 15:02
putter are we back to associating a pos with a string? there was talk at one point (long ago) of trying to avoid pos being a property of a string (threads and all). but current spec,
seems to at least weakly imply that the two are tied. most is consistent with a <str,pos> tuple object, but $_.pos is set at one point, outside of any regex context. what's the scoop? 15:03
2nd q, 15:04
"how does one know oneself". perhaps the name by which others call you is not your true self, but it would be convenient at times (eg, to pick up externally defined post actions). ROUTINE.name 15:05
seems to follow the p5 model of "you just can't tell". btw, so when you "import as", do you get a completely distinct ROUTINE, or its .name fudged somehow? 15:06
bascally, I'd like B->f() and B->g() to be distinguishable, even if *f = \&mumble and *g=\&f.
oh, third q. it looks from STD that named regex and methods are in the same namespace. at one point they were distinct. yes? 15:08
err, "yes?" as in this is current spec, rather than a STD "typo".
think that's it. first thoughts from eyeballing opp and thinking about doing it under yet_another. 15:09
gaal audreyt mentioned something about TimToady unifying rules and methods, possibly it that. makes sense to me 15:12
regarding routine names, once again it sounds reasonable to me that there is no canonical name. it's like hardlinks in a filesystem in that sense 15:13
there'd better be a less hacky-looking way of dynamically giving names to anonymous closures for debugging purposes than *__ANON__ 15:14
putter :) 15:15
audreyt yes re same namespace. 15:17
putter k
audreyt "B<Regexes> (keyword: C<regex>) are methods (of a grammar) that perform pattern matching"
S06:37
you can see them as macros that expand finally to "method"
putter ah. hmm... 15:19
k
audreyt goes back finishing up MMD and then user-defined classes 15:31
putter the name issue arises because yet_another currently uses a Mumble->foo('foo') hack internally to pass along the calling name. which permits import() as, and using the same regex in multiple "roles" in the grammar, but, not pretty. caller() only provides the defining name. one might be able to hack up a "look for OP_METHOD* node" like Devel::Caller does for its called_as_method predicate, but I don't think that helps you in the face
ok, thanks audreyt, gaal.
15:33 buetow joined
putter to summarize, as I head out to lunch, two open questions - what connection between string and pos (not pressing at all), and naming (if someone has a good story, that would be great, but no big deal). 15:33
the macro->method story looks very shiny :) 15:35
bbl & 15:36
15:44 [particle] joined, Limbic_Region joined 15:49 [particle] left 15:51 [particle] joined 16:00 Belaf_ joined 16:03 larsen_ joined
specbot6 r14326 | audreyt++ | * S12: Remove self-contractictory paragraph about indirect 16:10
r14326 | audreyt++ | object notation -- because the colon is needed regardless
r14326 | audreyt++ | of whether there are arguments after it -- and also
r14326 | audreyt++ | clarify that a fallback to sub call is _always_ performed,
r14326 | audreyt++ | not only for method calls with no arguments.
16:12 Belaf_ is now known as Belaf 16:15 larsen__ joined
TimToady putter: people keep talking about the recent unification of regex and method, but in fact if you go back and look at A05 they were already unified in 2002. 16:19
as for the naming problem, you'll note that methods generally have names. :)
Limbic_Region after this past week, I am going to finally sit down and digest S12 and MOP. Anything but the most simple OO in p5 sucks - big time! 16:21
audreyt Limbic_Region: use Moose;
Limbic_Region I couldn't afford the learning curve
allbery_b ?
Limbic_Region for a change, I actually developed code for work
allbery_b Moose is P6 OO in Perl5
if you're going to do the one, might as well do the other
audreyt but using moose doesn't break your code :) 16:22
it just makes defining new classes easier
Limbic_Region allbery_b - execpt I don't yet know p6 OO
audreyt (and introspecting older ones easier, via Class::MOP)
Limbic_Region and couldn't afford to take the time to learn
project needed to be done under tight timeline
audreyt oh. in which case Moose is still easier to learn than reading S12 :)
Limbic_Region project is now mostly done
audreyt or rather, it's a gentle introduction to S12, of sorts...
Limbic_Region so now the learning is for personal reasons rather than professional 16:23
Limbic_Region doesn't want to have to go through what he went through last week ever agin
s/agin/again/
on the off chance I am asked to write code again that is
allbery_b kinda wishes he'd known about Moose.pm earlier; maybe he wouldn't have rewritten the p5 script that tripped over every shortcoming of p5 OO in the book into ruby to get around them 16:24
Limbic_Region wonders how he survived nearly 5 years of p5 without ever building a complex OO project involving multiple inheritence, avoiding property collision, abstract methods, etc 16:25
Juerd Ignorance is bliss.
Limbic_Region exactly
Juerd PHP people seem to survive just fine, without basic things like lexical variables, dynamic scope, real unicode support, etc. 16:26
TimToady minimalism is always a bit seductive
Juerd But once they learn Perl or another superior language, they feel insanely handicapped when going back to PHP, I imagine.
Ergo: learning has its dangers.
audreyt Ergo: Haskell/Oz/Perl6 etc makes pretty good first-language for beginners :) 16:27
Limbic_Region up until now, all my OO projects involved only a few classes and a straight inheritence chain which I wrote all myself so I didn't have to worry about how to avoid problems that might arise from others subclassing
Juerd Absolutely. Doing the hard things /first/ is better in the long run. 16:28
TimToady I always said Perl should be a "last" language. :)
audreyt and if you don't have anything to compare you don't actually find it hard! :)
Limbic_Region well, Alice is on the top of my languages to learn queue
audreyt SML dialect?
Limbic_Region I am not sure what the S in SML is, but ML yes 16:29
audreyt cool, if you grok Alice, Haskell should be almost as natural
S = Standard
Limbic_Region actually - quite a bit like Oz/Motzart
ah
audreyt Alice shares part of Haskell's concurrency model
Limbic_Region finds it sexy because of its auto parallelism
audreyt the spawn/spark model 16:30
Limbic_Region I have a specific project in mind for it
and since Jean and Jasmine are headed for the Philippines in about a week - it might actually come off the back burner
audreyt yeah, we got those too here :) (plus data parallelism and transactional parallelism)
Limbic_Region what about constraint programming? 16:31
TimToady Turing: All heres are created equal, but some are more here than others.
Limbic_Region those are the two things I need for the project
interesting - www.perlmonks.org/?node_id=604136 16:33
lambdabot Title: State variables and recursion
TimToady Haskell is completely constrained by the compiler, so there's no point in thinking about constraints anywhere else. :P
Limbic_Region heh
Limbic_Region agrees with Anno
state appears to be b0rk in bleed
audreyt Limbic_Region: Curry got those (and SearchT in haskell) 16:34
Limbic_Region well - Haskell is now number 2 on the list so....
16:42 webmind joined
webmind gaal, -pester- 16:43
gaal hmmmmm?
webmind I mailed to Yuval about a broken Test::TAP::HTMLMatrix, and since he is on vacantion, he told me to pester you about it 16:44
gaal did you cc: me? :) 16:45
webmind no, but I can forward it to you
gaal please do
webmind if I have your e-mail address
16:45 rindolf joined
rindolf Hi all. 16:45
Limbic_Region salutations rindolf
rindolf Hi Limbic_Region
Limbic_Region: what's up? 16:46
webmind which it apears I do
Limbic_Region rindolf - planning which projects that have been on the back burner will actually get worked on while the rest of the family is on vacation for 35 days
rindolf Limbic_Region: I see. 16:47
webmind gaal, you have mail.
gaal webmind: which version of Test::TAP::Model do you have installed? 16:50
(not HTMLMatrix) 16:51
there was a Test::Harness compatibility chase going on that had similar symptoms to yours
webmind uhm, I did a fresh cpan install
I'll look
0.08 it seems 16:52
gaal hmm
I could reproduce one failure. Working on fixing it. 17:06
webmind cool 17:07
I wanted to setup a parrot smoke setup 17:09
17:11 nwc10 joined
TimToady putter: on StrPos, it is not precisely required that a StrPos track its string, though that is one implementation. What is required is the invariant that a given StrPos will end up at the same position when used on the same string even if the current unicode level is different from when the StrPos was generated. 17:13
so a StrPos can cut itself loose from a string if it translates itself to a tuple of offsets by byte, codepoint, graphame, char (however many apply) 17:14
such a translation may not be cheap, though
17:17 baest joined 17:29 Psyche^ joined 17:36 Psyche^_ joined 17:43 lichtkind joined
specbot6 r14327 | larry++ | Clarifications on StrPos and StrLen requested by putter++. 17:43
17:45 Psyche^_ is now known as Patterner 17:52 larsen_ joined
audreyt TimToady: what does this do? 17:58
sub f { 1 }; proto f { 2 }
warning: "redeclaration of sub &f ..." ?
gaal protos have bodies? 18:01
specbot6 r14328 | larry++ | further clarifications of substitution and reported string positions
gaal i thought they were, like, protoreal
audreyt gaal: they may have bodies, which gets used when all multis fail 18:06
TimToady I don't think you can put a proto after an only at the same level 18:25
audreyt but two onlies?
TimToady it's like a multi in that regard
audreyt two onlies shadow with a warning?
TimToady two onlies would warn about redef
audreyt and multi after sub is... fatal?
TimToady yeah
fatal is fine by me
audreyt and only after multi is... fatal? 18:26
gaal webmind: fixed. I'll give you a d/l url in a few minutes....
TimToady also fine
(in same scope)
webmind gaal, cool, thanks
gaal, what was the problem ?
18:26 jisom joined
lichtkind TimToady if you would be so kind to answer some question i want to have answered for a perl6 article for german perl magazin, for now i have some question on your perspective about parrot 18:27
gaal webmind: same problem that affected TTM really, and same kind of fix, in the tests only 18:28
you can actually force install if you feel like it.
webmind ah ok
shay yo folks 18:29
TimToady lichtkind: okay 18:30
18:30 ShoyuRamen joined
avar gaal: what's new in htmlmatrix?:) 18:31
lichtkind TimToady danke :) the initial need for new interpreter came from you but who said that it would to be multilingual?
18:31 ozo_ left 18:32 ozo_ joined
gaal avar: passing tests. 18:32
avar :)
gaal seriously, no changed features. 18:33
well, a doc fix; template.html is detailed_view.html for a while now but the doc wasn't consistent about it :)
audreyt woot, down to <1000 fails now
gaal audreyt++ 18:34
audreyt gaal: a lot of it is your "import UTF8" caused :)
Pugs.Types must use Char8
because we were treating the latin quotes as 2bytes (for speed)
(because of hardcoded (drop 2)) 18:35
TimToady lichtkind: several of us were saying it at the same time. it seemed like a good approach to keep us from messing up interoperability. the first "official" mention of the idea was the april fool's joke, but it was already in the air.
18:37 rashakil joined
gaal audreyt: hmm. the doc for Char8 doesn't make sense 18:38
"More specifically these byte strings are taken to be in the subset of Unicode covered by code points 0-255"
how do you look only at 1-byte utf-8 chars and get the non-ascii basic block? 18:39
audreyt "Unicode"
18:39 fglock joined
audreyt not "utf-8" 18:39
gaal sure: but also "All Chars will be truncated to 8 bits."
audreyt Char is unicode 18:40
if you take only the bottom 8 bit
you get latin1
or something like latin1.
gaal by ord you mean?
not by byte pattern...
audreyt by byte pattern too
as Char is internally UTF32
gaal how come?
audreyt not UTF8
take UTF32. 4 bytes. drop 3. you get latin1 :) 18:41
gaal errrr, ok, but then it isn't utf-8 encoded
audreyt no it is not.
lichtkind TimToady i simply want to know how much of the concept is dans mindset and how much it was prerequests. Good, the multilingo thing was some thelepatical groupthink, but to me it seemed that da extended the concept
fglock on feather svk up, I'm getting: RA layer request failed: REPORT request failed on 'svn.pugscode.org/pugs': REPORT of 'svn.pugscode.org/pugs': 302 Found (svn.pugscode.org)at /usr/local/share/perl/5.8.8/SVK/Mirror/Backend/SVNRa.pm line 310.
audreyt fglock: yeah :-/ the workaround is get file:///data/svn/pugs 18:42
(DNS on feather is borked. fixing)
gaal audreyt: I see. this feels... dirty. :)
fglock audreyt: sorry, what's the command line for that? 18:43
audreyt gaal: yeah. but it's the same dirtiness as perl5 :)
fglock: nvm fixed 18:44
svk should work now
gaal audreyt++ 18:45
Pugs.Types has "drop 2" all over the place :(
audreyt TimToady: at Bytes unicode level... is there a default encoding?
gaal which one did you refer to?
rindolf Hi gaal, audreyt . What's up?
gaal and: how do we treat << as two bytes?
I mean, why does it win speed? 18:46
hello rindolf
TimToady um, yeah, ascii. 18:47
I wouldn't go so far as to even assume Latin-1 though
rindolf Hi TimToady 18:48
TimToady howdy
fglock mm - Syncing svn.pugscode.org/pugs / Retrieving log information from 15257 to 15551 / (in cleanup) Svndiff data ends unexpectedly: Unexpected end of svndiff input
lambdabot Title: Revision 15551: /
rindolf What do you think of perl-begin.berlios.de/new-design-Plasu/ , especially in comparison to perl-begin.berlios.de/ .
lambdabot Title: Perl Beginners' Site
18:49 amnesiac joined 18:51 justatheory joined
audreyt gaal: line 442,443 18:51
gaal: Char8 is faster than UTf8 because a blind drop 2 in Char8 is just that
but a "drop 1" in UTF8 needs a peekChar to determine the bytelen of the first char
18:52 elmex joined, rindolf is now known as geboren, geboren is now known as rindolf
gaal whoa, this whole bufToVar cache... huh 18:53
webmind gaal, thanks, did a force install, can now run 'make smoke'
gaal I didn't know it was there
webmind: yay!
it caches var_names_? 18:54
webmind now if only parrot's make test would not loop on my sparc64 :)
jisom how's it loop?
audreyt gaal: this caches the parsing
of var components
gaal of a string to a particular Var
audreyt it essentially memoises "cast"
yes.
gaal nod
when'd you add it? 18:55
webmind jisom, one of the tests it just doesn't continue and uses up 99% of my cpu
gaal now she'll say r400 :)
audreyt the same day as interning
last August
jisom do you happen to know which test? parrot's aiming to be portable, so getting sparc to work would be good 18:56
audreyt r12318
webmind jisom, yes, if you give me a minute I'll look it up
lichtkind TimToady excuse me, you dont have any answer to that (i wanted leave soon, but wanted wait if you want to answer)
svnbot6 r15552 | audreyt++ | * Pugs.Types: Hypers really need Char8.
gaal hey! we didn't celebrate Pugs' birthday this year, did we? 18:57
offby1 glances around nervously.
18:57 chris2 joined
TimToady lichtkind: I didn't realize there was another question 18:57
18:57 Psyche^ joined
webmind jisom, t/stm/runtime.t 18:58
TimToady basically, april's fool jokes don't work unless the idea is already plausible
audreyt we didnot :)
gaal: I was quite ill at that time :)
gaal yeah... ain't it nice you
re better now!
audreyt indeed
jisom what's "prove -v t/stm/runtime.t" put out?
webmind jisom, and I'll gladly let the machine do regular smoke tests, but currently that doesn't seem like an option if it doesn't end
TimToady I remember a year before we announced Perl 6 getting funny looks from people at a CPAN meeting when I suggest cooperating with the Python folks...
lichtkind TimToady i didnt could find dan or chip on IRC so i wanted to ask you how much das extendend the original concept? 18:59
webmind jisom, running
jisom if the testing facilities provided a timeout, things like this could be found with just a smoke
TimToady such questions are impossible to answer quantitatively
webmind jisom, yes 19:00
TimToady Dan certainly thought of the cross language thing independently, and certainly did a great deal of work to bring it about.
webmind jisom, might script arround that
19:00 xinming joined
webmind jisom, dunno how long it needs, but it's up eating cpu again 19:01
n$ prove -v t/stm/runtime.t
t/stm/runtime....1..5
ok 1 - choice (one thread)
is all it gives me
TimToady but then so did other people.
jisom ok, so test 2's failing
"B0rked at least on x86_64" so maybe we need to add sparc64 as well 19:02
what "cpuarch" do you have?
webmind cpuarch ? 19:03
jisom eh, nm, found a good guess
webmind ok
audreyt bbiab 19:05
19:07 nwc10 left
lichtkind TimToady of course it cant be quantified but i dont like to write it complete flase things in my article :) 19:07
jisom webmind, try a svn up now, and hopefully those tests should be skipped 19:08
webmind jisom, just did 19:09
compiling now
19:09 Psyche^ is now known as Patterner 19:18 prism joined, explorer joined 19:19 ShoyuRamen left
lichtkind TimToady thanks even if it dint helped much but it clarified a bit 19:20
19:27 fglock joined
fglock I can't commit the changes at feather /home/fglock/pugs/perl5/Pugs-Compiler-Rule - 'Merge conflict during commit' 19:33
rhr any comments on my p6l post from a week ago "Some questions about miltislices and other things"? It got Warnocked 19:34
moritz fglock: well, du a "svn up", merge it, remove the conflict files and recommit 19:35
s/du/do/ ;)
fglock moritz: svn up doesn't fix it; svn up -s gives '(in cleanup) Svndiff data ends unexpectedly' 19:36
moritz: svn up -s then hangs 19:37
moritz fglock: do you have $file.r$revision-files in that dir? 19:38
TimToady rhr: when you ask that many questions at the same time, the tendency is to mark it for later analysis, and then to not get back to it. 19:39
rhr TimToady: sorry :)
TimToady at least, that's my tendency... 19:40
moritz fglock: btw svn sucks ;)
fglock moritz: no files like that
moritz fglock: my only other idea ist to backup the changed files, do a 'svn revert', apply the diffs manually, and then commit 19:41
TimToady so basically it was still marked as N in my list.
rhr I'm in no hurry to have them answered, just the usual Dilemma :)
TimToady I still hope to look at it.
fglock moritz: I did that already - no luck 19:42
rhr TimToady: thanks for looking at it
moritz fglock: then I have no idea what else to do - except for a new checkout :( 19:43
but maybe somebody else knows more about svn than I do ;)
hopefully ;)
fglock moritz: I did that too
moritz wtf? 19:44
then I can only be server side problem (or a b0rked binary on your client, but that's not very likely)
fglock ok - I left the commit log in 'log.txt'; will retry later 19:46
plain svn works :) 20:04
svnbot6 r15553 | fglock++ | PCR - passes >4000 tests more in the pugs test suite
r15553 | fglock++ | - fixed StrPos overloading
r15553 | fglock++ | - reverted: Match.to returning StrPos; fails pugs tests
r15553 | fglock++ | - char classes and unicode property rules are generated on-demand
r15553 | fglock++ | - implemented hex/octal/named constants
20:10 erg joined
gaal when were closures introduced to Perl? 20:26
audreyt gaal: perl5 20:30
hm. how are there different?
sub f { my sub g {...} }
sub f { state sub g {...} }
s/there/these/ 20:31
gaal audreyt: thanks
audreyt TimToady: are &-sigilled (and ::-sigilled) variables exempt from pad refresh upon lexical reentry? 20:32
that is, are they not refreshed by virtue of the sigil alone?
s/not refreshed/unrefreshed/ 20:33
(luqui used to hard code that logic; just want to check canonicality and maybe make it into spec) 20:34
that is, upon pad refresh, the content gets cloned instead of cleared 20:35
gaal what is there to clear, exactly? closed inner lexicals? 20:36
(/clone)
audreyt yeah 20:38
sub f ($x) { my sub g {...}; if $x { &g := $x }; &g }
ideally each time f() gets called, inner &g is a fresh copy of the original g
regardless of rebinds
I think
gaal uh why would that be the case? 20:40
audreyt because my sub g {} is conceptualy
my &g ::= sub {...}
or rather
my Sub &g ::= sub { ... }
gaal sure, but there's an explicit rebind? 20:41
20:41 pmurias joined
audreyt sure, but what is rebound? 20:41
if you say
$x = f(undef);
$y = f(sub {...});
$z = f(undef);
surely $x === $z !== $y?
if it had been "state sub g {...}" then we'd expect 20:42
$x !== $z === $y
I think anyway
(shower bbiab)
gaal oh, I agree that on entry it's the original g; I thought you meant ideally the bind doesn't take place or something 20:44
avar Is there anything in Perl 6 that couldn't be emulated in common lisp? 20:55
20:56 Daveman joined
avar the though occoured to me that targeting something like sbcl might be neat:) 20:56
TimToady Turing says that's a silly question
audreyt avar: turing completeness says sure
elmex there is nothing in perl 6 that couldn't be emulated in a turing machine
audreyt I kinda wish that Church says it's a silly question and Turing comes later 20:57
moritz elmex: you're wrong: elegance ;)
avar Yes, turing also says that you can do everything CL can in brainfuck by writing a CL compiler in brainfuck, but you know what I mean (I guess:)
audreyt but oh well :)
avar: CL would be a fair target, yes. I havn't studied the concurrency story yet
but iirc sbcl is certainly capable enough
avar What I really mean is since perl has a built in grammar you could in theory just output sexp from the parser and then implement stuff as macros:) 20:58
(multi-sub my-sub ...)
audreyt that is more or less what pugs is trying to do yes :)
avar: so you grok sbcl? :) 20:59
TimToady: another related question:
avar audreyt: not really, but I use it;)
it's very sexy:0 21:00
audreyt sub f { my multi g ($x) { 1 }; sub inner { &g(1) }; my multi g (Int $x) { 2 } }
TimToady: i.e. does a closure close over the pad entry "g" of the variants-so-far, or does it close over one object that is later amended with mul variants? 21:01
currently pugs has it at "inner() === 1"
i.e. it only closes over the half-formed pad
but I don't really have an intuition here...
(seems clear it should close over the long name &g:(Int)) 21:02
(so the question is more of, what does the short name really point to)
er, should _not_ close over the long name
TimToady I think the abstract view of the short name is more correct
audreyt elaborate? 21:03
TimToady most of the time we've gotten away from so-far-ness in a lexical scope
audreyt sub f { my $x; sub g { $y = 2 }; my $y } # error, no? 21:04
so there's still a so-far-ness involved
but otoh you can argue that it's a compile time check and
sub f { my $x; sub g { eval '$y' }; my $y } # ought to give $y
TimToady it's a failure of consistent meaning
audreyt I'd be fine with that too.
TimToady I thought that's how eval already did it 21:05
and why my $x; my $x are the same var
I was just bragging about 'one name always means the same thing in a lexical scope' on p5p
audreyt ok. next question:
my multi g ($x) { 1 } my multi g () { 0 } 21:06
&g := sub { ... }
does it cancel the whole multi dispatch?
or is it an error because there is no concrete &g to bind with?
i.e. are short names a fiction of lexical pad, or is it an indirection to the variants? 21:07
TimToady might fall into the category of trying to bind a type inconsistent with the type associated by declaration with the name
I think the compiler knows that manifest type of 'g' is multi
audreyt my multi g ($x) {1} my multi g () {0} 21:08
my multi f () {123}
&g := &f;
kosher?
TimToady arguable either way, I think 21:09
audreyt a way to think about it is that shortnames are "constants" 21:10
which simply calls into multidispatcher
(as is currently implemented on the to-be-committed-pugs)
in which case it falls into the "constants cannot be rebound" rule. 21:11
TimToady so &g := &f just replaces the set
audreyt uh, that's dangerous
because there may be outer multis
a short name crosses pads
TimToady I don't mind outlawing it for now even if that's not the longterm right answer
audreyt k.
TimToady yes, a short name is more like a Scheme symbol 21:12
so I think that's fine
audreyt yay. that simplifies stuffs a lot. 21:13
moritz ... and Scheme is yet another Lisp dialect ;)
audreyt it follows then that &g.wrap is nonsensical
or, alternatively, it distributes into the current variants
which would be fine with me too
but it couldn't have its own wrap-identity
(alternatively, it wraps the proto, but that's icky)
21:14 avar is now known as XxXxXxXxXxX
TimToady I think anything that is an & object needs to be wrappable, even it it represents a set of candidates. 21:15
audreyt hm.
ok. so it's a constant symbol
but with a mutable body built like a Routine's
so it can't be rebound, but can be maimed 21:16
I mean, modified
k
TimToady can't really do AOP otherwise.
audreyt multi f () { ... }
multi f ($x) { ... }
{ &f.wrap(...); f(...) } 21:17
f(...); # no longer wrapped
correct? (assuming that shortnames are per-pad)
TimToady only if the .wrap is temporized
audreyt interesting!
multi f () {...} multi f ($x) { ...}
{ multi f ($x, $y) { ... }; &f.wrap(...) }
f(...)
er
assume "my multi" instead of "multi" everywhere 21:18
so the outer call doesn't see the inner variant
but the inner wrap still affects the outer call?
21:18 XxXxXxXxXxX is now known as avar
audreyt not exactly sure how it'd work, then 21:18
my multi f () {...}; 21:19
{ my multi f ($x) {...}; &f.wrap(...) }
{ my multi f ($x) {...}; f(...) }
illustrates the point better
TimToady I think the &f is reclosed over the new multi in the first block, so while the .wrap is written as a global effect, perhaps it's a global effect to a container that is lost on exit to the preclosed state 21:22
so the wrapping isn't seen by the second block because it's accessing &f the old way 21:23
audreyt ok.
so it's the definition of new variants in the same scope
that causes a new sym to be regen?
i.e. if the first block did not have "my multi f"
TimToady seems like
audreyt ok. 21:24
but if the first block had
{ multi f ($x) {...} }
which is synonym to our
still I think it causes recalc
(because of our's implicit lexicaling)
and so .wrap is still effectively lexical
sane?
TimToady doesn't seem insane, but I'm not perhaps the best judge of that... 21:25
audreyt heh :)
ok, that's all I need to make this go
thanks :))
TimToady welcom
audreyt expect commits tomorrow
audreyt waves and sleeps &
TimToady night
21:26 Aankhen`` joined
TimToady bbl & 21:27
21:36 Psyche^ joined 21:41 Psyche^_ joined 21:46 Psyche^_ is now known as Patterner
putter re methods generally have names, yes, the question is what to do when they have more than one? f := method {...}; g := &f; X.g() what does the method think its name is? 22:00
it may come down to ROUTINE.name being .defined_as_name and caller() (unspeced) returning the interesting stuff about the call point. 22:01
package A { import X::fibble as f is export; } package B { import A::f2 as g is export } B.g() who does the method think it is? 22:03
p6: "invalid arguments to X::fribble", user of B: "what the heck is a fribble?" 22:04
22:08 Psyche^ joined
putter gaal: re ANON, I note search.cpan.org/~xmath/Sub-Name-0.0...ub/Name.pm can be helpful. 22:10
lambdabot Title: Sub::Name - (re)name a sub - search.cpan.org
putter grammar frogalike { rule for_red_frogs {...} for_green_frogs := for_blue_frogs := &for_red_frogs } grammar blue_frog_swimming is frogalike { rule for_blue_frog... } 22:16
just one method, but it would be nice for it to know in any given call what color frog is being served. 22:17
s/{grammar,rule}/{class,method}/g and the issue is the same. 22:18
22:21 Psyche^ is now known as Patterner
audreyt in perl5: 22:48
[T|audreyt]~$ perl -e 'sub f { die((caller(1))[3]) }; sub g { f } *h = *g; h() '
main::g at -e line 1.
putter: are you saying that the dynamic scope should remember the method (aka the message) chain? 22:49
it could certainly be arranged
agreed that it'd be nice
S06:1683 specs caller 22:52
it already returns a object reprensenting dynamic scope
rather than representing the routine 22:53
so maybe a caller.name is sufficient?
caller.invoked_as 22:54
etc
putter re S06, hmm, maybe I should include it in *all* my Snn searches. :) I'll update Functions.pod. 22:57
audreyt k.
putter re method chain, just the last bit of it. I guess it goes like this. Once there was lambda, it and it was none of its business what assorted environments bound it to. But since the human usuallly thought of 22:58
it as having a name, it variously got access to that, but often(usually? allways?) only to the initial binding. It remained ignorant of subsequent bindings. 23:00
Now we use import, which seems likely to do raw := binding, and also deals with user known names, which it would be good for the code to know about (report errors, look up derivitively named things in the same packages, etc), but the old "only know the name of the first defining boundary" won't support that. 23:01
s/boundary/binding/
thus the interest in a "what name shall I call myself which wont surprise my caller". :) 23:02
svnbot6 r15554 | audreyt++ | * FA::DFA - Fix incorrect BUILD usage.
putter a myself.was_invoked_as 23:03
audreyt nod. agreed on all accounts.
23:03 offby1 joined
putter :) 23:04
audreyt TimToady: thought on amending S06:1683 to say that the dynscope object retured by caller must support .called_as (more ergonomic names welcome)? 23:05
svnbot6 r15555 | putter++ | Functions.pod - aka S29 - Link empty "TODO" caller() spec to S06. 23:07
putter awesome. 23:08
TimToady as long as it's something that can be reconstructed on demand like the line number of the call, and not something that has to be physically done on every call, I'm fine with it. 23:13
audreyt that sounds reasonably doable 23:16
putter re S06/caller(), it might be nice if instead of starting with the calling frame, it started with its own. eg, so a stack dump could be for(0...){caller(:skip<$_>).sub.confess} rather than having to special case the treatment of ones own frame. 23:18
TimToady It shouldn't be called caller() then 23:19
maybe caller is &frame.assuming(1)
putter ah
audreyt &frame sounds GUIish 23:20
TimToady it's what it's called in gdb
dynamic_context is a bit longish 23:21
putter caller :skip<-1> ? ;)
audreyt caller(0) in perl5 already starts with one's one
TimToady now where did I put my puke bucket?
putter lol 23:22
audreyt so I don't think rrename is warranted :))
nor subtle offbyone adjustments...
putter I'd be happy with that. 23:24
TimToady $+foo is short for CONTEXT:: so maybe switch the whole thing to context(0) etc
and maybe leave caller as &context.assuming(1) 23:26
since we also have CALLER:: to refer to the immediate caller
audreyt makes sense... 23:27
audreyt ponders to have &want take the same thing as &context so they are exactly duals
TimToady they don't already? 23:28
hmm, they did at one point, or were at least close 23:29
but maybe we decided &context.want was sufficient 23:30
audreyt that also = unspecce
TimToady and want() is &context(0).want
audreyt either way is fine
sure...
svnbot6 r15556 | putter++ | Neatening pX/Common/. Moved various old regex stuff to Aside/regex_assorted/. 23:32
r15557 | putter++ | Neatening pX/Common/. Moved an old regex project to Aside/regex_assorted/. 23:35
putter Common/regexp_and_parser_spike/parser_spike.pl and Common/regexp_and_parser_spike/parser_spike_target.pl make an interesting browse. Here we are 3 days short of a year later... and it all looks so very familiar. sigh. 23:37
23:41 weinig is now known as weinig_ 23:43 Psyche^ joined
putter A few weeks back a friend I only rarely see gave me a very odd look. Had asked what I was working on. Said operator precedence parser for perl6. Friend remembered hearing the same answer a year earlier.... ;) 23:45
meppl gute nacht
putter g'night
meppl ;)
audreyt well, two years ago I was writing multi dispatch code ;) 23:48
familiar, yet quite different :)
putter oh, yeah. wow. time flies. 23:49
23:50 weinig_ is now known as weinig
putter so no Boston visit this year? there seemed some interest here in having you do a dynamic languages seminar talk at mit. 23:50
blackdog.net/holiday/christmas/countdown.html (caveat - popups) 23:51
lambdabot Title: BlackDog's Countdown To Christmas
audreyt unfortunately sponsorship never got confirmed and my financial state isn't well enough that I can skip $job for that long
so mountain view seems a more fruitful destination
putter k 23:52
svnbot6 r15558 | audreyt++ | * state.t: move away irrelevant .perl artifact vs testing 23:53
putter one thing which came up at the local .pm was a concensus that the pl community was unaware of how badly we were getting hosed by you're not having funding. suggested it was an "advertising" failure.
this suggests its an ongoing issue. ie, raising p6 visibility/respect should be a no-brainer. 23:54
well, no-brainer as long as it doesn't cut into hacking, is too expensive, etc. but $job conflict? as a community, I suspect we collectively don't want to be there. but our optical ganglia havent communicated with our motor ganglia. 23:56
perhaps?
audreyt might be. still the current $job is the best I can find that allows some p6/p5/hs use 23:57
putter k
audreyt and I've been unable to find a sponsor for me to work fulltime on p6 that does not involve making pugs proprietary
putter eep
audreyt I'm grateful as-is :)
23:57 Psyche^ is now known as Patterner
putter as are we all. ;) 23:58