»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 am0c joined, whiteknight left 00:01 jevin left
sorear TimToady: should $*::("dynvar") be legal? 00:03
TimToady: STD.pm6 won't parse it (because twigils need to be followd by <identifier>)
00:05 donri left, jevin joined
dalek ecs: c92cded | diakopter++ | S12-objects.pod:
more headings in S12 (Multisubs/multimethods and Enumerations)
00:13
00:17 jimmy1980 left
dalek ecza: a73f026 | sorear++ | / (2 files):
Fix parsing $::(), ignore "is dynamic" on variables
00:20
diakopter phenny: ask TimToady any other walls of text you'd like divvied?
phenny diakopter: I'll pass that on when TimToady is around.
dalek kudo/nom: c26878d | tadzik++ | src/core/Parameter.pm:
Fill in some Parameter accessors
00:21
kudo/nom: 124bec3 | tadzik++ | src/core/Parameter.pm:
Fix Parameter.named, add Parameter.slurpy
tadzik phenny: ask jnthn does gist.github.com/1119304 appear correct to you? It's taken straight from master, but seems to be broken (always false), and is blocking me on MAIN
phenny tadzik: I'll pass that on when jnthn is around.
tadzik sleeps 00:22
sorear diakopter++ shaving documentation yaks 00:23
diakopter hands the shears to sorear; it rhymes 00:24
TimToady well, there's always ::('$*dynvar') 00:25
phenny TimToady: 00:20Z <diakopter> ask TimToady any other walls of text you'd like divvied? 00:26
sorear TimToady: ok
TimToady well, as I mentioned, S02 also needs work, but probably a large amount of reorg at the same time
some of the spec links from features are to very general sections 00:27
diakopter I can't find the features page linked from perl6.org 00:28
is it hidden intentionally still
oh there it is
TimToady should maybe be in a box of its own color 00:29
dalek atures: 060d531 | larry++ | features.json:
more specs
00:30
diakopter I enjoyed =head2/3ifying those parts of S12. 00:31
maybe I have a future as an editor
00:33 noganex_ left
TimToady 'course, we're probably breaking a bunch of smart links... 00:33
diakopter TimToady: will the Synopses ever be printed do you think? 00:35
published, I mean
TimToady not without a major rewrite
diakopter allow me to snidely interject that the bottom half of S05 might need redacted 00:36
TimToady yes, well, TheDamian++ tends to be rather completist
diakopter heh, completionist 00:37
I've imagined someone writing the book Designing Implementing Perl 6 - the [hi]story of the implementations and the specifications and how they diverge[d] and converge[d] 00:45
Designing and Implementing Perl 6, I mean
TimToady: how went the Soto 00:47
dalek ecza: be423d4 | sorear++ | / (2 files):
Patch up several missing cases, add S02-names/symbolic-deref.t
00:48
ast: 19e9310 | sorear++ | S02-names/symbolic-deref.t:
[S02-names/symbolic-deref.t]

