github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 7 June 2013.
Tene I'm sure someday MS will release a C11 update to msvc ;) 00:02
timotimo_ yeah, by the time C22 is the current standard ... 00:18
flussence MS follows the 80/20 rule: 80% of the standards they support are 20 years out of date 00:48
timotimo_ "80% of the standard is good enough, if it's 20 years later" 00:51
Tene They've said a few times that they just don't care about C, won't support C, their customers don't want C, etc. 00:53
timotimo_ yeah, nobody wants C if there's ASP server pages 00:55
flussence
.oO( if we used that line of reasoning, this channel wouldn't exist today )
01:02
01:06 FROGGS_ joined 01:39 mrallen1 joined 01:50 cognominal joined 02:02 benabik joined 02:04 harrow joined 03:29 cognominal joined
eternaleye Sometimes, when I compile things, I imagine that seeing 'clang' scroll by in the make output is an onomatopoea for a Microsoft employee thunking their head against their computer at their rate of progress. 04:36
04:52 birdwindupbird joined 06:16 tomyan joined
Tene It took me quite a while to realize that clang was c-language, not just a loud noise. 06:20
eternaleye There's an flang now too, although I think they should have called it flange - 'engine' is meaningless on the end, but it makes the name stick out more :P 06:22
*a 'flang'
[Fortran LANGuage Engine]
06:49 FROGGS_ joined 08:18 tomyan joined 08:26 tgt joined
dalek arVM/container: 4170819 | jimmy++ | / (3 files):
add more container code
08:35
arVM/container: dea231c | jimmy++ | src/6model/containers.c:
fix wrong message
08:40
08:51 jlaire joined 09:42 tgt joined 09:44 Jimmy joined
Jimmy hello jnthn 09:44
jnthn o/ 09:50
Jimmy jnthn: I'm block on cantainer branch, because I don't know how to call invoke in code_pair_fetch, and I don't know store MVMContainerConfigurer * data and func pointer to VMHash 09:53
jnthn Jimmy: Yes, you can't. 09:54
Jimmy: Such things have to be transformed CPS-like.
(for the invoke, that is) 09:55
Jimmy jnthn: I guess that's the scope of my ability
jnthn Yeah, I expected to need to do that bit. :)
It's a bit fiddly. 09:56
Jimmy out the scope of my ability
jnthn: So I will leave the hard works to others :P
jnthn On the MVMContainerConfigurer, probably those just want to go in a raw hash 09:57
Rather than in a VMHash :)
Well, I'm appreciative of the bits of the work you've done so far. It's certainly in the right direction. Though there's a GC fail :)
MVMString *fetch = MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "fetch"); 09:58
MVMString *store = MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "store");
Here, for example, you are doing an allocation of a string, which is a GC-able object
Jimmy yes, with raw hash, can do it
jnthn Any allocation may trigger GC
And if you're going to do that, you need to tell the GC about what's ont he C stack (because we don't walk it, like on Parrot...can't do that, as we have to be precise) 09:59
There's an MVMROOT macro that takes care of this
Jimmy MVMROOT is tha part that I don't know when I need it 10:00
jnthn If you have a C parameter or local that is an MVMObject *, MVMSTable*, or MVMString * that you are going to use later in the current function, and you are going to do an allocation, you need to make sure the thing(s) are MVMROOT'd before the allocation happens. 10:01
Example: 10:02
void foo(MVMThreadContext *tc, MVMObject *a) {
...something that allocates...
...use a...
}
This is wrong
Needs to be more like
void foo(MVMThreadContext *tc, MVMObject *a) {
MVMROOT(tc, a, {
...something that allocates...
...use a... 10:03
});
}
Jimmy for exmaple: type_object_for int P6str.c and MVMString.c, I'm confused why one uses MVMROOT and one doesn't
jnthn Looking
um. 'cus P6str is wrong. 10:04
Jimmy goes home... 10:05
nwc10 jnthn: I assume that it would be very slow to run, but presumably a "debugging" mode which forced a nursery sweep for every allocation, and a flag for "I'm a dead pointer now" would flush out a lot of these? 10:07
jnthn nwc10: Yes 10:08
nwc10: Well, kinda.
nwc10 you have to keep the dead things around for a long time, as it might be a while before something looks at the them again 10:09
dalek arVM: 2420cbd | jnthn++ | src/6model/reprs/P6int.c:
Missing MVMROOT; JimmyZ++.
jnthn Yeah
Well, in the nursery you can always just reallocate rather than re-using semispaces
nwc10 Actually, it might not be *terribly* hard. You'd sort of cheat with a "pre-nursery", and forcibly move everything out of that on each potential GC location into the real location 10:18
er, terribly hard to have it not consume all the swap, that is
still not a totally *S*MOP
although I'm not sure if the pre-nursery is ever allowed to be freed 10:19
anyway, this seems to be a bit of a distraction. I'll shut up. As I'm very unlikely to write this 10:20
jnthn aww, dang :P 10:21
nwc10 sorry
BinGOs I did manage to refactor Config::BuildEnvironment last night, but I ended up having to fix my FreeBSD ports after blowing it up with a perl upgrade. 11:07
11:09 JimmyZ joined
JimmyZ speak of CPS, I had a work one for code_pair_fetch, I was not sure whether it's right or not 11:10
11:11 dalek joined
JimmyZ jnthn: gist.github.com/zhuomingliang/5773002 Is it right? 11:28
jnthn No.
JimmyZ jnthn: thanks :P 11:29
jnthn The best example is probably in loadbytecode.c
coerce.c also has some
Actually the coerce.c ones are probably closer 11:30
JimmyZ I had taken a look at it. it creates a callsite, but I don't know how to create args 11:31
dalek arVM: 26a227c | (Chris 'BinGOs' Williams)++ | build/Config/BuildEnvironment.pm:
Make the build environment detection more generic
11:39
arVM: 199a0d3 | (Chris 'BinGOs' Williams)++ | / (2 files):
Add --clang option to Configure.pl

