github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 7 June 2013.
01:52 Jimmy__ joined
benabik Hm. Building with clang fails on OS X with "unknown linker flag -Bstatic". Not really awake enough to track this down. 03:38
Oh, dear. And clang is now default on OS X. I suppose I'll have to track it down at some point. 03:39
Perhaps we need a --gcc flag to counter that. :-/ 03:41
Looks like the generalizing of the build setting added -Wl,-Bstatic and -Wl,-Bdefault to the OS X clang flags. 03:45
Okay, "fixed". Pull request sent, although the fix is a bit of a hack. 03:55
04:50 jlaire joined 05:01 birdwindupbird joined
sorear could (just saying it's possible, not that it's necessarily a good idea) have an optional mode where pointers are relative, for applications where you really do need the fastest load possible 05:05
apparently the JVM does relative pointers, though for a different reason (32-bit indexes allow you to store more objects in a 4-32GB heap on a 64-bit platform; larger heaps use native pointers) 05:07
05:24 sorear joined 07:23 FROGGS joined 12:27 JimmyZ joined
JimmyZ diakopter: \\o 12:49
14:14 benabik joined 14:18 tgt joined 14:48 colomon_ joined 14:49 colomon_ joined
diakopter JimmyZ: hi 15:02
JimmyZ diakopter: hello
PerlJam ls
diakopter sorear: that's interesting
15:04 benabik joined 16:03 FROGGS joined 17:19 colomon joined
diakopter Util: I'm curious about the 'undiscussed' risks you mentioned. Have those uncertainties been alleviated since you mentioned that? 18:43
diakopter seeks to assuage 18:44
Util diakopter: alleviated, no, no to me. Bear in mind that I have only been logging #moarvm, and have not had a change to delve into my logs. 18:45
Risks are in several directions
The strings implementation (what do the functional people call it? not threads...) that your mentioned on stage in Austin, for example. 18:46
nwc10 ropes? 18:47
Util I drooled over it around 2001, when it was brought to Parrot's attention.
diakopter I've been calling it "strands" 18:48
Util Parrot went in the opposite direction, though. We even removed optimizations like internal pointers to start/end of string, which were meant to allow chomp/chop and trimming leading whitespace w/o actual string modification.
diakopter it's actually quite easy to disable entirely; just sprinkle a "flatten" call various places 18:49
I mean, it'll be doing a little extra work, but hardly any 18:50
Util: it's admittedly quite experimental. I've no problem gutting it if actual experiments and usage prove it's not worth it 18:51
benabik Strings ala go slices seem to make a ton of sense to me: pointers to storage, start, end. 18:52
Very efficient substring. :-)
Util diakopter: glad to know that (disabling), but that points out... (Dang, I can't think or type fast enough to be easily coherent. Bear with me, please.)
benabik Although that tends to leave the whole string in memory even when not needed. :-/
diakopter true. I'd planned (and sketched) a quasi-GC scheme to mitigate that 18:53
(using card-marking)
benabik should really finish reading the GC handbook someday soon. 18:54
Util stalled GC handbook around midpoint. So good, though. 18:55
sorear I have held the opinion for several years that "strings" is somewhat too general of an abstraction
I was (not deeply) involved in the low-level strings implementation work for haskell 18:56
Util diakopter: Perhaps we should start with a meta-discussion: If I enumerated every "undiscussed" risk, and you discussed each one with me, some would no longer seem risky to me, and other risks might become clear to you. 18:57
sorear we should probably have two engines: one for potentially long strings, the other for short ones like exist in the compiler symbol table
the optimizations for one are generally pessimizations for the other
and we can't really afford to pessimize parsing
benabik sorear: +1
Util That aspect is of no consequence, relative to 2013-06-07#i_7169707
sorear perhaps I should refrain from commenting on design until I'm an active committer
diakopter sorear: no, it's okay; please comment 18:58
Util Risks are healthy for MoarVM st this stage; I don't want to discourage any tech avenue you might explore (except maybe STM - super-high risk) 18:59
diakopter sorear: I've brought that up to jnthn; he astututely pointed out that we'll almost always parse and regex on strings that are read from IO (so physical strings, not composite ones)
Util The point I was trying to speak to was relative to Parrot's future.
If all goes well with MoarVM, then it is on track to replace Parrot as, well, the equiv of the Perl5-internal VM; i.e. the balls-to-the-wall fastest implementation, which everyone will use (for Perl6) unless they have good reason to go elsewhere. 19:01
10 months, I think jnthn said.
*But*, all might not go well.
diakopter Util: I'm undecided; I think the potential to improve speed well enough has a very big required effort
sorear we don't have to beat the JVM 19:02
Util Any of several technical experiments might fail, a key contributor (or family) might fall ill or take a new job/spouse/offspring.
sorear we just have to beat the NQP implementation on top of the JVM 19:03
Util Wait, it was 10 *weeks*, I remember.
sorear JVM seems to do a better job than .net of optimizing our nasty generated code, but...that's not saying much.
diakopter sorear: that's a good point, but optimizing/JITing the bytecode is the huge hurdle I see
b/c optimizing at the NQP level would help the JVM also 19:04
sorear could jit the bytecode, I have a hunch that a well-designed bytecode interpreter with a code set well matched to NQP *could* compete with the JVM here 19:05
diakopter depends what "well-matched" ends up meaning. currently it's pretty close to 1:1
sorear exactly 19:06
Util My point is, that it would not take much disruption before MoarVM's schedule of deliverability (to replace Parrot for NQP and Rakudo) is delayed to the point that Rakudo must also be disrupted, *unless* Parrot keeps on moving forward. 19:07
diakopter I mean, as far as eliminating "interpreter overhead" goes, the bigger the instruction set, the better, because stuff can be so widely specialized, and a single opcode can refer to hundreds of thousands of cpu instructions
benabik Util: Or the JVM backend. 19:08
diakopter Util: I'm not sure I agree with that; I think there's still so much to be done on Rakudo that's not blocked at all by any platform that it could proceed for years with no platform movement 19:09
things crucial to making design progress, yes
moritz diakopter: but missing features aren't really the major blocker to adoption, it seems
performance and reliability are 19:10
diakopter true.
well
they're certainly as big.
masak Util: "keeps on moving forward"?
[Coke] (just keep swimming) 19:11
diakopter *giggle*
"mine" "mine" "mine" "mine" "mine"
Util masak: (just a moment) 19:13
diakopter bbi 20 min
Util At several key points in both Parrot and Rakudo's histories, someone saw a clear path to replace a piece with something better, and started working on that replacement.
People were told about the work, and started acting that the future was the present.
Often, the work completed on time, and we all saved a lot of effort from our assumption that the new thing would (a) arrive in time, and (b) actually be better.
The times that (a) or (b) failed, had impacts out-of-proportion to the effort that was almost saved.
diakopter er, 40 min
um, fast typing or fast pasting? :)
Util I am rooting for MoarVM, but I am unwilling to risk another M0-occurance in order to save the labor on Parrot and go work on the very-cool new MoarVM. 19:14
diakopter I suspect you might not have a good idea of how much work/progress is in moar already 19:15
Util diakopter: Yes, the perfectionist in me must pre-type in a buffer to spare the world my imperfections.
diakopter okay, really afk 40 min 19:16
Util diakopter: OK
PerlJam Util: what do you mean by "risk another M0-occurance"? 19:17
Util masak: (a) Be responsive to Rakudo in the small: build the pieced that are needed in, say, 1-2 week scopes.
masak Util: to be perfectly honest I don't think Rakudo would suffer much at this point if Parrot development mysteriously ceased completely. 19:18
Util: from my perspective, that's basically what's happened already anyway.
except perhaps for the "mysteriously" part. 19:19
Util (b) Keep (or rebuild) some momentum for the larger tasks/branches, like calling convention improvements, cotto's (and benebik's?) fat-trimming branches, etc.
masak: "at this point", I agree.
masak re (b), good luck.
just let me draw a sigh of relief that Parrot is no longer the only basket capable of carrying Perl 6 eggs. 19:20
Util masak: Between this point, and the point you don't need Parrot *at* *all*, I am unwilling to risk.
masak: (basket): me too
sorear Util: i intend to keep working on rakudo/jvm until I am satisfied with its awesomeness level 19:24
Util sorear: Very glad to hear that. 19:27
19:46 eternaleye joined
diakopter Util: I should've more directly stated that no one's given a good summary of what's already "accomplished" in MoarVM 22:20
"what works" is kinda misleading at the moment 22:21
22:49 ggoebel joined 23:30 tomyan joined
diakopter jnthn: I thought of a way to manage extensions and how they register additional opcodes 23:39
jnthn diakopter: Cool. I've been thinking about it as a "register a bank" thing 23:40
We'll need that for Rakudo 23:41
diakopter my way packs them...
23:42 tomyan joined
diakopter jnthn: I'll write it up and post it as an issue. much easier than discussing/explaining here 23:43
jnthn +1
diakopter hm, you're up loate
late, even
jnthn It's the Hot Season, and when work is scarce. I've largely shifted my timezone. 23:44
Also, it's midsommar, which means we stay up and rink lots"!
uh, *drink, *lots!
diakopter also, rink. 23:45
jnthn
.oO( it's working! )
sorear read that as rink lots™! 23:46
masak is also up late! :D 23:53
sorear masak! :D
masak \\o/
try "Offley Porto Wine aged in wood Cachucha Reserve White". it's very smooth.
works well with bits of cheese, licorice, chocolate, figs and dates. 23:54
jnthn we...had figs too?
I thought I was just eating dates :P
masak jnthn: I don't think you had one of the figs.
there's two left :P 23:55
jnthn oh, I eated one of them already :P
yeah, it's not a date
masak thinking it was a date? lol!
jnthn Story of my life :/ 23:56
masak .oO( "dude, this is not a date" moment... )
diakopter jnthn: will we/anyone ever be distributing .moarvm files? 23:59
(or .mvm or whatever)