| IRC logs at
Set by AlexDaniel on 12 June 2018.
00:36 Kaeipi left, Kaeipi joined 01:03 dogbert17 joined 01:06 dogbert11 left 01:09 sxmx left 01:22 Merfont joined, Kaeipi left 01:24 Geth left, tbrowder left, BinGOs left 01:30 Geth joined, tbrowder joined, BinGOs joined 03:57 leont left 05:17 evalable6 left, linkable6 left, linkable6 joined 05:18 evalable6 joined 06:30 frost-lab joined 08:34 domidumont joined 09:03 zakharyas joined 09:07 domidumont left 09:08 sena_kun joined 10:05 domidumont joined
MasterDuke hm, so 3rdpart/gmp/gmp.h only exists after gmp is built 10:24
Geth MoarVM: timgates42++ created pull request #1406:
docs: fix simple typo, instruciton -> instruction
MoarVM: 88cf264bcb | (Tim Gates)++ | src/spesh/args.c
docs: fix simple typo, instruciton -> instruction

There is a small typo in src/spesh/args.c.
Should read `instruction` rather than `instruciton`.
MoarVM: 0323c7bce1 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/spesh/args.c
Merge pull request #1406 from timgates42/bugfix_typo_instruction

docs: fix simple typo, instruciton -> instruction
MasterDuke so how does a normal build succeed when building moar before gmp? 10:29
jnthn Leftover previous build? 10:32
Did `make clean` get updated to clean it up also?
MasterDuke i did a `make realclean` and then even went to 3rdparty/gmp and did `git clean -xdf`. there was no 3rdparty/gmp/gmp.h anymore 10:35
jnthn System gmp? 10:36
(it falls back to a system version of the header, which is close enough) 10:37
MasterDuke i guess. so i just need to force gmp to be built first? 10:38
i do have a /usr/include/gmp.h 10:39
jnthn Yes 10:48
Maybe this explains the Windows issue :)
nine So the question is no longer "does it work with system gmp" but "does it actually work with the bundled gmp" ;) 10:49
MasterDuke ugh, i hate trying to figure out build stuff. i now have it saying it's building gmp before moar, but it doesn't actually
well, ldd of libmoar isn't pointing at my system gmp unless i do --has-gmp 10:50
jnthn Yes, I think the question is actually "does the unholy alliance of my system gmp headers and the gmp I've built work together" :)
MasterDuke 10:52
why does it start compiling moarvm files before actually doing the gmp build? 10:53
jnthn > /dev/null 10:56
MasterDuke and i guess the linux/mac vm in our CI also have a system gmp installed
jnthn Maybe there's an error and it's getting sent there? :)
Though they should really go on stderr...and cause it to terminate the build :S
MasterDuke if i copy that string of commands and manually run it, it does build gmp. but why is the make doing it later? 11:01
jnthn Are you `make -j` or something? 11:02
So it's doing some kind of parallel build?
MasterDuke i usually do, but i haven't been to test exactly that 11:03
jnthn I'm out of guesses if it's not that 11:06
MasterDuke oh wait. -j1 does in fact built gmp first 11:08
nine So you're missing dependencies in the Makefile
MasterDuke i've manually edited the Makefile so the `moar` target looks like `moar: $(THIRDPARTY) $(MAIN_OBJECTS)` (the `$(THIRDPARTY) ` is new) 11:09
and `THIRDPARTY = 3rdparty/cmp/libcmp.a 3rdparty/dyncall/dyncall/libdyncall_s.a 3rdparty/dyncall/dyncallback/libdyncallback_s.a 3rdparty/dyncall/dynload/libdynload_s.a 3rdparty/gmp/libgmp.a 3rdparty/libatomicops/src/libatomic_ops.a 3rdparty/ti nymt/libtinymt.a 3rdparty/sha1/libsha1.a 3rdparty/libuv/libuv.a` 11:10
nine With that make may run everything in parallel, except for the very last step of linking moar
Which may be just fine?
MasterDuke no, it's the actual compiling of moar that visual studio complains about since it can't find a gmp.h, which is only generated after gmp is built 11:11
jnthn Depends if the header file (or others) get generated
MasterDuke so gmp at least needs to happen first
nine So moar.h needs a dependency on gmp.h 11:14
MasterDuke let's see what does 11:24
ugh, appveyor complains `NMAKE : fatal error U1073: don't know how to make '3rdparty\gmp\libgmp.a'` 11:28
but maybe that's not unexpected? it's at least trying to build it first, now we just have to figure out how to actually build gmp on windows 11:29
no wait. that means it doesn't know about the target, not that executing the target failed... 11:32
nine And how should it? There's no rule for creating that file in the Makefile 11:33
MasterDuke there is on that branch 11:34
nine where?
MasterDuke 11:35
so i have this in my Makefile locally
$(MSG) building $@...
$(CMD)cd 3rdparty/gmp && sh .bootstrap && CC='$(CC)' CFLAGS='$(CFLAGS)' ./configure --enable-shared=no --with-pic && $(MAKE) && cp .libs/libgmp.a . && cd ..
does the order of the targets in the file matter for nmake? does `3rdparty/gmp/libgmp.a:` need to move before `$(MAIN_OBJECTS) $(OBJECTS):`? 11:37
nine in general no 11:38
The list is a list of requirements. All of them have to be satisfied before the target can be built 11:39
So order does not matter as such
MasterDuke didn't think so...
same error in azure 11:40
nine FWIW it works here, even if I move /usr/include/gmp.h out of the way
with make -j19
MasterDuke before the most recent commit? or with it? 11:41
nine with it
So, what does the generated Makefile on Windows look like? 11:42
MasterDuke don't know
nine I think getting hold of a copy with reveal the issue quite quickly :)
You could just add a "cat Makefile" to the build process at an appropriate place to get it into the build log 11:43
or the Windows equivalent
Oh, it's even easier! should be 3rdparty/gmp/gmp.lib on Windows, not libgmp.a 11:44
Look at the output
MasterDuke doh
timotimo is the file really called .bootstrap 11:47
and i guess windows wouldn't be able to `sh .bootstrap` anyway? 11:48
MasterDuke yep
nine MasterDuke: it's not just the extension. There's also no "lib" prefix on Windows 11:52
jnthn Windows builds often have their separate set of things you need to invoke 11:53
think that's the right way 11:54
ah ha. not success, but a better failure 11:55
nine the next question is: what to run instead of .bootstrap? 11:56
MasterDuke maybe just run configure and make? 11:58
12:05 travis-ci joined
travis-ci MoarVM build passed. Elizabeth Mattijsen 'Merge pull request #1406 from timgates42/bugfix_typo_instruction 12:05
12:05 travis-ci left
MasterDuke this is where i start to bow out in hopes that somebody who knows how to build things on windows can take over 12:05
lizmat whee! the power of fixing misspellings :-)
jnthn MasterDuke: Aren't we using a fork of gmp that builds on Windows, and doesn't it have instructions? 12:06
12:06 zakharyas left
jnthn Yes, see 12:07
MasterDuke it adds a visual studio project aiui
jnthn haha 12:08
Yeah, so I guess that has to be built, but then it mentions some other dependency too :S 12:09
MasterDuke but do we want to *require* visual studio to build moarvm? doesn't our current windows build just use nmake and such, not build via VS projects? 12:11
so do we need to figure out both?
jnthn Hmmm, does it require the IDE or just the toolchain? 12:12
12:12 lizmat_ joined
MasterDuke don't know, does help? 12:13
i haven't used VS in probably 20 years, so not sure how much help i can be 12:14
12:14 lizmat left 12:15 lizmat_ is now known as lizmat
cog Hi, in tile_pattern.file I don't understand the purpose of symbols with $ sigils. I thought pattern for immediate value but that does not seem the case in (define: (guard void $before $after) void) 12:38
Probably the generated tile_patternm.h will help me to understand 12:41
12:51 leont joined 13:08 Altai-man joined 13:11 sena_kun left 13:18 zakharyas joined 13:21 frost-lab left 13:51 zakharyas left
[Coke] (windows build) let me know if you need a test run on something other than master. 15:08
yes, we don't require VS 15:10
(but I'm using the VS x64 command prompt to do the build)
MVM_Sset_running_threadds_context - void function returning a value 15:13
MVM_set_running_threadds_context - void function returning a value
... still a typo. :) 15:14
anyone want a capture of all the widows compiler warnings? (There's a lot, but many dupes) 15:16
*windows. wow. typing is hard today
15:30 zakharyas joined
MasterDuke [Coke]: i assume that's just from master? can you try ? are you up for trying to adopt suggestions from and/or ? 15:48
[Coke] is there an easy way to do that from rakudo's configure, or should I do a 3-stage build? 15:55
MasterDuke do what?
[Coke] any configure options needed on that moarvm branch? 15:56
MasterDuke oh, nope 15:57
[Coke] "do what" == build. I'll just build your moarvm separately and then build on top of it if it works.
MasterDuke it won't build as is on windows, it needs something done. exactly what i don't know 15:58
[Coke] is it expected that "updating submodules" is slow? 15:59
configure gave a warning about libzstd but completed 16:01
MasterDuke i think the slow updating modules is just a windows thing, but i'm not sure 16:03
yeah, configure should be fine
[Coke] building, no issues yet... 16:04
MasterDuke that's kind of surprising... 16:05
[Coke] .. it's building libtonmath? 16:07
MasterDuke must not be on my branch then 16:09
did this? 16:10
[Coke] (branch) DOH 16:12
MasterDuke heh 16:13
[Coke] trying again. :) 16:14
aaahahaha 16:19
build dies immediately with "sh is not recognized...'
MasterDuke yeah, right now it does this 16:22
[Coke] OK. I'm at $dayjob, but will see if I can find an answer this evening.
MasterDuke could you try manually running just the configure and make part? i.e., not doing the `sh .bootstrap` at all 16:23
[Coke] removing && sh .boot.... gives an error about 'CC' is not recognized... (doesn't like that shell syntax, guessing) 16:25
and there's no .\configure 16:26
and .bootstrap is calling things that don't exist on windows 16:27
so your note before about just running configure: doesn't exist. 16:28
the link from earlier doesn't show how to generate it. (unless I have to install cygwin) 16:29
MasterDuke yeah, interesting
16:43 squashable6 left, squashable6 joined 17:09 sena_kun joined 17:11 Altai-man left 17:44 lucasb joined 18:21 domidumont left 18:27 MasterDuke left 19:02 Merfont left, Merfont joined 19:19 vrurg left 19:20 zakharyas left 19:58 vrurg joined 20:52 vrurg left 20:58 zakharyas joined 21:08 Altai-man joined 21:10 sena_kun left 21:38 MasterDuke joined 21:39 Altai-man left 21:54 vrurg joined
[Coke] so there's an MPIR fork of GMP that includes build stuff for windows. 22:00
22:00 zakharyas left
[Coke] Looking at GMP build instructions, I don't see anything in core that really fits with our build system. it's basically "install enough *nix so you can generate ./configure" 22:02
could we always build windows with the old math lib? 22:08
or is the goal to throw that one out?
MasterDuke we could do that. but gmp is so much faster i'd prefer to switch over completely 22:30
the mpir fork is quite a bit outdated i believe. the smp fork we're using is current with upstream releases
[Coke]: were you able to pull anything useful from ? 22:31
[Coke] I don't know what to do with that file, nope. 22:33
would require a deeper dive than I've been able to do today 22:34