Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-10-16

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 static_perl left #perl6
00:03 static_perl joined #perl6
00:06 replore joined #perl6
00:13 tokuhiro_ joined #perl6
00:15 sorear this Aborted thing is quite frustrating :|
00:16 * sorear misses being able to chase references through the kernel and C library source code
00:18 dalek rakudo/nom: 300627d | Coke++ | t/spectest.data:
00:18 dalek rakudo/nom: track failure modes.
00:18 dalek rakudo/nom:
00:18 dalek rakudo/nom: (mostly slightly reworded due to optimization branch.)
00:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/300627d296
00:30 tokuhir__ joined #perl6
00:31 uasi joined #perl6
00:36 Entonian joined #perl6
00:46 mkramer joined #perl6
00:51 plobsing joined #perl6
01:00 wolfman2000 joined #perl6
01:12 packetknife joined #perl6
01:18 * TimToady hopes it's not as frustrating as having an Ubuntu upgrade brick one's main home server
01:19 diakopter it bricked it already?
01:20 diakopter oh, the Aborted thing
01:20 * diakopter feels sad for wasting sorear's day with tracking down a Windows problem
02:03 sorear diakopter: I am learning a lot of useful things; if the chase weren't a bit fun I'd have abandoned it hours ago
02:03 * sorear back from dinner
02:04 sorear incidentally I have solved half the problem; my tiny C test program can now invoke p5embed.so without segfaulting
02:15 overrosy joined #perl6
03:24 tokuhiro_ joined #perl6
04:01 dalek niecza/serialize: 6dd5b76 | sorear++ | lib/ (2 files):
04:01 dalek niecza/serialize: Save delegates for kernel-defined subs
04:01 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/6dd5b76332
04:03 dalek niecza: d468f8f | sorear++ | lib/p5embed.c:
04:03 dalek niecza: Pass non-null argc,argv to PERL_SYS_INIT
04:03 dalek niecza:
04:03 dalek niecza: Fixes a segfault on Win32, but not the "Aborted" issue...
04:03 dalek niecza: review: https://github.com/sorear/niecza/commit/d468f8f349
04:27 dalek niecza/serialize: 8035d26 | sorear++ | lib/ (3 files):
04:27 dalek niecza/serialize: Thaw code for VarDeque, VarHash, BigInteger, Complex, Rat, FatRat
04:27 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/8035d26ceb
04:55 dalek rakudo/nom: 05d6117 | moritz++ | docs/ChangeLog:
04:55 dalek rakudo/nom: update ChangeLog
04:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/05d6117e00
04:55 bluescreen10 joined #perl6
04:56 moritz good morning
04:56 phenny moritz: 15 Oct 16:04Z <jnthn> ask moritz should nom have + or +- on "Variable interpolation" (regex) in features?
04:56 phenny moritz: 15 Oct 16:04Z <jnthn> tell moritz did +-
04:57 sorear good mroning moritz
04:59 dalek rakudo/nom: ea25f3e | moritz++ | src/core/List.pm:
04:59 dalek rakudo/nom: tweak error message
04:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ea25f3effd
05:01 araujo http://pastie.org/2704022
05:02 * araujo playing a bit with his toy language
05:07 moritz nom: my @a := 1; say "alive"
05:07 p6eval nom 300627: OUTPUT«alive␤»
05:07 sorear dubious
05:08 sayu joined #perl6
05:08 sorear on some, but not all, occasions when I've confronted jnthn about this, he's said := is low level and not supposed to do any type checking
05:09 sorear niecza: my Str $x := 4; say "alive"
05:09 p6eval niecza v10-49-gd468f8f: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/D6rbas_27A line 1:â�¤------> [32mmy Str [33mâ��[31m$x := 4; say "alive"[0mâ�¤â�¤â�¤Unhandled Exception: Nominal type check failed in nonparameter binding; got Int, needed Strâ�¤  at /tmp/D6rbas_27A line…
05:09 sorear oops
05:10 moritz rakudo:  say $a;  my $a = 5;
05:10 p6eval rakudo 300627: OUTPUT«Any()␤»
05:10 moritz this is even more dubious :-)
05:11 sorear longstanding behavior though
05:11 sorear b: say $a; my $a = 5
05:11 moritz yes, both are
05:11 p6eval b 1b7dd1: OUTPUT«Any()␤»
05:11 orafu joined #perl6
05:11 * moritz is going through the old part of the RT queue
05:13 dalek roast: 575ea0a | moritz++ | S0 (2 files):
05:13 dalek roast: RT #61844, (0,1)[*-1..*]
05:13 dalek roast: review: https://github.com/perl6/roast/commit/575ea0abf4
05:14 dalek niecza/serialize: be108f9 | sorear++ | lib/ (3 files):
05:14 dalek niecza/serialize: Thaw routines for P6opaque, DispatchEnt, double, int, Type, string, bool, arrays
05:14 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/be108f90f4
05:26 dalek roast: 77e0ced | moritz++ | S12-construction/BUILD.t:
05:26 dalek roast: remove non-spec test
05:26 dalek roast: review: https://github.com/perl6/roast/commit/77e0ced401
05:35 dalek roast: ddc1d53 | moritz++ | S14-roles/parameterized-type.t:
05:35 dalek roast: RT #68136, parameterized role doing non-parameterized role
05:35 dalek roast: review: https://github.com/perl6/roast/commit/ddc1d53f6b
06:07 Trashlord joined #perl6
06:22 reisio joined #perl6
06:30 kaare_ joined #perl6
06:51 lateau_1 joined #perl6
07:00 dalek niecza/serialize: 2ff6525 | sorear++ | lib/ (2 files):
07:00 dalek niecza/serialize: Thaw routines for types
07:00 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/2ff65252bf
07:01 * diakopter wonders what IFixup is
07:01 moritz the new handheld GC by Apple?
07:01 diakopter <giggle>
07:24 dual joined #perl6
07:33 mj41 joined #perl6
07:35 replore_ joined #perl6
07:55 moritz phenny: tell jnthn 39s on the mandelbrot benchmark now, 28s when adding type annotations. \o/
07:55 phenny moritz: I'll pass that on when jnthn is around.
07:56 sorear D:
07:56 * sorear -> sleep
08:02 Vlavv_ joined #perl6
08:05 tadzik how fast is it on niecza?
08:09 moritz 8.6s
08:09 moritz nom: say 39/8.6
08:09 p6eval nom ea25f3: OUTPUT«4.53488372093023␤»
08:28 GlitchMr joined #perl6
08:34 GlitchMr42 joined #perl6
08:39 molaf joined #perl6
08:44 araujo joined #perl6
08:44 araujo joined #perl6
08:44 cognominal joined #perl6
09:02 kaare_ joined #perl6
09:06 uniejo joined #perl6
09:07 GlitchMr joined #perl6
09:09 am0c joined #perl6
09:21 pmurias joined #perl6
09:32 masak mogornink, #perl6
09:35 cognominal bergium perl workshop was nice. Will now do some tourism in Brussels.
09:38 reisio maybe write belgiangovernment.pl ?
09:45 GlitchMr42 joined #perl6
09:49 masak ...ouch...
09:50 reisio Perl triumphs where Belgian politicians do not? :p
09:51 GlitchMr_42 joined #perl6
09:54 jnthn moritz: ooh, nice
09:54 phenny jnthn: 07:55Z <moritz> tell jnthn 39s on the mandelbrot benchmark now, 28s when adding type annotations. \o/
09:55 jnthn moritz: Was that with --optimize=3, or just the default?
09:55 moritz jnthn: default
09:56 jnthn OK.
09:56 jnthn :)
10:00 dark_x joined #perl6
10:00 dark_x_ joined #perl6
10:01 dalek rakudo/nom: aa1ea2a | moritz++ | src/core/Complex.pm:
10:01 dalek rakudo/nom: prefix:<abs>(Complex)
10:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aa1ea2a97d
10:01 dalek rakudo/nom: 25af2d0 | moritz++ | src/core/Complex.pm:
10:01 dalek rakudo/nom: add return type annotations to Complex ops
10:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25af2d076a
10:02 MayDaniel joined #perl6
10:15 pmurias anyone with a current understanding how structures are now flattened etc. wants to update roast/S01-perl-5-integration/basic.t so that I can implement that test? ;)
10:16 moritz well, first we'd have to decide in which context to call perl 5 functions
10:17 moritz some of these tests are... urks.
10:18 pmurias re context i lean towards scalar
10:18 moritz why?
10:18 pmurias mostly because it's a tiny bit easier to implement ;)
10:19 pmurias and things seems to return a compact object rather then a flattened list then
10:19 moritz do they?
10:20 moritz everything that returns an array in p5 automatically only returns its number of elements in scalar context
10:20 moritz which is why I'd lean towards list context
10:20 dark_x joined #perl6
10:21 pmurias moritz: that seems to be an important point
10:21 felher masak++ for blogpost about macros :D
10:22 * felher goes on with reading jnthn blogpost about optimizer
10:22 masak \o/
10:22 pmurias moritz: and how do we represent a array of returned values in Perl 6 land?
10:22 masak felher: oh, so it was understandable? I wasn't sure... :)
10:23 pmurias moritz: i plan to make all the function/method calls on p5 objects accept a :context<list> and :context<scalar> argument
10:28 felher masak: it was completely comprehensible :)
10:29 masak nice to know.
10:29 masak I'll up the difficulty next time :)
10:29 moritz pmurias: then please also add a :context<void> :-)
10:29 masak there definitely are places where $brain.turn-into-pretzel with macros.
10:30 masak right now, I'm having trouble with the compile/runtime boundary, for example.
10:31 masak it would seem that D4 not only is essential for the grant work, but that little fractal pieces of it appear in all of the prior steps... :/
10:33 masak on the plus side, I got to learn a lot of wonderful things about the state of the art of parsing Perl 6 over curry last night. :D
10:33 masak jnthn++
10:34 masak tl;dr: parsing is not a "pure" activity of just reading the source code and building a tree. nooo!
10:35 pmurias moritz: good idea
10:35 felher masak: keep your mind sharp with masak's macro brain teasers :)
10:35 masak it's that plus talking to an entity we increasingly like to call World, which keeps track of names and other stuff.
10:35 masak World is more than just a symbol table.
10:36 masak it's... the sum total of our knowledge of the environment that the program is building.
10:37 masak this becomes very important if we're to erase the compile/runtime boundary as much as we want.
10:37 masak I haven't looked, but I'm guessing sorear is building something very similar in his branch as well.
10:39 felher masak: Whats the compiletime/runtime boundary? The problem of getting objects/information from compiletime to runtime or vice versa?
10:39 pmurias felher: yes, with the compiletime having to store everything to disk
10:40 masak felher: in most languages, there's a hard wall between compile-time and runtime.
10:40 masak felher: in Perl 6, we basically say they're very similar, and information can flow from compile time to run time.
10:40 masak felher: even though compile time might happen years before and on the other side of the world.
10:42 masak felher: the solution to bridging that gap and making things survive until runtime is called "serialization" -- that is, preserving information about objects so that they can be recreated on the other side of the boundary.
10:42 masak much of the startup cost in Rakudo so far has been that we "cheat" in this regard, and recreate objects "manually", which is slow.
10:44 masak nom: my $c; my $name; BEGIN { $c = { say "OH HAI $name" } }; $name = "masak"; $c()
10:44 p6eval nom ea25f3: OUTPUT«Use of uninitialized value in string context␤OH HAI ␤»
10:46 felher Ah, i see. Thnx :)
10:46 masak I'd expect the above to say "OH HAI masak".
10:46 masak are my expectations too high? :)
10:47 pmurias moritz: what's the policy on using stuff such as heredocs in tests?
10:50 jnthn masak: Seems reasonableish... :)
10:50 * masak submits rakudobug
10:52 moritz pmurias: the policy is to avoid use of advanced, unrelated features
10:52 moritz pmurias: ie you use heredocs when you test heredocs, otherwise you avoid them
10:53 pmurias moritz: '' seems to be enough
10:54 moritz q[...] or q<...> or so would be fine too
10:54 dalek roast: cab8084 | (Paweł Murias)++ | S01-perl-5-integration/context.t:
10:54 dalek roast: add test for :context<void> when calling p5 functions
10:54 dalek roast: review: https://github.com/perl6/roast/commit/cab80841e6
10:55 pmurias moritz: ^^ is that ok?
10:56 colomon niecza: my $c; my $name; BEGIN { $c = { say "OH HAI $name" } }; $name = "member:masak"; $c()
10:57 p6eval niecza v10-49-gd468f8f: OUTPUT«OH HAI member:masak␤»
10:59 moritz pmurias: I kinda expected the :context flag to be on the eval(), not passed into the sub. But I guess this way is fine too
11:00 masak phenny: "Hviezdoslavovo"?
11:00 phenny masak: "Hviezdoslavovo" (sk to en, translate.google.com)
11:00 masak thanks for nuttin'. :/
11:00 jnthn masak: It's the name of a square.
11:00 masak oh!
11:00 moritz pmurias: I can't really answer design questions about the interop, from a pure test perspective it looks fine.
11:00 jnthn masak: Named after a nickname for a poet :)
11:00 * masak is scared to consider his actual name
11:01 jnthn Hviezdo => star, slav => word, ovo => adjectivization :)
11:01 jnthn Or something like that :)
11:02 * masak is more of a Hviezdorakudo guy :)
11:02 masak also, in my language group, "ovo" clearly means "egg".
11:03 masak s/my/my favourite/
11:04 pmurias moritz: does it seem sane enough for initial implementation?
11:04 moritz pmurias: yes
11:05 jnthn masak: oh noes, a bunch of the neuter adjectives are going to make you think of eggs :P
11:06 masak jnthn: that's fine, I think about eggs a lot anyway. :P
11:07 * masak .oO( mmm... eggs... )
11:07 jimmy1980 joined #perl6
11:08 replore_ joined #perl6
11:13 pmurias hmm, what is the return value of a perl5 sub called in a void context?
11:16 moritz Nil
11:20 dalek niecza: bf0cd86 | (Paweł Murias)++ | lib/ (2 files):
11:20 dalek niecza: implement S01-perl-5-integration/context.t
11:20 dalek niecza: review: https://github.com/sorear/niecza/commit/bf0cd86508
11:21 pmurias 3 more passing spec tests for niecza ;)
11:30 felher jnthn++ for blog post (and great work on optimizer, of course)
11:32 dalek roast: 6976eea | (Paweł Murias)++ | S01-perl-5-integration/context.t:
11:32 dalek roast: add space in test description
11:32 dalek roast: review: https://github.com/perl6/roast/commit/6976eea1b1
11:32 dalek roast: 73302b8 | (Paweł Murias)++ | S01-perl-5-integration/context.t:
11:32 dalek roast: add tests for :context<list> and :context<scalar>
11:32 dalek roast: review: https://github.com/perl6/roast/commit/73302b8dcb
11:32 pmurias moritz: how should i test for Nil?
11:37 Psyche^ joined #perl6
11:42 [Coke] joined #perl6
11:45 dark_x joined #perl6
11:46 moritz nom: say Nil ~~ Nil
11:46 p6eval nom 25af2d: OUTPUT«Bool::True␤»
11:46 moritz nom: say () ~~ Nil
11:46 p6eval nom 25af2d: OUTPUT«Bool::False␤»
11:47 moritz nom: say Any ~~ Nil
11:47 p6eval nom 25af2d: OUTPUT«Bool::False␤»
11:47 moritz looks like a pretty good test
11:48 im2ee joined #perl6
11:48 im2ee Hello! p/
11:52 pmurias niecza: say Any ~~ Nil
11:52 p6eval niecza v10-50-gbf0cd86: OUTPUT«Bool::False␤»
11:53 pmurias niecza: say Nil ~~ Nil
11:53 p6eval niecza v10-50-gbf0cd86: OUTPUT«Bool::True␤»
11:54 dalek roast: a97d866 | (Paweł Murias)++ | S01-perl-5-integration/context.t:
11:54 dalek roast: test that p5 subs in void context return Nil
11:54 dalek roast: review: https://github.com/perl6/roast/commit/a97d866284
12:03 masak im2ee! \o/
12:06 GlitchMr joined #perl6
12:07 fhelmberger joined #perl6
12:07 bbkr joined #perl6
12:08 [Coke] joined #perl6
12:08 fhelmberger_ joined #perl6
12:11 wk_ joined #perl6
12:12 fhelmberger joined #perl6
12:13 GlitchMr42 joined #perl6
12:17 bbkr I ran into weird problem with NOM. I have two files: A.pm containing "class A { use B; }" and B.pm containing "class B { has A $a }". When I run "use A" it says that "in has declaration typename A must be predeclared". Why class B cannot use class A as type, if class A loaded class B and it should be recognized in class B scope? This was working in ng branch.
12:20 jnthn Because B.pm doesn't "use A"
12:21 jnthn ng didn't do separate compilation properly
12:21 jnthn nom does, which means that you really can only see things a module imported
12:23 colomon .... a module exported?
12:24 jnthn er, that too but not what I meant :)
12:24 jnthn I meant that you need a "use" statement in a module to bring in any symbols from other modules that you wish to use
12:24 jnthn You can't rely on them just being there because of a use statement that took place elsewhere
12:25 bbkr how can I avoid recursion depth exceeded in circular loading now? Let's say: http://A.pm/ contains "use B; class A { has B $.b}", and http://B.pm/ contains "use A; class B { has A $a }"
12:28 Woodi about CPS... http://nondot.org/sabre/LLVMNotes​/ExplicitlyManagedStackFrames.txt - for what CPS can be usefull in Perl6 ?
12:29 moritz for implementing gather/take
12:30 bbkr nom: class A { use A; } # ooops ;)
12:30 p6eval nom 25af2d: OUTPUT«===SORRY!===␤Could not find A in any of: lib, /home/p6eval/.perl6/lib, /home/p6eval/nom-inst1/lib/parrot​/3.8.0-devel/languages/perl6/lib, .␤»
12:31 bbkr hmm, it gives maximum recursion depth exceeded in 2011.09
12:32 moritz nom: ~Str
12:32 p6eval nom 25af2d: OUTPUT«Use of uninitialized value in string context␤»
12:33 bbkr nom: class A { use B; }; class B { use A; }'
12:33 p6eval nom 25af2d: OUTPUT«===SORRY!===␤Could not find B in any of: lib, /home/p6eval/.perl6/lib, /home/p6eval/nom-inst1/lib/parrot​/3.8.0-devel/languages/perl6/lib, .␤»
12:37 jnthn use operates on files
12:38 jnthn Within a file, use predeclaration
12:38 jnthn You can't recursively use as it doesn't make sense. We should really catch it and tell you that, rather than infinite recursion, though.
12:38 jimmy1980 joined #perl6
12:47 bbkr i'm building HEAD version now to test how it behaves. such looped typing makes perfect sense in tree structures: "class Parent { use Child; method child { Child.new{parent => self}} }" and "class Child { use Parent; has Parent $.p; submethod BUILD { Parent $p} }"…
12:48 masak bbkr: indeed.
12:48 moritz I think you're supposed to break the circularity with 'needs ClassName'
12:48 masak bbkr: I wrote about this to p6l about a year or so ago.
12:49 masak 'class Child { ... }' works fine, too.
12:49 masak bbkr: http://www.mail-archive.com/pe​rl6-all@perl.org/msg87470.html
12:50 bbkr nom: needs A; # this segfaults on 2011.09
12:50 p6eval nom 25af2d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&A' called (line 1)␤Undefined routine '&needs' called (line 1)␤»
12:50 bbkr oh, improvement
12:51 jnthn need
12:51 moritz nom: need A; say A.new
12:51 p6eval nom 25af2d: OUTPUT«===SORRY!===␤Could not find A in any of: lib, /home/p6eval/.perl6/lib, /home/p6eval/nom-inst1/lib/parrot​/3.8.0-devel/languages/perl6/lib, .␤»
12:52 masak nom: class A { ... }; class B { has A $.a }; class A { has B $.b } # psst, bbkr
12:52 p6eval nom 25af2d:  ( no output )
12:52 masak nom: class A { ... }; class B { has A $.a }; class A { has B $.b }; say "alive"
12:52 p6eval nom 25af2d: OUTPUT«alive␤»
12:53 bbkr boilerplate :)
12:54 bbkr thanks guys for your help. i can solve my problem now.
12:54 jnthn Well, that's a flip side of one-pass parsing.
12:55 masak bbkr: TimToady's reply to my email is illuminating and appropriately reproving: http://www.mail-archive.com/pe​rl6-all@perl.org/msg87478.html
12:55 moritz I wonder if calling subs from namespaces is sufficiently common in Perl 6 to warrant A::B being parsed as A::&B
12:55 masak jnthn: yeah. for some reason I'm not as bothered by it anymore.
12:56 moritz maybe it should default to a type name now, which is automatically stubbed when it's not know yet
12:56 moritz and you'd need explicit parens or pre-declaration to have it parsed as a sub call
12:57 masak feels a bit inconsistent with the 'foo' case.
12:58 moritz I know :/
12:59 masak wow, reading TimToady's message again.
13:00 masak somehow, it's only when he *defends* design decisions that I truly recognize how much thought has gone into them, and how we really are avoiding some of the traps Perl 5 has fallen into.
13:10 jnthn Train to Stockholm &
13:11 masak am I right in assuming that 'q:code' doesn't exist any more (if it ever did)? http://en.wikipedia.org/wiki/Perl_6#Macros
13:11 moritz I think so
13:13 * masak edits
13:17 Chillance joined #perl6
13:21 sftp joined #perl6
13:23 GlitchMr_42 joined #perl6
13:24 sftp joined #perl6
13:33 localhost joined #perl6
13:36 masak perl6: say rand xx 3
13:37 p6eval rakudo 25af2d: OUTPUT«0.8685990956883 0.8685990956883 0.8685990956883␤»
13:37 p6eval ..niecza v10-50-gbf0cd86: OUTPUT«0.911904731258706 0.911904731258706 0.911904731258706␤»
13:37 p6eval ..pugs c943eeb: OUTPUT«*** No such subroutine: "&xx"␤    at /tmp/6ICurOe3L7 line 1, column 5 - line 2, column 1␤»
13:37 * masak submits rakudobug
13:37 * masak submits nieczabug
13:38 masak I would submit a pugsbug, but we're not quite there again yet ;)
13:41 wamba joined #perl6
13:46 uasi joined #perl6
13:51 moritz we should introduce the old pugsbug rule for rakudo (that you submit a bug report by committing a TODOed test)
13:56 masak begging your pardon, I don't like that idea.
13:56 masak I prefer the two tasks being separated.
13:57 masak (I'm also a-priori against the idea of having to provide an initial implementation for each test committed.) ;)
13:59 * moritz wasn't quite serious
13:59 masak oh. I was unable to tell.
14:01 sjn ENOSMILEYFOUNDINJOKETOLDONTEHINTERNETS
14:02 masak masak's first rule of repeated community volunteer contribution: "Task needs be well-defined, atomic, and result in instant gratification on completion."
14:03 pmurias masak: why are you against having to provide a test with a bug? hard to exactly pin down bugs?
14:03 masak pmurias: see first rule above :)
14:03 masak pmurias: it breaks the "atomic" prat.
14:03 masak er, part*
14:04 pmurias masak: doesn't the lack of a test break the "well-defined" part ;)
14:04 masak it's the *task* that should be well-defined. and no, it doesn't.
14:05 moritz nom: my Int:D $x; say $x
14:05 p6eval nom 25af2d: OUTPUT«Int()␤»
14:05 moritz nom: my Int:D $x; $x = Int; say $x
14:05 masak a well-defined ticket can mostly be turned into a well-defined test with another turn of the crank.
14:05 p6eval nom 25af2d: OUTPUT«Int()␤»
14:05 masak and if it can't, we need to sharpen our definition of "well-defined ticket". but I don't think we do.
14:06 moritz masak: wanna submit rakudobug? :-)
14:06 * masak submits rakudobug
14:06 masak whee! \o/
14:12 lumi_ What does :D mean?
14:13 moritz defined
14:13 am0c joined #perl6
14:13 lumi_ What's the correct behaviour, then?
14:13 masak assignment error.
14:14 dark_x joined #perl6
14:14 frettled If the int is smiling, then it's okay.
14:14 lumi_ OIC, masak++ :)
14:14 lumi_ Happy Int
14:14 grondilu joined #perl6
14:14 frettled But is :C undefined?
14:15 * frettled goes meta.
14:15 moritz nom: say :C.perl
14:15 p6eval nom 25af2d: OUTPUT«"C" => True␤»
14:15 grondilu Trying to install panda, I get a ===SORRY!=== ~protoregexes not yet implemented at line 10, near ";\ntoken va"
14:15 benabik What is `my Int:D $x` supposed to be?
14:15 moritz grondilu: panda doesn't work on nom yet :(
14:15 masak :(
14:15 grondilu ok, I'll wait
14:16 masak we got hit by the bus on regex-related stuff.
14:16 moritz it depends on JSON::Tiny, which in turn depends on proto regexes
14:16 moritz which in turn depend on pmichaud++ getting tuits
14:16 masak nom: my int $x; say $x
14:16 p6eval nom 25af2d: OUTPUT«57836072␤»
14:16 masak ahahahah.
14:16 * masak submits rakudobug
14:17 jimmy1980 joined #perl6
14:18 satyavvd joined #perl6
14:19 grondilu Is there a place where I could download some Perl6 doc (blog entries, articles...) for off-line read?
14:20 masak nom: say my int $x; say my int $y; say my int $z
14:20 p6eval nom 25af2d: OUTPUT«64300656␤47128896␤57310040␤»
14:20 masak grondilu: http://perl6.org/documentation/
14:21 benabik masak: Are they supposed to be initialized?  C doesn't for speed, I know.
14:21 masak grondilu: let me particularly recommend http://perlgeek.de/en/article/5-to-6 , http://rosettacode.org/wiki/Category:Perl_6 , and http://strangelyconsistent.org/b​log/june-1-2011-input-and-output
14:21 masak benabik: I'll check, but yes, they are :)
14:21 GlitchMr42 joined #perl6
14:22 masak S02:639: Variables of non-native types start out containing an undefined value
14:22 masak unless explicitly initialized to a defined value.
14:23 masak oops, I'm wrong! mooting ticket.
14:23 masak benabik++
14:25 moritz grondilu: you can download a PDF from the "Using Perl 6" book
14:26 masak but it's less completed than books are generally.
14:27 grondilu the 'Using Perl 6' is nice but quite short.  I red it already.
14:27 grondilu I'll try to write a wget command to download the articles on perl6.cz/wiki
14:29 [Coke] nom: say 715-84
14:29 p6eval nom 25af2d: OUTPUT«631␤»
14:29 pmurias masak: don't variables of native types start out containing 0?
14:30 masak apparently not.
14:30 pmurias masak: any mention of that in the spec?
14:30 [Coke] rakudo: say (1,2,3)».&( * + 42 )
14:30 p6eval rakudo 25af2d: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "&( * + 42 "␤»
14:30 masak if some other part of the spec contradicts, S02:639, I'd be interested in hearing about it.
14:31 masak pmurias: S02:639.
14:31 benabik masak: That said "non-native types".
14:31 masak oh! :/
14:31 * masak can't read
14:31 * masak keeps looking through the spec
14:32 benabik S02:1212
14:32 masak yes. :)
14:32 masak just found it.
14:32 benabik masak: ^^  floats default to NaN, int to 0
14:32 * masak reopens ticket
14:32 tokuhiro_ joined #perl6
14:33 benabik I was just remembering C where so many people think "oh it's 0", when the answer is  really "it's garbage".
14:35 [Coke] rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; foo(:a, :b)
14:35 p6eval rakudo 25af2d: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Any $a, Associative %_)␤:(Any $b, Associative %_)␤␤  in block <anon> at /tmp/6V7yVjBiLw:1␤  in <anon> at /tmp/6V7yVjBiLw:1␤»
14:37 [Coke] rakudo: my @a = 1; say @a.WHAT
14:37 p6eval rakudo 25af2d: OUTPUT«Array()␤»
14:37 [Coke] rakudo: my @a = 1; say @a.WHAT; say @a.perl;
14:37 p6eval rakudo 25af2d: OUTPUT«Array()␤Array.new(1)␤»
14:37 [Coke] rakudo: my @a := 1; say @a.WHAT; say @a.perl;
14:37 p6eval rakudo 25af2d: OUTPUT«Int()␤1␤»
14:38 [Coke] Does any implementation support "NEXT" yet?
14:39 masak perl6: for 1, 2, 3 { NEXT {} }
14:39 p6eval pugs c943eeb:  ( no output )
14:39 p6eval ..niecza v10-50-gbf0cd86: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Action method statement_prefix:NEXT not yet implemented at /tmp/TwmZDwoQa1 line 1:â�¤------> [32mfor 1, 2, 3 { NEXT {}[33mâ��[31m }[0mâ�¤â�¤â�¤Unhandled Exception: Unable to resolve method statement_level in class Strâ�¤  at /home/p…
14:39 p6eval ..rakudo 25af2d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&NEXT' called (line 1)␤»
14:40 masak nope.
14:40 masak well, maybe Pugs :)
14:40 masak pugs: for 1, 2, 3 { NEXT { say "!" }; .say }
14:40 p6eval pugs c943eeb: OUTPUT«1␤!␤2␤!␤3␤!␤»
14:40 masak Pugs++!
14:41 [Coke] and is this legal: for @arr {} while $condition ?
14:42 [Coke] rakudo: my @a=1,2,3; for @a { .say } while $_ < 3
14:42 p6eval rakudo 25af2d: OUTPUT«===SORRY!===␤Missing block at line 1, near ""␤»
14:42 [Coke] (there's a very old ticket I'm trying to triage)
14:42 [Coke] rakudo: for 1, 2, 3 { NEXT { say "!" }; .say }
14:42 p6eval rakudo 25af2d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&NEXT' called (line 1)␤»
14:44 am0c joined #perl6
14:44 MayDaniel joined #perl6
14:44 masak std: my @arr; for @aa {} while True
14:45 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable @aa is not predeclared at /tmp/hrb6ct6dp6 line 1:�------> [32mmy @arr; for [33m�[31m@aa {} while True[0m�Strange text after block (missing comma, semicolon, comment marker?) at /tmp/hrb6ct6dp6 line 1:�------> [32mmy @arr; …
14:45 masak std: my @arr; for @arr {} while True
14:45 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/6_ymfzfwrd line 1:â�¤------> [32mmy @arr; for @arr {}[33mâ��[31m while True[0mâ�¤    expecting horizontal whitespaceâ�¤Parse failedâ�¤FAILED 00:01 121mâ�¤Â»â€¦
14:45 masak [Coke]: no, it's not legal.
14:49 GlitchMr_42 joined #perl6
14:49 [Coke] masak++
14:49 [Coke] rakudo: sub { "hello" #`(test) }.()
14:49 p6eval rakudo 25af2d: OUTPUT«===SORRY!===␤Confused at line 1, near "sub { \"hel"␤»
14:50 [Coke] rakudo: (sub { say "hello" #`(hello) }).()
14:50 p6eval rakudo 25af2d: OUTPUT«hello␤»
14:51 [Coke] rakudo: my %h = a => '42'; given %h { when :(Int :$a) { say "lol int" }when :(Str :$a) { say "lol string" } }
14:51 p6eval rakudo 25af2d: OUTPUT«No applicable candidates found to dispatch to for 'ACCEPTS'. Available candidates are:␤:(Mu, Mu $topic, Mu %_)␤␤  in method ACCEPTS at src/gen/CORE.setting:482␤  in sub infix:<~~> at src/gen/CORE.setting:759␤  in block <anon> at /tmp/Md_hLfFFlm:1␤  in block <anon> …
14:52 [Coke] rakudo: die
14:52 p6eval rakudo 25af2d: OUTPUT«␤  in block <anon> at /tmp/goE0GS1Zpn:1␤  in <anon> at /tmp/goE0GS1Zpn:1␤»
14:52 [Coke] rakudo: fail
14:52 p6eval rakudo 25af2d:  ( no output )
14:52 [Coke] rakudo: exit
14:52 p6eval rakudo 25af2d:  ( no output )
14:53 [Coke] rakudo: ..
14:53 p6eval rakudo 25af2d: OUTPUT«===SORRY!===␤Confused at line 1, near ".."␤»
14:53 [Coke] rakudo: ...
14:53 p6eval rakudo 25af2d:  ( no output )
14:53 [Coke] rakudo: try { die "foo" }; try { die; CATCH { say $!} }
14:53 p6eval rakudo 25af2d: OUTPUT«foo␤»
14:54 bluescreen10 joined #perl6
15:02 * colomon is trying to figure out why the thunking change was made to infix:<xx> ....
15:03 mj41 joined #perl6
15:12 moritz colomon: so that [^$x] xx $x makes a proper 2D array, not a list of references to the same array all over
15:13 colomon Should that really be a sensible way to build a 2D array?
15:14 Trashlord joined #perl6
15:18 MayDaniel joined #perl6
15:19 johnjohn101 joined #perl6
15:19 johnjohn101 hello
15:27 moritz colomon: not sure, but the behavior was sufficiently surprising for some folks to warrant the change
15:28 moritz hello johnjohn101
15:28 johnjohn101 i was curious if i load the perl 6 rakudo, will the threading work well or will I need to wait a few more month?
15:29 johnjohn101 i'm ready to start seeing what's available.. I need odbc as well
15:30 colomon moritz: huh.  I find I don't think [1 2 3 4] xx 4 should generate a 2D array, but I kind of think Array.new xx 4 should, and it's the exact same thing in principle.
15:30 moritz johnjohn101: no threading in rakudo yet :(
15:31 moritz colomon: Array.new xx 4 would, by the old spec, also return the same array four times
15:31 moritz so if you assing to @a[0][0], it will also show up in @a[1][0] etc.
15:31 colomon moritz: yes, that's what I was trying to say
15:32 johnjohn101 moritz. does odbc work yet?
15:32 colomon johnjohn101: rakudo has no threading yet.  niecza perl 6, the separate installation on mono, apparently has some threading working now.
15:32 colomon johnjohn101: http://perl6.org/compilers/features
15:32 johnjohn101 thanks
15:33 johnjohn101 i will probably wait until turn of the year to get started.. haven't followed to much
15:33 johnjohn101 lately
15:33 moritz johnjohn101: I don't think so (odbc)
15:34 johnjohn101 looks like there has been a lot of progress since the last time I looked at the project
15:35 moritz there has been indeed
15:35 moritz but interacting with the software world around it is one of rakudo's weaknesses :(
15:36 moritz I've added some binary IO, but calling C functions and IPC is mostly non-existant :(
15:47 GlitchMr42 joined #perl6
15:56 drbean_ joined #perl6
15:57 johnjohn101 it will get there in time...
15:58 whiteknight joined #perl6
16:00 moritz no, it won't get there in time, people will implement it in time
16:01 moritz things like that don't work all on their own
16:04 johnjohn101 yeah i know it takes people and money..
16:10 masak that's one of the backsides of having a "when will Perl 6 be released" outlook. it delays things.
16:11 masak we live in an imperfect now, where some things are possible and some aren't. we should focus on the things we can do with what we have today ;)
16:13 lateau_ left #perl6
16:16 drbean joined #perl6
16:23 bbkr masak: i've read one-pass parsing threads you linked me today. very interesting, thanks.
16:27 masak you're welcome, bbkr. I think it's interesting, too.
16:36 GlitchMr joined #perl6
16:38 masak sub any_eq { my $lhs = shift; for (@_) { return 1 if $lhs eq $_ }; return } # a Perl 5 way to do emulate C<$str eq any(@strs)>
16:40 flussence .oO( I'd just write any { $_ eq $str } @strs )
16:42 masak that's from List::MoreUtils, yes?
16:42 flussence or List::Util, I can never remember which is which
16:43 orafu joined #perl6
16:43 sorear good * #perl6
16:43 masak flussence: nope, it's in ::MoreUtils
16:43 masak sorear: *
16:47 replore joined #perl6
16:48 diakopter o/
16:51 sorear diakopter: sometimes for speed niecza objects hold data that is canonically stored in other objects
16:52 sorear like SubInfo.code is copied to Frame.code to save a memory reference in the trampoline
16:52 sorear however, you can have a circular reference between SubInfo and Frame (e.g. protopads)
16:53 sorear which means that, when thawing a Frame, n.info = (SubInfo) tb.ObjRef(); cannot guarantee to return a fully-thawed SubInfo
16:53 masak people talk so warmly about DRY, but not as often about the merits of duplicating information.
16:53 sorear so the copying has to be done later, after everything is loaded
16:53 sorear that's what IFixup is for.
16:53 diakopter ah
16:54 * sorear mumbles https://secure.wikimedia.org/wi​kipedia/en/wiki/Denormalization
16:55 masak right.
16:55 masak but compare the length of that article against the one for Normalization ;)
16:58 pmurias sorear: hi
16:59 pmurias \
16:59 * moritz mumbles something about comparing airplanes by weight
17:02 moritz the denormalization article fails to mention that indexes themselves are a form of denormalization
17:06 orafu joined #perl6
17:14 sorear in my mind it's more important that each piece of data have one _canonical_ location
17:15 masak yes, that's a nice summary.
17:15 donri joined #perl6
17:21 masak another important insight is that normalization and denormalization are only mutually exclusive *in the same model*.
17:25 pmurias sorear: it would be nice if niecza stack traces didn't include stuff past YOU_ARE_HERE
17:26 sorear masak: mutually exclusive?  I normalize to the limits of possibility, then denormalize wherever it seems useful
17:27 sorear pmurias: yes
17:29 pmurias hiding the xunit name would be nice to
17:29 pmurias *too
17:34 masak sorear: there may be a way to make what I mean slightly clearer. normalization/denormalization are different directions on the same scale. but that's only a problem if one figures on only has one model.
17:36 MayDaniel joined #perl6
17:38 pmurias sorear: what i would like to have is a way to hook in a custom backtrace printer
17:38 zby_home_ joined #perl6
17:39 pmurias sorear: so we can have both a niecza developer one with xrefs
17:39 pmurias and a fancy one with colors
17:47 shinobicl_ joined #perl6
17:50 soh_cah_toa joined #perl6
17:59 moritz install an inner setting with a CATCH, and go wild on .backtrace
18:07 preflex_ joined #perl6
18:15 mj41 joined #perl6
18:25 dalek sprixel: 8ea1d05 | diakopter++ | src/ (4 files):
18:25 dalek sprixel: shortcircuiting OR for real this time
18:25 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/8ea1d051a8
18:26 masak ooh, sprixel!
18:26 diakopter yes; I reused the name
18:26 diakopter (again)
18:26 masak so what is it now?
18:26 diakopter a C interpreter
18:27 masak \o/
18:28 masak ooc, why interepreter and not compiler?
18:29 diakopter the design is such that JIT to bytecode or JIT to machine code (haha) is pluggable eventually
18:29 diakopter I hope.
18:29 diakopter but frankly:
18:30 pmurias diakopter: why C?
18:30 diakopter pmurias: so I can learn it
18:30 * masak also wants to learn C better
18:30 pmurias good reason
18:32 pmurias moritz: re installing an inner setting is there a specced way to do that?
18:32 moritz pmurias: not sure
18:33 MayDaniel joined #perl6
18:34 GlitchMr joined #perl6
18:35 im2ee joined #perl6
18:36 Kivutarrr joined #perl6
18:42 [Coke] joined #perl6
18:47 masonkramer joined #perl6
18:51 masak perl6: say "Favorite day: ", <Monday Tuesday Wednesday Thursday Friday Saturday Sunday>.pick
18:51 p6eval rakudo 25af2d: OUTPUT«Favorite day: Tuesday␤»
18:51 p6eval ..pugs c943eeb: OUTPUT«Favorite day: Thursday␤»
18:51 p6eval ..niecza v10-50-gbf0cd86: OUTPUT«Favorite day: Wednesday␤»
18:52 masak funnily enough, the implementations come in in falling implementedness order :)
18:53 masak how many possible ordering combinations are there in the above situation?
18:53 masak if we don't allow duplicates, there are 6.
18:54 * masak enumerates them
18:56 masak seems there are 6 + 6 + 1 == 13
19:00 soh_cah_toa tadzik: i want to use your pod6 parser. show me! ;)
19:01 [Coke] nom: say 715-85
19:01 p6eval nom 25af2d: OUTPUT«630␤»
19:01 * [Coke] thinks people are closing tickets and not cc'ing the list.
19:01 masak ah, seems I was chasing this: http://oeis.org/A000670
19:01 masak oeis++
19:02 sorear moritz: would work if niecza had exception objects yet. :)
19:03 dorlamm joined #perl6
19:03 sorear masak: pmurias: current sprixel is a Perl6-interpreter-written-in-C
19:03 sorear not a C-interpreter
19:03 sorear it's based on 6model/c
19:09 diakopter sorry, I misspoke
19:10 masak sorear: yes, I understood it that way.
19:11 masak "sprixel" would've been somewhat of a misnomer in the other case ;)
19:11 dalek sprixel: bfe8229 | diakopter++ | src/ (8 files):
19:11 dalek sprixel: rearrange headers; add beginning of variable storage
19:11 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/bfe822987b
19:12 bluescreen10 joined #perl6
19:17 masak b: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) { $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+] map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) }, 1..$n }; say A000670($_) for 1..5
19:17 p6eval b 1b7dd1: OUTPUT«1␤3␤13␤75␤541␤»
19:17 masak \o/
19:17 masak ...could've included 0, I guess...
19:17 masak niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) { $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+] map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) }, 1..$n }; say A000670($_) for 0..5
19:17 p6eval niecza v10-50-gbf0cd86: OUTPUT«0␤NaN␤NaN␤NaN␤NaN␤NaN␤»
19:17 masak huh!
19:18 diakopter try to golf that! ;)
19:18 masak I will!
19:21 masak *this* is why having several implementations is a good thing!
19:22 moritz niecza: say map { (-1) ** $_ }; 1..10
19:22 sorear wait, why?
19:22 p6eval niecza v10-50-gbf0cd86: OUTPUT«␤»
19:22 moritz niecza: say map { (-1) ** $_ }, 1..10
19:22 p6eval niecza v10-50-gbf0cd86: OUTPUT«-1 1 -1 1 -1 1 -1 1 -1 1␤»
19:22 masak sorear: why what?
19:22 sorear 12:21 < masak> *this* is why having several implementations is a good thing!
19:23 masak because rakudo tells me it's probably not my fault it doesn't work in niecza.
19:23 masak so I can go forth basically having discounted the null hypothesis -- that I messed things up.
19:24 diakopter probably. rakudo could be "accidentally" getting it right.
19:24 masak indeed.
19:24 masak but it's fairly unlikely. :)
19:24 sorear I wonder if irssi will get this right
19:24 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say A000670($_) for 0..5
19:24 p6eval niecza v10-50-gbf0cd86: OUTPUT«0␤NaN␤NaN␤NaN␤NaN␤NaN␤»
19:24 sorear wooh
19:25 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say map -> $k { $k! * StirlingS2($n, $k) }, 1
19:25 p6eval niecza v10-50-gbf0cd86: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $n is not predeclared at /tmp/Tp1x4nql2B line 1:â�¤------> [32m.$n }; say map -> $k { $k! * StirlingS2([33mâ��[31m$n, $k) }, 1[0mâ�¤â�¤Potential difficulties:â�¤  &A000670 is declared but not used at /tmp/Tp1x4nql2B line …
19:25 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say map -> $k { $k! * StirlingS2($n, $k) }, 1 #OK
19:25 p6eval niecza v10-50-gbf0cd86: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $n is not predeclared at /tmp/ra3D_vT9v7 line 1:â�¤------> [32m.$n }; say map -> $k { $k! * StirlingS2([33mâ��[31m$n, $k) }, 1 #OK[0mâ�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setti…
19:25 * masak feels like King Midas sometimes: everything he touches turns into a bug report
19:25 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say map -> $k { $k! * StirlingS2(1, $k) }, 1 #OK
19:25 p6eval niecza v10-50-gbf0cd86: OUTPUT«NaN␤»
19:26 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say 1!; say StirlingS2(1, 1) #OK
19:26 p6eval niecza v10-50-gbf0cd86: OUTPUT«1␤NaN␤»
19:27 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; say 1/1! * [+] map -> $j { (-1) ** $j * comb(1, $j) * (1 - $j) ** 1 }, 0..$k; #OK
19:27 p6eval niecza v10-50-gbf0cd86: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $k is not predeclared at /tmp/7l0D1twTtQ line 1:â�¤------> [32m $j * comb(1, $j) * (1 - $j) ** 1 }, 0..[33mâ��[31m$k; #OK[0mâ�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 7…
19:27 sorear niecza: sub postfix:<!>($n) { [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; say 1/1! * [+] map -> $j { (-1) ** $j * comb(1, $j) * (1 - $j) ** 1 }, 0..1; #OK
19:28 p6eval niecza v10-50-gbf0cd86: OUTPUT«NaN␤»
19:28 masak sorear: man, don't you have a local copy of niecza? :P
19:28 sorear masak: I do, but this way is faster. :P
19:28 masak someone give sorear a better computer!
19:30 sorear aha
19:30 sorear your code is evaluating 0!
19:30 sorear which is 1. probably wrong 2. not correctly implemented in niecza
19:30 moritz nom: say [+] 0
19:30 p6eval nom 25af2d: OUTPUT«0␤»
19:31 moritz perl6: say (0..0).elems
19:31 p6eval pugs c943eeb, rakudo 25af2d, niecza v10-50-gbf0cd86: OUTPUT«1␤»
19:31 sorear niecza: sub postfix:<!>($n) { !$n ?? 1 !! [*] 1..$n }; sub comb($n, $k) {  $n! / ($k! * ($n - $k)!) }; sub StirlingS2($n, $k) { 1/$k! * [+]  map -> $j { (-1) ** $j * comb($k, $j) * ($k - $j) ** $n }, 0..$k  }; sub A000670($n) { [+] map -> $k { $k! * StirlingS2($n, $k) },  1..$n }; say A000670($_) for 0..5
19:31 p6eval niecza v10-50-gbf0cd86: OUTPUT«0␤1/1␤3/1␤13/1␤75/1␤541/1␤»
19:31 sorear perl6: say [*]
19:31 p6eval pugs c943eeb: OUTPUT«1␤»
19:31 p6eval ..niecza v10-50-gbf0cd86: OUTPUT«0␤»
19:31 p6eval ..rakudo 25af2d: OUTPUT«␤»
19:31 masak hah!
19:31 sorear really, rakudo?
19:31 moritz rakudo: say [*]()
19:31 p6eval rakudo 25af2d: OUTPUT«1␤»
19:32 moritz sorear: rakudo has parsingn problems with bare [infix]
19:32 masak ah.
19:32 masak moritz: is it rakudobugsubmitted?
19:32 moritz masak: yes, I'm sure we have at least one
19:32 * masak uses moritz as his local cache
19:32 masak moritz: thank you ;)
19:33 masak sorear: as to "probably wrong", this was "straight off" OEIS, a very straightforward port from math-speak.
19:33 masak sorear: worked on the first try, too.
19:34 moritz niecza: say (1..0).elems
19:34 p6eval niecza v10-50-gbf0cd86: OUTPUT«0␤»
19:34 moritz niecza: say &infix:<*>()
19:34 p6eval niecza v10-50-gbf0cd86: OUTPUT«␤Unhandled Exception: No value for parameter $l in CORE infix:<*>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<*> @ 0) ␤  at /tmp/AxP7yHKYBw line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2165 (CORE C1037_ANON @…
19:35 moritz there should be a zero-arg multi that provides the default value
19:35 tadzik soh_cah_toa: ok, whatcha wanna know?
19:35 masak tadzik! \o/
19:35 tadzik masak! \o/
19:35 MayDaniel joined #perl6
19:36 tadzik masak: how are things?
19:37 dalek sprixel: 95f5f2c | diakopter++ | src/ (4 files):
19:37 dalek sprixel: more work towards variable set/get; declare/assign is next
19:37 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/95f5f2cda3
19:37 moritz niecza: say [*]()
19:37 p6eval niecza v10-50-gbf0cd86: OUTPUT«0␤»
19:37 moritz anyway, that's a bug
19:39 moritz see S03:4488
19:41 moritz niecza: say [<]()
19:41 p6eval niecza v10-50-gbf0cd86: OUTPUT«Bool::True␤»
19:41 moritz niecza: say [~]
19:41 p6eval niecza v10-50-gbf0cd86: OUTPUT«␤»
19:41 masak tadzik: situation normal ;)
19:41 masak tadzik: a ty?
19:41 moritz niecza: say [min]
19:41 p6eval niecza v10-50-gbf0cd86: OUTPUT«␤Unhandled Exception: No value for parameter $a in CORE infix:<min>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<min> @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1432 (CORE reduceop @ 10) ␤  at /tmp/Yl7Gilb0Rm line 1 (MAIN mainlin…
19:42 tadzik niezgorzej, dziękuję
19:42 tadzik I've spent the entire day playing board games :)
19:42 masak phenny: "niezgorzej"?
19:42 phenny masak: Language guessing failed, so try suggesting one!
19:42 masak phenny: pl "niezgorzej"?
19:42 phenny masak: "niezgorzej" (pl to en, translate.google.com)
19:42 tadzik I'm afraid that's some ancienty Polish
19:42 masak what's a zgorzej?
19:42 tadzik phenny: pl "nienajgorzej"?
19:42 phenny tadzik: "not bad" (pl to en, translate.google.com)
19:42 tadzik they're equal
19:42 masak ah.
19:43 masak board games, eh?
19:43 tadzik nienajgorzej is literally "not the baddest"
19:43 tadzik aye
19:43 masak I wonder how we can help people submit contestants for the Little Animal Farm game... :)
19:43 tokuhiro_ joined #perl6
19:44 tadzik hmm
19:44 * moritz submits nieczabug
19:44 moritz masak: give us more tuits :-)
19:46 moritz niecza: say [||]()
19:46 p6eval niecza v10-50-gbf0cd86: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤This macro cannot be used as a function at /tmp/lMJYo7EvWs line 1 (EOF):â�¤------> [32msay [||]()[33mâ��[31m<EOL>[0mâ�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2)…
19:46 moritz that's also wrong; should just be non-short-circuiting
19:48 masak moritz: I was thinking something more like providing better tuit-to-results conversion. :)
19:53 skangas joined #perl6
19:55 masak sorear: is there a large amount of spectests that either would pass in Niecza, or that would indicate LHF?
19:55 masak I'm asking because of the above '[*] 1..0' thing.
19:56 sorear masak: probably not, Coke++ colomon++ mberends++ swept over roast a few weeks ago
19:56 tokuhirom3 joined #perl6
19:59 masak oh, ok.
20:00 dalek sprixel: 3097028 | diakopter++ | src/ (3 files):
20:00 dalek sprixel: variable assignment/retrieval partly working
20:00 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/30970284a2
20:02 soh_cah_toa tadzik: well, where is it? when i install rakudo, do i also get something like perl6doc?
20:03 tadzik soh_cah_toa: you get perl6 --doc
20:03 tadzik perl6 --doc <file>
20:04 tadzik that uses Pod::To::Text
20:04 tadzik you also have Pod::To::HTML in ecosystem, but you have to use it manually, as in "use Pod::To::HTML; html2text($=POD)
20:05 soh_cah_toa hm, looks like i get "Method 'WHY' not found for invocant of class 'Continuation'"
20:05 tadzik fuck no
20:06 tadzik try without GC
20:06 dalek sprixel: 759353c | diakopter++ | src/ (2 files):
20:06 dalek sprixel: variable assignment/retrieval, lexical blocks working
20:06 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/759353c824
20:06 soh_cah_toa tadzik: what do you mean?
20:07 soh_cah_toa although, it seems to work on this other nqp file :\
20:07 soh_cah_toa wow, this is slow
20:07 tadzik soh_cah_toa: parrot -G perl6.pbc <file>
20:09 soh_cah_toa it looks like it was just that one file i tried it on
20:09 soh_cah_toa oh neat, it renders declaractor blocks too. nice
20:10 soh_cah_toa tadzik++
20:10 soh_cah_toa i've been waiting for this *forever*
20:11 tadzik Ha! Glad it meets your expectations
20:11 soh_cah_toa tadzik: any plans to use a pager in the future?
20:11 tadzik soh_cah_toa: never thought about that
20:12 soh_cah_toa would make it a little easier to read w/o having to scroll up to read everything
20:12 tadzik file a ticket maybe? I'd like a few more voices on that
20:12 soh_cah_toa sure
20:12 tadzik true
20:14 soh_cah_toa actually, i've never even don't that before. i gotta figure this out :\
20:15 soh_cah_toa wow, this is really annoying. i don't see any place to open a new ticket
20:15 tadzik just send an email
20:16 soh_cah_toa that's it? how do i set fields like severity, tag, platfor, etc?
20:17 flussence let Someone Else™ worry about them :)
20:17 soh_cah_toa alright then...
20:18 jimmy1980 joined #perl6
20:19 thou joined #perl6
20:29 skangas joined #perl6
20:32 wolfman2000 joined #perl6
20:32 jnthn evenin'
20:33 masak jnthn!
20:33 jnthn masak!
20:37 masak perl6: my @nicks = <masak jnthn>; for @nicks, @nicks.reverse -> $a, $b { say "<$a> $b!" }
20:37 p6eval rakudo 25af2d, niecza v10-50-gbf0cd86: OUTPUT«<masak> jnthn!␤<jnthn> masak!␤»
20:37 p6eval ..pugs c943eeb: OUTPUT«<masak jnthn> jnthn!␤<masak> !␤»
20:38 masak pugs-- # wut!?
20:39 jnthn That wasn't a very flattening interpretation of our code :)
20:40 masak flattening will get you nowhere :)
20:43 sorear JNTHN!
20:43 jnthn o/ sorear
20:53 dalek niecza/serialize: 2671ab4 | sorear++ | lib/ (3 files):
20:53 dalek niecza/serialize: Add thaw routine for SubInfo
20:53 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/2671ab459f
20:54 sftp joined #perl6
20:59 im2ee Good night! :)
20:59 im2ee o/
21:01 masak 'branc, im2ee
21:01 [Coke] evening, folks.
21:03 colomon sorear, masak: actually, I wouldn't be surprised if there is a good bit of LHF still in niecza vs roast.  I know, for instance, it would probably only be a matter of minutes to fix .pick to work completely, and as far as I know roll.t hasn't been turned on at all.  I suspect S32 has a lot of things that could be implemented pretty easily hanging around, too.  (for that matter, I never did anything to check on tests fixed with my open
21:03 colomon implementation.)
21:04 [Coke] #62244 is really old, and I wonder if the original problem is still relevant, or if NCI is now broken in new and interesting ways.
21:05 [Coke] colomon: depends on your definition of LHF. I, for example, did a lot of skipping, TODOing, and unfudging. anything that involves writing C# is above my grade at the moment. ;)
21:05 * [Coke] will do another run on unfudging possiblities.
21:05 masak \o/
21:06 masak maybe build a list of possible LHF-y things, too?
21:06 [Coke] masak: I would have no way of evaluating them.
21:07 * [Coke] defers to at least a colomon.
21:07 [Coke] you want LHF, we need spec tests for a bunch of stuff in the rakudo queue that would incidentally benefit niecza.
21:07 [Coke] )
21:07 [Coke] ;)
21:09 [Coke] I will keep my eyes open, though.
21:11 masak :)
21:13 masak dang. there was a logical bug in my code above.
21:13 masak perl6: my @nicks = <masak jnthn>; for @nicks Z @nicks.reverse -> $a, $b { say "<$a> $b!" }
21:13 p6eval pugs c943eeb: OUTPUT«<masak jnthn> jnthn masak!␤»
21:13 p6eval ..rakudo 25af2d, niecza v10-50-gbf0cd86: OUTPUT«<masak> jnthn!␤<jnthn> masak!␤»
21:13 masak stil the same result, though. :)
21:14 colomon niecza: say infix:<*>(4)
21:14 p6eval niecza v10-50-gbf0cd86: OUTPUT«␤Unhandled Exception: No value for parameter $r in CORE infix:<*>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<*> @ 0) ␤  at /tmp/0nGjTzkSbf line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2165 (CORE C1037_ANON @…
21:17 masak so, essentially, infix:<xx> is a way for say 'map' now, but without the block and $_.
21:20 jnthn iiuc, xx is now macroesque?
21:20 jnthn e.g. there's no way to implement it as a normal multi-dispatch operator?
21:20 jnthn since the LHS is a thunk?
21:21 masak correct.
21:21 jnthn hmm
21:21 jnthn ok. Guess I can live with that.
21:21 jnthn What about x?
21:21 masak but it's neither more nor less macroesque than infix:<&&>, say.
21:21 jnthn Right, same niche.
21:21 masak x is unchanged.
21:21 * jnthn wonders if that's a assymetry of if there's really no case for changing x. :)
21:21 jnthn I can't think of one off hand.
21:22 masak strings are not in such dire need of thunking, I guess ;)
21:22 jnthn no, I suspet not.
21:22 colomon what if it's a string-generating function on the lhs?
21:22 jnthn Plus it would probably utterly trash the performance of the operator...
21:22 jnthn ...with no obvious way to recover it.
21:23 dalek roast: 946cccf | Coke++ | S0 (4 files):
21:23 dalek roast: niecza fudging
21:23 dalek roast: review: https://github.com/perl6/roast/commit/946cccf806
21:23 [Coke] niecza spectest passes again
21:23 mj41 joined #perl6
21:24 colomon [Coke]++
21:25 [Coke] pretty sure those were mostly additions, not regressions.
21:25 [Coke] though we had some TODOs passing, so someone isn't checking spectest when commiting to master. ;)
21:26 colomon I don't think those TODOs were my fault... but I admit to not always checking spectest before committing.  :)
21:27 [Coke] masak: niecza doesn't seem to have Bags.
21:27 masak neither does Rakudo.
21:28 masak I believe it's a fairly LHF in both, probably.
21:28 masak except that we need object hashes to really make Set and Bag shine.
21:29 dorlamm joined #perl6
21:35 japhb Would someone mind applying the patch in #101464 to nom?
21:41 jnthn japhb: Need to sleep really soon...teaching tomorrow. If nobody picks it up before then, I'll do so after my teaching tomorrow.
21:41 * masak does so
21:41 jnthn oh, masak++ :)
21:42 japhb thanks!
21:43 dalek rakudo/nom: 6f86603 | (Geoffrey Broadwell)++ | src/core/Main.pm:
21:43 dalek rakudo/nom: Merge WIP snapshot 2 of main-usage
21:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f866035f8
21:43 sorear I can argue the asymmetry in two ways
21:44 sorear 1. Lists are lazy, so xx is a "generator" to begin with
21:45 sorear 2. I'm told Str is supposed to be a rope of some kind (at least in the long-string limit), and ropes have a convenient O(log n) x
21:46 jnthn Hmm
21:46 jnthn ok, sleep o/
21:46 masak moi aussi.
21:47 masak 'night, #perl6ies
21:48 japhb o/
21:48 colomon at least in theory, Cat x * is legal, no?
21:49 sorear incidentally, I'm wondering what the maximum string length should be
21:50 sorear in a rope implementation there's no fundamental reason 'a' x (10 ** 100) can't work
21:50 sorear ...except that it would require using BigIntegers in the string-handling code and ick ick ick
21:51 sorear colomon: cats are still quite slushy.  possibly yes
21:53 colomon2 joined #perl6
21:53 colomon2 O/
21:54 colomon3 joined #perl6
21:54 colomon3 Stupid phone
21:56 sorear \o/ TRIPLE COLOMON
21:56 colomon3 anyway, what I was trying to say was that it's at least possible that either side of infix:<x> is "infinite"
21:56 colomon3 Just like xx
21:57 diakopter
21:57 sorear .u ⧻
21:57 phenny U+29FB TRIPLE PLUS (⧻)
21:58 colomon3 Admittedly I'm still inclined to think xx shouldn't thunk, rather than x should.
22:02 sorear colomon3: erm, you were the one who was so suprised by the old behavior of [ 0 xx matrixColumns ] xx matrixRows :)
22:02 am0c joined #perl6
22:02 colomon3 I was? When?
22:04 dual joined #perl6
22:08 colomon3 The thing is, I can see the behavior both ways.
22:09 colomon3 And given that, my first inclination I'd the easier to implement version is right. :)
22:10 colomon3 *is
22:11 colomon3 Swype alternates between being brilliant and sucking for IRC
22:12 replore joined #perl6
22:15 kfo joined #perl6
22:18 * colomon3 just realized he's been thinking X and saying xx for this entire conversation.
22:26 dalek niecza/serialize: 9b6504a | sorear++ | lib/ (2 files):
22:26 dalek niecza/serialize: Thaw routines for Frame
22:26 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/9b6504a999
22:29 colomon3 Away from Droid # story time
22:30 cognominal joined #perl6
22:32 [Coke] masak: I see a lot of unrunnable tests in niecza that say "unlink" is an undeclared routine.
22:41 dalek niecza/serialize: c0af787 | sorear++ | lib/ (3 files):
22:41 dalek niecza/serialize: Fix fixup call order (oops!), serialization-compatible calling of phasers
22:41 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/c0af787dde
22:41 sorear it almost works
22:41 sorear stefan@stefans:~/rel/niecza$ mono-sgen obj/Kernel.dll -run CORE                 Hello, world (0)
22:41 sorear Hello, world (0)
22:41 sorear running a deserialized unit
22:47 diakopter sorear: \o/
22:49 dalek niecza/serialize: 661b29c | sorear++ | lib/Kernel.cs:
22:49 dalek niecza/serialize: Fix all subs being treated as INIT phasers by default
22:49 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/661b29c4bb
23:00 [Coke] phenny: tell moritz that A61354_1 in S12-class/basic.t smells like the eval/try issue.
23:00 phenny [Coke]: I'll pass that on when moritz is around.
23:02 pjcj joined #perl6
23:06 Limbic_Region joined #perl6
23:07 sorear o/ Limbic_Region
23:08 colomon yeah, unlink would be great.
23:08 colomon which, I suppose, means I need to get off my arse and write it.
23:11 Limbic_Region salutations
23:12 colomon sorear: looks like unlink (at a first approximation) is just a matter of calling File.Delete.
23:12 colomon sorear: do you have a suggestion for the best approach to take with this in Niecza?
23:13 colomon (hmmm, maybe more than once?  unlink is a list function in p5, it looks like)
23:14 colomon (and hmmm... p6 has Path.delete instead?)
23:15 colomon woah, that's kind of freaky.
23:15 colomon according to S29, unlink has been replaced by something in S32, presumably File.Delete
23:17 colomon (or at least, it can be "found in" the IO modules, and there's no mention in S32-IO)
23:17 colomon then the spec links immediately to unlink.t, which tests the unlink function.
23:17 colomon sigh.
23:24 japhb Any more committers around that can apply #101474 to nom?
23:29 dalek sprixel: 8cf3071 | diakopter++ | src/ (5 files):
23:29 dalek sprixel: pre,post inc,dec , while
23:29 dalek sprixel: review: https://github.com/diakopte​r/sprixel/commit/8cf3071a0a
23:42 [Coke] Hurm. does S32-num/rat.t really have 804 tests?
23:43 [Coke] after fudging for niecza, I only have 797.
23:46 [Coke] nevermind, I didn't fudge right.
23:58 kensanata joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo