»ö« 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.
sorear we really should never ever ever call serialize_sc more than once on the same sc 00:13
instead of caching the result, we should cache a flag and croak if someone tries to call it again
jnthn That's why I used two separate processees to cross-comp :P
pmurias sorear: so I should cache the serialization on the QAST::CompUnit level? 00:18
pmurias sorear: when cross compiling I need to have the serialized sc in both backends 00:18
jnthn pmurias: Why not do the two-process approach like every previous port? ;) 00:19
pmurias every previous = jvm,moarvm?
jnthn: I could hack around it that way, but I think cross compiling is important enought to do it properly 00:20
jnthn pmurias: yes ;) 00:21
pmurias r: my $foo = BEGIN {(1..10).pick(1)};say($foo) 00:22
camelia rakudo 6c80bf: OUTPUT«6␤»
timotimo jnthn: github.com/timo/rakudo/tree/nodal/ - if you'd like to implement the derivation logic for "is nodal", here's code that should, in theory, work properly for every case you throw at it
pmurias g'night 00:32
jnthn 'night
timotimo: OK, I look in the morning :)
timotimo good night jnthn :) 00:34
jnthn o/ 00:38
[Coke] are we sure that titlecase of ßß is Ssß ? 02:37
(and can we find a URL to back that up for the roast test?)
timotimo there is no ß at the beginning of words in german at least 02:47
but i also don't know of any words that start with ss. 02:49
labster my dictionary helpfully suggested: en.wikipedia.org/wiki/Ssam 03:16
although de.wikipedia.org/wiki/Koreanische_K%C3%BCche spells it 'ssam'/'Ssam' 03:17
sorear Sssssss! 03:19
Ssh!
oh, that's more usually Shh! 03:20
lue [Coke]: the titlecase of ßß is clearly ẞß :) 03:32
avuserow rn: say 1_000_000 03:46
camelia rakudo 6c80bf, niecza v24-86-g39ab531: OUTPUT«1000000␤»
avuserow is glad that's still a thing
diakopter avuserow: hey 04:11
avuserow hey diakopter, how goes?
diakopter ok 04:12
dukeleto o/ 06:41
sorear o/ 06:43
FROGGS o/ 08:03
sorear o/ 08:05
labster o/ 08:10
moritz u ẞ 09:29
.u ẞ
yoleaux U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ)
jnthn ponders nodal a little 10:05
dalek p/cached-serialization: a1783a1 | (Pawel Murias)++ | src/ (2 files):
Add a QAST::CompUnit.serialize_sc, which serializes the sc on the first use, and subsequently returns that value.
10:07
pmurias jnthn: ^^ that branch solves my problem 10:08
jnthn TimToady: We could allow "is nodal" on a class as a kind of class-wide defualt, a bit like we allow 'is rw' on a class to imply it on all attributes. 10:14
TimToady: That'd save making Iterable special :)
I think we want it so that all relevant methods end up with a "nodal" marker. 10:16
Rather than hard-coding looking at types
I suspect we have enough bits already 10:17
pmurias jnthn: so do you we want to merge the cached-serialization branch? 10:18
jnthn (to store it without making sub any bigger)
pmurias: Something feels wrong, but I can't put my finger on what just yet... 10:19
pmurias jnthn: maybe I should split the method up into has_serialized_sc,serialize_sc,serialized_sc? 10:21
pmurias jnthn: or do you mean in a does something crazy way, rather then it being a matter of style 10:24
food& 10:25
dalek p: 655b7da | (Solomon Foster)++ | src/HLL/sprintf.nqp:
Refactor a tad.
10:34
colomon \o 10:35
dalek ast: 1260840 | (Solomon Foster)++ | S02-types/ (2 files):
Refudge and tweak typed Bag/KeyBag tests.
10:38
arnsholt o/ colomon 11:02
colomon \o 11:03
pmurias jnthn: does have_we_serialized_sc/serialize_sc/sc_string_heap (sc_sh) seem better? 11:45
jnthn QAST nodes are meant to be, well, nodes. 11:59
This patch puts a method on it 12:00
That does compilation stuff
The exact details of how we serialize should really be left to the backend.
pmurias jnthn: the problem is that currently QAST::Compiler gets damaged by the backend 12:08
* QAST::CompUnit
jnthn: as we can only extract the info from the sc once
jnthn Yes, you're only meant to do it once, but you decided to do things differntly. :/ 12:09
How about you subclass the Parrot QAST::Compiler?
And override a method somewhere to keep things around as you wish 12:10
Then once things self-host on JavaScript it can be thrown away.
dalek p/cached-serialization: 2bb2232 | (Pawel Murias)++ | src/ (2 files):
Serialize the sc only when explicitly told to.
12:16
pmurias jnthn: if we treat this as a temporary solution, I could just monkey path QAST::Compiler or use a branch 12:21
jnthn: what I'm concerned is that it might be usefull to keep the ability to cross compile even after the bootstrap 12:22
if for example the parsing on one the jvm is significantly faster then on js 12:24
jnthn: or if we are compling to something like ARM 12:26
dalek kudo/nom: ebb29be | jonathan++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Implement type checking return values.
12:40
pmurias jnthn: instead of adding methods to a QAST node we could store things like $comp_unit<sc_sh> := ... 12:45
jnthn No, I don't think it should be stored in the node.
jnthn pmurias: Maybe some contextual that, if there, can be used. 12:46
pmurias jnthn: we could mixin a role, if you are concered about tangling up concerns in the code 12:54
jnthn: if you are concerned that the data doesn't belong in the node, it's already there (in the $!sc), just in a form that's annoying to use 12:55
jnthn: and currently the only way to extract stuff from the sc is to serialize it so we aren't making any choice for the backend 12:57
dalek p: 754bc44 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Tweak nqp::backtrace() to give VM coderef back.

