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