Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-08

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:17 lichtkind joined perl6
00:18 forsaken joined perl6
00:19 forsaken joined perl6
00:22 specbot6 r14315 | larry++ | made "my Any $x; $x := [1,2,3]" a little dwammy (do what audreyt++ means :)
00:25 lichtkind haha dwammy :)
00:29 forsaken joined perl6
00:49 offby1 joined perl6
00:58 mako132_ joined perl6
01:12 nipotaway is now known as nipotan
01:18 theorbtwo joined perl6
01:19 Pomin joined perl6
01:26 specbot6 r14316 | larry++ | Clarifications requested by TheDamian++
01:26 specbot6 r14316 | larry++ | Defined ++ and -- in terms of .succ and .pred so I could write s[] = $0.succ
01:37 gogo407 joined perl6
01:45 amnesiac joined perl6
01:49 rashakil joined perl6
02:08 amnesiac joined perl6
02:12 rhr_ joined perl6
02:20 dmq joined perl6
02:36 coumbes joined perl6
02:42 rhizo joined perl6
02:50 rhr_ is now known as rhr
03:03 vel joined perl6
03:07 tcliouAway is now known as tcliou
03:25 macli_ joined perl6
03:42 daxim joined perl6
03:52 Schwern joined perl6
03:55 svnbot6 r15513 | daxim++ | more install requirements
03:59 b00t joined perl6
04:42 specbot6 r14317 | larry++ | Module longnames now specified in terms of ident plus adverbials.
04:42 obra TimToady: ping.  re your S02 update, it would seem to complicate how CPAN marks beta versions
04:42 obra usually, a "developer only version" gets marked as 1.2.1_01.  You'd now need the extended syntax to do that, no?
04:46 TimToady well, it's true that we don't have a good story for prerelease numbering yet, but I think the _01 remnant of the old floating point versions is even boguser
04:46 specbot6 r14318 | larry++ | typo spotted by TimToady++   :/
04:48 TimToady placeholder digits are a code stench in version numbers
04:49 TimToady logically, what we'd really want is negative versions: v1.2.-1.1, but that's not terribly practical culturally either
04:50 TimToady one could make a rule about inserted alphas always driving the preceding number "negative" with respect to nonalpha numbers, and I suppose 1_01 can even be justified on that basis if you ignore the placeholder
04:51 obra *nod* I'm totally happy to kill _01. It's led to all sorts of insanity.
04:51 TimToady more generally, the alphas tend to be surreal discontinuities of some sort or other
04:52 obra . o { 1.2.6*i could show that it was an imaginary or "developer" release }
04:52 * obra ducks
04:52 TimToady but we could say that 1.2.1.foo.1 always sorts before 1.2.1.0, give or take a dot
04:53 TimToady but perhaps some of what alphas are used for these days should go out of band into :foo form anyway
04:54 TimToady :nickname<Brickbat>
04:55 * obra isn't sure how that feels
04:55 obra the nice thing about the _01 convention is that it makes it very easy to mark something as an alpha and very easy to undo it.
04:55 TimToady gets dicey as to whether it's part of the official longname
04:55 obra And it's very important to be able to see it when understanding what bogus versions of things a user has deployed
04:57 obra With RT, we have an in-app view of all loaded module versions with Module::Versions::Report. having that information not available in the longname would likely be painful
04:57 TimToady 1.2.1alpha3 is a common format, but I could see adding more dots by convention
04:57 TimToady 1.2.1a3, 1.2.1.a3 you also see
04:58 TimToady 1.2.1a.3 is often mistaken for a followup to 1.2.1 rather than preversion
04:58 obra *nod* thought the explicit "alpha" is deprecated by the cpan machinery.
04:59 obra Most developers have switched to using an _<int>
04:59 obra since CPAN.pm is hardcoded to ignore those versions when doing autoinstalls
04:59 TimToady 1.2.1_3 has an alpha in the middle, and if we assume alphas insert . on either side as needed
04:59 TimToady it doesn't matter if they write 1.2.1_03, it still means 1.2.1._.3
04:59 obra Ah. I wasn't parsing _ as pronounced "alpha". Got it
05:00 TimToady question is whether to sort _ before or after a, b, g
05:01 TimToady probably before is simpler
05:01 TimToady assuming asciibetical
05:01 TimToady so _ is prealpha
05:01 obra ..yeah. that makes sense to me.
05:01 TimToady alpha, beta, gamma works, but not delta
05:02 TimToady one problem is that _ might be read as a digit separator so 1_3 would be read as 13
05:02 TimToady esp when written 1_03
05:03 TimToady so we'd have to outlaw _ as digit separator there, I think
05:03 obra *nod*
05:03 ayrnieu joined perl6
05:05 TimToady I'll have to work on S02 a little more I guess...
05:05 obra Sorry about that ;)
05:06 TimToady But not very sorry.  :)
05:06 obra Only a tiny little bit sorry.
05:07 obra are unicode values legitimate in versions?
05:08 TimToady 1.2.1α 3
05:08 obra Version(pi * 2)
05:08 * obra wishes for a unicode-capable irc client
05:08 TimToady why not, they probably even sort nicely as long as you stick to small greek letters
05:09 TimToady irssi is unicode capable
05:09 obra There's something odd with my irssi+screen config
05:10 TimToady do you have LANG=en_US.UTF-8
05:10 jesse__ joined perl6
05:10 jesse__ is now known as obra2
05:11 TimToady recent screen and irssi should do the right thing as long as that's set and your terminal does the right thing with utf8
05:11 obra (let's see if irssi without screen behaves)
05:11 bradb joined perl6
05:13 TimToady screen has a -U switch to force utf8 mode, though I don't need it here with LANG set right
05:14 obra Yep. Locally, utf8 in my terminal is 100% ok. sshing to my colo box causes things to not work quite right.
05:14 * obra digs further
05:15 TimToady what kind of box is your colo?
05:15 obra The colo is a somewhat older debian box. setting LANG appears to make catting files in chinese remotely behave ok
05:15 obra now to try within screen
05:16 bsb joined perl6
05:18 jesse__ joined perl6
05:20 daxim we ♥ utf-8
05:23 * jesse__ beats at irssi
05:24 jesse__ ©
05:25 TimToady did you mean to include an A hat?
05:25 jesse__ I did not.
05:25 jesse__ I should likely go test somewhere less annoying. It was a frowny
05:25 TimToady I think that's typical utf8 vs latin-1 confusion
05:25 bradb left perl6
05:25 * jesse__ nods
05:25 TimToady try screen -U?
05:26 TimToady might be an older version that doesn't look at LANG
05:26 jesse__ I'm actually working sans-screen for the moment
05:27 jesse__ Oh. hm. my irssi is a couple years old.
05:35 jesse__ ☺
05:36 TimToady おめでとうございます!
05:37 jesse__ (I can't yet _see_ unicode data sent by others, but the right thing happens on input, looks like
05:38 TimToady hmm, if I had to choose one or the other, I think I'd rather see it
05:38 jesse__ I won't rest until I can see it. But writing was just one flag ;)
05:41 specbot6 r14319 | larry++ | Definition of version sorting order.
05:41 jesse___ joined perl6
05:42 ayrnieu I can only reliably see unicode in Emacs.
05:43 jesse___ 份固體攪拌器!
05:43 jesse___ (There are very few idiomatic phrases I have at my fingertips in traditional chinese. Thank god that 'concrete mixer' is one of them.)
05:44 miyagawa Hm, 攪拌器
05:44 jesse____ joined perl6
05:45 jesse____ 攪拌器?
05:45 miyagawa sounds like a mixer.
05:46 TimToady kakuhanki
05:46 ayrnieu a nice one for perl6 might be 'yi ri qian li' (lit. one day thousand miles), which expresses rapid progress in the way you'd expect.
05:47 jesse___ Thank god. now I can see all the discussion of the ¥ operator
05:47 Zorkmid25 joined perl6
05:47 Zorkmid25 WoW sucks
05:47 obra ;)
05:48 ayrnieu zorkmid - it has a decent extension language.
05:49 Zorkmid25 left perl6
05:55 gaal morning
05:55 obra 'morning gaal
05:55 gaal hey obra
06:13 gaal is irc.pugscode.org down for you guys too?
06:14 BooK_ joined perl6
06:23 TimToady it doesn't ping from here
06:24 TimToady I've never used that machine for IRC though.
06:24 svnbot6 r15514 | lwall++ | New unified module name notation.  No longer need separate rule for wildcards.
06:24 revdiablo joined perl6
06:24 gaal okay, I really don't understand the candidate sorting thing :( one strategy I tried is to assume the sort had already run, in which case I can assign each candidate in retrospect a rational number representing their position. or rather, because of ties and nonassociativity, say that the result isn't a sort of candidates, but a sort of sets of candidates; and that the algo succeeds when the greatest set is a singleton. right?
06:24 gaal TimToady: it's only logs, really hosted on colabti.de or something
06:26 gaal so in audreyt's 3-element example, the sort results in: [{b}, {a, c}], which successfully chooses b
06:26 forsaken joined perl6
06:27 gaal what I don't see is how to give {a,c} an ordering against other candidates
06:28 ayrnieu joined perl6
06:28 gaal that is, I have Sig -> Sig -> Ordering, but how do I lift that to Set Sig -> Set Sig -> Ordering?
06:29 TimToady I think if two sets overlap they are probably involved in a cycle
06:29 gaal TimToady: one use for it is that browers tend to have better unicode font support than my terminal; sad but true :/
06:30 gaal overlap in the simple sense of share a member?
06:30 TimToady a shame colabti defaults to latin-1...
06:31 gaal yes it's really stupid. I considered writing a greasemonkey script for it :)
06:31 bsb left perl6
06:31 TimToady either all of the one set's members are better that all of the other sets, or they are all in the same set, perhaps.
06:33 jisom joined perl6
06:34 gaal TimToady: but consider audreyt's example (do you have it in scrollback)?
06:34 gaal we know b>a, but we don't know b>c
06:34 gaal however presumably we are still to choose b, right?
06:40 TimToady I don't see why we'd choose any of them.
06:40 TimToady but maybe that's because my eyes are going crossed...
06:42 gaal We need someone who has an intuition for this to give some examples...
06:46 GabrielVieira2 joined perl6
07:07 yhsuan__ joined perl6
07:11 gaal hee, oleg and ccshan are releasing a typesystem arithmetic library
07:13 audreyt gaal: uh sorry
07:13 gaal hey audreyt
07:14 audreyt the idea is that a is preferable to c
07:14 audreyt but a and b are tied
07:14 audreyt with only 3 candidates
07:14 audreyt we know the whole thing is doomed
07:14 audreyt since regardless of c/b's result, all of them are already marked non-winner
07:14 gaal okay, a slightly more elaborate example would be very useful then...
07:15 gaal how is something marked non-winner? the fact that it's tied with somebody else?
07:15 audreyt or it's lost to something else
07:15 gaal okay. any comments on the proposed introduction of rationals? does it help in any way?
07:16 audreyt backlogging...
07:16 audreyt after a night's sleep I believe the easiest algorithm is to maintain a queue of "still hopefuls" which is initially all of it
07:16 gaal in a *successful* sort, the ordering has to be coherent, right
07:17 audreyt at each step we pick two items from the queue
07:17 audreyt compare them; if they tie, both are removed. if one loses, that one is removed
07:17 audreyt repeat this until the queue is either empty or left with one
07:17 audreyt if it's empty, we fail
07:17 audreyt if there's only one, compare it with everything that it has not been compared to
07:17 audreyt if it still wins, it wins
07:17 audreyt otherwise we still fail
07:18 audreyt I think it's a good, if a bit imperative, algorithm
07:18 audreyt and at the "compare the only candidate with everything it has not been compared to", we fail as soon as there is a tie, or if the candidate fails
07:18 audreyt think you grok that?
07:19 gaal yes :) though implementing this in haskell may be surprisingly more difficult than most other algos
07:20 audreyt runST may be useful if absolutely needed :)
07:20 gaal *nod*
07:20 audreyt but it can be made functional too...
07:20 gaal I'd love a test case
07:20 audreyt I'll get you one
07:20 gaal audreyt++
07:21 audreyt in fact, I'll get you a quickcheck
07:21 gaal :))
07:22 audreyt sleep++ # nothing cures insomnia as effectively as sleeping
07:22 gaal hehe. I'm feeling muchly better too
07:23 gaal though still wobbliness > 0
07:26 * audreyt discovers a clever way to write quickcheck instances
07:26 gaal ooh?
07:27 audreyt quickcheck generates random Int
07:27 audreyt we only use the bottom 16 bits
07:27 audreyt so actually they generate Int16
07:28 audreyt to generate Ordering
07:28 audreyt we take two Int16
07:28 audreyt put the smaller one at front
07:28 audreyt concat the bits into a 32-bit Int
07:28 audreyt use that as seed to System.Random.StdGen
07:28 audreyt get the random number
07:28 audreyt and use (`mod` 3)
07:28 audreyt to determine Ordering
07:28 gaal lol
07:29 audreyt that should get you a large number of very weird graphs :)
07:29 gaal audreyt++
07:30 rfordinal joined perl6
07:30 gaal wonderful technique, I look forward to plag^H^H^H^Hfurther researching it in the future
07:32 audreyt :D
07:36 gaal I'm assuming it's okay to add an Eq constraint to a...
07:39 gaal though that's probably implied by Set already, isn't it?
07:42 marmic joined perl6
07:43 audreyt quickcheck done
07:43 audreyt yes. also if it's easier just do [a]
07:43 jisom_ joined perl6
07:43 audreyt instead of Set a that's fine too
07:44 gaal doesn't matter much...
07:45 audreyt Set then
07:48 iblechbot joined perl6
07:54 audreyt committed
07:54 audreyt surprisingly compact :)
07:55 audreyt # http://svn.pugscode.org/pugs/misc/pX/audreyt/qc-dispatch.hs
07:55 svnbot6 r15515 | audreyt++ | * qc-dispatch.hs: quickcheck for dispatch
07:55 audreyt so fill in "dispatch" :)
07:58 gaal thanks, working on it :)
07:58 svnbot6 r15516 | audreyt++ | * er, typo.
08:04 mj41 hi, I forgot my svn passwd (username rootmj) :-(.
08:04 jisom joined perl6
08:05 jisom left perl6
08:05 jisom joined perl6
08:21 rindolf joined perl6
08:21 audreyt mj41: hi, what's the email you used for svn?
08:22 audreyt (I didn't get your /msg; forgot to identify?)
08:22 elmex joined perl6
08:23 mj41 audreyt: rootmj_konf <nspm> seznam.cz
08:24 gaal grrrr, I thought I had it but it's still wrong...
08:28 audreyt mj41: password re-sent
08:29 mj41 audreyt: thanks
08:33 forsaken joined perl6
08:36 stevan_ joined perl6
08:41 drrho joined perl6
08:43 svnbot6 r15517 | rootmj++ | [util/PaP6-testing]
08:43 svnbot6 r15517 | rootmj++ | * fix sleeping between "svn up"s if other confs are skipped
08:43 gaal audreyt: mind taking a look? I don't see what's wrong here
08:44 pasteling "gaal" at 192.115.25.249 pasted "dispatch try" (49 lines, 1.6K) at http://sial.org/pbot/23352
08:44 the_dormant joined perl6
08:46 mj41 audrey: new passwd didn't work, but I found computer, where I saved old one :-)
08:48 audreyt mj41: so old one worked?
08:48 audreyt evidently :)
08:48 mj41 audrey: yes
08:50 audreyt cheers then :)
08:51 audreyt gaal: LT ==
08:52 dolmans joined perl6
08:52 audreyt not GT /=
08:52 audreyt in the List.partition line
08:52 audreyt oh wait hm
08:52 audreyt why not use the (x:y:zs) way?
08:52 audreyt not sure partition is a win
08:53 audreyt because when x is tied, you don't want to dispatch better
08:53 audreyt instead I'll compare x against y
08:53 gaal oh, right
08:53 audreyt if one wins, then dispatch it along with zs
08:53 audreyt if neither, then zs
08:53 gaal audreyt++
08:54 audreyt :)
08:54 audreyt of course that means we duplicate comparison at the verify stage
08:54 audreyt but we can worry about that later
08:54 audreyt just got it qc first :)
08:54 gaal yy
08:54 audreyt food, bbiab
08:56 xern joined perl6
09:07 gaal qc++
09:07 svnbot6 r15518 | gaal++ | * dispatcher passes QuickCheck
09:10 gaal (shower >>= first_nondoc_excursion_in_a_week) &
09:26 gaal as for pruning the double-verify thing, I think simply changing "filter" to "takeWhile" should help
09:26 gaal &
09:26 lichtkind joined perl6
09:28 jrockway joined perl6
09:36 lisppaste3 joined perl6
09:57 devogon joined perl6
10:33 elmex joined perl6
10:34 elmof joined perl6
10:35 elmof joined perl6
10:40 gaal how do I use quickCheck to give me n simple random inputs?
10:40 audreyt heya
10:40 gaal hi :)
10:40 gaal s/filter/takeWhile/ seems corrcect
10:41 gaal I just want to get an impression of length . catMaybes . map dispatch some_sample
10:41 gaal not that it's meaningful
10:42 audreyt replicateM 10 arbitrary
10:42 gaal @index replicateM
10:42 lambdabot Control.Monad, Control.Monad.Reader, Control.Monad.Writer, Control.Monad.State, Control.Monad.RWS, Control.Monad.Identity, Control.Monad.Cont, Control.Monad.Error, Control.Monad.List
10:43 audreyt you can run the gen monad with
10:43 audreyt generate 0 (mkStdGen 0)
10:43 audreyt so
10:43 audreyt list_of_ten = generate 0 (mkStdGen 0) (replicateM 10 arbitrary)
10:44 gaal hehe:
10:44 gaal generate 0 (mkStdGen 0) (replicateM 10 (arbitrary :: Gen Sig))
10:44 gaal [MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0,MkSig 0]
10:44 audreyt lol
10:44 audreyt ok, maybe not
10:45 audreyt takeWhile is correct.
10:45 gaal when the numbers are not 0 it looks better
10:45 audreyt though that is still extra comparison
10:46 gaal is it? I though it's still about n
10:46 audreyt maybe dispatch' can accum
10:46 gaal consider the case where the head is the evenutal winner
10:46 audreyt hm no, not gonna help
10:46 gaal it's sure n then
10:46 audreyt yeah. you're right
10:46 audreyt let's go with that
10:46 audreyt gaal++
10:48 gaal @index catMaybes
10:48 lambdabot Data.Maybe
10:48 audreyt I get 10 Nothing out of 100
10:48 audreyt obtained by
10:48 audreyt    verify Nothing   = trace "nothing" Nothing
10:48 audreyt and count the number of nothing on screen
10:49 audreyt another 10 from
10:49 audreyt    dispatch' []     = trace "all-tied" Nothing
10:50 audreyt oh wait
10:50 audreyt they are the same, aren't they.
10:50 audreyt 12 succeeded
10:50 audreyt 10 all-tied
10:50 gaal if they are, then we have another shortcut to moose
10:50 gaal (I think)
10:50 audreyt 78 ruled-out-at-verify-stage
10:50 gaal no actually, the nothing just propagates
10:51 gaal speaking of which, my verify is really ugly isn't it?
10:51 audreyt already done
10:51 audreyt simpler at code level if not actually faster
10:51 svnbot6 r15519 | audreyt++ | * another shortcut to moose
10:51 gaal :-)
10:52 gaal how are the stats with 10,000 samples?
10:52 gaal just wonderin'
10:52 gaal (bettter remove the trace)
10:52 gaal oh wait you count via trace
10:53 gaal hehe, change to Either and you can report the error. <3 monads
10:54 gaal .oO( s/candlist/candy/ )
10:57 audreyt tidied up.
10:57 audreyt now works with arbitrary monads
10:58 gaal you beat me to it, as usual :)
10:58 audreyt and "verify" is gone, hence no longer ugly -- we get the result ex nihilo
10:58 svnbot6 r15520 | audreyt++ | * more code tidying
10:58 audreyt :D
10:58 audreyt but this looks good enough
10:58 audreyt gaal++
10:58 gaal buildfail
10:58 audreyt no way...
10:59 gaal oh, no
10:59 gaal stale ghci moose
10:59 audreyt just warning
11:00 gaal well, the prop_dispatch still assumes Maybe
11:01 audreyt sure
11:01 gaal brb
11:04 audreyt bbiab too
11:04 gaal oh, when you said extra comparisons and accum you meant the == check in takeWhile.. yes, an accum can fix that. fixing
11:08 gaal fixed
11:09 Patterner gaal++
11:09 gaal audreyt++ really :)
11:10 Patterner audreyt++  # sure :)
11:11 svnbot6 r15521 | gaal++ | * avoid the takeWhile tests entirely by accumulating spoilers during scan
11:12 gaal is x:xs cheaper than xs ++ [x]? because the order of spoilers doesn't matter so there's a possible small optimization here :)
11:13 gaal (istr that yes, (:) is generally better)
11:17 svnbot6 r15522 | gaal++ | * accumulate spoilers list in reverse, since it order doesn't matter
11:17 svnbot6 r15522 | gaal++ |   anyway and this is possibly more efficient.
11:21 elmex joined perl6
11:27 fglock joined perl6
11:41 polettix joined perl6
11:42 ruoso joined perl6
11:50 jiing joined perl6
12:03 gaal on large sets there are almost only failures
12:03 gaal not that that means anything etc.
12:05 gaal what's more noteworthy is that it takes a while to run on 1000 samples. but: this is in ghci, and I didn't break down the set sizes yet.
12:06 chris2 joined perl6
12:06 gaal oh, heh, it's on enormous Sigs.
12:07 fglock mm - perl 5.9.4 doesn't seem to have the new regex syntax - trying bleadperl
12:09 gaal okay, with saner sigset sizes the match hit rate is expectedly much, much higher
12:09 b00t joined perl6
12:09 gaal let samp = generate 10 (mkStdGen 3432) (replicateM 1000 (arbitrary :: Gen [Sig]))
12:09 Psyche^ joined perl6
12:09 gaal the "10" controls the sigset size
12:10 gaal I think it's a cap
12:19 BooK joined perl6
12:23 Psyche^ is now known as Patterner
12:25 fglock oops - pugs uses PCRE instead of p5 - m:P5/(?<x>foo)/ fails
12:29 fglock audreyt: I'm adding %+ to Match in Pugs::Compiler::RegexPerl5
12:32 ayrnieu joined perl6
12:34 fglock ugh - p5 named captures are also positional - this will need some extra work
12:38 gaal oh, my accumulator's bogus, since it just gathers everything.
12:39 fglock what I really needed was: /(a)(?<named>b)/ generated an array of names like [ undef, 'named' ], matching the positions in @- and @+
12:41 svnbot6 r15523 | gaal++ | * revert bogus optimizations
12:42 audreyt fglock: I can get pugs to use p5rx too... would that help you in some way?
12:43 ruoso joined perl6
12:44 fglock audreyt: that's just for completeness, so people can use the new p5 syntax
12:45 fglock I'm still studying the new p5regex, in order to box the result into Match
12:45 nipotan is now known as nipotaway
12:46 fglock audreyt: you can use Pugs::Compiler::RegexPerl5, which does p5regex->Match
12:46 fglock same API as normal PCR
12:50 fglock p5regex->Match will likely need some p5-internals work
12:54 fglock I wonder if p6 could allow :PCRE as well as :Perl5
12:55 audreyt well it could, but perl5 can use PCRE already too in 5.10 :)
12:55 audreyt re-engine-PCRE :)
12:56 fglock oh, right :)
13:00 wolverian hrm, an ADHD support concert was cancelled here because the main performer had too many things to do. life, stranger than fiction.
13:01 the_dormant joined perl6
13:01 BooK_ joined perl6
13:04 Limbic_Region joined perl6
13:10 rindolf joined perl6
13:17 the_dormant left perl6
13:17 the_dormant joined perl6
13:18 bonesss joined perl6
13:33 BooK joined perl6
14:15 iblechbot joined perl6
14:40 GabrielVieira2 is now known as GabrielVieira
14:42 pnu joined perl6
14:43 DrSlump joined perl6
14:43 DrSlump hello
14:43 audreyt DrSlump: greetings
14:43 DrSlump hello Audrey
14:50 vel joined perl6
14:51 IllvilJa joined perl6
14:55 gaal hey audreyt, how's the color?
14:56 gaal (only 1k new red was pretty impressive!)
15:02 audreyt down too 900ish
15:02 audreyt but working on @slides now
15:03 audreyt you want to look at the patch-so-far and maybe chase down some of the errors?
15:04 audreyt it's in http://perlcabal.org/~audreyt/tmp/patch-so-far
15:04 svnbot6 r15524 | audreyt++ | * More gold-plating of qc-dispatch.
15:04 audreyt I need to go back working on slides...
15:04 gaal are they relaed to missing newvals mostly?
15:04 audreyt be back to hacking in ~12 hours
15:04 gaal sure, have fun
15:04 audreyt :) &
15:17 buetow joined perl6
15:17 svnbot6 r15525 | gaal++ | * tidy up rules related to DrIFT
15:19 DebolazY joined perl6
15:20 devogon joined perl6
15:22 bonesss joined perl6
15:29 kanru joined perl6
15:30 ruoso joined perl6
15:32 DebolazX joined perl6
15:35 chris2 joined perl6
15:35 meppl joined perl6
15:56 elmex joined perl6
16:06 elmex joined perl6
16:07 [particle] joined perl6
16:25 gnuvince joined perl6
16:25 gnuvince left perl6
16:26 riffraff joined perl6
16:26 riffraff hello
16:26 VanilleBert joined perl6
16:31 fglock joined perl6
16:36 fglock @tell dmq: any ideas on how to get from/to information (like in $-[$n]/$+[$n]), given a perl5.10 named capture?
16:36 lambdabot Consider it noted.
16:36 integral there's not %+ %-?
16:37 args yes, that's it
16:37 args see the module Tie::Hash::NamedCapture for the full docs
16:38 args but be sure your checkout of bleadperl is not older than one hour ago
16:39 fglock the module seems to return the captured text only - but not where in the string did it match
16:40 args no
16:40 fglock re.xs has this information internally, but I don't see how to access it
16:41 args you mean the matching index pos?
16:41 args dmq: alive ?
16:41 fglock yes
16:41 args fglock: @+ and @- ?
16:42 fglock @+ does contain the information, but I need to know which index corresponds to each name
16:43 args yes, that's the problem.
16:45 integral sorry, I see, %-/%+ aren't at all like @- and @+, my mistake
16:45 amnesiac joined perl6
16:47 DHGE joined perl6
17:17 macli joined perl6
17:28 TimToady the design of @+ and @- was a botch from the start.  parallel arrays are almost never the right answer.
17:29 args I don't like them either.
17:29 args they're great for obfuscation, though :)
17:32 awwaiid joined perl6
17:33 TimToady and from a user perspective, *I* can never remember which one is the start and which one is the end.
17:34 TimToady one can set up the metaphor either way
17:37 fridim joined perl6
17:41 masak mm, feather down?
17:43 [particle] joined perl6
17:46 Jedai joined perl6
17:50 TimToady no, been up 95 days
17:51 TimToady just logged into it
17:52 [particle] is :ver<*> or :auth(*) valid?
17:52 [particle] hrmm, maybe (*) has to be (Any) since it's a type
17:52 TimToady :ver(*) is valid
17:53 TimToady I suppose :ver<*> is valid if :ver<6.2.*> is valid
17:53 [particle] re ver: that's what i figured
17:53 TimToady but maybe it needs (v6.2.*)
17:53 [particle] (v*)
17:54 TimToady (Version)
17:54 justatheory joined perl6
17:54 rindolf joined perl6
17:54 TimToady but likely the string form can recognize *
17:55 [particle] i expect omitting :ver<something> implies :ver<*>
17:55 TimToady what we don't have currently is a good notation for 6.2.3+
17:55 [particle] use a range
17:55 allbery_b @remember TimToady We're trying very hard to make different mistakes this time, and I believe we're succeeding. :-)
17:55 lambdabot Done.
17:56 allbery_b (6.2.3-*)?
17:56 [particle] i've run into this multiple times with perl 5
17:56 [particle] supporting only specific package versions, since an api changed
17:56 explorer joined perl6
18:02 ruoso joined perl6
18:11 VanilleBert left perl6
18:18 svnbot6 r15526 | audreyt++ | * qc-dispatch: Improved dumpCmp to show all combinations, not only
18:18 svnbot6 r15526 | audreyt++ |   comparison to the first element.
18:18 svnbot6 r15526 | audreyt++ |   Also optimize the algorithm somewhat to avoid recomparison on the
18:18 svnbot6 r15526 | audreyt++ |   two-sigs case.
18:18 penk joined perl6
18:21 kanru joined perl6
18:33 the_dormant joined perl6
18:34 broquaint is now known as broquaint-test
18:34 broquaint-test is now known as broquaint
18:34 bernhard joined perl6
18:36 specbot6 r14320 | larry++ | Further clarification of version syntax as requested by geoff++ and others.
18:37 dec_ joined perl6
18:37 gnuvince joined perl6
18:38 obra TimToady: +alphabetic, and that alphabetic is defined according to Unicode,             +not ASCII.
18:38 obra isn't unicode sorting a strict superset of ASCII?
18:40 TimToady sure, just because it's not defined according to ASCII doesn't mean it isn't consistent
18:41 obra Ok. It felt a tiny bit confusing, as I tried to figure out how it wasn't ASCIIbetical. But that works
18:43 jisom joined perl6
18:43 jisom left perl6
18:43 jisom joined perl6
18:46 TimToady well, my basic rule of thumb is that if something gets misread, it's the writer's fault.  :)
18:46 specbot6 r14321 | larry++ | Clarification suggested by obra++.
18:46 specbot6 r14321 | larry++ | v-style now allows * and + wildcards for convenience.
18:47 obra it's a fair rule of thumb. But dangerous around these pedantic Perl-people
18:47 obra but yes, the "just" makes it better.
18:47 obra Can I stick a wildcard in the middle of a version?
18:48 * [particle] still wonders about v* and v+
18:49 TimToady you can stick a *, but it seems a bit odd semantically
18:49 obra evil: especially useful if I can say: conflicts wiht v1.*.0
18:49 TimToady a + is only allowed at the end
18:49 TimToady (currently)
18:50 obra *nod* seems reasonable
18:50 TimToady I suppose at some point you break down and just write a regex for a selector...
18:50 TimToady though the dots are a problem in regex
18:50 obra Yep.
18:51 [particle] sure, but Version could metasticize dots
18:51 [particle] er... escape, anyway
18:52 TimToady would be a bit odd for a Version to reach into a regex selector and change its meaning.  Regexes aren't strings anymore...
18:53 TimToady I think we can let huffman deal with that situation. :)
18:53 [particle] consider a Version grammar
18:53 [particle] that generates regexes
18:53 TimToady okay, I considered it
18:53 [particle] :)
18:54 svnbot6 r15527 | lwall++ | Tracking recent version syntax changes.
18:55 TimToady gotta get ready for $job
18:55 TimToady bbl &
18:57 obra Yep./win 8
18:57 obra mischan. sorry
18:59 rindolf Where does TimToady work? What does he do there?
19:00 offby1 Secret Perl Labs
19:07 [particle] he works for a hardware company, and designs perl 6
19:07 andara joined perl6
19:11 explorer joined perl6
19:11 moritz .oO(perl 6 in hardware? cool ;-)Oo.
19:12 [particle] well, regex in hardware, anyway
19:13 moritz are regexes turing complete? *g*
19:13 [particle] perl 5 and 6 are
19:13 [particle] *regexes are
19:14 [particle] not sure abouc pcre
19:18 Belaf joined perl6
19:23 riffraff awk's are not,a DFA suffices for them
19:26 xerox riffraff (:
19:28 explorer joined perl6
19:31 riffraff hei xerox :)
19:32 fglock joined perl6
19:37 the_dormant joined perl6
19:39 svnbot6 r15528 | lwall++ | nameroots are now just data
20:07 wrac joined perl6
20:07 the_dormant joined perl6
20:10 wrac left perl6
20:32 GeJ morning lambdamøøses
20:33 * moritz feels like a gammaelk ;)
20:41 elmex joined perl6
20:44 koye joined perl6
20:55 ludan joined perl6
21:07 the_dormant joined perl6
21:12 Aankhen`` joined perl6
21:22 masak ?eval say [1].perl
21:22 evalbot_r15525 OUTPUT[[1,]␤] Bool::True
21:22 masak is the comma meant to be there?
21:22 masak it's not there in longer lists
21:22 masak ?eval say [1,2,].perl
21:22 evalbot_r15525 OUTPUT[[1, 2]␤] Bool::True
21:23 gnuvince left perl6
21:23 Schwern joined perl6
21:40 moritz masak: I guess it's there to calrify that it's a list
21:43 moritz s/cal/clar/
21:43 masak moritz: ah yes, that actually makes sense, thx
21:44 moritz np
21:46 larsen_ joined perl6
21:48 masak moritz: what might it otherwise be confused with?
21:49 moritz I don't know... scalars?
21:49 masak hm
21:50 masak maybe through some rule along the lines of $scalar === [$scalar], in that case
21:50 moritz ?eval 1.perl
21:50 evalbot_r15525 "1"
21:51 moritz ?eval [1].perl
21:51 evalbot_r15525 "[1,]"
21:51 TimToady the comma is superfluous inside [] but not inside ()
21:51 TimToady the only other possible source of confusion is reduce operators
21:51 TimToady and infix:<1> is discouraged. :)
21:53 masak TimToady: :)
21:54 masak I still have trouble handling lists in perl6
21:54 offby1` joined perl6
21:54 masak how does one do @array = @$arrayref in perl6?
21:55 buetow joined perl6
21:56 masak ?eval $a = [1,2,3]; my @b = @$a; @b.perl
21:56 evalbot_r15525 "[1, 2, 3]"
21:56 masak :/
21:57 allbery_b hm?
21:57 PerlJam masak: @b = $a; should work fine.
21:58 masak ?eval $a = [1,2,3]; my @b = $a; @b.perl
21:58 evalbot_r15525 "[[1, 2, 3],]"
21:58 masak nope
21:58 masak that is what confuses me
21:58 masak I want @b to end up being "(1, 2, 3)"
21:59 allbery_b ?eval my @a = (1, 2, 3); @a.perl
21:59 evalbot_r15525 "[1, 2, 3]"
21:59 masak heh
21:59 allbery_b looks right to me
21:59 masak it does
21:59 PerlJam yeah, [1,2,3] and (1,2,3) are essentially the same.
21:59 allbery_b p6 makes the whole references vs. values thing a bit more consistent
22:00 masak ok, so far it only serves to confuse me
22:00 allbery_b thus resolving quite a bit of confusion common in perl5
22:00 masak I think the p5 model is consistent :)
22:00 PerlJam But that @b=$a behavior is weird.
22:00 PerlJam masak: perl6 doesn't have references  :-)
22:00 masak PerlJam: that actually explains a lot
22:01 masak so how are lists able to contain arrays?
22:01 allbery_b perljam: I believe that's specced.  you gave it a scalar, it was promoted to a single-element list
22:01 PerlJam allbery_b: That may be the case, but it's still weird  :)
22:01 gaal ?eval $a = [1,2,3]; my @b = @($a); @b.perl
22:01 allbery_b (in rder to match the list context)
22:01 evalbot_r15525 "[1, 2, 3]"
22:03 gaal PerlJam: is it weird? @b = 42 puts 42 in slot 0; @b = $a puts $a in slot 0.
22:03 allbery_b ==gaal
22:04 allbery_b the only way it doesn't "make sense" is if you expect perl5 behavior.  but this isn't perl5 :)
22:04 PerlJam gaal: Sure, in that context it makes sense, but in the context of references disappearing in p6 it seems weird.  i.e., $a = @b and @a = $b seems like they should be symmetric
22:05 pasteling "masak" at 130.238.83.176 pasted "I'm trying to implement a powerset coroutine in perl6, but running up against to many or to few list containers all the time. Help appreciated" (21 lines, 492B) at http://sial.org/pbot/23367
22:05 PerlJam er, $a = @b; @b = $a;
22:05 PerlJam you know what I meant  :)
22:06 PerlJam masak: as a tangent, it looks like you should be using  coro powerset([$head, *@tail]) { ... }   # assuming I remember the syntax there.
22:06 masak er, s/to many/too many/ and s/to few/too few/...
22:07 gaal > let powerset = filterM (const [True, False]) in powerset [1,2,3]
22:07 lambdabot [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]]
22:07 allbery_b they are symmetric int he sense that imposing scalar context on an array gives you the array itself (what p5 would call a reference), while imposinbg an array context on a scalar gives you a single-element list
22:07 masak PerlJam: good idea. what about the case when the incoming list is empty?
22:07 PerlJam masak: that's what multi is for :)
22:07 masak PerlJam: multi coro? sexy
22:08 * masak tries
22:08 masak btw, I still don't quite know what the splat is doing there in *@tail
22:09 masak anyone have a simple explanation?
22:10 allbery_b making sure the list is unwrapped in place instead of becoming a 2nd element which is itself a list?
22:10 gaal masak: f(@a, @b) passes two args to f
22:10 * allbery_b doesn't actually recall
22:10 allbery_b damn drugs making me fuzzy :/
22:11 gaal f(@a, *@b) passes 1+@b.elems
22:11 masak gaal: aha, thx
22:11 gaal everybody's ill :(
22:11 masak so the splat says something like "all the rest"
22:11 PerlJam masak: right.
22:11 PerlJam Although, I think the syntax has actually changed.
22:12 masak PerlJam: can I write multi coro powerset( [] ) for the base case?
22:12 PerlJam masak: That's what I would hope (I don't know if that works in pugs)
22:12 masak PerlJam: seems like it doesn't
22:12 gaal masak: you mean, a guard?
22:13 PerlJam (The moral equivalent works in haskell  ;-)
22:13 masak at least, multi coro powerset( [$head, *@tail] ) surprises pugs
22:13 masak gaal: I don't know, maybe I do.
22:13 gaal those are better served by "when" clauses inside the body
22:13 masak :)
22:13 gaal sub { when [] {...} }
22:14 gaal coro powerset { when [] {...} }, in this case
22:14 gaal <- should yield to sleep
22:14 gaal good night :)
22:14 masak 'night
22:15 PerlJam g'night gaal
22:17 PerlJam masak: I believe that audrey is hacking pugs again ... maybe you can get her to make pugs recognize those signatures.
22:17 PerlJam :-)
22:19 masak PerlJam: I too believe she is -- yes, that would be a nice addition
22:19 masak maybe I should just write some tests for it like a good citizen
22:19 PerlJam that would be excellent
22:20 masak but for some reason I cannot reach svn.pugscode.org today...
22:20 PerlJam though I keep having the nagging feeling that the syntax has changed for array slurping  (the splat)
22:20 masak PerlJam: yes, that sounds vaguely familiar
22:23 PerlJam Hmm. from S03: prefix:<|>, flatten object into arglist  
22:23 PerlJam I think that's the same thing
22:23 PerlJam maybe not though
22:23 masak but maybe that is supported
22:23 * masak tries that
22:23 PerlJam in any case, S03 does not mention prefix<*>
22:23 PerlJam er, prefix:<*>
22:25 PerlJam anyway ... back to work
22:25 masak hm, no, actually pugs gets stuck earlier, saying 'Unexpected "[$"'
22:25 justatheory joined perl6
22:25 PerlJam well, almost back to work ...
22:27 PerlJam no, definitely back to work :-)
22:27 PerlJam talk to you later
22:29 masak PerlJam: :) yes
22:30 larsen__ joined perl6
22:32 Psyche^ joined perl6
22:47 allbery_b gaal: not ll.  psycho.  :/  antianxiety meds...
22:48 Psyche^ is now known as Patterner
22:58 dec_ is now known as dec
23:04 offby1` is now known as offby1
23:10 bsb joined perl6
23:19 forsaken joined perl6
23:32 svnbot6 r15529 | lwall++ | style upgrade to problem36
23:51 Limbic_Region joined perl6
23:56 svnbot6 r15530 | lwall++ | Added gather and list comprehension forms of problem 16

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

Perl 6 | Reference Documentation | Rakudo