Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | www.treehugger.com/files/th_images/paradigm.jpg [set by audreyt on 2006-08-29 05:26:57 -0700]
Set by Akwa|user on 14 September 2006.
00:05 Southen_ joined 00:12 mako132 joined 00:18 nekokak joined
svnbot6 r13649 | lwall++ | Whacked on .slurp vs .lines doc. 00:18
r13649 | lwall++ | De-P5ified a bit of the IO doc.
00:19 weinig|away is now known as weinig 00:20 frederico joined 00:33 weinig is now known as weinig|bbl 00:36 mako132 joined 00:57 hikozaemon joined 01:18 rodi joined 01:19 rodi joined 01:21 mako132 joined
svnbot6 r13650 | lwall++ | Some needed whacks on the regex tests. (Yes, I realize the README says the 01:22
r13650 | lwall++ | file is copied over from pge, but we'll just have to backpatch the pge test.)
01:33 kastol joined
TreyHarris in re earlier comments on object mutation: 01:34
?eval class Foo { has $.a; method change ($o is rw:) { $o = Foo.new(:a("new")) } }; my $g = my $f = Foo.new(:a("old")); $f.change; say "{$g.a}:{$f.a}";
this is perfectly legal today, won't it continue to be?
hmmm... evalbot? 01:35
TreyHarris pokes evalbot_r13627
?eval 1
oh... evalbot is a way old rev, i take it its hung 01:36
01:48 ofer0 joined
svnbot6 r13651 | fglock++ | [v6] 02:10
r13651 | fglock++ | - main package is 'Main'
r13651 | fglock++ | - added runtime Array & Hash classes
r13651 | fglock++ | " my %x; my $a = %x; $a{1} = 42; say $a, $a.kv; "
r13651 | fglock++ | " my @x; my $a = @x; $a[1] = 42; say $a, $a.kv, %($a.kv), $a.WHICH; "
02:19 masak joined
svnbot6 r13652 | fglock++ | [v6] 02:47
r13652 | fglock++ | - typed variable declarators - my Int $x
r13652 | fglock++ | - postcircumfix methods - .[] .() .<>
r13652 | fglock++ | - t/data_types/array.t passes 25/67; hash.t passes 53/57
02:49 rashakil joined 03:18 weinig|bbl is now known as weinig
ajs_home did anyone get a chance to look at docs/Perl6/API/macros.pod? I based it on docs/notes/p6ast_draft, but it has a lot of questions embeded that need to be answered at some point. 03:19
TreyHarris: amusingly your code in v6 produces: {Foo=HASH(0x9565500).a}:{Foo=HASH(0x9565500).a} 03:24
03:25 weinig is now known as weinig|zZz
ajs_home and "old:new" in my pugs 03:25
svnbot6 r13653 | audreyt++ | * Oops, yesterday's patch made :$x become ('$x'=>$x). 03:41
r13653 | audreyt++ | This fixes it properly so it's (x=>$x) again.
revdiablo Hmm. Was there ever any resolution on the "find a better name for captures" conversation? 03:42
TimToady ahem. 03:44
revdiablo *cough*
03:44 lanny joined
TimToady biab & 03:47
lanny Hmm. Given the move to a real object system should Math-Random-Kiss be Int-Random-Kiss? 03:49
cj revdiablo: I was thinking about you the other day 03:59
revdiablo: how have you been?
"captures" sounds nice to me :) 04:00
revdiablo Well, putter was wondering if there was a better term. Didn't mean to sound disparaging, I just wondered if there was any further discussion about it.
bsb I think "Capture" was the answer to "find a better name for Arguments" 04:01
revdiablo cj: I've been ok. Could be better, could be worse, I guess. You?
cj revdiablo: pretty good. wondering why I can't keep the money in my bank account 04:03
there are folks conspiring against me, I'm sure
like those darn hardware vendors!
revdiablo Ah yes. A lot of those people with their conspiracies, i think
cj finding new and more exciting ways that ie6 is broken. it makes my life interesting in that old chinese verse way 04:05
audreyt @tell markstos passing hash into p5land and back now transparently works 04:16
lambdabot Consider it noted.
TimToady ā…‹ p!ɐp 04:19
ā…‹ pɐ!p even 04:20
audreyt wow :)
lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
TimToady (: mom 04:21
audreyt lambdabot: @messages
lambdabot gaal said 10h 27m 12s ago: vardecl and particularly "my T ($x, $y)" doesn't use the Signature parser yet, does it? There are two items in the ChangeLog about this that may be misleading.
04:47 tewk_ joined
audreyt @tell markstos to pass scalar as a ref into p5 land, use p5func(VAR $v); ditto for hash as p5func(VAR %h) 05:02
lambdabot Consider it noted.
svnbot6 r13654 | audreyt++ | * precompile.t: If the try{} fails, at least show what the error was. 05:06
r13655 | audreyt++ | * perl5/roundtrip.t: To pass a hash into a p5 subroutine,
r13655 | audreyt++ | use one of the two ways:
r13655 | audreyt++ | p5func(VAR %h);
r13655 | audreyt++ | p5func(item %h);
r13655 | audreyt++ | but never:
r13655 | audreyt++ | p5func(%h);
r13655 | audreyt++ | because all p5 funcs has a slurpy signature.
clkao VAR ? item ? 05:13
05:14 BooK_ joined
svnbot6 r13656 | lwall++ | Tests and Prelude.pm implementation for .comb 05:21
audreyt clkao: item $foo is the new scalar $foo 05:22
clkao abd VAR?
audreyt VAR($x) is the scalar variable $x
not the content of $x
clkao oh good 05:23
audreyt perl5 doesn't quite have this concept... tied() comes a bit close
clkao which is the cause for data::bind / alias issues
TimToady which is why perl 6 has VAR instead. :)
pasteling "lanny" at 128.107.248.220 pasted "Prim.ps -- srand" (4 lines, 162B) at sial.org/pbot/19968 05:24
lanny Hmm. that should read Prim.hs.
TimToady what, it's not in PostScrpit?
*PostScript
lanny Never learned PostScript
TimToady me either.
must have been two other people. 05:25
lanny audreyt: What secret sauce do I need on the last line to turn the IO () into something op1 wants?
clkao so $foo := $bar is basiclly VAR($foo) = VAR($bar) right? 05:26
05:29 mdiep_ joined 05:35 mjk joined
audreyt lanny: return (castV True) 05:37
lanny audreyt++
audreyt assuming that's what srand always returns
clkao: no... 05:38
$foo = $bar
already means
VAR($foo) = $bar
lanny Should be as good as anything. It might be interesting if it returned the current state so that you could go back to where you set a new srand() but interesting not necessarily useful.
TimToady temp srand; 05:39
svnbot6 r13657 | audreyt++ | * Pugs.Eval: %hash.postcircumfix:<{ }>($key) now works. 05:43
lanny Ok. Agreed. But how to build the closure in Haskell on the True value returned is way beyond me.
TimToady what if %hash is multidim? 05:44
lanny No joy still. setStdGen is :: StdGen -> IO () and op1 seems to be imposing 'EvalT (ContT Val (ReaderT Env SIO))' 05:47
audreyt lanny: liftIO 05:50
liftIO $ setStdGen ...
or guardIO if you are paranoid 05:51
but somehow I don't think setStdGen can throw IO error
TimToady: $key;$key;$key ?
TimToady maybe it should be .(\($key)) or something.
in case you want other non-subscripty options. 05:52
maybe
but there's always .slicemediceme(\($key)...) for that, I guess.
lanny guardIO doesn't work. Tried it before I even came hat in hand.
audreyt define "doesn't work"... 05:53
did you put a $ ?
guardIO $ setStdGen...
lanny Of course. But now it works. :) When I had it before the setStdGen as the return value it didn't though.
audreyt cool :) 05:54
lanny Very. Deep magic but cool.
audreyt you'll get used to it pretty soon...
audreyt is still fighting with SvNIOKp 05:55
clkao: I completed your t/perl5/* TODOs :)
lanny Ok. Back to the drawing board. It didn't actually give me an srand().
audreyt lanny: you need to fix "rand" as well 05:57
lanny I'm confused. There is a rand in Prim.hs 05:58
audreyt getStdRandom (randomR (0, if x == 0 then 1 else x))
yes i mean that one
change the randomRIO part to the line above
lanny Will do. I was getting from the docs though that setStdGen resets the one in the IO Monad that RandomRIO used. 05:59
audreyt very possibly so
$ ./pugs -e 'my $x = eval(q[sub { return $_[0] }], :lang<perl5>); say $x(123).WHAT' 06:00
Int
yay
TimToady ooh, shiney, except for the grubby bits... 06:01
lanny Are there other places I should declare srand(). Still giving 'no compatible subroutine found: "&srand"' 06:07
audreyt did you add it on the table below? 06:08
line 1812
lanny Nope. :) Didn't even bumble across that. 06:09
Woot. 'Looks like 2 tests of 24 passed unexpectedly.' 06:13
audreyt that's my favourite diagnostics message :) 06:17
lanny Thanks once again for all your help, audreyt. It's greatly appreciated.
audreyt thank _you_ for persisting :) 06:20
commit?
lanny Working it. Just going back over Prim.hs to see if there were things I should have read first before bothering folks.
svnbot6 r13658 | audreyt++ | * Pugs/Perl5 embedding overhaul: 06:21
r13658 | audreyt++ | Passing mutable Scalar, Hash, Array, Code, Pair and Handle objects
r13658 | audreyt++ | into Perl 5 land now creates the correct tie() SVs there.
r13658 | audreyt++ | ( To pass in a scalar, use the "func(VAR($x))" syntax.)
r13658 | audreyt++ | * Native values (Undef, IV, NV, PV) from Perl 5 land now occurs in
r13658 | audreyt++ | Pugs land as native values, not doubly-boxed SV pointers.
06:22 kyrbe joined
svnbot6 r13659 | audreyt++ | * Rework, unTODO and triage t/perl5/ a bit now we have a 06:23
r13659 | audreyt++ | roundtrippable embed layer.
r13660 | lanny++ | [src/Pugs/Prim.hs]
r13660 | lanny++ | - added srand()
r13660 | lanny++ | [t/builtins/math/rand.t]
r13660 | lanny++ | - removed :todo from srand() tests
06:25 marmic joined
bsb TimToady: re: processing big YAML files, IO::YAML++ for streaming yaml in perl5 06:29
needs a stream of independent docs though
lanny Goodnight, all. 06:30
audreyt libyaml also streams 06:32
syck can stream too but I havn't got a round tuit... in anycase ingy's pyyaml port will provide it
bsb go ingy! 06:43
webmind streaming yaml ? yay :) 06:51
svnbot6 r13661 | lwall++ | More p6regex tweaks. 06:53
06:54 penk joined 07:02 kastol joined
gaal streaming syck is required for streaming .yaml/eval :lang<yaml>, but not sufficient 07:03
07:04 xerox joined
svnbot6 r13662 | audreyt++ | * Pugs.AST.Internals: Repair "make ghci". 07:10
07:11 marmic joined, renormalist joined, f0rth joined
svnbot6 r13663 | audreyt++ | * Pugs.Parser: $() now means $$/, @() means @$/, %() means %$/, etc. 07:14
r13664 | audreyt++ | * Do not parse @<< in this release -- only consider |<<.
07:16 f0rth_ joined 07:18 zakharyas joined 07:26 ofer0 joined 07:31 iblechbot joined 07:34 polettix joined
svnbot6 r13665 | lwall++ | t/02-test-pm/1-basic.t: :perl5{pat} should be :P5 {pat} 07:41
07:44 buetow joined 07:48 ofer0 joined 07:49 Fuzie joined, ludan joined 07:52 ruoso joined
mugwump ?eval all(1,2,3,4) =:= one(1,2,3,4) 07:54
?eval all(1,2,3,4) == one(1,2,3,4)
mugwump humbugs
08:09 szabgab joined, gaal joined 08:18 ludan joined 08:22 jferrero joined 08:25 drrho joined
audreyt ?eval 1 08:38
08:46 kane-xs joined
svnbot6 r13666 | audreyt++ | * srand(): Generate the default seed only if there's no incoming seed. 08:51
r13667 | audreyt++ | * Do not clear away "sub f { state &x ::= sub {... } }" 08:54
r13667 | audreyt++ | upon closure cloning and re-entry.
09:03 kanru joined 09:19 nothingmuch_ joined 09:23 nothingmuch_ is now known as nothingmuch 10:00 elmex joined 10:06 foo\ joined
svnbot6 r13668 | audreyt++ | * perl5/exception_handling.t: Another rx:Perl5{} typo. 10:10
r13668 | audreyt++ | I wonder if this warrants a special warning or something...
r13669 | audreyt++ | * scope.t: Fix incorrect plan number.
r13670 | audreyt++ | * short_circuit.t: Now that I've committed some smartlinkable 10:13
r13670 | audreyt++ | text to S03, this no longer needs to link to E03...
r13671 | audreyt++ | * "sub f ($x is lazy) {...}" is now guaranteed to not evaluate
r13671 | audreyt++ | its argument more than once.
r13671 | audreyt++ | * Switch chained comparison such as "1 > 2 > die('not reached')
r13671 | audreyt++ | to use "is lazy" parameters, so they can short-circuit properly. 10:14
10:17 evalbot_r13669 joined
svnbot6 r13672 | audreyt++ | * In chain comparison, force the thunk before going into the actual 10:41
r13672 | audreyt++ | infix comparator, so this can work correctly:
r13672 | audreyt++ | 1 === 1 === 1
r13673 | audreyt++ | * Be very paranoid and don't assume that TVar is (void *) underneath.
r13674 | audreyt++ | * In "$x =:= $x", take advantage of the built-in pointer
r13674 | audreyt++ | stringification of mutable cells to derive a more accurate =:=.
10:55 KingDiamond joined
svnbot6 r13675 | audreyt++ | * Oops, forceThunk was ran too early and undid the short-circuiting code. 11:02
r13675 | audreyt++ | This should Fix It For Real.
11:05 cmarcelo joined
cmarcelo audreyt: ahoy 11:05
11:06 weinig joined 11:07 weinig is now known as weinig|bbl
audreyt cmarcelo: heya 11:08
nothingmuch audreyt: MO might get delayed, my lapto pis dying
yay apple
audreyt oh noes
nothingmuch at least i got one repair within the warranty period 11:09
audreyt versus 0 for me
nothingmuch (this one won't be, and i'm 90% sure it's a hardware issue because the freezes continue even when booted from a rescue cd)
well, i *was* being cynical
and I'm not nearly as bad as you
you're special ;-)
audreyt $?AUDREYT
anymoose, you turned it in to repair? 11:10
nothingmuch not yet
that's a 1.5 hour drive
audreyt ah. k
nothingmuch and i'm reluctant to do so till absolutely sure
audreyt triaging is going quite well
nothingmuch because they will happily fry my disk
audreyt strangely I don't think I have any questions re ::Overview
nothingmuch okies
audreyt oh? surely you can dd it out first, or let them use another hd 11:11
nothingmuch if i can get it into fw disk mode (haven't tried yet, that's the next step)
audreyt probablyy can
nothingmuch last time i couldn't ;-)
audreyt oy :)
maybe you are special after all...
nothingmuch maybe i'll get $boss to buy me a new one 11:12
stevan: $boss, ya hear?
after all, it *is* already 1.5 years old
well, 1.24
1.25
cmarcelo audreyt: (away lately because $job is pushing =P) re: H.Hash in Pugs.Internals... although most tests works with H.Hash it seems a little unstable since now and then some tests starts to breakdown (segfault, segfault at the end etc). the last timing comparison I taken the ratio is about 0.94 (trimming the unicode hack). maybe pushing some new and more "hardcore" tests to HsJudy/t will be more helpful now... 11:13
audreyt indeed 11:14
segfault at the end is the most commonly observed one
whew, down to <700 subtests fail again (and it won't get any higher than this) 11:15
still 90 test files to go...
@tell TimToady why is [,]() specced to Array not Seq? also, any(1,1,1) ~~ {...} can't function as grep to return (1,1,1), can it? or is the any() not actually invoking &any here? 11:17
lambdabot Consider it noted.
cmarcelo audreyt: besides the Judyness, any Hs task floating around that I could try? or suggestion where I should begin reading/"groking" the sources? :) 11:21
audreyt well, there's a quite independent-of-the-upcoming-release task 11:23
darcs get nothingmuch.woobling.org/MO 11:24
read MO::Overview and tests
lambdabot Title: Index of /MO
audreyt and see if we can work out a straight Hs port
which does not need to use any existing pugs code
and then hook it into the capture convention 11:25
11:25 frederico joined
cmarcelo thanks. i'll check it out. but, what you mean by "hook it into the cap conv"? :o) 11:29
audreyt there's this docs/Perl6/FAQ/Capture.pod that serves as a somewhat gentle intro to captures 11:32
we're currently halfway switching from the old calling convention that takes a list of posisional and a map of nameds
into a new calling convention that takes a Capture, which contains multiple feeds, which each contains positionals and nameds, and each name can refer to multiple values 11:33
pasteling "cmarcelo" at 200.232.236.136 pasted "error in darcs get" (15 lines, 908B) at sial.org/pbot/19971
audreyt nothingmuch: see the paste
you have a 403 on your _darcs 11:34
11:36 weinig|bbl is now known as weinig
audreyt TimToady: +^0 is -1 on the spec, but ~0 is 4294967295 on perl5. is -1 correct? 11:36
@tell TimToady +^0 is -1 on the spec, but ~0 is 4294967295 on perl5. is -1 correct?
lambdabot Consider it noted.
audreyt cmarcelo: oh well. get from perlcabal.org/~audreyt/tmp/MO/ isntead 11:41
lambdabot Title: Index of /~audreyt/tmp/MO
11:43 markstos_ joined
cmarcelo audreyt: it worked. tks. i'll read this stuff then.. 11:46
audreyt @pl \jtyp -> return . VJunc $ MkJunc jtyp Set.empty Set.empty 11:47
lambdabot return . VJunc . (. (empty Set . empty)) . flip MkJunc Set
audreyt cmarcelo++
cmarcelo :) .. gotta go! bbiab (hopefully with questions :o) & 11:49
11:51 agentzh joined
svnbot6 r13676 | audreyt++ | * Pugs.Eval: Squash a warning. 12:06
r13677 | audreyt++ | * Add the negation forms, such as [!==] [!eqv], to foldable operators. 12:09
audreyt for some reason haskell won another ICFP for the third year now... 12:10
gaal didn't BASIC have something to do with it...? 12:14
xerox audreyt: yarrr!
xerox slaps gaal around a bit with a large VB 9.0
svnbot6 r13678 | audreyt++ | * Pugs.Prim.List: Add support for list-associative reductions, such as [|]. 12:16
r13678 | audreyt++ | * Also added identity values for the builtin reduceable operators from S03.
12:20 markstos_ left
gaal xerox: don't dis, yo. there actually was basic in this challenge. 12:21
svnbot6 r13679 | audreyt++ | * Vain attempt to silence 6.4 compilation error
xerox gaal: yeah, I know. There's a video on video.google.com of this year's icfp presentation. 12:22
gaal `ghc 2> /dev/null`
ooh!
xerox You should watch it, it's very funny. a bit shakey, but very funny.
gaal goes to watch that
audreyt xerox: url?
xerox @where icfpcontest-video
lambdabot I know nothing about icfpcontest-video.
xerox @where icfpcontest
lambdabot I know nothing about icfpcontest.
xerox @where icfp-video
lambdabot I know nothing about icfp-video.
svnbot6 r13680 | audreyt++ | * unTODO =:= nonbug
xerox Gnnnhhhhkkk..
gaal @google video icfp video
lambdabot video.google.com/videoplay?docid=64...9756184531
Title: ICFP programming contest 2006 results - Google Video
gaal er
xerox @google icfp site:video.google.com
gaal heh.
lambdabot video.google.com/videoplay?docid=64...9756184531
Title: ICFP programming contest 2006 results - Google Video
xerox hehe
gaal wow terrible video quality 12:24
svnbot6 r13681 | audreyt++ | * Even more GHC 6.4 voodoo...
r13682 | audreyt++ | * More GHC 6.4 voodoo... 12:33
12:37 evalbot_r13682 joined
SamB gaal: yeah, I heard it was 15 fps with a keyframe once in a blue moon 12:38
audreyt ?eval 1 > 2 > die(3)
evalbot_r13682 Bool::False
xerox hehe, but it's okay. 12:39
audreyt wow, D took second place. 12:45
indeed D is a good VM language :) 12:46
xerox hehe 12:48
1st. 2D, 2nd. D, I was especting 3rd. 1/2 D or something.
12:52 iblechbot joined 13:07 prefiks joined
svnbot6 r13683 | fglock++ | v6 - t/data_types/array.t passes all tests 13:13
13:21 xinming joined, vel joined 13:26 crem_ joined 13:32 ofer1 joined 13:37 dakkar joined, frederico joined 13:42 agentzh left 13:45 ruoso joined, weinig is now known as weinig|away 13:58 Odin-LAP joined 13:59 xerox- joined 14:04 mako132 joined
svnbot6 r13684 | audreyt++ | * Implement hyperfold and hyperscan: [>>+<<] and [\>>+<<]. 14:04
ajs_work "Implement hyperfold and hyperscan" ... should I be readying the away team? 14:07
audreyt lol 14:09
audreyt beams ajs_work down
ajs_work no, I'm wearing a red shirt!!!! 14:10
[particle] perhaps \ . should be called hyperspace
audreyt it's somewhat dangerous to wear a red shirt in .tw noawdays...
can get random maimed on street
ajs_work ouch! 14:11
obra yikes
14:17 hexmode joined, xerox_ joined 14:22 jferrero joined 14:27 discordja joined 14:33 chris2 joined 14:59 nnunley joined 15:01 Southen_ is now known as Southen
ajs_work ?eval class A { has $.x; } my $y = \(:x<1>); my A $z .= new(|$y); 15:06
15:06 evalbot_r13682 is now known as evalbot_r13684
evalbot_r13684 Error: Must only use named arguments to new() constructor Be sure to use bareword keys. 15:06
audreyt *nod* |$y is currently noop outside capture literals 15:17
15:17 justatheory joined
svnbot6 r13685 | lanny++ | [t/builtins/math/rand.t] 15:32
r13685 | lanny++ | - srand test demonstrating edge condition
15:43 ludan joined 15:50 ofer1 is now known as eval, eval is now known as ofer0 15:51 kanru joined
TimToady audreyt: Int has an infinite number of bits, so -1 is the only way currently to indicate that they're all 1. Plus using the sign bit for this allows us to have bitmasks that are all 1 above the biggest bit we care about, assuming an infinite 2's complement notation. 15:54
lambdabot TimToady: You have 5 new messages. '/msg lambdabot @messages' to read them.
TimToady @messages
lambdabot audreyt said 2d 2h 54m 34s ago: Maybe sub (\$x) {...} is now sub (*|x) {...} for consistency?
audreyt said 2d 2h 53m 40s ago: That will also play well with |<< replacing [,], effectively making \ thec constructor and | the destructor
audreyt said 2d 1h 44m 11s ago: I wonder if scalar(1) makes a mutable scalar and item(1) makes simply 1...
audreyt said 4h 36m 59s ago: why is [,]() specced to Array not Seq? also, any(1,1,1) ~~ {...} can't function as grep to return (1,1,1), can it? or is the any() not actually invoking &any here?
audreyt said 4h 18m 5s ago: +^0 is -1 on the spec, but ~0 is 4294967295 on perl5. is -1 correct?
15:55 elmex joined
TimToady [,]() is specced to Array because [\,] is supposed to return List of Array, and if Seq are like parentheses then they interpolate into lists. 15:57
I think any() transmutes to something else when participating in a boolean in list context. 15:58
we're basically trying to mimic English with junctions, not set theory. 15:59
but we could use something else than a junction there. 16:02
@x = each(@foo) < 20; comes to mind 16:03
lambdabot Maybe you meant: . v
TimToady Maybe I did't.
*didn't
@tell agentzh yes, you can use that picture
lambdabot Consider it noted.
16:04 nox_ghost joined
audreyt TimToady: infinite number of bits... what is +^1 then? 16:05
TimToady the sign just tells you what all the upper bits are. that's just -2 16:06
audreyt aha.
TimToady arbitrary precision 2's complement
maybe I just don't understand how Seq behaves, and we need different notation to avoid confusion with the autoflattening list parens. 16:08
but I can pretty much guarantee that most P5 programs won't get the distintion between Array and Seq at all. 16:09
*distinction
*programmers
(and programs :) 16:10
perl -le 'print +((1),(1,2),(1,2,3))' 16:12
112123
?eval [\,] 1,2,3 16:13
16:13 evalbot_r13684 is now known as evalbot_r13685
evalbot_r13685 Error: No compatible subroutine found: "&prefix:[\,]" 16:13
16:14 mauke_ joined
TimToady ?eval say ((1),(1,2),(1,2,3)) 16:14
audreyt tests... welcome :)
evalbot_r13685 OUTPUT[112123 ] Bool::True
TimToady unfortunately $job ~~ 37`MB 16:18
audreyt hm, sleep sounds like a good idea now
TimToady smoke just finished... 16:19
wolverian MiB? :)
TimToady sophistry
yay, for first time in history passed > 12000 tests. 16:20
wolverian I just think it'd be nice to have constant prefixes
or prefixes in general...
TimToady in this particular case I determined the size by visually dividing by 10**6, not by 2**20, so it really is MB 16:21
16:21 Psyche^ joined
wolverian ah. 16:22
TimToady though to be precise, it's $job ~~ (37..^38)`MB
hmm
you can't say int($job) ~~ 37`MB 16:23
if you don't know what units $job is in.
wolverian if you do, it can survive int(), right?
TimToady but suppose $job though it was in GB or KB? 16:24
*thought
[particle] hopes $job is in USD/hr units
obra [particle]: actually USD/annum 16:25
wolverian surely you can make 10`MB ~~ 10`KB compare smartly
[particle] sux if you work half a year ;)
TimToady if I was actually paid for the hours I work directly for the company, I'd be a lot poorer than I am.
does 10`MB ~~ 10_001`KB? 16:26
what's the desired precision?
wolverian omega :)
let ~~ take :precision 16:27
wolverian shrugs
16:27 timbunce joined
TimToady hmm, I'd tend to say the precision should be specified by the pattern on the right. 16:27
so 10`MB ~~ 10_001`KB would be false, but 10_001`KB ~~ 10`MB would be true. 16:28
theorbtwo Asymmetric ~~ has always seemed a bit odd to me, but it's already in plenty of other places.
16:29 mauke_ is now known as mauke
wolverian that sounds sane 16:29
TimToady "100000" ~~ /^10/
well, units probably aren't for 6.0.0 anyway...
prolly just comes in with "use units <MB KB>" 16:30
wolverian use SI?
TimToady "use units :SI"
use units * to get everything the units database defines 16:31
wolverian yay.
TimToady use * to do path search for any unknown function.
theorbtwo ponders, again, writing a sane tied units module for p5.
TimToady *; to preload everything in a PHP fashion (non strict only)
wolverian all(*)("multiverse"); 16:32
TimToady why restrict it to the multiverse?
wolverian my imagination fails.
ah, I see. 16:33
TimToady I have wondered what *(...) returns though...
wolverian all(*)(*);
TimToady "just call something with these arguments."
wolverian closest MMD match .... erm. needs a tie breaker.. most used wins? ;)
TimToady maybe that's call(...) 16:34
should probably reserve *(...) for some kind of modified Whatever though. 16:35
*(grep { not /fnord/ })
actually, if * is a type then *($x) just means "cast to whatever". 16:36
audreyt @result = any(@x) ~~ {...} 16:37
TimToady probably meaning search all available explicit casts and do it implicitly.
hmm?
audreyt @result = (item any(@x)) ~~ {...}
16:37 Psyche^ is now known as Patterner
audreyt currently evaluates differently, right? 16:37
s/item/$_=/ 16:38
# also that
I'm just wondering which macro is responsible for this
the chained-comparison rewriter seems most natural, as it's a runtime thing that can respond to context 16:40
in which case it doesn't have to be an any() expression
merely something that evaluates to a Any junction
on the other hand, it doesn't play well with short-circuiting
for 1 > 2 > something_evaluating_to_any_list() { ... } 16:41
does the loop get a False, or an empty list?
TimToady we could limit it to first two terms, I suppose...
[particle] wonders about (*|*) and (*&*) 16:43
audreyt and in item context, this magick disappears?
TimToady this is kinda inside-out in the same way that autothreading parameters are...
(*ā…‹*) 16:44
audreyt ?eval (1|3) < (2|4)
evalbot_r13685 ((Bool::False | Bool::True) | (Bool::True))
audreyt in list context that will become (1, 3) ?
TimToady presumably. 16:45
audreyt hm, junctive autothreading doesn't work well with short circuiting in general
because short-circuit delays evaluation, but junction demand full evaluation because later arguments can usurp earler ones if it's conjunction 16:46
/injunction
gaal what's injunction? 16:47
TimToady in boolean context (1|3) < (2|4) can conceivably be quite lazy
none(), I think 16:48
gaal ah, makes sense.
audreyt right. conjunction is all()
what I mean is
TimToady I forget one()
gaal what's one()
?
audreyt abjunction
one(...) < one(...) < all(...)
here all() must actualy be wrapped on the outside 16:49
all( (one(...) < one(...) < allElem1), (one(...) < one(...) < allElem2), ...)
but short circuit says in A < B < C 16:50
TimToady *nod*
audreyt evaluate C only if A < B is true
and so currently we fail miserably...
?eval one(1,2) < one(3,4) < all(5,6)
evalbot_r13685 Error: Cannot cast from VJunc all(VInt 5,VInt 6) to Double (VNum) 16:51
TimToady I think we say that chained is allowed to short-circuit in any order, and don't use side effects?
gaal By abstriction this fungus makes spores: / The sporophore coyly ignores / The septum, whose growing / (Like biblical knowing) / Shears spores, then rolls over and snores.
# abstriction is a synonym of abjunction
# found here: www.oedilf.com/db/Lim.php/?Word=abjunction
audreyt short-circuit in any order?
lambdabot Title: OEDILF - Word Lookup, tinyurl.com/qhjkt
audreyt not sure what it means... you mean
one(1,2) < one(3,4) < die("horribly")
is allowed to die horribly?
1 > 2 > die("horribly") 16:52
16:53 rindolf joined
rindolf Hi all. 16:53
ingy: here?
ingy hi rindolf 16:54
maybe I should just give rindolf my phone number... ;)
rindolf Hi ingy 16:55
ingy: you still haven't updated IO::All.
ingy rindolf: you are correct
rindolf ingy: does it have an svn repository? 16:56
ingy yes
do you want commit access?
msg me: htpasswd -bc dev/tty userid passwd 16:57
rindolf ingy: OK.
svnbot6 r13686 | fglock++ | v6 - fixed Type x keyword
ingy if you prepare the release, I'll upload it
:D
rindolf ingy: did you receive my /msg ? 17:03
17:05 rodi joined 17:18 Aankhen`` joined 17:29 mdiep joined
rindolf ingy: ping. 17:35
ofer0 ping reply
svnbot6 r13687 | audreyt++ | * Junctional autothreading in chained comparisons now works 17:36
r13687 | audreyt++ | again, but they take effect localally -- i.e.,
r13687 | audreyt++ | any(@a) < any(@b) < all(@c)
r13687 | audreyt++ | still doesn't evaluate all(@c) if the first comparison
r13687 | audreyt++ | evaluates to False.
justatheory karma audreyt
jabbot justatheory: audreyt has karma of 1507
obra karma perl6 17:41
jabbot obra: perl6 has karma of 2
obra perl6++
rodi karma obra 17:42
jabbot rodi: obra has karma of 14
[particle] perl6 += karma(audreyt)
theorbtwo karma p6 17:43
jabbot theorbtwo: p6 has neutral karma
theorbtwo perl6++
rodi karma rodi 17:44
jabbot rodi: rodi has karma of 21
rodi rodi--
karma rodi
jabbot rodi: rodi has karma of 20
rodi ouch!
man, I'm an idiot. rodi--
oops!
17:45 araujo joined
TimToady audreyt: I think that's probably incorrect if the middle term resolves to two non-intersecting sets, one of which makes the left true and the other of which makes the right true. 17:49
my feeling is that junctional logic trumps short-circuiting behavior in chained ops.
and the entire chain (or at least the subchain extending from the first junction to the last) must be evaluated as a single threaded function. 17:50
7 < any(1..10) < 3 must return false, in other words 17:51
the promise of a junction that you don't care about side effects needs to be stronger than the promise of order of execution in this case. 17:53
17:57 buetow joined
TimToady basically, declarative trumps imperative here. 17:57
[particle] ...while logical hides in the corner, whispering to oo. 17:58
rodi WOPs in the other corner. 17:59
The named assertions in doc/Perl6/Overview/Rule.pod are (mostly) implemented in Pugs, and (mostly) not listed in S05. Some have tests in t/ and some don't. Is any of these more "official"? Should I assume the superset? 18:00
audreyt TimToady: uhm, any() in 2nd position is fine
but what about
2 < 3 < this_returns_some_junction(); 18:01
or do you say that we hardcode on &any etc?
i.e have
2 < 3 < any(...)
behave differently from
2 < 3 < try { any(...) }
?
(s/2 < 3/3 < 2/ as needed) 18:02
3 < 2 < any(die(1))
if that should die instead of returning false
how do I tell that apart from
3 < 2 < do { any(die(1)) }
?
18:04 KingDiamond joined
TimToady I think relying on side effects in chained ops is probably erroneous in general. 18:05
18:05 beppu_ joined
TimToady on the any in list context, how 'bout instead we use those(): 18:05
for those(@foo) < 32 {...}
audreyt hm. so maybe chained ops evaluates all their arguments anyway 18:06
which aids MMD as well
TimToady we have other ways to ensure short-circuiting behavior 18:07
audreyt and then the A03/E03/S03 passage on short circuit gets dropped?
3 < 2 and 2 < do {...}
which makes it clear that junctions doesn't even enter the picture here
rindolf Hi audreyt, TimToady
TimToady I think that's a good conservative position, though if we guarantee all are evaluated people will probably start depending on that too, sigh... 18:08
rindolf ingy: ping.
audreyt or we spec that in
3 < 2 > all()
it's two functions with 2 args each
not one with weird redispatching 18:09
and so it's strictly equiv to
3 < 2 and memoized_2 > all
and so junctive autothreading doesn't enter the picture here
TimToady only if we can be sure to unify the middle to the same value.
audreyt yup. it's as currently implemented
TimToady so 7 < any(1..10) < 3 will fail? 18:10
audreyt in that particular case 18:11
it fails no matter how we evaluate it...
TimToady depends on whether you consider any(1..10) to be a memoizable value
7 < any(1..10) and any(1..10) < 3 is true
rindolf nothingmuch: here?
audreyt ah. indeed 18:12
TimToady those need to be quantumly entangled
audreyt ?eval 7 < any(1..10) < 3
18:13 evalbot_r13685 is now known as evalbot_r13687
evalbot_r13687 (Bool::False) 18:13
TimToady good
hmm, I wonder if those() gets us list comprehensions 18:14
audreyt good, I think stepwise juncapply is very safe 18:15
in any A cmp B cmp C
I mean, for all A cmp B cmp C
if B is a junction, then it threads over A and C correctly
it's just we don't get nonlocal behaviour 18:16
namely if C is a none()/all(), it still doesn't execute if AcmpB turns out to be False
18:17 foo\ joined
PerlJam TimToady: @Larry still has the weekly cabal call, right? Why don't you guys just use IRC like they do for #parrotsketch? Everyone (now) uses IRC. 18:19
(just curious) 18:20
audreyt sometimes voiceband is more efficient for nontechnical design sessions... 18:23
TimToady And TheDamian is the counterexample to your assertion that Everyone (now) uses IRC. 18:24
and to amplify audreyt's point frankly, sometimes there is benefit in off-the-record conversations when the goal is to understand a situation without inflaming it. 18:28
this can, of course, be abused... 18:29
audreyt wow, 2:36am. and to think I need to be up in <7hr... 18:36
audreyt vanishes in a puff of logic &
TimToady nighty-night.
xerox_ haha
> fix ("meta-"++) ++ "genious" -- the puff of logic. 18:37
lambdabot "meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-meta-...
TimToady 8 < $audrey < 7
Juerd $audrey's a junction? 18:40
[particle] consortiums are like junctions 18:42
18:44 vel joined 18:47 bernhard joined
svnbot6 r13688 | fglock++ | v6 - implemented $array.map() 18:55
rindolf pokes ingy
18:59 discordja joined
TreyHarris so is syn r12432 correct or not? does 1 > $x++ > 2 increment $x once, or twice? 19:01
19:08 nox_ghost joined 19:10 kyrbe joined
TimToady ?eval my $x; 1 > $x++ > 2; say $x 19:17
19:17 evalbot_r13687 is now known as evalbot_r13688
evalbot_r13688 OUTPUT[1 ] Bool::True 19:17
TimToady ?eval my $x = 1; say 1 == $x++ == 1 19:18
evalbot_r13688 OUTPUT[1 ] Bool::True
19:19 kyrbe joined
rindolf I wonder where ingy has disappeared to. 19:21
19:21 c6rbon joined
svnbot6 r13689 | fglock++ | [Pugs-Compiler-Rule] 19:32
r13689 | fglock++ | - added Pugs::Grammar::RulePure - pure-Perl6 version of the Rule grammar;
r13689 | fglock++ | - this file currently can't be run due to PCR/v6 incompatible calling conventions
r13690 | fglock++ | v6 - fixed Data::Bind calling convention in $a.map(->{...}) 19:38
TreyHarris TimToady: yes, i know that it works that way today... but it sounded like from your and audreyt's discussion a bit ago that 1 > $x++ > 2 evaluating as 1 > $x++ and $x++ > 2 was on the table as a possibility (making 1 > $x++ >= 1 potentially true...) 19:40
19:46 larsen joined
svnbot6 r13691 | fglock++ | v6 - added .yaml method to Pugs::Runtime::Perl5Container hash & array 19:46
TreyHarris & # commute
svnbot6 r13692 | fglock++ | v6 - fixed hash sigil in last commit 19:52
r13693 | lanny++ | * srand(): don't default_seed_algorithm() unless no argument
r13693 | lanny++ | * rand.t: put in a couple of srand(0) tests.
19:56 weinig|away is now known as weinig
ingy rindolf: here 20:11
rindolf ingy: hi
ingy I was $working...
rindolf ingy: I see.
ingy: well, I /msg'ed you the htpasswd output 20:12
ingy: ping 20:13
ingy rindolf: you are set to jet 20:14
afaict
rindolf ingy: URL?
ingy oh
svn.kwiki.org/ingy/IO-All
lambdabot Title: Revision 2888: /IO-All
rindolf ingy: OK. 20:15
ingy rindolf: thanks. sorry for being so ingish 20:16
rindolf ingy: is there anyway to create tags or branches there?
ingy not yet
use svk :P 20:17
rindolf ingy: a few of the tests fail. 20:18
And "svn st"'s output is not empty. 20:19
OK, the svn:ignore is fixed now. 20:21
20:25 xerox_ is now known as xerox, jferrero joined
rindolf ingy: seems this is caused by the .svn directories there. 20:31
20:31 kastol joined
rindolf They interfere with the All_Files count. 20:31
20:33 nox_ghost is now known as ofer0
ingy rindolf: all the tests need to pass :) 20:33
ok I'm leaving for a while 20:34
I'll check back later
rindolf ingy: OK. 20:39
20:41 fglock joined 20:43 fglock joined 20:47 SubStack joined
kolibrie fglock++ # nice commits today 20:51
21:09 integral is now known as integral|ZzZzz
fglock kolibrie: :) 21:10
now looking for 'phd dropout' in google 21:12
kolibrie fglock: ?? 21:13
fglock my phd is in neurology - not really fun nowadays 21:15
kolibrie hmm
kolibrie thinks school stopped being fun at about age 12 21:17
though the first year of college was okay, too 21:18
21:20 justatheory joined 21:24 ofer0 joined 21:27 justatheory joined, lanny joined 21:28 larsen joined
svnbot6 r13694 | lanny++ | [t/builtins/math/*] 21:29
r13694 | lanny++ | - fix smartlinks to new S29
21:29 green joined 21:39 lollan joined 21:44 KingDiamond joined 21:47 dduncan joined
dduncan on building the latest Pugs, I get an error: /usr/bin/ld: Undefined symbols: _pugs_UndefVal ... is this known? 21:48
my GHC is 6.4.1
22:00 fglock left
TreyHarris dduncan: were you making from scratch? i ran into that once but a make clean fixed it 22:06
Patterner i'm making r13694 with 6.4.2 right now
dduncan I was not making from scratch
Patterner (with "make distclean" first :)
dduncan there is no prebuild 6.4.2 for Mac OS X, last I recall
TreyHarris dduncan: try clean first
dduncan usually when I clean, I "realclean" ... the haskell build takes up most of the time anyway, and any kind of clean usually redoes those anyway 22:07
is "distclean" more or less thorough than that?
Patterner no idea... 22:08
i may have used realclean nevertheless...
lanny looks line clean does an 'rm' over the usual suspects; distclean does 'realclean' + 'distcheck'
TreyHarris dduncan: dunno... i'm running 6.5.20060910 on os x ppc and 6.5.20060608 on os x intel 22:10
Patterner and "reallydistclean""?
dduncan is there a really...?
lanny There's a 'veryclean' 22:11
dduncan I understand that GHC above 6.4.x will soon become mandatory, so I may have to upgrade soon anyway
but are there OS X binaries for 6.5.x or do I have to build GHC from source?
TreyHarris intel or ppc? 22:12
dduncan PPC
lanny GHC stable is 6.4.2 so should at least have an hour or two warning before 6.4.x is no longer supported.
dduncan yes, but last I saw, 6.4.2 binary wasn't out for OS X yet ... it was lagging the other os'
TreyHarris lanny: AFAIK, the issue isn't ghc's stability... gaal and audreyt want to use features that aren't supported until the 6.6 release, so pugs may require a beta ghc regardless of its purported stability 22:13
dduncan it is still the case for 6.4.2: Coming soon: MacOS X (PowerPC)
so I should get used to a beta GHC then?
is there any risk like with some betas that this GHC may cause significant data risk ... eg, no install on production? 22:14
TreyHarris dduncan: i thought i'd seen a binary, but i can't find it. i built from source. other than having to wait 8 hours for it to compile, it was pretty painless
dduncan yes, I like the binaries ... one minute to install
TreyHarris dduncan: dunno, i don't use ghc for anything but pugs
well, and to play with haskell
dduncan ditto
lanny TreyHarris: Yes. I remember audreyt patching something for the next ghc beta for that reason.
dduncan afaik, Pugs 6.2.13 will support GHC 6.4.x, but Pugs 6.28 will require GHC 6.5.x+ ... so I heard 22:15
lanny I wonder though. Pugs is further along than I thought when I started looking at it again and it's been nice to play with it. With the need of a GHC beta that will hold back a lot of dabblers until binary builds are out.
TreyHarris lanny: depends on the definition of 'dabbler'.... there will be binary builds of Pugs itself, if you want to dabble with Perl 6. If you want to dabble with modifying Pugs... I dunno, I don't see requiring you to build a compiler in order to let you build another compiler as that big a hurdle, but maybe that's just me. :-) 22:17
lanny You won't find an argument on that from me. If there are binary builds for Pugs for different platforms that would address my concern. 22:18
For all the reality that building something as complex as Perl 6 takes time perl has taken a hit because everyone expected the standard miracles. 22:19
I'm gonna have to start programming in Java soon because we can't wait for perl6 for our next product. 22:20
mugwump wonders if his build on 6.4.1 will work
nperez lanny: do C# instead 22:24
heh 22:25
lanny I haven't even bothered to glance at C# (Which I first read as 'See Comment') 22:26
mugwump ruby! 22:28
or even python!
just built r13694 ok on ghc 6.4.1 22:29
with PUGS_EMBED=perl5
lanny seen lanny
jabbot lanny: lanny was seen 3 minutes 11 seconds ago
mugwump on Ubuntu Dapper Drake amd64 22:30
23:01 ofer0 joined
ajs_work Anyone know PGE fairly well and want to correct any bugs in this? en.wikipedia.org/wiki/Parrot_Grammar_Engine 23:20
lambdabot tinyurl.com/zvuxw
23:23 weinig is now known as weinig|bbl 23:33 beppu_ joined 23:37 agricola255 joined 23:38 agricola255 is now known as obladoc 23:44 mjk joined