This forces usage of clang compiler over gcc if clang is found
JimmyZ jnthn: gist.github.com/zhuomingliang/5773227 right? I'm sorry if it's wrong, GC is hard 12:17
jnthn JimmyZ: Close. Also fetch needs an MVMROOT before the decode call for store. 12:18
Otherwise that may trigger GC.
But config is rooted correctly now.
airport &
[Coke] JimmyZ++ # commits 12:26
dalek arVM/container: eeb9989 | jimmy++ | src/6model/containers.c:
fix a GC fail, jnthn++
12:38
12:53 JimmyZ joined
dalek arVM/container: 5ca108d | jimmy++ | src/ (3 files):
some small fixes
12:58
13:13 JimmyZ joined 13:26 JimmyZ joined 13:33 JimmyZ joined
chipdude I was going to suggest that configuration in Perl might be a limiting strategy, but for anything non-Windows it actually should work fine 14:12
just have to work to the GCD of all distributions. 5.6, maybe even 5.005.
PerlJam chipdude: you scare me :) 14:13
chipdude PerlJam: having worked with autoconf, metaconfig, and cmake, I find Perl config fairly non-scary :) 14:15
cmake would actually work for cross-platform to Win, though, which might be worth it if you're willing to ask people to install cmake to build mvm
Topsy uses cmake almost universally and it's fine. 14:16
14:37 JimmyZ joined
JimmyZ chipdude: since here is the perl community, I think most pepole here want perl instead of cmake 14:38
chipdude not so much my point; do we want Moar to build where there is no Perl? Obviously yes if Win is a target, and it is. 15:54
so WIn must be special-cased in a Perl system.
but we can work with it, that's fine.
diakopter chipdude: not everyone agrees with me on this, but I firmly assert the answer to "do we want Moar to build where there is no Perl" is no 17:37
my main argument for that is that Perl 6 won't be very usable or useful at all without Perl 5's CPAN also available. Plus, if you're okay with asking people to install cmake, what's wrong with asking them to install Perl? 17:38
17:39 lizmat joined
diakopter The other part of my argument is that it's highly unlikely [somewhat inconceivable actually] someone who already has Visual Studio and wants to build moarvm using msvc is going to balk at installing activeperl 17:39
case in point: the Microsoft folks who built .Net used Perl heavily in some code generation/compiling stages of building that for many many years
(as evidenced by the enormous dependence on it in the open-source released version of .NET, SSCLI 17:40
)
cygwin of course has the same argument as yours for unix; it's trivial to install if it's not installed by default, which it likely is 17:41
so, I guess the 2nd part of the 1st argument is that I'd *really* like to encourage folks to build moarvm with libperl embedding enabled [which will certainly be the default if available], just so the software is at least useful for something other than.. toying 17:43
long term [many years from now] it won't be as important, but if Perl 6 is to get any substantial number of users in the first few years since general availability of a stable/productized release, they're almost certainly going to come from the Perl 5 community 17:45
Perl 6's negative stigma of super-late, super-bloated/engineered, and in general pie-in-the-sky/pipe-dream toy language spec/implementations won't be easily changed, even with a completely new VM in C and JVM backends 17:58
chipdude: in addition, activeperl could be downloaded and installed by our configure program, given a tiny C program compiled that uses windows apis to download the installer and launch it in unattended/silent/headless mode: msiexec /q /i msi_file.msi TARGETDIR="c:\\ActivePerl64" PERL_PATH="Yes" 18:05
chipdude: also, for those without cygwin or msvc or activeperl or strawberry perl, it would be great to offer an option to automatically install/download an appropriate strawberry perl. might need to include an .exe in the distibution (and repo?) to download it. 18:07
..assuming we can get moarvm to build with the gcc in strawberry, which I don't think anyone's even attempted
chipdude: *also* building libuv currently has a dependency on Gyp (uses Python 2.x), the build system/language Google created to build chrome/v8: code.google.com/p/gyp/wiki/GypVsCMake 18:12
so....
someone would probably need to port that eventually, or just not worry about the Python dependency for building. 18:13
labster '^'..('^' x 20) -- looks like someone needs to write a blog post 18:52
18:57 tomyan joined
diakopter heh. 18:58
[Coke] information about the super secret project? crazy. 18:59
19:19 tgt joined, tomyan joined
Tene Which super-secret project? 20:34
[Coke] (this one. shhhhh) 20:35
diakopter [Coke]: I can't tell whether you're serious..? 20:37
(or teasing)
bbiab
[Coke] was this not, at one point, a super secret project?
diakopter yes
[Coke] your 20 sends there are more information than I'd seen in one chunk since I found out about it. 20:38
so, kind of teasing, kind of serious.
20:45 lizmat joined
PerlJam [Coke]: yeah, but diakopter's text were more design considerations and not really something for public consumption. So ... the cabal needs to communicate about the ex-super-secret project, but only amongst themselves :) 20:47
21:07 d4l3k_ joined 21:09 tgt joined
tokuhirom I got warning in current Configure.pl nopaste.64p.org/entry/F9EE77CC-D474...C23A9B6EE1 22:02
<censored> 22:03
Use of uninitialized value within %config in substitution iterator at build/Config/Generate.pm lone 14, <$fh_s> lone 14.
Tene Why put that in a notice instead of a normal message? 22:04
sorear o/ tokuhirom 22:05
tokuhirom there is no reason but this irc client use notice when using copy-and-paste 22:08
diakopter wait what? 22:11
oh
I've never seen that before
22:16 donaldh joined 22:26 benabik joined 22:49 tomyan joined
dalek arVM: 49cd270 | tokuhirom++ | src/strings/utf8. (2 files):
MVM_string_utf8_decode takes `const char*`.
23:47
arVM: f14589f | (Matthew Wilson)++ | src/strings/utf8. (2 files):
Merge pull request #29 from tokuhirom/fix/const-modifier-for-MVM_string_utf8_decode

MVM_string_utf8_decode takes `const char*`.
arVM: 80fb993 | tokuhirom++ | src/core/frame.h:
FIxed '/*' within block comment
23:48
arVM: 1ccd948 | (Matthew Wilson)++ | src/core/frame.h:
Merge pull request #28 from tokuhirom/patch-01

FIxed '/*' within block comment