Skip to content
This repository has been archived by the owner on Jun 1, 2023. It is now read-only.

Config.xs syntax error on windows #78

Closed
rurban opened this issue Dec 7, 2015 · 4 comments
Closed

Config.xs syntax error on windows #78

rurban opened this issue Dec 7, 2015 · 4 comments
Assignees
Milestone

Comments

@rurban
Copy link
Member

rurban commented Dec 7, 2015

E.g. https://ci.appveyor.com/project/rurban/cperl/build/job/0yfvf5sqe7sisxrs

ext/Config/Config_xs.in(1149) : warning C4129: 'p' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1149) : warning C4129: 's' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1149) : warning C4129: 'l' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1113) : warning C4129: 'p' : unrecognized character escape sequence 
ext/Config/Config_xs.in(917) : warning C4129: 'i' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1006) : warning C4129: 'p' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1006) : warning C4129: 'm' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1009) : warning C4129: 'p' : unrecognized character escape sequence 
ext/Config/Config_xs.in(1009) : warning C4129: 'm' : unrecognized character escape sequence 
ext/Config/Config_xs.in(930) : warning C4129: 'p' : unrecognized character escape sequence 
ext/Config/Config_xs.in(957) : error C2059: syntax error : ',' 
ext/Config/Config_xs.in(411) : fatal error C1013: compiler limit : too many open parentheses 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.EXE"' : return code '0x2'
Stop.
@rurban rurban mentioned this issue Dec 7, 2015
rurban pushed a commit that referenced this issue Dec 7, 2015
with a little help from @nwellnhof and @bulk88.
for now 64bit only, with msvc10 and 12.
Both smoke now and found the #78 Config.xs syntax error.
@rurban rurban added this to the v5.22.2 milestone Dec 7, 2015
@bulk88
Copy link
Member

bulk88 commented Dec 7, 2015

I have a fix for the syntax error but not c escape warnings in #79

The c escape warnings are obviously Win32 file paths in Config.pm/heavy.pm

@rurban
Copy link
Member Author

rurban commented Dec 7, 2015

Not bad: https://ci.appveyor.com/project/rurban/cperl/build/5.22.2.607/job/4u6avr98aeu6nei6

Test Summary Report 
-------------------
comp/require.t                                                  (Wstat: 0 Tests: 58 Failed: 1)
  Failed test:  53
../cpan/Time-Piece/t/02core_dst.t                               (Wstat: 512 Tests: 60 Failed: 2)
  Failed tests:  55-56
  Non-zero exit status: 2
../dist/Storable/t/compat01.t                                   (Wstat: 1536 Tests: 6 Failed: 6)
  Failed tests:  1-6
  Non-zero exit status: 6
../dist/Storable/t/file_magic.t                                 (Wstat: 512 Tests: 79 Failed: 2)
  Failed tests:  6, 14
  Non-zero exit status: 2
../dist/Storable/t/interwork56.t                                (Wstat: 256 Tests: 30 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
../dist/Storable/t/malice.t                                     (Wstat: 512 Tests: 1 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 404 tests but ran 1.
../ext/Config/Config.t                                          (Wstat: 0 Tests: 189 Failed: 1)
  Failed test:  20
../ext/Config/t/Config.t                                        (Wstat: 512 Tests: 4 Failed: 2)
  Failed tests:  3-4
  Non-zero exit status: 2
Files=2397, Tests=708037, 1325 wallclock secs (87.69 usr +  4.16 sys = 91.84 CPU)
Result: FAIL
NMAKE : fatal error U1077: '.\perl.exe' : return code '0xf'
Stop.

bulk88 added a commit that referenced this issue Dec 7, 2015
This fixes a Win32 C syntax error while building XS Config. #78

ext/Config/Config_xs.in(957) : error C2059: syntax error : ','
ext/Config/Config_xs.in(411) : fatal error C1013: compiler limit : too many open
 parentheses
dmake:  Error code 130, while making 'Config.obj'
Unsuccessful make(ext/Config): code=65280 at ..\make_ext.pl line 575.
dmake:  Error code 130, while making 'Extensions'

fault line in Config.c

      {(U16)(long)&((struct stringpool_t *)0)->stringpool_str1008,		T_EMP,	, ""}, /* ld_can_script */

Signed-off-by: Reini Urban <[email protected]>
rurban pushed a commit that referenced this issue Dec 7, 2015
all non-valid escape chars need to be escaped.
"c:\perl" => "c:\\perl"
@rurban rurban removed the blocking label Dec 7, 2015
@rurban
Copy link
Member Author

rurban commented Dec 7, 2015

Could reproduce the 2 failing Config tests on cygwin:

$ ./TEST ../ext/Config/Config.t ../ext/Config/t/Config.t
t/../ext/Config/Config ..... # Failed test 20 - byteorder is as long as ivsize (which is 8) at ../ext/Config/Config.t line 70
#      got "4"
# expected "8"
FAILED at test 20
t/../ext/Config/t/Config ... #   Failed test 'cmp PP to XS hashes'
#   at t/Config.t line 67.
#     Structures begin differing at:
#          $got->{byteorder} = '12345678'
#     $expected->{byteorder} = '1234'
# Looks like you failed 1 test of 4.
FAILED at test 4
Failed 2 tests out of 1, -100.00% okay.
        ../ext/Config/Config.t
        ../ext/Config/t/Config.t

@rurban
Copy link
Member Author

rurban commented Dec 9, 2015

@bulk88 is working on this in the smoke/config_qq_fix_and_win32_smk_speed-* branches

@rurban rurban closed this as completed Dec 9, 2015
rurban added a commit that referenced this issue Aug 27, 2018
4.06 2018-08-22 (rurban)
        - Fix overloaded eq/ne comparisons (GH #116 by demerphq, GH #117 by Graham Knopp):
          detect strings, protect from endless recursion. false is now ne "True".
          clarify eq/ne rules in the docs.

4.05 2018-08-19 (rurban)
        - Set decoded type (PR #115 by Pali)
        - Add json_type_weaken (PR #114 by Pali)
        - Fix tests for 5.6 (rurban, pali)

4.04 2018-06-22 (rurban)
        - Fix bignum NaN/inf handling (#78 reported by Slaven Rezic)
        - Move author tests to xt/ as suggested in #106, added a make xtest target.
          Fixes a test fail with ASAN.

4.03 2018-06-21 (rurban)
        - Add sereal cpanel_json_xs type (#110 James Rouzier)
        - Fix bencode/bdecode methods in cpanel_json_xs (#111 Fulvio Scapin)
        - Overload ne operator for JSON::PP::Boolean (#107 tevfik1903)
        - Add a missing semicolon to a documentation example (#104 E. Choroba)

4.02 2018-02-27 (rurban)
        - Add encoder indent_length method (#103 rouzier), previously
          hard-coded to 3.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants