pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz released! | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by audreyt on 17 October 2006. |
|||
root4o | tring this : | 00:07 | |
class test { | |||
method blah($a) { $a }; | |||
method blah($a,$b) { $a + $b }; | |||
} | |||
my $obj = test.new; | |||
say $obj.blah(a => 5); | |||
doesn't work | |||
if I remove second method it is ok.. | |||
TreyHarris | perlbot: nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
TreyHarris | root4o: multi method | ||
root4o | off.. sorry ;( | 00:08 | |
thanx | |||
eviltwin_b | yeh, that requires multi | 00:12 | |
root4o | yep, forgot ;) | 00:15 | |
TreyHarris | svn isn't working for me even for reads (assuming "svn up" and "svn stat -uq" count as a read) | 00:17 | |
00:22
nekokak joined
00:26
glasser` joined
00:27
Aankh|Clone joined
00:31
hikozaemon joined
00:54
mauke_ joined
01:10
polettix joined
01:16
nipotaway is now known as nipotan
|
|||
audreyt | temporary plan: setting up new machine may take time. so we're making feather the master | 01:22 | |
Juerd: I'll install CommitBit on feather and expose it thru http. | |||
clkao is getting the raw (cleaned up) svn dumps to feather | 01:23 | ||
will take some time to transfer auth tokens up | |||
01:24
glasser` joined
01:25
mauke_ is now known as mauke
01:32
thepler joined
01:47
trym_ joined
|
|||
audreyt | dinner, bbiab | 01:47 | |
root4o | trying "Method call vs. Subroutine call" in S12 | 01:58 | |
it seems that it is working the other way around | |||
i.e. it defaults to sub call not to method call | |||
?class test { method foo($a) { 'method' } }; sub foo($a) { 'sub' }; my $obj = test.new; say foo($obj); | 01:59 | ||
lambdabot | Unknown command, try @list | ||
eviltwin_b | root4o: lots of stuff isn't implemnted yet. (as of this morning Captures work, thank audreyt++) | 02:11 | |
root4o | yeah... i'm just testing...posting here just for information, so that the devs are aware ;) | 02:12 | |
TreyHarris | root4o: write a test | 02:15 | |
eviltwin_b is still waiting for darwinports to quit rebuilding the same stuff over and over and rebuild the satuff that actually needs it | 02:16 | ||
probably should give up and do it from scratch | |||
TreyHarris | though, of course, until svn is back, writing a test won't be too useful to implementors... | ||
root4o | i do it like :todo test , right ? if it doesn't work at the moment ? | ||
TreyHarris | no | ||
just write it | |||
audreyt or gaal or fglock or whomever will see it's failing, and then they'll either fix it or add a todo | 02:17 | ||
root4o | aha...so if it seems to me that something doesnt work...i ask here | ||
if it indeed didn't work i know it is not my error, but it is not implemented yet | 02:18 | ||
correct? | |||
TreyHarris | root4o: that's often useful... but also, just go to smoke.pugscode.org | ||
look at a recent smoke | |||
click the SYN link | |||
and find the part of the docs describing what you think is broken | |||
if there's no test, then it's almost definitely unimpl, and you should add a test | |||
if there's a test, you can see what the state is | 02:19 | ||
make sense? | |||
root4o | yes | 02:20 | |
02:21
shobadobs joined
02:22
mako132_ joined
02:46
SubStack joined
|
|||
svnbot6 | r14484 | raptor++ | adding tests for method vs sub call (S12) | 02:48 | |
02:57
thepler joined
03:23
cjeris left
03:37
rodrickbrown joined
03:46
glasser joined
03:56
stennie left
|
|||
svnbot6 | r14485 | audreyt++ | * meth_vs_sub_call.t: Fix plan number. | 04:00 | |
04:07
seano joined
|
|||
svnbot6 | r14486 | audreyt++ | * Pugs.Prim: Rename "atomically" to "contend" and "retry" to "defer". | 04:07 | |
TimToady | audreyt: can we delay decision on statement bare block till after we see if there is something after it, so that {}.perl and such don't violate Least Surprise? | ||
I though you used defer for something else already... | 04:08 | ||
*thought | |||
bsb | Scalar::Defer? | 04:09 | |
audreyt | scalar::defer but are we getting that in p6? | 04:10 | |
TimToady | oh, was that only p5? | ||
audreyt | yeah | ||
TimToady | okay, np. | ||
audreyt | re after it, not sure good idea | ||
consider | |||
{ ... } | |||
.say for @foo; | |||
TimToady | that reduces on end of line } rule though | 04:11 | |
almost any real bare block is going to have } on its own line. | |||
audreyt | sorry, thought you were talking about that | ||
TimToady | ?eval { say "hi" }.perl | 04:12 | |
evalbot_r14485 | OUTPUT[hiā¤] "\\undef" | ||
TimToady | that's rather bogus | ||
audreyt | how did that get reduced? | ||
TimToady | decided } ended bare block, and .perl is $_.perl | ||
is my guess | 04:13 | ||
audreyt | that's correct... | ||
fixing | |||
done | 04:17 | ||
so, maybe. | |||
maybe {} is statement level? | |||
svnbot6 | r14487 | audreyt++ | * Standalone blocks must terminate a statement on its own. | ||
audreyt | or is it both prefix and chaining binary? | ||
or is it something else? | |||
the original syntax was | |||
my $x = ({ ...}.or_else:{...}.or_else:{...}).(); | 04:18 | ||
but not sure what &maybe looks like | |||
TimToady | yes, I think it was intended as syntactically equiv to if/elsif/else without the conditionals... | 04:19 | |
audreyt | but those are stmtlvl | ||
TimToady | so it's more like else/else/else | ||
audreyt | so to get rv use do? | ||
$rv = do maybe {this} maybe {that} | |||
that's almost pretty. | |||
TimToady | $rv = do | 04:20 | |
maybe {this} | |||
maybe {that} | |||
s/\x20// | |||
I think it works okay. | |||
audreyt | but wouldn't that end stmt on first maybe? | ||
but anyway, do{} will fix that | |||
sure, implementing | |||
(just so I can show Real Code tomorrow :)) | 04:21 | ||
TimToady | no, maybe extends current statement like else. | ||
it really does parse a lot like else/else/else | |||
audreyt | but else only follows if | ||
so you mean | |||
this maybe {that} | |||
TimToady | and maybe only follows maybe. :) | ||
audreyt | ? | ||
heh, so it's still stmt lvl | |||
got it | |||
04:21
perlbot joined
|
|||
audreyt | the irreconcilables now has a new "SIMD vs MIMD" dimension... | 04:22 | |
(btw, GHC does SSE2 on x86_64 happily and will probably get that on x86 soon) | |||
so once we have unboxed arrays (which we'll get with newVal) | |||
then PDL stuff get vectorized | |||
TimToady | we're fine as long as it's Haskell's brain that explodes and not the user's... | ||
audreyt | yeah, perl6 is this huge soft water bed between it and the user... | 04:23 | |
TimToady | SSE2? | ||
audreyt | intel's vector opcodes | ||
SIMD stuff | |||
primarily for graphics folks | |||
@array_of_ints >>++ | 04:24 | ||
lambdabot | Unknown command, try @list | ||
audreyt | s/ /./ | ||
s:P5/ /./, even. | |||
TimToady | there was a slashdot last week about some of the games folks working on a *86/GPU chip | ||
audreyt | just had dinner with William Cook (programming chair of oopsla, the guy who did the initial denotational semantics of inheritance) | 04:25 | |
TimToady | cool | 04:26 | |
audreyt | and he appears to highly appreciate p6 taking out the private-member-access-of-superclasses part | ||
saying "that stuff has absolutely nothing to do with inheritance" | |||
TimToady | hmm, /home/larry/pugs/third-party/installed/lib/Pugs-6.2.13/ghc-6.6/libHSPugs-6.2.13.a(Parser.o):(.rodata+0x528): undefined reference to `Pugszm6zi2zi13_PugsziParserziLiteral_lvl208_closure' | 04:27 | |
audreyt | which I guess is common sense around here but, it's nice to hear nevertheless :) | ||
had a partially aborted incremental make? | |||
TimToady | I was just doing what TheDamian told me to there... :) | ||
yea | |||
audreyt | if the ^C happens between recursive modules | ||
then it does that. annoying :/ | |||
TimToady | well, doesn't take that long to rebuild. | 04:28 | |
audreyt | no other known ways than rm -rf dist/build/ | ||
TimToady | ?eval { say "hi" }.perl | 04:36 | |
evalbot_r14487 | "\{Syn \"block\" \{App \&say (: \"hi\")}}" | ||
audreyt | that is correct modulo we had bad deparse. | ||
TimToady | ?eval { :a(1,2,3) }<a> | 04:37 | |
evalbot_r14487 | [1, 2, 3] | ||
TimToady | good | ||
?eval {} | |||
evalbot_r14487 | undef | ||
TimToady | ?eval { :a(1,2,3) } | 04:38 | |
evalbot_r14487 | ("a" => (1, 2, 3)) | ||
audreyt | oy, I accidentally reverted | 04:39 | |
if 4 -> $x {...} | |||
support, right before release | |||
bad me :/ | 04:40 | ||
that was somehow rolled back along with the Judy changes | |||
TimToady | blame your fingers. | ||
audreyt | bbiab... | 04:43 | |
svnbot6 | r14488 | audreyt++ | * ChangeLog: Minor fixup, and note the fact that if/elsif/else | ||
r14488 | audreyt++ | didn't really take pointies... | |||
r14489 | audreyt++ | * Restore support for: | 04:49 | ||
r14489 | audreyt++ | if EXPR -> $x { | |||
r14489 | audreyt++ | ... | |||
r14489 | audreyt++ | } | |||
r14489 | audreyt++ | elsif EXPR -> $x { | |||
r14489 | audreyt++ | ... | |||
r14489 | audreyt++ | } | |||
r14489 | audreyt++ | else -> $x { | |||
r14489 | audreyt++ | ... | |||
r14489 | audreyt++ | } | |||
TimToady | er, else -> $x ??? | 04:51 | |
audreyt | yes so you know whether it was a 0 or a '' | ||
same as until | |||
seems consistent | 04:52 | ||
TimToady | k | ||
audreyt | there are as many interesting falses as there are trues.. | ||
TimToady | what a concept! | ||
audreyt | hm. what should defer do outside contend block? | ||
noop? | |||
also, what should maybe do? | |||
imlicitly contend itself? | |||
I'd certainly like autocontend for maybe | 04:53 | ||
TimToady | hmm | ||
outside of the lexical scope of a contend? | |||
04:54
justatheory joined
|
|||
TimToady | contend {{{{{{{{ maybe {} }}}}}}} could be expected to autocontend by the user | 04:54 | |
if they've forgotten the outer contend by then. | |||
probably not a huge issue, given common use will be directly inside a contend | 04:55 | ||
audreyt | dynamic scope actually | ||
TimToady | defer seems more like a control exception. | ||
audreyt | I think both are dynamic in nature | ||
if you think it as control exception | |||
then defer would refuse to work outside contend | |||
TimToady | in which case you can't know whether the maybe was intended to autocontend | 04:56 | |
audreyt | no, what I was saying is | ||
TimToady | so we probably ought not autocontend | ||
audreyt | maybe { foo } maybe { bar } | ||
is probably sufficient | |||
since nested contends are noops | |||
it seems to me that foo/bar must be atomic in nature | |||
and so maybe maybe should simply enter atomicity | 04:57 | ||
and defer should fail as a cont excp | |||
TimToady | I suppose the state of a set of maybes should be held by the autocontend around them in any case, rather than some further out contend that might be managing several maybe roundrobins | 04:59 | |
audreyt | hm, I thought maybes are syntactic groups | ||
right. | |||
exactly what you said. | |||
so hmm, that makes | |||
maybe {...}; | |||
exactly! | |||
the same as | |||
content {...}; | |||
TimToady | yes, except unless the contend is part of an outer maybe chain. | 05:00 | |
maybe {...} maybe {...} contend {...} might be syntactically legal. | 05:01 | ||
esp with newlines | |||
but the maybes are their own thing, and the contend something else. | |||
hmm. on p6l someone once asked whether you could say if $x {...}; else {...} | 05:02 | ||
don't think anyone ever answered... | |||
maybe {...} maybe {...}; maybe {...} is similar | 05:03 | ||
audreyt | <warnock> applied, thanks | ||
TimToady | I think if someone puts the semi, they probably intended to terminate the larger construct. | ||
but it's a lot of weight to put on a little semicolon, especially between maybe sets. | 05:04 | ||
audreyt | which is why I originally think it as infix | ||
which avoids the problem by shoving people into operator think | 05:05 | ||
TimToady | but then runs into last } on line issues | ||
audreyt | contend/maybe acting exactly like if/elsif ? | ||
svnbot6 | r14490 | audreyt++ | * recurrence-grep.t: temporarily disable loopign test | ||
audreyt | contend {...} maybe {...} maybe {...} | ||
TimToady | seems to break the parallelism of the roundrobin | 05:06 | |
audreyt | but not really | ||
we're just changing the name of the first maybe | |||
contend {... contend {...} maybe {...} } | |||
is totally legal | |||
TimToady | I think the intent of contend is inward looking while the intent of maybe is outward looking | 05:07 | |
so we shouldn't confuse them. | |||
audreyt | ok. implementing maybe chains as is then | ||
TimToady | good enough for now, and we can probably tweak later. | ||
TreyHarris | where were contend and defer and maybe discussed? i don't see them in synopses or on p6-l? | 05:09 | |
TimToady | they've only been discussed here | ||
audreyt | TimToady: see examples/concurrency/stm* | 05:10 | |
TreyHarris | ah, ok. i'll check scrollback then | ||
TimToady | but it's been a couple of months ago | ||
audreyt | coded up. | 05:11 | |
svnbot6 | r14491 | audreyt++ | * Implement maybe {...} maybe {...} STM round-robin retry chains. | ||
TimToady | actually, it was around July 1 | 05:12 | |
audreyt | so, another two primitives with GHC where we don't implement yet | 05:14 | |
svnbot6 | r14492 | audreyt++ | * Pugs.Prim: Remove retry_with. | ||
audreyt | one is unsafeIOToSTM | ||
where let you "say ..." anyway in a contend | |||
promising you don't carre about rollign it back. | |||
TimToady | the problem with autocontend around maybes is that defer wants to restart the official contend outside of that, not just the round-robin state container. | ||
audreyt | actually defer there is like "break" | ||
in that it goes to the next robin | |||
and only on end of chain goes to outer contend | 05:15 | ||
I think it's sane... | |||
root4o | is there some docs on contend/maybe | ||
audreyt | root4o: they just existed like, 5 minutes ago | ||
TimToady | for some reason I thought it started from the top but just selected the next path through. | ||
05:15
BooK_ joined
|
|||
audreyt | TimToady: an orElse chain has the same semantic as maybe chain | 05:15 | |
and I think retry in that falls to the next orElse first | 05:16 | ||
05:16
wilx joined
|
|||
audreyt | we can force it to go upward using a counter | 05:16 | |
but this current way is prolly fine | |||
anyway. unsafeIOToSTM. | |||
another primitive we don't expose is "assert" | |||
assert {...} | |||
runs the expression on each STM contention mutation point | 05:17 | ||
and if it evals false, then it's retried | |||
it implements the C in ACID | |||
(STM provides A/I) | |||
it sunds like a closure trait to me | |||
ALWAYS {...} | 05:18 | ||
ENSURE {...} | |||
or something, but not sure. | |||
TimToady | INVAR if you want to go all CSy, but I kinda like ALWAYS | 05:20 | |
maybe and CERTAINLY :) | 05:21 | ||
audreyt | INDEED {...} | 05:22 | |
gaal | FERSURE {...} | ||
TimToady | AMEN {...} | ||
{...} DARNIT | |||
gaal | YOUBET {...} | ||
audreyt | ALWAYS makes perhaps most sense... | 05:23 | |
TimToady | doesn't work as a closure trait if you regularly autocontend | ||
gaal | INVARIABLY, but that's long | ||
05:23
DHGE joined
|
|||
audreyt | it's actually not a closure specific thing | 05:23 | |
it's global within that contend | |||
so hm. | |||
TimToady | maybe {...} maybe {... } always {...} | ||
audreyt | contend {...} always {...} | 05:24 | |
TimToady | should it have access to lexical scope of contend? | ||
almost seems like it shouldn't | 05:25 | ||
audreyt | it should be dynaamic | ||
(it's dynamic in the host language) | |||
which means always as "else" makes sense | |||
gaal | is this assert prim a block that if fails, causes the transaction to be retried? | 05:26 | |
oh, 07:17 < audreyt> and if it evals false, then it's retried | |||
audreyt | yes and it's checked on every TVar update | ||
Tim Harris's work. lambda-the-ultimate.org/node/1500 | 05:27 | ||
lambdabot | Title: Transactional memory with data invariants | Lambda the Ultimate | ||
TimToady | contend if $whatever {...} | ||
maybe if $whatever {...} | |||
audreyt | "if" doesn't seem right | ||
05:27
Aankh|Clone is now known as Aankhen``
|
|||
TimToady | well, there's prior art in PRE/POST for blocks that are boolean context | 05:27 | |
esp if it gets sent around as a closure | 05:28 | ||
audreyt | yeah | 05:29 | |
ALWAYS spans in the entire dynamic downward graph | |||
svnbot6 | r14493 | audreyt++ | * Pugs.Parser: This is one statement not several: | 05:32 | |
r14493 | audreyt++ | maybe {...} | |||
r14494 | audreyt++ | * examples/stm-retry-with.pl: Clean up it a bit. It now runs just fine. | 05:35 | ||
r14495 | audreyt++ | * rename to stm-contend.pl | |||
audreyt | root4o: there's docs now... | 05:40 | |
svnbot6 | r14496 | audreyt++ | * Perl6::Spec::Concurrency: Update nomenclature. | 05:41 | |
audreyt | root4o: read the first 183 lines of svn.openfoundry.org/pugs/docs/Perl6...rrency.pod | ||
lambdabot | tinyurl.com/yjl9we | ||
audreyt | start from "=head2 No user accessible locks" | 05:42 | |
svnbot6 | r14497 | audreyt++ | * some more cleanup. | 05:44 | |
audreyt | TimToady: can any()/all() short circuit with data parallelism? | ||
that is | |||
any(1..999999999) > 0 | |||
taking constant time even if you don't have that many processor? | |||
(only during an collapsing bool-cxt operation, of course) | 05:45 | ||
TimToady | yes, junctions are allowed to bail out as soon as they're falsifiable or truifiable | ||
audreyt | yay | 05:46 | |
if any(1..9999).say { ... } | |||
will only print 1, then | |||
which is perhaps fine. | |||
(well, it will print 2+ numbers on SMP that didn't abort in time, but that's fine too) | 05:47 | ||
actually, junctional invocants are never really talked about | 05:48 | ||
iirc | |||
but it fallback to sub in this particular case | |||
but that means | |||
any($obj1, $obj2).meth | |||
TimToady | yes, junctions make no promise about how many side effects may or may not happen | ||
audreyt | can't go calling $obj1.meth and $obj2.meth unless they hapen to be exported meths | ||
or maybe it redispathch thru method first too... | 05:49 | ||
TimToady | unlike hypers, which guarantee all, but not necessarily in any order | ||
I would not expect any(@x).meth to vectorize prettily in general unless there's some way to prove that all the elements would dispatch the same way. | 05:52 | ||
audreyt | well but it can still SMP/Grid parallelise | 05:53 | |
which is a bigger win in general | |||
vectorize instructions only works for unboxed storage cells anyway | |||
TimToady | still, you'd expect any(1..100).abs to vectorize pretty well. | 05:54 | |
audreyt | *nod* | 05:55 | |
any(1..100).someIntMethod | |||
wouldn't neccessarily, though. | |||
TimToady | can have multis that pick individual values | ||
audreyt | $obj.*meth has nothing to do with parallelism, right? | ||
i.e. I'm not allowed to SMP calls across the MRO? | 05:56 | ||
TimToady | .* is pretty much defined to visit in standard order. | ||
audreyt | seeing how BUILDALL is built on it that's probably wise | ||
TimToady | and any one of them can use "last" to abort the rest | ||
audreyt | nod | ||
TimToady | so one would have to use STM tricks to parallelize a .* on spec | 05:57 | |
and defer if anyone earlier did "last" | 05:58 | ||
audreyt | yeah. but that still means unordered IO | ||
or even no IO | |||
neither of which is part of .*meth promise probably | |||
TimToady | yeah | ||
well, that's good that they fill different niches. | |||
I guess .* is a funny kind of monad | 05:59 | ||
sort of an internal IO monad for relations between objects... | 06:00 | ||
audreyt | *nod* | 06:04 | |
svnbot6 | r14498 | raptor++ | adding myself ;") | 06:08 | |
eviltwin_b | I finally have almost-stable dports (after giving up on doing it "right", nuking everything, and reinstalling...) | 06:17 | |
06:17
marmic joined
|
|||
eviltwin_b | I might be able to get a pugs build that works now | 06:17 | |
audreyt | ooh | 06:18 | |
eviltwin_b | (at minimum, my perl5 was horked, but pugs found and used it, so things were a bit odd) | 06:19 | |
06:21
root4o left
|
|||
audreyt | sleeptime. *wav* | 06:27 | |
06:54
seano joined
06:55
iblechbot joined
07:12
yts joined
07:17
ditto joined
|
|||
TimToady | @tell audreyt my latest smoke ran almost 200% slower. ouch. will try again with realclean while I sleep... | 07:18 | |
lambdabot | Consider it noted. | ||
TimToady | @tell audreyt probably not a problem--looks like my cpu was stuck on low speed for some reason. | 07:21 | |
lambdabot | Consider it noted. | ||
07:21
buetow joined
|
|||
TimToady | ļ¼ŗļ¼ŗļ¼ŗļ¼ | 07:23 | |
Juerd | audreyt: Okay | 07:40 | |
xinming | @tell xinming This is a test | 07:52 | |
lambdabot | You can tell yourself! | ||
xinming | .... | ||
08:04
cnrocks is now known as cumulonimbus
08:07
cumulonimbus is now known as CumuloNimbus
|
|||
lumi | Is docs/Perl6/Spec/Concurrency.pod under pugs svn? | 08:07 | |
There's a typo there (outermose), which should probably be "outermost" and not "outermoose" | 08:08 | ||
xinming | lumi: How about your email? /msg me | 08:10 | |
svnbot6 | r14499 | lumi++ | A typo, fixed. | 08:12 | |
08:17
drrho joined
|
|||
gaal | hmm, I think I'd prefer ļ¼® ļ¼® ļ¼® to ļ¼ŗļ¼ŗļ¼ŗ. Integer sleep? meh | 08:29 | |
svnbot6 | r14500 | lumi++ | More typos smitten. | ||
gaal | ļ¼²ļ¼²ļ¼² is also good | 08:30 | |
gaal doesn't consider "outermoose" to be a typo, but that's just me and my deer | 08:31 | ||
lumi | Dear sir or ungulate | 08:35 | |
08:51
hikozaem_ joined
09:15
andara joined
09:56
ruoso joined
09:57
kensanata joined
10:03
idiotmax_ joined,
hcchien joined
10:04
f0rth_ joined,
cookys_ joined,
penk joined
10:07
penk joined
10:15
hcchien joined
10:24
iblechbot joined,
jferrero joined
11:06
chris2 joined
11:14
xinming_ joined
11:23
weinig|bbl is now known as weinig_,
weinig_ is now known as weinig
11:31
Psyche^ joined
11:32
fglock joined
|
|||
svnbot6 | r14501 | fglock++ | v6/runtime | 11:40 | |
r14501 | fglock++ | - added setup_type() create typed-cell p5-classes | |||
r14501 | fglock++ | v6/emitter(2) | |||
r14501 | fglock++ | - my/our take parameters { readonly => 1, type => Dog } | |||
11:40
Psyche^ is now known as Patterner
11:44
thepler joined
|
|||
svnbot6 | r14502 | fglock++ | v6/emitter(2) - merged minor HACKING, TODO, Any.pm changes | 11:46 | |
12:15
Limbic_Region joined
12:25
HiTech69 joined
12:39
mauke joined
12:47
nipotan is now known as nipotaway
12:50
vel joined,
iblechbot joined
|
|||
svnbot6 | r14503 | fglock++ | v6/emitter(2) - the type of cell depends on the context | 12:58 | |
r14503 | fglock++ | $native.bind_from is read-only | |||
r14503 | fglock++ | $native.VAR is read-write | |||
13:02
fglock joined
|
|||
fglock | ?eval (1,2,3)[1]=5 | 13:02 | |
evalbot_r14503 | user error (Incompatible version number for compilation unitā¤Consider removing blib6/lib/Prelude.pm.yml and make it againā¤)ā¤pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 785, column 9-46ā¤ <prelude> line 785, column 9-46ā¤ at)ā¤ | ||
13:04
bonsai joined
|
|||
gaal | ?eval "prelude fix?" | 13:08 | |
evalbot_r14503 | pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 785, column 9-46ā¤ <prelude> line 785, column 9-46ā¤ at)ā¤ | ||
gaal | ?eval "prelude fix?" | 13:11 | |
evalbot_r14503 | "prelude fix?" | ||
gaal | yay | ||
13:13
ditto joined
|
|||
svnbot6 | r14504 | fglock++ | v6/emitter(2) - added more questions in HACKING | 13:17 | |
13:21
jiing joined
13:25
[particle] joined
13:26
[particle] joined
|
|||
audreyt | @messages | 13:49 | |
lambdabot | TimToady said 6h 31m 43s ago: my latest smoke ran almost 200% slower. ouch. will try again with realclean while I sleep... | ||
TimToady said 6h 28m 42s ago: probably not a problem--looks like my cpu was stuck on low speed for some reason. | |||
audreyt | greetings \camels | ||
13:51
AzureBOT joined
|
|||
gaal | yo yo audreyt | 13:52 | |
Limbic_Region | salutations audreyt | 13:53 | |
Limbic_Region is posting his meditation about his NP complete project but plans on running a smoke soonish | |||
[particle] | hi audreyt, what part of the world are you in today? | ||
13:54
rlb3 joined
|
|||
audreyt | [particle]: Portland. in ~7 hours going to present my talk at OOPSLA/DLS | 13:54 | |
[particle] | g'luck | ||
audreyt | the doubled room for DLS is beyond maxed out (200+ known attendees in a 205 capacity room) | ||
so they got student volunteers to act as bouncers to prevent walkin people | |||
[particle] | you've got bouncers? | 13:55 | |
audreyt | any(<SeaSide PyPy Pugs>) must be attractive to some people... | ||
actually s/SeaSide/DabbleDB/ | 13:56 | ||
Limbic_Region: cool! *goes to perlmonks to read* | 13:57 | ||
fglock | audreyt: does $a := $b does typechecking? | 13:59 | |
gaal | if i were a walkin person i'd masquerade as a bouncer | 14:00 | |
14:05
hexmode joined
|
|||
xinming_ | audreyt: what do you use for editing haskell please? | 14:08 | |
audreyt | xinming_: vim | ||
xinming_ | audreyt: do you use Emacs? | ||
audreyt | oy, perlmonks trapped me | ||
audreyt posted a reply to perlmonks.org/?node_id=580004 | |||
lambdabot | Title: Parrot, threads & fears for the future. | 14:09 | |
xinming_ | audreyt: In fact, I like Emacs more, But now, I switch to vim, as start up speed in Emacs is really slow. | ||
xinming_ goes to read the post | |||
audreyt | xinming_: and no, I do not | 14:15 | |
I've passing acquaintance with both Emacs and Eclipse | |||
my ability to script either is not as good as my ability scripting my shell | 14:16 | ||
so I prefer making shell my IDE, but that's entirely a personal choice :) | |||
14:17
cjeris joined
|
|||
wolverian | audreyt, nice post ;) | 14:19 | |
14:21
kensanata joined
|
|||
audreyt | wolverian: BrowserUK tends to get me into this tone ;) | 14:22 | |
xinming_ | Emacs is powful, But Emacs Makes A Computer Slow is really a truth, Now, I use emacs as my "OS", and vim as my primary editor, I am tired of waiting emacs to open a file to edit for me | ||
Limbic_Region | audreyt - will ping you when it is ready, lots of links to include | ||
wolverian | audreyt, you're not the only one :) | ||
14:25
iblechbot joined
|
|||
gaal | resuming the sleep thread, audreyt's of course is ļ¼£ļ¼£ļ¼£ | 14:25 | |
it's real, but she commits at the same time | |||
osfameron | ooo, shiny :-) I think it was a good PM post if it got a good result like that | 14:28 | |
of course, it'll be shinier if concurrent stuff properly works in Win32 as well | |||
audreyt | osfameron: it does not? | ||
I thought SMP parallization does in win32 as well | |||
and STM I tried with Win32 just he other day... | 14:29 | ||
(GHC 6.6, trunk Pugs) | |||
osfameron | I mean that for concurrent *Perl5* Win32 is a second class citizen | ||
fork + alarm is very flakey | |||
audreyt | oh that | ||
osfameron | so if it all works on win32 come perl6 that's fantastic | 14:30 | |
audreyt | sure it all works :) | ||
wolverian | hm, I see the concurrency pod has some new stuff (or at least new names for things). interesting | ||
14:30
seano joined
|
|||
wolverian | and pugs implements all of it? | 14:30 | |
audreyt | it had better, as I think Win32 is one of the first tier work platforms for the GHC HQ at MS Research | ||
wolverian: yes | 14:31 | ||
wolverian | very nice! | ||
audreyt | (after FreeBSD and Linux, I think) | ||
Apple hardware is still not popular in MSR. I wonder why ;) | |||
osfameron | it was one of the questions I asked in the "Ask Perl 6" back in... oh! 2002 | ||
of course I no longer use Win32 when I can avoid it, but I still think it'll be an advantage | 14:32 | ||
wolverian | audreyt, is the purity of atomic blocks detected at compile time? | 14:33 | |
audreyt | wolverian: once we gen codegen to GHC (via MOH, for Great Performance) then yes | 14:35 | |
currently it's runtime. | |||
wolverian | yay :) | 14:36 | |
audreyt | some of them will remain runtime though | ||
since you can rebind previously pure functions into nonpure ones | |||
and then compiler can't catch that | |||
but that's fine; runtime still does | 14:37 | ||
wolverian | whoo, DateTime::Natural::Parse! | ||
audreyt | wooo! | ||
wolverian | hm. it's not very i18n. | ||
audreyt | and fails tests. but hey, first day of a module | 14:38 | |
wolverian | it's the principle :) | ||
audreyt | BEGIN { release } loop { release } | ||
14:42
weinig is now known as weinig|coffee
14:47
mj41 joined
14:50
nothingmuch joined
14:54
weinig|coffee is now known as weinig
15:21
ofer0 joined
15:25
elmex joined
|
|||
audreyt | Q: which way to write has_twim_prime is most clear to you? | 15:29 | |
is_prime(all($n, $n + any(2, -2))); | 15:30 | ||
is_prime($n & ($n + (2 | -2))); | |||
is_prime($n + (0 & (2 | -2))); | |||
is_prime($n) and is_prime($n + any(2, -2)); | |||
is_prime($n) and is_prime($n + 2 | $n - 2); | |||
(bbiab) | 15:31 | ||
kensanata | not knowing anything about perl6 and therefore not knowing the foo(a|b) syntax, i still like the last variant best. | 15:34 | |
15:37
chris2 joined
|
|||
wolverian | same here. | 15:38 | |
mauke | is_prime($n + (0 & (2 | -2))); for minimized redundancy | 15:41 | |
wolverian | heh. I thought it was bitops. sigh. | 15:44 | |
TimToady | ?eval sub infix:<Ā±> ($b,$d) { $b + $d | $b - $d } say 42 Ā± 3 | 15:47 | |
evalbot_r14504 | OUTPUT[any(VInt 39,VInt 45)ā¤] Bool::True | ||
masak | last one | ||
TimToady | isprime($n) and is_prime($n Ā± 2) | 15:48 | |
audreyt | how do you pronounce the infix +- ? | 15:49 | |
TimToady | plus-or-minus | ||
wolverian | heh. now I can finally write the equation for second order polynomials properly | ||
audreyt | TimToady: you think it's better? | 15:50 | |
I'll so a lexical sub infix then | 15:51 | ||
wolverian | makes me want a both() | ||
audreyt | both? | ||
TimToady | plus-and-minus, I presume | ||
audreyt | ah. | 15:52 | |
mauke | .oO( any (all is_prime . map (n +)) (map ((0 :) . return . flip id 2) [id, negate]) ) |
||
wolverian | waving hands in that direction, yeah | ||
also, all/any is weird with two item arguments | 15:53 | ||
audreyt | which is why we have infix... | ||
wolverian | and why people preferred them in this case, I suppose. good point. :) | 15:54 | |
15:55
shobadobs joined
15:56
justatheory joined
15:57
arguile joined
|
|||
TimToady | The recent PM thread on threads makes me wonder how long it would take to write a Parrot byte code interpreter in Haskell... | 15:58 | |
audreyt | the real trick is in the PMCs... | 15:59 | |
ofer0 | will perl6 require a new CPAN ? | ||
audreyt | ofer0: an improved CPAN :) | ||
ofer0 | audreyt, wonderful | ||
wolverian | so I'm trying to pass the + function to another function in C. this calls for a beer or two (to celebrate) | 16:01 | |
TimToady | C has approximately as much support for first class functions as it does for first class strings... :/ | 16:02 | |
fglock | in '$a := $b' does $b needs to agree with the previous type of $a? | ||
TimToady | it should agree with the type of VAR($a) | 16:05 | |
doesn't have to agree with the previous contents | |||
TreyHarris | hm. ext/Recurrence/t/recurrence-grep.t spun its wheels all night in my last smoke... r14489 | 16:07 | |
audreyt | TreyHarris: I disabled it... havn't had time to investigate. help welcome (try pugs -d) | 16:10 | |
16:11
Gothmog__ joined
|
|||
fglock hides <== guilty of quite a few infinite loops | 16:11 | ||
16:12
HiTech69 joined
16:13
Gothmog__ is now known as Gothmog_
16:16
frankg joined
|
|||
audreyt | TimToady: also, Parrot opcodes were designed to be insanely fast interpreted and only augment with some JIT | 16:26 | |
to which D or C+ASM is still be better host language to code that | |||
Limbic_Region | audreyt - perlmonks.org/index.pl?node_id=580093 | 16:27 | |
audreyt | Pugs otoh will use ahead of time compilation mostly to gain performance, or find some VM that has good JITting/runtime tuning (StrongTalk et al, some more advanced JVMs). maybe both. | ||
lambdabot | Title: How many words does it take? | 16:28 | |
audreyt | insanely fast interpretation makes a lot of sense, but with rapidly converging CPU types, is at disadvantage with CPU-specific AOT schemes... | 16:29 | |
Limbic_Region: woot | |||
Limbic_Region | it only takes 1 word to use all the letters audreyt - ambidextrously | 16:31 | |
audreyt | very, very cute | 16:32 | |
though Parrot's interpretation speed, like Squeak's, is already quite Fast Enough (i.e. better than perl5 generally) | 16:33 | ||
Limbic_Region | www.gatcomb.org/dictdemo/demo.cgi if you want to try the demo for yourself | ||
lambdabot | Title: How many words does it take..... | ||
audreyt | so it's largely the OO dispatch, multi dispatch, junctional dispatch etc that matters | 16:34 | |
(all 3 has currently quite unnatural encoding on Parrot that defeats the fast runloop) | |||
(not surprisingly, seeing how they are specced only after parrot implemented something else entirely...) | 16:35 | ||
(so they are fixable given time and effort and C-fu.) | |||
Limbic_Region needs to re-read the parrot and threading meditation now that many more folks have replied | 16:36 | ||
16:37
SCalimlim joined
16:45
chaoslawful joined
|
|||
Limbic_Region | audreyt++ for her responses in that thread and in general for just being her | 16:46 | |
audreyt | er, uhm. thanks. *blush* | 16:47 | |
the irreconcilable slide for parallelism is now titled | 16:49 | ||
"Concurrency vs Sanity" | |||
uploading for review... | |||
[particle] | jonathan++ for taking on objects pdd | 16:51 | |
ww, but it still applies :) | |||
gaal | random periodic prod: how do multi sub express the notion of guards, in light of guard order and separate compilation? | ||
audreyt | gaal: still where clauses | 16:52 | |
multi f ($x, $y where { $x > $y > 1 }) {} | |||
and ordered guard must be when'd | 16:53 | ||
multi f ($x, $y) { when $x > $y > 1 { ... } when $x == $y { ... } } | |||
Pugs has freed when from given | |||
so that style is noe encouraged | |||
now | |||
gaal | oh! this is new | ||
audreyt | yes | ||
as of 6.2.13 | |||
part of the rewritten Eval monad | |||
gaal | so multiness and guardiness is orthogonal, as desired | 16:54 | |
audreyt | yes. | ||
and break/continue in when works as you expect | |||
even outside given | |||
given is now purely sugar for | |||
gaal | though, is the body inside the when? that's funny | ||
audreyt | (-> $_ is rw {...})() | ||
gaal | oh sorry | ||
it's inside the body, not the sig | |||
audreyt | yup | ||
gaal | can when accept a signature? I'm tihngking unpacking | 16:55 | |
when BinTree $x :($left, $right) { ... } | |||
audreyt | yes. and actually part of S03 | ||
you can even do this: | 16:56 | ||
sub f (|$_) { when :(...sig...) {...} when :(...sig...) {...} } | 16:57 | ||
which gives you pattern guards. | |||
gaal | w00t | ||
audreyt | this is finally looking like a usable language, isn't it :) | ||
gaal | the only thing not to like about this is the wasted indent level | ||
audreyt | you are free to not indent ;) | ||
gaal | but haskell's gotta be good for something :-P | 16:58 | |
audreyt | and infact intend level is the same | ||
sub f (|$_) { | |||
when :(...) | |||
{ ... } | |||
when :(...) | |||
{ ... } | |||
} | |||
if you write it that way | |||
gaal | as guard syntax, yes, but not declarative | ||
audreyt | yup | ||
16:59
cdpruden joined
|
|||
gaal | because multis do not capture that | 16:59 | |
audreyt | well they do if all your when is matching with sigs | ||
gaal | but it's much saner like this. | ||
audreyt | yup. | ||
gaal | I wouldn't use them for that, because order is hard to predict | ||
audreyt | aye | ||
I helped clkao briefly a couple days ago to write new SVK::Mirror in implemented subset of perl6 | 17:00 | ||
it's surprisingly 1)easy 2)fun | |||
@.meth: 1,2,3; | |||
lambdabot | Unknown command, try @list | ||
audreyt | alone, saved screenfuls of lines. | ||
TimToady | :) | 17:01 | |
gaal | what does that mean? | ||
TimToady | it means I'm happy. | ||
:) | |||
audreyt | @(self.meth(1,2,3)) | ||
lambdabot | Unknown command, try @list | ||
audreyt | :D | ||
TimToady++ | |||
gaal | :) | ||
audreyt | gaal: because that means you can override in subclass the accessors | 17:02 | |
and have the consumer not care about if it's an accessor or a method | |||
because they ae exactly the same thing | |||
$.foo does not promise anything about $!foo's existence | |||
TimToady | to the user, it *is* an array with a "longer name" | ||
audreyt | and neither does the other way around | ||
and "user" here means "derived class" | |||
which is amazing abstraction. | 17:03 | ||
seano | audreyt: I'm looking at trying to implement .can/.methods/.whatever... any hints on where to get started looking at metaclasses inside pugs? findSub in Var.hs is, at 270 lines, somewhat daunting... | ||
audreyt | seano: oy! you don't want Eval.Var | ||
TimToady | for a change, an abstraction that seemed obvious to /me | ||
audreyt | seano: you want to help getting MOH fully implemented | ||
gaal | *nod* cool | ||
audreyt | since Eval.Var is going to be swapped entirely out to MOH | ||
seano | ah... who's on that? | ||
audreyt | cmarcelo, nothingmuch | ||
seano | I thought I remembered your mentioning something about that... | 17:04 | |
audreyt | perlcabal.org/~cmarcelo/moh/ | ||
lambdabot | Title: Index of /~cmarcelo/moh | ||
seano really wants his tab-completion in the shell ;) | |||
audreyt | source: nothingmuch.woobling.org/MO/ | ||
lambdabot | Title: Index of /MO | ||
seano | thanks | ||
audreyt | seano: MOH gives us true reflection; what Pugs currently does is just embed into packages | ||
which is curiously exactly the same as Perl5 | |||
and not at all relevant or correct anymore | |||
and instead of writing an abstraction DWIM layer like Class::MOP/Moose | 17:05 | ||
we might as well implement the Right Thing right away | |||
seano | ok. thanks. is the MO stuff up for the next release-ish, or is that a long way off? | ||
audreyt | which is also considerably faster since it has the option of compiling into native haskell | ||
it's what next release will be about. | |||
and I plan to import it when I'm in Brazil | |||
so like, a couple weeks, a couple months tops. | |||
seano | what's that, "the right is the enemy of the tolerable"? | ||
audreyt | we tolerated the Pythonic Perl5 OO model for long enough... | 17:06 | |
17:06
aufrank joined
|
|||
seano | cool... well, I'll look into this then back-burner it, probably. | 17:06 | |
aufrank | hi hi | ||
audreyt | cool thanks! | ||
aufrank: heya | |||
audreyt gets ready to go to the conference | |||
aufrank | which syntax works for passing named arguments into p5 subs? | ||
audreyt | %h.kv | 17:07 | |
since they are, well, not named. | |||
aufrank | my $foo = Text::CVS_XS.new( sep_char => "|") #works | ||
audreyt | oh, yes, since pairs are implicitly kv's | ||
for the p5bridge | |||
aufrank | but adverbial doesn't work? | ||
audreyt | I mean named pairs. | ||
:sep_char<|> should work | 17:08 | ||
does it not? | |||
if not, write a test, though I'm surprised. | |||
pugs.blogs.com/talks/dls06-pugs.pdf up. | |||
aufrank | Can't use string ("sep_char") as a HASH ref while "strict refs" in use at /opt/local/lib/perl5/site_perl/5.8.8/darwin-thread-multi-2level/Text/CSV_XS.pm line 63. | 17:09 | |
audreyt | 250 slides, 60 minutes | ||
aufrank goes to write a test | |||
gaal | good luck :) | 17:14 | |
or did you already give it? | |||
TimToady | I thought you were wishing aufrank good luck writing a test. :) | ||
17:15
ajs left
|
|||
gaal | aw, I should have said "or did you already do it?" and maintain the ambiguity | 17:15 | |
english has these wonderfully wimpy verbs | |||
TimToady | it is fortunate that pronouns in English are ambiguous as to gender. | ||
Even "you guys" is genderless (more or less) in California | 17:16 | ||
gaal | Hebrew gender markings are a pain, and are being eroded | ||
aufrank | question: I've got my svk mirror set to svn.perl.org, which is RO. Is there a way to change it to the openfoundry mirror without resyncing the whole thing? | 17:17 | |
Limbic_Region | TimToady - I find it more unfortunate that there is not an explicit singular form of gender neutral pronoun | ||
gaal | some of them don't make sense though; the -a suffix means feminine all over the place, but in the cardinals, it means masculine. | ||
TimToady | on the other hand, English is wonderfully expressive when it comes to verbs of destruction. There are hundreds of ways to destroy something. | ||
gaal | b0rk b0rk b0rk | 17:18 | |
oh, that's Swedish | |||
TimToady | sure there is, people just don't like that it's "they". | ||
but singular "they" goes back many centuries. | |||
aufrank | there was a great language log post showing singular third person use of "they" going back a long ways, including in Shakespeare | 17:19 | |
17:19
justatheory joined
|
|||
gaal pulls out oed2... | 17:19 | ||
[particle] | and all this time i've been using s?he | ||
audreyt | aufrank: no, please remirror. sorry. | 17:20 | |
gaal | 1526 first citation | ||
aufrank | yargh. OK. test might take a while ;) | ||
Limbic_Region | TimToady - wasn't aware that 'they' was grammatically correct for singular though I use it for that purpose all the time | 17:21 | |
TimToady | indeed, everyone does, even proscriptive English teachers. | 17:22 | |
they just don't notice when they're doing it. | |||
gaal wonders who W. de W. was | |||
TimToady | maybe we should change "they" to default to singular, and then use "they guys" for the plural. | 17:23 | |
gaal | relatedly, where does "them apples" come from? | ||
(how do you like, etc.) | 17:24 | ||
[particle] | how's about them apples! | ||
TimToady | I blame Steve Jobs. | ||
gaal | lol | 17:25 | |
[particle] | urbandictionary points to WWI | 17:26 | |
fglock | audreyt: re Rule.pmc slide - it now looks a little different | 17:27 | |
gaal | beh. oed has a bug, vol 17 page 889 says THEIST-THEIST, but it's actually THEIST-THEM | ||
aufrank | itre.cis.upenn.edu/~myl/languagelog...02742.html | ||
gaal | i wonder if they hand out commit bits | ||
lambdabot | Title: Language Log: Singular <B><I>they</I></B> with known sex, tinyurl.com/sjdfl | ||
aufrank | itre.cis.upenn.edu/~myl/languagelog...02748.html | ||
lambdabot | Title: Language Log: Shakespeare used <B><I>they</I></B> with singular antecedents so t ..., tinyurl.com/yzjybe | ||
gaal | aufrank: 1526 is even earlier | 17:28 | |
aufrank | but without the oomph of little Willy | 17:29 | |
gaal | imagine the fun if W. de W. turned out to be "William Williamson" | 17:30 | |
17:32
BooK__ joined
|
|||
audreyt | fglock: ok, fixing | 17:32 | |
fglock | audreyt: that difference was due to recent s/lrep/v6.pm/ for bootstrapping | 17:36 | |
gaal | oof, the bibiliography is buggy also :( | 17:38 | |
17:45
macli joined
17:46
theorb joined
17:50
seano left,
seano joined
18:03
buetow joined
18:09
polettix joined
18:20
penk joined
|
|||
ingy | hi TimToady | 18:21 | |
18:28
beppu joined
18:30
hexmode joined
18:31
seano joined
|
|||
aufrank | can I query the signature of a builtin function in the pugs shell? | 18:50 | |
for example, can I find out what arguments open takes? | |||
gaal | not yet! | ||
but soon | |||
definitely before next release | |||
aufrank | neat :) | 18:51 | |
in that case, can I query the channel? ;) | |||
gaal | aufrank: if you want to help make this soon*er*, you can | ||
eg: | |||
?eval :($the :sig($parser) :already($works) | 18:52 | ||
evalbot_r14504 | Error: ā¤Unexpected "($"ā¤expecting qualified identifier, "*" or ":" | ||
gaal | ?eval :($the :sig($parser) :already($works)) | ||
evalbot_r14504 | Error: ā¤Unexpected "($"ā¤expecting qualified identifier, "*" or ":" | ||
gaal | doh! | ||
?eval :($the, :sig($parser), :already($works)) | |||
evalbot_r14504 | CCall "perl" CaptMeth {c_invocant = VPure (SigSubSingle {s_requiredPositionalCount = 1, s_requiredNames = fromList ["already","sig"], s_positionalList = [MkParam {p_variable = "$the", p_types = [], p_constraints = [], p_unpacking = Nothing, p_default = <ParamDefault:Nothing>, p_label = "the", p_slots = fromList [], p_hasAccess = AccessRO, p_isRef = False, p_isContext = False, p_isLazy = False}], s_namedSet = fromList [("already",MkParam {p_variabl | ||
gaal | that is actually correct output, kinda :) | ||
?eval :($the, :sig($parser), :already($works)).perl | |||
evalbot_r14504 | "CCall \"perl\" CaptMeth \{c_invocant = VPure (SigSubSingle \{s_requiredPositionalCount = 1, s_requiredNames = fromList [\"already\",\"sig\"], s_positionalList = [MkParam \{p_variable = \"\$the\", p_types = [], p_constraints = [], p_unpacking = Nothing, p_default = <ParamDefault:Nothing>, p_label = \"the\", p_slots = fromList [], p_hasAccess = AccessRO, p_isRef = False, p_isContext = False, p_isLazy = False}], s_namedSet = fromList [(\"already\",M | ||
gaal | anymoose: | 18:53 | |
in the parser, there are *two* functions handling function signatures now | |||
aufrank | gaal-- very cool! | ||
gaal | the old one needs to be retired | ||
and replaced by the new one | |||
the new one's called ruleSignature | 18:54 | ||
it's what constructed this literal above | |||
aufrank | what's the old one called? | ||
do the new and old haskell functions have the same signature? | 18:55 | ||
18:55
arguile_ joined
|
|||
gaal | ruleSubParameters or thereabouts | 18:56 | |
they don't have the same signature | |||
aufrank | so it's not just a find and replace | ||
gaal | ruleSubParameters :: ParensOption -> RuleParser (Maybe [Param]) | 18:57 | |
18:57
hexmode joined
|
|||
gaal | the flag is whether the parens are optional or not | 18:57 | |
and it returns a list of *oldstyle* parameters | |||
ruleSignature returns an Exp, but it's always a newVal Signature | 18:58 | ||
the parser isn't the only place that'll need to be changed; everywhere were its result is interrogated must be upgraded too | 18:59 | ||
but that's what's type inference is for :-) | |||
aufrank | gaal: is there a clear-cut step 1 here? | ||
19:06
bernhard joined
|
|||
[particle] | write tests? | 19:07 | |
gaal | oops, sorry, back | ||
tests for the most part exist | |||
ie, 98% of t/ | 19:08 | ||
will break without functions :) | |||
I think there are two ways to go about it. | 19:09 | ||
The first it to gradually port the old sig parser to use new Params and not old ones | |||
this way there's a chance you'll get something to compile faster | |||
it may break on e.g. named args or optional ones, but it would be a start | 19:10 | ||
that way you get to start modifing code in other portions apart from Parser, which is good | |||
the drawback of this approach is that you may find the teasing apart difficult. I can't say... maybe worth trying. | 19:11 | ||
the other WTDI is to just delete the old function, wire everything to use the new one, and chase the errors. | |||
s/8/9.6/ | 19:12 | ||
aufrank | gaal: sounds like something I could work on | 19:15 | |
I won't get to look at it in detail until tonight, though | |||
right now I'm trying to use Getopt::Long with v6-alpha for $work | |||
gaal | yay | 19:17 | |
aufrank++ | |||
aufrank | anyone have any ideas why the result of the GetOptions() method from Getopt::Long is getting returned as 1.0 instead of a hash of option declarations? | 19:18 | |
gaal | can you show us the line where you call it? | 19:20 | |
also, try (GetOptions(....)).perl | 19:21 | ||
PerlJam | Assuming the perl6 version adheres to the perl5 semantics, GetOptions returns a true value or a false value but doesn't necessarily say what those values are. (so a true value could be 1) | 19:22 | |
pasteling | "aufrank" at 128.151.80.181 pasted "trying to use v6-alpha and perl5:Getopt::Long" (13 lines, 238B) at sial.org/pbot/20615 | ||
gaal | oh, PerlJam's right | 19:24 | |
aufrank | PerlJam: I see. I thought it returned a hash of option-name option-value pairs | ||
19:24
chris2 joined
|
|||
gaal | the idiom i use for that is GetOptions \my %opt, qw(spec here) | 19:24 | |
PerlJam | aufrank: that would be a sanish thing to do probably :-) | ||
aufrank | ok, so now there's just the question of why setting the option on the command line isn't working | 19:25 | |
aufrank notes gaal's neat idiom | |||
gaal | well, in p5 you'd need to say | 19:26 | |
'in=s' => \$infile | |||
aufrank | ?eval my $infile = '-'; $infile.perl.say; \$infile.perl.say | 19:27 | |
evalbot_r14504 | OUTPUT[\"-"ā¤\"-"ā¤] \Bool::True | ||
aufrank | same difference in perl6, right? | ||
?eval my $infile = '-'; $infile.perl == \$infile.perl; | |||
evalbot_r14504 | Bool::True | ||
gaal | it's a Capture constructor in p6 | ||
which I think p5bridge uses to express a p5 reference | 19:28 | ||
so try it? | |||
bbl& | |||
aufrank | no good | ||
gaal | look for p5bridge tests... | 19:29 | |
aufrank | ok, thx | ||
gaal | gotta moose | ||
aufrank | moose ya later | ||
[particle] | moose him now! moose him now! | ||
aufrank mooses gaal | 19:32 | ||
audreyt | talk starting in <30min... (and you're on the projector again) | 19:35 | |
aufrank | audreyt: did you just finish or are you about to go? | ||
Limbic_Region | hello everyone from irc land | ||
audreyt | about to go | ||
aufrank | gluck! | 19:36 | |
audreyt | stats in 25mins | ||
*start | |||
aufrank | TimToady: any chance you're using Getopt::Long in your $job code? Any tips on getting it to play nice with v6-alpha? | 19:37 | |
audreyt | some day I'll try (was it jonasbn++?)'s IRC-to-slides stream generator | 19:39 | |
but the day is not today... | |||
aufrank | my $file = 'foo.txt'; my $fh = $foo.open('<'); # is this a p6 open? | 19:40 | |
audreyt | $foo.open is sufficient | ||
$foo.open(:r) is okay too | 19:41 | ||
aufrank | I remember being told to always use 3-arg open when I was but a wee monk ;) | 19:42 | |
audreyt | that's because we don't do open("> foo.txt") anymore I think | ||
we in fact have no way for taintattacks that way atm | |||
which is probably Good | |||
aufrank | indeed | ||
audreyt | or at least Sane | ||
aufrank | gaal showed me the new ruleSignature. very moose. | 19:43 | |
audreyt | well the trick is make it actually Pugs.Bind-able... | 19:45 | |
leo | hi | ||
audreyt | and implement mmd-draft.txt on it | ||
aufrank | yeah, we talked about that too | ||
audreyt | leo: greetings! (yes you're still on the projector) | ||
aufrank | well, the first part | ||
leo | is above ment as $file.open? | ||
audreyt | yes | ||
Str does not have .open | 19:46 | ||
so it falls back into the lexical subroutine open | |||
via the normal meth-to-sub fallback dispatch | |||
leo | ah - ok | ||
audreyt | but if you class Str is also { method open { ... } } | ||
then that of course takes precedence. | |||
leo | I had the slight fear that you want to force a Str.open | ||
audreyt | nah. why would we want that? :) | 19:47 | |
leo | good | ||
audreyt | leo: how's $job, btw? are you using any of the newtechs for that? | ||
leo | nice job, newtech is Perl 5 ;) | ||
audreyt | any chance of Moosification? ;) | 19:48 | |
leo | far on the horizon | ||
Limbic_Region | audreyt - smoke is taking an inordinate amount of time | ||
audreyt | Limbic_Region: does it lop on recurrence-grep or something? | ||
Limbic_Region | saw that TimToady had similar issue but had chalked it up to cpu contention | 19:49 | |
audreyt | (it smokes normally here) | ||
hm. then maybe it's something deeper | |||
Limbic_Region | will wait till after your talk to discuss it | ||
been running for over an hour now | |||
audreyt | okay, will do. maybe the new pointy if/then/else rollback wasn't done fully completely | ||
actually can you locally revert that change and see if it speeds up things? | |||
upstream r14489 | 19:50 | ||
Limbic_Region | just that change or revert to a rev prior to that change? | ||
audreyt | r15381 (orig r14489): audreyt | 2006-10-22 21:47:42 -0700 | ||
* Restore support for: | |||
if EXPR -> $x { | |||
just that single one | |||
that changes CompUnit version too, so rm blib/lib/*yml while you are at it. | |||
I'll definitely recheck after talk | |||
(due in 10min now) | |||
Limbic_Region | tell you what - will test in an hour when I get home | 19:51 | |
I want to let this smoke finish | |||
it is in t/syntax now | |||
audreyt | ok. sorry for not being able to respond promptly | ||
safe trip home | |||
Limbic_Region | no worries - just noticed it and wanted to let you know | 19:52 | |
audreyt | 'k. I wonder if I run on this Macbook with SMP=2 | ||
Limbic_Region doesn't need it ATM for anything | |||
audreyt | and the parallelization gain somehow offset the speed hit | ||
but we'll see. | |||
Limbic_Region | well, that would be nice | ||
because that means when the speed hit is fixed | |||
the parallezation will be even faster | |||
audreyt | then the world will be a better place, yes | ||
Limbic_Region | ;-) | 19:53 | |
audreyt | (and if you have a 16core then pugs will be faster than perl5 ;)) | ||
aufrank | should something like this work? | ||
Limbic_Region is stuck with a dual proc ATM | |||
aufrank | for =$file -> ($first, $second, *@rest) { ... } | ||
Limbic_Region | actually - work = 1CPU and home = 2CPU | ||
audreyt | Limbic_Region: you need to set GHCRTS=-N2 | 19:54 | |
aufrank | in any case, how would you pull just the first line off of a file using an =$iterator? | ||
audreyt | to use those 2 CPUs | ||
aufrank: my $line = =$iterator | |||
given =$iterator { ... } | |||
item =$iterator | |||
etc, etc. | |||
aufrank | thx | ||
audreyt | np hth :) | 19:55 | |
Limbic_Region | audreyt - that's what I am going to try at home | ||
aufrank | can pointy blocks take slurpy params? | ||
audreyt | Limbic_Region: though if you are already smoking with concurrent=2 | ||
then those two CPUs are bound anyway | |||
and SMP will only gain you trivial amounts of time | |||
(or not at all) | |||
aufrank: pointy blocks take the full Signature syntax | |||
aufrank | cool cool cool | ||
audreyt | the only difference ie that it does not place a Routine boundary | ||
aufrank | bbib | 19:56 | |
kolibrie | audreyt: good luck with talk! | ||
TimToady | my second smoke last night was normal speed, it was apparently just my CPU clock, unless realclean fixed something. | 19:57 | |
audreyt | the conf org just tell me I can go 15min overtime | 19:58 | |
good, that means more Q/A time | |||
TimToady | quality assurance... | ||
audreyt | Quantum/Acceleration... | ||
[particle] | not in my company... | ||
audreyt | [particle]: I thought you are already accelerated yourself... | 19:59 | |
[particle] | yes, when i'm alone :) | ||
audreyt | ahh. Not Observed | ||
that's the key | |||
Limbic_Region will test the realclean | |||
TimToady | if we had real quantum entanglement we could do timely destruction... | ||
audreyt | ...of the universe | 20:00 | |
[particle] spins 3/2 | |||
audreyt | there's some qubits library out there, is there not? | ||
TimToady | break a fingernail... | ||
audreyt | talk postponed for 5min to let post-lunch people trickle in... | ||
[particle] | maybe you should have 5 mins of pre-talk q/a so it's not cut short | 20:01 | |
audreyt | hmm asking question about a talk that you have no idea what will it be about | 20:02 | |
what a concept | |||
Limbic_Region | 79.08 minutes - trying realclean here and will experiment further at home | ||
audreyt | Limbic_Region: cool | 20:03 | |
ok, seems there's sufficient population in the room now... | |||
switching y'all offscreen. wish me luck :) | |||
TimToady | luck! | ||
audreyt | bbiab & | ||
Limbic_Region | gl | ||
PerlJam wishes audreyt skill as she already has enough luck :-) | 20:04 | ||
wilx | And not enough skill? :D | 20:09 | |
PerlJam | audreyt has plenty of both. I'm just trying to maintain balance. | 20:15 | |
20:16
lollan_ joined,
lollan joined
20:36
Odin- joined
20:39
jferrero joined
|
|||
gaal | is "attempt" perhaps a better name than "maybe" for stm choices? | 20:42 | |
also, "yield" would have been great for "defer" if it weren't for coros, but now, how to we call call-by-name now that defer is spoken for? | 20:43 | ||
what were the old proposals? "later"? | 20:44 | ||
[particle] | relent | ||
give in | 20:45 | ||
succumb | |||
none are particularly catchy ;) | |||
gaal | relent is nice | 20:46 | |
[particle] | remit | 20:47 | |
i don't like "maybe". it's an adverb | 20:49 | ||
attempt or promise are better | 20:50 | ||
gaal | remit would be hopelessly confusing in the standard bank account example :) | 20:52 | |
20:52
dduncan joined
|
|||
gaal | (in British English it's common to use it where in American you'd say "refund") | 20:53 | |
20:53
thepler joined
|
|||
kolibrie | remit does seem very tied to currency | 21:01 | |
relent might be okay | |||
gaal | flirt {...} | 21:03 | |
cjeris | acquiesce? | ||
gaal | (for maybe) | ||
acquiesce is good. but long and easy to mistype :) | |||
21:04
Limbic_Region joined
|
|||
clkao | seen audreyt | 21:06 | |
jabbot | clkao: audreyt was seen 1 hours 2 minutes 55 seconds ago | ||
21:08
fglock left
|
|||
Limbic_Region | clkao - she's in the middle of giving a presentation | 21:11 | |
21:12
foo\ joined
|
|||
clkao | Limbic_Region: is it delayed? | 21:12 | |
Limbic_Region | dunno - I left work about 40 minutes ago | 21:15 | |
aufrank | clkao: she started ~5 minutes late so that the lunch crowd could return | 21:22 | |
clkao | ok, thanks | ||
Limbic_Region | @tell audreyt same machine went from 79 min smoke to 59 min smoke just by doing realclean (same pugs rev) | 21:41 | |
lambdabot | Consider it noted. | ||
audreyt | clkao: pong | 21:42 | |
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
aufrank | audreyt: done? | 21:43 | |
how'd it go? | |||
audreyt | aufrank: yes. fabulously successful | ||
Limbic_Region | audreyt - at home now, running a baseline smoke now but more than happy to try anything if you suspect there to be a problem | 21:44 | |
audreyt | chatted with felleisen, wadler, siek (the gradual typing guy), & more | ||
aufrank | I'm trying to think of how to use a hyper to execute audreyt++ on the lazy list [1..*] | 21:46 | |
audreyt: good questions after from the audience? | |||
audreyt | oh, very good ones. | ||
21:46
c6rbon_ joined
|
|||
aufrank | full debrief to come on the blog? | 21:47 | |
audreyt | how our runtime distinguish STM from IO actions (by runlevels) | ||
clkao | audreyt: pong | ||
audreyt | how our typesystem infer in the face of unannotated subtyping (we don't at all - we're annotation driven) | ||
clkao | audreyt: wher eare you ? in the convention centre? | ||
audreyt: we are in lobby and wonder if we should go pick you up ? | |||
audreyt | how our module system avoid augmented metaclass from leaking to other modules (long names and separate compilation) | ||
how our macros can affect compile site in face of hygenic renaming (the :COMPILING flag) | 21:48 | ||
how can we avoid unfortunate side effects in face of lazy evaluation (we only do lazy constructors with list producers and lazy{} annotations, not generic lazy functions) | 21:49 | ||
clkao | audreyt: balas has checked out the hotel and we can go pick you up | ||
audreyt | sure, pick me up at the conv center | ||
the Max station | |||
I'll walk to it | |||
eta 3min | |||
clkao | ok | 21:50 | |
aufrank | audreyt: gratz on the good talk. excited to hear what comes of hallway sessions and listening to other talks! | ||
audreyt | no, Best Practical whisks away yours truly in 3 mins | 21:51 | |
I don't get to attend OOPSLA at all :/ | |||
aufrank | hrm | ||
audreyt | so, bbl tonight when we arive at hotspring site for Hackathon | ||
clkao | audreyt: we will be there in 5 min | ||
aufrank | well, excited to hear about mad hacking with clkao++ and obra++ | ||
audreyt | *wave* & | ||
and Schwern++ | 21:52 | ||
aufrank | neat :) | ||
What is the way to declare the variables that used to be declared with env? Merlyn asked that it be changed, but I can't remember what the final decision was. | 21:58 | ||
21:59
justatheory joined
|
|||
aufrank | heading home, bye all | 22:09 | |
22:22
mauke joined
22:25
Aankhen`` joined
22:29
nicodaemos joined
22:31
seano joined
22:35
KingDiamond joined
22:36
weinig is now known as weinig|food
22:38
iblechbot joined
22:46
amv joined
23:02
cjeris left
23:03
norageek joined
23:09
mauke joined
23:20
c6rbon joined
23:38
justatheory joined
|