»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
augustus | i mean when writing the slangs, you must do it in NQP? | 00:00 | |
sorear | oo, jsp | ||
lizmat | r: my $a=1; say $a; $a=Nil; say $a # should say 1 (Any) | ||
camelia | rakudo 516d49: OUTPUT«1Nil» | ||
FROGGS | augustus: I only know that one can do it in nqp, I'm not sure if it is possible or not in rakudo/Perl 6 | 00:01 | |
lizmat | I've fixed src/vm/parrot/guts/container.c to always check for Nil and put the default value instead if Nil was the value to be assigned | ||
A number of spectests fail because of this specced behaviour | 00:02 | ||
I've listed them at gist.github.com/lizmat/5941715 | |||
augustus | froggs: I see. I'm not clear on how much it matters. I expect that 95% of the work is just translating the grammars, the actual actions are probably quite simple. | ||
lizmat | along with the diff | ||
I will look at the failing tests more deeply tomorrow | 00:03 | ||
of course, if anybody wants to beat me to it, feel free! | |||
labster | I'll try to fix the io tests at the end of that list | 00:06 | |
augustus | froggs: also, I understand it should be theoretically possible to load an XML schema, have it generate a new grammar, which can then be used, all at compile time, right? | 00:07 | |
colomon | test finished. | ||
18 mins on the MBP (for JVM spectest) | 00:08 | ||
FROGGS | augustus: should be possible, yes | ||
colomon | Is that really 900+ more passing tests than this morning?!? | ||
augustus | froggs: is there any documentation about grammars that would help me understand how to dynamically build one, or is that something I kinda have to trial-and-error? | 00:09 | |
00:10
BenGoldberg joined
|
|||
FROGGS | augustus: are you familiar with Perl 6 grammars in general? | 00:10 | |
augustus | froggs: i have read through the synposises (sp?) I guess, but I have not done a serious one yet | 00:11 | |
froggs: so generally yes, but not in a detailed way | |||
FROGGS | augustus: this is a good start: www.youtube.com/watch?v=oo-gA9Z9SaA | 00:12 | |
but I'm not sure what the best way is to build a grammar by a given schema | |||
augustus | froggs: ok cool, I will check it out. As a general thing, are the synpsosises still current? i'm having trouble telling what documentation has been superceded | ||
lizmat | TimToady: I got a working rakudo that always sets the default on a container when Nil is assigned to it | ||
FROGGS | augustus: the synopsis are usually up-to-date, yes... but you cant be sure that everything is implemented what you read there | 00:13 | |
lizmat | as a side effect, this makes $/ to be (Any), and causes things such as $/.chars to fail, as Any does not have a .chars | ||
e.g. perl6 -e "'abcdefghij'.trans(/<[aeiou]> \w/ => '')" | 00:14 | ||
No such method 'chars' for invocant of type 'Any' | |||
in method increment_index at src/gen/CORE.setting:5140 | |||
in method increment_index at src/gen/CORE.setting:5137 | |||
in method next_substitution at src/gen/CORE.setting:5160 | |||
in method trans at src/gen/CORE.setting:5202 | |||
the code that fails is " $!index = $!next_match + $/.chars;" | |||
augustus | froggs: is there any better place for documentation? | ||
lizmat | TimToady: I guess this indicates a more general problem with Nil. Perhaps this can be solved by making $/ to be an Iterator by default, just like Nil now is? | 00:15 | |
FROGGS | augustus: doc.perl6.org/ and the test suite here: github.com/perl6/roast | 00:16 | |
lizmat | calling it a day now, gnight #perl6! | 00:17 | |
colomon | \o | ||
FROGGS | gnight lizmat | ||
augustus | froggs: ohh excellent thank you. | ||
FROGGS | augustus: you're welcome | ||
00:17
woolfy1 joined
|
|||
augustus | on a completely unrelated note, I assume that junctions should work with smart-matching right? I was having problems with type checking like Int ~~ [&] @list to verify that everything in a list is an Int etc. The junctions just refused to work with ~~ in any way; but this was Rakudo* from like May 30th. | 00:19 | |
00:20
woolfy left
|
|||
colomon | augustus: I don't think you can type check like that. | 00:22 | |
all(@list) ~~ Int ought to work, I think | |||
rn: my @list = 1..10; say all(@list) ~~ Int | |||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«False» | ||
colomon | rn: my @list = 1,10; say all(@list) ~~ Int | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«False» | ||
colomon | or not | ||
rn: my @list = 1,10; say so all(@list) ~~ Int | 00:23 | ||
augustus | colomon: I think it should work in general | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«False» | ||
lue | r: my @a = 1,2,3; my @b = 5,6,7.89; say ?(@a »~~» Int).all; say ?(@b »~~» Int).all; | ||
camelia | rakudo 516d49: OUTPUT«TrueFalse» | ||
lue | you can also type ? [&] (@a »~~» Int) if you prefer the look of [&] :) | ||
colomon | admittedly, my approach of choice would probably be !@list.grep(not Int) (not sure if that is exactly right) | 00:24 | |
augustus | lue: ok I get hyper-operating the smart match | ||
colomon | rn: my @list = 1,10; say so !@list.grep(not Int) | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«False» | ||
colomon | rn: my @list = 1,10; say so @list.grep(Int) | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«True» | ||
colomon | rn: my @list = 1,10; say @list.grep(Int) | 00:25 | |
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«1 10» | ||
colomon | rn: my @list = 1,10; say @list.grep(not Int) | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«1 10» | ||
lue | (fwiw, I'm kinda surprised (1&2&3) ~~ Int doesn't dwim.) | ||
augustus | sorry, I should clarify a little, I'm not looking for a work around, I'm just trying to understand if there's a reason smart matching wouldn't work with junctions, or whether it's a bug (I assume it's a bug) | ||
colomon | Actually, I think it might be right | 00:26 | |
augustus | it's not just type-checking, but any smart matching | ||
but there's no other way to type check than to smart match | |||
colomon | I have a very impression that junctions only work on the right hand side of smart matches | ||
s/very/vague/ | |||
lue | Even if it worked, the smartmatch would return (True, True, True), which you have to turn into an all junction and test for validity anyway. | ||
( which is what I do in the end with ? [&] (stuff) ) | 00:27 | ||
augustus | hmm, wait, why would it be different between == and ~~ ? | ||
I would expect them to behave in an analagous fashion | |||
colomon | == is symetrical, ~~ definitely is not | 00:28 | |
augustus | meaning $a ~~ $b does not imply $b ~~ $a? | ||
00:29
raiph left
|
|||
colomon | absolutely! | 00:29 | |
(I mean, absolutely it is not the same) | |||
rn: say 1 ~~ 1..10; say 1..10 ~~ 1 | |||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«TrueFalse» | ||
augustus | well it's not immediately clear why that would be, but ok | ||
colomon | because the right hand side is what you are matching | 00:30 | |
augustus | I would expect symmetry whenever the types of $a and $b are different | ||
colomon | no, the right hand side determines how the matching is done. | 00:31 | |
augustus | but I could understand different behavior when $a and $b have the same type | ||
colomon | every class gets to decide / define how it smart matches. | ||
lue | I heard about a time when ~~ was symmetrical, and that didn't go too well. | ||
00:31
raiph joined
|
|||
colomon | so for instance, "abc" ~~ /a/ means match the regex against "abc" | 00:32 | |
augustus | I'm curious then how /a/ ~~ "abc" wouldn't mean the same thing | 00:33 | |
sorear | /a/ ~~ "abc" stringifies the regex and tests it using * eq "abc" | ||
colomon wrote a line that said that, but it disappeared | |||
sorear | smart matching is determined by the type of the right side. regexes execute, strings do eq, numbers do == | ||
colomon | ranges check to see if the left hand side is in the range... | 00:34 | |
sorear | r: say "22.0" ~~ 22; say 22 ~~ "22.0"; # when 22 is in the right we do a numeric equality check, when "22.0" is on the right we do a string check | ||
camelia | rakudo 516d49: OUTPUT«TrueFalse» | ||
augustus | hmm, good to know. Seems like a different symbol should have been chosen then to indicate the directionality, and there should be another one that is symmetrical, but that's a discussion for another day I guess | 00:36 | |
colomon | how would a symmetrical one possibly work? | 00:37 | |
sorear | A ~~ B is approximately sugar for B.ACCEPTS(A) | ||
(except that ~~ is a topicalizer) | |||
colomon: Badl? | |||
augustus | I would expect that the smart match was defined for pairs of types | 00:39 | |
colomon | augustus: think of how given / when would work with that. | 00:40 | |
so "when 1" would be == if we were given another Int | |||
but we were given a type, it's suddenly type matching? | 00:41 | ||
augustus | um, if you say given Int when 1 I would expect it to match | ||
colomon | and if you add a new class, you have to define how it matches with every other type? | 00:42 | |
augustus | well that's pretty much the case already right? | ||
colomon | not at all | ||
rn: class MyNewClass { method Str() { "shiny"; }; }; say MyNewClass.new() ~~ "shiny"; | 00:44 | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«True» | ||
colomon | rn: class MyNewClass { method Str() { "shiny"; }; }; say MyNewClass.new() ~~ 10; | ||
camelia | rakudo 516d49: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: Mu *%_) in method Numeric at src/gen/CORE.setting:884 in sub infix:<==> at src/gen/CORE.setting:3315 in sub infix:<==> at src/gen/CORE.setting:3313 in method ACCEPTS at src/gen/CORE.setting:3… | ||
..niecza v24-86-g39ab531: OUTPUT«Unhandled exception: Cannot use value like MyNewClass as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 296 (Any.Numeric @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.sett… | |||
augustus | colomon: if you want to implicitly cast your new class to a String and smart match from there, that's fine, but you've still effectively defined a match with every other type. You just delegated to Str | 00:45 | |
colomon | smart matching with a string RHS ALWAYS calls eq, which will call .Str under normal conditions | 00:46 | |
As you can see above, when I smartmatched with an Int, it didn't work at all, because there is no way to cast my new class to a number | 00:47 | ||
and the reverse is not defined, either... | |||
rn: class MyNewClass { method Str() { "shiny"; }; }; say "shiny" ~~ MyNewClass.new(); | 00:48 | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«False» | ||
colomon | ah, Any.ACCEPTS calls ===, and that's what MyNewClass gets | 00:49 | |
augustus | I assume that if you defined method Int then it would work | ||
colomon | yes | ||
errr, actually not? | 00:50 | ||
rn: class MyNewClass { method Int() { 42; }; }; say MyNewClass.new() ~~ 42; | 00:51 | ||
camelia | rakudo 516d49: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: Mu *%_) in method Numeric at src/gen/CORE.setting:884 in sub infix:<==> at src/gen/CORE.setting:3315 in sub infix:<==> at src/gen/CORE.setting:3313 in method ACCEPTS at src/gen/CORE.setting:3… | ||
..niecza v24-86-g39ab531: OUTPUT«Unhandled exception: Cannot use value like MyNewClass as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 296 (Any.Numeric @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.sett… | |||
colomon | rn: class MyNewClass { method Numeric() { 42; }; }; say MyNewClass.new() ~~ 42; | ||
camelia | rakudo 516d49, niecza v24-86-g39ab531: OUTPUT«True» | ||
augustus | colomon: thank you for the interesting discussion, but I have to go. hopefully I will see you around again later. | ||
colomon | o/ | ||
have a good weekend! | 00:52 | ||
augustus | :) | ||
00:52
augustus left
|
|||
colomon | hmmm, I'm still getting sprintf aborting tests? | 00:58 | |
01:00
FROGGS_ joined
|
|||
dalek | p: 80e2674 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/JavaCallinException.java: Add missed file for interop |
01:00 | |
p: 661dd1f | sorear++ | / (2 files): Start to document interop stuff |
|||
sorear | I see a couple paths forward at this point: | 01:01 | |
1. add as much nice sugar as possible to BootJavaInterop, and let everyone use that. (That isn't much, since BootJavaInterop is necessarily HLL-agnostic and can't use native Perl 6 or NQP types). | 01:02 | ||
2. add a nice sugary NQPJavaInterop which uses NQP arrays and hashes. Let Perl 6 use that. | |||
3. Go all the way to RakudoJavaInterop, and leave NQP alone. | |||
4. Some combination of the above | |||
01:03
FROGGS left
|
|||
colomon | is there a way to make the other NQP backends interop with Java? | 01:04 | |
sorear | you mean Parrot? | 01:05 | |
colomon | or MoarVM | 01:06 | |
Just pondering your options | 01:07 | ||
thinking about leaving NQP alone. | |||
sorear | colomon: I think *waves hands vigorously* that interfacing with a JVM from outside is going to look very different from interfacing with one from inside | 01:17 | |
colomon | makes sense | 01:18 | |
have you given any thought to calling into jakudo from the JVM? :) | 01:19 | ||
sorear | we have general callins already | ||
colomon | oh, sweet. | ||
sorear | although they currently have to be set up by jnqp code | ||
colomon | I'm looking forward to the day I can make a Processing app call into my perl6 code. :) | 01:21 | |
sorear | although it would only be about 10-20 lines of code to do the equivalent of a nqp::loadbytecode, nqp::gethllglobal and then get references to perl 6 functions that way | 01:22 | |
which could then be passed to invokeDirect | 01:23 | ||
colomon | sweet! | 01:24 | |
02:00
FROGGS__ joined
02:04
FROGGS_ left
02:06
kingbeast left
|
|||
[Coke] | r: say 25364 / 26160 | 02:07 | |
camelia | rakudo 516d49: OUTPUT«0.969572» | ||
[Coke] | masak++ FROGGS++ jnthn++ sorear++ | 02:08 | |
colomon | amen | ||
[Coke] | r: say 25364 *.97-26160 | ||
camelia | rakudo 516d49: OUTPUT«-1556.92» | ||
[Coke] | r: say 26160*.97-25364 #oops | 02:09 | |
camelia | rakudo 516d49: OUTPUT«11.2» | ||
colomon | 11 tests to hit 97%? | 02:10 | |
[Coke] | Yes. | ||
colomon | damn that's tempting... | 02:13 | |
[Coke] | gist.github.com/coke/5879701 - redid the test abort list. 2 new sprintf errors near the bottom | 02:17 | |
02:18
PacoAir left
|
|||
colomon | [Coke]: yes, I've been looking at the 5.2g error this evening. | 02:18 | |
[Coke] | that's 61 tests. | 02:19 | |
colomon | yeah, I'm not solving it, though. :\ | 02:21 | |
my NQP skills are still pretty weak | 02:22 | ||
and I need to go to bed soon | 02:28 | ||
Hmph. May have just done it, but my solution is gratuitously stupid. :\ | 02:31 | ||
02:36
BenGoldberg left
02:37
SamuraiJack joined
02:39
xilo_ left
02:40
xilo_ joined
02:41
xilo_ left
02:42
xilo joined
|
|||
colomon | rn: printf("%e", 10**99) | 02:44 | |
camelia | niecza v24-86-g39ab531: OUTPUT«1.000000e+099» | ||
..rakudo 516d49: OUTPUT«1.000000e+99» | |||
colomon | rn: printf("%e", 10**999) | ||
camelia | niecza v24-86-g39ab531: OUTPUT«Infinity» | ||
..rakudo 516d49: OUTPUT«Inf» | |||
colomon | hmmm | ||
rn: say log(10**99) | 02:45 | ||
camelia | niecza v24-86-g39ab531: OUTPUT«227.95592420641051» | ||
..rakudo 516d49: OUTPUT«227.955924206411» | |||
colomon | rn: say log(10**99) / log(10) | ||
camelia | niecza v24-86-g39ab531: OUTPUT«98.999999999999986» | ||
..rakudo 516d49: OUTPUT«99» | |||
colomon | bedtime | ||
02:47
SamuraiJack left
02:58
colomon left
03:05
preflex left
03:06
preflex joined,
ChanServ sets mode: +v preflex
03:27
snoopy left
03:31
Radvendii joined
03:50
benabik left
|
|||
raiph | .tell augustus example of grammar dynamically building grammar: rosettacode.org/wiki/Parse_EBNF#Perl_6 | 04:01 | |
yoleaux | raiph: I'll pass your message to augustus. | ||
04:11
thou left
04:32
ivan``_ is now known as ivan``
04:33
SamuraiJack joined
04:41
Radvendii left
04:52
_jaldhar joined,
jaldhar left
05:09
SamuraiJack left
05:11
araujo left
05:12
SamuraiJack joined
05:18
popl joined,
popl left
|
|||
dalek | kudo/nom: 2b3dbfb | sorear++ | src/vm/jvm/ (5 files): s:g/Ops/RakOps/ |
05:18 | |
sorear | something jnthn and I talked about a couple weeks ago but never actually happened... cuts down on unsightly org.perl6.nqp.runtime.Ops qualification, and stops jdb from getting confused when it sees two Ops.java files | 05:19 | |
05:29
SamuraiJack left
|
|||
JimmyZ | \o/ | 05:32 | |
Good evening, sorear | |||
sorear | hi, JimmyZ | 05:40 | |
JimmyZ | hello :D | 05:41 | |
05:50
kaare__ joined
05:51
kaare__ is now known as kaare_
05:53
amodell joined
05:54
raiph left
06:06
ztt joined
06:07
amodell left
06:10
_jaldhar left
06:12
dwoldrich joined
06:21
kaare__ joined
06:24
kaare_ left
06:34
pochi_ joined
06:35
nebuchad` joined
06:36
scottp joined,
kaare_ joined
06:38
robins joined,
moritz_ joined
06:39
pjcj_ joined
06:43
kaare__ left,
FROGGS__ left,
woolfy1 left
06:46
domidumont joined
|
|||
dalek | p: 85187bc | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java: For 6model method usability, have adapter functions always take an invocant, even if ignored |
06:48 | |
06:48
konundra left
|
|||
dalek | p: d0fcc5e | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Remove a pointless and warning cast |
06:51 | |
06:52
FROGGS__ joined,
woolfy joined
06:53
takesako______ joined
06:56
xiaoyafeng joined
07:01
xiaoyafeng left
07:02
domidumont left
07:03
domidumont joined
07:06
ztt left
|
|||
dalek | p: e1a2ed0 | sorear++ | / (2 files): Systematize interop sub names and add short forms |
07:08 | |
07:10
daniel-s joined
07:17
SamuraiJack joined
|
|||
dalek | p: 2e10baf | sorear++ | / (2 files): Do a little bit of the dynamic type gen for BootJavaInterop |
07:28 | |
07:28
iSlug joined,
FROGGS__ is now known as FROGGS
|
|||
FROGGS | morning | 07:29 | |
morning sorear :o) | |||
moritz_ | good morning | 07:30 | |
FROGGS | hi moritz_ | ||
07:30
moritz_ is now known as moritz
|
|||
sorear | morning FROGGS. | 07:30 | |
moritz should name himself a bit more civilized again | |||
sorear | ??? | 07:31 | |
FROGGS | s/_$// | ||
sorear: we are near the point where we fudge things for rakudo-jvm? | 07:32 | ||
it is sort of hard to track regressions... | |||
I record now my spectest output, run two other spectests (with another sprint-patches, one unmodified), and will read then the diff of the test runs | 07:33 | ||
sorear | FROGGS: the fudger handles the syntax #?rakudo.jvm skip, #?rakudo.parrot skip | 07:34 | |
I added that the day we started running spectests | |||
FROGGS | maybe I'll add an devtest target to highlight regressions... | ||
sorear | if you think fudging is a good idea, go for it | ||
FROGGS | yeah, but we dont actually use it right now, so you get a ton of fails, and you dont know if it was your fault | 07:35 | |
sorear | better todo than skip, since then we know when we've fixed it | ||
we're over 95%, so many fewer fails than when we were 50%ish :) | |||
FROGGS | no, I just wanna see what I have broken by an unstaged patch | ||
sorear: I basically want that when running the tests: usev5.files.wordpress.com/2013/07/hack.png | 07:36 | ||
so you can abort the test run after five minutes if there are some regressions already | 07:37 | ||
sorear | well this is a new one: gist.github.com/sorear/3a0ce2b9d857150b2008 | 07:43 | |
07:48
dwoldrich left
|
|||
dalek | p: 3a6ec82 | sorear++ | / (4 files): Streamline use of interop object a bit |
07:48 | |
sorear | I think I have that roughly as sugary as the BOOT version has any right to be | 07:49 | |
(see doc patch in last commit) | |||
there will be a P6JavaInterop subclass that handles stuff like container marshalling, lvalue fields, and overloading | 07:50 | ||
JimmyZ | sorear++, it's nice | ||
07:54
nebuchad` is now known as nebuchadnezzar
|
|||
sorear | oh, and transparent callback marshalling. can't forget that | 07:55 | |
sorear thinks we can do $p6interop.type('java.lang.Thread').new( { say "hello, world" }, "HelloThread" ).start() | 07:56 | ||
you won't be able to do that with the BOOT version because 1. no transparent callback marshalling 2. no multiple dispatch on the new | 07:57 | ||
FROGGS | moritz: I know you are a math-pro, do you think you could get the basics done for sprintf "%e" ? playground would be here: gist.github.com/FROGGS/7a14e5d8843...tf-pl-L222 | 07:59 | |
sorear | www.ampl.com/REFS/rounding.pdf | 08:01 | |
FROGGS | sorear: is it a problem that I cant read the formulas on page two? R-[ | 08:02 | |
but I'll read through it | 08:03 | ||
sorear | FROGGS: technical issues or lack-of-background issues? | 08:06 | |
FROGGS | ahh, that explains not_gerd's commit comment | ||
sorear: the latter | |||
08:06
mikemol left
08:24
araujo joined,
araujo left,
araujo joined
08:47
colomon joined
|
|||
masak | good morning, #perl6 | 08:49 | |
dalek | p: 2f317f6 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java: Move misplaced exists_pos out of the Associative section |
08:50 | |
p: 94b4100 | sorear++ | / (2 files): Add "proxy", a lightweight way to turn coderefs into Java interfaces |
|||
sorear | o/ masak, colomon | 08:51 | |
colomon | \o | 08:52 | |
masak | I'm relieved to see that sprintf in Rakudo survived the night ;) | 08:57 | |
FROGGS | hi masak, hi colomon | ||
masak: I have a patch here that handles sprintfing floats < 1, but I need to track at least one regression down before I can commit | 08:58 | ||
(if you wonder why stagestats prints 0 instead of 0.000) | |||
09:01
robins is now known as robinsmidsrod
|
|||
dalek | ecs: 8854a63 | masak++ | S99-glossary.pod: [S99] add "HPMoR" entry |
09:03 | |
masak | FROGGS: nice. keep up the good work! | 09:04 | |
colomon | masak: I played around with adding e and g last night, but gave up on it because I knew I needed to wake up insanely early this morning. (ie now) | ||
FROGGS | (masak: I want to trick moritz in hacking %e, but don't tell him) | ||
masak | colomon: speaking of which, you're up insanely early this morning! | 09:07 | |
FROGGS: ok, it'll just be our little secret, then. | 09:08 | ||
colomon | have to drive (well maybe ride) an hour then catch an early plane. | ||
o/ | |||
09:08
colomon left
|
|||
dalek | p: 98e5e6a | sorear++ | examples/CallFromJava.java: Start on a calling-from-java example for colomon |
09:13 | |
sorear | grrk. missed him | ||
.tell colomon github.com/perl6/nqp/commit/98e5e6ad10 | |||
yoleaux | sorear: I'll pass your message to colomon. | ||
sorear | .tell colomon Let me know what you'd like to see examples of in there. | 09:14 | |
yoleaux | sorear: I'll pass your message to colomon. | ||
09:16
vruiz joined
|
|||
masak | #parrot is very useful for getting a quick overview of the rakudo/nqp commits that happened overnight. | 09:20 | |
sorear | :P | ||
masak | it's like #perl6 but minus the discussion. | ||
FROGGS: plural of "synopsis" is "synopses" ;) | 09:22 | ||
FROGGS | k, thanks :o) | ||
vruiz | is it time to switch to perl6? | 09:23 | |
sorear | from? | ||
vruiz | from perl5 | ||
sorear | switch what? | ||
vruiz | 5.8 | ||
start using perl6 in my work | |||
sorear | 5.8? you poor soul, no // | 09:24 | |
vruiz | i mean, is perl6 a complete perl system to support every day work at enterprises? | 09:25 | |
sorear | well, uh, sure, no reason not to give it a try | ||
perl6 won't support ALL of my daily work, but then neither will perl5 | |||
vruiz | what about the lerarning curve? | 09:26 | |
masak | vruiz: here's the thing: if you're asking that question, then you are probably not ready to switch. | ||
vruiz: but I am, for example. I've been writing Perl 6 for 8 (!) years, and more and more every day. | |||
(well, on average at least) | |||
sorear | (!) indeed | 09:27 | |
vruiz | i see, and then why is it not extended as perl5, it makes me think in something like IPv4 and IPv6, never comes the change | ||
masak | vruiz: yeah, that's a good comparison. | 09:28 | |
vruiz: in the fullness of time, I think those who see a point in switching will switch. | |||
vruiz: the rest? let them use Perl 5 if they want. we're not here to force anyone. | |||
I see my job as presenting Perl 6 in the best light possible, so that people will at least try it out. | |||
and some percentage of those who try it out will go "this is awesome! why doesn't everyone use this?", and then they will probably switch. | 09:29 | ||
but in general, you can't make people switch. | |||
it's Open Source, man. :) people use what they want. | |||
09:29
spider-mario joined
|
|||
vruiz | what i really expect to switch is to write code more a like python | 09:29 | |
moritz | also people switching and code base switching are two very different things | 09:30 | |
masak | some poor sods are still on perl 4, you know. *shudder* | ||
moritz | even when Perl 6 will be much faster and more robust than it is today, it'll make sense for many existing code bases to remain in perl 5 | ||
simply because the cost of switching is too high | |||
masak | yeah. | ||
sorear | bah! | ||
rakudo sets up the compiler in a MAIN sub, so I can't just loadbytecode and getcomp it :( | |||
vruiz | i would like to have better OOP support | 09:31 | |
moritz | Perl 6 offers that, yes | ||
vruiz | preferably as simple as python | ||
i've read that to have true OOP requieres rewriting perl from scratch. Is that true? | 09:32 | ||
moritz | do you mean existing perl code? or the Perl language? or the perl compiler? | 09:33 | |
vruiz | perl code im'lementation | ||
masak | vruiz: do you count Moose as "true OO"? | ||
moritz | and what exact is "true OOP"? | ||
masak | vruiz: if so, then "no". if not, then "probably yes". | ||
sorear | Is there any good reason why rakudo:src/Perl6/main.nqp doesn't look like nqp:src/NQP/Compiler.pm ? | ||
masak | vruiz: but see stevan's p5mop effort for more information. | ||
vruiz | i'd like every thing would be an object | 09:34 | |
masak | vruiz: that just makes no sense :) | ||
vruiz | not just a wrapper clas to simulate it | ||
masak | vruiz: your worry that the compiler is taking too long -- is that an object? | ||
vruiz: a sunbeam hitting your keyboard in the morning -- is that an object? | |||
moritz | vruiz: autobox.pm exists | ||
vruiz | not, for sure, what i love from perl is it speed | ||
masak | vruiz: the total combination of all the bits in your computer and everyone else's -- is that an object? | 09:35 | |
*everything* can't be an object! | |||
sorear | r: say Set(0,1).PARROT | ||
camelia | rakudo 2b3dbf: OUTPUT«Cannot coerce object of type Capture to Set. To create a one-element set, pass it to the 'set' function in sub to-set at src/gen/CORE.setting:13617 in sub to-set at src/gen/CORE.setting:13610 in method postcircumfix:<( )> at src/gen/CORE.setting:13609 in bl… | ||
sorear | r: say Set([0,1]).PARROT | ||
camelia | rakudo 2b3dbf: OUTPUT«Cannot coerce object of type Capture to Set. To create a one-element set, pass it to the 'set' function in sub to-set at src/gen/CORE.setting:13617 in sub to-set at src/gen/CORE.setting:13610 in method postcircumfix:<( )> at src/gen/CORE.setting:13609 in bl… | ||
sorear | r: say set(0,1).PARROT | ||
camelia | rakudo 2b3dbf: OUTPUT«No such method 'PARROT' for invocant of type 'Set' in block at /tmp/1RZw0oweoW:1» | ||
sorear | r: say PARROT(set(0,1)) | ||
camelia | rakudo 2b3dbf: OUTPUT«===SORRY!===Undeclared name: PARROT used at line 1» | ||
vruiz | think of this: in unix every thing is managed as if it where afile, there are many benefits from this aproach | ||
moritz hasn't seen PARROT in a while | 09:36 | ||
sorear | r: say pir::typeof__sp(set(0,1)) | ||
camelia | rakudo 2b3dbf: OUTPUT«===SORRY!===error:imcc:The opcode 'typeof_p' (typeof<1>) was not found. Check the type and number of the arguments in file '(file unknown)' line 68» | ||
moritz | vruiz: that simply isn't true | ||
vruiz: file permissions aren't handled as files | |||
users aren't files | |||
masak | keypress events aren't files. | ||
moritz | lots of things aren't files, and aren't handled as files, in contemporary UNIX implementations | ||
masak | (but see Plan 9 for a really good attempt) | 09:37 | |
sorear | r: say pir::typeof__SP(set(0,1)) | ||
camelia | rakudo 2b3dbf: OUTPUT«Set» | ||
moritz | signals | ||
interrupts | |||
system calls | |||
the list goes on | 09:38 | ||
vruiz | ok, nothing is absoultely perfect, but i'd like to have a more friendly OOP programming with perl6 | ||
masak | vruiz: *ding*! you have it. | ||
vruiz | that's why i asked for switch | ||
masak | vruiz: your wish has been granted. OOP is more friendly in Perl 6. | ||
09:38
domidumont left
|
|||
vruiz | i'll give it a try | 09:39 | |
another item in my whishlist :-) | |||
masak | see rakudo.org/how-to-get-rakudo/ | 09:40 | |
vruiz | ok | ||
would you say that perl6 simplifies language syntax? | |||
from perl5? | 09:41 | ||
masak | in a way. | ||
I know many Perl 5 who would disagree strongly, though. | |||
sorear | there's more of it, but there are many fewer special cases | ||
masak | maybe put it like this: Perl 6's syntax is "bigger" in some sense. it does more things. | 09:42 | |
but it's also "simpler" in some sense. | |||
sorear | we've completely eliminated the indirect object ambiguity, for instance | ||
how many times has that bitten you in p5? | |||
masak | in particular, there's a really really nice standard grammar for it. | ||
written in Perl 6 itself. | |||
sorear | whose idea was it to set up the Perl6::Compiler in a sub main :[ | 09:43 | |
sorear wonders if anything will break if this is changed | |||
masak | by the way, someone(TM) should perhaps update the rakudo.org/how-to-get-rakudo/ instructions to cover JVM? | 09:44 | |
vruiz | thanks for your comments | ||
09:44
vruiz left
|
|||
moritz | masak: only when we start to run modules on rakudo-jvm, I'd say | 09:45 | |
sorear | an installable rakudo-jvm would be a nice touch | ||
and a pony. | |||
masak | moritz: fairy nuff. | ||
sorear RTA "thanks for your commits" | 09:46 | ||
hmm. @*END_PHASERS and @*MODULES... will need to be refactored for embedding | 09:48 | ||
I could turn those into hllglobals | 09:50 | ||
looks probably more sensible to ditch the global @*MODULES, deal with the fallout from that, and turn END_PHASERS into a global | 09:53 | ||
09:53
iSlug left
09:54
SamuraiJack left
|
|||
sorear | .tell jnthn $global_install probably needs to be dealt with in your thread safety pass | 09:55 | |
yoleaux | sorear: I'll pass your message to jnthn. | ||
10:07
dmol joined
10:22
daniel-s left
10:23
daniel-s joined
|
|||
dalek | kudo/jvm-embeddable: b72d148 | sorear++ | src/ (6 files): Refactor src/main.nqp stuff to bring us closer to embeddability |
10:27 | |
sorear | if someone could check that for Parrot regressions, that would be awesome | ||
sleep& | |||
FROGGS | I know now how to track regressions properly and easy: | 10:44 | |
mkdir .diff && cd .diff && git init && cd .. | |||
export PERL_TEST_HARNESS_DUMP_TAP=.diff # this will put the TAP of every single test file within that dir | 10:45 | ||
add && commit the test files, patch nqp or rakudo, run tests again, and then do a git diff in that .diff dir | |||
(no need to add a remote to that .diff repo, and no need to push) | 10:46 | ||
arnsholt | FROGGS: Oh, that's very cool! | 10:48 | |
FROGGS | yeah, better then subclassing TAP::Harness *g* | 10:50 | |
arnsholt | Indeed | ||
FROGGS | it would be nice to see the diff to the last run while running the spectest, but doing a git diff from now and then is okay too | ||
arnsholt | I've been playing with the idea of writing a plugin that dumps a JSON representation to file | ||
But your way is definitely the simplest | 10:51 | ||
11:01
PacoAir joined
|
|||
jnthn | afternoon, #perl6 | 11:03 | |
yoleaux | 09:55Z <sorear> jnthn: $global_install probably needs to be dealt with in your thread safety pass | ||
11:03
kaare_ left
|
|||
FROGGS | hi jnthn | 11:06 | |
11:08
FROGGS left
|
|||
lizmat | hi jnthn! | 11:09 | |
11:12
FROGGS joined
|
|||
jnthn | So we're close to 97%? Wow! | 11:12 | |
FROGGS | heh, I enabled turbo boost for my core i5 right now >.< | 11:16 | |
why was that off? | |||
tadzik | is it off by default? | ||
FROGGS | dont think so | ||
tadzik | hm | ||
how did you enable it? | |||
FROGGS | I guess I turned it off when getting my laptop, my ubuntu was rebooting from time to time which turned out to be a kernel bug/incompatibility | 11:17 | |
in the bios | |||
tadzik | brb reboot :) | ||
FROGGS | :o) | ||
tadzik | I don't see an option for it | 11:20 | |
but I'm amused by "Enable charing iPod, iPhone or Blackberry when power off" | |||
FROGGS | +g | 11:21 | |
why? it means it has to power the usb ports, which can be useful when you need it, otherwise it is just bad for your accu | |||
lizmat | .tell sorear I'm not seeing any Rakudo regressions | 11:24 | |
yoleaux | lizmat: I'll pass your message to sorear. | ||
jnthn | lizmat: Including in the branch? | 11:25 | |
11:41
pmurias joined
11:43
jlaire left
11:49
jlaire joined
|
|||
pmurias | rakudo: sub foo($foo) {$foo := 123;say($foo)};foo(456) | 11:50 | |
camelia | rakudo 2b3dbf: OUTPUT«===SORRY!===Cannot use bind operator with this left-hand sideat /tmp/9jFKja5BFz:1------> sub foo($foo) {$foo := 123⏏;say($foo)};foo(456) expecting any of: postfix» | ||
11:52
rindolf joined
|
|||
FROGGS | jnthn: the %f bug you discovered yesterday won't be fixed before late evening, there are some regressions, like t/spec/S02-names-vars/perl.rakudo.jvm test #90 | 11:58 | |
and now that I know all regressions I can fix'em | 11:59 | ||
jnthn | FROGGS: ok :) | 12:01 | |
FROGGS | bbl | 12:02 | |
12:02
FROGGS left
|
|||
diakopter | . | 12:02 | |
dalek | kudo-js: c4c51bb | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp: Assign params directly instead of calling the bind method, fixes a test. |
12:10 | |
kudo-js: 26c5f36 | (Pawel Murias)++ | run (2 files): Read in contexts correctly. Pass 56-role.t at last! |
|||
12:14
PacoAir left
|
|||
jnthn starts to understand a bit more of the sorear++ interop stuff :) | 12:15 | ||
Now I just need some time to ponder how to get a nice sugar layer in Perl 6 land... :) | |||
JimmyZ | :P | 12:20 | |
12:22
BenGoldberg joined
|
|||
pmurias | can I have both nqp-jvm and nqp-parrot installed? I want to make sure the test for the metamodel work on both of them ;) | 12:23 | |
jnthn | pmurias: Yeah, just install them to different places, I guess? | ||
jnthn has an install and install-jvm directory in his Rakudo tree | |||
tadzik | I should put rakudobrew somewhere | 12:27 | |
although it's now a terrible mixture of bash and perl | |||
12:31
PacoAir joined
12:32
birdwindupbird joined
|
|||
timotimo | can i change a specs document (changing a "with" to a "without", so that the sentence makes sense again) without incrementing the version? perhaps just the last changed bit? | 12:41 | |
masak | tadzik: put it somewhere early, put it somewhere often. | ||
12:42
ponbiki left
12:47
kaare_ joined
12:52
mstefanko left
12:53
benabik joined
12:54
rindolf left
12:57
mstefanko joined
|
|||
pmurias | jnthn: pastie.org/8118052 - I get an error for make clean;make in rakudo-jvm | 12:57 | |
jnthn | pmurias: Looks like too old nqp | 12:58 | |
pmurias | updating it atm | ||
13:01
berekuk left,
berekuk joined
|
|||
timotimo | pypy is just removing all the old & busted code for the cli and jvm backends, rakudo is just getting a spiffy new jvm backend ... hmm | 13:04 | |
moritz | timotimo: just increment the version | 13:15 | |
it's not a very significant number | |||
(though if you don't nobody will reaslly complain either) | 13:16 | ||
13:16
kaare_ left
|
|||
spider-mario | was no * 2013.06 planned? | 13:17 | |
13:18
benabik left
|
|||
moritz | independently of whether it was planned or not, none was released | 13:18 | |
dalek | ast: 1bc6e7e | thundergnat++ | S32-str/sprintf.t: Add test for multi-byte characters in strings. RT 117547 |
13:21 | |
13:21
raiph joined
|
|||
timotimo | shouldn't that skip read #?rakudo.parrot skip? | 13:23 | |
lizmat | jnthn: which branch do you mean? | 13:25 | |
13:26
spider-mario left
13:27
Moukeddar joined
|
|||
jnthn | lizmat: The one sorear pushed to just before sleeping | 13:27 | |
lizmat: jvm-embeddable | |||
lizmat: If you feel like testing it doesn't break the Parrot build, go ahead. Otherwise, I can do it ;) | |||
13:34
ponbiki joined,
ponbiki is now known as Guest27461
13:37
preflex left
13:39
preflex joined,
ChanServ sets mode: +v preflex
13:45
cogno joined
13:46
dayangkun joined,
dayangkun left
13:50
cogno left,
cogno_ joined
13:51
atroxaper joined
17:03
ilogger2 joined,
ChanServ sets mode: +v ilogger2
17:11
fridim_ joined
|
|||
BenGoldberg | r: .say for (1..1e4).pick(1) | 17:39 | |
camelia | rakudo 2b3dbf: OUTPUT«3412» | ||
BenGoldberg | r: .say for (1..1e5).pick(1) | ||
camelia | rakudo 2b3dbf: OUTPUT«(timeout)» | ||
[Coke] | daily jvm run up to S02-types... | 17:44 | |
17:47
Vlavv joined
18:18
vaelxon joined
|
|||
sorear | good * #perl6 | 18:22 | |
yoleaux | 11:24Z <lizmat> sorear: I'm not seeing any Rakudo regressions | ||
dalek | rl6-roast-data: aa0c757 | coke++ | / (5 files): today (automated commit) |
18:23 | |
timotimo | good * sorear :) | ||
[Coke] | 96.95% | ||
timotimo | holy moly! didn't even see commits that would have explained that! (or is that the sprintf-on-jvm thing?) | ||
[Coke] | r: say 26160*.97-25364 | 18:24 | |
camelia | rakudo 2b3dbf: OUTPUT«11.2» | ||
[Coke] | that's most of that last jump, yes | ||
sorear | so in other words no change since yesterday? | 18:31 | |
BenGoldberg | .ping | 18:36 | |
yoleaux | There is no ping command; nor can this be construed as a response. | ||
BenGoldberg | rakudo: 42.say | ||
camelia | rakudo 2b3dbf: OUTPUT«42» | ||
BenGoldberg | rakudo.jvm: 42.say | ||
sorear | There is no rakudo.jvm:. | 18:37 | |
BenGoldberg | Camelia doesn't support rakudo on jvm? | ||
sorear | correct. | ||
BenGoldberg pouts | 18:38 | ||
dalek | kudo/nom: b72d148 | sorear++ | src/ (6 files): Refactor src/main.nqp stuff to bring us closer to embeddability |
18:40 | |
[Coke] | ok. with 97%, are we ready to start fudging rakudo.jvm in roast? | 18:44 | |
I know FROGGS++ is ready... | |||
I think if we fudge anything that isn't aborting, we'll be fine. (or we can fudge those also, and then keep a list of things so fudged) | |||
dalek | p: 0ffeec3 | (Tobias Leich)++ | / (2 files): display + sign for positive decimals when requested |
18:46 | |
[Coke] | ... and the first file I find is not amenable to fudging. :) | 18:53 | |
moritz hopes it's amendable to fixing | |||
18:54
xinming joined
18:55
pecastro joined
|
|||
sorear | ...why is a NullPointerException being thrown with *no stack trace*? | 18:56 | |
[Coke] | sorear: how can I get at $*ENV from inside java in nqp? | 19:02 | |
er, $%ENV | 19:03 | ||
19:03
raiph joined
|
|||
[Coke] | or should I require $%ENV to be passed in as an argument to nqp::shell? | 19:03 | |
sorear | [Coke]: probably saner to use System.getenv("WHATEVER") directly | 19:04 | |
[Coke] | sorear: does setting $%ENV already set System.getenv? | 19:05 | |
er, does setting the rakudo variable already set the java env? | |||
(trying to propagate out to child processes) | 19:06 | ||
sorear | [Coke]: no, but it should | ||
oh, that's the exact bug you're trying to fix | 19:07 | ||
[Coke] | ah. looks like processbuilder should be doing this automatically based on the current env. | 19:08 | |
so if I make it so that $%ENV{a} = 'b' sets the java env, I win. | 19:09 | ||
19:10
raiph left
|
|||
sorear | yes | 19:10 | |
what syntax is $%ENV, though>? | 19:11 | ||
[Coke] | the wrong one | ||
so the only way I know to call java from nqp at this point is to add opcodes. nqp::setenv(key, value), nqp::delenv(key) ? | 19:16 | ||
and wire those into ENV's already special FETCH and STORE subs? | |||
sorear | that seems the sanest way | 19:17 | |
dalek | p: 04041f3 | sorear++ | examples/CallFromJava.java: make examples/CallFromJava.java work with any HLL |
19:22 | |
19:22
raiph joined
|
|||
dalek | kudo/nom: bc3f73d | sorear++ | src/ (2 files): A few more small tweaks to get embedding working |
19:22 | |
sorear | $ java -cp ../nqp-jvm:../nqp-jvm/3rdparty/asm/asm-4.1.jar:../nqp-jvm/3rdparty/asm/asm-tree-4.1.jar:../nqp-jvm/nqp-runtime.jar:rakudo-runtime.jar:. examples.CallFromJa | 19:23 | |
va perl6.jar perl6 'say 2 + 2' | |||
4 | |||
FROGGS | sorear: how can I check that an argument sprintf gets is a bigint? .REPR gives P6opaque for bigints, and p6str/p6num for strings/nums | 19:24 | |
hmmm | 19:26 | ||
r: say nqp::isbig_I(8720987304587034987502938740592837405987345) | |||
camelia | rakudo b72d14: OUTPUT«1» | ||
FROGGS | r: say nqp::isbig_I(8720987304587034) | ||
camelia | rakudo b72d14: OUTPUT«1» | ||
FROGGS | r: say nqp::isbig_I(87209) | ||
camelia | rakudo b72d14: OUTPUT«0» | ||
FROGGS | that might do it | ||
19:27
xilo joined
|
|||
[Coke] | sorear: ah. you can't set env vars. | 19:27 | |
so I pretty much have to get | |||
er, have to get %*ENV accessible to the shell() method | |||
timotimo | sorear: would like that example to show how to eval multiple things in a row while keeping data around like the repl would (and i know you're going to make something like that anyway ;) ) | 19:31 | |
sorear | [Coke]: bleh. probably best to pass %*ENV (or the mirrored BOOTHash which the proxy maintains) as an argument to nqp::shell and copy that into the processbuilder... not forgetting to clear out the old environment first... | 19:34 | |
FROGGS: I have a sense that you're asking the wrong question. Suppose you *knew* that an argument was an Int; how would you use that information? | 19:35 | ||
FROGGS: any test that returns false for 87209 is wrong, because that absolutely is stored as a bigint | |||
[Coke] | sorear: need to figure out how deal with getting an RT_OBJ in the shell() method... | 19:36 | |
FROGGS | sorear: I want to make the decision to use pow_i or pow_I... | ||
sorear | timotimo: if you want the repl, use the repl. I'm going in more of a JSP way with this embedding, where the goal is to construct functions/objects in perl6 code and then call them repeatedly... hence the return value from eval... | ||
[Coke] guesses a SixModelObject | 19:37 | ||
FROGGS | sorear: and I would guess that I dont get a small enough number as a bigint | ||
sorear | [Coke]: SixModelObject in the java param list | ||
FROGGS: if it's coming from perl 6, "0" will come in as a bigint. | |||
timotimo | hm, ok | ||
FROGGS | sorear: okay, but it looks like it is working want I want to do... since I use things like pow_i on small bigints | 19:39 | |
19:42
xilo left
|
|||
[Coke] | sorear: where do I get the ThreadContext to pass in? | 19:43 | |
(to call, say, SixModelObject's at_key_boxed ? | |||
ah, I see. | 19:49 | ||
19:50
xilo joined
|
|||
sorear | [Coke]: best way is to add it as a last argument to the function and add a :tc flag to the compiler | 19:59 | |
20:06
sqirrel joined,
grondilu joined
20:14
grondilu left
20:15
colomon joined
|
|||
colomon | o/ | 20:15 | |
yoleaux | 09:13Z <sorear> colomon: github.com/perl6/nqp/commit/98e5e6ad10 | ||
09:14Z <sorear> colomon: Let me know what you'd like to see examples of in there. | |||
[Coke] | aye, found an example that did that. Thanks | ||
colomon | sorear++ # I'll have to consider what I can use, I had no idea something could be up and running this quickly! | 20:16 | |
I've got a simple nqp implemention of %e and %g, trying to merge it with the latest version right now. | |||
ugh, this may take a while | 20:18 | ||
FROGGS | colomon: %e %g? you are talking about sprintf? | 20:22 | |
colomon | yes | ||
FROGGS | \o/ | ||
colomon++ | |||
colomon | merging it with your recent changes is going to take some thought | 20:23 | |
as I had refactored things a bit. :) | |||
FROGGS | ohh, okay | ||
:/ | |||
colomon | …. oh, I suppose I could leave %f as you have it and just include my changes. | ||
that would be faster. | |||
FROGGS | but I would be interested in your %f too | ||
colomon | It should be pretty obvious from the other two, the entire code path will be in %g | 20:24 | |
so probably we will need to merge your %f changes into my %g implementation (maybe %e as well), and then move my refactor into your code. Something like that. | 20:25 | ||
FROGGS | hmm, okay | ||
colomon | my refactoring definitely needs work, so this will be good all around. | ||
sorear | colomon: is it correctly rounded/ | 20:29 | |
? | |||
circumfix:<{ }> does a shocking amount of busywork | 20:30 | ||
{ foo => $bar, baz => $quux } makes about 100 perl6 function calls | 20:31 | ||
colomon | sorear: probably not, if there were issues with the %f implement -- I just expanded that logic to handle %e and %g | ||
20:32
snoopy_ joined
20:34
colomon left
|
|||
dalek | p: 321a8df | (Solomon Foster)++ | t/jvm/06-sprintf.t: Quick tests for %e, %E, %g, and %G. There are still many more tests to be written, IMO. |
20:35 | |
p: 5b21061 | (Solomon Foster)++ | / (2 files): Support %e, %E, %g, and %G. Still needs refactoring, IMO. But since I'm mostly offline this week, I wanted to get this checked in as soon as I had something that worked somewhat, just to prevent duplication of effort. |
|||
20:37
colomon joined
|
|||
colomon | okay, my changes have been pushed | 20:37 | |
[Coke] | here's my WIP on shell-with-env. Fails. Any pointers on what I'm screwing up | ||
gist.github.com/coke/5944808 | |||
? | 20:38 | ||
colomon | I'll try to figure out how to work in FROGGS++'s changes. | ||
But I probably won't be back online again today. | |||
FROGGS | k, I'll try to handle bigints somehow... | 20:39 | |
colomon | FROGGS: if you look at the sprintf repo in my github, I've got some of that, but definitely not all | ||
FROGGS | ohh cool | 20:40 | |
colomon++ | |||
colomon | There's still a key point missing, I don't know how to tell when sprintf is passed a bigint! | ||
snoopy_ | nqp/t/jvm/06-sprintf.t plan needs a tweak... | ||
planning 101 tests, but running 103 | |||
colomon | snoopy_: you need to pull, I just added 30 tests | 20:41 | |
and I think I got the plan right | |||
snoopy_ | ok, thanks rerunning.. | 20:42 | |
lizmat | jnthn: I spectested the branch jvm/embeddable | 20:43 | |
colomon | sorry to just check things in and run. | ||
lizmat | colomon++ nonetheless :-) | ||
20:45
colomon left
|
|||
sorear | I just deleted it :p | 20:46 | |
lizmat | without digressing I can say it didn't regress | 20:47 | |
diakopter | egress(0) | ||
sorear | [Coke]: --ll-exception will give you a backtrace | ||
20:49
ecocode joined,
preflex_ joined,
ChanServ sets mode: +v preflex_
20:50
preflex_ is now known as preflex
20:53
woolfy1 joined
|
|||
[Coke] | weird. if I change the env from <a>='b' to <a>=3, I get no error (but no output) | 20:56 | |
... urk. because it was <a>=b, not <a>='b' | 20:58 | ||
sorear | probably the reason you get no output is that there's a try block that eats all exceptions | 20:59 | |
adding e.printStackTrace(); to both cases might help | 21:00 | ||
... I doubt that code will work anyway because %*ENV isn't a VMHashInstance, it's a P6Opaque that wraps a VMHashInstance | 21:01 | ||
see also this: "To start a process with an explicit set of environment variables, first call Map.clear() before adding environment variables. | 21:02 | ||
" | |||
21:02
itz joined
|
|||
[Coke] | Yes, I hadn't done that part yet. | 21:03 | |
(no output) also, shell generates no output. :P | 21:04 | ||
sorear | 'echo' generates output, though. | 21:07 | |
[Coke] | sorear: but not through shell. | ||
I'd need to do echo $a > stuff and read stuff. | |||
[Coke] tries to find examples of how to poke into a P6Opaque | 21:08 | ||
sorear | [Coke]: since you used inheritIO, the output from the echo should have gone to the terminal you used to start pelr6 | 21:09 | |
[Coke] | ah, ok. | 21:10 | |
[Coke] stares dumbly at the P6Opaque hierarchy. | 21:15 | ||
dalek | kudo/nom: 5023481 | (Elizabeth Mattijsen)++ | src/core/traits.pm: Sort of implement "is parcel" (basically the same as "is rw" for now) |
||
kudo/nom: 93f30e8 | (Elizabeth Mattijsen)++ | src/core/List.pm: Mark List.pop and List.shift as "is parcel" |
|||
lizmat | per S06:563 | 21:16 | |
sorear | [Coke]: take a look at setmethcache | 21:19 | |
[Coke] | sorear++ | 21:23 | |
masak | FROGGS++ # further %f hacking | 21:30 | |
'night, #perl6 | 21:34 | ||
21:35
lizmat_ joined
21:38
konundra joined
21:41
lizmat_ is now known as lizmat
|
|||
lizmat | r: my sub foo is rw { 42 } # feels this should die at compile time | 21:42 | |
camelia | rakudo bc3f73: ( no output ) | ||
lizmat | r: my sub foo is rw { 42 }; foo=1 # is this will never work | ||
camelia | rakudo bc3f73: OUTPUT«Cannot modify an immutable value in block at /tmp/Ezd1PkSI_f:1» | ||
lizmat | r: my sub foo is parcel { 42 }; foo=1 # this we can't tell at compile time | ||
camelia | rakudo bc3f73: OUTPUT«===SORRY!===Cannot call 'trait_mod:<is>'; none of these signatures match::(Mu:U $child, Mu:U $parent):(Mu:U $type, :rw(:$rw)!):(Mu:U $type, :nativesize(:$nativesize)!):(Mu:U $type, :hidden(:$hidden)!):(Mu:U $type, *%fail):(Attribute:D $attr… | 21:43 | |
21:50
sqirrel left
|
|||
dalek | ast: 95cab91 | (Elizabeth Mattijsen)++ | S03-binding/nested.t: Replace tests for "is rw" by more appropriate "is parcel" |
22:03 | |
ast: 2f3ef00 | (Elizabeth Mattijsen)++ | S03-binding/subs.t: Change sub "is rw" to more appropriate "is parcel" Oddly enough, this file does not seem to be part of roast |
|||
22:04
araujo joined
|
|||
lizmat | gnight #perl6! | 22:04 | |
labster | good night lizmat, good * to the rest of #perl6 | 22:05 | |
22:05
woolfy1 left
|
|||
sorear | night lizmat! | 22:05 | |
o/ labster! | |||
labster | \o | ||
22:06
woolfy joined
|
|||
jnthn back | 22:09 | ||
sorear | \o/ jnthn | 22:10 | |
22:10
konundra left
22:12
dmol joined,
dmol left
22:26
pecastro left
22:29
pecastro joined
22:32
Ben_Goldberg joined
22:37
ecocode left
22:48
woolfy left
23:02
konundra joined
23:08
Ben_Goldberg left
23:09
nanzu joined
23:33
nanzu left
|
|||
jnthn | sleep & | 23:34 | |
23:50
cognominal joined
|