Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-12-29

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:21 vendethiel joined #moarvm
04:25 llfourn joined #moarvm
04:54 vendethiel joined #moarvm
09:05 domidumont joined #moarvm
09:07 patrickz joined #moarvm
09:10 domidumont joined #moarvm
09:55 virtualsue joined #moarvm
10:31 dalek joined #moarvm
11:06 vendethiel joined #moarvm
12:13 virtualsue joined #moarvm
12:26 leont joined #moarvm
12:43 dalek joined #moarvm
13:21 colomon joined #moarvm
13:25 colomon joined #moarvm
14:03 geekosaur joined #moarvm
14:39 flussence has anyone here ever successfully built rakudo+moar with --has-libffi?
15:23 kjs_ joined #moarvm
16:11 zakharyas joined #moarvm
16:23 vendethiel joined #moarvm
16:30 hoelzro o/ #moarvm
16:30 hoelzro flussence: I have
16:32 flussence I can't get it to work on gentoo :( both moar and rakudo assume ffi.h is /usr/include/ffi.h
16:32 hoelzro flussence: have you tried CFLAGS=-I/lib/ffi/location perl Configure.pl --has-ffi ?
16:33 hoelzro it probably won't compile the probe if -lffi isn't in your compiler's default search path, though
16:33 hoelzro sadly, Configure.pl's probe doesn't respect LDFLAGS (although it may now)
16:33 flussence I've put a makefile patch for that on moarvm's github issues, can't find anywhere appropriate to do the same for rakudo though.
16:34 flussence (anywhere in Makefile-Moar*.in, that is)
16:53 mohij joined #moarvm
17:34 TimToady joined #moarvm
18:41 brrt joined #moarvm
18:46 brrt ping konobi
19:10 mojca joined #moarvm
19:11 mojca does moarvm with jit work on 32-bit platforms at all?
19:13 flussence nope
19:20 brrt no
19:20 brrt what kind of platform are you looking for?
19:29 brrt ugh, my designed tile thingy is 152 bytes large even when leaving out the list pointers :-(
19:38 llfourn joined #moarvm
19:38 mojca i386-darwin
19:38 mojca in Configure.pl I see "if ($Config{archname} =~ m/^x86_64|^amd64|^darwin(-thread)?(-multi)?-2level/) { ... then enable jit"
19:38 mojca but for darwin there doesn't seem to be any distinction between 32-bit and 64-bit
19:39 timotimo brrt: too big for a cache line or what's the matter?
19:39 brrt just big and ugly
19:39 timotimo hmm
19:39 brrt mojca, oh, wow
19:39 brrt yes, that piece of code is Stupid, and my fault too
19:40 brrt i didn't know any better way to detect the architecture in perl
19:40 brrt i still don't, for that matter
19:40 mojca but I checked the configure parameters and there is no really straightforward variable that I could see
19:40 leont archname is not a very portable concept
19:40 brrt no, it isn't
19:41 mojca I have some very complex code to detect whether a mac is 64-bit capable
19:41 brrt mojca, the JIT works on amd64 posix and windows architectures, and nothing else
19:41 mojca ok, moderately complex
19:41 leont perl5's configure takes it from uname (at least on Unixy systems)
19:41 brrt hmmm
19:41 brrt that's something, yes
19:41 brrt but, not correct either
19:42 brrt because it disregards architecture
19:42 mojca no problem, I don't think the user who was hit by this really cares about JIT, it would only be helpful if it didn't throw a bus error
19:42 brrt eh, wait, let me restate that
19:42 brrt well, it's something that has to be reworked one day or another
19:42 mojca on OS X probably the most reliable way would be to check for compiler flags
19:42 mojca sorry, not flags, defines
19:43 brrt leont: we shouldn't assume target and host architecture are equal, and we do
19:43 brrt python setuputils also makes that mistake
19:43 mojca what's the best quick solution to disable jit before the configure "bug" gets fixed?
19:43 leont True
19:43 brrt --no-jit
19:43 mojca ok
19:43 mojca oh, wait, one more thing
19:44 brrt ask away :-)
19:44 mojca what if a user builds universal binaries?
19:44 brrt hahahahaha
19:44 brrt no
19:44 mojca also --no-jit just to be on the safe side?
19:44 brrt probably yes
19:44 mojca I can certainly build universal binaries
19:44 brrt i can't and never tried...
19:44 mojca but I'm not sure if I can run them :)
19:45 brrt if you make a universal binary, does it include two architecture shared objects
19:45 leont Basically, yes
19:45 brrt hmm
19:46 leont In theory, ELF supports that too, just no one implemented it much beyond proof of concept, because why would you?
19:46 geekosaur arch i386 somecommandhere
19:46 geekosaur er
19:46 brrt then basically, architecture-dependent compiler definitions could be made to do config, and we'd never care about a Configure.pl script at all
19:46 geekosaur arch -32 or arch -64
19:47 brrt because it'd then be the job of the compiler to get the configuration right
19:47 brrt well, with some exceptions like cgoto support
19:47 brrt stuff that would have to be probed for
19:50 mojca I opened a new ticket: https://github.com/MoarVM/MoarVM/issues/324
19:51 mojca Just curious, is powerpc supported?
19:51 mojca I'm not asking about JIT of course
19:52 flussence people have built on arm, so I don't see why not...
19:52 mojca Just for information: LuaJIT works on i386-darwin, but I believe there is specific code that has to be written for perl
19:52 mojca Maybe I'll try the ppc just for fun
19:53 nwc10 Power 8 worked last I tested it, 32 and 64 bit, but some tests failed
19:53 brrt i think powerpc is supported in principle
19:53 nwc10 IIRC jnthn fixed what he thought might have been the cause of those
19:53 mojca ok, thank you
19:53 nwc10 but I've not had a chance
19:53 nwc10 to retest
19:53 brrt luajits support for powerpc or not is basically separate from moarvm :-)
19:53 brrt we don't actually share any luajit code beyond the build process
19:53 brrt and couldn't, even if we wanted
19:53 mojca luajit on powerpc-darwin is broken
19:54 mojca I can compile luajit with some patches, but then random code crashes
19:54 mojca (even though most of it works; but those crashes make it useless)
19:59 mojca also, isn't it slightly wrong to use $Config{archname} or $Config{anyotherthing} to determine the architecture of the binary we are building?
20:00 mojca I can imagine that one could easily use x86_64 perl to build MoarVM for PPC for example
20:14 [Coke] hey, we got a failure report for moarvm on os x 10.6
20:14 nwc10 and it wasn't from me :-)
20:15 [Coke] mojca++ again. :)
20:16 nwc10 also, apologies in advance. My client might be here, but I'm not hugely around currently.
20:21 brrt mojca, yes, it is terribly wrong; but the question is, what would be a better strategy
20:21 brrt i do know the answer, by the way
20:22 brrt compile a binary that invokes the compiler with the correct flags, based on what your compiler thinks is the right thing... except that doesn't work for cross-builds either
20:22 brrt aargh
20:22 mojca in a way one should probably treat every Mac OS X compilation as "cross-compilation" just in case
20:22 brrt probably, yes
20:22 mojca not in the sense that one should expect --host and --target flags
20:24 mojca I'm not sure what your compilation chain does
20:25 mojca but in my opinion the proper way to determine the architecture on OS X would be to actually run the compiler and grep for some defines; something similar that autoconf does (I'm not saying I like autoconf)
20:26 brrt Configure.pl builds a Makefile from build/Makefile.in, based on probing and args from the environment, and the makefile than builds all the things
20:26 mojca then again ... if this is just for JIT, running the compiler would be a bit of an overkill
20:26 brrt nah, we already probe for other stuff
20:26 brrt it's a completely valid approach
20:27 mojca on mac one could theoretically set "export CXX=powerpc-apple-darwin10-g++-4.0"
20:28 mojca I didn't check whether that name exactly is a valid compiler name
20:28 mojca but one would get powerpc binaries by calling that compiler
20:28 mojca and most things would work out of the box
20:28 mojca though usually one would use export CXXFLAGS="-arch ppc" to achieve the same
20:28 brrt any binary name is valid, i think
20:29 mojca valid in the sense of "actually existing in the wild"
20:29 mojca (shipped by Apple)
20:29 mojca anyway, the name itself doesn't actually matter
20:29 virtualsue joined #moarvm
20:30 brrt no.. you can always do make CC=powerpc-apple-darwin10-g++-4.0
20:30 mojca the problem is that 10.6 would return "i386" when asked for uname, but it would build x86_64 binaries by default
20:30 brrt hmm
20:30 brrt that's ugly
20:31 mojca well, on ARM I don't know how to distinguish between armhf and armel; and on MIPS I don't know how to distinguish between mips and mipsel either
20:31 mojca without actually running the compiler
20:31 mojca the uname output is equal on both variants, but binaries are incompatible
20:32 mojca and I'm still fighting with that problem in our distribution of some other binaries; the only luck we have is that there are practically no users of those archs
20:32 * brrt should do an experiment probably with that
20:34 mojca what's the best place to ask a few simple questions about panda? #perl6?
20:36 [Coke] http://sdtimes.com/christmas-perl-arrives/ - that article seems confused.
20:36 [Coke] ww
20:39 llfourn joined #moarvm
20:51 brrt mojca, yes, that's the right place
20:51 brrt you should ask tadzik
20:55 vendethiel joined #moarvm
21:02 tadzik hm?
21:02 tadzik oh, panda, yes
21:04 mojca tadzik, I tried to create a package for panda for macports, but failed because I don't quite understand how it's supposed to work
21:04 mojca by default it installs files to a completely weird location
21:05 mojca and if I move it, it breaks with "/opt/local/bin/panda: line 2: syntax error near unexpected token `('"
21:05 mojca "/opt/local/bin/panda: line 2: `sub MAIN(:$name is copy, :$auth, :$ver, *@, *%) {'"
21:05 mojca but I should probably move the discussion to #perl6?
21:06 mojca maybe that error is because perl6 in shebang doesn't work
21:07 tadzik oh?
21:09 timotimo src/6model/reprs/NFA.c:442:17: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 6 has type ‘MVMint64’ [-Wformat=]
21:09 timotimo fprintf(stderr,"%c with %ds target %lx offset %lld\n",cp,(int)numcur, (long)target, offset);
21:09 timotimo ^- what could cause this? a "strange" platform?
21:10 tadzik overexcited compiler, imho :)
21:10 tadzik well, or a platform where long long int is not a 64bit int
21:12 timotimo well, it's only a debug statement
21:38 llfourn joined #moarvm
22:24 colomon joined #moarvm
22:39 llfourn joined #moarvm
22:50 zakharyas joined #moarvm
23:17 colomon joined #moarvm
23:29 virtualsue joined #moarvm
23:41 llfourn joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary