pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:16 cognominal left 00:19 a-jing joined, a-jing left 00:22 Jedai joined 00:25 cognominal joined 01:52 jfredett_ joined 01:56 jfredett left 02:02 yahooooo left 02:07 alester joined 02:11 jfredett joined 02:15 jfredett_ left 02:18 [particle]1 joined 02:35 [particle] left 02:42 jfredett_ joined 02:45 jfredett_ left 02:49 jfredett_ joined 02:50 sail0r joined 02:53 jfredett left 02:54 sail0r left 03:00 sail0r_ joined
sail0r_ wtf 03:02
03:02 sail0r_ left, elmex_ joined 03:04 simcop2387 left, simcop2387 joined 03:05 sail0r_ joined, sail0r_ left 03:17 jfredett joined 03:19 elmex left 03:20 elmex_ is now known as elmex 03:21 jfredett_ left, alanhaggai joined
pugs_svn r22175 | lwall++ | [rx.t] previous change left unbalanced parens, oops, TimToady-- TimToady-- 03:25
Auzon TimToady: You're going to talk at the ACM conference at U of I, aren't you? 03:26
TimToady yes 03:29
03:30 alanhaggai_ left
Auzon I don't know what your talk is about yet, but I thought it was cool that you were coming to campus :) 03:30
03:34 jfredett left
TimToady well, they keep asking me what my talk is about, and I haven't told 'em yet. :) 03:37
Auzon I'm one of "them" (ACM, not conference organizers), but I won't bother you. 03:39
TimToady at the moment I'm distracted by trying to figure out if there should be a "where" infix
I've got some tests that look like eval() ~~ Failure where /some message/
currently STD parses it as merely a refinement of the type name 03:40
03:40 justatheory joined
TimToady maybe that's good enough 03:40
the problem is that I need a version of & that short circuits 03:41
I can say something like eval() ~~ Failure & /some message/
but that doesn't guarantee that the Failure is tested first
otoh, eval() ~~ Failure && /some message/ doesn't have the right semantics 03:42
(or even the right precedence)
but eval() ~~ (Failure && /some message/) doesn't work either 03:43
Auzon So infix:<where> would add more conditions to the smartmatch?
TimToady no
it would add more conditions to the pattern
has to bind tigher than ~~
*tighter 03:44
but it has uses that don't involve ~~ directly
pattern arguments to functions that will use smartmatch internally for instance
context(Label where 'FOO') for instance, or whatever the syntax is 03:45
maybe that's a bad example, since contexts aren't labels
but also maybe things like grep Int where 0..10, @list 03:47
and maybe things like grep 0..10 where .odd, @list 03:48
where the left of the where is not a traditional typename
which is why I think a general &&-ish infix "where" is more useful than just refining typenames 03:49
otherwise you'd have to say
grep Int where 0..10 where .odd, @list
which isn't that bad, but maybe is not conducive to duck typing 03:50
Auzon It sounds pretty useful in the generic case. 03:51
TimToady but then I can't come up with a good precedence for it, because it'd want to be tighter than ~~, so I can't make it the same as &&
maybe same as &, though that's a bit counterintuitive with | which would be looser 03:52
03:52 apeiron joined
TimToady other the other hand, pretty easy to explain as an ordered junction, perhaps 03:53
and I'd like to get rid of the special case on typenames that I just kludged in 03:54
I guess I'll try that and see how things parse 03:56
Auzon You just made me think of another area for testing, oddly enough 03:57
03:59 eternaleye joined
pugs_svn r22176 | Auzon++ | [TASKS] added some tasks for bitwise operations. I'll get to this this week unless someone snatches them up first. 04:00
04:00 apeiron_ left
pugs_svn r22177 | lwall++ | [STD] trying "where" as Junctional infix resembling "&", but with order guaranteed 04:21
speckbot r14580 | larry++ | "where" as Junctional infix resembling "&", but with order guaranteed 04:22
TimToady note to pugs/parrot implementors, should be easy to clone & into a where operator, at least syntactically 04:25
04:45 Maghnus left 04:47 justatheory left 04:54 apeiron_ joined 05:02 apeiron left 05:17 Maghnus joined 05:20 sail0r joined 05:21 sail0r left 05:24 alester left 05:25 Psyche^ joined 05:43 Patterner left, Psyche^ is now known as Patterner 05:44 jferrero left 06:12 smtms_ joined 06:25 smtms left 06:27 zamolxes left
pmichaud TimToady: I don't see a problem with 'where' as a Junctional infix in rakudo. :-) 06:27
06:30 sri_work joined 06:41 Ehtyar joined 07:09 sail0r_ joined 07:18 clkao_ joined 07:23 clkao_ left 07:24 clkao_ joined 07:25 clkao_ left, clkao_ joined, sail0r_ left 07:36 charsbar_ joined, charsbar left 07:48 Myoma left, a-jing joined 07:49 a-jing left 07:54 charsbar joined 08:04 tmwnn joined 08:07 charsba__ joined 08:15 charsbar_ left 08:16 Myoma joined 08:21 iblechbot joined 08:28 charsbar left 08:34 charsbar joined 08:43 charsba__ left 08:47 barney joined 08:54 tmwnn left 09:14 zamolxes joined 09:18 ludan left 09:20 PZt joined 09:56 pmurias joined 09:57 pmurias left
pugs_svn r22178 | moritz++ | [t/spec] unfudged a test for rakudo 10:13
10:25 meppl joined 10:27 pmurias joined
pmurias ruoso: hi 10:27
10:41 larsen joined 11:19 meppl left
pmurias audreyt: is more pugs development planned once ghc 6.10.1 is released? 11:35
11:54 smk_ joined, DJ-DONGDOT joined 11:58 apeiron_ left 12:06 alanhaggai left
pugs_svn r22179 | pmurias++ | [pugs-m0ld] basic functions calls with only positionals and integer literals 12:06
12:10 smk_ left 12:19 wknight8111 joined 12:28 jan_ left 12:29 elmex_ joined, elmex left 12:30 elmex_ is now known as elmex, jan_ joined
pmurias ruoso: is ::Code really Code in the lexical pad/global namespace? 12:31
12:53 a-jing joined, a-jing left
rakudo_svn r30856 | moritz++ | [rakudo] implement Str.rindex, bacek++. Closes RT #58308 13:10
r30856 | moritz++ | Patch courtesy by Vasily Chekalkin <bacek at bacek.com>
audreyt pmurias: yes. 13:17
13:18 Myoma left 13:19 Myoma joined
pmurias audreyt: good ;) 13:29
DJ-DONGDOT I think Perl6 should use : than :: , so we can write something like `use Win32::Exe, strict, CGI;` 13:34
pmurias audreyt: how do you think should context be specified in mold? as part of the method call opcode or as another method call eq. $foo.bar(42).List for list context?
DJ-DONGDOT: could you rephrase your suggestion, how does using : instead of :: allow you to use several modules in 1 line? 13:36
DJ-DONGDOT: use strict is a default in Perl 6 by the way 13:37
DJ-DONGDOT pmurias: like in Pascal, Delphi. So we can write `uses windows, etc1, etc2` 13:39
I think Perl6 should steal that cool stuff from Delphi
pmurias: so in Perl6 we can write like `use Win32:exe, PAR:Packer, etc;` 13:41
pmurias and if the modules take arguments
use Win32::Exe <>,strict <>? 13:42
DJ-DONGDOT no problem, `use CGI 'fatalsToBrowser', Win32:Exe;` should works. (but maybe we Perl6 should add new keyword: `uses`) 13:43
pmurias adding a new keyword for a minor syntactic convenience dosn't seem worth it 13:44
DJ-DONGDOT or maybe we should just existing `use` keyword 13:45
pmurias and using : instead of :: would confilict with use CGI:from<perl5>
audreyt pmurias: either as part of the opcode or as an implicit interpreter state
13:45 barney left
audreyt also $foo.bar(42).List does not give "want" in &bar a hint abot listness -- rather it expects an item to come out of it 13:46
pmurias ruoso wants to do it the Contextual::Return way 13:47
DJ-DONGDOT or maybe we should just existing `use` keyword, with additional features taken from Delphi & Pascal like `uses` 13:48
audreyt pmurias: you mean constructing many many closures? 13:50
that is valid
just expensive
if ruoso thinks it can be made nonexpensive, that's excellent
pmurias how does context work with multis?
13:51 DJ-DONGDOT left
audreyt they don't, at least iirc. digging 13:51
S12:1027 13:52
Therefore return-type tiebreaking need not be supported
in 6.0.0 unless some enterprising soul decides to make it work.
so multi tiebreaking happens first using incoming params
and then context is applied to the winner
and if ambiguous (two or mo candidates with equal validity), no context match is done, it's simply anerror 13:53
=cut
ruoso audreyt, the thing is that few objects actually implement contextual return 13:54
and this objects can have low-level implementations
and thus not requiring new closures all the time... 13:55
most objects use the contextual properties of other types
hi pmurias 13:57
audreyt ruoso: that is correct
pmurias ruoso: hi
ruoso pmurias, I don't know if code is being registered in the namespace
but feel free to add it
pmurias it is, but i was wondering if it is registered as Code or as ::Code 13:58
ruoso oh..
that was something I've been wondering
maybe the Class should be registered as Code
and the package as Code::
since you need to have a way to access both the package and the class 13:59
pmurias swimming& 14:00
ruoso . o O ( the use of low-level objects interchangeably with high-level objects is indeed the most important aspect of SMOP ) 14:01
14:02 pmurias left 14:11 rhr_ joined 14:21 jferrero joined 14:25 rhr left 14:28 rhr_ is now known as rhr
ruoso audreyt, about using context as part of the multi dispatch, I've been thinking that the context could be set in the capture... that should be enough to implement it... 14:29
14:30 wknight8111 left, wknight8111 joined 14:36 jferrero left 14:38 jferrero joined 14:45 larsen left
pugs_svn r22180 | ruoso++ | [smop] specific test for array iterator... 14:48
15:03 jan_ left
pugs_svn r22181 | ruoso++ | [smop] starting the code for the array iterator... 15:04
15:13 [particle] joined 15:24 [particle]1 left 15:33 Myoma left 16:10 jan_ joined 16:37 sail0r joined
pugs_svn r22182 | moritz++ | [t/spec] tests for rindex on non-strings (Int, in this case) 16:44
16:50 smtms_ is now known as smtms 16:52 sail0r left 16:54 pmurias joined
pmurias re 16:55
ruoso pmurias, re? 17:03
pmurias i always assumed re is something like rehi, but i might be wrong ;) 17:04
ruoso heh...
pmurias irclog.perlgeek.de/perl6/2008-08-01#i_419120 17:05
lambdabot Title: IRC log for #perl6, 2008-08-01
ruoso geez... my memory sux... I can't really remember that conversation... 17:06
heh
pmurias ruoso,audreyt: what sort of context do multi's enforce?
ruoso pmurias, that's the point where the context is not really determined... 17:07
pmurias like multi foo($a is rw) {...};multi foo($a is ro) {...};foo(bar());
ruoso it's only determined after the signature .ACCEPTS the capture 17:08
pmurias but it can't choose the right variant before determining the right context
ruoso it only happens as late as possible 17:09
pmurias if bar has a want check at top
ruoso that's why forward context propagation is not always possible
pmurias you have a big problem
ruoso and that's why I'm using late context propagation in SMOP
pmurias context *could* be junctions 17:10
ruoso afraid...
pmurias or we could throw an ambiguous use of context exception 17:13
or use a context general enough to cover all variants (assuming contexts form a hierarchy) 17:14
17:14 meppl joined
ruoso really would like to see "want" dropped... 17:14
or "want" could cause the code to be suspended and only continued after the context is effectively defined 17:15
rakudo_svn r30860 | pmichaud++ | [rakudo]: spectest-progress.csv update: 158 files, 3287 passing tests 17:16
pmurias you mean create a deadlock...
ruoso heh...
Auzon the spectest graph on rakudo.de is highly amusing.
moritz_ indeed ;) 17:17
that was the back-and-forth with the regex tests
Auzon heh, even more amusing with the latest update. I only saw the first spike on my first pageload 17:18
ruoso pmurias, but the fact is that sometimes you simply doesn't have a way to predict the context...
like in...
my $a = \foo() 17:19
moritz_ Auzon: well, TimToady rewrote the +700 regex tests inline into a file, and deleted the old one that read them line by line...
Auzon: and due to the change in the file name the tests were run on friday, but not saturday 17:20
pmurias ruoso: yes, captures have to create thunks
moritz_ then I fudged the new tests and included them in spectest_regression, so here we are again ;)
Auzon I see. I heard something about that, but I was randomly adding tests for .trans on Friday
pmurias food& 17:21
moritz_ Auzon: did you already submit your code to google? (I think I've asked that before, not sure...)
Auzon No, I plan on doing that today 17:22
moritz_ good
rakudo_svn r30861 | pmichaud++ | [rakudo]: Add 'fail' function.
17:22 wknight8111 left
Auzon I'm going to have to look back and see how we decided to send in my code. 17:22
moritz_ bbl 17:24
Auzon ok
17:28 jferrero left 17:30 jferrero joined 17:32 larsen joined
moritz_ back, faster than thought 17:32
Auzon: Google wants both runnable code and know what *you* did 17:33
Auzon: so I suggest you send in a copy of t/ before and after your project, and a series of patches that you extract from svn
Auzon OK.
moritz_ maybe also check with [particle], but I think that should be fine 17:34
(and if not the google folks will surely tell you what else they want)
Auzon Yeah, sounds good. 17:35
18:03 eternaleye_ joined
pugs_svn r22183 | ruoso++ | [smop] implementing the array iterator... some weirdness is still happening, the test is still failing... but it is mostly working 18:03
ruoso pmurias, how do I compile with debug information using cmake? 18:11
pugs_svn r22184 | ruoso++ | [smop] implementing destroyall on the array iterator 18:12
18:14 eternaleye left
pmurias i used set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage -O0") to have gcov 18:16
18:17 eyu joined 18:22 xuser left
moritz_ std: "abc" 18:23
p6eval std 22184: OUTPUT[syntax error at tryfile line 13, near "print"ā¤Execution of tryfile aborted due to compilation errors.ā¤]
18:24 p6eval left 18:25 p6eval joined
moritz_ std: "abc" 18:25
p6eval std 22184: OUTPUT[parsedā¤]
moritz_ std: "abc" "cde"
p6eval std 22184: OUTPUT[parse failureā¤]
18:25 eternaleye_ left, eternaleye_ joined 18:28 abra joined 18:29 abra left, xuser joined 18:35 larsen left
eyu std: "abc" 18:43
p6eval std 22184: OUTPUT[parsedā¤]
eyu std: "abc" "cde" 18:44
p6eval std 22184: OUTPUT[parse failureā¤]
18:46 eternaleye_ left 18:47 eternaleye_ joined 19:00 jferrero left 19:02 jferrero joined 19:04 eyu100 joined
eyu100 ?eval say "hello!" 19:04
eval say "hello!" 19:05
moritz_ pugs: say "hello!"
p6eval pugs: OUTPUT[hello!ā¤]
eyu100 pugs: say "hello!"
p6eval pugs: OUTPUT[hello!ā¤]
eyu100 pugs: say 5 + 5
p6eval pugs: OUTPUT[10ā¤]
eyu100 pugs: use v6; 19:06
p6eval pugs: RESULT[undef]
19:06 eternaleye_ left 19:12 eternaleye joined 19:23 alester joined 19:26 eternaleye left 19:57 rlb3 joined
pmurias pugs: say((1,2,3),(4,5,6)) 20:01
p6eval pugs: OUTPUT[123456ā¤]
pmurias pugs: say([1,2,3],(4,5,6))
p6eval pugs: OUTPUT[1 2 3456ā¤]
pmurias pugs: sub f {(1,2,3};say(f(),(4,5,6))
p6eval pugs: OUTPUT[*** ā¤ Unexpected "};"ā¤ expecting "_", fraction, exponent, term postfix, operator or ")"ā¤ at /tmp/E8oi5HJmCl line 1, column 14ā¤]
pmurias pugs: sub f {(1,2,3)};say(f(),(4,5,6)) 20:02
p6eval pugs: OUTPUT[123456ā¤]
pmurias should use his own copy of pugs instead of abusing evalbot
20:08 wknight8111 joined
pugs_svn r22185 | pmurias++ | [smop] 20:18
r22185 | pmurias++ | unbroke m0ld
r22185 | pmurias++ | changed the example s1p code to take an iterpreter and a scope
20:18 justatheory joined 20:19 eternaleye joined
pugs_svn r22186 | pmurias++ | [pugs-m0ld] pugs -Cm0ld compiles 'say 42', it needs runtime support 20:27
20:28 meppl left, c9s left
pmurias ruoso: we now need runtime support to have "say 42" working ;) 20:29
20:35 wknight8111 left 20:36 wknight8111 joined 21:22 pmurias left 21:41 meppl joined 21:42 elmex left
moritz_ std: m bab 21:45
p6eval std 22186: OUTPUT[parsedā¤]
wolverian TimToady, S09 Parallelized parameters and autothreading could show the tensor multiplication written out in concrete form (as motivation?) 21:51
rakudo_svn r30864 | moritz++ | [rakudo] parse m/.../ and similar regex forms. Closes RT #57346 21:56
22:04 wknight8111 left 22:11 iblechbot left
ruoso @tell pmurias, we do have runtime support to have "say 42" working, don't we? 22:25
lambdabot Consider it noted.
22:27 wknight8111 joined
rakudo_svn r30867 | moritz++ | [rakudo] tools/autounfudge.pl: add --exclude options and exclude long running 22:38
r30867 | moritz++ | and looping tests by default
22:48 Choco-ail joined
Auzon rakudo: say 1 if "foo" ~~ m/oo/ 23:00
p6eval rakudo 30867: OUTPUT[1ā¤]
Auzon rakudo: say 1 if "foo" ~~ m[oo]
p6eval rakudo 30867: OUTPUT[1ā¤]
moritz_ rakudo: say 1 if "foo" ~~ m boob 23:01
p6eval rakudo 30869: OUTPUT[1ā¤]
moritz_ that's the weird side of perl ;)
Auzon and that's allowed now? 23:02
moritz_ seems so, yes
STD.pm parses it
and I couldn't find a restriction in S02 on what is allowed as a quote delimiter
std: say 1 if "foo" ~~ m boob 23:03
Auzon well, # isn't allowed
moritz_ right
p6eval std 22186: OUTPUT[parsedā¤]
moritz_ and : isn't either, iirc
but no other restriction, afaict
(I fixed the std: evalbot target with some small hacks and black permission magic 23:04
)
Auzon :)
I saw that
Whenever I tried it, it seemed to work ok for a bit then permissions got reset :-/ 23:05
moritz_ basically it sets lex/* to be 0775, and to a common group of evalenv and evalbot
the trick is to use umask in the tryfile
Auzon If you say so :)
moritz_ so that newly generated files also have the right permission
well, let's see if it still works in two weeks
if yes, I claim success ;) 23:06
Auzon Will it break if tryfile is updated?
moritz_ perhaps
maybe I should take a copy with a different name
my local copy doesn't even print a parse tree; 23:07
it just does 'my $result = eval { # parse here; 1 }'
Auzon Yeah, a copy would be good, to prevent accidental overwrites
moritz_ anyway, it's 1 am here and I need to go to bed :/
I can fix that tomorrow.... 23:08
Auzon See you :)
moritz_ bed&
23:09 meppl left 23:14 eternaleye left 23:15 eternaleye joined 23:40 eternaleye left 23:45 ruoso left 23:46 ruoso joined 23:49 justatheory left 23:57 sri_work_ joined