»ö« 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.
diakopter has one file in 6model/dotnet left to port to Lua 00:00
unfortunately, it's the longest, most complex one (MultiDispatcher.cs)
sorear: you're right about git add. I didn't know 00:02
00:02 Trashlord joined 00:07 fridim_ left
colomon [Coke]: are you looking at the sequence tests? 00:15
[Coke] colomon: no. 00:16
colomon where did you run into much?
*munch
colomon was trying to get one of the sequence tests running the other day, and there were a zillion munches mixed in the tests 00:17
[Coke] ack 'niezcza.munch' t/spec # the 2 files I tripped over it today in. 00:20
er, .*
00:20 risou_awy is now known as risou 00:36 risou is now known as risou_awy 00:48 diegoviola left 00:49 benabik joined
lue could I access the LHS of a .. or ... from the RHS? (e.g. I'd like to type $a..$a+1, but $a has a much longer name) 00:53
00:54 wolfman2000 joined
colomon lue: not in any way which would be a shortcut 01:04
though there's always { $_..$_+1 }($a) 01:05
lue Yeah, I found that out already. I was hoping that there was something like $a..$lhs+1 or something :) 01:06
01:11 whiteknight left
lue Another question I've thought of occasionally is how to store summations that go to infinity. Is there something that would force things to be lazy? (I see a .eager method in Rakudo, but no .lazy) 01:19
01:31 daniel-s joined
colomon what do you mean by summations? 01:31
rakudo: say ([\+] 1..*)[^10]
p6eval rakudo 40f181: OUTPUT«1 3 6 10 15 21 28 36 45 55␤»
lue the kind used with Σ, e.g. Σ_(n=1)^(100) n (one-line input does not befit Σ notation) would be [+] ($_ for 1..100) in P6 01:59
sorear do you think you might be looking for "maxima"?
lue what is maxima? 02:01
sorear a free programming system which does symbolic math
02:03 daniel-s_ joined 02:04 daniel-s left
colomon lue: note that my rakudo example there is exactly a lazy evaluation of the sum of n as n goes from 1 to infinity. we see the first ten sums 02:06
lue maxima looks like something that should be on my computer already /me about to install
sorear "also, maxima is itself older than Unix, so it works fine on older PCs" 02:07
colomon every now and then I desperately need symbolic math for work. 02:09
I've definitely used maxima, but it seems to me I was using something else more recently.
sorear knows the SAGE guy irl 02:10
02:11 drbean left
colomon huh. just look at wikipedia's list, and ... oh, wxMaxima? no, that's a Windows app. 02:12
lue is my idea that lazy means "don't do ($_) for 1..Inf; #`[for example] until I ask for some of those values" correct? 02:13
sorear yes
lue so should perl6 -e '($_) for 1..Inf' hang? (I'd put @a = in front of that if = wasn't eager (from what I've read in the spec)) 02:14
sorear lue: sink contexts are eager 02:15
if you want that to not hang, you have to put it into a lazy context 02:16
like for ($_ for 1..Inf) { .say } # this should work (but won't)
02:18 drbean joined
lue I read that @a <== would be lazy, but it still hangs (which means either rakudo is wrong or I read incorrectly) 02:19
sorear rakudo handles a lot of laziness stuff wrong 02:22
but I think you are XY-probleming.
step back, tell me what you REALLY want to do.
lue What I want to know how to do in the future (so if there's no answer tonight, no worries) is how to store an infinite summation so I can call a certain number of terms later and sum them for an approximation 02:26
02:27 shinobicl_ left 02:28 benabik left
sorear lue: Perl 6 is designed to make that hard because it's a bad idea. Are you familiar with XY problems? 02:28
lue I am not /me looks it up
dalek ecza: 095b52c | sorear++ | lib/ (2 files):
Optimize RefConstant, avoid excessive string concatenation
02:30
lue Ah. Yeah, I've realized now that I just got stuck on the idea of storing an infinite summation, when really its only purpose would for approximation by using just some of terms. 02:34
02:34 benabik joined 02:36 benabik left 02:42 tewk left 02:47 tokuhiro_ left 02:51 Chillance left
dalek ecza: be42b29 | sorear++ | lib/CodeGen.cs:
The long overdue killing-with-fire of JScalar
02:54
03:09 _jaldhar joined
TimToady you are certainly allowed to store an infinite summation for use later 03:15
niecza: constant @sum = [\+] 1..*; say @sum[100] 03:16
p6eval niecza v10-233-g98f83a8: OUTPUT«5151␤»
TimToady sorear: it's not hard, and it even works in niecza :) 03:17
you're doing a YX :) 03:18
sorear hmm 03:19
niecza: my $sum = \( [\+] 1..* ); say @$sum[100]
p6eval niecza v10-233-g98f83a8: OUTPUT«Any()␤»
sorear niecza: my $sum = \( [\+] 1..* ); say $$sum[100]
p6eval niecza v10-233-g98f83a8: OUTPUT«5151␤»
lue so should I s/Inf/*/ then? [I can't believe I didn't see it] 03:29
TimToady niecza: constant @sum = [\+] 1..Inf; say @sum[100] 03:30
p6eval niecza v10-235-gbe42b29: OUTPUT«5151␤»
TimToady doesn't matter in this case
03:42 araujo left
dalek ecza: ffe8cda | sorear++ | lib/CodeGen.cs:
Tiny improvement to memory handling in CpsOp.Sequence
03:44
sorear seem to be out-ish of LHF optimizations in the code generator
03:54 risou_awy is now known as risou 03:57 risou is now known as risou_awy
dalek ecza: 90ae4df | sorear++ | / (3 files):
Misc fixes to make -p work again; bootstrap improvements
04:21
04:28 tewk joined 04:50 arnsholt left 04:54 am0c left 04:59 poincare101 left 05:12 orafu left, orafu joined 05:17 benabik joined 05:31 daniel-s_ left 05:33 daniel-s_ joined 05:37 djanatyn is now known as djanatyn|afk 05:53 cooper joined 05:54 cooper left 06:06 mtk left
snarkyboojum is `perl6 --target=PAST somescript.pl` supposed to work? 06:17
benabik snarkyboojum: It's a valid command, but PAST and POST output for nom don't work right now. 06:19
snarkyboojum benabik: ah - ok, but works in old master/ng I take it
how does one go about inspect the AST currently?
inspecting* 06:20
benabik snarkyboojum: Yes, it should work in b. Dumper doesn't know what to do with 6model classes. (Or something like that.)
snarkyboojum: As far as I can tell, you don't.
snarkyboojum benabik: ah ok :) I can't find PAST documented anywhere either..
the best I've been able to find it "Rakudo AST generation. We need better tutorials and guides for this." 06:21
sorear snarkyboojum: also, it may be case sensiti ve
snarkyboojum sorear: tried upper and lower, not going to try other permutations :D 06:22
sorear :D
benabik snarkyboojum: docs.parrot.org/parrot/latest/html/...t.pod.html
snarkyboojum: (Probably not 100% up to date.)
06:22 worr left
snarkyboojum oohh.. parrot docs /me shivers :P 06:22
sorear past, aka pmichaud abstract syntax tree, has an "interesting" relationship with parrot
snarkyboojum benabik: thanks tho dude
sorear sometimes it wants to be defined by pdd26, other times it wants to be part of the NQP ecosystem 06:23
snarkyboojum sorear: I like that version of the acronym 06:25
sorear o/ snarkyboojum, benabik 06:26
06:26 shinobicl_ joined
benabik is heading to bed. 06:26
snarkyboojum sorear: what AST does Niecza use? 06:27
sorear Niecza's ASTs are defined by the Op, CgOp, CpsOp, and ClrOp types. They have no other names. 06:30
sorear watches the disk usage bar on sorear/niecza creep upwards
snarkyboojum so you don't build a single AST which you use to generate NAM?
I should read compiler.pod shouldn't I :D 06:31
06:31 GlitchMr joined
sorear well, NAM ~~ CgOp 06:31
I should try to update compiler.pod sometime :D
snarkyboojum Oh, I thought they generated AST
will have a read 06:32
06:32 tewk left, tewk joined
sorear a typical Op node looks like Interrogative.new(name => 'HOW', receiver => Lexical.new(name => '$x')) 06:33
Op is close to PAST, but a bit higher level 06:34
this translates into ["newscalar",["how",["fetch",["scopedlex",'$x']]]] at the CgOp level 06:35
CgOp has fairly straightforward execution semantics; it's also designed to be very easy to transport acrosss the Perl/C# language boundary 06:36
CpsOp and ClrOp are C# types; they differ in that CpsOp supports high-level control flow operations (beyond what the CLR natively allows) 06:37
both of them use the semantic model of the CLR - objects, method calls, nothing more
06:38 shinobicl_ left
sorear at the end of the pipeline ClrOp is converted and sent off to System.Reflection.Emit.ILGenerator, and it's no longer my problem 06:38
(it gets converted after several more steps to machine code)
hopefully when I get to niecza v100 or so and I'm out of space I'll have enough clout to petition GitHub for a quota increase :D 06:40
snarkyboojum sorear: awesome - appreciate the high level description 06:41
P.S. you're running into a quota limit on github?
sorear not quite 06:42
I'm at like 15% of the quota
snarkyboojum ah - rakudo has to be getting near it then 06:43
sorear huh, I wonder why v8 and v10 have anomalously large download counts 06:47
06:48 mls_ left
snarkyboojum I don't suppose github gives you access logs for downloads.. 06:48
06:48 mls joined
dalek ecza: 0417e67 | sorear++ | / (4 files):
Switch build to using a /serialize bootstrap image
06:55
sorear evalbot rebuild niecza
p6eval OK (started asynchronously) 06:56
sorear now no longer using niecza/master at all
I could release now but I'd like to clean up warnings, the bug queue, try and get BEGIN working so people have a reason to upgrade ;), ... 06:57
niecza: say sprintf "%02x", ord('a') 07:00
p6eval niecza v10-238-g0417e67: OUTPUT«61␤»
sorear std: /\ / 07:01
p6eval std be1f10e: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x3000 at /tmp/6PwZKQgxgv line 1:␤------> /\⏏ /␤Parse failed␤FAILED 00:01 …
sorear std: /\ /
p6eval std be1f10e: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/nTCHthhSP2 line 1:␤------> /\⏏ /␤Parse failed␤FAILED 00:01 12…
07:01 cooper joined 07:04 sayu joined
moritz \ o/ 07:04
# is unspaced allowed in greetings? :-)
07:04 Trashlord left
sorear o/ moritz 07:04
dalek ecza: d899978 | sorear++ | src/STD.pm6:
Update STD to use +% instead of **, remove no-sprintf stub
07:05
07:06 cooper left
moritz p5p patch from yesterday already applied 07:06
sorear \o/
07:08 kaare_ joined 07:13 risou_awy is now known as risou
dalek kudo/nom: 36d8299 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get a parrot with green threads (just for testing)
07:14
sorear huh 07:18
niecza: my $*UNIT
p6eval niecza v10-238-g0417e67: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 758 (warn @ 2) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 165 (Mu.Str @ 9) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/src/Ni…
07:19 risou is now known as risou_awy
sorear niecza: 5.UNIT 07:20
p6eval niecza v10-238-g0417e67: OUTPUT«===SORRY!===␤␤Indirectly named method calls NYI at /tmp/TzaUF7MPCH line 1 (EOF):␤------> 5.UNIT⏏<EOL>␤␤␤Unhandled Exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 865 (die @ 2) ␤ at /home/p…
07:30 drbean left
dalek ecza: fa0725c | sorear++ | src/NieczaActions.pm6:
Fix noisy miscompilation of my $*UNIT and similar forms
07:34
07:36 drbean joined 07:37 cooper joined
dalek ecza: 9a69bf4 | sorear++ | / (2 files):
Implement %*MYSTERY check to suppress warning in foo; sub foo() { }
07:46
08:15 y3llow left 08:16 y3llow joined
dalek ecza: d83bf51 | sorear++ | / (4 files):
Misc fixes for real warnings in build
08:21
08:32 sayu left
dalek ecza: 51e9a26 | sorear++ | / (6 files):
Remove no longer used "NAMOutput" and "Metamodel" modules
08:35
sorear -> sleep 08:36
diakopter o/
sorear tomorrow: attack more cruft, attack bugs
08:47 cooper left
moritz nqp: say(nqp::where(my $x)) 08:59
p6eval nqp: OUTPUT«-5990093271707001532␤»
moritz nqp: say(nqp::where(pir::null__P())) 09:03
p6eval nqp: OUTPUT«-6279166203102069897␤»
09:09 Exodist left 09:10 Exodist joined 09:19 cognominal left, cognominal joined 09:34 snearch joined 09:35 snearch_ joined
dalek kudo/role_diamond: 2f2a5b7 | moritz++ | src/Perl6/Metamodel/RoleToRoleApplier.pm:
try to fix role diamond compsition: a method should never conflicit with itself.

Regresses the RT #72856 tests in t/spec/S14-roles/composition.t
09:35
09:36 snearch left, snearch_ left
moritz phenny: ask jnthn to please look over the commit in the role_diamond rakudo branch -- did I miss something obvious? I causes failures in composition.t 09:36
phenny moritz: I'll pass that on when jnthn is around.
09:38 drbean left
Woodi Debian pkg system is not reentrant :) so upgrade and installing nom-parrot package simultaneosly do not work :) 09:42
09:45 drbean joined 09:59 Kivutarrr joined 10:02 sunnavy left
moritz Woodi: the idea is that you tell it what do from the start :-) 10:03
huf it could be split into a package installer daemon and a frontend which just drops commands into a queue... and then you could install packages while you install packages... seemingly ;) 10:07
snarkyboojum moritz: how embarrassing :D
moritz: I was seeing commit updates for Perl6 stuff and feeling quite at home ;) 10:08
10:08 coto joined
coto Hi !! i have a compile problem 10:09
when compile parrot
init::manifest - Check MANIFEST...No such file: DEPRECATED-branch.pod
step init::manifest failed: no result returned at Configure.pl line 76 10:10
so failed...
moritz coto: what's the invocation you used to start the compilation? 10:11
coto perl Configure.pl 10:15
moritz coto: are you trying to build a release? Or a git checkout?
coto try to build apackage in ARCHlinux 10:16
moritz from which version of parrot?
(also #parrot on irc.perl.org would be more appropriate)
coto who to see the parrot's version 10:17
who --> how
moritz doesn't arch's package manager tell you which version is available? 10:18
coto pkgver=20111031
moritz there should also be a VERSION file in the parrot/ dir
coto it is 3.9.0 10:19
moritz wait... isn't 20111031 tomorrow? :-)
coto oh?
moritz I mean, it does look like a date
and today is 2011-10-30 (at least in my time zone) 10:20
coto my system 's date++
moritz coto: github.com/parrot/parrot/commit/87...cbdc67669d should fix your problem 10:22
coto moritz thanks 10:23
moritz so either update to newest parrot, or run Configure with --nomanicheck
coto i see
moritz preparese waffels for brunch, afk
coto thanks motitz ~~& 10:25
10:25 coto left 10:32 Kivutarrr left 10:37 sayu joined, cognominal_ joined 10:40 cognominal left
moritz wonders if his name is really so hard to tab-complete :-) 10:43
10:45 mj41 joined 10:55 icwiener joined
jnthn moritz: + if +@add_meths == 1 || all_the_same(add_meths) { 11:05
phenny jnthn: 09:36Z <moritz> ask jnthn to please look over the commit in the role_diamond rakudo branch -- did I miss something obvious? I causes failures in composition.t
11:05 diegoviola joined
jnthn moritz: If nothing else, that line is missing an @ 11:05
moritz: btw, I find your name quite easy to tab complete ;)
moritz ah thanks 11:06
jnthn: one more thing, in the nqp/bigint branch, how do I create a bigint?
in particular the nqp_bigint_from_str opcode needs a bigint already, so I can't use it to create the first one :/ 11:07
jnthn moritz: see gist.github.com/1323796 11:08
moritz jnthn: ah, thanks
jnthn moritz: I've taken a diversion to work on what we'll need to actually get it into Rakudo.
moritz: If you're looking for things to work on there, feel free to flesh out op space 11:09
moritz jnthn: that's what I already started with :-)
jnthn The comment at the top of nqp_bigint.ops that said every op will have two variants can now be considered false.
I was uncomfortable with that anyway, and yesterday I found a way to not need to do it :)
But I need to do the various repr refactors first.
So, doing more ops in the same kinda style I did the ones so far should work out OK :) 11:10
Plus, thanks for joining n :)
*in
jnthn afk for 15 mins or so 11:11
moritz is _I as a postfix for bigint nqp:: opcodes OK?
jnthn ? 11:12
moritz nqp::mul_I
jnthn m
That feels a bit too easy to typo with mul_i
moritz _bi?
jnthn yeah, that works for me.
I'm sure pmichaud would have an opinion on that were he about ;) 11:13
moritz he mentioned _I for bigint in the commit that introduced nqp:: opcodes
(which is why I went for it) 11:14
jnthn oh
hm
moritz but I'm not particularly attached to it
jnthn: don't let me hold you off, the decision can wait 15min :-)
jnthn k, bbs :) 11:15
11:15 pmurias joined, whiteknight joined 11:38 Psyche^ joined 11:40 Patterner left, Psyche^ is now known as Patterner 11:43 xinming left 11:44 xinming joined
jnthn back 11:45
frettled in black? 11:47
jnthn Partially :)
moritz: Let's go with I for now. It puns nicely with int vs Int in Perl 6. 11:49
moritz jnthn: ok
jnthn moritz: And pmichaud seemed to like it that way
11:49 sunnavy joined, risou_awy is now known as risou
jnthn Which are probably better arguments than "it may be typo'd" :) 11:49
11:53 drbean left
moritz jnthn: any objections to loading nqp_bigint_ops by default? 11:54
jnthn moritz: no, that's fine
moritz: It was on my todo list :)
moritz: Make sure initialize gets called too - just after the 6model initialization. 11:55
moritz jnthn: where does that happen? 11:56
jnthn hm
I think the line to make it happen is probably in SymbolTable 11:57
moritz: search for nqp_dynop_setup
moritz jnthn: found it, thanks
11:59 drbean joined
moritz does == have tigher precedence than = in C? 12:05
moritz doubts his sanity
jnthn I...think so...
a = b == c; /* should do the right thing, I think... */
moritz ok
dalek p/bigint: dfd536f | moritz++ | src/ops/nqp_bigint.ops:
wrap more libTomMath subs in dynops
p/bigint: 93dc058 | moritz++ | src/PAST/NQP.pir:
add nqp::<matop>_I opcodes for bigints
p/bigint: 05755ba | moritz++ | src/ (3 files):
add bigint comparison ops; load nqp_bigint_ops by default
moritz pushes, and worries later about testing
p/bigint: 879b700 | moritz++ | src/NQP/SymbolTable.pm:
set up bigints at startup
12:06 MayDaniel joined
moritz jnthn: boxing a negative INTVAL to $bi_type (from your gist) is a FAIL 12:07
-123 becomes 4294967173
jnthn eek 12:08
moritz mp_digit is unsigned
jnthn aha
wait, mp_digit?
moritz hm, I see you don't use it directly 12:09
boxing to int uses mp_set_int
jnthn yes
ah, which takes unsigned
moritz ... which has unsigned long b in the signature :/
jnthn ...really? C has no standard way to get NAN? 12:15
er, NaN
moritz 0f/0f ? 12:16
jnthn My compiler catches that as a divide by zero :/ 12:18
moritz is full of FAIL today 12:19
jnthn Turns out putting one 0.0 in a varialbe and then doing 0.0/that_variable does it. 12:20
pmurias jnthn: strtod("NAN")? 12:24
dalek p/bigint: f3d73f0 | moritz++ | t/nqp/60-bigint.t:
add bigint test file -- 5/9 fail
moritz I can understand why most tests fail, but not why the first one does :/ 12:25
dalek p/reprapi2: 1167c9f | jnthn++ | src/6model/sixmodelobject.h:
Extend the REPR API a little in preparation for supporting inlining of more complex types in objects. Most immediately this is for bigint support, but it's also the basis for compact structs, and later compact arrays and nested structs in NCI.
12:26
p/reprapi2: adaffcc | jnthn++ | src/ (15 files):
First small step of the move to a new REPR API. This splits out instance_of out into allocate and initialize, and starts to make the differentiation between full objects and one object flattened into another's body. Various other updates so we can build/pass NQP test suite still.
jnthn moritz: hm, odd 12:27
colomon jnthn: nan() function in math.h? 12:30
jnthn colomon: hmm, I treid NAN constant from there and it wasn't available here... 12:36
colomon huh. Visual C++?
jnthn yeah 12:39
I can try nan()
P6num.obj : error LNK2001: unresolved external symbol nan
No :(
colomon with math.h included? that stuff is supposed to be C99 standard.... :\ 12:41
jnthn colomon: Oh. C98. 12:42
MSVC is pretty strict about that.
er
89
Or whatever
:)
moritz: In the div op
mp_int *remainder = get_bigint(interp, REPR($2)->instance_of(interp, $2));
moritz: You needn't go involve the bigint repr here
moritz: You can just do mp_int remainder = mp_init(); or so 12:43
You needn't call clear if you take the repr approach, you need to do mp_clear if you do what I just suggested.
But it's probably worthwhile as it'll save a throwaway GC-able every time we do a division :)
colomon rakudo: say log 0 12:44
p6eval rakudo 36d829: OUTPUT«-Inf␤»
13:04 simcop2387 left 13:05 nebuchadnezzar left 13:06 simcop2387 joined 13:08 nebuchadnezzar joined 13:09 envi_ joined 13:14 Tanktalus left 13:17 Chillance joined
dalek p/bigint: a5a450c | moritz++ | src/ops/nqp_bigint.ops:
save a GCable in nqp_bigint_div, jnthn++
13:22
13:28 cognominal___ joined 13:31 cognominal_ left 13:35 envi_ left, envi_ joined
tadzik good morning 13:48
jnthn o/ tadzik
er, morning? :)
tadzik hmm
nope, afternoon :) 13:49
colomon definitely morning
13:51 poincare101 joined
[Coke] it's a fine october morning, the snow is melting... wait, what? 13:57
jnthn Snow!
13:58 Trashlord joined
[Coke] 2 days this week. 13:59
enough to basically shut down the interstates. 14:00
tadzik oh, we have the day of the dead now, it's a good enough reason to shut down most of the roads 14:03
14:04 diegoviola left 14:08 sayu left 14:19 drbean left 14:21 bluescreen10 joined
moritz wonders why the US is surprised by snow, every year again 14:24
jnthn tadzik: Day of the dead?
tadzik: Are there, like, zombies, everywhere?
:)
14:24 drbean joined
[Coke] moritz: when it's early, it's surprising. 14:26
dalek p/reprapi2: bea2110 | jnthn++ | src/ (12 files):
This step of the representation refactor switches [get|set]_[int|num|str] over to the new API. We temporarily lose a few error checks, which will get moved elsewhere. Also P6opaque needs further updates to handle these in a more delegatory fashion. Builds and passes NQP tests.
14:27
jnthn Tedious refactor is tedious.
moritz would offer to help, but doesn't think he knows enough about reprs to make a difference in the right direction 14:31
tadzik jnthn: close; it's just all the people going to visit graves of their families 14:33
jnthn moritz: Well, plus I'm figuring out various small details of the re-design as I go about it. :)
tadzik the police is acting bizarre and blocking random roads to encourage everyone to take a bus 14:34
moritz so how good is the public transport on a Sunday where you live?
14:37 JimmyZ joined
JimmyZ hello, #perl6 14:37
Woodi Day of All Saints is after tomorow in Poland :) tomorow is Day of Past Souls. common name for DAS is Feast of Deaders 14:38
moritz: polish roads are like reverse of German roads... 14:39
tadzik moritz: around this celebration days there are like dozens of extra buses going to various graveyards 14:40
14:42 Trashlord left
tadzik was driving the entire day, and has nothing bad to say about roads 14:43
Woodi tadzik: just German roads are much better from dozens of years 14:45
since* 14:46
tadzik I'm sure they are. But I drove across half of warsaw today, and I have nothing bad to say about roads. Today. 14:48
JimmyZ wan't to invite jnthn/pmichuad/TimToady to bjpw 2012 14:49
14:49 Chillance left 14:50 Chillance joined
dalek p/reprapi2: 4035569 | jnthn++ | src/6model/ (8 files):
We'll use a common way, encased by a couple of macros, to flag type-object-ness now. This introduces them and makes a start at ensuring sure we consistently flag type objects as being so.
14:52
p/reprapi2: 065622f | jnthn++ | src/ (12 files):
Eliminte defined from the REPR API; now it's all done through the IS_CONCRETE macro.
itz I'm not a nagging end user but... :-) any roughish ETA for star? 14:58
moritz itz: I wish we had an ETA... 15:00
flussence it'll be ready by xmas
jnthn At this point, it mostly depends on protoregexes being landed.
Which unblocks JSON::Tiny, which unblocks the ecosystem working again... 15:01
Woodi any news from pm++ ?
jnthn Estimating protoregxes landing is really hard because estimating pmichaud's availability is really hard.
itz ok thanks for the feedback 15:02
moritz but we will blog about it when it comes out :-)
JimmyZ what's ETA? 15:03
moritz JimmyZ: "Estimated Time of Arrival"
JimmyZ thanks
JimmyZ has been here for 3 years 15:08
dalek p/reprapi2: 52e8a70 | jnthn++ | src/ (9 files):
Update GC marking to new API. For the representations, this is a simplification; they don't have to duplicate marking the common bits. Some lose their mark routines entirely.
15:11
moritz jnthn: nqp::unbox_i should go through get_int, right? 15:13
jnthn moritz: yes
moritz: Is there something I've missed? 15:14
moritz jnthn: no, probably something I'm missing
jnthn moritz: Note that P6opaque's current factoring of get_int is wrong under the new repr API 15:15
moritz: It should really delegate to the flattened in repr
moritz is concerned with P6Bigint get_int 15:16
jnthn moritz: How so? 15:17
moritz: At a Perl 6 level, we'll only ever hit that code path when we want to turn an Int into an int. 15:18
moritz just a sec...
15:20 molaf joined
dalek p/bigint: b2263f6 | moritz++ | src/ (2 files):
lcm, gcd
15:21
p/bigint: 216ecda | moritz++ | tools/build/Makefile.in:
[build] missing dependency on P6bigint.{c,h}
p/bigint: cbd6c19 | moritz++ | / (2 files):
make P6bigint {set,get}_int accept negative numbers

