Parrot 6.9.0 "Rosy-faced Lovebird" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Fridays 13:30 UTC
Set by moderator on 12 November 2014.
00:50 particle joined 05:36 Reini joined 06:59 Reini joined 07:07 Reini1 joined 08:06 Reini1 left 08:10 rurban joined
rurban Froggs: parrot_old only? I'll have to revert the parrot_old rule change then. Did it just for debugging 08:11
09:33 FROGGS joined
FROGGS Reini: yes, seems to be parrot_old only, aye 09:34
Reini: can you fix that quickly? I need to implement openpipe until Thursday 09:35
rurban Ok 10:07
10:14 Reini joined
dalek rrot/smoke-me/o_files-gh1138: aac5ee2 | rurban++ | config/gen/makefiles/root.in:
[build] revert parrot_old linking regression in windows

Fixes GH #1138
Several non-exported symbols appeared when linking the pure O_FILES in parrot_old, and not as library. This exposes typical visibility problems, which should be fixed later. For now just revert to the old library linking and just use O_FILES when needed: i.e. darwin and debugging. See GH #1096
10:17
rurban1 can you check —gen-parrot=smoke-me/o_files-gh1138 ? 10:21
I have no msvc right now
10:29 travis-ci joined
travis-ci parrot/parrot#1293 (smoke-me/o_files-gh1138 - aac5ee2 : Reini Urban): The build passed. 10:29
Change view : github.com/parrot/parrot/commit/aac5ee26135e
Build details : travis-ci.org/parrot/parrot/builds/41146715
10:29 travis-ci left
dalek rrot: aac5ee2 | rurban++ | config/gen/makefiles/root.in:
[build] revert parrot_old linking regression in windows

Fixes GH #1138
Several non-exported symbols appeared when linking the pure O_FILES in parrot_old, and not as library. This exposes typical visibility problems, which should be fixed later. For now just revert to the old library linking and just use O_FILES when needed: i.e. darwin and debugging. See GH #1096
10:33
FROGGS will check, gimme a second 10:39
10:43 FROGGS joined
rurban1 now also in master 10:44
10:44 travis-ci joined
travis-ci parrot/parrot#1294 (master - aac5ee2 : Reini Urban): The build has errored. 10:44
Change view : github.com/parrot/parrot/compare/9...c5ee26135e
Build details : travis-ci.org/parrot/parrot/builds/41147254
10:44 travis-ci left
rurban1 should be good 10:44
FROGGS k, will test master instead
rurban1 just travis has some dns hickups to connect to github.com lately 10:45
FROGGS yeah, I've noticed that too on friday 10:46
Creating library src\\vm\\parrot\\pmc\\nqp_group.lib and object src\\vm\\parrot\\pmc\\nqp_group.exp 11:00
nqplexpad.obj : error LNK2001: unresolved external symbol __imp_Parrot_ex_throw_from_c_noargs
src\\vm\\parrot\\pmc\\nqp_group.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\BIN\\x86_amd64\\link.EXE"' : return code '0x460'
rurban1: one symbol to go :o)
hmmm 11:18
ohh, I probably have to manually delete nqp\\install\\bin\\libparrot.lib 11:24
rurban1: parrot does not seem to overwrite an existing PREFIX\\bin\\libparrot.lib when doing nmake install 11:27
ohh, it does not seem to install it at all... 11:32
and I think I tried to fix that a while ago without luck... the problem is that there are two files called libparrot.lib
one is a static lib (27MB) which goes in PREFIX\\lib, the other one is the import library for the dll 11:33
okay, problem is this: 11:40
C:\\nqp\\parrot\\config\\init\\hints\\mswin32.pm (2 hits)
Line 123: $conf->data->set( inst_libparrot_ldflags => "\\"$bindir\\\\libparrot.lib\\"" );
but that lib file does not get installed
--disable-static is broken too: makefile(1139) : fatal error U1083: target macro 'à(LIBPARROT_STATIC)' expands to nothing 11:58
Stop.
12:41 autark joined 12:42 kid51 joined
FROGGS rurban1: github.com/parrot/parrot/pull/1139 13:36
rurban1: --disable-static also fixes the problem that the import lib does not get installed
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:37
"NQP has been built and installed." - that's parrot HEAD, my PR and a patch to nqp that passes --disable-static along 13:43
rurban1 on windows the importlib should be libparrot.lib and there cannot be a static lib. in cygwin we have .dll.a 14:04
FROGGS rurban: why can't there be a static lib? 14:09
it builds a .dll, and two .libs by default
one libparrot.lib in parrot/ and the other one in parrot/blib/lib/libparrot.lib
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
but it gets build
the former is about 389KB the latter 27MB
rurban1 interesting. we should really test parrot with static libs then. I doubt that it will work
FROGGS then --diable-static could be the default on windows perhaps?
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
rurban1 imho yes
I'll check when I got my windows machines back.
FROGGS rurban1: can you take a look at the PR? can't imagine that it can cause trouble 14:12
rurban1 I'm just testing it 14:13
and yes, windows should default to the equivalent of —disable-static 14:14
we have some dll init code which influences how HLL's work 14:15
dynext and dynoplibs do not work with static libs, yet. 14:16
dalek rrot: 66b1f69 | rurban++ | config/gen/makefiles/root.in:
[build] fix building on windows

