»ö« 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 diakopter on 14 April 2013. |
|||
adu | lue: I'm assuming europe | 00:05 | |
lue | that'd be a correct assumption. But still :) | 00:06 | |
00:10
jac50 left
00:12
ifimbres joined
00:16
gabriel_ joined
00:26
tgt left
00:30
japhb_ left
00:39
ifimbres left,
kbenson left
01:40
xinming left
01:41
FROGGS_ joined
01:44
FROGGS left
01:54
xinming joined
02:05
thou left
02:12
tangentstorm left
02:28
census left
02:29
grondilu joined
02:35
BenGoldberg left
|
|||
colomon | rn: my %hash = a => 10, b => 12; say %hash.perl; %hash = { }; say %hash.perl; | 02:36 | |
camelia | niecza v24-37-gf9c8fc2: OUTPUT«{"a" => 10, "b" => 12}.hash{}.hash» | ||
..rakudo 71ea14: OUTPUT«("a" => 10, "b" => 12).hash().hash» | |||
colomon | wot | ||
er, woot | |||
02:41
orafu left,
orafu joined
02:44
thou joined
02:58
grondilu left
03:06
adu left,
sizz left
03:07
sizz joined
|
|||
colomon | r: say "" X 9 | 03:08 | |
camelia | rakudo 71ea14: OUTPUT« 9» | ||
colomon | r: say "" xx 9 | ||
camelia | rakudo 71ea14: OUTPUT« » | ||
colomon | r: say ("" xx 9).perl | ||
camelia | rakudo 71ea14: OUTPUT«("", "", "", "", "", "", "", "", "").list» | ||
colomon | r: say ("" X 9).perl | ||
camelia | rakudo 71ea14: OUTPUT«(("", 9),).list» | ||
03:16
sizz left
03:17
sizz joined
03:20
sizz left
03:22
sizz joined
03:41
sizz left
03:46
sizz joined
03:54
Vlavv_ left
04:14
sizz left
04:20
sizz joined,
rindolf joined,
thou left
04:24
Psyche^ joined
04:28
Patterner left,
Psyche^ is now known as Patterner
04:42
lustlife joined
04:53
rindolf left
04:54
rindolf joined
04:59
drbean left
05:01
drbean joined
05:14
xinming left
05:15
xinming joined
05:36
SamuraiJack joined
05:38
adu joined
|
|||
adu | ok, it's morning in europe | 05:41 | |
05:47
rindolf left
05:56
kaare_ joined,
rindolf joined
06:12
kaare_ left
06:16
thou joined
06:27
rindolf left
06:28
rindolf joined
06:29
raiph left
06:31
rindolf left,
rindolf joined
06:37
araujo left,
rindolf left
06:38
rindolf joined
06:49
adu left
07:01
fhelmberger joined
07:26
Chillance joined
07:37
aindilis joined
07:44
fhelmberger left
08:14
domidumont joined
08:27
berekuk joined
|
|||
masak | good morning, #perl6 | 08:28 | |
08:28
berekuk left
|
|||
lizmat | morning masak! | 08:30 | |
rn: my $a="foo"; { let $a= "bar"; say $a; leave }; say $a | |||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===Undeclared routine: 'leave' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /ho… | 08:31 | |
..rakudo 71ea14: OUTPUT«===SORRY!===Undeclared routine: leave used at line 1» | |||
lizmat | is this NYI or am I misunderstanding the spec? | ||
rn: my $a="foo"; { let $a= "bar"; say $a; fail }; say $a | |||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===Undeclared routine: 'fail' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /hom… | ||
..rakudo 71ea14: OUTPUT«barNo exception handler and no messagecurrent instr.: 'throw' pc 358449 (src/gen/CORE.setting.pir:156428) (src/gen/CORE.setting:9557)called from Sub 'sink' pc 390631 (src/gen/CORE.setting.pir:168922) (src/gen/CORE.setting:10839)called from Sub 'MAIN' pc 381 (s… | |||
lizmat | r: my $a="foo"; { let $a= "bar"; say $a; fail }; say $a | 08:32 | |
camelia | rakudo 71ea14: OUTPUT«barNo exception handler and no messagecurrent instr.: 'throw' pc 358449 (src/gen/CORE.setting.pir:156428) (src/gen/CORE.setting:9557)called from Sub 'sink' pc 390631 (src/gen/CORE.setting.pir:168922) (src/gen/CORE.setting:10839)called from Sub 'MAIN' pc 381 (s… | ||
masak | lizmat: "leave" is NYI, and I don't really understand why at this point. probably nobody got to putting it in, simply. | ||
lizmat: you can't fail if you're not in a routine. | 08:33 | ||
08:33
berekuk joined
|
|||
lizmat | intriguing, it works ok in -e mode :-) | 08:33 | |
masak | probably shouldn't. | ||
lizmat | $ perl6 -e 'my $a="foo"; { let $a= "bar"; say $a; fail }; say $a' | 08:34 | |
bar | |||
foo | |||
masak | though the error "No exception handler and no message" is kinda weird, too. | ||
timotimo | the REPL may catch the exception? | ||
masak | that's not the REPL. | ||
that's -e | |||
lizmat: confirmed, works here too. | |||
lizmat | could it be that "leave" is NYI because we don't have goto either? | 08:35 | |
timotimo | oh, right | 08:36 | |
masak | lizmat: I don't really see the relation. | 08:41 | |
lizmat: "leave" is a call stack operation. "goto" is more of an IP operation. | 08:42 | ||
lizmat | IP? | ||
masak | at least in its simplest forms. | ||
Instruction Pointer | |||
"leave" is like a "return light". | |||
lizmat | I guess the answer to my question is "no" :-) | 08:43 | |
08:43
thou left
|
|||
lizmat | I can't seem to find much specced about "let" | 08:43 | |
masak | and a block is like a "routine light" :) | ||
lizmat: "temp" and "let" are woefully underspec'd. | |||
shachaf | They're called leaves because they leave the trees in the fall. Which is why it's called fall. | 08:44 | |
lizmat | specifically what happens if you "let" a filehandle, then read a line from it and fail from the block | ||
will it seek back to the original position? | |||
if so, what magic will make that happen? | |||
I hadn't realised it until now, but "let" is getting us into STM land, no? | 08:45 | ||
masak | not that I know of. | 08:47 | |
'maybe {}' was meant to get us into STM land. | |||
08:48
domidumont left
|
|||
lizmat | "let" is the "restore to previous state" part of STM | 08:49 | |
08:49
domidumont joined
|
|||
lizmat | not being interrupted in a block, is another part | 08:49 | |
looking at S17, maybe "defer" should just simply be "fail" ? | 08:50 | ||
masak | yeah. | ||
I can see the connection between "let" and "maybe" too. | |||
maybe that's actually all it takes to do optimistic concurrency. | 08:51 | ||
lizmat shelves these concurrency for now and continues trying to grok S04 | 08:53 | ||
rn: my $a="foo"; { temp undefine $a; say $a }; say $a | |||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(Any)(Any)» | ||
..rakudo 71ea14: OUTPUT«(Any)Cannot assign to a readonly variable or a value in block at /tmp/zOhG_oJm6Q:1» | |||
lizmat thinks both get it wrong | 08:54 | ||
I would have expected (Any) foo | |||
08:54
trexy_ joined
|
|||
lizmat | masak: wrt to goto just being in IP operation: it could also involve stack operations if the label is in an OUTER block | 08:56 | |
masak | yes. | 08:58 | |
my point was really that "leave" and "goto" aren't all that similar. | |||
"leave" is more like "return". | 08:59 | ||
lizmat: I think you're confusing "set the value of $a to what it was previously" and "destruct the object that was in $a". | |||
'temp' does the former. not the latter. | |||
the GC does the latter, in due time. not on anyone's schedule. | 09:00 | ||
09:00
MrMeek-afk joined
09:04
MrMeek left
|
|||
lizmat | gist.github.com/lizmat/5472425 | 09:07 | |
I would expect some methods being called on the object if "temp" is done on it, and also when the scope is left | 09:08 | ||
but that's not specced, let alone implemented | |||
or is it? as it apparently already works on scalars? | |||
masak | I never thought of 'temp' as having this kind of semantics. | 09:09 | |
maybe it does. I don't know. | |||
ask TimToady. | |||
09:09
SamuraiJack left
09:10
dmol joined
|
|||
lizmat | .invoke TimToady | 09:16 | |
seen TimToady | |||
.seen TimToady | 09:17 | ||
yoleaux | I saw TimToady 26 Apr 2013 23:40Z in #perl6: <TimToady> ask jnthn, I suppose | ||
lizmat | :-) | ||
masak | hehe | 09:19 | |
09:19
spider-mario joined,
flussence joined
|
|||
lizmat | masak: isn't this a rakudo bug? | 09:21 | |
r: my $a="foo"; { temp undefine $a; say $a }; say $a | |||
camelia | rakudo 71ea14: OUTPUT«(Any)Cannot assign to a readonly variable or a value in block at /tmp/lGIFzmiUSK:1» | 09:22 | |
masak | huh. | 09:23 | |
I... don't know. I think so. | |||
but I can't internalize what happens there. | |||
where does the "readonly" come from? | |||
lizmat | r: my $a="foo"; { temp $a= (Any); say $a }; say $a | ||
camelia | rakudo 71ea14: OUTPUT«(Any)foo» | ||
lizmat | seems like "undefine" is maybe doing more than it should | 09:24 | |
masak | yeah. | ||
masak submits rakudobug | |||
09:41
frdmn left
|
|||
masak | 20 signups for the workshop on Wednesday! \o/ | 09:51 | |
09:51
rindolf left
|
|||
lizmat | :-) | 09:51 | |
masak | it was 13 three days ago when I blogged about it. | 09:52 | |
labster | hello #perl6 | ||
masak | labster! \o/ | ||
lizmat | hello labster! | ||
labster | I just got File::Spec integrated into core. Yak is now clean-shaven. | 09:53 | |
lizmat | nothing like a clean Yak | 09:54 | |
it's the equivalent of a bikeshed in the right color | 09:55 | ||
masak .oO( yakshedding ) | 09:56 | ||
lizmat | alas, afk for most of the day & | ||
masak | & | 09:58 | |
10:03
tgt joined
10:06
jerome_ left
10:14
frdmn joined
10:21
tgt left
10:22
xinming left
10:23
xinming joined
10:24
tgt joined
|
|||
nwc10 | for my non-representitive not-a-benchmark (but it is the same code): | 10:34 | |
nqp-jvm: 1.4725e+02 +/- 7.2e-01 | 10:35 | ||
camelia | nqp-jvm: OUTPUT«Cannot unbox a type object in !LITERAL in stopper in <anon> in before in termish in termconj in termalt in termconjseq in termaltseq in nibbler in LANG in quote:sym</ /> in !protoregex in quote in value in term:sym<value> in !protoregex… | ||
nwc10 | nqp-parrot: 2.0425e+03 +/- 1.9e+00 (0.1%) | ||
10:43
PacoAir joined
|
|||
jnthn | afternoon, #perl6 | 10:43 | |
temp undefine $a # iirc, temp is just a prefix, you're almost certainly going to undefine $a and then temporize it afterwards | 10:46 | ||
nwc10: I was like "huh, only a little difference", then noticed the +02 vs +03 :) | |||
10:47
tgt left
11:02
tgt joined
11:03
frdmn left,
frdmn joined
|
|||
cognominal | writing a presentation, I noticed there are two other ways to write / a | b /, one with a multi rules and the other with a argumentful rule : gist.github.com/cognominal/5472705 | 11:05 | |
TIMTOWTDI | |||
11:05
jerome_ joined
|
|||
jnthn | < a b > / is anothe way | 11:06 | |
Though it desugars to / a | b /. | |||
cognominal | Nice :) | ||
But my purpose was to introduce protorules and argumentful rules with the simplest possible example | 11:07 | ||
11:10
araujo joined,
araujo left,
araujo joined
11:17
pdurbin joined
|
|||
cognominal | the argumentful form should have been written : token char($char) { $char } ; <char(a)> | <char(b)> | 11:18 | |
or | 11:19 | ||
oops | |||
the argumentful form should have been written : token char($char) { $char } ; <char('a')> | <char('b')> | |||
or | |||
token char($char) { $char } ; <char('a'|'b')> # is that possible? modulo a good enough Perl 6 implementation | 11:20 | ||
timotimo | are they already in rakduo? | ||
cognominal | yes, except for the last one. | 11:21 | |
timotimo | argumentful rules i mean | ||
cool :) | |||
jnthn | Tokens/rules can take arguments, but you're in the main language when you're passing them, not regex langauge. | ||
Using that syntax, anyway | 11:22 | ||
cognominal | it shows how well rules are integrated with the language | ||
timotimo | so you'd get a junction. will that autothread? | ||
jnthn | So I guess you pass a junction... :) | ||
No, it will probably explode. :) | |||
Oh wait | |||
It probably auto-threads | |||
But then the grammar engine gets a junction of cursors back at which point it is probably extremely sad. :) | 11:23 | ||
cognominal | good luck for the other languages stealing them this time | ||
timotimo | r: (grammar :: { token char($char) { $char }; rule TOP { char('a' | 'b') }; }).parse("b") | ||
camelia | rakudo 71ea14: ( no output ) | ||
timotimo | r: (grammar :: { token char($char) { $char }; rule TOP { char('a' | 'b') }; }).parse("b").perl.say | ||
camelia | rakudo 71ea14: OUTPUT«Match.new(orig => "b", from => 0, to => -3, ast => Any, list => ().list, hash => EnumMap.new())» | ||
timotimo | r: (grammar :: { token char($char) { $char }; rule TOP { char('a' | 'b') }; }).parse("a").perl.say | ||
camelia | rakudo 71ea14: OUTPUT«Match.new(orig => "a", from => 0, to => -3, ast => Any, list => ().list, hash => EnumMap.new())» | ||
timotimo | well, there's that! | ||
from 0 to -3, eh? | |||
jnthn | timotimo: You need <char('a' | 'b')> to make a call :) | 11:24 | |
timotimo | uh, that's right | ||
r: (grammar :: { token char($char) { $char }; rule TOP { <char('a' | 'b')> }; }).parse("a").perl.say | |||
camelia | rakudo 71ea14: OUTPUT«Can not get attribute '$!pos' declared in class 'Cursor' with this object in regex TOP at /tmp/SIUOHFu8ZR:1 in method parse at src/gen/CORE.setting:11162 in block at /tmp/SIUOHFu8ZR:1» | ||
11:24
pdurbin left
|
|||
timotimo | "this" object being the junction object that gets passed perhaps? | 11:24 | |
jnthn | I expect so, yes | 11:25 | |
r: (grammar :: { token char($char) { $char }; rule TOP { <char 'a' | 'b'> }; }).parse("a").perl.say | 11:26 | ||
camelia | rakudo 71ea14: OUTPUT«Unmarshallable foreign language value passed for parameter '$char' in regex char at /tmp/h1WhlQcmtB:1 in regex TOP at /tmp/h1WhlQcmtB:1 in method parse at src/gen/CORE.setting:11162 in block at /tmp/h1WhlQcmtB:1» | ||
jnthn | Whoa | ||
lizmat | jnthn: temp undefine $x is directly lifted from spec | 11:29 | |
cognominal | anyway, nothing precludes in theory the grammar engine handling cursors junctions? | ||
lizmat | rn: my $a="foo"; { undefine temp $a; say $a }; say $a | ||
camelia | rakudo 71ea14, niecza v24-37-gf9c8fc2: OUTPUT«(Any)foo» | ||
lizmat | I guess we need to correct the example in the spec | ||
cognominal | this way of meshing so different parts of the language is the proof how well it is thought out. | 11:30 | |
11:30
FROGGS[mobile] joined
|
|||
jnthn | lizmat: Oh, hmmm | 11:31 | |
FROGGS[mobile] | hi there | ||
cognominal | hi FROGGS[mobile] | ||
FROGGS[mobile] | irclog is still teh borke? | 11:32 | |
lizmat | looks like it | ||
timotimo | is there something like "literal_eval" for perl6 yet, and if not, is there interest in having something like that? (spec'd or panda'd) | 11:36 | |
jnthn | timotimo: val, maybe? | ||
lizmat | val is NYI, afaik | 11:37 | |
ah, duh | |||
:-) | |||
timotimo | NYI, but specced? neat. i wonder how it can cleverly be implemented. | 11:38 | |
iow: without reimplementing much of perl6s grammar | |||
lizmat | S02:4461 Allomorphic value semantics (the "val" function) | ||
jnthn | I think japhb++ was working on it at some point | ||
timotimo | thanks | ||
hm. literal_eval also does data structures like lists, tuples and dicts in python. val only seems to do single simple literals | 11:40 | ||
or at least only those are discussed in that section | |||
ah, it's described further pu | |||
lizmat | funny, is dalek down also? | 11:41 | |
I just pushed: | |||
- temp undefine $x; | 11:42 | ||
+ undefine temp $x; | |||
and haven't seen dalek reporting that yet | |||
FROGGS[mobile] | hmmm, dalek was working yesterday when ilogger wasnt | 11:43 | |
11:44
dmol left
|
|||
lizmat | afk& | 11:47 | |
timotimo | oh perl6 | 11:48 | |
r: my $part = 55; say :100[0, '.', $part, 99] | |||
camelia | rakudo 71ea14: OUTPUT«0.5599» | ||
timotimo | this is amazing. | ||
"Also allowed in strings are [...] maybe a trailing Units type for an implied scaling" - this is not specced out yet? | 11:52 | ||
cognominal | timotimo: where do you read that? | 11:53 | |
timotimo | perlcabal.org/syn/S02.html#Exponentials | 11:54 | |
under the last :2<....> example | |||
be back in 30 | |||
cognominal | bb in an hour or so | 11:55 | |
dalek | p: 83fd61b | jnthn++ | src/vm/jvm/ (2 files): Eliminate two instructions per QAST::WVal. This passes the values directly to the indy bootstrap method, which we didn't have the infrastructure to do when QAST::WVal stuff was first switched over. |
12:13 | |
p: 1cc2d3e | jnthn++ | src/vm/jvm/ (2 files): Reduce cost of immediate block invocation. |
12:14 | ||
cognominal | "indy bootstrap" :) | 12:24 | |
timotimo | next up: hipster bootstrap? | 12:25 | |
oh, that's what twitter made, no? ;)) | |||
jnthn | One gets tired of typing invokedynamic eventually :) | ||
jnthn ponders whether $foo."$bar"() tends towards the megamorphic... | 12:26 | ||
Hm...the action method calling almost certainly is. | 12:27 | ||
(A megamorphic callsite is a polymorphic one where there's a huge number of potential places we could end up.) | 12:28 | ||
lizmat wonders where this is going to | 12:31 | ||
jnthn | lizmat: Just pondering the way I handle such call sites on the JVM | 12:32 | |
lizmat: When it's $foo.bar() then it's unusual for their to be an insane number of possibilities. | |||
timotimo | Seq was removed from the language, correct? | ||
jnthn | lizmat: Moreover, you tend to know where you're going by class. | 12:33 | |
lizmat | jnthn: ack | ||
timotimo: not in the spec yet | |||
timotimo | ah, ok | ||
lizmat | not sure whether that is a problem of the spec or not | ||
jnthn | lizmat: So I can tell the JVM to just stack up some guard clauses there, which makes things a win. | ||
lizmat: However, if you pile up too many of those, you're in bother. | 12:34 | ||
lizmat | right, too many "likely"s to check | ||
timotimo | if you care, here's another mention: perlcabal.org/syn/S02.html#Explicit...nstruction - but if the decision to remove Seq is final, one can probably just as easily grep for "Seq." | ||
jnthn | lizmat: A callsite with a LOAD of possible destinations, differentiated by name *and* invocant type, is probably going to turn nasty in plenty of common cases. So I think the answer for now is "don't be too clever" :) | 12:35 | |
lizmat | indeed, plenty of time ahead to put in cleverness | ||
12:35
frd|afk joined
|
|||
lizmat | MIWN is much more important | 12:35 | |
timotimo | "Man I Wonder Now"? | 12:36 | |
lizmat | Make It Work Now | ||
:-) | |||
timotimo | oh, sure | ||
lizmat | a variation on DWIM | ||
masak | sounds like "first, make it work" | ||
timotimo | it's encouraging to see jnthn make the stuff faster, but it's also pretty nice to see jnthn make rakudo compile on the jvm ;) | 12:37 | |
jnthn | Well, invocant is kinda at the heart of a lot of things, so there's also part of me wanting to get it wired up through invokedynamic before I go piling Rakudo on top of all of this :) | 12:38 | |
12:39
frdmn left
|
|||
jnthn | *invocation | 12:39 | |
The other piece of this is that the coroutine handling stuff requires that we have an empty stack besides the arguments at the point of each call. | |||
Which I'd not enforced up until now | 12:40 | ||
lizmat | so, rakudo-jvm is getting more features than rakudo-parrot already? | ||
jnthn | lizmat: No...what did I say to make you think so? :) | ||
lizmat | "[14:40:04] <jnthn> Which I'd not enforced up until now" | 12:41 | |
jnthn | lizmat: Yes, this is a code-gen level thing, not a user level thing. | ||
lizmat | gotcha | 12:42 | |
jnthn | I think cs.brown.edu/~sk/Publications/Paper.../paper.pdf is the relevant paper, for anybody who wants the gory details... | ||
lizmat | eek :-) | 12:44 | |
timotimo puts on his reading gloves | 12:45 | ||
dalek | p: 20547c3 | jnthn++ | src/vm/jvm/ (2 files): Send indirect calls through invokedynamic. Not expecting a performance change from this, but it makes code gen a bit simpler/better/uniformer. |
13:01 | |
13:07
FROGGS[mobile] left
13:16
SmokeMac_ joined
13:18
SmokeMachine left
13:20
Bzek joined
|
|||
dalek | p: a84eedf | jnthn++ | src/vm/jvm/ (2 files): Send $foo."$bar"() calls through indy also. Don't do much optimization here, this just simplifies code-gen and brings it inline with that of normal method calls. |
13:46 | |
p: 86c9a7f | jnthn++ | src/vm/jvm/QAST/Compiler.nqp: Remove now-unused code. |
|||
p: 68405c9 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp: Update and simplify for loop code-gen. It now desugars the calls through a QAST node, menaing we get rid of the last use of building arg arrays and that such loops should now get better code gen. |
13:47 | ||
p: eaeda37 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp: Remove more dead code. |
|||
timotimo | is .quoteharder an actual thing? | 13:51 | |
13:53
woosley1 joined
|
|||
jnthn | Doesn't sound familiar | 13:53 | |
timotimo | macro quote:<❰ ❱> ($text) { quasi { {{{$text}}}.quoteharder } } — probably just another silly example :) | 13:55 | |
13:56
grondilu joined
|
|||
dalek | p: c7c2297 | jnthn++ | src/vm/jvm/ (2 files): Make atkey and atpos on type objects give null. This simplifies code-gen for array/hash access. |
13:59 | |
jnthn | Recent code generation improvements means a full NQP is now around 4.1 MB worth of .class files rather than 5.4 MB. | 14:00 | |
masak | timotimo: yes, silly example. | 14:01 | |
timotimo: it's just a method on whatever's in {{{$text}}} -- probably a Str, from the looks of it, but could be something else, too. | 14:02 | ||
14:07
sizz left
14:10
gabriel_ left
14:11
sizz joined
14:17
gabriel_ joined
14:18
isBEKaml joined
|
|||
FROGGS_ | jnthn++ # that's cool | 14:20 | |
14:21
woosley1 left
14:26
SmokeMac_ left
14:30
SmokeMachine joined,
Bzek left
14:33
mtk left
14:41
fhelmberger joined
|
|||
dalek | : f7d0e77 | (Tobias Leich)++ | / (2 files): make %ENV available when strict is in use |
14:44 | |
: 679269b | (Tobias Leich)++ | / (2 files): making "use integer" an noop for now |
|||
14:46
raiph joined
|
|||
dalek | p: e610165 | jnthn++ | src/vm/parrot/ (2 files): Move dispatcher set/take op into NQP itself. This will let us do better code-gen with it on the JVM and also ease keeping it per thread. |
14:49 | |
14:51
colomon left
14:54
colomon joined,
aindilis left
15:07
nyuszika7h joined
15:09
tgt left,
tgt joined
|
|||
dalek | kudo/jvm-support: 4da9ebb | jnthn++ | tools/build/Makefile-Parrot.in: Unbust build on Parrot in this branch. |
15:12 | |
kudo/jvm-support: b179337 | jnthn++ | / (6 files): Dispatcher changes for portability improvements. Gets rid of the remaining pir:: in the Metamodel code. Also uses a new op made available since the dispatcher code was written to avoid loads of copy arguments around, meaning that deferral becomes cheaper on Rakudo on Parrot also. |
|||
15:17
fhelmberger left
|
|||
timotimo | what does deferral refer to in this case? things like protos that do their own dispatching? | 15:21 | |
jnthn | nextsame and friends | 15:24 | |
timotimo | neat | 15:25 | |
15:36
Bzek joined
15:40
Targen joined
15:41
Bzek left,
Bzek joined
16:16
isBEKaml left
16:24
flussence left
16:26
flussence joined
|
|||
dalek | p: 9d9a2af | jnthn++ | src/vm/jvm/ (3 files): Implement setdispatcher/takedispatcher on JVM. |
16:32 | |
p: 3ca71af | jnthn++ | src/vm/jvm/ (2 files): Add nqp::settypecheckmode for JVM. Also, start to flesh out istype a little more, though it needs more work to finish it. |
|||
kudo/jvm-support: b6b88bf | jnthn++ | src/vm/jvm/Perl6/Ops.nqp: First cut of nqp::p6bool compilation for JVM. Actual thing it calls doesn't exist yet, though. |
16:33 | ||
kudo/jvm-support: 82e9667 | jnthn++ | src/Perl6/Metamodel/ (2 files): Don't do Parrot interop role except on Parrot. |
|||
kudo/jvm-support: eb54676 | jnthn++ | tools/build/Makefile-JVM.in: Add Perl6::Metamodel to the JVM build. Usual caveat applies: just 'cus it builds doesn't mean it all works. |
|||
nwc10 | jnthn++ # steadily pushing the goalposts nearer to Christmas | 16:34 | |
16:39
rking left
|
|||
colomon | jnthn++ # maybe getting Rakudo JVM working fast enough to help out my ABC & Processing project | 16:45 | |
jnthn | Well, next comes BOOTSTRAP which is where the next batch of Hard Stuff starts. | 16:47 | |
16:48
rking joined
|
|||
jnthn | And beyond there, we're into the realm of the terrifying: starting to work little by little through getting CORE.setting to build. | 16:48 | |
masak | \o/ | ||
that's the best definition of "terrifying" I've heard in quite a while. | |||
jnthn | Time for a break, dinner, etc. bbl | 16:51 | |
flussence | did those efforts to split the setting up ever go anywhere? | 16:52 | |
16:57
clkao left
16:58
clkao joined
16:59
jeffreykegler joined
|
|||
cognominal | ho, I did not notice that jnthn jvm effort moved to rakudo | 17:01 | |
17:02
fgomez left
|
|||
masak | will Rakudo #64 be the first Rakudo release to run on the JVM? | 17:09 | |
flussence | .oO( we could do some horribly misleading marketing and call it Rakudo64 ) |
17:13 | |
(in reference to the 90s console wars) | |||
cognominal | an the FAQ will be : does it also run on 32bits computers | 17:14 | |
where can I find Rakudo32 ? | |||
17:33
fgomez joined
17:37
adu joined
|
|||
jeffreykegler | By the way, what does ".oO(" mean? I've tried looking it up without avail. | 17:48 | |
masak | jeffreykegler: it's a thought bubble | 17:51 | |
like in comics. | |||
colomon | jeffreykegler: "I'm thinking" | ||
masak | ...therefore I am. | ||
jeffreykegler | So it's for something that is an "aside", for one degree or another. | 17:52 | |
I was trying to guess on the basis that it's an emoticon, but the emotions expressed were all over the map. | 17:53 | ||
17:57
kaare_ joined
|
|||
masak | yes, "aside" covers it. | 18:02 | |
japhb | I saw I got highlighted regarding val(), but have not backlogged yet -- is there still an open question? | ||
raiph | .oO( I opened the question and peered inside ) |
18:06 | |
18:07
adu left
|
|||
jnthn | japhb: Somebody asked about it and I seemed to recall you were looking at it (or related things) at some point | 18:10 | |
japhb | jnthn, Yeah, I got about as far as I could without implementing dualvars. And then realized I had to do Parrot-related hacking to make that possible. And then, after a few abortive attempts to concentrate on said task, mysteriously found other things to work on. | 18:13 | |
Still bugs me that I didn't manage to close out that task, though. :-( | |||
jnthn | japhb: May be a good YAPC::NA hacking task when we can work together on it. | 18:15 | |
japhb | jnthn, hmmm, good point! | ||
18:20
kaare_ left
18:21
SamuraiJack joined
18:22
census joined
18:23
frd|afk left,
fhelmberger joined,
frdmn joined
18:27
tgt left
18:40
xilo left
|
|||
lue | hello world o/ | 18:45 | |
jnthn | hellue o/ | 18:46 | |
18:47
xilo joined
18:53
jeffreykegler left
|
|||
dalek | p: 2883303 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp: Fix a couple of op signatures. |
18:54 | |
p: 176fa67 | jnthn++ | src/vm/parrot/ (2 files): Add NQP op for checking if a capture has nameds. |
|||
18:56
snearch joined
19:00
jeffreykegler joined,
census left,
trexy_ left
19:01
jeffreykegler left
19:04
tgt joined
|
|||
dalek | kudo/jvm-support: a25b65b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Remove/segregate some Parrotisms in BOOTSTRAP. |
19:04 | |
kudo/jvm-support: 26d0a47 | jnthn++ | / (2 files): Eliminate one more of the pir:: in BOOTSTRAP. |
|||
colomon | \o/ | 19:25 | |
19:39
domidumont left
19:43
dmol joined
19:44
SamuraiJack left
20:00
telex left
20:06
telex joined
|
|||
cognominal | jnthn, nqp/master error messages are wrong on lion. They use backslash and state the wrong stage gist.github.com/cognominal/5474507 | 20:10 | |
20:11
adu joined
|
|||
jnthn | cognominal: Did you change something? | 20:12 | |
cognominal: afaik you'd have to be (a) working on NQP, or (b) hit an error while building NQP to see that. | 20:13 | ||
It's an artefact of the bootstrap/self-hosting process. | 20:14 | ||
cognominal | yes, that triggers the error but that's not my point | ||
my changes don't affect the build | |||
20:15
fhelmberger left
20:17
berekuk left
|
|||
jnthn | Updating the stage0 is done by taking a copy of the final build output (thus, stage2) and placing it in the stage0 directory. Thus you get (a) paths represented as they were by whoever did the last bootstrap update, and (b) they reference the place the build was done. | 20:17 | |
adu | jnthn: after I install java7, wanna chat about nqp? | 20:18 | |
dalek | : 9a693bc | (Tobias Leich)++ | / (2 files): parse pragma "open", need to set $*OPEN_DEFAULTS or similar |
||
jnthn | adu: Can do. Did you get an NQP on JVM build? | ||
adu | no, it says I need java7 | ||
jnthn | autumn: Oh...yes :) | 20:19 | |
grr | |||
adu: ^^ | |||
cognominal | jnthn, thx for explaining the bootstrapping process | 20:20 | |
bootstrapping is never pretty. I am happy that jnthn got past that stage with jvm | 20:22 | ||
20:27
berekuk joined
|
|||
autumn | jnthn: oh...no | 20:28 | |
timotimo | r: say ("oh"..."no").list.perl | ||
camelia | rakudo 71ea14: OUTPUT«("oh", "og", "of", "oe", "od", "oc", "ob", "oa", "nz", "ny", "nx", "nw", "nv", "nu", "nt", "ns", "nr", "nq", "np", "no").list» | ||
masak | autumn: ;) | 20:29 | |
colomon | n: say ("oh"..."no").list.perl | 20:32 | |
camelia | niecza v24-37-gf9c8fc2: OUTPUT«("oh", "og", "of", "oe", "od", "oc", "ob", "oa", "nz", "ny", "nx", "nw", "nv", "nu", "nt", "ns", "nr", "nq", "np", "no").list» | ||
20:33
kaare_ joined
|
|||
lue | r: say ("aa"..."zz").pick(2) | 20:38 | |
camelia | rakudo 71ea14: OUTPUT«tw yp» | ||
20:38
berekuk left
|
|||
adu | yey java7 is finally installed | 20:39 | |
masak | I hear it's really secure and everything. | 20:41 | |
20:41
cognominal left
20:42
cognominal joined
|
|||
geekosaur | Just Another Vulnerability Announcement | 20:42 | |
adu | geekosaur: lol | ||
masak: security is a statement about an organization, it's impossible to make that statement any particular software | 20:43 | ||
masak | surely the software is what contains exploitable bugs, not the organization. | 20:45 | |
timotimo | the organization can, too. using these bugs is called "social engineering" | ||
adu | masak: suppose you had perfect software, and gave out their password on national TV, then the organization is insecure, which has nothing to do with software | 20:46 | |
masak | I hear what you're saying, but I'm having trouble mapping this back to Java. | 20:47 | |
timotimo | if your software uses a password for critical stuff, rather than proper cryptographic keys and signatures and/or two-factor auth, then that's not perfect :P | ||
masak | surely the repeated exploits of the JVM stack lately haven't been due to some Oracle employee leaking passwords on TV? | ||
saying "it's Oracle that's insecure, not Java -- software can't be insecure" sounds like nonsense to me. | 20:48 | ||
or at least something highly falsifiable and false. | 20:49 | ||
lue thinks it's all a case of Sun > Oracle, at least to users' eyes (I wonder if they saw that coming?) | |||
adu | masak: I suppose you're right, it's the transitivity I think is false | 20:50 | |
software X is secure, software Y is secure, therefore (X+Y) is secure -- I think this is false | 20:51 | ||
geekosaur thinks java's insecurity (and perception thererof) well predates oracle's involvement | |||
but oracle does have something of a perception of unresponsiveness to security issues, because of their tendency to let known security issues in their database slide | 20:52 | ||
adu | lue oh? are you saying oracle f***ed it up? | ||
geekosaur | (which *also* predates their acquiring Sun) | ||
lue | I haven't been following Oracle's adventures with Sun products, but from what little I know what they've done certainly wouldn't help matters. | ||
(to be honest I only know of somehow driving the creation of LibreOffice and the dissolution of the Java Community Board or whatever-twas-called) | 20:53 | ||
adu | jnthn: it's on stage2 | ||
jnthn: done! | 20:54 | ||
geekosaur | sun owned openoffice (originally staroffice); people assumed oracle would either close source it or kill it off, and got surprised when they gave it to the apache foundation instead | ||
lue 's first comment at :49 was supposed to contain an autopun, and is guessing it didn't get spotted | |||
20:55
berekuk joined
|
|||
geekosaur did sort of spot it... | 20:55 | ||
adu | lue: "saw"? | ||
labster | good postnoon, #perl6 | ||
adu | lue: I still don't spot it | ||
geekosaur | hard to see with the Sun in your eyes... | ||
lue | "saw" meaning "I saw words describing it" | 20:56 | |
masak | it's a bit ironic that the flagship editor for Sun's language is called Eclipse... | ||
adu | o hehe | ||
jnthn | adu: yay :) | ||
lue | autopun: I'd be surprised if Oracle couldn't prophetize backlash from the purchase | 20:57 | |
(not a very good autopun, but still...) | 20:58 | ||
21:08
autumn left
21:12
berekuk left
|
|||
adu | jnthn: so what now? | 21:16 | |
jnthn | adu: What kinds of things do you wish to work on? | 21:17 | |
adu | whatever's missing | ||
jnthn | adu: "make test" will show up some failures | ||
adu: One issue that I think is at the heart of various failures is | 21:18 | ||
if you run with something like: -e "sub foo() { " | |||
Instead of the correct error in FAILGOAL you get "Cannot stringify this". The qregex and p5regex tests fail in the same manner, so if that one can be worked out it may win quite a bit :) | 21:19 | ||
adu | what is the correct error? | 21:21 | |
"Incorrectly paired operators"? | |||
jnthn | nqp: sub foo() { | 21:22 | |
camelia | nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near ""current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)» | ||
jnthn | That one. | ||
It may just be that NQPRoutine or NQPRegex want a method Str that returns the name of the routine. | |||
nqp: sub foo() { }; say(&foo) | 21:23 | ||
camelia | nqp: OUTPUT«foo» | ||
jnthn | nqp-jvm: sub foo() { }; say(&foo) | ||
camelia | nqp-jvm: OUTPUT«Cannot stringify this in <anon> in print in say in <anon> in <anon> in eval in evalfiles in command_eval in command_line in MAIN in <anon> in <anon>» | ||
jnthn | Ah, it may be that :) | ||
adu | jnthn: :) thanks | ||
21:25
kaare_ left
|
|||
masak | 'night, #perl6 | 21:26 | |
labster | All right, I finally have a branch with working IO::Path for multiple OSes. | 21:31 | |
Only had to add one tiny bit of pir to make it work. | 21:34 | ||
21:36
sizz left
|
|||
lue | labster: that goes in CORE.setting, right? | 21:36 | |
adu | jnthn: so I added a Str method to src/core/NQPRoutine.nqp, and recompiled, and I'm still getting "Cannot stringify this", so that's not it | 21:37 | |
labster | yeah | 21:38 | |
adu | wait, foo is a Sub, not a Routine | ||
21:39
autumn joined
|
|||
jnthn | adu: They're all NQPRoutine or NQPRegex | 21:40 | |
(In NQP) | |||
labster | lue: That was why I had to add the pir -- I wanted to get $*OS before it was actually defined in the setting. | ||
lue | and there's no equivalent nqp:: op for what you needed? (Just wondering, because any pir:: will be replaced in CORE.setting sooner or later) | 21:41 | |
labster | well... I just copypasted from terms.pm. | 21:42 | |
I suppose I should start helping with the hunt for pir in the core. | 21:43 | ||
lue | Just thought I'd let you know in case you'd like to avoid putting more PIR in CORE.setting :) (but if there is no nqp:: op yet for what you need, then by all means leave the pir:: there) | 21:45 | |
21:50
sizz joined
21:51
berekuk joined
|
|||
adu | what's the difference between QAST::Block and QAST::Stmts? | 21:53 | |
21:53
berekuk left
|
|||
adu | is one for packages and one for sub/methods? | 21:54 | |
21:57
berekuk joined
|
|||
jnthn | QAST::Block implies a lexical scope. | 22:00 | |
QAST::Stmts is just a bunch of things to run in order, and evaluates by default to the last thing. | 22:01 | ||
22:02
berekuk left
|
|||
adu | so Block is like ((lambda)) and Stmts is like (begin) | 22:02 | |
22:04
lustlife left
22:06
spider-mario left
22:08
gem_ joined
|
|||
adu | jnthn: where is nqp::print implemented? | 22:10 | |
jnthn | adu: It's mapped in src/vm/jvm/QAST/Compiler.nqp to a method in Ops.java | 22:11 | |
22:11
gem_ left
|
|||
adu | r: class C { sub Str() { "D" } }; say(C.new); | 22:13 | |
camelia | rakudo 71ea14: OUTPUT«C.new()» | ||
adu | class C { sub Str() { "D" } }; say(C.new().Str()); | ||
jnthn | method | ||
adu | r: class C { method Str() { "D" } }; say(C.new().Str()); | 22:14 | |
camelia | rakudo 71ea14: OUTPUT«D» | ||
adu | nqp-jvm: class C { method Str() { "D" } }; say(C.new().Str()); | ||
camelia | nqp-jvm: OUTPUT«D» | ||
adu | hmm | ||
so for some reason obj.st.MethodCache.get("Str") isn't working | 22:15 | ||
22:21
jdv79 left
|
|||
jnthn | Well, that's just a hash lookup | 22:21 | |
Most likely there's nothing there for whatever thing it's doing the lookup on | 22:22 | ||
If NQPRoutine and NQPRegex both have Str methods, my only other guess is that it's a CodeRef, which is the low-level thing. If so, the right way to get a name out of one of those is to nqp::getcodename it... | 22:24 | ||
Time to sleep here, I think. | 22:25 | ||
adu | jnthn: thanks for the help | ||
jnthn | np, thanks for looking at this :) | ||
22:27
ruoso left,
ruoso joined
22:33
tgt left
22:36
snearch left
22:37
tgt joined
22:51
tgt left
23:04
Chillance left
|
|||
adu | jnthn: I fixed it | 23:07 | |
23:21
BenGoldberg joined
23:31
Ben_Goldberg joined,
berekuk joined
23:34
BenGoldberg left
23:37
frdmn left
23:48
PacoAir left
|