pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
00:19 pfenwick joined
svnbot6 r10583 | fglock++ | Pugs-Compiler-Rule/compile_p6grammar.pl - recognizes #comment and =pod sections 00:26
00:41 bjoern_ joined 00:50 hikozaemon joined 00:57 putter joined
putter question - why doesnt [].map:{3}.join('x') parse as [].map( {3}.join('x') ) ? 01:04
audreyt If the term bare block occurs in a list, 01:05
it is considered the final element of that list unless followed immediately
by a comma or comma surrogate.
S06 line 132
src/Pugs/Parser.hs line 1571 01:06
(argListEndingBlock)
putter tnx :) 01:07
audreyt np :)
seems I'll be giving a slightly insane talk on OSCON'06 after all
= Programming the Kernel of Web 2.0 (45min Talk OSCON'06) 01:08
For a highly interactive web application to work well, the framework needs to manage user states, logic processes, and server resources intelligently.
This talk uses the Jifty kernel to demonstrate some interesting new concepts in this ever-expanding design space, including API reflection, client-side continuations, context switching, and mobile code.
We will also take approaches of several other web frameworks (Links, WaSH, Seaside, Rails, Catalyst, Springs, Cocoon, etc.), and express them as kernel modules on the Jifty system.
basically, "what I did in $job, and related past/future insanities I inflicted on @coworkers" 01:09
putter lol
!
insane due to... scope? 01:10
audreyt due to how-to-wrap-my-head-around-that-argh
putter "how to..." ... "with difficulty" :) 01:11
audreyt but once you're there, things are easy and intuitive :)
<darix> the learning curve is like a mountain in the himalaya ... 01:12
<darix> nearly 90degree and close to 8000 m
<darix> but standing up the hill just rocks ;)
putter indeed. once there, it's also a paper, and a couple of orielly-ish articles, and...
audreyt (originally applied to Hs, but also applicable here)
putter and some high priced consulting/tutorials :)
audreyt well yeah. I'm happy to report I'm no longer in need of sponsorship, at the cost of delaying Pugs for maybe 6 weeks :)
<- saved enough money for ~1yr 01:13
putter yay
audreyt can also be considered a form of yak shaving.
putter yak farming? 01:14
audreyt mm yak hoisting, lifting and floating
putter yak protesting
audreyt "join us now and shave the yakware" 01:15
pfenwick looks forward to Audrey singing in the next Perl benefit concert. 01:17
putter so :{} requires lookahead for commaness. is there any other parser-needs-lookahead which hasn't been crushed out? 01:19
audreyt was there ever such events for Perl? :)
8 places 01:20
putter !
pfenwick Not that I'm aware of. I can envisage a post-OSDC karaoke session, though. 01:21
putter are they documented somewhere?
audreyt er, I thought you meant in Parser.hs 01:22
in Perl6, it's less than 8
bare=> 01:23
stmt-ending-brace}
arglist-ending-brace}
are the only three iirc
lookup "=>" after bare; lookup "\n" or "," after closing brace 01:24
audreyt misses her days with Taipei Philharmonic choir 01:25
though cut abruptly by the unfortunate voice change :/
putter used to be in a renaissance choir. much fun. 01:26
audreyt ooh, do tell 01:27
so you sing songs recorded from the renaissance? 01:28
(recorded with ink, not with soundwave capture devices invented by da Vinci, I presume)
putter many years ago. only remnant is a 3-yr-old friend now singing medieval drinking songs. :)
audreyt nice :) 01:29
putter yes, eclectic mix, religious and non, late middle ages through renaissance, couple of languages. 01:34
much smaller group than a philharmonic. tradeoffs, but I think I prefer small.
audreyt cool 01:36
bbiaba again... this time ~4hrs
putter is there any theory on how the oddballs fit in with the precedence parser? I was also a bit puzzled by trailing "," (eg, (3,) )
ok. thanks as always. 01:37
audreyt yes, theory is the nullterm
property
putter will google.
audreyt that is "I can take the rhs arg as a null term"
applies also to optional unary ("optionary") such as &rand.
not academic term per se; working concept employed by pmichaud 01:38
&
putter interesting. ok. tnx.
"Perl6 and non-stress induced alopecia in Bos grunniens fabri" 01:48
& 01:50
02:01 coumbes joined 02:16 weinig|away is now known as weinig 02:33 lambdabot joined 02:35 cmarcelo joined 02:45 shachaf joined 03:23 mako132_ joined 03:28 weinig is now known as weinig|sleep
svnbot6 r10584 | Darren_Duncan++ | ext/Relation/ : added new Relation class attribute 'is_mutable', currently just False, which says whether the object may be mutated or not ... as preparation for changing Relation from a Class into a Role 03:45
03:51 bjoern_ joined 04:06 _SamB_ joined 04:07 _SamB_ is now known as SamB 04:10 putter joined
putter S03 bug? - the operator table at the bottom of S03 doesnt seem to mention .<> 04:12
&
04:19 penk joined
spinclad remembers when the watchcry was 'shave the whales' 04:51
JudyHSIter update: i'm inclined to say i choose the wrong macro processor to factor out my code's cut-n-pastiness. trying m4 expansion in place of cpp: it will leave the generated code with line-by-line structure, which turns out to help gdb debugging. besides it's a better preprocessor, just not integrated. 04:56
cmarcelo spinclad: do you mean: was using cpp => now lets use m4? 05:00
cmarcelo just saw HSIter code, there are indeed some big macros there =P 05:07
05:21 iblechbot joined
spinclad cmarcelo: only going to m4 for my big function-defining macros. the rest of the #define's will stay. 05:26
05:27 cmarcelo joined
spinclad (cmarcelo: just answered, should i repeat?) 05:28
cmarcelo (i read in web irclog)
spinclad (ah, good)
cmarcelo spinclad: m4 => cool, i'm tracking commit RSS, so when you update something I'll try to test here too.. 05:33
05:38 GeJ left, GeJ joined 06:04 tifo joined 06:09 SSelva joined 06:11 SSelva left 06:24 vel joined 06:48 ludan joined 06:58 cognominal joined 07:11 SM_ax joined 07:23 stephanepayrard_ joined 07:38 cognominal joined 07:56 lichtkind joined, cognominal joined 08:16 mjk joined
svnbot6 r10585 | pmurias++ | Added myself to AUTHORS. 08:50
08:50 iblechbot joined 09:35 bjoern_h joined
svnbot6 r10586 | spinclad++ | - JudyHSIter: converted function macros from cpp to m4. should make debugging easier. 09:38
r10586 | spinclad++ | TODO: have build process generate JudyHS.c from .m4, either in configure or in make.
spinclad and that's it for 'tonight'. debugging again tomorrow. 09:41
&
10:14 cognominal joined 10:25 dduncan joined 10:41 szbalint joined 10:42 avarab joined 10:45 locksy joined 11:03 nperez joined 11:09 TimToady joined 11:11 neoesque joined 11:15 bjoern_h is now known as bsh 11:47 Aankhen`` joined 12:09 Aankhen`` joined 12:20 lisppaste3 joined 12:32 dduncan left 12:38 jsiracusa joined 12:51 iblechbot_ joined
szbalint hm, I don't get the Currying example in S06. 12:51
It says &textfrom := &substr.assuming(str=>$text, len=>Inf);
then
$all = $textfrom(0); # same as: $all = substr($text,0,Inf);
shouldn't that be &textfrom(0); ? 12:52
or am I misunderstanding something gravely?
12:59 Limbic_Region joined 13:02 jsiracusa joined 13:06 bsh is now known as xn--bjrn-6qa 13:07 jsiracusa joined 13:16 weinig|sleep is now known as weinig 13:27 froh-doh joined 13:44 justatheory joined 13:49 chris2 joined 13:58 hexmode joined
kolibrie szbalint: looks like it should be &textfrom(0) to me, too 13:58
14:14 nothingmuch_ joined 14:15 vel6608 joined 14:20 vytautas joined 14:21 Qiang joined 14:34 lypanov joined 14:54 cdpruden joined 14:55 lypanov left 14:56 glah joined, glah is now known as lypanov
lypanov audreyt: its a shame that the ghc binary post-install-script you wrote doesn't take into account the possibility of other prefixes 15:03
audreyt: after modifying the script to work with my locations, i found i needed to do: mv /usr/local/lib/libreadline.5.1.dylib /usr/local/lib/libreadline.5.0.dylib also 15:06
lypanov sighs 15:14
and then i get /usr/bin/ld: table of contents for archive: /usr/local/lib/ghc-6.5.20060526/libHShaskell98.a is out of date; rerun ranlib(1) (can't load from it)
booo
lypanov spots some thing on the wiki and debates giving up 15:17
15:18 bpederse joined
audreyt lypanov: just run ranlib on all .a 15:20
ranlib /usr/local/lib/ghc-6.5.20060526/*.a
that's all
lypanov oh 15:21
thats utterly unexpectedly simple :P
lypanov had certainly not thought that doing what it said would actually work :P
audreyt: awesome. darcs ./configure worked out. you could not possibly have been better timed :) 15:22
audreyt :)
lypanov audreyt: out of interest, what intel do you have? 15:23
audreyt white macbook 2ghz 2gram
lypanov :D
liking?
lypanov is trying to get his mum one as his ibook has big white splodes on the screen (booo!) 15:24
splodges*
lypanov listens to the result of a -j3
audreyt: i'm running eclipse, jboss, ghc, firefox, safari, itunes, ichat... 15:25
audreyt: maybe i should go that 2gram route also...
audreyt sure, it works wonderfully
minor acpi troubles. but certainly much better than anything i've used before. 15:26
lypanov linux?
/usr/bin/ld: Undefined symbols: 15:27
_ControlziMonadziError_zdf21_closure
booo
audreyt huh. 15:29
szbalint hey audreyt, could you look at what I've been talking about here a few hours ago please (if you have time)?
audreyt I'm actually about to sleep :/
15:29 mako132 joined
szbalint oh okay. Good night :) 15:30
lypanov sleep well audreyt :)
audreyt szbalint: currying? it's jsut a typo
szbalint phew.
:)
audreyt fixed.
thanks
szbalint I was hoping for it to be a typo otherwise my hopes for knowing Perl 6 would be pretty low. :) 15:35
audreyt never attribute to ingenuity what can be explained by sloppiness...
lypanov Linking darcs ... 15:36
/usr/bin/ld: Undefined symbols:
booooo. again
15:37 kanru joined
Limbic_Region audreyt - do you use Parse::Yapp? 15:39
audreyt no
I use parsec and pappy :)
15:39 hexmode joined
audreyt (and fglock's P::C::*) 15:39
Limbic_Region ok, but someone here has mentioned it numerous times 15:40
hrm - I guess I will just dig in
audreyt well, P::C::* does use Yapp as the bototm layer 15:42
cognominal pappy? 15:44
Limbic_Region is interested in a gentle introduction not waking up from a deep sleep to find yourself plummeting to the ground thousands of feet in the air without a chute
cognominal arf, le deuxieme mercredi du mois, c'est mercredi prochain 15:45
audreyt cognominal: packrat pappy. useful and fun 15:48
linear-time regex with capture and backtracking and backreference.
(sounds too good to be true, but it's indeed that good)
lypanov (um.....) 15:49
(*was thinking just that*)
audreyt (I elided the heavy memory cost.)
lypanov (hehe)
(unimportant in some situations)
audreyt but hey, 2gram must be good for something
indeed
lypanov giggles
yeah
audreyt lypanov: try -lHSmtl by hand 15:54
or pull in /usr/local/lib/ghc-6.5.20060526/libHSmtl.a
manually
should Just Work
15:56 hexmode joined
lypanov bows to teh audreyt 15:59
audreyt: awesome. that worked
audreyt I suspect package.conf problems, or something... 16:00
not sure. try and see where it's missed
also possibly different XCode version
lypanov audreyt: 2.2. didn't upgrade yet
audreyt but I really need to sleep
g'nite :)
lypanov sleep well :)
audreyt &
16:10 merlyn joined 16:11 weinig is now known as weinig|work
clkao audreyt: is it releasing time yet? 16:25
16:29 fglock joined 17:13 vel6608 joined 17:52 elmex joined 18:13 nothingmuch joined 18:18 mj41_ joined 18:37 lypanov left 18:38 wilx joined 18:40 SSelva joined 18:41 SSelva left, SSelva joined 18:43 SSelva left
Juerd ?eval 1+1 18:49
18:49 evalbot_10582 is now known as evalbot_10586
evalbot_10586 2 18:49
Juerd ?eval any(1..5).pick 18:50
evalbot_10586 1
Juerd ?eval any(1..5).pick
evalbot_10586 1
Juerd ?eval any(1, 2, 3) + any(4, 5, 6)
evalbot_10586 5
Juerd ?eval 15 ?? "perl 6" !! "blah" 18:51
evalbot_10586 "perl 6"
TimToady ?eval any(1, 2, 3) + any(4, 5, 6) 19:16
evalbot_10586 5
TimToady ?eval any(1, 2, 3) + any(4, 5, 6)
evalbot_10586 5
TimToady I'd say someone needs to randomize the random number generator in Haskell... 19:17
It works okay at the pugs> prompt though.
so maybe that's not the problem. 19:19
?eval any(1..5).pick
evalbot_10586 1
TimToady ?eval any(1..5).pick
evalbot_10586 4 19:20
TimToady that's better.
?eval any(1..5).pick 19:21
evalbot_10586 1
TimToady ?eval any(1..5).pick 19:23
evalbot_10586 1
TimToady does seem prejudiced towards picking the first one though. 19:24
?eval any(1..5).pick 19:29
evalbot_10586 1
TimToady ?eval any(1..5).pick
evalbot_10586 3
TimToady especially after a long spell.
does evalbot refork itself after a timeout with the same random seed? 19:30
Limbic_Region ?eval any(reverse(1..6)).pick 19:31
evalbot_10586 4
Limbic_Region ?eval any(reverse(1..6)).pick
evalbot_10586 1
Limbic_Region ?eval any(reverse(1..6)).pick
evalbot_10586 5
Limbic_Region ?eval any(reverse(1..6)).pick
evalbot_10586 3
Limbic_Region likes those results better
TimToady now wait a minute or two and then see if you get the same sequence. 19:32
Limbic_Region ?eval any(reverse(1..6)).pick 19:33
evalbot_10586 2
Limbic_Region ?eval any(reverse(1..6)).pick
evalbot_10586 1
19:33 larsen joined
Limbic_Region ?eval any(reverse(1..6)).pick 19:33
evalbot_10586 6
Limbic_Region ?eval any(reverse(1..6)).pick
evalbot_10586 5
Limbic_Region ?eval any(reverse(1..6)).pick 19:34
evalbot_10586 3
Limbic_Region 2 anyone
?eval any(reverse(1..6)).pick
evalbot_10586 6
Limbic_Region nope - appears that is less prone to predictability
TimToady ?eval any(1..5).pick 19:35
evalbot_10586 4
Limbic_Region still thinks it would be nice for any(2, 3, 5, 7, 11, 13, 17) == any(1, 3, 5, 7, 9, 11, 13, 15, 17, 19) to produce the intersection - but I guess that's what Sets are for 19:37
19:50 DaGo joined
TimToady ?eval any(1..5).pick 19:53
evalbot_10586 1
TimToady ?eval any(1..5).pick 19:54
evalbot_10586 2
TimToady ?eval any(reverse(1..6)).pick 19:57
evalbot_10586 4
TimToady ?eval any(reverse(1..6)).pick
evalbot_10586 3
19:57 fglock joined
gaal ?eval any(1..1024).pick 19:57
evalbot_10586 470
TimToady it seems to timeout after a minute or two, so if you wait 3 minutes you may well get 470 again. picking a bigger range is clever, gaal++ 19:58
gaal what's p6 for 1's complement? 19:59
(p5 ~)
(I'm skeptical it's a real problem btw. Murphy having some fun with the dice is all) 20:01
TimToady +^ or ~^ 20:02
gaal ?eval any(1..~^0).pick
evalbot_10586 undef
gaal heh.
?eval any(1..+^0).pick 20:03
evalbot_10586 pugs: out of memory (requested 1048576 bytes)
gaal inefficient superposition.
TimToady it's just Murphy having fun... :)
?eval any(1..1024).pick
evalbot_10586 514
TimToady maybe it times out on silence 20:04
gaal ?eval ~^0
evalbot_10586 "\d[207]"
gaal um?
how's that, I wonder (and go rtfs)
TimToady ?eval ~^"0"
evalbot_10586 "\d[207]"
prefiks ?eval +^0x30
evalbot_10586 4294967247 20:05
prefiks ?eval (+^0x30)&0xff
evalbot_10586 255
gaal oh, okay. op2 "~^" = op2Str $ mapStr2Fill xor
~0 was such a succinct way of saying "real big". 20:06
PerlJam gaal: but with bigint, you can get so much bigger. 20:08
TimToady That's generally * now.
gaal PerlJam: with bigint, you can get complex bigger. 20:09
can anyone explain the type hint in op1 "+^"? Prim.hs:206 20:15
(complement :: Word -> Word)
@type complement 20:16
lambdabot forall a. (Bits a) => a -> a
gaal how could the input be coerced to a Word?
hmm, oh, I see, there's an instance Value Word and opCast1 fmaps with its fromVal 20:18
you guys are so helpful :)
TimToady ?eval any(1..1024).pick 20:21
evalbot_10586 320
TimToady ?eval any(1..5).pick 20:23
evalbot_10586 4
TimToady ?eval any(1..1024).pick 20:27
evalbot_10586 586
gaal maybe someone hacked evalbot to seed curiously when you requested an eval, TimToady. 20:29
reminds me of the time I got irritated at people at $work logging in as root and patched login to be a little slower and give a nasty message when they did that. 20:30
szbalint hehe 20:42
reminds me of sudo with 'insults' on :) 20:43
21:04 Limbic_Region joined
Juerd juerd.nl/p6sim.html 21:17
Any glaring big mistakes?
:)
Limbic_Region ?eval my @bar = 1..5; my $foo = @bar; $foo.[2] 21:19
evalbot_10586 \3
Limbic_Region Juerd - why do you have my $foo = \@bar; when my $foo = @bar; will do just fine?
Juerd Limbic_Region: See next slide?
Limbic_Region unless of course the spec has flipped again and Pugs has it wrong
oh 21:20
heh
Juerd :)
Limbic_Region Juerd - so I assume the ~~ match will eventually lead to junctions too? 21:21
my @xyzzy = 42, 15, 123;
Juerd No
Limbic_Region @xyzzy ~~ 15; # true 21:22
lambdabot Unknown command, try @list
Limbic_Region same as
any(@xyzzy) == 15 or ~~ 15
ok
Juerd Given time constraints and chosen topic, I put junctions in the bonus slide at the end
That has several things I can use to waste more time
szbalint Juerd: why don't you use say in the first example?
Juerd szbalint: To show how Perl 6 simplifies 21:23
szbalint oh
I scrolled.
:P
Limbic_Region are the magic ^ vars out or in for subs ATM
last I heard, they were reserved for bare blocks 21:24
Juerd I have no idea 21:25
They don't immediately make life better
Limbic_Region ?eval sub foo { say "$^foo" } foo('blah');
evalbot_10586 Error: Undeclared variable: "$^foo"
Limbic_Region guess they are out
gaal Juerd: empty slide near "sub foo"
Juerd As far as I consider them, they're just a more general approach to doing sortlike things
gaal: intentional, in case my time's up at that point :) 21:26
I'm really bad at planning talks
Mostly because I don't know how many questions the audience will ask
And I don't like delaying questions until the end
So I build in mechanisms like this 21:27
I have two mechanisms in this talk:
- the empty slide
- the last slide, with several things that I can explain without further slides
Limbic_Region ?eval my @foo = 1..5; @foo.end
evalbot_10586 4
Limbic_Region ?eval my @foo = 1..5; @foo.last
evalbot_10586 Error: cannot last() outside a loop
Limbic_Region Juerd - s/last/end/ 21:28
for each(@items; 0..@items.last)
Juerd Ohhh
Thanks :)
gaal Juerd: ACK. 21:29
Juerd I've never actually used @foo.end :)
Limbic_Region has to wander off but was almost finished
Juerd Thanks for reviewing, all of you :)
21:34 sockstat joined 21:36 putter joined
putter currently pugs parses both %h<3 and %h<3> . Is that possible with a spec parser? how? 21:39
Juerd It's *possible* 21:46
putter ...? 21:48
Juerd What's postfix:<?>, and how does it work on term:<...>? 21:49
putter there's prefix:<?>, but postfix? 21:50
Juerd That was my thought 21:51
But then you used it.
putter though there was scary talk of "if you find foo in mumblefix, but mumblefix:foo isnt defined, then you try otherfix:foo, and yafix:foo, and check the phase of the moon, and..."
Juerd Wheh 21:52
putter ahhhhh
Juerd Beer? 21:53
putter no, thank you 21:54
webmind bear? 21:55
putter oh, duh. .<> can't really be a postcircumfix.
where!
a bare block is a parsing oddity. wonder what a bear block is... 21:56
something hairy, no doubt 21:57
Juerd putter: Why couldn't .<> be a postcircumfix? 22:01
And can we abbr that to pcf? :)
Assuming there are no precircumfixes :)
afk 22:02
Limbic_Region Juerd - other than the one I pointed out, I didn't see any glaring mistakes 22:07
then again, I have a hard time keeping up with all the changes 22:08
putter Juerd: the interior is not an expression. %h<2+> is fine, but, @a[2+] isnt. 22:11
22:11 lypie joined 22:18 froh-doh joined
putter re S04/The Relationship of Blocks and Declarations "There are three ways to declare formal parameters to a closure.", 22:25
... there is also sub f { my($a,$b) = *@_ }. $_ is mentioned, but not @). 22:26
err, @_.
The explanation of "executes immediately" bare blocks could be fleshed out. Eg, creating a "Bare block" section near the top. The bit under "The do-once loop" isn't really enough. Perhaps there is more elsewhere I'm missing. 22:30
?eval {3}.() 22:35
evalbot_10586 3
22:37 weinig|work is now known as weinig
putter question - so, {3} as an expression is a closure, (->$_ {3}), and {3} as a statement is a closure invocation, ((-> $_=$+_ {3}).()), yes? 22:44
hmm... $a = CALLER:<$_>; { $b = CALLER:<$_> }; are $a and $b different? or...? 22:47
& 22:48
22:59 FurnaceBoy joined 23:10 macroron joined 23:15 lypie left
nothingmuch lamp.epfl.ch/~mcdirmid/papers/mcdir...erglue.pdf 23:23
it's nice because in Perl 5 that would be a disaster to implement (though feasable), but in Perl 6 it'll probably work out well 23:24
LtU++
23:25 froh-doh joined 23:26 prefiks joined 23:40 bpederse joined 23:44 ludan is now known as spinello, spinello is now known as spino, spino joined 23:45 spino is now known as ludan 23:50 Odin-LAP joined 23:59 kanru joined