»ö« 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 patrickas joined
patrickas TimToady: should fail('something'); show something or just fail silently in the absence of "use fatal;" ? 00:03
rakudo:sub f {fail 'HARD'}; f();say 'OK'; 00:06
p6eval rakudo 4bf132: OUTPUT«OK␤»
00:06 chitragupt joined 00:08 patrickas left 00:10 lateau joined
TimToady it should throw the exception when the return value of f() hits a sink context 00:10
00:17 ajs joined 00:18 silent_h_ joined 00:23 Chillance left 00:24 awwaiid left 00:26 awwaiid joined
sorear good * #perl6 00:27
sjohnson hello
sorear phenny: tell pmurias AFAICT GSoC doesn't like 'exploratory programming' much. We don't know if the CL-backend will still have decent performance after you make 1 + "2" work 00:29
phenny sorear: I'll pass that on when pmurias is around.
sorear phenny: tell masak You need to go back in time to the 80s and check out X11's color parser, or at least /usr/share/X11/rgb.txt 00:39
phenny sorear: I'll pass that on when masak is around.
sorear Tene! 00:40
Tene sorear!
sorear Tene: I don't understand fail() very well. Can you help?
Tene sorear: I can certainly try. 00:41
fail ~~ currently-fatal ?? die Failure.new(...) !! return Failure.new(...); 00:42
There's also some stuff about storing failures in $!
Do you have specific questions, or should I explain those in more-detail?
00:43 silent_h_ left
sorear Tene: the nature of exception objects, to a large extent 00:47
Tene TimToady: I'm pretty sure that fatal can't just be lexically scoped, unless I misunderstand the spec. "The fail function responds to the caller's use fatal state." -- does this refer to the caller of fail, or the caller of the caller of fail? 00:49
sorear: Failure objects are fairly simple. They have a 'handled' attribute, and if that's false, any use of the Failure as data (.Str, .Int, any other method calls afaict) should cause it to be thrown. 00:53
oops, train, brb
will continue from train in a sec
sorear I think fatal should maybe do something like 00:57
use fatal -> constant $?FATAL = True
no fatal -> constant $?FATAL = False
00:58 sivoais left, sivoais joined 00:59 sivoais left
sorear be_fatal() -> loop (my $fr = caller; $fr; $fr .= caller) { return $_ if .defined given $fr.hints('$?FATAL') } 00:59
00:59 sivoais joined, sivoais left
sorear I can't remember if .hints is a Niecza extension though 00:59
01:00 sivoais joined 01:01 sivoais left 01:03 sivoais joined
TimToady Tene: the viewpoint of the description of fail is already from the first caller's perspective 01:07
01:07 GinoMan joined
TimToady so it means the caller's caller 01:07
or the caller of the code that called fail, more like 01:08
Tene TimToady: It's not clear to me what should happen when a scope with no fatal calls a sub in a scope that is fatal, which in turn calls a sub in a scope that is not fatal, which calls fail.
I guess the fatal quality of the last sub is not relevant. 01:09
is it just thrown? only thrown up to the first non-fatal sub?
TimToady fail only cares about the lexical scope of the immediate caller 01:10
Tene sorear: .hints is a niecza extension, but yes, that looks very good.
TimToady if you explicitly return an exception into a 'use fatal' lexical scope, it would throw immediately though 01:11
Tene TimToady: so the ability to deal with "soft failures" is only possible as long as all of the code I call does not use fatal?
01:12 gfldex joined, mekameka joined
Tene So if I use fatal in my code, it makes my code more difficult to use for anyone who wants to use unthrown exceptions? 01:12
01:13 leprevost joined
TimToady yes, but then I'm a bit prejudiced against 'use fatal' to start with 01:13
ajs and libraries probably never have an excuse to do so 01:14
TimToady I don't think eager exceptions will work well in a parallel programming language
01:15 takadonet joined
Tene sorear: anyway, resuming, fail() will also push the returned failure onto the caller's $! 01:15
sorear: at scope exit, all handled exceptions in $! are discarded, and any unhandled exceptions are thrown. 01:16
TimToady we may yet turn $! into @!
01:17 Rotwang left
Tene Ah, no, if there any unhandled exceptions in $!, they're all bundled into a single new exception, which is thrown, according to S04 01:17
TimToady yes, that's what S04 says, but I can change it :)
Tene So can I. 01:18
sorear out
TimToady anyway, if we did that, CATCH would basically turn into a for @! {} rather than a given $! {}
Tene 'use fatal' vaguely feels like an exception handler that uses a third exit path (locally return) 01:20
ajs Too bad !! is taken... it would be a fun "re-bundle and throw" ala "CATCH { !! "Why?" }
Tene "no fatal" => FAIL { magic-local-return $! }
ajs: die() defaults to $!
implemented as an EH for every nonfatal scope would be horrible, though 01:21
ajs Yes, but die doesn't re-throw
or bundle I mean
So die $! just re-raises and die "Why?" raises a new exception. 01:22
anyway, it was just a cute idea... I'm sure there will be an easy way to aggregate $! and a new exception 01:24
01:32 GinoMan left 01:33 GinoMan joined 01:34 whiteknight left 01:42 drbean joined 01:53 mtk left 02:01 mtk joined 02:11 tylercurtis joined 02:13 ncow joined
ncow perl6: printf "$]"; 02:14
p6eval niecza v4: OUTPUT«===SORRY!===␤␤Any()Non-variable $ must be backslashed at /tmp/PvuZTtD0_j line 1:␤------> printf "⏏$]";␤␤Parse failed␤␤»
..rakudo 4bf132: OUTPUT«===SORRY!===␤Non-variable $ must be backslashed at line 22, near "$]\";"␤»
..pugs: OUTPUT«$]»
ncow what the...
what none-variable?
perl6: printf "$[";
Eevee what the heck, why is there an eject symbol in v4's output
p6eval rakudo 4bf132: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 22␤»
..niecza v4: OUTPUT«===SORRY!===␤␤Any()Non-variable $ must be backslashed at /tmp/jrlAr2JIMq line 1:␤------> printf "⏏$[";␤␤Parse failed␤␤»
..pugs: OUTPUT«$[»
ncow perl6: print "$[";
p6eval niecza v4: OUTPUT«===SORRY!===␤␤Any()Non-variable $ must be backslashed at /tmp/bZX5yGyd09 line 1:␤------> print "⏏$[";␤␤Parse failed␤␤» 02:15
..rakudo 4bf132: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 22␤»
..pugs: OUTPUT«$[»
02:15 nymacro joined
ncow no it's $], the first one 02:15
perl6: print "$]"; 02:16
p6eval niecza v4: OUTPUT«===SORRY!===␤␤Any()Non-variable $ must be backslashed at /tmp/TD2aqP0tM3 line 1:␤------> print "⏏$]";␤␤Parse failed␤␤»
..rakudo 4bf132: OUTPUT«===SORRY!===␤Non-variable $ must be backslashed at line 22, near "$]\";"␤»
..pugs: OUTPUT«$]»
TimToady std: $]
p6eval std 4608239: OUTPUT«===SORRY!===␤Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION at /tmp/FQ4eXJiHrq line 1:␤------> $]⏏<EOL>␤Parse failed␤FAILED 00:01 118m␤»
TimToady std: "$]"
p6eval std 4608239: OUTPUT«===SORRY!===␤Non-variable $ must be backslashed at /tmp/N03DATmzZc line 1:␤------> "$⏏]"␤ expecting twigil␤Parse failed␤FAILED 00:01 119m␤»
TimToady hmm
std: "$|"
p6eval std 4608239: OUTPUT«===SORRY!===␤Non-variable $ must be backslashed at /tmp/SahEVRo4NQ line 1:␤------> "$⏏|"␤ expecting twigil␤Parse failed␤FAILED 00:01 119m␤»
TimToady I guess the interpolator doesn't believe in obsolete special vars 02:17
ncow I thought Perl6 was still very much, well, Perl? Yet it can't even do a simple print statement? 02:18
perl6: print "";
p6eval pugs, rakudo 4bf132, niecza v4: ( no output )
ncow perl6: print "123";
p6eval pugs, rakudo 4bf132, niecza v4: OUTPUT«123»
TimToady that's fine, but most punctuational variables have gone away
most of them were "bad" globals 02:19
the STD parser will tell you the new usages, but apparently not if interpolated
std: $[
p6eval std 4608239: OUTPUT«===SORRY!===␤Unsupported use of $[ variable; in Perl 6 please use user-defined array indices at /tmp/ntH6MpFnfF line 1:␤------> $[⏏<EOL>␤Parse failed␤FAILED 00:01 118m␤»
TimToady std: $| 02:20
p6eval std 4608239: OUTPUT«===SORRY!===␤Unsupported use of $| variable; in Perl 6 please use :autoflush on open at /tmp/p_31XQgo9C line 1:␤------> $|⏏<EOL>␤Parse failed␤FAILED 00:01 118m␤»
TimToady the definition of "Perl" isn't a surface syntax, it's a way of thinking about computer languages
02:21 mekameka left 02:25 mekameka joined, mekameka left 02:27 GinoMan left 02:30 hudnix left 02:39 cdarroch left
tylercurtis jnthn: I've noticed that one of the ideas on the Perl Foundation's GSoC ideas page is optimizing multiple dispatch for Rakudo. 02:43
jnthn: Do you know if anyone is planning to apply for that?
ncow lol 02:44
TimToady: sorry, I'm not sure what you mean by your last statement. Perl (Perl5) /is/ a language, not just a way of thinking, but as well defined syntax, et al 02:45
maybe I'm not understanding your meaning 02:46
PerlJam ncow: Perl5 is Perl, Perl6 is Perl. Perl is philosophy more than syntax. 02:48
tylercurtis ncow: I think that, as far as this case specifically, he's saying that Perl 6's use of less opaque variable names for certain things doesn't make it less Perlish. 02:50
PerlJam Steal good ideas where you can. TMTOWTDI (including ways that aren't perl). Huffman. Waterbed theory of complexity. Easy things easy, hard things possible. Be nice. Hugs. Camels. Butterflies. It's all "Perl" :-) 02:51
aesop but perl isn't perl without the arcane globals! 02:52
TimToady that's a fable 02:53
PerlJam aesop: That's about as true as "perl isn't perl without using -> for method calls"
aesop i will miss the -> 02:54
PerlJam aesop: or look at it this way ... we've given up arcane globals and gotten twigils instead ;)
aesop ha
TimToady and you lose -> as method call but get it back as a "lambda" 02:55
rakudo: for %*ENV.kv -> $key, $value { say "$key='$value'" } 02:56
p6eval rakudo 4bf132: OUTPUT«Method 'key' not found for invocant of class 'String'␤ in <anon> at line 5228:CORE.setting␤ in main program body at line 1␤»
aesop was the `=>' retained 02:57
TimToady yes, but it really makes a Pair object now
TimToady wonders why that didn't work... 02:58
PerlJam poor %*ENV implementations?
er, s/s//
TimToady rakudo: say ~%*ENV.kv
p6eval rakudo 4bf132: OUTPUT«Method 'key' not found for invocant of class 'String'␤ in <anon> at line 5228:CORE.setting␤ in 'Any::join' at line 1␤ in 'List::Str' at line 2815:CORE.setting␤ in main program body at line 7538:CORE.setting␤»
TimToady looks like
anyway, thought I could demo both a twigil and the new ->
tylercurtis rakudo: say {}.kv 02:59
p6eval rakudo 4bf132: OUTPUT«␤»
TimToady pugs: for %*ENV.kv -> $key, $value { say "$key='$value'" }
p6eval pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/VaOTJhNphS line 1, column 5-14␤ /tmp/VaOTJhNphS line 1, column 5-14␤»
TimToady niecza: for %*ENV.kv -> $key, $value { say "$key='$value'" }
p6eval niecza v4: OUTPUT«Unhandled exception: Unable to resolve method kv in class Any␤ at /tmp/0ORFmdnnSP line 1 (MAIN mainline @ 1)␤ at /home/p6eval/niecza/lib/CORE.setting line 1264 (CORE C525_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1265 (CORE module-CORE @ 39)␤ at
TimToady strikes out
alpha: for %*ENV.kv -> $key, $value { say "$key='$value'" } 03:00
p6eval alpha : OUTPUT«PWD='/home/p6eval/rakudo-alpha'␤PATH='/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games'␤LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01…
TimToady hah!
takadonet night all 03:03
woldrich alpha: $0
p6eval alpha : ( no output )
03:03 takadonet left 03:04 jaldhar joined
aesop i still am learning new things about perl5 every day 03:08
$a = $b or $c;# bug: this is wrong
($a = $b) or $c; # really means this
this caught me today
TimToady general rule, use && when you want to do logic inside an assignment 03:09
this is still true in p6
aesop i see 03:10
PerlJam aesop: one of the neat things about Perl is that there's always something new to learn :)
aesop i love the `english word' operators
you can write statements that read like complete sentences
TimToady even more true in Perl 6 :)
rakudo: say so so not True 03:13
p6eval rakudo 4bf132: OUTPUT«Bool::False␤»
PerlJam I can't believe p5p is *just now* getting rid of the /o modifier and study and for all I know reset is still around too.
I haven't used reset since *perl4* was the latest and greatest 03:15
TimToady rakudo: all for one; and one for all 03:16
p6eval rakudo 4bf132: OUTPUT«Could not find sub &and␤ in <anon> at line 22:/tmp/C91VsS8U_s␤ in main program body at line 1␤»
TimToady rakudo: all for one and one for all # won't work, alas 03:17
p6eval rakudo 4bf132: OUTPUT«===SORRY!===␤Missing block at line 22, near ""␤»
sorear is back
TimToady: I hope fail can be made to work in a way that doesn't erase all the potential wins from parallelism... 03:18
03:19 lateau left
TimToady std: lol eager cat but not one caller 03:19
p6eval std 4608239: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'but' used at line 1␤Check failed␤FAILED 00:01 119m␤»
TimToady hmm
sorear TimToady: so the contents of a CATCH block might be executed multiple times? 03:21
03:21 leprevost left
sorear TimToady: what would my $err = try { }; do? Would try { } fill @! with 'handled' exceptions? 03:21
TimToady if it's really a loop, yeah; but you could short circuit by eating up @! 03:22
I think @! probably would only keep unhandled exceptions
TimToady waves hands in the usual way
sorear ncow: The eject symbol marks the exact location of the error. 03:23
TimToady std: splice one flat cat and make hash 03:24
p6eval std 4608239: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'and' used at line 1␤Check failed␤FAILED 00:01 119m␤»
03:24 lateau joined
sorear TimToady: currently you can say "try {}" and then use $!. If $! becomes @! and @! only keeps unhandled exceptions, how will this work? 03:25
PerlJam sorear: TimToady waves his hands, there's a little puff of smoke and it just works. ;) 03:26
03:27 Su-Shee left
TimToady $! might be the most recent unhandled exception 03:27
03:28 Su-Shee joined
tylercurtis PerlJam: I am opposed to language constructs in Perl 6 requiring TimToady's hand-waving. Imagine if someone tried to do "for 1..10000 { try { something; } }". 03:29
TimToady's arms would be ruined.
TimToady std: splice one hyper cat for now and chomp new hash 03:31
p6eval std 4608239: OUTPUT«===SORRY!===␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at /tmp/oswS_XeDAr line 1:␤------> one hyper cat for now and chomp new hash⏏<EOL>␤Parse failed␤FAILED 00:01 120m␤»
TimToady std: splice one hyper cat for now and chomp all hash lol 03:33
p6eval std 4608239: OUTPUT«ok 00:01 120m␤»
03:34 Maddingue joined
TimToady rakudo: say now 03:34
p6eval rakudo 4bf132: OUTPUT«Instant:2011-04-01T03:34:59.210172Z␤» 03:35
03:35 donri left
sorear PerlJam: I don't currently have a way to programmatically wave TimToady's hands 03:42
03:53 agentzh joined 04:04 sftp left 04:27 ymasory left
mberends sorear: I have a very useful summer goal for you: get Niecza to support at least one GUI on Linux and then Windows 04:31
04:31 envi joined 04:32 fine joined
sorear mberends: cool 04:35
mberends callbacks are a big problem to solve, and probably handling native structures is too. 04:36
sorear callbacks? te he he he 04:44
take a look at SortHelper in Kernel.cs :> 04:45
04:48 ymasory joined
mberends cb.Invoke(...) yeah 04:48
anyhow I predict that if Perl 6 early adopters could write GUI apps using Niecza, they would do so in large numbers. 04:52
sorear straw poll: what GUI(s) should Niecza support? 04:53
mberends tip: ignore technical cuteness, go for the lowest common denominator 04:54
sorear likes :from<C#>, but there are a LOT of dark corners to make that work
mberends heh
mberends likes :from<C>
sorear C# and P6 both depend heavily on multiple dispatch, but have not quite the same type system
I don't think there are any good C GUI libraries 04:55
mberends I said ignore that
04:55 fine left
mberends go for largest potential user base 04:55
we need to increase the bus number as top priority 04:56
sorear I thought by "technical cuteness" you meant stuff like yampa 04:57
mberends so the poll question should be (imho): which GUI has the lowest barrier for new users.
sorear so what do you want me to ignore? good, or C?
mberends ignore C, that was a subjective joke 04:58
sorear so we've got stuff like GTK, wx, and QT as the serious contenders in unix-land 04:59
(my last Mac and Windows programing experience was in 7.6.0 and 98, respectively; I doubt either is still using the same GUIs)
mberends eliminate those that require additional installation steps. Out-the-box will win far more users.
sorear ok. 05:00
mberends Tene++ did a bit with E17 but almost nobody got it to run.
the ideal first target platform (imo) is the Debian 6.0 Live CD. 05:02
05:03 kaare_ joined 05:04 birdwindupbird joined 05:05 birdwindupbird left
sorear diabian is at 6 now? 05:06
05:11 birdwindupbird joined
mberends yes, after a long long wait, 6.0 was officially released in February. It was like Christmas! 05:11
sorear mberends: I'm of two minds about the value of :from<C#>
on the one hand, GUIs (several!), web servers, compression and encryption, networking, and much more for the price of a single summer's work 05:13
on the other hand ... lockin
mberends understandably. It is probably very tempting, and scary.
sorear does not like the idea of encouraging unportable Perl 6 much 05:14
05:15 lateau left
sorear out 05:15
mberends too 05:16
05:16 mberends left 05:26 lateau joined 05:28 donri joined 05:34 am0c^ joined 05:39 noganex_ joined 05:41 noganex left 05:43 ymasory left
moritz_ good morning 05:49
05:54 cosimo left
Tene mberends: I wasn't aware that anyone else even tried to get my e17 stuff to run 05:54
05:54 donri left
Tene sorear: I'm pretty pleased with EFL as a C GUI library, but I've never done anything very big with any GUI library, so I'm probably underqualified to comment. I'm curious if you have more-detailed opinions. 05:56
06:02 wtw joined 06:03 kostja_osipov joined 06:36 Rotwang joined 06:52 am0c joined 07:00 tylercurtis left 07:17 Mowah joined 07:34 fhelmberger joined 07:55 flussence_ joined
Su-Shee hi everyone. 08:15
moritz_ good morning Su-Shee 08:16
Su-Shee what? GUI? Gtk3with GIR of course!
moritz_ your patches are very welcome :-) 08:17
08:17 kostja_osipov left
Su-Shee personally, I don't think desktop GUI support is very important as this is something slowly vanishing into the background anyways. also, if you're in your right mind, you go for seed anyways these days. so level of importance: low. (besides gathering experience and knowledge and show that it can be done etc.) 08:19
Tene: I did run your GUI stuff as well. ;) 08:20
moritz_ thinks that GUI application designers could learn a lot from web apps 08:22
for example: make all text copy&pastable
don't use modal dialogs 08:23
don't ask if I'm sure. JDFI, and maybe make my change reversible
Su-Shee moritz_: I don't know what gui you are using - but use another one :) 08:24
moritz_ make different views or functionality easily available with URIs
Su-Shee: for example I'm using thunderbird/icedove. It gives me a modal dialog whenever it loses connection to a server
when the internetz disconnected for a while, I have to click away a few such dialogs for each server I configured 08:25
Su-Shee moritz_: "baeh."
08:25 am0c^ left
Su-Shee moritz_: though that's because everything mozilla is highly optimized for windows gui and windows actually has the notion of modal dialogs. 08:26
moritz_ Su-Shee: and from my experience that's the norm rather than exception
Su-Shee: even on windows I don't want modal dialogs
Su-Shee moritz_: haven't tried gnome 3 yet.
moritz_ what do I gain from not being able to use my program while that error message is displayed?
Su-Shee you're really barking up the wrong tree :) I don't even use desktop gui anymore besides maybe 5 applications and a very reduced window manager. everything else plays in web for me. 08:28
anyways. I'd look into how seed works if I'd had to make perl 6 bindings to gtk3. 08:30
08:33 kostja_osipov joined 08:37 dorlamm joined 08:45 mberends joined 08:49 dakkar joined
Su-Shee *hihi* #perl topic for today: "...| perl is currently being rewritten in Java for better portability and OO support 08:52
mberends mypaint is awesome! hwo sad for us that it is written in Python 2.6, and that we cannot write awesome software like that in Perl 6. mypaint.intilinux.com/
Su-Shee it probably can't be rewritten in python 3 too ;) 08:53
moritz_ mberends: I'm currently writing a project of mine in perl 5, because p6 just misses modules, and isn't fast enough. But man how I miss some of the syntactic goodies 08:54
I keep writing $obj->update({title => $title}), and can't help thinking that it would just be :$title in p6, for example 08:55
mberends watching mypaint install and run is what prompted my GUI suggestion for Niecza
moritz_ or post '/edit' => sub { ... }\n
Su-Shee mberends: hm, there's a couple of c and c++ libs involved, and cairo as well.
moritz_ p5 needs a newline after the }
which I *always* forget 08:56
08:56 laui joined 08:58 moritz_ is now known as moritz
mberends considers changing nick to mberends_ to preserve parity 09:00
09:01 laui left
moritz I'll try to get the freenode staff to drop the old registration for 'moritz' 09:02
if that fails, I'll take up the underscore again 09:03
09:14 Rotwang left 09:17 am0c left
moritz \o/ my Hague grant has been accepted 09:19
[Coke]: do you want to be my grant manager?
09:20 Khisanth left, Khisanth joined 09:23 dorlamm left, am0c^ joined
bbkr_ rakudo: NaN.WHAT.say # oh irony :) 09:28
p6eval rakudo 4bf132: OUTPUT«Num()␤»
09:30 _twitch joined 09:31 bacek joined 09:35 lateau left 09:38 patrickas joined 09:39 mtk left 09:40 orafu left 09:41 orafu joined 09:45 birdwindupbird left 09:47 mtk joined 09:48 birdwindupbird_ joined
patrickas RT#87420 / RT#87440 are too narrow in scope is there a way to change the description? ot should it be closed and a new bug reopened? or should I just add a message leaving title and everything else as is? 09:48
09:49 am0c^ left
patrickas apparently I was having a communication fail about the failure of fail yesterday :-) 09:49
moritz patrickas: if you have write access to the perl6 queue on rt, you can change the title on the 'basics' link 09:50
and merge them when you click on 'links' 09:51
patrickas oh cool! seems I do ... let me try
mberends moritz: congratulations on your grant!
patrickas Actually maybe just discuss it here first
moritz mberends: thanks 09:52
patrickas the real issue is that "fail" does not produce any visible errors in the abscence of 'use strict'
moritz s/strict/fatal/
patrickas right
the weird behavior of seq op is just one of tons of other examples 09:53
moritz yes, calling methods on Failure should result either in another Failure(), or in the original exception being thrown
patrickas rakudo: say (3+4i).Real;say ()[-3];say [*..*];
moritz agreed
p6eval rakudo 4bf132: ( no output )
patrickas all thos fail with error messages in the same way ... so I will try to make the report about that :-)
permission denied on the RT :-( apparently I have enough privs to edit the message but not enough to save it! 09:56
09:56 f00li5h joined 09:57 pmurias joined
moritz I've changed the title now 09:58
patrickas: maybe write a reply explaining the deeper underlying problem?
patrickas ok i will add a message explaining the issue
moritz replies don't need special permissions
patrickas sure, already half way through it
09:59 dakkar left 10:01 domidumont left 10:07 am0c^ joined
patrickas moritz ... I just realized maybe the issue of say (3+4i).Real;say ()[-3];say [*..*]; 10:07
10:07 birdwindupbird_ left
patrickas should be in two separate bugs ? 10:08
10:08 birdwindupbird joined
moritz why? 10:08
patrickas s/two/a/
10:09 birdwindupbird left
moritz rakudo: say (3+4i).Real.WHAT 10:09
p6eval rakudo 4bf132: OUTPUT«Failure()␤»
moritz rakudo: say ()[-3].Real.WHAT
p6eval rakudo 4bf132: OUTPUT«Method 'Real' not found for invocant of class 'Failure'␤ in main program body at line 22:/tmp/YaECJqCXln␤»
moritz rakudo: say ()[-3].WHAT
p6eval rakudo 4bf132: OUTPUT«Failure()␤»
10:09 birdwindupbird joined
patrickas sorry I mean in a separate bug than the sequence one 10:09
moritz why?
ok, we have two bugs
patrickas the seq is about new Failures not preserving old ones
moritz one is that say() silently fails
patrickas where as these are about Failure not showing up at all 10:10
moritz the other is that Failure.somemethod doesn't do what it should
they look related to me, though maybe not identical
patrickas yes exactly .. I thought they were the same thing then when writing the reply I realized they might just be different
say ~()[-3]; 10:11
rakudo: say ~()[-3];
p6eval rakudo 4bf132: OUTPUT«Cannot use negative index -3 on Parcel␤ in main program body at line 1␤»
patrickas rakudo: say ~(1, 3, 4, 7 ... 20);
p6eval rakudo 4bf132: OUTPUT«Method 'count' not found for invocant of class 'Failure'␤ in <anon> at line 861:CORE.setting␤ in 'List::Bool' at line 1␤ in <anon> at line 881:CORE.setting␤ in 'Any::join' at line 1␤ in 'List::Str' at line 2815:CORE.setting␤ in main program body at line
moritz rakudo: say ~(1, 3, 4, 7 ... 20).perl; 10:12
p6eval rakudo 4bf132: OUTPUT«Method 'count' not found for invocant of class 'Failure'␤ in <anon> at line 861:CORE.setting␤ in 'List::Bool' at line 1␤ in <anon> at line 881:CORE.setting␤ in 'Any::join' at line 1␤ in 'List::perl' at line 2845:CORE.setting␤ in main program body at line
10:12 zby_home_ joined
moritz rakudo: say ~(1, 3, 4, 7 ... 20)[0] 10:12
p6eval rakudo 4bf132: OUTPUT«1␤»
moritz it's a list of an element and a failure
patrickas it is lazy ... so at this point it still doesn't know
10:12 nymacro left
moritz but that's still an instance of "calling a method on a Failure doesn't do what it should" 10:13
even if the method is called from within the iterator
patrickas I guess you are probably right... 10:14
so I will add those example to the bug after all
10:14 birdwindupbird left
moritz I kinda think we should avoid fail() in the rakudo code base until this is figured out somehow 10:14
patrickas any better suggestions ? 10:15
moritz fix Failure() :-)
patrickas oh sure I mean whad do we use until we fix failure ? 10:16
rakudo: say ('a'=>'b').Num
p6eval rakudo 4bf132: OUTPUT«Don't know how to numify a Pair␤ in 'Cool::Num' at line 1␤ in main program body at line 22:/tmp/g0wtFXekTY␤»
moritz die()
patrickas strage I though that failed in the same way
10:17 nymacro joined
moritz jnthn: is there some (maybe hacky) way to install a fallback method to a PIR class? (ie one that's called if another method can't be found) 10:17
10:18 birdwindupbird joined
patrickas rakudo: say ('a'=>'b').Numeric; #my bad ... that one does 10:18
p6eval rakudo 4bf132: ( no output )
10:18 am0c joined
moritz the difference is probably that .Num goes through a vtable 10:18
same for prefix:<~>
whereas say uses .Str, or something 10:19
patrickas yap
moritz this whole vtable business is a huge mess 10:20
we should avoid them for any Perl 6 objects
and only use them for foreign objects
but I think some very basic things like 'if' go through vtables 10:21
if $x should really desugar to if True === $x.Bool where === is a low level primitive 10:22
moritz -> lunch 10:23
patrickas too 10:24
moritz unlunch... the usual peers aren't around right now :-)
patrickas goes through with the plans ... usual peers have been notified and are on stand by :-) 10:25
10:25 M_o_C joined, patrickas left, tzhs joined 10:30 donri joined 10:43 domidumont joined 10:47 felipe joined 11:00 ajs left 11:04 am0c^ left 11:31 agentzh left 11:36 leprevost joined 11:49 tzhs left 11:53 Patterner left 11:54 Psyche^ joined, Psyche^ is now known as Patterner 11:56 dakkar joined 12:19 kostja_osipov left 12:21 kostja_osipov joined 12:22 kostja_osipov left 12:24 M_o_C left
[Coke] moritz: I would not mind being your grant manager, but apparently I am a terrible hague grant manager. 12:32
moritz [Coke]: what makes you think so? pmichaud's not-yet-started doc grant? 12:33
[Coke] ah, see, you should be his grant manager, as you are more on top of it than I am. 12:34
moritz :-) 12:37
[Coke]: I think that no grant manager could have changed pmichaud's unfortunate real life circumstances 12:38
[Coke] moritz: so, anyway, yes, feel free to suggest me as a GM. 12:46
moritz [Coke]: thanks, will tell Karen 12:47
12:49 takadonet joined
bbkr_ rakudo.org is down, "HTTP request sent, awaiting response... No data received." 12:50
moritz not again.
13:01 pmurias left 13:02 JimmyZ joined, arlinius left 13:07 hudnix joined
[Coke] I just pinged Andy. 13:11
13:11 M_o_C joined 13:24 ajs joined
sorear good * #perl6 13:25
Tene: I've never used EFL 13:26
13:26 plobsing left 13:28 jaldhar left
sorear Su-Shee: What is "seed"? 13:28
13:28 jaldhar joined
Su-Shee sorear: Gtk3 exposes via GIR which is bound into Javascript which is called "seed". It's basically the entire Gnome environment fromGtk widgets down to the network stack 13:29
sorear: amazing API, they also managed the binding really fast, I think around 1.5 years for the whole thing. 13:30
sorear Su-Shee: are you telling me gtk3's official language is javascript? is this a joke? 13:31
mberends commute &
13:31 mberends left
PerlJam sorear: doesn't sound very jokey even though this is AFD 13:32
Su-Shee sorear: no, why would it? (it's C of course, JS is just the bindings.)
sorear: this discussion is really old and they chose javascript because it's a common language for people who even consider doing GUI stuff. Excellent choice. also, there's a couple of javascript standalones to choose from and they're blazing fast. 13:33
13:34 ronoreck left 13:35 ronoreck joined 13:36 JimmyZ left 13:46 sftp joined
sorear Su-Shee: ah... I thought you were saying that niecza would need to embed a javascript interpreter to use gtk3 13:47
13:48 Holy_Cow joined 13:49 Sarten-X left 14:00 jaldhar left, Sarten-X joined 14:01 slavik1 joined
Su-Shee no :) 14:03
the key is GIR.
14:03 spq joined
PerlJam Victory! Victory for Zim! 14:05
takadonet ? 14:09
14:13 xinming joined
sorear PerlJam: that's my association too. 14:22
14:24 wtw left 14:25 demetro joined 14:27 bluescreen10 joined 14:32 Axius joined 14:33 M_o_C left 14:42 plobsing joined 14:44