For some reason the get_int variant doesn't seem to work (returns only positive numbers), though I don't understand why
p/reprapi2: 2c9bafd | jnthn++ | src/ops/nqp.ops:
Re-instate the checks to make sure we don't try and unbox type objects, but this time at the op level (so it needn't be factored in to every single repr).
15:23
jnthn moritz: ah, negative issues? 15:24
OK
Will take a look later
moritz no hurry 15:25
15:28 MayDaniel left
dalek p/reprapi2: 4f25688 | jnthn++ | src/ (9 files):
Rename repr data marking functions to actually be clear about what they do.
15:30
p/bigint: 46221b1 | moritz++ | t/nqp/60-bigint.t:
fix some of the bigint tests
15:33
15:52 lue left 15:54 JimmyZ left 16:00 Trashlord joined 16:01 Trashlord left, Trashlord joined
dalek p/reprapi2: 5cb979a | jnthn++ | src/ (9 files):
Replace all value type attribute lookups with a common approach; this means we'll be able to use it for getting hold of more complex nested value types too.
16:07
p/reprapi2: fcd3f85 | jnthn++ | src/ops/nqp.ops:
Get ops to check they're not looking up attributes in a type object, so we don't have to spread this over all the reprs.
p/reprapi2: 815ede2 | jnthn++ | src/6model/reprs/ (2 files):
Remove a couple of now unrequired checks.
16:16 bluescreen10 left 16:17 djanatyn|afk is now known as djanatyn 16:19 kaare_ left 16:36 bluescreen10 joined 16:48 danishman joined 16:56 Reaganomicon left 16:59 cognominal joined 17:02 cognominal___ left
moritz jnthn: any objections to writing out separate targets for the various libtommath files? 17:06
I don't want to recompile all of them when i change the nqp_bigint.ops file 17:07
17:09 wolfman2000 left, daniel-s_ left 17:16 skangas joined 17:29 araujo joined, araujo left, araujo joined, am0c joined 17:33 thou joined 17:35 dual joined 17:42 risou is now known as risou_awy 17:50 mj41 left 17:58 Chillance left
colomon [Coke]: do you have a tool for scanning the full spectest with niecza to see what files fail for which reasons? or have you been doing that by hand? 18:04
18:10 Chillance joined, Sarten-X left 18:11 MayDaniel joined 18:12 envi_ left 18:20 MayDaniel left 18:21 wolfman2000 joined, Sarten-X joined
sorear good * #perl6 18:22
18:22 molaf left 18:36 skangas left 18:50 MayDaniel joined
dalek p/bigint: 2f16a24 | moritz++ | src/6model/reprs/P6bigint.c:
fix C89 violation
18:50
p/bigint: 1bede84 | moritz++ | tools/build/Makefile.in:
[build] separate rules for libtommath files