See github.com/parrot/parrot/pull/1139
FROGGS rurban1: ummm, you applied the patch only partially 14:18
rurban1: the line nmake complains about is left untouched 14:19
rurban1 yes, on purpose 14:20
FROGGS and what exactly is that prupose?
rurban1 ah, you mean $(LIBPARROT_STATIC) is empty on windows?
this should be fixed in the hints file then 14:21
FROGGS it is meant to be empty when I pass --disable-static 14:22
at least that's how I read it 14:23
rurban1 I see, that's bad. It influences the template logic
FROGGS k
rurban1 ok, looks like your patch is better
FROGGS HEAD fails again with: makefile(1139) : fatal error U1083: target macro 'à(LIBPARROT_STATIC)' expands to nothing 14:24
btw, the openpipe port only fails two tests (about opening a pipe to a non existing command) 14:25
would be nice to move all these hacks from nqp.ops upstream at some point 14:26
14:27 travis-ci joined
travis-ci parrot/parrot#1295 (master - 66b1f69 : Reini Urban): The build passed. 14:27
Change view : github.com/parrot/parrot/compare/a...b1f692d0da
Build details : travis-ci.org/parrot/parrot/builds/41157551
14:27 travis-ci left
dalek rrot: 17e3545 | rurban++ | config/ (2 files):
[build] more build fixes on windows

for --disable-static which makes a lot of sense on windows. See also PR #1139
14:35
rurban1 Thanks for checking this. makes a lot of sense on windows indeed 14:39
so how about openpipe on windows
parrot has Parrot_Run_OS_Command for this
in src/platform/win32/exec.c 14:40
and an _Argv version also
FROGGS I used most of Parrot_io_internal_open_pipe (src/platform/win32/io.c)
Run_Os_Command is not about pipes 14:41
rurban1 right. this is better
FROGGS we've ported Run_Os_Command to nqp.ops last year already IIRC
(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)
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
FROGGS nqp::shell does the too obviously, so the argument quoting stuff is already in place
correct
rurban1 threading is still missing in nqp-p though 14:44
this is where parrot really shines
method calls are still horrible slow
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()
rurban1 oh, new args
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
where is this in moar?
FROGGS src/io/procops.c
nqp::spawn, nqp::shell and now nqp::openpipe are identical across all three backends, which is nice 14:46
14:47 travis-ci joined
travis-ci parrot/parrot#1296 (master - 17e3545 : Reini Urban): The build passed. 14:47
Change view : github.com/parrot/parrot/compare/6...e3545fcbd4
Build details : travis-ci.org/parrot/parrot/builds/41158704
14:47 travis-ci left
rurban1 this is how it should it be, because we control everything 14:47
there's just one problem with jvm and moar, lstat is missing 14:48
or stat is doing lstat there
FROGGS and that's a problem because... ?
rurban1 it is not POSIX and is worse 14:49
stat follows the link, lstat not
FROGGS it provides what rakudo needs I'd say
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
rurban1 because sometimes you want to know something on the link also 14:51
FROGGS true... but I think I'd need use cases for Perl 6 to actually think about what we need/want 14:52
rurban1 oh, moar uses uv_spawn. this is easier, yes. 14:53
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
surely, but when you say: "foo".IO.s, do you want the size of the link or the target?
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
parrot HEAD works btw 14:56
rurban1 thanks
FROGGS ohh, thank you
rurban1 yes the -X file ops should follow links
let's make a parrot feature request to pass cwd and env to openpipe 14:58
FROGGS +1 15:00
rurban1 github.com/parrot/parrot/issues/1140
FROGGS and spawn/shell or whatever it is call in parrot 15:01
rurban1 in parrot is only 'open path, mode' 15:02
but adding a C api with these two added args is easy 15:05
15:37 lauleon joined
Coke f 16:29
ww
FROGGS who wants to write 'f' in another window anyway? :P
17:51 FROGGS_ joined 18:06 Hunger joined 22:47 kid51 joined