Summer of Perl | 6.2.12 released! | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by nothingmuch on 12 July 2006.
nothingmuch TimToady++ # very amusing 00:23
wolverian the dev.perl.org HTML synopses are kept up to date, right? 00:27
nothingmuch wolverian: i think they're autogenerated
80% chance of that being a "yes"
wolverian thanks. unrelated: what's @@@arr? :-) 00:28
00:28 scook0 joined 00:41 elmex joined 00:42 pike joined 00:46 xinming joined
mdiep audreyt: do you know if anything is happening with the trypugs idea? I saw that cwest was going to try implementing it 00:50
audreyt cwest: commit whatever you have? :) 00:51
(as in, no)
mdiep heh, okay
clkao audreyt: hey.
audreyt yo clkao
clkao saw the test pass rate? 00:52
audreyt no, havn't backlogged
0.05%?
clkao almost
should be about 440 now
audreyt not bad
oh wait
that's actualy 5% not 0.05% 00:53
not bad, really, pil2js started much humbler
clkao: saw obra's idea ala typesafety.pm
clkao it was 200 or so two days ago
yes
need to supress warnings 00:54
audreyt to hijack "sub f (Int $x) {}"?
typesafety.pm had a ref.impl.
clkao i will leave the syntatic hacks for others ;) 00:55
obra audreyt: use warnings triggers a warning on it
at define time
audreyt really. well optree rewrite can rewrite that away
hm
obra: you still @ home?
obra yes.
about to come change the AC a bit. it's gotten painfully warm
00:56 ruoso joined
wolverian wow, JS (and this guy)slipwave.info/#%5B%5BCPS%20transfor...Observable is crazy: 00:58
thanks, irssi.
audreyt wolverian: yeah, edwardk is amazing 01:00
01:00 markstos joined
wolverian right, I didn't realise you probably know him already :) 01:01
ivanfrey audreyt: can you login to my machine and change your password?
01:02 pike is now known as bcorn 01:03 revision17_ is now known as Revision17
wolverian should if be an expression? 01:03
2. why are sub declarations expressions now? 01:04
01:07 jon__ joined
audreyt ivanfrey: what's the ip? 01:08
wolverian: if can be made expr with do
?eval do if 1 { 3 }
01:08 evalbot_11479 is now known as evalbot_11492
evalbot_11492 3 01:08
audreyt ?eval 4 + do if 1 { 3 }
evalbot_11492 7
wolverian yeah, just wondering which is the right huffmanization 01:09
audreyt there is the "or" and ??!!
and "and"
wolverian or rather, why subs are exprs now but if is not
audreyt which is already infix forms of if
because perl or/and operates on val not on bool
so is good as expr-form if
as for subs, because we have anonsub
and scoped sub 01:10
so unifying two syntaxes makes a bit more sense
wolverian right
audreyt also, "sub" and "method" as functions
wolverian "my sub foo ..." is "my(sub foo..."?
ivanfrey audreyt: 72.136.69.198
audreyt (my &foo ::= sub { ... })
something like that
wolverian right 01:11
audreyt but yeah, the idea is function declarators are so special
they can occur as expr unambiguously
whilst "if" can occur postfix
and hence can confuse if it's also expr form 01:12
print if 3;
wolverian ouch
audreyt if we take postfix away then it can be made expr
ivanfrey audreyt: did your login fail?
audreyt but that wouldn't be perl would it.
ivanfrey: I don't have an old passwd 01:13
wolverian audreyt, thanks for explaining it
audreyt wolverian: np :)
so, chromatic called for "easy tasks a newcomer to Pugs can do"
any particular suggestions?
ivanfrey audreyt: use sudo, I gave you admin privileges
audreyt ivanfrey: I can't sudo without my passwd, heh
ivanfrey audreyt: temp 01:14
audreyt done. thanks
01:16 bcorn joined
TreyHarris ?eval ( [ 1, 2 ], 3 ) ~~ ( { 1 }, { 1 } ) 01:18
evalbot_11492 Bool::False
TreyHarris was Yuval claiming that that should be true? I can't see why
er, we're on IRC; s/Yuval/nothingmuch/ ;-) 01:19
audreyt no idea either 01:22
maybe he thinks it should distribute
list of code should be like code takes list
clkao audreyt: what are you hacking on?
audreyt clkao: at this moment, food
or rather, prospect of food 01:23
clkao: what are bite-sized tasks we can suggest random perl.com readers to join in and hack?
clkao: I thought about "use perl5:Foo" in v6.pm
but that seems a bit steep
clkao audreyt: go through the tests that are compiled and fix bits? 01:24
and go through the tests that aren't compiled and fix the parser?
so there's going to be perl.com article? ;)
audreyt no 01:26
perl.com newsletter
weekly by chromatic 01:27
hm, perl.com is static for 6 weeks now
must be the conferences
clkao giggles 01:28
TreyHarris ?eval given 3 { when Int { say "yes"; Bool::True } } 01:29
evalbot_11492 OUTPUT[yes ] Bool::True
audreyt clkao: so "make smoke-perl5" works now? 01:30
01:30 imperator joined
clkao audreyt: sure, two tests hang during compiling 01:31
audreyt: and smoke-server doesn't accept my output
audreyt write ingo?
clkao audreyt: want to reorganise the prelude and pugs::internal:: a bit?
maybe split them in different file so we can import incrementally when the syntax are implmemented 01:32
audreyt [email@hidden.address]
that sounds good. add to the hiveminder pugs group?
I think I'd like to hack a public-page
much like rt.perl.org
to export the hiveminder pugs group's up-for-grab and task status to public
clkao yes 01:33
obra cool
first step, get hm tests passing on your workstation ;)
audreyt doing that right now actually
wow, IO::All. 01:34
leo-max bye 01:35
01:35 leo-max left 01:40 macroron joined 01:45 arcady joined 01:50 weinig joined 02:06 cfedde joined 02:07 bsb joined
clkao small exercise for bored people: if/elsif/else is not emitted correctly in v6 02:09
02:09 Bit-Man joined 02:11 markstos left
svnbot6 r11493 | ajs++ | index, rindex and a fix to what looks like a brain fart when I wrote up time 02:16
02:22 fglock joined
wolverian is there a public ghc-6.5 on feather? 02:31
is it ok to build my own if there isn't? :)
audreyt sure it's ok 02:40
try to be nice(1) though
wolverian yeah. what's a nice (cough) value?
(I also installed alex and happy, if anyone needs those)
I assume the default is ok. 02:42
audreyt yup 02:43
wolverian maybe I'll get into ghc hacking eventually (as scary as the thought is) 02:44
or at least figure out ghc api ...
I wonder if it would be possible to run a generic svn repository on feather 02:48
audreyt sure is possible 02:49
mm, I've a long-overdue ghc hacking ticket to resolve (in the lexer)...
wolverian DIY right? :) I've never configured svn.. reading on it 02:50
ivanfrey audreyt: how often should I run smoke tests and upload them? 02:51
02:54 fglock joined
ivanfrey What are the bots and their role in this channel. 03:04
buubot, evalbot_11492, jabbot, lambdabot, perlbot? 03:06
wolverian > let x = "hi" in x ++ " ivanfrey" 03:08
lambdabot "hi ivanfrey"
fglock ivanfrey: evalbot evaluates pugs expressions - 11492 is the svn version
ivanfrey > let x = "hey" in x ++ " that's cool!" 03:11
lambdabot "hey that's cool!"
fglock oops - there is no installable Sub::Multi in cpan yet
audreyt yeah it's underscore
clkao: push a non-underscore one out maybe? or make fglock+me comaint too?
(or authorize me to do that :))
fglock I counted 22 dependencies installing v6.pm 03:13
audreyt there will be more 03:14
one day we'll depend on the whole CPAN
...or maybe not. :)
ivanfrey fglock: how do I pass pugs expressions to evalbot_11492? 03:15
audreyt ?eval [+] 1..10
03:15 evalbot_11492 is now known as evalbot_11493
evalbot_11493 55 03:15
fglock ?eval 1 2
evalbot_11493 Error: unexpected "2" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
fglock cgi-irc doesn't accept plus-sign :) 03:16
03:17 rashakil left 03:18 rlb3 joined
audreyt yeah, I think it's URL encoding 03:18
ivanfrey ?eval ('1' & "2") * (3.0 | "4abcd")
evalbot_11493 3.0 03:19
fglock still counting - 25...
audreyt try using the %2B
notation
type this:
?eval 1 %2B 2
evalbot_11493 Error: unexpected "B" expecting "_", fraction, exponent, term postfix, comment, operator, ">>+&<<", ">>+<<<", ">>+><<", ">>xx<<", ">>~&<<", ">>~<<<", ">>~><<", ">>%<<", ">>*<<", ">>/<<", ">>x<<", "\187+&\171", "\187+<\171", "\187+>\171", "\187xx\171", "\187~&\171", "\187~<\171", "\187~>\171", "\187%\171", "\187*\171", "\187/\171", "\187x\171", "+&", "+<", "+>", "xx", "~&", "~<", "~>", "%", "*", "/", "x", postfix conditional, postfix loop, postfix
audreyt and see if it works?
fglock 1%2B2
audreyt with space
fglock no :)
1 %2B 2
audreyt sigh
:)
(brb)
fglock 1 &plus; 2
ivanfrey ?eval ((2 .. 20) | ('a0' .. 'b9')) / (2 & 4) err 1 ... 03:21
evalbot_11493 4.75
TreyHarris ?eval ('1' & "2") * (3.0 | "4abcd") 03:25
evalbot_11493 3.0
TreyHarris what the heck?
I would have expected ((3.0 | 4.0) & (6.0 | 8.0)) 03:27
fglock I think the result takes many lines, and evalbot only shows the first line 03:28
?eval 42 | 43
evalbot_11493 42
TreyHarris ?eval any(1, 2) == 2 03:30
evalbot_11493 Bool::False
TreyHarris hmm. no, I think it's broken
03:31 weinig is now known as weinig|sleep
TreyHarris ?eval ?(all(1, 2, 1) < 3) 03:32
evalbot_11493 Bool::True 03:33
TreyHarris ?eval ?(all(1, 2, 17) < 3)
evalbot_11493 Bool::False
TreyHarris so maybe it's only printing the first component value of any conjunctional value
?eval ?(any(1, 2) == 2) 03:34
evalbot_11493 Bool::True
TreyHarris yeah, that's what it's doing
?eval ?(any(1, 3) == 2) 03:35
evalbot_11493 Bool::False
TreyHarris yup.
?eval (any(1, 2) == 2).ref 03:36
evalbot_11493 ::Junction
pasteling "fglock" at 200.102.126.223 pasted "v6.pm dependencies" (41 lines, 705B) at sial.org/pbot/18371 03:37
fglock & 03:42
03:42 fglock left 03:48 frederico joined 04:04 diotalevi joined
vsoni seen audreyt 04:06
jabbot vsoni: audreyt was seen 46 minutes 49 seconds ago
04:10 wesle1 joined 04:12 arcady joined
ivanfrey What is the ide used for pugs? vi? 04:13
04:27 buubot joined 04:29 buubot joined 04:45 lumi joined 04:50 fglock joined 04:55 jargonjustin joined 04:56 fglock left
mugwump ivanfrey: currently I think only vim has a syntax mode for perl6 05:16
mugwump takes that back 05:17
Actually, Steffen Schwigon has also extended cperl-mode to deal with perl6 05:18
(for emacs)
nothingmuch good night 05:30
05:37 kane_ joined 05:41 vsoni joined 05:59 merlyn joined
wolverian I.. forgot --prefix from my ghc compile 06:03
wolverian cries 06:04
audreyt just configure again
the build should be faster 06:05
wolverian doesn't recompile the parts that didn't use the path or something?
audreyt yeah 06:06
wolverian thanks :)
seemed to skip stage1 altogether, yay 06:09
hm, no, it did do something there. I think. oh well, time to sleep :) 06:10
oh, done. nice
ouch 06:11
fails at /home/wolverian/opt/bin/ghc: line 5, looking for /usr/local/lib/ghc-6.5.20060712/ghc-6.5.20060712 06:12
I guess I'll do a make clean, then
audreyt oy. 06:13
06:28 vsoni joined 06:42 mauke_ joined 06:49 iblechbot joined 07:02 mauke_ is now known as mauke 07:21 cognominal joined 07:23 drrho joined 07:47 xinming joined 07:48 Steve_p joined 08:23 alexe joined 08:26 tcliou joined 08:35 cognominal joined 08:38 hugues23 joined 08:40 buetow joined 08:50 elmex joined 09:04 revision17_ joined 09:14 alexe left 09:19 paultcochrane joined 11:07 ludan joined 11:20 MikeJS joined 11:27 dolmen joined 11:36 xinming joined 11:55 xinming joined 12:22 bpphillips joined 12:29 nelhage joined 12:41 iblechbot joined, vel joined 12:49 oozoo joined 12:57 oozoo left 13:02 oozoo joined, oozoo left 13:03 Jedai joined 13:04 eve_ joined 13:05 eve_ is now known as bridges_, bridges_ left 13:20 frederico joined 13:21 trampel joined 13:24 oozoo_ joined 13:25 oozoo_ left 14:23 amnesiac joined 14:34 mako132 joined
svnbot6 r11494 | ajs++ | roundrobin description 14:38
14:39 penk joined, vel joined 14:48 cjeris joined 14:55 fglock joined
ajs Am I right in saying that C<@a Y @b Y @c> needs to invoke a special infix:Y(Iterator $a, Array @b) form that takes each tuple off of $a and adds an element from @b to it, or is there some magic that turns that into a quasi-listop? 15:00
Well, I'll check it in and see who screams... ;) 15:03
svnbot6 r11495 | ajs++ | Added cat and the infix form of zip (Unicode and ASCII). For this, I had to arm-wave the mechanics of chained infix zips... I think my call is reasonable, but I would appreciate input 15:04
fglock ajs: Y is fixity='infix' and assoc='list', which makes it parse like ','
ajs The word fixity occurs only once in the specs... can you explain it to me? 15:06
And for that matter, how DOES comma work?
fglock ($a Y $b) is infix position; (Y $a) is prefix; ($a Y) is postfix
comma is a list composer 15:07
ajs gotcha, hence the infix:<Y>(...)
But how does $a Y $b Y $c actually work, signature-wise if it only takes two arguments?
fglock infix:<Y>( @a, @b, @c, ... ) 15:08
ajs Ah... ah... that's not a valid signature. Do you mean infix:<Y>( Container *arrays ), and if so... well, is that valid? I'm happy to change the spec, but I've never seen a slurpy listop before 15:09
er slurpy infix that is
that's infix:<Y>( Container *@arrays )... lost the @ 15:10
fglock I think it is 'sub zip (*@@arrays) { ... }'
15:11 dolmen joined
ajs Yes, thank you! That's the magic cookie! 15:11
fglock S06 - 'Multidimensional argument list binding'
ajs I had missed the seciton on @@ which clearly states that that's how zip works.
Re-writing Functions.pod section on zip now.... 15:12
Oh, that so drastically simplifies things! 15:13
svnbot6 r11496 | ajs++ | fglock++ - told me about *@@ parameters, and the ability to build an infix listop using it. zip is now correctly defined, and all Container functions are simplified 15:16
15:17 weinig|sleep is now known as weinig
svnbot6 r11497 | ajs++ | Spellcheck pass on Functions 15:28
15:30 luqui joined, luqui left
ajs Spellchecking Perl documentation is an interesting sport... it should be in the Olympics. 15:30
pasteling "kolibrie" at 66.239.158.2 pasted "questions about regex, token, rule" (19 lines, 487B) at sial.org/pbot/18377
ajs kolibrie: comments don't match anything ;-) 15:31
kolibrie ajs: :) 15:32
ajs Looks like token's "no backtracking" attribute is being scoped down into the sub-rule.
Oh no, wait. that works fine because of the ? 15:33
Yeah, that's reasonable. Why would you expect .*? to match more than zero characters when used from inside a token{} 15:34
svnbot6 r11498 | fglock++ | PCR - Pugs::Grammar::Precedence - implemented chain operators
r11498 | fglock++ | PCR - version is now 0.11
ajs fglock: sure, just change the parser to make yourself right! ;-) 15:35
kolibrie what is confusing (wrong?) is why it makes a difference whether .*? is specified explicitly or as a subrule
15:35 vel joined
fglock ajs: that's what you get for writing your own compiler :) 15:36
kolibrie also confusing is why the token and rule match different things on a string with no spaces 15:37
ajs "rule schedule { .*? u } # matches nothing" has to be a bug
fglock this matches whitespace followed by 'u' 15:38
svnbot6 r11499 | fglock++ | v6 - depends on PCR 0.11
r11499 | fglock++ | v6 - parses chain operators (no emitter code yet)
kolibrie fglock: see my nopaste 15:39
fglock kolibrie: I think token passes the :ratchet flag to regex, and this makes .*? to not backtrack, and then it matches nothing 15:40
.*? matches '', '.', '..', '...' - the first match succeeds 15:41
kolibrie fglock: but why the difference between token and rule? 15:42
token matches, rule doesn't
fglock token is faster - use it for better performance, but it can't backtrack
15:42 FurnaceBoy joined
kolibrie I thought both rule and token do not backtrack 15:43
fglock yes - rule is the same as token - but spaces are significant - in the rule, '<junk> u' means '<junk><ws>u' 15:44
'aoeu' doesn't have a space before 'u' 15:45
kolibrie so 'token schedule { .*? u }' and 'rule schedule { .*? u }' should have the same match result
fglock clkao: my last change must have broken a hundred tests - still missing emitter code... 15:46
kolibrie: right
oops - no
the token is compiled as /u/, and the rule is compiled as /\su/ 15:47
kolibrie so the whitespace becomes manditory? 15:48
fglock tokens are meant for matching single words fast
rules are meant for statements with many words - that's why whitespace is significant 15:49
and 'regex' if for everything else :)
ajs ?! wait, ws is significant in rules? So all of my nifty documentation is wrong. Doh!
lambdabot Maybe you meant: . v
kolibrie is trying to get the the bottom of why his hackathon yapc_schedule.pl does not seem to work, when he saw it work that night 15:51
fglock also, the whitespace semantics in rules is user-defined
kolibrie fglock: I was taking advantage of that in yapc_schedule.pl 15:52
fglock kolibrie: maybe the lib was fixed :)
lunch & 15:53
kolibrie fglock: so that may explain the token/rule difference, but what about .*? vs <junk>? 15:54
fglock clkao: re chain ops - try parsing ' 1 < 2 <= 3'
svnbot6 r11500 | ajs++ | Some changes to grammars / regexes for various function docs: rules have significant whitespace, so not useful for things like pack and sprintf 15:55
fglock kolibrie: it depends on how :ratchet is passed on to subrules - S05 should hold an answer ... 15:57
15:57 swaroop joined, fglock left
kolibrie will dig 15:57
15:59 ruoso joined
pmichaud :ratchet is not passed to subrules 16:00
kolibrie pmichaud: good
pmichaud: any ideas why the two 'token' lines in my nopaste match differently? 16:01
pmichaud token schedule { <junk> u } should match 'u' 16:03
token schedule { .*? u } should match 'aoeu'
kolibrie why are they different? 16:04
pmichaud .*? is explicit eager backtracking
<junk> has no backtracking
kolibrie <junk> is defined as .*?
pmichaud but it's a subrule
so, token schedule { <junk> u } is the same as
regex schedule { <junk>: u } 16:05
(note the implicit ':' after <junk>)
it's the same as if one had said token schedule { .*?: u }
make sense yet? 16:06
kolibrie no
pmichaud token implies :ratchet, which means no backtracking once something has succeeded
so, in token schedule { <junk> u } we first make a call to the junk regex
that matches an empty string, because it's .*? 16:07
16:07 FurnaceBoy_ joined
pmichaud so, <junk> has now succeeded, and we won't backtrack into it 16:07
now we try to match a 'u'
that fails (we find 'a'), so we increment the starting position by one and try again
note that we don't go back into the 'junk' rule and try matching 'a' -- that subrule already succeeded 16:08
kolibrie why doesn't it work the same when we specify .*? explicitly?
pmichaud because .*? explicitly says to backtrack, even though this is a 'token'
i.e., .*? overrides :ratchet
just the same as .*+ overrides :ratchet 16:09
kolibrie I hoped that I could replace any hardcoded text with a subrule 16:10
pmichaud (I should probably rephrase: "*?" and "*+" override :ratchet)
if you want backtracking there, you don't want to be using 'token' 16:11
kolibrie what I want, is for yapc_schedule.pl to work
pmichaud another possibility is token { <junk>**{1}+ u } which is ugly
kolibrie I want to be able to overwrite <ws> to be .*? 16:12
16:12 chris2 joined
pmichaud I don't think there's any direct value to that 16:12
because it will always match a null string in rules
kolibrie and then make a rule to glue a bunch of regexes together
At the Chicago hackathon it worked 16:13
pmichaud I'd have to see the code again to know exactly what worked
I just know that we don't backtrack into subrules when used inside of token/rule 16:14
16:14 merlyn joined
kolibrie pmichaud: svn.openfoundry.org/pugs/examples/r...chedule.pl 16:15
pmichaud why not just switch 'token' to be 'regex'? That gets the backtracking you're looking for 16:16
oh, wait
hmmm
personally, I think I would just do the whole thing with regex 16:17
kolibrie I would like to be able to define what I am interested in and ignore everything else 16:18
this enables very easy data extraction
or validation of content based on a grammar, yet able to ignore extra stuff 16:19
16:20 weinig is now known as weinig|away
pmichaud I just don't know that overriding <ws> as .*? is going to get there 16:21
oh
how about
kolibrie it worked on audreyt's laptop at Chicago
pmichaud instead of rule, use regex {:w <title> [ <talk> ]+ }
kolibrie but now I can't get it work anywhere 16:22
pmichaud (which is what I think we did on Audrey's laptop at Chicago)
TimToady :w is now :sigspace
pmichaud right, but PGE still has :w
TimToady or :s
pmichaud (I don't think PGE has :sigspace/:s yet)
ah, I'm wrong, PGE has :sigspace 16:23
kolibrie so the :sigspace needs to be inside the braces, not outside?
pmichaud and :s
I don't know how pugs passes adverbs to regexes yet, so inside is the safe way to go 16:24
TimToady: there's a pge ticket in parrot-porters about leading whitespace before internal adverbs -- any thoughts? (more)
TimToady: example: token {:i hello} versus token { :i hello } 16:25
TimToady wouldn't matter for a token.
you mean rule?
pmichaud okay, rule then :-)
I'm just thinking syntax
TimToady will, the <?ws> after the :i is case insensitive. :) 16:26
*well
pmichaud the question is whether the second example above is a syntax error or no
or, for a slightly different example
TimToady why should it be?
pmichaud token { [:i hello] } versus token { [ :i hello ] }
TimToady as far as I'm concerned, [ foo :i bar ] is legal. 16:27
pmichaud no
that ':' is a 'cut'
TimToady no, :i is a token.
you have to say : i to get cut
pmichaud (based on previous conversations)
TimToady brb & 16:28
pmichaud I thought we were doing (but hadn't documented yet) [ foo <:i> bar ]
kolibrie pmichaud: changing to 'regex schedule { :s [ <talk> ]+ }' results in '*** Cannot parse PGE: <schedule>' 16:30
pmichaud kolibrie: the :s has to go immediately against the left brace 16:31
(according to PGE -- currently working out the syntax with TimToady )
16:31 nova-alpha joined
kolibrie pmichaud: well, no error, but still only matched one 'talk' 16:32
nova-alpha hi
pmichaud well, note that 'token' won't use the :ws rule
sorry, the <?ws> rule
nothingmuch hi kolibrie
kolibrie audreyt: do you still have the actual file that worked in Chicago?
nothingmuch: hi 16:33
nothingmuch wunders if any(@Larry).pick is going to clarify the === woes we're having, in terms of stating the purpose of ===
i think there's much FUD around =:=, === and .id because they are ill understood, not on the technical level, but in terms of purpose
TimToady nothingmuch: yes, the basic problem is that there are multiple purposes happening here. 16:34
audreyt kolibrie: you mean the input?
kolibrie the grammar
nothingmuch TimToady: i'll take that as a "yes, soon", so thanks =) 16:35
TimToady === will be reserved only for immutably true comparison, while something like eqv will be introduced for 'are these things equivalent currently'.
nothingmuch okay
TimToady in addition, eqv (and cmp) will take an optional sig to say how to compare.
audreyt kolibrie: it is the same one as in examples/rule/
16:35 buetow joined
TimToady so sort criterion unifies with sigs 16:35
nothingmuch so what's the benefit of =:= vs ===? why the distinction? 16:36
kolibrie audreyt: does it still work on your laptop, because I can't get it to work anywhere
nothingmuch immutably true comparison means that even if $x changes when compoared on this dimension they are the same?
audreyt isn't =:= basically === but with lvalue on both sides?
$x =:= $y # variable($x) === variable($y)
nothingmuch okay 16:37
is it useful?
enough to get such a pretty operator?
because === has a 'valueness' to it, that many people are confused about
if === was eqv and =:= was the current === that may resolve things
audreyt I tend to agree, but it's ergonomics, so I don't have strong feelings one way or another 16:38
TimToady I like === to be "mathematically pure" and eqv to be the "dirty" one.
16:38 szbalint joined
nothingmuch oh... hmm... 16:38
nothingmuch *thinks*
so if we go to the currency object example
=== is the right thing to use? 16:39
even if they e.g. have different sources, or something?
kolibrie pmichaud: changing everything to a regex still only matches one 'talk', and I thought I had a bunch of different types of regex/token/rule in the original
TimToady mutable objects are never ===. they can be eqv.
nothingmuch ah
szbalint Hello. 16:40
nothingmuch so === is essentially refaddr() assuming perfect constant folding
and =:= is on the container only?
TimToady yes 16:41
nothingmuch tries to come up with a use case
pmichaud kolibrie: I can't speak too knowledgably about what was working at yapc -- I don't recall that level of detail. I do know that if <ws> is defined as { .*? }, then it won't consume anything when implicitly called from a rule 16:42
i.e., it'll always match the empty string
nothingmuch haha: www.treehugger.com/files/2006/07/st...anning.php
kolibrie pmichaud: that does seem to be what is happening now 16:43
pmichaud and, of course, <?ws> isn't called at all from a token or regex unless :sigspace/:s is specified
nothingmuch TimToady: what is the plausibility of having immutable items that are not constants? 16:44
like like an immutable concatenation operator
for strings
pmichaud and I'm not sure that internal :sigspace/:s is implemented in PGE yet (although :words and :w is)
nothingmuch and immutable lists/tuples/pairs
(think haskell)
i don't think there is a good space to fit this on a language level
but if we have these i would be *very* happy (especially for objects) 16:45
since I have been using them in perl 5 and it's just not as fun
(very heavily for 4 of my last projects)
TimToady that is what the whole "you can pretend these objects are immutable if the ids are ===" is all about.
nothingmuch it also encourages COW safety
this is not about pretending though
TimToady from the implementation end it's a pretense. 16:46
from the language end, no
nothingmuch oh, i see
does the runtime get to consolidate these when it gets a chance?
audreyt consolidate? 16:47
nothingmuch that is, is it safe to let the === operator move two data objects to the same memory space once it finds them, oppertunistically?
TimToady I think having the same id is a strong promise of that, probably.
nothingmuch okay
kolibrie feels his hackathon project trickling through his fingers and away
nothingmuch my $foo = "foo"; my $bar = "fo"; $bar .= "o"; # are the IDs the same? 16:48
i mean, on the semantic level
is $foo === $bar
and when either will change, is it the value that's changing or the container that's getting an entirely different value?
TimToady I think the valueness can also be defined by === directly without being mediated by .id 16:49
nothingmuch hmm
TimToady you can probably ask for the id of a string, but it would probably have to canonicalize it.
nothingmuch are you saying that since i can say my $x = $bar; $bar .= "o"; # $x unchanged here
then they are the same?
and it's not the value that's being changed? 16:50
because otherwise you can't just canonicallize to some bytestring encoded some way, or whatever, it needs to also close over the address space of the mutable region
TimToady $bar ends up with a different string value in it, presuming you meant ~=
nothingmuch yes, sorry... old habits die hard 16:51
16:51 vytautas joined
nothingmuch so basically the immutabilitye is a deep structure only thing 16:51
TimToady just as if you say $x += 1 you get a different numeric value.
nothingmuch will summarize to the mailing list
thank you
possible S03 patch pending
gotta solve Moose role meta object protocol issues first 16:52
TimToady patches welcome. I need to trot off to $job.
kolibrie audreyt: can you help me debug yapc_schedule.pl and get it working again?
nothingmuch audreyt: btw, you may want to sanity check our roadmap
have fun
audreyt roadmap? url? 16:55
kolibrie: if you convert it to a t/rules/ :)
nothingmuch not quite written yet
see #moose
audreyt only sees files in t/ as bugs... :)
kolibrie audreyt: if it still works on your laptop, that is great, and I just need to figure out how to get it to work in other places 16:56
audreyt: if it no longer works there, I have no idea how to get it to do what I want 16:57
audreyt let me check. 16:58
16:59 lollan joined
pmichaud I suggest: regex speaker { \<small\> (.*?) \</small\> } 17:00
or, eventually:
regex speaker { \<small\> <( .*? )> \</small\> }
(assuming that the speaker is what appears within a <small>...</small> sequence) 17:01
kolibrie pmichaud: perhaps, but those are little details that I can clean up
audreyt pmichaud: 17:02
t/compilers/pge/pge-hs.t
now fails again
pmichaud checking
audreyt that's the root cause
kolibrie is glad it's not just him
pmichaud [pmichaud@orange trunk]$ prove t/compilers/pge/pge-hs.t
t/compilers/pge/pge-hs....ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.10 cusr + 0.02 csys = 0.12 CPU)
[pmichaud@orange trunk]$
(r13279) 17:03
audreyt hm.
17:03 fglock joined
audreyt weird, when I svn up it worke again too 17:04
...and now it worksforme 17:05
but it did break on last night's parrot
pmichaud fair enough -- I haven't changed anything in pge :-)
audreyt I know, I've seen the log :) 17:06
and as long as it works I'd like not to triage :)
leo audreyt: the HLL related changes went into .pbc, rendering these possibly incompatible
kolibrie audreyt: so I should svn up and try again?
audreyt there's been a fair bit of reshuffling that has caused strange error messages lately
leo: gotcha
pmichaud ah yes, any existing .pbc's may need rebuilding
audreyt kolibrie: yes, svn up to a fresh parrot
pmichaud does a complete rebuild every morning
audreyt kolibrie: this is my input set:
leo if in doubt, make realclean
audreyt ...seems it pays off to always be in doubt :) 17:07
perlcabal.org/~audreyt/tmp/monday
kolibrie: try your input set on this "monday"
and convert it to a t/rules/ ?
kolibrie audreyt: will do
audreyt danke
17:12 justatheory joined
ajs audreyt: My mail about the S29/API breakup is away. If I'm misrepresenting your request in that, please feel free to comment. 17:12
audreyt sure. thanks!
ajs++
pmichaud ajs++ 17:13
(excellent work on S29)
ajs pmichaud: thanks 17:14
audreyt afk, bbiab 17:16
17:21 hexmode joined
kolibrie audreyt: rebuilt my parrot on feather and ran 'pugs ~/pugs/examples/rules/yapc_schedule.pl monday' but got no match 17:25
locally I get *** Cannot parse PGE: <schedule> 17:26
feather pugs appears to be r11500, local pugs is r11248 17:27
my feather parrot is r13279, local is the same 17:28
17:38 xinming joined 17:39 andara joined
cognominal what is the best way to get ghc on the macbook (intel macosx)? 17:41
svnbot6 r11501 | fglock++ | v6 - chained operators - (1 < $x <= 3 < $y) 17:43
r11501 | fglock++ | - doesn't short-circuit yet
ajs fglock ++ fglock ++ fglock ! 17:48
Steve_p Ohhh! Shiney! 17:52
nnunley Breaks t/08-test.t for me. 17:53
fglock nnunley: checking...
nnunley fglock: 'plan 1;' is being transformed into 'plan( [ \(1) ], {} ); 17:54
fglock nnunley: that's Data::Bind way of passing parameters 17:55
nnunley Ahh.
Maybe I have a stale version of Test.pm
17:55 vel joined
nothingmuch clkao: would you like to rsync the rest of the music? 17:56
nnunley deletes Test.pmc
17:58 gosha joined, gosha left 17:59 szbalint_ joined 18:01 weinig|away is now known as weinig 18:06 frederico joined 18:08 szbalint_ is now known as szbalint
svnbot6 r11502 | fglock++ | v6 - 'undef' 18:10
fglock re Test.pm - it looks like an op-precedence error on '~~' 18:15
ruoso still fighting his broken environment 18:17
fglock '$a,$b~~$c ' is being parsed '($a,$b)~~$c' 18:24
svnbot6 r11503 | ajs++ | Took AnyChar/Uni into account in various places, mostly to overhaul chr/ord. 18:25
18:27 Revision17 joined
svnbot6 r11504 | ajs++ | Small typo fix in chr/ord 18:31
18:37 weinig is now known as weinig|bbl 18:39 fglock left
ajs I'm concerned: There's a summary of a discussion (I don't know when or where it happeend) in the === thread between Larry, Audrey and nothingmuch, but it doesn't actually resolve the core problem, which is that @a~~@b is going to act in unpredictable, and almost certainly unexpected ways. Is it really just supposed to be the less obvious version of rand()? 18:44
nothingmuch no 18:45
that's not the core problem ;-)
it's why it's ~~
it's the underlying mechanism for given/when
and various other stuff 18:46
it's actually fairly easy to predict
and a joy to work with with simple patterns on the right side
which is exactly what it was designed for
ajs: have you tried using ~~? 18:47
ajs nothingmuch: There is absolutely no way to predict the behavior of @a~~@b unless you happen to know the contents of @a and @b. Trust me: this will be the single most commonly repreated FAQ in Perl 6: "I used @a~~@b, and my program locked up"
nothingmuch you need to know the @b 18:48
just the @b
ajs nothingmuch: YES!
nothingmuch and you damn well should know the @b
because it's not a value
it's a pattern
but that's OK
perl has always given you enough rope to hang yourself and your entire team with
Perl 6 just gives you more ;-) 18:49
audreyt it's also the same as in perl5.9.
kolibrie audreyt: any idea where I should start debugging feather and my local system to get yapc_schedule.pl to work? 18:51
audreyt kolibrie: realclean on the newest parrent 18:52
parrot
rebuild it and make sure no previous parrot install is in sight
and use the "monday" file on the url above
ajs nothingmuch: Just tell me that you don't expect everyone who's ever written CGI to write: given CGI.params { when @expected_params {...}} and I'll leave it alone... if you do expect that, then I'd suggest fixing ~~ so that run-time dispatch does something far less dynamic. 18:53
nothingmuch that's they're problem
ajs audreyt: Perl 5 doesn't push ~~ as the primary tool for most jobs
nothingmuch i want ~~ for the smart people
neither does Perl 6
kolibrie audreyt: okay
nothingmuch this is digressing into the "should we make it safe for the newbies" discussion
it's been done before
ajs nothingmuch: but you have ~~ and all its smarness! When do you possibly want to use all of that smartness recursively on some random list? I honestly cannot think of any case 18:54
nothingmuch and the decision by @Larry is pretty clear - "yes, it should be safe for the newbies, as long as it doesn't take anything away from the perlishness or the flexibility"
kolibrie audreyt: I didn't realclean before, so maybe that is the problem
nothingmuch i don't
i iwill not pass any random list on the right side
i will either pass it inline
as ~~ [ .... ]; at the very worst
or i will very carefully construct an expression item
and then say ~~ $x;
ajs again, an example. Just one
nothingmuch which will be my complex expression 18:55
i've used it before
you can look in the tests
and some of ext, prolly
others have used it more extensively
it's really saner than you think
ajs I'll look for a run-time dispatch in the test... sec
18:55 andara joined
nothingmuch why do you call this a runtime dispatch? 18:55
it's just a subcall
ajs nothingmuch: Oh... I see. We're not talking about the same thing here. 18:56
nothingmuch $x ~~ -> $param { .... } is just like ( -> $param { ... } ).($x)
the "nice" thing is that the right side is polymorphic
if it's a rule, or a sub or a value or a junction or whatever, it all response to the same "does it match" api
ajs nothingmuch: please stop. Ask a question, let me answer
nothingmuch you may multitask =) 18:57
ajs Any $x ~~ Any $y is run-time dispatched per S03 (go read it). It has no defined behavior, and dispatches based on the contents of the variables. Given that, your statements about "I would know the content" make no sense. If you know what it is, then it's not an Any. If you don't know what it is, then ... well, then you don't. I see no value in this run-time dispatch, but I DO see a great deal of end-user PAIN in finding that Perl did something that it t 19:00
hought was smart with (potentially) dangerous data
@a~~@b is just a pathological case of this 19:01
lambdabot Unknown command, try @list
ajs thank you lamdabot ;)
nothingmuch ajs: i read s03, i wrote the test 19:02
ajs I could see this: a typed array (or list that can be coaxed into one at run-time) having such smart behavior
nothingmuch the left side is safe
the right side is dangerous
that's what it boils down
ajs Yes
nothingmuch that's not necessarily bad 19:03
ajs But not dangerous at compile-time... all decisions made at compile-time are safe (confusing, maybe, but safe)
nothingmuch why?
clkao nothingmuch: yes, music.
nothingmuch there is no difference between compile time and runtime, conceptually, for multi dispatch
except that you need to annotate/infer types
19:04 ruoso joined
clkao did audreyt hack up somehting to export hiveminder task list? 19:04
ajs Why is compile-time safe? Because there is a well defined behavior for ~~ at compile-time. At run-time the behavior of ~~ cannot be known until it happens because $b could be any value. Here's the #1 example of how that will happen: sub foo($a,$b) { return $a ~~ $b }
nothingmuch i know i know 19:05
$b could be any value
that's the whole point
clkao: i dunno, maybe
19:05 FurnaceBoy joined
clkao nothingmuch: are you home? 19:05
nothingmuch clkao: nope, at stevan's
ajs: i think you are overly concerned about this in theory 19:06
in practice it Just Works
and it's ok that $b can be anything
because 99% of the time it will be a constant literal
but the flexibility is there that you can do it with any value whatsoever when you need to do that
audreyt ajs: how does a [...] find its way into $b? 19:07
unless you are allowing arbitrary evalution of user code, the programmer has control over $b's values at runtime
I agree it's counterintuitive
but probably not dangerous
ajs audreyt: in the function I gave as an example above, the author of foo() has no idea what $b is, they are just "matching aginst it". You have to realize that this is exactly what PHP went through and had to back out over the course of 4 versions because of massive problems with data being "too smart" to be secure. 19:09
nothingmuch so writing aa foo function like that is bad style
audreyt ajs: ok. so your counterproposal would be... ?
nothingmuch but using ~~ in it's intended use cases is still valid
audreyt distribution with >>===<< instead of >>~~<< ?
nothingmuch and requires that degree of dynamisim
audreyt ajs: I still want "[1,2,3] ~~ [1,2,3]" to work 19:10
19:10 lumi joined
ajs audreyt: As stated in p6l: runtime dispatch of Any~~Any or @~~@ goes to a slightly less powerful op that performs the appropriate hyperoperation or whatever smartly, but not DYNAMICALLY... that's the difference. Just don't execute any code or the like. 19:11
That was my proposal.
I called it =~=, so @~~@ became @>>=~=<<@ and Any~~Any became Any=~=Any 19:12
nothingmuch then it's not match
audreyt ajs: ok. I think I grok it, and I think it's a sane proposal
ruoso having a hard time to understand ajs proposal...
ajs nothingmuch: Yes, it is. It's just not recursive, run-time match. At run-time only the top level is "smart" the rest is "bright" ;)
audreyt problem is, I think the current behaviour is sane as well :)
nothingmuch ajs: you do know that rules have embedded code too 19:13
and that ~~ is how you invoke rules, right?
it's uuseful for cases when you want to provide a function like 'filter that stuff by $x'
and then you let your calling code provide $x
it's not suitable for user input
ruoso specially when $b is *anything* which can happen to be a rule
nothingmuch (although it is relatively safe if you follow the code paths, even for that)
audreyt well, p5 doesn't have this problem 19:14
as you have to say use re eval
nothingmuch (because typically you don't deserialize code objects from a CGI param)
audreyt for embedded closures to run
ajs If I know that $foo is a rule, and I willfully invoke it, knowing that it has user data, then I bought my own farm. If I invoke $foo and it HAPPENS to run code... bad.
19:14 xinming joined
ajs invoke shoudl be match above 19:14
19:15 FurnaceBoy_ joined
ruoso ajs, but that's up to the programmer, istn't it? 19:15
ajs audreyt: Larry has already talked about the need to protect rules from user data, I think. That one's not so hard.
ruoso: It should be up to the programmer, but it's not if the programmer doesn't know the type of the data, and the dispatch is based on the type. 19:16
audreyt ajs: so it boils down to, if $b has a constraint over it
my Regex $b
then you are fine
my Array of Regex $b
too
ajs Yed
yes
ruoso looks to me more like how taint works on perl 5 19:17
nothingmuch ajs: anyway, please start a new thread on p6l
with:
a. why you think ~~ is wrong
b. what you think can fix it
in a clearer way
audreyt ajs: I think I secretly agrees with you that
my $x
shouldn't be
my Any $x
nothingmuch because you explained yourself better here than on the mailing list
and the === thread was different
audreyt but I don't think we get to get that semantics in p6 :)
ruoso not in a mandatory way... 19:18
but the programmer *can* do it
audreyt indeed
ruoso I think this problem is taintness-related
ajs ruoso: Only for security purposes 19:19
nothingmuch taintness was not yet adressed on p6 space
i raised it several times
ruoso ~~ should be restricted in a tainted execution
nothingmuch but was pretty much warnocked
ajs audreyt, nothingmuch: I will try to start a new thread that is more clear. You've both helped me to see where I was being vauge.
19:19 TimToady joined
nothingmuch ajs: also, discuss with TimToady when he is available 19:19
he should be able to explain the rationale most clearly 19:20
since he is good at it
ajs Ok
nothingmuch and he is responsible for that mess ;-)
kolibrie audreyt: made realclean and rebuilt parrot on feather and locally. I only see filenames with 'parrot' under /home or /usr/share/doc or /var/cache/apt. verified yapc_schedule.pl does not have modifications. feather still doesn't find a match on file monday, and local still gets PGE error
kolibrie thinks that he must be overlooking something 19:21
ruoso nothingmuch, is there something written about taintness in p6 space?
nothingmuch ruoso: nope
i had an insane mmd based proposal
leo 21:16 < svnbotl> r13283 | leo++ | trunk:
perlbot What kind of idiot karmas himself? Your kind of idiot!
leo 21:16 < svnbotl> : [TODO] Implement .loadlib pragma in IMCC - 4
21:16 < svnbotl> : * add a note to PBC_COMPAT about such changes
21:16 < svnbotl> : * invalidate .pbc by adding an entry for .loadlib, which I should
nothingmuch whereby the type system would use uniqueness types 19:22
leo 21:16 < svnbotl> : have done already yesterday
21:16 < svnbotl> : Please make realclean ...
21:16 < svnbotl> : (again, sorry, but in hope to prevent such troubles in future)
clkao hmm, i think fglock broke test.pm compilation
nothingmuch to prove that items are not tainted
leo sorry for the longish paste
audreyt leo: aha. thanks.
ruoso nothingmuch, if I get it, it is indeed insane
nothingmuch and items that are tainted will infect others by invoking mmd methods
whenever the values interact (are sent to a single function together)
audreyt leo: so that's the core of my confusion yesterday
leo: thanks a lot for resolving it :) 19:23
leo yep
nothingmuch and then another level of mmd calls whenever a value is clearly derived from a tainted one
leo thanks for hinting me at the very problem
19:23 qu1j0t3 joined
audreyt bbiab 19:23
ruoso nothingmuch, like... ~~ for untainted values would dispatch to something different than ~~ for tainted values... 19:24
is it?
TimToady we are not going to bifurcate the type system to implement taintedness... 19:25
nothingmuch ruoso: that'
s just for the tainting magic
then you would declare policies
that add fatal errors to the tainting magic handlers
the idea was to be able to also partition data
so that you could e.g. tag an item as belonging to some user 19:26
as a runtime role
and then that role would leak to any data that touches that item
and if data from two different users is combined that is an error
because it's supposedly private
TimToady we're modeling it as a role, but it really needs to be managed at a lower level in the vm to be efficient.
ruoso I'm with TimToady...
nothingmuch TimToady: will we get extensible forms of taintedness? 19:27
ruoso sandbox-like solutions seems more clear and efficient...
TimToady you can roll your own. won't be in the standard, I think.
all the standard cares about is me/notme
and can be implemented with a single bit in the object 19:28
nothingmuch hmm
ideally i would like to be able to have high performance "infecting" too
even if it's higher overhead than just a bit
TimToady okay, implement high-performance mixins, but you'll still pay a larger memory penalty 19:29
19:30 justatheory joined
nothingmuch just the thing that triggers "this is now also of role x because it touched something of role x" 19:30
role Foo {
meta 'Meta::Role::Infectous';
}
TimToady on rule closures, it's not the same situation as P5, because P5 had string interpolation model. 19:32
we really only have to worry about it if <$tainted> is used. 19:33
just as with ~~, somebody has to ask for the closure to be compiled. 19:34
and nobody should be compiling a tainted closure 19:35
19:35 FurnaceBoy joined
ruoso so... how this applies to foo($a,$b) { $a ~~ $b }, considering $b is a rule with a closure... 19:35
TimToady you had to compile that rule somewhere.
kolibrie does svn.openfoundry.org/pugs/examples/r...chedule.pl work for anyone other than audreyt with input from perlcabal.org/~audreyt/tmp/monday 19:36
ruoso *sub foo($a,$b...
TimToady, I see...
as the user cannot directly input a rule object
TimToady there are no implicit evals anywhere. <$tainted> is as close as you get, I think. 19:37
ruoso but $tainted must still be a rule object... shouldn'ti it?
TimToady and then only if $tainted is a string.
$tainted will be compiled as a rule object if it's a string. 19:38
ruoso oh.. I see..
TimToady but we can disallow that for tainted values easily without clobbering everything else.
ruoso sure...
TimToady unlike in P5 where / $tainted / could do basically anything.
the whole P5ish rx is a string idea was completely broken. 19:39
19:39 FurnaceBoy_ joined
TimToady P6 regexen are just a minilanguage, compiled at compile time just like ordinary code. 19:39
even the s///ee is now fixed, since the first e comes from closure interpolation: s//{ eval ...}/ 19:41
so it's easy to see the eval there.
but the first eval is not really an eval.
it's just compile-time code.
pmichaud kolibrie: I don't see how the yapc_schedule grammar can work w/o some big changes. I know it "worked" at yapc hackathon, but looking at it now I don't see how 19:42
ruoso TimToady++ 19:44
wolverian yay, ghc 6.5 built :) now I 19:46
just have to remember what I needed it for ..
kolibrie pmichaud: audreyt says it works right now on her laptop
19:46 cognominal joined 19:50 lumi joined
TreyHarris TimToady: I intuited that eqv is the stringish form of === (though it's not listed in S03), but what's leg? 20:05
nothingmuch neither === nor eqv have anything to do with strings or numbers 20:06
they are on natural typoes
TreyHarris ah. well what's leg? 20:07
wolverian less or greater :) 20:09
(less equal greater? I have no idea)
nothingmuch where was 'leg' mentioned? 20:11
merlyn less than, equal, greater than? :)
nothingmuch oh, i see now 20:12
damn mail server
clkao what's the status of mad? 20:30
svnbot6 r11505 | Sage++ | The new module-based definition of the P5AST, to help clean up the code by modularizing translate.hs
20:33 bpphillips left
svnbot6 r11506 | Sage++ | The new module-based yaml AST parser, to help clean up the code by modularizing translate.hs 20:33
r11507 | Sage++ | The new main file for translate, to help clean up the code by modularizing translate.hs. Links with ASTDefinition, ASTParser, and ASTUtil.
r11508 | Sage++ | The new main file for translate, to help clean up the code by modularizing translate.hs. Links with ASTDefinition, ASTParser, and ASTUtil. My personal copy.
r11509 | Sage++ | The new module for (more or less) general purpose utility functions, to help clean up the code by modularizing translate.hs. 20:36
r11510 | Sage++ | This file now depreciated, everything moved to modules. Use ASTTranslate and other module instead.
r11511 | Sage++ | This file now depreciated, everything moved to modules. Use ASTTranslate and other modules instead.
wolverian o.o
svnbot6 r11512 | Sage++ | Updating with info on the new modular setup. 20:42
cjeris ?eval [ [ 1, 2 ], 3 ] >>+<< [ 4, [ 5, 6 ] ] 20:56
20:56 evalbot_11493 is now known as evalbot_11512
evalbot_11512 (6.0, 5.0) 20:56
20:56 andara left
cjeris hm, I don't understand. S03 says this should be [[5, 6], [8, 9]] 20:59
clkao anyone familiar with yapp? 21:07
there seems to be precedence issue
audreyt cjeris: >><< does not yet distribute, it's a bug 21:08
cjeris: check to see if we have a test yet
or write a test?
(do you have a commit bit?) 21:09
cjeris no test in operators/hyper.t as of 6.2.12. I can't get HEAD to build on my windows box
no
audreyt ok. your win32?
er
ok. your email addr?
cjeris yup. i have a paste with the error.
pasteling "cjeris" at 140.247.124.140 pasted "novice question: pugs build fails at pugs-fps-0.7 on Windows (no Cygwin)" (100 lines, 4.2K) at sial.org/pbot/18381
cjeris pm'd 21:10
audreyt cjeris: ok. can you confirm this workaround works:
look at gcc-lib inside your c:\ghc\
and copy it recursively into c:\src\pugs\
so that C:\src\pugs\gcc-lib\ld.exe would exist
commit bit sent. please add yourself to AUTHORS 21:11
cjeris ok, test coming up. thank you!
audreyt thank _you_! :)
cjeris++
cjeris build still fails, revised output coming up: 21:13
pasteling "cjeris" at 140.247.124.140 pasted "build failure after cp -r C:/ghc/ghc-6.4.2/gcc-lib C:/src/pugs/gcc-lib" (37 lines, 1.7K) at sial.org/pbot/18382 21:14
clkao audreyt: did you hack up a hiveminder task export? 21:17
audreyt clkao: I hacked up new Jifty::DBI::Schema 21:18
clkao mmm
audreyt cjeris: ok, will look into it
clkao i need someone to help me with parse::yapp craziness
Yaakov Hello, audreyt. 21:19
audreyt hello. 21:20
21:20 DaGo joined
Yaakov You aren't on any of my other channels, and I don't pay a lot of attention here, so I hadn't said hello in a while. 21:20
clkao audreyt: i forgot, was the plan to check if there's sig available to decide if we want to do data::base-style callconv? 21:21
it's a bit annoying. did we come up with something clever?
pasteling "pmichaud" at 24.1.26.255 pasted "updated yapc_schedule.pl" (20 lines, 344B) at sial.org/pbot/18383
pmichaud kolibrie: that version of yapc_schedule seems to work for me
(see paste) 21:22
audreyt clkao: no, not any more clever. extract typesafety.pm seems sanest 21:23
the sig-detecting part
clkao typesafety made my eyes hurts last night
so in brief, how does it do compile time checking?
audreyt it uses peephole optimizer
to do on the fly optree rewriting
when a sub decl is made 21:24
it performs a "constant" folding over it
clkao hmm, but we can't do that in (current) emitter
audreyt we can use helper
clkao ie - deciding what callconv to do
ingy hola 21:27
21:31 theorbtwo joined 21:32 larsen joined 21:42 oozoo joined, oozoo left
nothingmuch w00t! 21:49
nothingmuch has an exit row seat
obra :) 21:51
when do you fly?
21:53 weinig|bbl is now known as weinig
svnbot6 r11513 | clkao++ | Fix PCR Yapp precedence emit. 22:03
22:24 justathe1ry joined 22:32 justathe1ry joined 22:36 cmarcelo joined 22:41 cjeris left
cmarcelo audreyt: ping? 22:41
22:41 avar joined
svnbot6 r11514 | cmarcelo++ | * Judy.Map et al: new freeze functions (used to test RBR, the bio software which 22:45
r11514 | cmarcelo++ | make heavy use on Maps). New function for update: alter2, uses a function from
r11514 | cmarcelo++ | Maybe old value to Maybe new value. Alter2 calls delete_ and insert_ as needed,
r11514 | cmarcelo++ | the basic update happens in lookup_ (which allows updates).
22:47 buetow joined
svnbot6 r11515 | clkao++ | Ignore arg_bind when there's no arg at all. 22:48
r11516 | clkao++ | Don't emit empty callconv when there's no param. 22:51
r11516 | clkao++ | Support not().
22:52 Daveman joined, Teratogen joined 22:57 lollan joined
audreyt cmarcelo: pong! 22:58
cmarcelo: sorry, we seem to be missing each other a lot
cmarcelo audreyt: hey! it was my fault, i was mostly absent because of university end of semester, but it's all finished now (even Physics) =) 23:04
do you have some minutes to "sync" now or is not a good time? 23:05
wolverian so, uh, what requires ghc 6.5? I completely forgot what I built it for .. 23:06
svnbot6 r11517 | clkao++ | $?FILE => __FILE__ 23:16
r11518 | clkao++ | Simple (extra) interpolation inside double quoted strings.
audreyt cmarcelo: perhaps not now; can you write up something and mail me instead?
cmarcelo fine
vsoni audreyt: hi 23:25
audreyt vsoni: hi.
vsoni audreyt: Your exception patch is out....Chip should apply it soon
vsoni: provided it looks good 23:26
audreyt yay. 23:27
url?
vsoni rt.perl.org/rt3/Ticket/Display.html?id=39715 23:28
lambdabot Title: "#39715: [TODO] IMCC errors should throw Parrot exceptions"
vsoni audreyt: There are two new Parrot API functions Parrot_compile_string and Parrot_compile_file 23:29
audreyt: you can call those instead of imcc_compile 23:30
audreyt eggcellent!
once it's applied I'll test with Pugs.Embed.Parrot
clkao people love eggs these days, weird
audreyt and retire the horrible hack
clkao audreyt: 02/3-output almost passing
audreyt clkao: woot
23:31 justathe1ry is now known as justatheory
vsoni audreyt: That would make Pugs cleaner 23:31
audreyt not to mention far less segfaults. 23:32
the only showstopper is that parrot is not installable
if that's fixed, then we can take out the "please don't embed parrot" warning
vsoni audreyt: Yep....Now i need to start think about PIRC ---> Perrcy 23:33
:)
audreyt: What are good alternatives to YACC/lex in C 23:37
wolverian Juerd, feather's vim has a serious bug (bugs.debian.org/cgi-bin/bugreport.c...ug=373696) can I update it, or could you do it? 23:38
lambdabot Title: "#373696 - vim: Default $VIMRUNTIME set incorrectly - Debian Bug report logs"
ivanfrey audreyt: Should I build parrot and then build pugs with PUGS_EMBED="perl5 parrot" and PARROT_PATH="path of my built parrot tree" ? 23:39
wolverian hm. actually, I get the same error, but the path seems to be correct. weird
oh, there's a local vim 23:40
audreyt vsoni: Lemon, surely?
ivanfrey: well yes, but emb parrot is currently flaky
svnbot6 r11519 | clkao++ | Workaround a case that a segfault case where a bound $a assigned to
r11519 | clkao++ | $tmp, which then gets into data::bind. The incoming $tmp has
r11519 | clkao++ | SVt_PVMG, but no MAGIC attached.
wolverian which doesn't work either
audreyt vsoni: it's reentrant threadsafe 23:41
highly recommended
vsoni audreyt: is it free?
audreyt if you are stuck with C, that is
www.hwaci.com/sw/lemon/
lambdabot Title: "The LEMON Parser Generator"
audreyt vsoni: it is SQLite
public domain
as free as possible.
ivanfrey audreyt: leave emb parrot out for now, but continue building and running smoke tests?
audreyt ivanfrey: sure, that sounds doable 23:42
bbiab... &