That way unnecessary rebuilds of .o files are avoided, and we can parallelize the build process with `make -j3` etc.
18:50 MayDaniel left, MayDaniel joined
sorear o/ moritz 18:51
moritz hello sorear
colomon \o
jnthn moritz: Any change that doesn't break the build is fine ;) 19:04
moritz jnthn: at your convenience, please check if it didn't break the build on windows :-) 19:06
jnthn moritz: Will do - thanks :)
dalek p/bigint: 04fbeb4 | moritz++ | tools/build/Makefile.in:
[build] I should not use variables that I do not understand :-)
19:07
moritz jnthn: anyway, down to 2 failures in bigint.t 19:09
colomon \o/ 19:10
moritz and i don't understand the failures at all
ok(s($b) eq '-123', 'can round-trip negative number (string)');
fails
but
say(s($b));
says 19:11
-123
jnthn moritz: nice!
moritz: Hm
moritz (and calling s($b) twice doesn't change things)
sorear "maybe eq is broken?" 19:12
moritz nqp: say('-123' eq '-123') 19:13
p6eval nqp: OUTPUT«1␤»
moritz looks OK
sorear try say(s($b).perl)
moritz we have a .perl in nqp?
sorear my next guess is that the output contains unprintable characters
jnthn This is nqp
moritz sorear: I already hexdump'ed the output of say(s($b)) 19:14
no surprises there
jnthn stashes his change set and grabs the bigint branch
moritz oh wait, surprise surprise
00000000 31 2e 2e 39 0a 2d 31 32 33 00 0a 2d 31 32 33 00 |1..9.-123..-123.|
there are trailing zero-bytes
no wonder that eq doesn't like 'em 19:15
masak lol hai #perl6!
moritz should *carefully* at hexdump output
lolitsmasak!
sorear MASAK!
masak I figured for my first part of my Erdősing trip, I'd crash at jnthn's for two days, helping him with whatever he's working at right now :P
jnthn masak: Your keyboard is so loud I can hear it from here!
masak jnthn: oh but it's soooo goood 19:16
jnthn: your IRC screen is lagging, I can see it from here ;)
jnthn wtf, I can't hear my heavy metal over your keystrokes :P
masak you're not playing any, silly :)
jnthn, put on some heavy metal!
that's better :) 19:17
masak headbangs and codes some Perl 6
moritz jnthn: unstash your changes, I think I have a working patch
jnthn moritz: congrats, you didn't break the build with the makefile changes :)
oh, ok
moritz \o/
jnthn well, still worth it to check the makefile patch :)
moritz aye 19:18
jnthn returns to reprapi2
moritz hopes rakudo will keep something like its current 'int' (native non-big integers) for something like iterator variables 19:19
masak looks at contexts in Parrot to see how to do the AST-with-its-own-context trick
jnthn moritz: int will stay exactly as it is.
moritz: Only Int is changing.
Well, apart from all the bugs int has... :)
moritz jnthn: and what will Int box into
jnthn But it remains your CPU-sized integer :)
moritz: Int *is* boxed 19:20
moritz erm
masak Int is the box.
moritz what will it box
jnthn Right, that
moritz: int
moritz is confused
so, int remains parrot's INTVAL
masak there's in "int"eresting circularity there.
jnthn moritz: yes
19:20 MayDaniel left
jnthn When you box it, it'll become an Int 19:20
moritz so Int won't become bigintish? 19:21
jnthn Yes
moritz shouldn't ask negated questions in English
jnthn moritz: Boxing an int will give an Int, which will have big integer semantics
argh, let's start again :)
moritz oh
jnthn We have int and Int
moritz I think I understand
an Int is *more* than a mere box around int 19:22
jnthn int is a Parrot INTVAL, or CPU level integer, and does what your CPU goes
Boxing it leads to an Int
moritz: oh, yes :)
masak it's two ints :P
jnthn moritz: That's why I'm re-doing the repr API at the moment. To make that possible.
moritz I mean, much more than now :-)
jnthn Yes :)
masak \o/
jnthn Though it happens to be the same thing we need for compact structs
japhb jnthn, Will Str.Numeric() need any more bigint-related changes? I note that it already has 'nqp:p6bigint()' calls in various places. 19:25
jnthn japhb: Almost certainly will.
japhb I ask because I am *hoping* to throw some tuits at expanding the range of inputs Str.Numeric() can handle 19:26
moritz that one cheats
japhb Bad choice of words. not 'range of inputs' more 'varieties of inputs'
jnthn I suspect really we should be having Str.Numeric call into the grammar proper
moritz nqp::p6bigint will likely go away
jnthn: pmichaud thought that wouldn't be necessary
because the cases are limited 19:27
jnthn moritz: oh. I thought it was pmichaud who argued it should call into the grammar proper... :)
I maybe misunderstood.
dalek p/bigint: 154d613 | moritz++ | src/ops/nqp_bigint.ops:
fix nqp_bigint_to_str (was adding \0 at the end)
japhb moritz, the problem is that current Str.Numeric() is not handling a lot of cases that STD's grammar does handle.
moritz japhb: yes, so it needs expanding
(needs to parse Complex literals, for example)
japhb I assumed there was a reason that the grammar wasn't being used (circularity saw or performance or somesuch), and was about to expand the existing code to handle more cases 19:28
moritz performance
japhb: that's exactly the right approach
japhb moritz, OK, great. 19:29
japhb will grab some lunch and then start tackling that code.
19:36 wolfman2000 left
dalek p/reprapi2: b40e7bc | jnthn++ | src/ (10 files):
Switch to new API for looking up boxed attributes. Note that P6opaque needs to handle it a bit smarter, but this is a start.
19:42
diakopter fights bugs.launchpad.net/ubuntu/+source/...bug/811441 in a ubuntu VM 19:48
dalek kudo/role_diamond: 8e75858 | moritz++ | src/Perl6/Metamodel/RoleToRoleApplier.pm:
add missing sigil, jnthn++. Sadly it does not fix the problems with composition.t
19:51
19:52 cognominal_ joined 19:55 cognominal left 20:01 GlitchMr left, ksi joined
japhb Is there a unified performance test suite yet, akin to roast but with a different goal? 20:06
moritz notreally
pmichaud has a "rakudobench" repo though 20:07
japhb moritz, 'rakbench' or 'rpbench'? 20:09
masak pop quiz: what does :COMPILING on quasi blocks and the 'lift' statement prefix have in common?
sorear masak: just about everything
masak s/does/do/
sorear: you mean they are two aspects of the same thing?
sorear yes
20:10 drbean left
masak that seems about right. 20:10
I hadn't realized before, but it's evident from reading STD.pm6
masak re-reads the 'lift' spec 20:11
japhb grumbles at pmichaud for having README files in his repos -- that are zero-byte files.
masak it's the recommended github way ;) 20:13
oh, here's another one: "Macros are sub calls, but by the time you run your code, they already happened (and they wrote some code for you)" 20:15
20:16 drbean joined
moritz doesn't see the commonality off-hand 20:16
oh, maybe I do :-) 20:17
sorear moritz: both of them work by turning lexical references into late bound things
masak sorear: here's what I don't understand: in 'lift', the 'caller' is the caller. in 'quasi', the 'caller' is the code that the AST gets stitched into
oh, I guess it's a caller, but at compile-time. or something.
at parse-time. 20:18
sorear masak: that will Just Work if quasi gets a lexical scope
niecza: my $x = 5; { my $x = 8; say $CALLER::x }
masak sorear: that's interesting, we were just talking about that.
p6eval niecza v10-243-g51e9a26: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/ISiEDqpME2 line 1:␤------> my $x = 5; { my ⏏$x = 8; say $CALLER::x }␤␤5␤»
sorear since {} really means {}()
masak sorear: so a quasi's lexical scope doesn't really get "flattened" and disappears upon macro application? 20:19
s/disappears/disappear/
sorear masak: the correct question to ask yourself is 'what should quasi { my $x } do?'
masak right. 20:20
sorear should reread R5RS
masak we just hit upon that case 15 minutes ago :)
sorear We? 20:21
masak I'm at a three-day jnthn hackathon.
headbangin'
sorear jnth(o)n? 20:22
jnthn :P
dalek p/reprapi2: 0fd5c74 | jnthn++ | src/6model/sixmodelobject.h:
Add new copy_to operation to the REPR API.
p/reprapi2: 337cd40 | jnthn++ | src/6model/reprs/ (7 files):
Implement copy_to methods for all the reprs; untested.
moritz typo and copy_o? :-) 20:23
oh, I read 'copy_o' instead of 'copy_to'
read-o :-)
jnthn lol
masak :P-o
benabik masak: Use a napkin, you're drooling. 20:24
masak it's a lolipop, but I'm holding it the wrong way.
moritz jnthn: could you please add a VERSION file in the libtomath dir so that we know which version has been imported? (no hurry though)
jnthn As long as you don't do that with the iPhone 4
benabik Because everyone knows the best part of the lollipop is the paper stick? 20:25
jnthn benabik: At first it seems pretty bad, but if you stick with it...
moritz: ah, that's probably a good idea
:)
masak benabik: I got it from Alan Perlis...
benabik masak: Huh? 20:27
masak When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. -- Alan Perlis
benabik :-D 20:28
masak :-Do-
benabik I guess we should rename "use DWIM" to "use Lollipop".
masak when I see that quote, I think of something like Haskell. 20:29
or perhaps Prolog.
japhb Where is the doc that tells people how to do Unicode in various editors and environments? Just tripped over a nice Emacs-specific web page, thought it might be nice to add it to that doc (if not already there) 20:30
Juerd japhb: In general, at least under Linux, if you set your locale correctly, you don't have to do anything special in order to edit utf8 documents. 20:32
Or use it on irc :)
japhb Juerd: I meant, knowing the right key combos to insert the characters (by name, by hex-code, by compose, etc.) 20:33
Juerd That's not necessarily a unicode thing :)
I prefer a platform wide solution for this
I've set up my X with Caps Lock as Multi_key 20:34
Which then works in every application, including anything in terminals.
20:34 danishman left
japhb Emacs doesn't play well with platform input solutions (that I've seen, at least). 20:34
Juerd Sounds unlikely 20:35
Juerd installs emacs to find out
Er moeten 28,5 MB aan archieven opgehaald worden.
Door deze operatie zal er 101 MB extra schijfruimte gebruikt worden.
101 MB for an editor?
dalek ecza: db7fa59 | sorear++ | / (6 files):
A bit more decrufting for NieczaCompiler
sorear Juerd: emacs is an OS
japhb Juerd, well, for example, the standard "input a char by hex code" in GNOME is ctrl-shift-u . That combo in Emacs will get it wondering what you want to do with ctrl-u 20:36
.
Juerd juerd.nl/i/9b9bf42f127f137cd4b973d766d8c067.png
japhb Emacs wants ctrl-x 8 enter for that
Juerd With "platform" I meant something wider than just gtk or gnome 20:37
If you set your X keyboard stuff correctly, it works in every application
sorear another thing I've learned is there's no good way to enter *any* character 20:38
masak TimToady: sorear says a quasi block is a block, even at runtime. is he right?
japhb Juerd, sure ... but I work on enough machines I don't control, that I'd like to know the above-X methods as well. :-)
Juerd That's why you set it up on your linux box, and then connect to all those machines you don't control using ssh :) 20:39
sorear I have entirly different systems in place for entering Japanese, entering accented Latin, and entering by hex codes
At some point I need to find and install a fourth system for entering Cyrillic
it's getting tiring.
Juerd Anyhow, someone told me how to make « and » in vim. I didn't know that it could do that, because I had never needed the feature. 20:40
japhb Juerd, heh. I do that pretty much for all the ones I *connect* to. But I also teach people in my department. So I often need to sit down at *their* workstation and type
Juerd I just hit CapsLock < <
japhb: Oh, I just don't write letters and code on other people's computers
They usually run Windows and don't have any suitable editor installed. 20:41
japhb chuckles
Juerd Fortunately I always bring my own laptop :)
20:41 Trashlord left
japhb There are 5 OSen being actively used for people's workstations in my department. 4 of them are unix-like. 20:41
Juerd I have to, anyway, because it has my private ssh key that I need for mail and irc
(Although admittedly I could use a password to login on feather) 20:42
japhb Argh. What's the workaround to get a high-precision timestamp in Rakudo on 32-bit?
Ah, found it, I think 20:47
nom: say ~pir::time__N();
p6eval nom 36d829: OUTPUT«1320007644.24148␤»
japhb pops his yak stack 20:48
20:54 DarthGandalf left 20:59 DarthGandalf joined 21:00 MayDaniel joined
dalek p/reprapi2: 0225bd8 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Start refactoring the way P6opaque handles flattened in attributes; mostly this prepares for getting box/unbox righter and storing s-tables of flattened in things.
21:09
p/reprapi2: 648845a | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Box/unbox operations in P6opaque now delegate to the representation managing that flattened attribute.
21:17 snearch joined 21:20 wolfman2000 joined
tadzik nom: say so Mu ~~ Any 21:24
p6eval nom 36d829: OUTPUT«Bool::False␤»
masak no 'so' required. 21:26
it's already a Bool.
jnthn nom: say so WHAT ... 21:28
p6eval nom 36d829: OUTPUT«Bool::False␤»
cognominal_ nom: so Cool 21:29
p6eval nom 36d829: ( no output )
tadzik nom: say "so Cool, {so Cool}" 21:30
p6eval nom 36d829: OUTPUT«so Cool, False␤»
tadzik perl6: my $a = False; $a += True; $a += False; say $a.perl 21:31
p6eval rakudo 36d829, niecza v10-244-gdb7fa59: OUTPUT«1␤»
..pugs b927740: OUTPUT«\1.0␤»
tadzik woot, MIME::Base64 just works on nom 21:34
cognominal_ nom: say Whatever.new but so Cool 21:35
p6eval nom 36d829: OUTPUT«*␤»
jnthn but so Cool...the new way to say but False :P 21:36
geekosaur I thought it was saying no, it's not so really Cool after all :p 21:37
cognominal_ nom: say "be a rakudo ", Whatever.new but so Cool 21:38
p6eval nom 36d829: OUTPUT«be a rakudo *␤»
[Coke] colomon: I have a test script that runs everything that isn't in t/spectest.data and saves the output; I then troll it for output that has a bunch of "ok"s in a row that look amenable to fudging. 21:40
colomon [Coke]++ 21:41
cognominal_ nom: say "PHP sucks" if not so Cool
p6eval nom 36d829: OUTPUT«PHP sucks␤»
[Coke] colomon: I'm not sure it's worth making smarter, but you're welcome to the oneliner. 21:46
colomon please! 21:47
[Coke] for file in `tools/unrun_tests`; do echo $file; echo "------"; ./ft $file | grep -v "^ at"; done 2>&1 | tee testall.out
hurm. that calls ft, which si: 21:48
gist.github.com/1326494 21:51
(I have one for running the test plain to see the individual tests, (ft) and one to see if the whole test passes (st)
you can pass in just the spec path to those, even if you're in the top level. 21:52
enjoy. fudge away. ;)
most of the ones left at this point are hard to fudge for one reason or another.
(require fixes to niecza's interaction with fudge, I think.)
if sorear adds more tests that he thinks he should be running but isn't to t/spectest.data (just comment them out), I can start tracking the failure modes like I am for rakudo, also. 21:54
(separate one-off script for that, too)
masak 'night, #perl6 22:01
[Coke] masak: ~~ 22:04
dalek p/reprapi2: 281bfbf | jnthn++ | src/ (11 files):
Make allocate operation more consistent with the rest of the API. Get P6opaque's get_attribute_boxed handle the flattened case (untested yet, but probably rightish).
22:05
p/reprapi2: 8f536de | jnthn++ | src/ (9 files):
Switch binding of natively typed attributes over to the new REPR API. Seems to work fine.
22:08 donri joined
sorear [Coke]: one thing I've been doing to help spectesting is ulimit -t 60 #cpu seconds 22:10
[Coke] sorear: ah, so you don't have to manually kill hangs? nfity 22:14
22:17 wolfman2_ joined 22:20 wolfman2000 left 22:21 cognominal_ left, cognominal_ joined
sorear [Coke]: that was the goal, although it has yet to prove itself in action 22:24
22:25 DarthGandalf left
dalek p/reprapi2: a76cd8b | jnthn++ | src/ (10 files):
Switch normal attribute binding over to the new REPR API.
22:31
[Coke] more helpful on the anti-spectest, running the unknown tests. 22:32
22:32 DarthGandalf joined
jlaire .u ᨴ 22:32
phenny U+1A34 (No name found)
22:40 melba joined
djanatyn I found myself writing perl5 code for the first time in a long time, and then I thought, "hey!" 22:41
"this is totally do-able in perl6."
so, let's try this in perl6 :)
my task:
facebook has the option to download an .ics file containing all of your friend's birthdays. 22:42
upon further inspection, it turns out an .ics file is just a flat text file.
you can grab information from the file with regex 22:43
I want to parse all this information, and maybe use perl6's oop to have a person class, and each person has a birthday
dalek p/reprapi2: b446492 | jnthn++ | src/ (9 files):
Update hint_for for consistency with the rest of the REPR API.
22:44
tadzik djanatyn: sounds quite cool
22:44 PacoLinux left
djanatyn tadzik: yeah 22:44
jnthn phew, most of the way there with this repr update 22:45
tadzik maybe this .ics is some common file format for which you could write a parser
djanatyn I don't use perl very much at all these days - I've been using python, lisp, and haskell for the most part
yeah, it seems like it would be really simple
22:45 drbean left
djanatyn there were a bunch of ics parsers already available for perl 5, but since I was just doing this for fun, I wanted to try to do it myself 22:45
so, let's see here! 22:46
looks like there are some cool graphing libraries for perl6 too 22:48
22:49 pmurias left 22:50 drbean joined
dalek p/reprapi2: 7218de5 | jnthn++ | src/ (9 files):
Update is_attribute_initialized to be consist with the rest of the REPR API.
22:53
22:55 DarthGandalf left, snearch left
jnthn sleep & 23:10
23:10 Trashlord joined
djanatyn are there any good documents I could read about perl 6 file io? 23:21
23:22 alester joined 23:25 icwiener left 23:32 DarthGandalf joined 23:33 carlin left 23:39 preflex left 23:40 ksi left, preflex_ joined 23:41 preflex_ is now known as preflex
japhb Ouch. @A X~ @A appears to be REALLY slow when @A == 500 23:42
.oO( Oh man, another yak for the stack )
23:43
23:50 DarthGandalf left, ggoebel joined 23:55 DarthGandalf joined 23:57 melba left 23:58 thou left