This is what the usage of it in Rakudo expects. Gets us passing a good bit more of S32-exceptions/misc.t.
12:58
jnthn pmurias: Well, I got the impression something a bit more interesting must be going on over on the jVM port, given it ends up packing the serialized output into a JAR. Not quite sure how that looks... 13:03
pmurias looks ;)
pmurias jnthn: it's extracted the same way like on parrot and js: github.com/perl6/nqp/blob/master/s....nqp#L3055 13:11
timotimo o/ 13:15
tadzik so, can someone give me a hand with making 'perl6' shell script run outside rakudo directory?
pmurias jnthn: I'll use a branch for now, and we can see how things workout, maybe sorear will have some insight like he did on adding caching to nqp::serialize 13:16
tadzik Replacing all '.' with absolute paths and adding stuff to classpath doesn't seem to help
sergot hi! 13:17
o/
pmurias hi
tadzik hi hi
moritz \o tadzik, pmurias, sergot, *
jnthn ok 13:18
Hopefully the last couple of commits get us closer to 98% in the tests :)
bbl & 13:19
timotimo is not absolutely sure how the nodality of Hash's or Associative's methods should be handled 13:40
dalek kudo-js: 381555f | (Pawel Murias)++ | / (3 files):
Use the cached-serialization branch. We can compile th whole of QASTNode.nqp
13:55
grondilu rn: say "A" ~~ /<ident-[A..Z]>/ 13:59
camelia niecza v24-86-g39ab531: OUTPUT«===SORRY!===␤␤Unrecognized regex metacharacter - (must be quoted to match literally) at /tmp/DLSmcpTWGm line 1:␤------> say "A" ~~ /<ident-⏏[A..Z]>/␤␤Unhandled exception: Unable to resolve method ast in type Any␤ at /h…
..rakudo ebb29b: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket␤at /tmp/2uwlu_hJeN:1␤------> say "A" ~~ /<ident⏏-[A..Z]>/␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or ter…
grondilu rn: say "A" ~~ /<ident>/
camelia rakudo ebb29b, niecza v24-86-g39ab531: OUTPUT«「A」␤ ident => 「A」␤␤»
grondilu rn: say "A" ~~ /<ident-[A..Z] >/ 14:00
camelia rakudo ebb29b: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket␤at /tmp/kUPZnxCfgj:1␤------> say "A" ~~ /<ident⏏-[A..Z] >/␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or te…
..niecza v24-86-g39ab531: OUTPUT«===SORRY!===␤␤Unrecognized regex metacharacter - (must be quoted to match literally) at /tmp/3Xkro5ICB1 line 1:␤------> say "A" ~~ /<ident-⏏[A..Z] >/␤␤Unhandled exception: Unable to resolve method ast in type Any␤ at /…
grondilu rn: say "A" ~~ /<+ident-[A..Z]>/ 14:02
camelia rakudo ebb29b, niecza v24-86-g39ab531: OUTPUT«Nil␤»
moritz r: say (100, 155, * % * ... 0)[*-2] 15:06
camelia rakudo ebb29b: OUTPUT«5␤» 15:07
timotimo what is that sequence for? o_O 15:09
moritz GCD
r: say 100 gcd 155
camelia rakudo ebb29b: OUTPUT«5␤»
timotimo oh! 15:10
timotimo moritz: personally i'd've gone with ...^ 0 and then just [*-1] 15:25
moritz timotimo: I think that little snippet comes from the times before ...^ 15:42
timotimo ah
moritz back in the days when the sequence operator was new, I looked for cool uses of it 15:50
and euler's algorithm happens to be one that just needed the last two intermediate resutls
moritz r: say (100, 155, * % * ... 0) 15:52
camelia rakudo ebb29b: OUTPUT«100 155 100 55 45 10 5 0␤»
dukeleto o/ 16:16
tadzik hi dukeleto 16:19
dukeleto tadzik: wazzup 16:20
tadzik dukeleto: I was thinkikng about Seasons of Code today 16:21
any news on that?
dukeleto tadzik: i am still going to pursue that, but I have not had a wink of free-time outside of brewpony 16:23
tadzik: but i just shipped out coffee for the month, so I have time to hack on stuff a bit :)
tadzik cool :)
dukeleto tadzik: my plan is to talk to the appropriate TPF committee (I have chatted with them already) and make a plan and get funding for Perl Seasons of Code 16:24
tadzik: then I would create and document "the process" that I can hand over to somebody the following year. The last thing I want is to be another single-point-of-failure 16:25
tadzik right
dukeleto tadzik: "the process" of herding herds of herds of cats, that is :)
tadzik ;)
dukeleto tadzik: my hope is that seasons of code will not have as strict rules about age as gsoc 16:26
I think we have to require >=13 years old, for stupid US legal reasons
but otherwise, that might be the only requirement, other than being awesome
FROGGS a SoC would be pretty awesome, and I think this will work out pretty well 16:27
tadzik yeah, age rules are LTA 16:29
on both sides :)
dukeleto tadzik: it protects kids against child labor, which i think is good
dukeleto I met an 11 year old selling lemonade at a lemonade stand yesterday. He said he already knew Bash, Python, C++ and Java. So I gave him my business card. 16:30
What an odd place Portland is.
FROGGS well, then maybe a kid <13 years might just get no money, but is still allowed to participate
dukeleto FROGGS: yes
tadzik I see
FROGGS hehe
dukeleto FROGGS: money makes all the laws kick in
tadzik the opportunity to work on a Big Deal and have help of experienced people and gain experience yourself is not a small thing 16:31
diakopter wonders what Big Deals are left 16:32
dukeleto tadzik: indeed. That is why GCI students were actually more motivated than GSoC students
diakopter: your perspective is wonky :) 16:33
diakopter your perspective is wonky
dukeleto diakopter: i prefer my wonkiness to your wonkiness :)
tadzik one's weekend project is another one's Big Deal 16:34
pmurias jnthn: what do you think if instead of putting the serialized serialization context, the sc would keep that after serialization?
diakopter dukeleto: I couldn't possibly care any less which one you prefer, and I can't imagine anyone else caring either
pmurias that is we would have a nqp::serialization($sc) op that we are only allowed to call once, a nqp::sc_is_serialized($sc), nqp::sc_get_sh($sc) and nqp::sc_get_data($sc)? 16:36
dukeleto diakopter: well, maybe you should not spread your weariness and lack of -Ofun
These kids are amazed at the chance to help something as cool as Perl 6.
diakopter dukeleto: maybe you shouldn't tell your critics to kill themselves
dukeleto diakopter: perhaps
diakopter: I don't think I said that to you, but whatevs, dude.
pmurias ...things escalated pretty quickly ;) 16:37
diakopter why would it matter who you said it to?
dukeleto these kids have never heard the "perl is dead" meme and don't know that node is cooler than ruby now
diakopter: seems like you are having a bad day. Maybe go for a walk and do something happy?
diakopter: i am your buddy, not whatever you are thinking in your head.
diakopter I am quite sure that you think that 16:38
dukeleto diakopter: yep.
diakopter: i said hello to you at YAPC::NA and tried to talk. That was me being friendly.
diakopter: but i saw that you didn't want to interact with me. Fair enough. But you don't get to be mean in #perl6 16:39
diakopter I didn't?
dukeleto diakopter: i will ask TimToady to eject you.
dukeleto goes to his happy place
diakopter why did you think I didn't want to interact with you? 16:39
geekosaur that person has... issues 16:40
FROGGS but w/e, SoC++
pmurias jnthn: with better op names 16:41
diakopter I'm pretty sure I wasn't being "mean" compared to him telling my friend "And possibly eat a tasty ice pick with a side of sand to wash it down."
FROGGS diakopter: we all know that you are the rude guy of #perl6 *g* 16:42
diakopter lolololol
diakopter commutes 16:43
timotimo wonders, but at the same time doesn't think he wants to know 16:47
pmurias jnthn: example of what I'm proposing pastie.org/8140268 16:52
census__ diakopter has been super nice to me :) 16:55
diakopter FROGGS: it's funny b/c it's sometimes true 17:46
FROGGS diakopter: hmmmm, I've never seen you rude here 17:48
moritz somtimes curt, but not rude
diakopter heh. usually it's not on purpose. bad assumptions by me. 17:49
moritz the usual problem with IRC being a medium with small bandwidth
sorear good * #perl6 17:58
pmurias: I'm not sure what you're doing, but if it requires caching serialize it sounds *less* correct than the two-process solution
pmurias sorear: hi 18:17
pmurias sorear: I'm compiling one QAST::CompUnit on two backends, first on parrot then on javascript 18:18
pmurias sorear: you have seen the example? 18:19
sorear: pastie.org/8140268
sorear: when compiling the same compunit on the second backend I want to be able to check if the serialization context is serialized and just use it 18:21
s/it/the stuff it's already serialized too
pmurias sorear: calling the serialize opcode on the same context twice will throw an exception 18:22
sorear pmurias: why are you doing parrot if the goal is javascript? 18:39
arnsholt jnthn: Should result() in QAST::Compiler (line 106) for JVM perhaps check that $type != $RT_VOID? 18:53
pmurias sorear: nqp-js currently can't bootstrap, so I'm running on top of parrot 18:58
sorear: when I load a module it must be available a both a .pbc so I can load it at compile time, and as a .js file so I can load it at runtime 18:59
sorear: I could switch to using jvm instead of parrot ;) 19:03
diakopter pmurias: I was consideing doing that for moarvm.. 19:04
*considering
but it would be more than several hours
(for me)
pmurias diakopter: what else would be necessary other than changing Makefiles? 19:09
diakopter for moarvm, lots, since nqp isn't bootstrapped there, and the bytecode compiler isn't re-macro'd (including support code) to be bound in that 19:10
sorear pmurias: why do you need compile-time loading? 19:11
pmurias when I'm loading something like QAST::Node 19:12
census diakopter++ 19:13
portland--
diakopter census: :( 19:14
census what's wrong diakopter? :( 19:16
pmurias sorear: re compile-time loading, nqp imports a lot of stuff at compile time from the setting 19:17
pmurias sorear: so a lot of the QAST::WVal's contains things from other compilation units, and they need to be loaded 19:19
arnsholt yoleaux: tell jnthn Should result() in QAST::Compiler (line 106) for JVM perhaps check that $type != $RT_VOID? Or maybe set_core_op_result_type (l 347) is missing a case? 19:26
Hmm, that seems to be wrong. How is this supposed to work again? 19:27
dalek kudo-js: efc1168 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Implement nqp::const::*.
19:45
jnthn pmurias: I keep telling you to couple something as loosely as possible and you keep trying to shove it even deeper in. :/ 19:48
mst jnthn: eventually the process'll receive SIGPROLAPSE and he'll figure out why it was a bad idea 19:50
yoleaux 11 Jul 2013 19:20Z <raiph> mst: perlcabal.org/syn/S02.html#Slangs
jnthn pmurias: I really don't see why it can't be a %*SAVE_SC declared in the cross-comp's MAIN, and a check for if that exists and saving the serialized stuff in there if so. 19:51
mst: :)
arnsholt jnthn: I think I'm running into a QAST/JVM bug when $stack_out is $RT_VOID. Sound plausible? 19:55
sorear arnsholt: you're declaring a classlib op that returns void? 19:57
jnthn arnsholt: maybe...iirc you still need to obtain the thing...
sorear (what is arnsholt's project?)
arnsholt sorear: Yep, it's called purely for its side effects (setting up the internals of a thing)
jnthn: Obtain the thing?
jnthn $*STACK.obtain(...) 19:58
arnsholt I have no idea what that means. I add the ops with QAST::OperationsJAST.map_classlib_core_op, so I'm not doing much in the way of internals setup 19:59
sorear: This is for NativeCall/JVM
timotimo tadzik: did you notice the file tools tests are failing? ;)
jnthn arnsholt: Well, what sorear said. Did you declare ops void? 20:00
tadzik timotimo: no, I did not :)
jnthn Don't do that... :)
timotimo only one, though
arnsholt The op is public static void, yeah
That's wrong?
timotimo not ok 10 - found one of two files due to X::IO::Dir - got 2 expected 1
jnthn arnsholt: Can cause issues. 20:01
timotimo in the test file, tabs and spaces are mixed ;_;
arnsholt Oh, didn't know that. Why is that?
jnthn arnsholt: 'cus if you use the op in any not-void-expecting context (like, last in a block) then it causes issues. 20:02
arnsholt Oooooh, right 20:03
Unconditionally return 1 it is then =)
sorear timotimo: probably lots of end-of-line spaces, too? 20:14
timotimo end-of-line tabs ;) 20:17
timotimo ufo still doesn't properly exclude . and .. from dirwalk in upstream :| 21:11
and masak is now on holiday
timotimo .o(and of course building rakudo::debugger is as impossible as it's been for ages now) 21:26
is anybody able to install that? on linux?
dalek rl6-roast-data: 72865ed | coke++ | / (5 files):
today (automated commit)
21:39
[Coke] rakudo.jvm @ 98.17% 21:45
sorear wa? 21:46
[Coke] what wa? 21:48
sorear seems a large jump relative to what's been done in the last 24h 21:49
[Coke] I fudged a test so it didn't abort and lose passes. 21:50
r: say 371-313 21:51
camelia rakudo ebb29b: OUTPUT«58␤»
[Coke] 58 more passes since yesterday