Perl 6 - the future is here, just unevenly distributed

IRC log for #parrot, 2014-11-16

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:50 particle joined #parrot
05:36 Reini joined #parrot
06:59 Reini joined #parrot
07:07 Reini1 joined #parrot
08:06 Reini1 left #parrot
08:10 rurban joined #parrot
08:11 rurban Froggs: parrot_old only? I'll have to revert the parrot_old rule change then. Did it just for debugging
09:33 FROGGS joined #parrot
09:34 FROGGS Reini: yes, seems to be parrot_old only, aye
09:35 FROGGS Reini: can you fix that quickly? I need to implement openpipe until Thursday
10:07 rurban Ok
10:14 Reini joined #parrot
10:17 dalek parrot/smoke-me/o_files-gh1138: aac5ee2 | rurban++ | config/gen/makefiles/root.in:
10:17 dalek parrot/smoke-me/o_files-gh1138: [build] revert parrot_old linking regression in windows
10:17 dalek parrot/smoke-me/o_files-gh1138:
10:17 dalek parrot/smoke-me/o_files-gh1138: Fixes GH #1138
10:17 dalek parrot/smoke-me/o_files-gh1138:
10:17 dalek parrot/smoke-me/o_files-gh1138: Several non-exported symbols appeared when linking the pure O_FILES in
10:17 dalek parrot/smoke-me/o_files-gh1138: parrot_old, and not as library.  This exposes typical visibility problems,
10:17 dalek parrot/smoke-me/o_files-gh1138: which should be fixed later.  For now just revert to the old library linking
10:17 dalek parrot/smoke-me/o_files-gh1138: and just use O_FILES when needed: i.e. darwin and debugging. See GH #1096
10:17 dalek parrot/smoke-me/o_files-gh1138: review: https://github.com/parrot/parrot/commit/aac5ee2613
10:21 rurban1 can you check —gen-parrot=smoke-me/o_files-gh1138 ?
10:21 rurban1 I have no msvc right now
10:29 travis-ci joined #parrot
10:29 travis-ci parrot/parrot#1293 (smoke-me/o_files-gh1138 - aac5ee2 : Reini Urban): The build passed.
10:29 travis-ci Change view : https://github.com/parrot/​parrot/commit/aac5ee26135e
10:29 travis-ci Build details : http://travis-ci.org/parrot/parrot/builds/41146715
10:29 travis-ci left #parrot
10:33 dalek parrot: aac5ee2 | rurban++ | config/gen/makefiles/root.in:
10:33 dalek parrot: [build] revert parrot_old linking regression in windows
10:33 dalek parrot:
10:33 dalek parrot: Fixes GH #1138
10:33 dalek parrot:
10:33 dalek parrot: Several non-exported symbols appeared when linking the pure O_FILES in
10:33 dalek parrot: parrot_old, and not as library.  This exposes typical visibility problems,
10:33 dalek parrot: which should be fixed later.  For now just revert to the old library linking
10:33 dalek parrot: and just use O_FILES when needed: i.e. darwin and debugging. See GH #1096
10:33 dalek parrot: review: https://github.com/parrot/parrot/commit/aac5ee2613
10:39 FROGGS will check, gimme a second
10:43 FROGGS joined #parrot
10:44 rurban1 now also in master
10:44 travis-ci joined #parrot
10:44 travis-ci parrot/parrot#1294 (master - aac5ee2 : Reini Urban): The build has errored.
10:44 travis-ci Change view : https://github.com/parrot/parrot/c​ompare/9c4f59da56f1...aac5ee26135e
10:44 travis-ci Build details : http://travis-ci.org/parrot/parrot/builds/41147254
10:44 travis-ci left #parrot
10:44 rurban1 should be good
10:44 FROGGS k, will test master instead
10:45 rurban1 just travis has some dns hickups to connect to github.com lately
10:46 FROGGS yeah, I've noticed that too on friday
11:00 FROGGS Creating library src\vm\parrot\pmc\nqp_group.lib and object src\vm\parrot\pmc\nqp_group.exp
11:00 FROGGS nqplexpad.obj : error LNK2001: unresolved external symbol __imp_Parrot_ex_throw_from_c_noargs
11:00 FROGGS src\vm\parrot\pmc\nqp_group.dll : fatal error LNK1120: 1 unresolved externals
11:00 FROGGS NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\x86_amd64\link.EXE"' : return code '0x460'
11:00 FROGGS rurban1: one symbol to go :o)
11:18 FROGGS hmmm
11:24 FROGGS ohh, I probably have to manually delete nqp\install\bin\libparrot.lib
11:27 FROGGS rurban1: parrot does not seem to overwrite an existing PREFIX\bin\libparrot.lib when doing nmake install
11:32 FROGGS ohh, it does not seem to install it at all...
11:32 FROGGS and I think I tried to fix that a while ago without luck... the problem is that there are two files called libparrot.lib
11:33 FROGGS one is a static lib (27MB) which goes in PREFIX\lib, the other one is the import library for the dll
11:40 FROGGS okay, problem is this:
11:40 FROGGS C:\nqp\parrot\config\init\hints\mswin32.pm (2 hits)
11:40 FROGGS Line 123:         $conf->data->set( inst_libparrot_ldflags   => "\"$bindir\\libparrot.lib\"" );
11:40 FROGGS but that lib file does not get installed
11:58 FROGGS --disable-static is broken too: makefile(1139) : fatal error U1083: target macro 'à(LIBPARROT_STATIC)' expands to nothing
11:58 FROGGS Stop.
12:41 autark joined #parrot
12:42 kid51 joined #parrot
13:36 FROGGS rurban1: https://github.com/parrot/parrot/pull/1139
13:36 FROGGS rurban1: --disable-static also fixes the problem that the import lib does not get installed
13:37 FROGGS IIRC the problem is that both libs have the same name, and there are scripts that use the filename as a key in a hash
13:43 FROGGS "NQP has been built and installed." - that's parrot HEAD, my PR and a patch to nqp that passes --disable-static along
14:04 rurban1 on windows the importlib should be libparrot.lib and there cannot be a static lib. in cygwin we have .dll.a
14:09 FROGGS rurban: why can't there be a static lib?
14:09 FROGGS it builds a .dll, and two .libs by default
14:09 FROGGS one libparrot.lib in parrot/ and the other one in parrot/blib/lib/libparrot.lib
14:10 rurban1 windows doesn't support really the concept of static libs
14:10 FROGGS the former is the import library, the latter is the static lib
14:10 FROGGS but it gets build
14:10 FROGGS the former is about 389KB the latter 27MB
14:10 rurban1 interesting. we should really test parrot with static libs then. I doubt that it will work
14:10 FROGGS then --diable-static could be the default on windows perhaps?
14:11 rurban1 for single-file application delivery (pbc_to_exe) it is useful
14:11 FROGGS but anyway, I can build parrot + nqp in the combination I said earlier
14:11 rurban1 imho yes
14:11 rurban1 I'll check when I got my windows machines back.
14:12 FROGGS rurban1: can you take a look at the PR? can't imagine that it can cause trouble
14:13 rurban1 I'm just testing it
14:14 rurban1 and yes, windows should default to the equivalent of —disable-static
14:15 rurban1 we have some dll init code which influences how HLL's work
14:16 rurban1 dynext and dynoplibs do not work with static libs, yet.
14:16 dalek parrot: 66b1f69 | rurban++ | config/gen/makefiles/root.in:
14:16 dalek parrot: [build] fix building on windows
14:16 dalek parrot:
14:16 dalek parrot: See https://github.com/parrot/parrot/pull/1139
14:16 dalek parrot: review: https://github.com/parrot/parrot/commit/66b1f692d0
14:18 FROGGS rurban1: ummm, you applied the patch only partially
14:19 FROGGS rurban1: the line nmake complains about is left untouched
14:20 rurban1 yes, on purpose
14:20 FROGGS and what exactly is that prupose?
14:20 rurban1 ah, you mean $(LIBPARROT_STATIC) is empty on windows?
14:21 rurban1 this should be fixed in the hints file then
14:22 FROGGS it is meant to be empty when I pass --disable-static
14:23 FROGGS at least that's how I read it
14:23 rurban1 I see, that's bad. It influences the template logic
14:23 FROGGS k
14:23 rurban1 ok, looks like your patch is better
14:24 FROGGS HEAD fails again with: makefile(1139) : fatal error U1083: target macro 'à(LIBPARROT_STATIC)' expands to nothing
14:25 FROGGS btw, the openpipe port only fails two tests (about opening a pipe to a non existing command)
14:26 FROGGS would be nice to move all these hacks from nqp.ops upstream at some point
14:27 travis-ci joined #parrot
14:27 travis-ci parrot/parrot#1295 (master - 66b1f69 : Reini Urban): The build passed.
14:27 travis-ci Change view : https://github.com/parrot/parrot/c​ompare/aac5ee26135e...66b1f692d0da
14:27 travis-ci Build details : http://travis-ci.org/parrot/parrot/builds/41157551
14:27 travis-ci left #parrot
14:35 dalek parrot: 17e3545 | rurban++ | config/ (2 files):
14:35 dalek parrot: [build] more build fixes on windows
14:35 dalek parrot:
14:35 dalek parrot: for --disable-static which makes a lot of sense on windows.
14:35 dalek parrot: See also PR #1139
14:35 dalek parrot: review: https://github.com/parrot/parrot/commit/17e3545fcb
14:39 rurban1 Thanks for checking this. makes a lot of sense on windows indeed
14:39 rurban1 so how about openpipe on windows
14:39 rurban1 parrot has Parrot_Run_OS_Command for this
14:40 rurban1 in src/platform/win32/exec.c
14:40 rurban1 and an _Argv version also
14:40 FROGGS I used most of Parrot_io_internal_open_pipe (src/platform/win32/io.c)
14:41 FROGGS Run_Os_Command is not about pipes
14:41 rurban1 right. this is better
14:41 FROGGS we've ported Run_Os_Command to nqp.ops last year already IIRC
14:42 FROGGS (because we need to pass the environment to the subprocess too)
14:42 rurban1 Run_Os_Command is just for fast execs. openpipe needs to go via COMSPEC (cmd.exe, oh horror)
14:43 FROGGS besides executing the subprocess in a given directory, which is a parameter of the nqp::spawn and nqp::shell op
14:43 rurban1 ah, yes. I remember now. So looks you need nothing more from us then
14:43 FROGGS nqp::shell does the too obviously, so the argument quoting stuff is already in place
14:43 FROGGS correct
14:44 rurban1 threading is still missing in nqp-p though
14:44 rurban1 this is where parrot really shines
14:44 rurban1 method calls are still horrible slow
14:44 FROGGS though it might be a good idea to move that logic to parrot, so one can pass the env and cwd as optional arguments to open(), shell() and spawn()
14:44 rurban1 oh, new args
14:45 FROGGS because 80% of the code is identical to nqp.ops (or vice versa)
14:45 rurban1 we need a new API call to accept those 2 args then
14:45 rurban1 where is this in moar?
14:45 FROGGS src/io/procops.c
14:46 FROGGS nqp::spawn, nqp::shell and now nqp::openpipe are identical across all three backends, which is nice
14:47 travis-ci joined #parrot
14:47 travis-ci parrot/parrot#1296 (master - 17e3545 : Reini Urban): The build passed.
14:47 travis-ci Change view : https://github.com/parrot/parrot/c​ompare/66b1f692d0da...17e3545fcbd4
14:47 travis-ci Build details : http://travis-ci.org/parrot/parrot/builds/41158704
14:47 travis-ci left #parrot
14:47 rurban1 this is how it should it be, because we control everything
14:48 rurban1 there's just one problem with jvm and moar, lstat is missing
14:48 rurban1 or stat is doing lstat there
14:48 FROGGS and that's a problem because... ?
14:49 rurban1 it is not POSIX and is worse
14:49 rurban1 stat follows the link, lstat not
14:49 FROGGS it provides what rakudo needs I'd say
14:50 rurban1 I made a PR on nqp for this. nqp blamed parrot, but the blame is on jvm and moar
14:50 FROGGS ahh, that TODO comment
14:51 rurban1 because sometimes you want to know something on the link also
14:52 FROGGS true... but I think I'd need use cases for Perl 6 to actually think about what we need/want
14:53 rurban1 oh, moar uses uv_spawn. this is easier, yes.
14:54 rurban1 perl5 is a good example: perldoc -f lstat
14:54 FROGGS we might want to make it optionally to follow links or not... but there is nothing like that specced, so the PR might end up in a discussion about semantics at Perl 6 level
14:54 FROGGS surely, but when you say: "foo".IO.s, do you want the size of the link or the target?
14:55 rurban1 when the perl5 standard makes sense, perl6 should not simplify it to a different meaning
14:55 FROGGS Perl 5 has a very different file/path model though
14:56 FROGGS parrot HEAD works btw
14:56 rurban1 thanks
14:56 FROGGS ohh, thank you
14:56 rurban1 yes the -X file ops should follow links
14:58 rurban1 let's make a parrot feature request to pass cwd and env to openpipe
15:00 FROGGS +1
15:00 rurban1 https://github.com/parrot/parrot/issues/1140
15:01 FROGGS and spawn/shell or whatever it is call in parrot
15:02 rurban1 in parrot is only 'open path, mode'
15:05 rurban1 but adding a C api with these two added args is easy
15:37 lauleon joined #parrot
16:29 Coke f
16:29 Coke ww
16:29 FROGGS who wants to write 'f' in another window anyway? :P
17:51 FROGGS_ joined #parrot
18:06 Hunger joined #parrot
22:47 kid51 joined #parrot

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

Parrot | source cross referenced