Silenced warnings, rearranged code using obsolete syntax, removed CORE/GLOBAL conflation.
00:52 Alias left
TimToady it seemed to go over pretty well 00:52
00:53 noganex joined
diakopter I wish video was made available 00:54
for those of us who can't visit Oscon [every year]
sorear TimToady: what was the soto? Another demo? 00:55
00:55 rdesfo left 01:04 noganex left
[Coke] jnthn: your blog post dies in nom with: "load_bytecode" couldn't find file 'LoggedDispatch.pbc' 01:06
01:06 noganex joined 01:15 tokuhir__ left 01:16 tokuhir__ joined
TimToady Act 1, scroll all 361 RFC titles past and just point out the poignant bits 01:17
Act 2, show off the features matrix 01:18
Act 3, show a fight between the two sisters, P5 and P6, and what P6 really thinks of P5
Act 4, how P5 could get a type system
Act 5, how P5 could borrow various other features from P6 01:19
Act 6, scroll the RFC titles in reverse, and take questions
all packaged as 6 lightning talks
01:20 tokuhir__ left 01:32 woosley joined
dalek href="https://perl6.org:">perl6.org: 46799e5 | larry++ | source/ (2 files):
give the features their own box in Compilers
02:03
djanatyn Hey, anybody want to help me install a library? 02:04
I spent a couple hours trying last night. ._.
It's the Web library for Perl 6. I'm trying to get Ratel, so I can write my website in Perl 6 :D 02:05
dalek href="https://perl6.org:">perl6.org: 3eb9869 | larry++ | source/style.css:
swap colors
02:11
diakopter why remove the &nbsp; 02:15
diakopter begins attacking S02
TimToady supposed to use U+00A0 instead 02:16
hmm, it did something strange :)
diakopter looks okay on winchrome 02:17
also IE
TimToady the right column is yellow around the two boxes for some reason in ff
diakopter oh, yes, that
thought you meant to do that 02:18
TimToady er no
diakopter Chrome does indeed handle U+00A0 correctly 02:20
TimToady++
dalek href="https://perl6.org:">perl6.org: e03b7d9 | larry++ | source/style.css:
make features box red
diakopter how often does perl6.org rebuild
TimToady 15m 02:23
you have about 5 minutes to fix it :)
or 20 minutes, or 35... 02:24
TimToady should learn to read css someday
diakopter does a =head1 and =head3 need a =head2 between 02:25
TimToady don't think so 02:26
TimToady thinks it's all done with the divs
diakopter no I mean for S02
TimToady generally one would not skip levels 02:27
diakopter k
02:32 daniel-s joined
diakopter hm, I guess those smartlinks did break 02:33
sadface
too bad the smartlinker isn't smarter enough to DTRT
02:37 daniel-s left, daniel-s_ joined
diakopter (where sections can live in multiple logical headings 02:38
)
dalek href="https://perl6.org:">perl6.org: cc806d3 | larry++ | source/ (2 files):
try a three column approach
02:39
02:42 daniel-s_ left 02:43 daniel-s_ joined
TimToady oopser :) 02:45
02:46 Helios joined 02:47 daniel-s__ joined, daniel-s_ left
dalek ecza: 48d6cd3 | sorear++ | lib/ (3 files):
Implement object reification of pseudopackages and pseudostashes
02:48
02:51 daniel-s__ left 02:52 _daniel-s__ joined
dalek href="https://perl6.org:">perl6.org: 7bc4720 | larry++ | source/compilers/index.html:
try a more barebones approach
02:53
02:56 _daniel-s__ left, _daniel-s__ joined 03:00 _daniel-s__ left, _daniel-s__ joined
TimToady \o/ the barebones approach worked, at least in firefox 03:01
03:05 daniel-s joined, _daniel-s__ left
sili hulk smash 03:06
djanatyn hey, when using regex, how do I use a different seperator than the forward slash, again? 03:08
TimToady m or rx, depending 03:09
and don't use parens for delims
03:09 daniel-s left, daniel-s_ joined
sili $foo ~~ m{hehe} 03:10
djanatyn Ah. Cool! :) 03:11
:\ 03:13
sili :D
03:14 daniel-s__ joined, daniel-s_ left
djanatyn gist.github.com/1119532 <-- hmm. is this a bug with rakudo, or a bug with me? 03:15
"Method 'title' not found for invocant of class 'Cursor'" 03:16
What's the cursor class, and why would it search there? Shouldn't it be looking for the Entry class, under which this method is defined? 03:17
Ah. Looks like Cursor is a parser engine. 03:18
sorear djanatyn: bug in you
03:18 daniel-s__ left, _daniel-s__ joined
sorear djanatyn: < and > need to be quoted 03:18
djanatyn sorear: Good, much easier to fix :D
...yeah, I kinda thought that really wasn't a good idea to use for a template
sorear djanatyn: in fact ALL characters other than a..z 0..9 _ need to be quoted in regex
s/ '<title>' /...// 03:19
djanatyn sorear: thanks for the advice - I don't use regex that much ;)
sorear <title> is interpreted as a call to the .title method in the current grammar
sili rules are different 03:20
djanatyn I see a couple bugs in here that I hadn't noticed before 03:22
forgot to use interpolating quotes for at least one variable
03:22 _daniel-s__ left, _daniel-s__ joined 03:23 Su-Shee_ joined
djanatyn woot! It runs! :) 03:26
03:26 Su-Shee left, rdesfo joined
djanatyn ...except it outputs the file with quotes around '<h1>' and '<h2>'. 03:27
03:27 daniel-s joined 03:28 _daniel-s__ left
sorear djanatyn: you're only supposed to quote the regex, not the replacement string 03:31
03:31 daniel-s_ joined 03:32 daniel-s left
sorear TimToady: ping 03:35
03:36 daniel-s__ joined
sorear TimToady: the spectests test sub foo { $*x } ; sub bar { my $x is dynamic; foo } 03:36
03:36 daniel-s_ left
sorear TimToady: is this legit? All current non-pugs implementations treat the star as part of the name 03:36
03:40 jedai left, _daniel-s__ joined 03:41 daniel-s__ left, pothos left, pothos_ joined, jedai joined, pothos_ is now known as pothos 03:43 sili left, sili joined 03:45 daniel-s joined, _daniel-s__ left 03:46 afiskon joined 03:49 daniel-s_ joined 03:50 daniel-s left
dalek ast: 10846df | sorear++ | S02-names/ (2 files):
S02-names/{caller,our}.t: update and fudge for niecza
03:52
ecza: f2fccf7 | sorear++ | / (2 files):
Fix CALLER/inlining interaction and two new test files
03:53 daniel-s__ joined, daniel-s_ left 03:58 _daniel-s__ joined, daniel-s__ left 04:02 _daniel-s__ left, daniel-s joined 04:07 daniel-s_ joined, daniel-s left 04:08 birdwindupbird joined
TimToady the * is part of the name; is dynamic would make the $x dynamic but you can't get at it with $*x 04:09
04:10 envi joined, satyavvd joined 04:11 daniel-s__ joined, daniel-s_ left 04:14 jaldhar left, colorspace left, jaldhar joined 04:15 daniel-s__ left 04:16 daniel-s__ joined 04:20 daniel-s__ left, _daniel-s__ joined, satyavvd left 04:24 _daniel-s__ left, _daniel-s__ joined
sorear TimToady: ok, that's what I thought 04:27
04:29 _daniel-s__ left, _daniel-s__ joined, satyavvd joined, shinobicl joined, shinobicl left
dalek ast: a2e0a5a | sorear++ | S02-names/caller.t:
[S02-names/caller.t] in $*foo, the twigil is an integral part of the name
04:31
sorear What test file should I put pseudo package tests?
roast doesn't currently have ANY tests for the correct functioning of MY::
04:33 daniel-s joined, _daniel-s__ left, birdwindupbird left 04:37 daniel-s left 04:38 daniel-s joined 04:42 daniel-s left, daniel-s joined 04:46 daniel-s left, daniel-s_ joined 04:48 molaf joined 04:51 daniel-s__ joined, daniel-s_ left 04:55 daniel-s__ left, _daniel-s__ joined 04:57 molaf left 05:00 _daniel-s__ left, daniel-s joined 05:09 shinobicl joined
shinobicl hi.... i have this problem.. i have an operator with this signature: our multi infix:<eqv> (WorkdayCalendar $wc1, WorkdayCalendar $wc2) { ... }. Then i call this operator with the same variable for $wc1 and $wc2. (testing the identity) 05:13
the thing is, $wc2 always appears inside the operator's body as a "new" variable... with the default attributes. I've also tried putting "is copy" in the 2 parameters signatures, with no luck 05:14
even if $wc1 and $wc2 have the same data, $wc2 seems to be "lost". 05:15
sorear what do you mean 'new'? 05:33
shinobicl wc2 and wc1 are objects. They have default values. I changed the values from the default to something else on $wc1 and $wc2 to see them inside the operator. For $wc1, the changes are there, but $wc2 contains the default values. 05:42
tthat happens even if i pass the same variable as $wc1 and as $wc2. 05:44
it is as if $wc2 was created inside the operator, and not passed as a parameter for the infix:>eqv 05:46
PerlJam shinobicl: show the code on a gist or something
shinobicl ok give me some minutes
the test program: github.com/shinobi/TaskScheduler/b...Calendar.t 05:56
jlaire perl6: say NaN == NaN; say NaN ~~ NaN
p6eval niecza v8-18-gf2fccf7: OUTPUT«Bool::False␤Bool::False␤»
..rakudo 922500: OUTPUT«Bool::False␤Bool::True␤»
..pugs: OUTPUT«␤1␤»
shinobicl the module: github.com/shinobi/TaskScheduler/b...alendar.pm
06:05 Mowah joined 06:19 wtw joined 06:20 koban joined, koban left 06:22 Su-Shee_ is now known as Su-Shee 06:37 envi left
moritz phenny: tell diakopter about github.com/moritz/perl6-Sudoku 06:39
phenny moritz: I'll pass that on when diakopter is around.
sorear o/ moritz 06:40
moritz \o sorear
sorear I am now working on comprehensive tests for pseudo packages 06:41
moritz that's great
06:44 envi joined 06:49 Trashlord joined
moritz sorear: btw several spectests abort on niecza because it doesn't implement .gist on type objects 07:08
07:10 daniel-s left, daniel-s joined, mj41 joined
sorear hah, niecza parses ::<$x> as a parametric role instantiation 07:14
07:14 daniel-s_ joined 07:15 daniel-s left
moritz doesn't parse it at all :-) 07:15
dalek ast: 4c9c1b7 | sorear++ | S02-names/pseudo.t:
First draft of first section of pseudopackage tests
07:18
sorear I hope I'm doing this more or less right
it only covers MY so far
07:19 daniel-s__ joined, daniel-s_ left 07:23 _daniel-s__ joined, daniel-s__ left 07:24 mattp_ left 07:26 DonGene joined 07:28 daniel-s joined, _daniel-s__ left 07:32 daniel-s left, daniel-s_ joined 07:34 im2ee joined 07:37 daniel-s__ joined, daniel-s_ left 07:41 wamba joined, daniel-s__ left, _daniel-s__ joined 07:43 im2ee left
jnthn morning, #perl6 07:44
phenny jnthn: 00:21Z <tadzik> ask jnthn does gist.github.com/1119304 appear correct to you? It's taken straight from master, but seems to be broken (always false), and is blocking me on MAIN
sorear o/ jnthn 07:45
jnthn [Coke]: Note that nom still needs you to pre-compile modules by hand.
07:45 lumi_ joined, _daniel-s__ left, daniel-s joined 07:50 daniel-s_ joined, daniel-s left
jnthn tadzik: That's both NYI and non-trivial. 07:52
07:52 im2ee joined, im2ee left 07:54 daniel-s_ left, daniel-s_ joined 07:57 rdesfo left 07:58 cosimo left 07:59 daniel-s_ left, daniel-s_ joined
tadzik ouch 08:00
jnthn (long story short, there's no BIND method implemented in nom yet 08:02
)
(so that try always fails)
tadzik that explains why I couldn't find it in the source code 08:03
08:03 daniel-s_ left, daniel-s_ joined
tadzik .u 🐪 08:05
phenny U+1F42A (No name found) 08:06
08:08 daniel-s__ joined, daniel-s_ left 08:11 _daniel-s__ joined, daniel-s__ left 08:15 daniel-s joined 08:16 _daniel-s__ left 08:18 shinobicl left
dalek ecza: c1c841b | sorear++ | / (2 files):
Fix parsing of ::<$a>, implement Foo:: = Foo.WHO syntax
08:19
08:20 daniel-s left
moritz I thought we were about to deprecate trailing :: ? 08:23
08:24 daniel-s joined
moritz somehow perl6.org/compilers/ is very broken atm 08:27
08:29 daniel-s left, daniel-s_ joined
sorear moritz: I didn't get that impression 08:30
08:31 im2ee_ joined
sorear I asked about $Foo:: (the sigil case only) and got contradictory answers, which seems to be TimToadyese for "for now, forbid" 08:31
08:33 daniel-s_ left
moritz dl.dropbox.com/u/25194185/perl6-org...pilers.png is my screenshot of perl6.org/compilers/ 08:33
08:33 im2ee_ left, daniel-s_ joined
moritz firefox 3.6 08:34
sorear "it renders fine in links"
not terribly useful
moritz I guess it shouldn't use the .box class, which has a height of 9em 08:35
tadzik moritz: refresh? It helped for me
moritz indeed it does 08:36
why?
nm
anyway, I'd prefer a two-column layout, with two boxes on the right
jlaire looks like changed html + old css from cache = big mess 08:37
moritz first feature matrix, then supplementals
but I can't preview it on the machine I'm on right now
08:37 daniel-s__ joined, daniel-s_ left
jlaire and it's two columns with a huge right margin in my smallish browser window 08:38
moritz feels flattered that TimToady++ showed off the feature matrix in his SOTO speech 08:39
08:42 daniel-s__ left, daniel-s__ joined
sorear the feature matrix is very, very awesome 08:43
I might call it more important than nom. it will certainly have more of a lasting utility, after the next round of rewrites 08:44
08:46 daniel-s__ left, _daniel-s__ joined 08:51 daniel-s joined, _daniel-s__ left
jnthn
.oO( There'll be a round of re-writes after nom?! :-) )
08:54
08:55 daniel-s left, daniel-s_ joined
moritz sure! 08:55
history teaches us that there's always a next rewrite 08:56
it's just a question of the scope of the rewrite
jnthn Oh, there'll be serious refactors in some areas.
moritz for example module loading will get one 08:57
jlaire but that doesn't mean the previous rewrites were not useful
jnthn But I don't anticipate another nom-level or ng-level rewrite this side of some kind of 6.0.0.
(e.g., a re-do near enough everything rewrite...)
sorear jnthn: I have my post-6.0.0 hat on when I say there will be a rewrite
moritz jkagreed
jnthn sorear: ah, ok :)
moritz sorry
jlaire: agreed 08:58
jnthn jlaire: We couldn't have done nom without alpha and ng to learn from. 08:59
So yes, certainly useful :)
08:59 daniel-s__ joined
arnsholt The previous rewrite is usually a necessary condition for the next one IME =) 09:00
09:00 daniel-s_ left 09:01 daxim joined 09:04 daniel-s__ left, daniel-s__ joined, Kivutarrr joined 09:08 _daniel-s__ joined 09:09 daniel-s__ left
moritz hurm, it seems that nom doesn't honor the #icu markers 09:11
I have a machine without icu, and it tries to run all the tests 09:12
dalek ecza: 6988dc9 | sorear++ | src/niecza:
Improve detection of acceptable names, parse atomic pseudo-package names properly
sorear -> sleep
09:13 daniel-s joined
sorear you can now, for instance, MY.WHO.<$x> 09:13
09:13 _daniel-s__ left
moritz woah 09:13
jnthn moritz: Oh, it's not just me that it's doing that for then.
moritz it runs 09:16
/home/moritz/perl5/perlbrew/perls/perl-5.12.3/bin/perl t/harness --fudge --keep-exit-code --icu= --tests-from-file=t/spectest.data
09:16 awoodland joined
moritz the --icu= looks correct-ish 09:16
09:17 daniel-s_ joined 09:18 daniel-s left 09:21 mattp_ joined 09:22 daniel-s__ joined, daniel-s_ left
moritz ew, no 09:23
Getopt::Long seems to treat that as missing
how did that work in master? 09:26
09:26 _daniel-s__ joined 09:27 daniel-s__ left
jnthn moritz: Maybe it didn't... :) 09:27
09:30 _daniel-s__ left, _daniel-s__ joined
tadzik heh, they mentioned me in Perl Weekly :) 09:33
moritz what is "Perl Weekly"? 09:34
tadzik a new weekly newsletter
perlweekly.com/
09:35 _daniel-s__ left, _daniel-s__ joined
moritz nice 09:37
oh, btw
autounfudge found a pod-related test that now passes in nom 09:38
sadly it's on a machine which I can't access right now
tadzik which one?
moritz one in quoting.t or so
09:39 daniel-s joined 09:40 _daniel-s__ left
tadzik oh, that's probably the one that passed in master too 09:40
I mean, on a master-based podparser
moritz ok, on master HAS_ICU = 0 in the Makefile 09:41
jnthn aha 09:42
moritz digs deeper
moritz suspects an undef-vs-0 issue in Makefile generation
yep 09:43
$text =~ s/@([:\w]+)@/$config{$1} || $config{"parrot::$1"} || ''/ge;
tadzik I like how Perl 5 doesn't need local::lib these days
everything Just Works
09:43 daniel-s left 09:44 daniel-s joined
jnthn We really need to get module search/loading/caching sorted out in nom soon. 09:44
Rakudo itself needs to start maintaining the pre-compilation cache, rather than relying on the module installer to pre-compile, also. 09:45
09:45 awoodland_ joined, awoodland left 09:46 mls_ joined
mls_ Hi perl6! 09:46
tadzik hello mls_ 09:47
moritz jnthn: agreed
\o mls_
mls_ are there any non-control exception that are resumable?
exceptions
09:48 daniel-s left, daniel-s joined
tadzik what does autounfudge produce? 09:48
it Processed File, and?
moritz tadzik: a patch
in autounfudge.patch
tadzik oh, there it is
...empty :)
mls_ (Btw, the README file says perl Configure --gen-parrot, but it's Configure.pl) 09:51
tadzik not ok 9 - '\xa0' does not split in a whitespace quoted list
# got: 'a b c d'
# expected: 'a b c d'
eh
moritz one of them might be a non-breaking space
better to .join('|') 09:52
tadzik spectests shouldn't generally say(), should then
moritz no
tadzik s/then/they\?/
tadzik fixes
09:52 daniel-s_ joined
moritz there's diag() for debug output 09:53
09:53 daniel-s left
moritz mls_: thanks, patched locally 09:53
will push when the previous commit is spectested :-)
dalek ast: 8338765 | tadzik++ | S02-literals/listquote-whitespace.t:
Remove leftaround say()s
09:54
09:56 birdwindupbird joined
dalek kudo/nom: 2dd618f | moritz++ | tools/lib/NQP/Configure.pm:
[build] fix lookup of defined-but-false configure options while generating the Makefile
09:57
kudo/nom: 293215f | moritz++ | README:
fix thinko on README, mls++
09:57 daniel-s__ joined, daniel-s_ left 10:01 frettled left, _daniel-s__ joined 10:02 daniel-s__ left 10:03 Tedd1 left, phenny left, yahooooo left, Tedd1 joined 10:04 daxim left, simcop2387 left, daxim joined 10:05 _daniel-s__ left 10:06 daniel-s joined, simcop2387 joined 10:07 yahooooo joined 10:10 daniel-s left, daniel-s joined 10:14 daniel-s_ joined 10:15 am0c left, daniel-s left 10:19 daniel-s__ joined, daniel-s_ left 10:23 _daniel-s__ joined 10:24 daniel-s__ left 10:28 daniel-s joined, _daniel-s__ left 10:32 daniel-s left, daniel-s_ joined
mls_ jnthn: with your patch from yesterday, $! and $_ are not set in the CATCH block 10:35
There seems to be a "capture_lex" on the handler sub missing
10:36 afiskon left, daniel-s__ joined 10:37 daniel-s_ left, MayDaniel joined 10:41 daniel-s__ left, _daniel-s__ joined 10:45 _daniel-s__ left 10:49 wamba left 10:52 daniel-s joined
jnthn mls_: Hm. Oddness. 10:53
mls_: It passed the various tests.
10:56 daniel-s_ joined 10:57 daniel-s left 11:01 daniel-s_ left, daniel-s_ joined
jnthn nom: die 42; CATCH { .say } 11:01
p6eval nom: OUTPUT«Any()␤»
jnthn nom: die 42; CATCH { say $! }
p6eval nom: OUTPUT«Any()␤»
jnthn :/
oh, I wonder if it's...grrrr.
Yeah, push_block_handler may well want to be tossed and re-done. 11:02
11:05 daniel-s__ joined 11:06 daniel-s_ left 11:09 daniel-s__ left 11:10 daniel-s__ joined 11:14 daniel-s__ left, pernatiy left, daniel-s__ joined 11:18 daniel-s__ left, _daniel-s__ joined 11:22 donri joined 11:23 _daniel-s__ left, _daniel-s__ joined, odoacre left, odoacre joined 11:27 daniel-s joined 11:28 _daniel-s__ left, frettled joined
moritz jnthn: I think we never really tested for $_ in CATCH, just for $! 11:29
11:31 MayDaniel left, daniel-s left 11:32 daniel-s_ joined 11:35 wamba joined, satyavvd left, phenny joined 11:36 daniel-s_ left, daniel-s_ joined 11:38 gokulnath joined 11:40 daniel-s__ joined, daniel-s_ left
jnthn moritz: OK, clearly not in tests we're running though...or I'd have regressed something. 11:42
takadonet morning all 11:43
11:45 daniel-s__ left, _daniel-s__ joined
mls_ back from lunch... 11:46
gokulnath is there a step by step installation guide for installing cpan modules
moritz gokulnath: are you talking about perl 5 or perl 6? 11:47
gokulnath 6
moritz I think github.com/tadzik/panda/#readme is the best we have
mls_ $! in the CATCH block also doesn't work 11:48
moritz nom: try { die "foo"; CATCH { say $! } }
p6eval nom: OUTPUT«Any()␤»
moritz oh.
mls_ some tests in catch.t fail because of this 11:49
11:49 daniel-s joined 11:50 _daniel-s__ left
jnthn mls_: fudged ones? 11:50
mls_ Yes. But wait, thay would also fail if this is fixed.
Because die() doesn't transport the class. mortiz++ is working on that 11:51
s/class/object 11:52
11:54 daniel-s left, daniel-s_ joined
jnthn mls_: Yeah. The whole exceptions thing needs a good bit of attention. 11:54
mls_ I think we need a new test case that does "my $ret; { die("foo"); CATCH {$ret = $_} }" and checks $ret
jnthn +1
moritz we currently don't have such a test because it's totally underspecced what die() puts in $! 11:55
mls_ What's the current mindset for warn()? Should CATCH catch it?
jnthn No
CONTROL probably should though.
mls_ ok, good. 11:56
jnthn More deeply though, I'm not sure we do things right in a deeper sense.
mls_ SO are there any resumable not-CONTROL exceptions?
s/SO/so/
jnthn We're meant to locate the exception handler, then run it, THEN unwind.
And resume means "don't bother unwinding" 11:57
iirc, resume involves a continuation today
Which suggests we unwind first. 11:58
I *think* .resume is a property that can be set on $! (but check S04)
11:58 daniel-s__ joined
jnthn In which case any exception is potentially resumable. 11:58
11:58 daniel-s_ left
mls_ Some are clearly not resumable, like the ones throws from parrot C Code 11:58
jnthn I got this working on the .Net impl of NQP.
True. 11:59
Well
mls_ Basically they can only be resumed if they are created by a throw opcode
jnthn I guess the issue is mostly that the C code doesn't expect to be returned to.
mls_ I think the C code also does a longjmp, will check... 12:00
jnthn If you're running your handler before unwinding in theory they *could* resume. It's just that every piece of code that throws from C today would be invalidated.
Yeah, I'm more talking about how I think exceptions shoulda been done in Parrot, not how they are.
If I'd designed it, it'd be much bett^W^Wquite different. :)
mls_ ;)
jnthn The way to handle resume in the design I'm suggestion would be that we longjmp after the handler in the C case, and if the user tried to mark a C exception as resumable we'd just say "no can do". 12:02
12:02 pernatiy joined, daniel-s__ left
jnthn *suggesting 12:02
12:02 jedai left, daniel-s__ joined
mls_ I should check the parrot code if the exceptions thrown from C have a continuation attached to them 12:03
jnthn *nod*
12:03 jedai joined 12:07 woosley left, daniel-s__ left, _daniel-s__ joined
moritz does &EXCEPTION get the parrot exception as first argument? 12:07
mls_ Yes
Parrot_ex_throw_from_c always does a longjmp()... 12:09
12:11 _daniel-s__ left, _daniel-s__ joined
jnthn mls_: That kinda makes sense. 12:12
mls_ Hmm, Parrot_ex_throw_from_c_args has a second argument "ret_addr", which seems to be ignored currently 12:14
It's supposed to hold the address from which to resume 12:15
12:16 daniel-s joined, _daniel-s__ left
mls_ Seems like the "resume" attribute is only set in the throw opcode 12:17
jnthn aha 12:18
To a Continuation?
mls_ "resume" holds the continuation
It's also set in the dir opcode
and exit opcode
that's all I could find
jnthn dir?
mls_ what dir? 12:19
12:20 daniel-s left, daniel-s joined
jnthn < mls_> It's also set in the dir opcode 12:20
I was asking what the opcode is 12:21
mls_ Ah sorry, typo. Meant die
jnthn Oh, did you mean die?
ah
:)
Was gonna say, what does directory listing and exceptions have to do with each other :)
mls_ Yeah, that would have been quite surprising ;) 12:22
gokulnath mortiz: is there a step by step installation guide for installing cpan modules in case of perl 5 12:23
moritz must eventually hilight that mortiz guy 12:24
[Coke] jnthn++ # compiling LD to pir worked, thanks.
moritz gokulnath: there are lots and lots. Google knows most of them
gokulnath: it also helps if you add the name of your perl distribution in the google search
12:24 daniel-s_ joined, daniel-s left 12:27 lichtkind joined, awoodland_ left
mls_ (Btw, is there an easy way to run generated pir code? I always do './perl6 -e "use foo.pir"', which is a bit cumbersome 12:28
12:29 daniel-s_ left, daniel-s_ joined
moritz ./install/bin/parrot foo.pir 12:29
mls_ Contextual $*ST not found 12:30
moritz ouch
that needs to be fixed too
[Coke] mls_: having come here from parrot, that is cumbersome, but I love that it works. 12:31
mls_ Yes, I'm glad that I found a way to run it, too 12:32
jnthn: the old code implemented die() with throwing a CONTROL_ERROR exception 12:33
12:33 daniel-s_ left
mls_ thus CATCH doesn't catch CONTROL exceptions but CONTROL_ERROR 12:33
12:33 daniel-s_ joined
mls_ What exception type should warn() use? 12:34
the old code used the severity to differentiate between die/warn
but that means CATCH will catch warn() exceptions
(We could check the severity and rethrow, though) 12:35
12:37 cosimo joined, daniel-s_ left 12:38 daniel-s_ joined
jnthn moritz: (pre-comp bug) I worked out how to fix that one in the shower the other day...but didn't get around to it yet. 12:38
moritz nom: Exception.new().throw 12:40
p6eval nom: OUTPUT«Not a throwable object␤current instr.: 'throw' pc 682342 (src/gen/CORE.setting.pir:185946) (src/gen/CORE.setting:4569)␤»
jnthn nom: class Boomerang { }; Boomerang.throw
p6eval nom: OUTPUT«Method 'throw' not found for invocant of class 'Boomerang'␤current instr.: '_block1002' pc 99 ((file unknown):60304829) (/tmp/MpGSG1oRuE:1)␤»
12:41 Holy_Cow joined 12:42 daniel-s_ left, daniel-s__ joined
mls_ nom: class Boomerang { }; THROW(Boomerang, pir::const::CONTROL_ERROR) 12:43
p6eval nom: OUTPUT«Warning␤» 12:44
mls_ Hmm, I'm thinking about adding a pop_eh to the CATCH code 12:46
12:46 daniel-s__ left, _daniel-s__ joined
mls_ That would fix the "catches our own exception" problem in try.t for now 12:47
moritz we've had such a patch in master, and had it reverted 12:48
I don't recall what the issue was, but it might be worth checking the commit logs
12:48 Holy_Cow left
mls_ S04 seems to indicate that we need to install a different exception handler anyway when processing exceptions (the SIMPLECATCH handler) 12:48
will check the logs 12:49
12:51 daniel-s joined, _daniel-s__ left
mls_ I found some change to try{} that got reverted later on. But nothing about pop_eh in CATCH 12:53
moritz hm, maybe I was wrong 12:55
or maybe it was a change in nqp-rx or PCT
12:55 daniel-s_ joined, daniel-s left
jnthn Hm, it rings a bell for sure. 12:56
rakudo: die "foo"; CATCH { say "ok" } 12:57
p6eval rakudo 922500: OUTPUT«ok␤»
jnthn rakudo: die "foo"; CATCH { die "bar" }
p6eval rakudo 922500: OUTPUT«Segmentation fault␤»
jnthn ah, so it's wrong in master too
moritz it is indeed
13:00 daniel-s__ joined, daniel-s_ left
mls_ Hmm, pop_eh goes into an endless loop. strange... 13:01
13:02 gokulnath left
jnthn What does it try to pop? 13:03
jnthn isn't sure about the scope of those ops 13:04
13:04 daniel-s__ left, daniel-s__ joined
mls_ You're right, it works if I put it in the sub where the push_eh is 13:04
moving the PAST::Op.new(:inline(" pop_eh")) ... 13:05
Ah, nice, try.t passes with no errors... spectesting... 13:06
arnsholt Does the code you're modifying use the PAST "catch" thing? 13:07
13:08 daniel-s__ left, daniel-s__ joined
mls_ I'm modifying push_block_handler in Actions.pm 13:09
arnsholt has a look
I've used PAST's exception handling a bit, and it requires a bit of care 13:10
moritz that reads like an understatement :-)
mls_ Do you mean PAST's try node?
arnsholt That's what it's called! My memory has holes =) 13:11
mls_ CATCH blocks don't use that, they use a different mechanism called block handlers
13:12 shinobicl joined
arnsholt 'k 13:12
13:13 _daniel-s__ joined, daniel-s__ left 13:14 tcunha joined
mls_ You can set exception handlers to a PAST Block node 13:14
arnsholt Probably a good idea =) 13:15
But yeah, where you put the pop_eh is a bit fiddly IME. I had a tendency to end up with popping twice, which is wrong =) 13:16
dalek odel: 2795df3 | (Martin Berends)++ | c/t (4 files):
odel/c] test availability of posix or win32 threads
jnthn Apart from the lexical scope of CATCH with the current factoring is expected to be that PAST::Block, not the one the user wrote it in.
arnsholt Of course, my problems are compounded by continuations 13:17
mls_ The strange thing is that parrot started to loop on the pop_eh opcode
I put a "trace 1" opcode right before the pop_eh and it did the pop_eh over and over again. Seems to be a parrot bug.
13:17 _daniel-s__ left, daniel-s joined, awoodland joined
arnsholt Yeah, that definitely sounds like a Parrot issue 13:18
[Coke] is this the "finalize" issue?
mls_ No, it's pop_eh not incrementing the pc
jnthn That's really weird. 13:19
[Coke] mls_: do have a small PIR program that demonstrates the issue?
*you
mls_ Not yet, I'll try to generate one...
13:20 cosimo left
[Coke] trac.parrot.org/parrot/ticket/1151#comment:3 for "the finalize issue", btw. 13:20
does at least sound related. 13:21
mls_ yes, rakudo (at least nom) now uses finalize for try and CATCH 13:22
13:22 daniel-s_ joined, cosimo joined, daniel-s left 13:26 daniel-s__ joined, daniel-s_ left 13:31 _daniel-s__ joined, daniel-s__ left 13:35 _daniel-s__ left 13:36 _daniel-s__ joined, tokuhirom joined 13:37 MayDaniel joined
mls_ coke: I think it's a false alert, seems like Parrot's "No handler to delete." get's recaught, thus the loop 13:39
13:40 _daniel-s__ left, _daniel-s__ joined
moritz is that a runtime error? 13:40
mls_ Yes, it's a parrot exception 13:41
13:42 espadrine joined
mls_ spectest finished, looks good. Patch: gist.github.com/1120201 13:43
13:44 _daniel-s__ left, _daniel-s__ joined
mls_ Hmm, maybe put a space before the :inline, so that it looks like the rest of the code... 13:44
[Coke] should we .gitignore generated test files? 13:48
13:49 _daniel-s__ left
moritz [Coke]: what kind of generated test files? 13:49
13:49 _daniel-s__ joined
[Coke] jnthn: did you already "put back" |$c (from NOMMAP) ? 13:49
moritz if you mean temp files generated from test files... those should be cleaned up by the tests themselves 13:50
if not, the tests should be fixed
[Coke] tempfile_filehandles*, tempfile_io*, unlink-test-fileunlink-*
moritz yes, the test files should delete them 13:51
[Coke] moritz: ok. (I run a lot of tests that don't finish normally, so they're more noticable for me.)
moritz [Coke]: me too :-)
btw t/spec/S32-array/unshift.t aborts for me... also for anybody else? 13:52
jnthn nom: sub foo(|$c) { say $c.list; say $c.hash }; foo(1,2,3,:c<4>,:d<5>)
p6eval nom: OUTPUT«1 2 3␤Segmentation fault␤»
jnthn [Coke]: Not yet, it seems :)
mls_ I get 'unshift_pmc() not implemented in class 'Mu''
[Coke] so close. ;)
moritz same here 13:53
tadzik: I think you last touched shift... see above
jnthn [Coke]: Think I got half way through that and nested signatures, then got distracted hacking on meta-circularity stuff.
[Coke] hurm. t/spec/S12-introspection/methods.t changed its failure mode.
13:53 daniel-s joined, _daniel-s__ left
jnthn [Coke]: If it's now about :tree, just fudge it :) 13:53
(if it's only the :tree tests that fail)
[Coke] too many named arguments 13:54
jnthn I bet that's the :tree tests.
[Coke] checks.
mls_ nom: my @a; unshift @a, 1 13:55
p6eval nom: OUTPUT«unshift_pmc() not implemented in class 'Mu'␤current instr.: '_block17034' pc 661650 (src/gen/CORE.setting.pir:176588) (src/gen/CORE.setting:3161)␤»
dalek kudo/nom: d9323d4 | moritz++ | t/spectest.data:
comb.t needs ICU
13:57
13:57 daniel-s_ joined
[Coke] jnthn: it doesn't really get anywhere, lots of unit strings, then barf. 13:57
*uninit 13:58
13:58 daniel-s left
jnthn ah 13:58
13:58 buubot_backup left 13:59 buubot_backup joined
jnthn It can't be that busted, lots of bits of the metamodel use .^methods... 13:59
nom: say Int.^methods
p6eval nom: OUTPUT«Int Num Rat abs Bridge chr succ pred sqrt base Bool Str abs sign sqrt sin cos tan sinh cosh tanh atan2 floor ceiling unpolar cis Complex truncate base log exp Numeric log log10 exp roots ACCEPTS Bool gist rand truncate bytes chars fmt substr uc lc ucfirst lcfirst chomp chop …
jnthn nom: say Int.^methods(:local)
p6eval nom: OUTPUT«Int Num Rat abs Bridge chr succ pred sqrt base Bool Str␤»
14:00 buubot_backup left 14:01 daniel-s__ joined
dalek ast: d9d8264 | moritz++ | S (2 files):
fudge/simplify tests that made rakudo die in absence of bigint libs
14:01
14:01 daniel-s_ left
tadzik moritz: it works here 14:02
[Coke] nom: __END__ 14:03
p6eval nom: OUTPUT«Could not find sub &__END__␤current instr.: '_block1002' pc 74 ((file unknown):28012180) (/tmp/_6qe5OMVnN:1)␤»
tadzik oh, the sub variant is broken indeed
moritz tadzik: are both your rakudo and t/spec/ repos clean?
tadzik nom: my @a; @a.unshift(5)
p6eval nom: OUTPUT«unshift_pmc() not implemented in class 'Mu'␤current instr.: '_block17034' pc 661650 (src/gen/CORE.setting.pir:176588) (src/gen/CORE.setting:3161)␤»
moritz ie in synch with github
tadzik what 14:04
hmm
moritz seems like unshift need needs to initialize $!storage if necessary
tadzik oh, I know what that is
we were supposed to consult pmichaud about this, yes
we've come to conclusion with jnthn that it's not the best idea to initialize it in unshift, I think it should be done way before that 14:05
moritz you could simply return Nil unless pir::defined($!storage);
14:05 daniel-s__ left, Casan joined
tadzik that wouldn't help. @a.unshift(5) will make @a Nil 14:05
14:05 daniel-s__ joined
tadzik I can temporarily fix it in unshift itself, yes 14:06
moritz ah, I was thinking of shift, not unshift
[Coke] jnthn: bah. bitten by hidden TAP output... it does actually get further tan I though.
*than I thought
dalek kudo/nom: ffe522a | Coke++ | t/spectest.data:
track failure modes
Casan hey, is it possible that we make a link to the compiler features on the rakudo.org page? (the old one used to have a rakudo status page which I enjoyed). 14:07
tadzik any good way to create an RPA in Rakudo?
shinobicl hi all... i'm having a weird problem with parameters for a infix operator i made....
14:09 drbean_ left 14:10 daniel-s__ left, daniel-s__ joined, jimmy1980 joined 14:14 shinobicl left, daniel-s__ left, daniel-s__ joined 14:15 woosley joined
dalek ast: e154be7 | Coke++ | S12-introspection/methods.t:
nom fudging
14:15
[Coke] jnthn: fudged. 14:16
tadzik: pir::new ?
jnthn [Coke]: Thanks
[Coke]: oh, that's not bad :)
[Coke] shinobicl: you have sample code?
dalek kudo/nom: b3869b4 | Coke++ | t/spectest.data:
run another fudged test
14:17
jnthn Especially as the .multi one looks out of date
[Coke] Yah, I'm just fudging, I'm not examining tests for specworthiness.
jnthn [Coke]: That's fine, was just commenting. :) 14:18
[Coke] metoo.; )
14:18 daniel-s__ left 14:19 wtw left, daniel-s__ joined 14:23 daniel-s__ left
[Coke] nom's spectests are generate a huge # of "uninitialized string" warnings. was this happening in master, OOC? 14:28
14:28 ggoebel left
tadzik oh, mebbe 14:28
moritz there were occasionaly warnings, but not too many 14:29
14:30 Kivutarrr left 14:33 ggoebel joined
jnthn .win 17 14:33
oop
s
...keyboard usage fail. 14:34
[Coke] esc-u is shorter. :)
moritz tries to stay below a magic number of 15 irssi windows
though I often fail
jnthn blames having drunk too much coffee today 14:35
[Coke] Unknown error condition 14:39
git-svn++
14:41 molaf joined
[Coke] "total", 8773, 12, 386, 955, 10126, 36184 14:41
"Synopsis", "pass","fail","todo","skip","plan","spec"
jnthn What's the line for master? 14:42
[Coke] Iunno, that one took me a long time to run. :)
lemme check.
14:45 birdwindupbird left, shinobicl joined, djh joined 14:46 djh left
dalek ast: 7788a35 | moritz++ | S32- (2 files):
remove outdated tests, add a missing .gist
14:47
jnthn decommute & 14:55
14:56 shinobicl left 14:59 buubot_backup joined 15:01 kaare_ joined 15:02 rdesfo joined 15:05 JimmyZ_ joined
Woodi hi ppls 15:18
anyone is doing P6 in C++ maybe ?
TimToady mberends++ was working on a 6model in C, iirc 15:19
moritz or is the question more about embedding? 15:20
Woodi i asking about new compiler 15:21
should be little easier then plain C, IMO
moritz the lesson learned from previous compiler projects is to write the runtime is a fast, low-level language, and most of the compiler in Perl 6 15:22
Woodi: yes, only a little easier
which is why nobody has really bothered
TimToady and smop was in C, if anyone decides to pick it up again 15:23
moritz would like to see a comparison of smop and 6model, but is too lazy to make one
TimToady suspects they are largely complementary 15:24
smop was mostly about binding captures to signatures 15:25
15:25 jedai_ joined
Woodi i got idea today: write P6 compiler in C++, start with embading P5 :) few goals will be met on start: P5, exceptions easier, classes... 15:25
PerlJam And then we'd come full circle back to Topaz! :)
moritz iirc smop also did p5 interop pretty early on
which wouldn't be all too ba 15:26
d
15:26 jedai left
moritz Woodi: so, start coding :-) 15:26
TimToady we can add you a column on the features matrix :)
moritz ... as soon as at least 5 + appear 15:27
Woodi i am extraordinary uncarefull programmer
but start seems :)) 15:28
TimToady maybe you should do it in Haskell then :)
Woodi no way :)
TimToady since you're basically talking about a C++ backend, consider starting with one of the current platforms as a front-end to a C++ emitter 15:30
at the moment, niecza seems to have a better parser, and rakudo seems to have a better metamodel 15:32
I don't know which one would be easier for writing a new emitter 15:33
Woodi i must read and think... and i feel i decided start coding README and TODO files :) 15:34
TimToady but embedding a P5 to start is a nice idea 15:35
pugs kinda did that 15:36
15:36 JodaZ_ is now known as JodaZ
Woodi www.linuxjournal.com/article/2901 do p5 embading in second paragraph of article :) 15:37
not quite but...
JimmyZ_ 1998 ... 15:38
that is very old
TimToady I doubt the embedding interface has changed much since then 15:39
moritz there are a few options in newer perls that give more sanity, I have heard
15:39 shinobicl joined
shinobicl [Coke]: the code is here github.com/shinobi/TaskScheduler/b...alendar.pm ... the test program here github.com/shinobi/TaskScheduler/b...Calendar.t 15:40
[Coke]: is like the 2nd parameter of the operator gets "lost" on its way. The values that the 2nd object contains are the defaults for a new object, not the values of the object it should be taking. 15:41
pmichaud good morning, #perl6 15:44
mls_ Hi pm!
espadrine o/
jnthn home
o/ pmichaud
TimToady shinobicl: I wonder if it could have to do with the chaining semantics of eqv's precedence level
15:45 DonGene left
TimToady you might try a different operator name that doesn't do chaining by default 15:45
also, I probably wouldn't do the internal eqv tests with ~~, but with more eqvs on the subparts 15:46
[Coke] arrrrgh. ran the test summary in master, but the results scrolled off my screen buffer. 15:48
TimToady to absolutely rule out precedence issues, you might put parens around the eqv test too
you have them around the !eqv, but not the eqv
jnthn moritz: (smop vs 6model) Both start with a prototype-ish primitive then build things up from there. 6model takes a fairly different approach to representations, and also has quite a big focus on gradual typing, which I'm not sure smop really did.
mls_ pmichaud: any insights on whether warn() should use CONTROL_ERROR as exception type or some other to-be-defined value? 15:49
15:49 im2ee joined
TimToady warn is defined to be a control exception, so you're in the right ballpark anyway 15:49
mls_ CONTROL_ERROR gets caught by CATCH, but warn() exceptions should not be caught by CATCH 15:50
pmichaud mls_: what does master use?
mls_ master uses CONTROL_ERROR, i.e. CATCH catches warn()
TimToady control exceptions should not be caught by CATCH
15:50 woosley left
mls_ well, currently die() also throws CONTROL_ERROR 15:50
TimToady eek
15:51 im2ee left
mls_ (at least in master) 15:51
TimToady it's a misuse of the word CONTROL, at minimum, then
control exceptions are "unexceptional" exceptions, and die is not unexceptional 15:52
jnthn That's possibly a Parrot choice of name, not a Rakudo one :)
mls_ that's why handle_types_except('CONTROL') doesn't include CONTROL_ERROR ;)
jnthn But yes, it's...not good.
pmichaud mls_: looking 15:53
[Coke] CONTROL_ERROR may be a leftover from tcl's [error] 15:54
shinobicl Timtoady: changing from "eqv" to "¬" works, thanks :)
15:55 cosimo left
mls_ so do we need a new CONTROL_X for warn()? 15:55
tadzik hi pmichaud
TimToady so some bug in chaining, probably
maybe in the copy semantics that keep a temp for the next comparison
in case you say $a eqv $b eqv $c 15:56
pmichaud copy?
if it chains, it's not really a copy
TimToady shinobicl++ has a bug in overloading eqv
tadzik pmichaud: my yesterday's implementation of List.unshift, using nqp::unshift, has problems with uninitialized $!items, being Mu rather than an RPA. What do you think is a best place to initialize $!items? the unshift itself seems like not the best place to do it
pmichaud tadzik: your unshift also doesn't work for infinite lists :(
TimToady it goes away when a different operator is used
moritz what should unshift with an infinite list do? fail? loop? 15:57
TimToady we discussed that yesterday
pmichaud it should put the infinite part into the generator portion of the list, I suspect.
TimToady unreify the reified bits of the array, was the upshot
pmichaud exactly.
moritz why not throw them away? 15:58
tadzik pmichaud: well, it passes all spectests :/
TimToady why throw them away?
moritz you can't access anything after an infinite chunk anyway
pmichaud moritz: we don't always know that something is infinite.
TimToady you can if we provide a surreal shift
tadzik bbs
pmichaud something can be "infinite" without being actually infinite.
moritz ok, I wasn't aware of that 15:59
pmichaud tadzik: (spectests) yeah, the spectests aren't very complete when it comes to stuff like this
15:59 shinobicl left
pmichaud anyway, List.unshift should not be putting things into $!items (the reified bits) 15:59
TimToady say 1,2,3, -> $n { last if $n > 10; $n + 1 } ... *; # officially infinite 16:00
perl6: say 1,2,3, -> $n { last if $n > 10; $n + 1 } ... *; # officially infinite
p6eval rakudo 922500, niecza v8-20-g6988dc9: OUTPUT«1234567891011␤»
..pugs: OUTPUT«*** ␤ Unexpected " #"␤ at /tmp/0ulErPJtZT line 1, column 52␤»
jnthn nom: say 1,2,3, -> $n { last if $n > 10; $n + 1 } ... *;
p6eval nom: OUTPUT«...␤»
pmichaud I still have a fix for that coming :-)
jnthn oh, cool :)
TimToady biab & 16:01
16:01 pernatiy left
[Coke] pmichaud: any big things landing in nom soon? 16:02
pmichaud qregex, hopefully. I'm not sure about "soon" though -- lots of household distractions lately. :(
plus just a general lack of properly shaped tuits
[Coke] hokay. 16:03
16:03 wamba left
[Coke] no pressure. ;) 16:03
I am very jealous of my 14 year old, btw. home playing PS3. :P
pmichaud ....why is CATCH catching die/warn exceptions? I don't understand. 16:05
oh, it's supposed to do that, yes?
oh, CATCH catches die, but not warn.
(is supposed to)
jnthn pmichaud: It also catches die inside the CATCH itself.
pmichaud jnthn: that's a separate issue. 16:06
mls_ I patched that
jnthn ah, ok
mls_: Did it get applied?
pmichaud mls_: can I see the patch for that?
jnthn (sorry, I was quite distracted by $dayjob earlier :))
mls_ I just added a pop_eh, patch: gist.github.com/1120201 16:07
pmichaud mls_: that's wrong.
mls_ why?
pmichaud it removes the handler in the case of a resumed exception.
mls_ It does? Doesn't a resume reinstall the handlers?
pmichaud it's also possible that the top handler on the stack isn't the handler being popped.
sorry 16:08
it's also possible that the top handler on the stack isn't the current handler.
a resume doesn't reinstall the handler for the current callframe, or for any functions it calls after the resume. 16:09
16:10 spinclad left
mls_ Hmm, how can we rethrow an exception if we mustn't pop the handlers? 16:10
pmichaud we have to have some way to tell the handler not to catch things 16:11
I don't have a good answer to the problem (given Parrot's current exception model)
but I suspect that pop_eh won't play well with gather/take, or with while loops.
jnthn Parrot's current exception model is only a good answer to "How do I implement exceptions badly?" :/
mls_ no spectest failures with the patch, btw 16:12
pmichaud I don't think the spectests currently test resumable exceptions, or the combination of CATCH/gather
[Coke] I am sure that parrot could use a someone to drive an ng exception model if anyone here has those tuits. 16:13
pmichaud anyway, CATCH catching die is a long-standing known bug (getting ticket #'s)
16:14 jevin left
pmichaud RT #64262 16:14
16:14 mj41 left, jevin joined
pmichaud RT #96028 16:15
mls_ still, I think resuming the continuation reinstalls the exception handler 16:19
16:20 colorspace joined
pmichaud let's try it then. 16:20
pmichaud writes a PIR example.
mls_ nom: for 1..3 -> $i { say $i; next; say "hello"; }
p6eval nom: OUTPUT«1␤2␤3␤»
mls_ also works with my patch
pmichaud that doesn't really prove anything. 16:21
mls_ I feared that ;)
pmichaud there's no pop_eh there
mls_ why not? The setting is compiled with my patch
[Coke] here's master's run: 16:22
"total", 17716, 1365, 619, 1722, 21396, 36197
pmichaud statement for doesn't use CATCH/CONTROL blocks
[Coke] and nom:
pmichaud so the fact that you've added a pop_eh to CATCH/CONTROL makes no difference.
[Coke] "total", 8773, 12, 386, 955, 10126, 36184
"Synopsis", "pass","fail","todo","skip","plan","spec"
mls_ ok, that could be the reason why it works ;) 16:23
[Coke] nom is currently at 49.5% of master
pmichaud gist.github.com/1120575 # resuming after exception doesn't restore handler 16:27
a slightly more complete example: 16:28
16:22 <pmichaud> statement for doesn't use CATCH/CONTROL blocks
grrrr.
gist.github.com/1120583 # a slightly more complete example 16:29
mls_ I'm wondering if parrot should be changed to restore the handlers 16:31
pmichaud ...but we popped it.
mls_ Yes, but the continuations is a "snapshot" of a time when it wasn't popped
pmichaud in the first resumed 'a', I suspect the handler is still there. 16:32
I'm not sure it should be restoring the handler in 'main', though.
although I bet that's another problem (more 16:33
)
16:34 daxim left
pmichaud gist.github.com/1120594 # another case 16:34
looks like the exception handler is gone for the called 'a' as well :-/
16:38 JimmyZ_ left
mls_ why does it loop if I comment out the pop_eh? 16:39
pmichaud you mean why does the CATCH block result in an infinite loop?
mls_ In your second example, if you comment out pop_eh it starts to loop 16:40
pmichaud hmmmm 16:42
mls_ ah, it's the exit 0
there's a pop_eh missing right before the exit 0
pmichaud yes, that's it.
good catch :) 16:43
16:43 espadrine left
pmichaud I forgot that exit also throws an exception :-) 16:43
I should've just put .return (0)
mls_ do you see any use case for the current behaviour, i.e. not reinstalling the handler? 16:46
s/handler/handler stack/ 16:47
pmichaud I don't understand how it's supposed to reinstall the handler.
mls_ well, store them in the contination PMC, I guess 16:48
[Coke] argh. that number for master might be wrong, as I'm not sure it was running against the right version of t/spec
mls_ continuation
pmichaud and invoking a continuation causes the exception handlers to be restored for all callers? that feels very wrongish.
16:49 awoodland left
pmichaud I'm more inclined to believe that pop_eh isn't the correct solution here. 16:49
16:49 icwiener joined
pmichaud Really, "pop_eh" means "remove the exception handler" and that's not what we're wanting to do here. 16:49
We're simply wanting the exception handler to not catch certain exceptions for a period of time. We're not wanting to remove it entirely.
I have an another example coming... just a sec. 16:50
[Coke] drinks tons of diet snapple, and is reminded of yapc in chicago. 16:51
16:51 jevin left, wamba joined 16:52 jevin joined
pmichaud gist.github.com/1120645 # another example of pop_eh failure 16:54
note how handler1 accidentally removes handler2 16:56
diakopter moritz: u around? 16:57
phenny diakopter: 06:39Z <moritz> tell diakopter about github.com/moritz/perl6-Sudoku
pmichaud (instead of removing itself)
16:57 shinobicl joined
mls_ Ah yes, true, that's what you meant that pop_eh may remove the wrong handler 16:58
ok, pop_eh is completely wrong 16:59
diakopter is it bad that I vastly prefer github's rendering of the synopses' pod over the one at perlcabal.org/syn
pmichaud diakopter: it's devastating. 17:00
diakopter heh
17:00 Casan left
mls_ so we need to access the ExceptionHandler pmc in the exception somehow 17:01
pmichaud actually, if we can find a way for an exception handler to determine that it's already in the caller stack, we could have it rethrow 17:02
or otherwise not catch exceptions 17:03
17:03 mkramer joined
mls_ seems like most HLLs will run into this problem, so it would be nice if parrot provided some convenient solution 17:03
jnthn pmichaud: Is there a reason you'd ever want a handler to catch its own exceptions? 17:04
pmichaud jnthn: I can't think of one, no.
(doesn't mean there isn't one.)
anyway, for rakudo I see a couple of possibilities 17:06
(1) we could subclass our own ExceptionHandler PMC that does what we need
(2) we could have an opcode that does rethrow_if_handerl_active
*handler_active
I'm not exactly sure what the caller stack looks like when a handler is active 17:08
pmichaud checks.
jnthn errand, bbs 17:10
[Coke] -> (13:07) From GArrow, to coding: 17:11
- Saying Perl 6 has a great feature is like saying Harry Potter has better
- spells than Gandalf. We need to stick to non-fictional languages here.
pmichaud heh.
tadzik well, it's Harry who survived 17:12
[Coke] ( search.cpan.org/~garrow/ )
tadzik: ... that kind of misses the point there. ;)
tadzik shush! :)
[Coke] also, they both died. get with the program. ;)
tadzik new HPatMoR chapters? 17:16
(: 17:17
pmichaud hmmm 17:19
[Coke] pmichaud: hummmmmm
17:19 Doctor_Pi joined
pmichaud I'm not seeing any way to detect that we're currently in an exception handler based on the call trace. 17:19
[Coke] exceptions handlers are not .subs, so that makes sense. 17:20
(at least, not necessarily subs)
pmichaud oh 17:21
we could twiddle the min/max severity to enable/disable the handler. :-) 17:22
that feels appropriately evil.
[Coke] evil's a good word. 17:23
17:24 masak joined
masak yay! hi, #perl6! 17:24
phenny masak: 01 Aug 22:21Z <diakopter> ask masak do you know of anyone writing sudoku-related code in Perl 6
tadzik o
masak: o/
Doctor_Pi Perl6 uses ICU, so I thought I would install ICU on PowerBook G4 running 10.5.8. When I ran "perl Configure.pl --gen-parrot" I get "no icu-config".
masak diakopter: I'll be giving a talk about Sudoku in (Perl 5, C,) Perl 6 at YAPC::EU.
diakopter: haven't gotten to the point where I port my Moose code to Perl 6, but I will have in a week or so. 17:25
pmichaud so, when we enter a handler, set its min_severity to REALLY_HIGH_SEVERITY. Resuming an exception then needs to set min_severity back to zero somehow.
[Coke] Doctor_Pi: how did you install icu?
(you may need icu-devel or the equivalent) 17:26
(powerbook) macports?
pmichaud because we don't do a lot with resumable exceptions at the moment, I'm absolutely fine with simply doing eh.'min_severity'(65535) inside of a CATCH block for now. 17:27
takadonet masak: I was writing Sudoku solver for the rosetta code by doing a simple port of the java version then golfing it to Perl6ism ways. However I ran out of time to work on it
pmichaud (that will disable the handler without removing it)
masak takadonet: nice. hope you get time back.
takadonet: I'm going the Knuth way and using the Dancing Links algorithm. 17:28
mls_ yes, I wonder if the Exception contains the ExceptionHandler somewhere.
takadonet masak: Was doing brute force way.... my second objective was to test performance as we improve the nom branch
pmichaud mls_: I'm looking at that now. 17:29
I see handler_iter there.
mls_ there's handler_iter and handler_ctx
Doctor_Pi [Coke]: Downloaded the tarball off the ICU site. And used these instructions here: javajosh.blogspot.com/2010/12/how-t...n-osx.html
masak takadonet: hm... so, tree search without propagation? :/
takadonet: have you seen Norvig's solution?
takadonet nope
Doctor_Pi [Coke]: I need to add one thing because there was a preexisting icu directory in the Downloads directory, the most recent tarball was extracted into icu-1 17:30
pmichaud oh, there's another answer. 17:31
Doctor_Pi [Coke]: I then ran the instructions in the icu-1/source folder.
pmichaud since our CATCH always involves invoking a sub, we could look for the existence of that sub in the call stack
(would need to check for the dynamic sub, not the static one) 17:32
still, twiddling min_severity is easier for now.
looking.
17:32 mkramer left
mls_ but the sub on the callstack doesn't mean much, it can be multiple times on the call stack... 17:33
pmichaud the CATCH sub cannot be. 17:34
[Coke] Doctor_Pi: is "icu_config" in your path?
er, icu-config
masak pmichaud: why not?
pmichaud a given CATCH closure can't be recursive, I suspect. 17:35
Doctor_Pi [Coke]: I should check that.
pmichaud i.e., a CATCH closure shouldn't be catching its own exceptions.
mls_ why can't the code in CATCH do some fancy operation (on a different object) that also runs in the same code?
masak pmichaud: it can occur multiple times on the stack, can it not?
pmichaud masak: the same closure?
masak pmichaud: closure, or closure clone?
17:36 wooden left
mls_ different ExceptionHandler object, though 17:36
pmichaud closure clone, if you like.
masak then, no.
pmichaud S04:1076
" so we say that a C<CATCH> block
never attempts to handle any exception thrown within its own dynamic scope.
"
masak ok.
[Coke] Doctor_Pi: if it is, parrot should be finding it (and we can diagnose why not) if not, you can add it, or use the explict parrot config parameters that say "here is my icu" 17:37
Doctor_Pi [Coke]: I have a icu-config in /sw/bin and this is in my path, but it's not the one I just installed.
17:39 impious joined
pmichaud since I think any given block is limited to a single CATCH block, I would not be opposed to storing the handler lexically, like we do for RETURN. 17:39
or perhaps it's an attribute on the current block 17:40
then we could easily twiddle its min_severity
or just store the handler in a register somewhere. 17:41
I guess PAST doesn't make it easy to do that, though. Hrm. 17:42
mls_ I think the the Exception's handler_iter[-1] contains the exception handler 17:43
at least the code for the finalize opcode looks like it
pmichaud looks 17:44
yes, it does. 17:45
I'd be fine with that :-)
Doctor_Pi [Coke]: there is a icu-config in /usr/local/bin. this is in my path but after /sw/bin. what are explicit parameters for "here is my icu"? 17:46
mls_ so we get the ExceptionHandler, store the severity in some loval var, raise it to some insane value, and run the CATCH block
local
pmichaud at this stage, I don't even care if we store the severity in some local var
mls_ we just need to restore it when we resume the exception
pmichaud but actually, the more I think about it, the more I'm convinced that any given CATCH block can only exist once on the dynamic stack. 17:47
mls_ I don't know. The code from the CATCH block can do many things, I don't see why it can't run the same sub again
pmichaud oh, I see. 17:48
mls_ (setting up a new exception handler...)
pmichaud but if it runs the same sub again, it gets a new CATCH closure.
[Coke] Doctor_Pi: in parrot, you can run: perl Configure.pl --help | grep icu
pmichaud which isn't the same as the one that ran the same sub again.
[Coke] --icu-config=/path/to/icu-config
that should do it. I don't know how to tell rakudo to use those args on parrot, though. 17:49
pmichaud for master, --gen-parrot-option=--icu-config=/path/to/icu-config
for nom, --parrot-option=--icu-config=/path/to/icu-config (I think)
Doctor_Pi [Coke]: --gen-parrot-option='--option=value' 17:50
[Coke]: i was reading the the Configure.pl in the root of the tarball. 17:51
pmichaud mls_: I'm fine with either approach for now. Also note that you probably don't need to keep track of the severity, since we don't make use of the severity yet in any of our code (i.e., it's safe to restore min_severity to zero)
where "either approach" is (a) twiddle min_severity, or (b) check the dynamic stack and rethrow if the current block is already on it 17:52
mls_ ah, nice. I'll provide a patch tomorrow, my perl6 hacking time for today is over ;)
pmichaud note that (b) will work even with resumable exceptions, while (a) needs some big-time help to detect when we do a resume.
(so I don't think that (a) can be the long-term answer)
mls_ understood. Thanks!
pmichaud we still need to figure out what exception to use for warn. 17:53
mls_ Ah, yes, that also ;)
pmichaud and die too, if we don't like using CONTROL_ERROR
sorear good * #perl6
mls_ What's CONTROL_OK? 17:54
pmichaud (I agree that CONTROL_ERROR is misnamed for this. OTOH, that's what Parrot's 'die' opcode throws.)
I don't think CONTROL_OK is specifically defined in Parrot.
(Yes, there's a CONTROL_OK type; no, I don't think it's been given any specific meaning.) 17:55
mls_ ;)
pmichaud I don't see any other predefined parrot exception types that really fit for die/warn 17:56
Doctor_Pi Stupid question. perl Configure.pl --gen-parrot is quitting with an unable to locate parrot 17:57
_config error,
sorry pressed return instead of another key.
pmichaud Doctor_Pi: perhaps remove parrot_install dir and try again
diakopter masak: you grok Dancing Links?
masak diakopter: I do.
Tene Haha, you can probably blame me for the bad names, iirc.
17:57 mkramer joined 17:58 dorlamm joined
Doctor_Pi pmichaud: which one is the parrot_install dir? 17:58
masak diakopter: I invite you to look at my implementation of it in github.com/masak/dlx-simple 17:59
Tene pmichaud: severity was used for 'warn' at least once in the past; dunno if that's still the case or not.
pmichaud Tene: yes, that's still the case.
mls_ hmm we can use severity 2 for CATCH, so that warnings don't get caught
Doctor_Pi forgive me I'm a bit green at this.
17:59 wolfman2000 left
pmichaud mls_: that might exclude other errors, though. 17:59
masak Doctor_Pi++ # contributing
mls_ Other warnings ;)
pmichaud mls_: no, other exceptions that have severity set less than 2
CATCH catches everything that isn't CONTROL 18:00
if you set min_severity to 2, you'll miss any exceptions that have min_severity less than 2.
Tene I'm really sad that I never managed to fix Parrot's exceptions system like I wanted. 18:01
iirc, though, whiteknight got my work on throwing instances of arbitrary subclasses of Exception reimplemented and merged into master a while back. 18:02
mls_ handle_types and handle_types_exclude should yse (type,severity) tupels ;)
s/yse/use/
Tene I don't recall whether you can push_eh an isntance of a subclass of ExceptionHandler, though.
pmichaud I believe so.
Tene If you can, you could just write your won subclass with a custom can_handle method that does what you want to ignore appropriate exceptions.
pmichaud Tene: yeah, I looked at that. 18:03
Tene (I haven't really been following the dicsussion here very closely; just barely stopped by)
pmichaud I think the other solutions are simpler and more faithful to the P6 spec.
mls_ gotta run, till tomorrow... 18:04
pmichaud and if we subclass the ExceptionHandler PMC, we'd need to update PAST::Control to allow custom ExceptionHandler types, or avoid it altogether.
18:04 mls_ left
diakopter masak: I think the most interesting sudoku solvers are the ones that can be used to generate human-solvable sudoku boards 18:04
the ones that can solve any board are just too powerful to do that 18:05
Tene pmichaud: PAST::Control is pretty bad as it is. It doesn't actuall support many of the operations people want. Fixing that is also on my list of projects I wish I had done before I stopped working on Parrot.
masak diakopter: I have some ideas in that area.
Tene I really should have put more thought into that design before adding it. :(
masak diakopter: viz. generating a full board, and then selectively removing numbers until it no longers solves to a unique solution.
diakopter right 18:06
Tene I don't think I ever wrote down the more-reasonable API for exception handling in PAST that I worked out before... I don't remember what I planned to do there.
diakopter masak: but if the solver is too powerful, it can solve boards that realy aren't human-solvable
masak: i.e. ones that require "guessing" and backtracking to solve 18:07
sorear #phasers in 52?
masak diakopter: are you saying there's a finite set of human tricks for solving Sudoku? 18:08
diakopter if you're asking whether I think there are boards that aren't realistically human-solvable, then yes 18:09
that still have unique solutions, of course
masak hadn't considered that. thanks for the input.
I've never actually tried solving a Sudoku grid. :P
it looks so boring.
diakopter lolz
sorear s/realistically/funly/
diakopter sorear: a coworker generated a board that his solver can solve that requires 8-deep guessing 18:10
that's not just unfun, that's nigh impossible 18:11
jlaire there's a collection of boards with a minimum number of given numbers and a unique numbers somewhere in the internets
they are waaay too hard for mere humans
diakopter yes
jlaire unique solution*
jlaire finds sudoku boring too
tadzik sorear: ywis 18:12
sorear ywis=?
tadzik yes
18:15 Kivutarrr joined
diakopter masak: solving all computer-solvable sudoku boards is cool, but mimicking human solution techniques is better for generating human-solvable boards 18:23
masak diakopter: my purpose is slightly different. I want to explore the translation of human-readable problems into DLX matrices (and back). 18:24
moritz diakopter: my experience from running a sudoku website is that all sudokus are solvable by humans :-) 18:25
diakopter moritz: but how are those boards generated 18:26
[Coke] I prefer to solve them by avoiding trial and error.
diakopter of course
moritz diakopter: by brute force
(in C++)
diakopter moritz: that's not what I and jlaire mean by human-solvable 18:27
oh you mean generated
but how by brute force
moritz *you* asked how they were generated :-)
jlaire some puzzles require one of 1) computer assistance, 2) *lots* of guessing and back-tracking, 3) non-practical amounts of look-ahead
masak moritz: could you define "brute force" more narrowly. because I tried a slightly cleverer than brute force generator, and couldn't get it to spit out solutions.
s/\./?/ 18:28
diakopter moritz: please clarify "brute force"; how do you know boards have only one solution
18:28 Kivutarrr left
moritz diakopter, masak: moritz.faui2k3.org/en/yasss#generate 18:28
masak looks 18:29
heh. nice :)
moritz what I do additionally (not mentioned on that page) is to check for each hint if you can take it away, and still have a unique solution
masak makes sense.
that's what I wanted to do.
jlaire 26 is a lot 18:30
masak jlaire: yes, but then you remove all hints you can remove...
26 is for the computer, not for the human :)
moritz jlaire: yes, considering that 17 is the minimum... but those are really hard to find
18:31 envi left
jlaire masak: oh I see 18:31
moritz i guess you can use algorithms tailored for finding ones with only 17 hints
masak moritz++ # nice, pragmatic heuristic
moritz oh, and jnthn++ for 6guts.wordpress.com/2011/08/01/a-hi...ogramming/ 18:32
diakopter moritz: how can you support your belief that all valid boards are human solvable 18:33
masak yes, jnthn++ 18:35
great hopes for the future!
18:35 icwiener left
moritz diakopter: I have a website where I offer one sudoku each day for online solving 18:36
shinobicl hi... being that "==" means numerically equal, and ≅ means (mathematically) "structurally indentical", a perl6 operator for "functionally equivalent" should be ≅ or ≅≅ ?
moritz diakopter: I picked the hardest I could find/generate, by several different metrics
[Coke] ENOFONT 18:37
diakopter moritz: that's not very convincing, unfortunately
masak shinobicl: how would you define "functionally equivalent"?
moritz diakopter: and all of them have been solved about 30 times
[Coke] .u ≅
phenny U+2245 APPROXIMATELY EQUAL TO (≅)
U+0020 SPACE ( )
[Coke] .u ≅
phenny U+2245 APPROXIMATELY EQUAL TO (≅)
U+0020 SPACE ( )
[Coke] .u ≅≅
phenny U+2245 APPROXIMATELY EQUAL TO (≅)
moritz diakopter: and I have data to support estimates that <10% was cheating
shinobicl that both objects have the same functionality.
diakopter moritz: how many of these "genius" level boards do you have 18:38
masak shinobicl: I mean, how would you define it computationally?
diakopter moritz: I'd be curious to try some of them
masak shinobicl: I can tell that sub foo { $^x * 2 } and sub bar { $^x + $^x } always give the same result (for Nums, at least), but most of my programming languages can't.
moritz diakopter: about 1.8k 18:39
shinobicl in my particular case. One workdaycalendar would give you "2 workdays between august 3 and august 5"
moritz diakopter: sudokugarden.de/en/online/
diakopter moritz: how do i ask for one of those 1.8k
masak shinobicl: I don't see the connection between that and "functionally equivalent". 18:40
moritz diakopter: sudokugarden.de/en/online/dstats has stats about the easiest and hardest
18:41 shinobicl_ joined
shinobicl_ even if other "secondary" properties of the objects are different 18:42
diakopter moritz: I suggest that your generation technique possibly precludes the generation of the impractical-to-solve-by-humans boards, in which case it's a good generator. :) but I still maintain there are plenty of impractically solvable boards 18:43
18:43 shinobicl left
moritz diakopter: most of these sudokus aren't generated by me 18:43
diakopter: there's a list of minimal sudokus somewhere, collected by gordon royle or so 18:44
diakopter: and I have a hard time believing the minimal sudokus are not among those that are hardest to solve
diakopter I don't understand your point 18:45
moritz the selection of sudokus is not as narrow as you seemed to think it is 18:46
18:46 shinobicl_ left
diakopter I don't understand what you mean, but no matter 18:47
moritz my experience about solving sudokus that are generated by computers is not limited to those generated with the algorithm linked to above 18:48
18:50 tokuhirom left, tokuhirom joined 18:51 mkramer left, shinobicl joined
shinobicl that is, the objects are functionally equivalent if they gave the same outputs with the same inputs 18:51
(sorry my internet connection sucks today) 18:52
masak shinobicl: and how will Perl 6 know that they do? 18:53
in general, I mean. 18:54
shinobicl not in general, depends on each case 18:55
18:55 tokuhirom left
shinobicl for my class, i know that when certains part of the object data are equal, then the compared objects are "functionally equivalent" 18:56
(i'm looking for a better term for that)
masak shinobicl: I guess what I'm saying is that while I see what you want to use it for, I fail to see how to build it.
shinobicl on, in my case i just compare 2 arrays on each object. I just need an appropiate operator for that 18:57
masak shinobicl: are you simply talking about infix:<eqv> on objects, not functions?
shinobicl i've tried "eqv" but that didn't work
yes masak
masak eqv should do that.
shinobicl i have problems overloading it
masak rakudo: say [1, 2, 3] eqv [1, 2, 3]
p6eval rakudo 922500: OUTPUT«Bool::True␤»
masak \o/
shinobicl i just changed the word "eqv" by something else and then my overloaded operator worked 18:58
masak shinobicl: sounds like an RT ticket, yes. 18:59
(an existing one, I mean)
shinobicl masak: irclog.perlgeek.de/perl6/2011-08-02#i_4209723
masak looks 19:00
19:01 rgrau joined
masak shinobicl: I see. 19:02
19:04 alester joined, rgrau left
shinobicl is that a bug? or maybe 'eqv' should be overloaded with something different from "infix" ? 19:05
19:09 Mowah left
shinobicl ...nevermind, i've just found Timtoady's comments about the issue 19:11
19:23 shinobicl left 19:26 dorlamm left
jnthn nom: my $x; $x ^^= 42, 43 19:30
p6eval nom: ( no output )
19:30 donri left, donri joined, p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
pmichaud nom: say &infix:[^^] 19:31
p6eval nom: OUTPUT«Confused at line 1, near "say &infix"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
pmichaud nom: say &infix:<^^>
p6eval nom: OUTPUT«infix:<^^>␤»
pmichaud nom: my $x; $x ^^= 42; say $x;
p6eval nom: OUTPUT«42␤»
sorear nom: pir::branch__vI(-256)
benabik ^^ ? XOR?
p6eval nom: OUTPUT«Segmentation fault␤»
moritz nom: my $x; $x ^^= 42; ^^= 15 19:32
p6eval nom: OUTPUT«Confused at line 1, near "^^= 15"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
moritz nom: my $x; $x ^^= 42; $x ^^= 15
p6eval nom: OUTPUT«Segmentation fault␤»
jnthn sorear: Using pir:: is cheating :)
moritz there you go
jnthn moritz: And how is ^^ implemented?
sorear jnthn: I was testing the segfault reporting code in p6eval
moritz jnthn: dunno
nom: say (0 ^^ 0)
p6eval nom: OUTPUT«0␤» 19:33
moritz nom: say (0 ^^ 0).perl
p6eval nom: OUTPUT«0␤»
moritz nom: say (Any ^^ Any).perl
p6eval nom: OUTPUT«Any␤»
[Coke] if you can make parrot segfault, please open a ticket.
sorear nom: say (1 ^^ 1).perl
p6eval nom: OUTPUT«Method 'perl' not found for invocant of class 'Undef'␤current instr.: '_block1002' pc 110 ((file unknown):23355040) (/tmp/0dWdryZkUB:1)␤»
moritz Undef, that's the problem 19:34
jnthn Right, same as usual...a Parrot type gets into an unfortunate place.
pmichaud jnthn: I'm happy with mapping Undef to Mu, fwiw.
sorear [Coke]: I think it's completely reasonable for branch_ic -256 to segfault
moritz same with xor= fwiw 19:35
pmichaud We can also create a custom pasttype for the 'xor' we need if we want. I looked at it a couple of weeks ago and didn't like any of the answers. 19:36
19:36 Kivutarrr joined
sorear Aren't you responsible for all the pasttypes? 19:36
pmichaud I don't understand the question, but the answer is "yes" 19:37
dalek kudo/nom: 20edd76 | moritz++ | NOMMAP.markdown:
update NOMMAP
19:38
jnthn *lol*
19:40 Vlavv_ left 19:49 MayDaniel left, MayDaniel joined, MayDaniel left, MayDaniel joined 19:53 Vlavv_ joined
dalek ecza: 9c1607b | sorear++ | lib/Kernel.cs:
Implement ::("OUR") reference
19:58
19:58 alester left
dalek ast: ee3ad6f | sorear++ | S02-names/pseudo.t:
[S02-names/pseudo.t] Correct MY tests, add OUR tests
19:59
sorear 2 down 10 left
masak \o/
20:07 molaf left 20:09 mkramer1 joined 20:15 Vlavv` joined 20:17 Vlavv_ left 20:22 Doctor_Pi left 20:23 Vlavv` left, Vlavv_ joined 20:32 mkramer1 left 20:33 Fried_ joined
pmichaud continues to have a strong dislike for xor. 20:35
20:35 BooK joined
pmichaud xor was fun the first time. Now it's just a royal pain. 20:35
ultimately, it's another example of where we need a way to define short-circuiting semantics in Perl 6. 20:36
TimToady List of Thunk? 20:37
jnthn pmichaud: Well, we could maybe implement macros ;-)
pmichaud jnthn: even if we say "do it as macros", I've yet to see a complete definition.
same for List of Thunk.
TimToady LoT is the macro on which other can be defined 20:38
*others
pmichaud pmichaud@kiwi:~/specs$ ack Thunk
pmichaud@kiwi:~/specs$
:-(
benabik Short-circuiting xor? 20:40
pmichaud benabik: short-circuit anything, tbh
TimToady benabik: with one() semantics, not with parity semantics 20:41
pmichaud how does a Perl 6 programmer define a short-circuiting operator
?
20:44 sshc_ joined 20:46 sshc left
[Coke] I can write up some javascript to allow you to collapse sections on the summary, if that's desirable. 20:48
(from phasers)
20:51 mkramer joined, mkramer left
sorear is xor actually useful? 20:59
short-circuiting 21:00
pmichaud Yes.
I don't have the use case in mind right now, but I have run into times where I wanted to short-circuit upon proving that more than one thing was true. 21:01
masak oh, sure it's useful. 21:07
say you're wanting to know whether a sudoku solution is unique.
hm, maybe not a perfect example. 21:08
but it involves halting at two because that indicates failure.
21:14 ggoebel left
sorear chooses &CORE::none as a sacrifice for CORE binding tests 21:15
masak 'night, #perl6 21:16
21:16 masak left 21:20 ggoebel joined, Vlavv_ left
[Coke] (how to write short circuit) can functions take code refs as args? 21:21
dalek ast: 878cf06 | sorear++ | S02-names/pseudo.t:
[S02-names/pseudo.t] Tests for CORE
21:22
sorear [Coke]: yes 21:24
[Coke]: but you don't get the nice syntax that way
{...} ^^ {...} ^^ {...} vs. ... ^^ ... ^^ ...
21:25 sshc_ is now known as sshc 21:33 Vlavv_ joined
[Coke] sorear: yup. one thing at a time. 21:34
21:34 kaare_ left 21:44 Psyche^ joined 21:46 Patterner left, Psyche^ is now known as Patterner
diakopter moritz: you still around 21:49
21:51 MayDaniel left 22:02 colorspace left 22:12 felipe left 22:14 impious left, impious joined 22:17 drbean joined 22:23 am0c joined 22:31 Kivutarrr left 22:35 felipe joined
felher jnthn++ for a-hint-of-meta-programming. 22:40
sorear diakopter: ping 22:49
diakopter: now that I'm writing original test files, I think I need to know how the smartlinker works
22:59 Reaganomicon left 23:00 Reaganomicon joined 23:01 Vlavv_ left 23:02 Vlavv joined
jnthn night, #perl6 23:04
TimToady o/
23:06 Reaganomicon left 23:07 Reaganomicon joined 23:09 wamba left 23:15 colorspace joined 23:21 bitpart joined 23:26 Su-Shee left, nbrown left, nbrown joined
donri so, who will implement perl6 on pypy 23:29
get to work people
TimToady got a mirror?
donri complete the original parrot joke \o/
TimToady: sorry? 23:30
TimToady I thought you were talking to yourself. :)
the first stage of enlightenment is when you discover that "someone" is "me" 23:31
donri :) i was joking around
dalek ast: cdbf121 | sorear++ | S02-names/pseudo.t:
[S02-names/pseudo.t] add GLOBAL, PROCESS, DYNAMIC
donri hey are you subtly sneaking in references to an MJ song? 23:32
sorear me?
donri no, TimToady :) 23:33
"man in the mirror"
23:34 jedai joined, jedai_ left 23:36 jaldhar left, jaldhar joined 23:41 bitpart left 23:50 ranott joined
sorear welcome, ranott 23:56