Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] dXSUB_SYS -> dNOOP instead of empty string #14950

Closed
p5pRT opened this issue Oct 1, 2015 · 19 comments
Closed

[PATCH] dXSUB_SYS -> dNOOP instead of empty string #14950

p5pRT opened this issue Oct 1, 2015 · 19 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 1, 2015

Migrated from rt.perl.org#126228 (status was 'resolved')

Searchable as RT126228$

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2015

From @bulk88

Created by @bulk88

See attached patch. "possible future refactoring" refers to cperl where
this patch was originally created. The fix applies to blead perl since a
"dFOO" must always be a C declaration per Perl 5 API name policy.

Perl Info

Flags:
             category=core
             severity=low

Site configuration information for perl 5.23.0:

Configured by Owner at Mon Jun 29 03:16:56 2015.

Summary of my perl5 (revision 5 version 23 subversion 0) configuration:
           Derived from: 63602a3fc27a417daf3c532b6a11ae6eba2a072a
           Platform:
             osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
             uname=''
             config_args='undef'
             hint=recommended, useposix=true, d_sigaction=undef
             useithreads=define, usemultiplicity=define
             use64bitint=undef, use64bitall=undef, uselongdouble=undef
             usemymalloc=n, bincompat5005=undef
           Compiler:
             cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL
-DWIN32
-D_CONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -D_USE_32BIT_TIME_T',
             optimize='-O1 -MD -Zi -DNDEBUG -GL',
             cppflags='-DWIN32'
             ccversion='13.10.6030', gccversion='', gccosandvers=''
             intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234,
doublekind=3
             d_longlong=undef, longlongsize=8, d_longdbl=define,
longdblsize=8,
longdblkind=0
             ivtype='long', ivsize=4, nvtype='double', nvsize=8,
Off_t='__int64', lseeksize=8
             alignbytes=8, prototype=define
           Linker and Libraries:
             ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf
-ltcg 		-libpath:"c:\perl\lib\CORE" 		-machine:x86'
             libpth=\lib
             libs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
             perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
             libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl523.lib
             gnulibc_version=''
           Dynamic Linking:
             dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
             cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug
-opt:ref,icf -ltcg 		-libpath:"c:\perl\lib\CORE" 		-machine:x86'

Locally applied patches:
             uncommitted-changes


@INC for perl 5.23.0:
             C:/perl521/srcnewb4opt/lib
             .


Environment for perl 5.23.0:
             HOME (unset)
             LANG (unset)
             LANGUAGE (unset)
             LD_LIBRARY_PATH (unset)
             LOGDIR (unset)
             PATH=C:\sperl\c\bin;C:\WINDOWS\system32;C:\Program
Files\Microsoft
Visual Studio .NET 2003\Vc7\bin;C:\Program Files\Microsoft Visual Studio
.NET 2003\Common7\IDE;C:\WINDOWS;C:\Program Files\Git\cmd;C:\Program
Files\Microsoft Visual Studio .NET 2003\Common7\Tools\bin;C:\perl\bin
             PERL_BADLANG (unset)
             PERL_JSON_BACKEND=Cpanel::JSON::XS
             PERL_YAML_BACKEND=YAML
             SHELL (unset)












@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2015

From @bulk88

0001-dXSUB_SYS-dNOOP-instead-of-empty-string.patch
From 0fb62dc69f68f9102e039636053e53f37cec3210 Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Wed, 30 Sep 2015 23:48:02 -0400
Subject: [PATCH] dXSUB_SYS -> dNOOP instead of empty string

Visual C 2003 says errors out saying that "int b" is a non-C89
mixed declaration and statement for example "int a;;int b;". dXSUB_SYS is
so rarely used that it happened to be the last declaration line at the
start of a block, so whether it is a declaration or statement is ambigious
and thus not failing in the past. In possible future refactoring,
dXSUB_SYS needs to be a proper declaration that can be placed anywhere
declarations can be placed.
---
 dosish.h             |    2 +-
 plan9/plan9ish.h     |    2 +-
 symbian/symbianish.h |    2 +-
 unixish.h            |    2 +-
 vms/vmsish.h         |    2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dosish.h b/dosish.h
index 2e4e745..9256e0f 100644
--- a/dosish.h
+++ b/dosish.h
@@ -56,7 +56,7 @@
     HINTS_REFCNT_TERM; OP_CHECK_MUTEX_TERM; \
     OP_REFCNT_TERM; PERLIO_TERM; MALLOC_TERM
 #endif
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 /* USEMYBINMODE
  *	This symbol, if defined, indicates that the program should
diff --git a/plan9/plan9ish.h b/plan9/plan9ish.h
index 0fdce12..5c326f6 100644
--- a/plan9/plan9ish.h
+++ b/plan9/plan9ish.h
@@ -106,7 +106,7 @@
 #define BIT_BUCKET "/dev/null"
 #define PERL_SYS_INIT_BODY(c,v)				    \
 	MALLOC_CHECK_TAINT2(*c,*v) PERLIO_INIT; MALLOC_INIT
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 #define PERL_SYS_TERM_BODY()	PERLIO_TERM; MALLOC_TERM
 
 /*
diff --git a/symbian/symbianish.h b/symbian/symbianish.h
index da5332c..17c4304 100644
--- a/symbian/symbianish.h
+++ b/symbian/symbianish.h
@@ -126,7 +126,7 @@
 
 #define BIT_BUCKET "NUL:"
 
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 #define NO_ENVIRON_ARRAY
 
diff --git a/unixish.h b/unixish.h
index 5b57138..cea36b8 100644
--- a/unixish.h
+++ b/unixish.h
@@ -157,7 +157,7 @@ int afstat(int fd, struct stat *statb);
 
 #define BIT_BUCKET "/dev/null"
 
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 #ifndef NO_ENVIRON_ARRAY
 #define USE_ENVIRON_ARRAY
diff --git a/vms/vmsish.h b/vms/vmsish.h
index d175b18..76fb92b 100644
--- a/vms/vmsish.h
+++ b/vms/vmsish.h
@@ -316,7 +316,7 @@ struct interp_intern {
 #define BIT_BUCKET "/dev/null"
 #define PERL_SYS_INIT_BODY(c,v)	MALLOC_CHECK_TAINT2(*c,*v) vms_image_init((c),(v)); PERLIO_INIT; MALLOC_INIT
 #define PERL_SYS_TERM_BODY()		HINTS_REFCNT_TERM; OP_REFCNT_TERM; PERLIO_TERM; MALLOC_TERM
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 #define HAS_KILL
 #define HAS_WAIT
 
-- 
1.7.9.msysgit.0

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2015

From @tonycoz

On Wed Sep 30 20​:57​:17 2015, bulk88 wrote​:

See attached patch. "possible future refactoring" refers to cperl where
this patch was originally created. The fix applies to blead perl since a
"dFOO" must always be a C declaration per Perl 5 API name policy.

In this case I think it's the d prefix on the name that's incorrect.

The only non-empty definition of dXSUB_SYS is in os2/os2ish.h, where it's defined as a macro call​:

os2/os2ish.h​:#define dXSUB_SYS OS2_XS_init()

which becomes a function call through a pointer​:

os2/os2ish.h​:#define OS2_XS_init() (*OS2_Perl_data.xs_init)(aTHX)

Tony

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Oct 18, 2015

From @tonycoz

On Mon Oct 12 15​:58​:33 2015, tonyc wrote​:

On Wed Sep 30 20​:57​:17 2015, bulk88 wrote​:

See attached patch. "possible future refactoring" refers to cperl
where
this patch was originally created. The fix applies to blead perl
since a
"dFOO" must always be a C declaration per Perl 5 API name policy.

In this case I think it's the d prefix on the name that's incorrect.

The only non-empty definition of dXSUB_SYS is in os2/os2ish.h, where
it's defined as a macro call​:

os2/os2ish.h​:#define dXSUB_SYS OS2_XS_init()

which becomes a function call through a pointer​:

os2/os2ish.h​:#define OS2_XS_init() (*OS2_Perl_data.xs_init)(aTHX)

Rejecting this patch.

Tony

@p5pRT
Copy link
Author

p5pRT commented Oct 18, 2015

@tonycoz - Status changed from 'open' to 'rejected'

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

From @bulk88

On Mon Oct 12 15​:58​:33 2015, tonyc wrote​:

On Wed Sep 30 20​:57​:17 2015, bulk88 wrote​:

See attached patch. "possible future refactoring" refers to cperl
where
this patch was originally created. The fix applies to blead perl
since a
"dFOO" must always be a C declaration per Perl 5 API name policy.

In this case I think it's the d prefix on the name that's incorrect.

The d prefix is not incorrect, the last patch to touch the code was incorrect, no ML archive of this patch tho due to oldness

+ BUILD PROCESS
+
+ Title​: "Fix usage of dXSUB_SYS, esp. in ExtUtils​::Miniperl"
+ From​: Chip Salzenberg
+ Files​: dosish.h minimod.pl os2/os2ish.h plan9/plan9ish.h vms/vmsish.h

Mon, 7 Apr 1997 00​:00​:00 +0000 (00​:00 +0000)
http​://perl5.git.perl.org/perl.git/commitdiff/8cc95fdbe3687330bd987cea170494b4cd263d90

diff --git a/os2/os2ish.h b/os2/os2ish.h
index 06a92a3..a1b6db9 100644 (file)
--- a/os2/os2ish.h
+++ b/os2/os2ish.h
@​@​ -78,7 +78,7 @​@​ void Perl_OS2_init(char **);
/* #define PERL_SYS_TERM() STMT_START { \
  if (Perl_HAB_set) WinTerminate(Perl_hab); } STMT_END */

-#define dXSUB_SYS int fake = OS2_XS_init()
+#define dXSUB_SYS OS2_XS_init()

So originally it was a declaration, a faulty patch later turned into non-declaration.

Probably what happened was some CCs were giving unused var warnings, and to quickly silence them the macro was made empty instead of dummy C auto since the API/Macros to have unused nonwarning declarations didn't exist yet in Perl API.

For example this commit from Thu, 27 Mar 1997 01​:23​:14 +0000 (20​:23 -0500) http​://perl5.git.perl.org/perl.git/commitdiff/a3c8358ce414426ff5d7d0ca29f8d98f18d4c878 which 2 weeks later was followed by the OS2 patch (Mon, 7 Apr 1997) above that de-declarationed the macro. Macro dNOOP did not exist until 2 years later ( Wed, 9 Jun 1999 18​:03​:01 +0000 (18​:03 +0000)) in http​://perl5.git.perl.org/perl.git/commitdiff/cea2e8a9dd23747fd2b66edc86c58c64e9970321 . PERL_UNUSED_DECL is 2 years newer than dNOOP, PERL_UNUSED_DECL was created on Wed Jun 13 09​:44​:58 2001 in http​://perl5.git.perl.org/perl.git/commitdiff/44dbb6954f87e9897f792db3f9f84f1f3ba8701a .

Day 1 (March 1996) of dXSUB_SYS macro in http​://perl5.git.perl.org/perl.git/commitdiff/59c30bed0921653934e0dff5f5245a2290cee8b6 and http​://perl5.git.perl.org/perl.git/commitdiff/bef10a86a57eda3140922972782e9a32409f68cc shows it was a real declaration and therefore the intent is that is really is a declaration.

The only non-empty definition of dXSUB_SYS is in os2/os2ish.h, where
it's defined as a macro call​:

os2/os2ish.h​:#define dXSUB_SYS OS2_XS_init()

which becomes a function call through a pointer​:

os2/os2ish.h​:#define OS2_XS_init() (*OS2_Perl_data.xs_init)(aTHX)

Tony

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

@tonycoz - Status changed from 'rejected' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

From @tonycoz

On Sun Oct 18 18​:52​:10 2015, bulk88 wrote​:

On Mon Oct 12 15​:58​:33 2015, tonyc wrote​:

On Wed Sep 30 20​:57​:17 2015, bulk88 wrote​:

See attached patch. "possible future refactoring" refers to cperl
where
this patch was originally created. The fix applies to blead perl
since a
"dFOO" must always be a C declaration per Perl 5 API name policy.

In this case I think it's the d prefix on the name that's incorrect.

The d prefix is not incorrect, the last patch to touch the code was
incorrect, no ML archive of this patch tho due to oldness

I've reopened the ticket.

As is, the patch is incomplete, since one of the dXSUB_SYS definitions is still not a valid declaration.

Tony

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

From @ysth

On Sun, Oct 18, 2015 at 6​:52 PM, bulk88 via RT
<perlbug-followup@​perl.org> wrote​:

The d prefix is not incorrect, the last patch to touch the code was incorrect, no ML archive of this patch tho due to oldness

The xray archives go back to 1995​:

http​://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/

but in a quick glance through, I didn't see this patch.

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

From @rurban

So there are two options, besides rejecting bulk's dNOOP patch.
To fix this msvc2003 issue just fix dXSUB_SYS.

* Revert chip's patch so that dXSUB_SYS is a declaration again.
Needs the least amount of changes.

* Or rename dXSUB_SYS to PERL_XSUB_SYS, and reorder a couple of places so that
PERL_XSUB_SYS is after all the declarations. I did that with https://github.com/perl11/cperl/commits/bugfix/dXSUB_SYS-gh68
See my ticket​: perl11/cperl#68

BTW​: dNOOP is also no declaration, and will fail with strict compilers also if used as declaration.

--
Reini Urban

@p5pRT
Copy link
Author

p5pRT commented Oct 19, 2015

From @rurban

On Mon Oct 19 16​:20​:17 2015, rurban wrote​:

So there are two options, besides rejecting bulk's dNOOP patch.
To fix this msvc2003 issue just fix dXSUB_SYS.

* Revert chip's patch so that dXSUB_SYS is a declaration again.
Needs the least amount of changes.

Well, I had to add PERL_UNUSED_DECL so it's still quite big, as it has to be the last decl,
but not as big as the 2nd patch, and it's not as invasive.
See https://github.com/perl11/cperl/commits/bugfix/dXSUB_SYS-2-gh68 for the patch

* Or rename dXSUB_SYS to PERL_XSUB_SYS, and reorder a couple of places
so that
PERL_XSUB_SYS is after all the declarations. I did that with
https://github.com/perl11/cperl/commits/bugfix/dXSUB_SYS-gh68
See my ticket​: perl11/cperl#68

BTW​: dNOOP is also no declaration, and will fail with strict compilers
also if used as declaration.

--
Reini Urban

@p5pRT
Copy link
Author

p5pRT commented Oct 20, 2015

From @bulk88

On Mon Oct 19 16​:20​:17 2015, rurban wrote​:

BTW​: dNOOP is also no declaration, and will fail with strict compilers
also if used as declaration.

If that is the case, dNOOP is incorrectly implemented for that "strict compiler" build permutation in perl.h.

P5P perl currently has


#define NOOP /*EMPTY*/(void)0
/* cea2e8a accidentally lost the comment originally from the first
  check in of thread.h, explaining why we need dNOOP at all​: */
/* Rats​: if dTHR is just blank then the subsequent ";" throws an error */
/* Declaring a *function*, instead of a variable, ensures that we don't rely
  on being able to suppress "unused" warnings. */
#ifdef __cplusplus
#define dNOOP (void)0
#else
#define dNOOP extern int Perl___notused(void)
#endif


I am leaning towards reverting the 1997 chip patch, but I'd rather go towards whatever solution is common to cperl and perl to the sake of commonality.

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented May 16, 2016

From @tonycoz

On Mon Oct 19 21​:06​:37 2015, bulk88 wrote​:

I am leaning towards reverting the 1997 chip patch, but I'd rather go
towards whatever solution is common to cperl and perl to the sake of
commonality.

How about the attached?

Tony

@p5pRT
Copy link
Author

p5pRT commented May 16, 2016

From @tonycoz

0001-perl-126228-partly-revert-8cc95fdb-and-fix-a3c8358c.patch
From c41cb50c0872b61d81cb282f8baadd55e36627be Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Mon, 16 May 2016 16:51:51 +1000
Subject: [PATCH] (perl #126228) partly revert 8cc95fdb and fix a3c8358c

a3c8358c changed:

-#define dXSUB_SYS int dummy
+#define dXSUB_SYS

which made dXSUB_SYS into not-a-declaration, this apparently broke
something, since 8cc95fdb then went through all the definitions of
dXSUB_SYS, made each of them into not-a-declaration and then
ensured ExtUtilis::Miniperl emitted dXSUB_SYS in a place where it
didn't matter whether it was a declaration or a statement.

When these changes were made perl.h didn't have dNOOP, but now we
do, so we can make dXSUB_SYS a declaration again, as its name
implies.

Based on a patch originally created by Daniel Dragan (bulk88).
---
 dosish.h             | 2 +-
 os2/os2ish.h         | 2 +-
 plan9/plan9ish.h     | 2 +-
 symbian/symbianish.h | 2 +-
 unixish.h            | 2 +-
 vms/vmsish.h         | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dosish.h b/dosish.h
index c1305cd..1dc9322 100644
--- a/dosish.h
+++ b/dosish.h
@@ -56,7 +56,7 @@
     HINTS_REFCNT_TERM; OP_CHECK_MUTEX_TERM;                 \
     OP_REFCNT_TERM; PERLIO_TERM; MALLOC_TERM; LOCALE_TERM;
 #endif
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 /* USEMYBINMODE
  *	This symbol, if defined, indicates that the program should
diff --git a/os2/os2ish.h b/os2/os2ish.h
index 70c8cbe..fb71cd0 100644
--- a/os2/os2ish.h
+++ b/os2/os2ish.h
@@ -274,7 +274,7 @@ void Perl_OS2_term(void **excH, int exitstatus, int flags);
 /* #define PERL_SYS_TERM_BODY() STMT_START {	\
     if (Perl_HAB_set) WinTerminate(Perl_hab);	} STMT_END */
 
-#define dXSUB_SYS OS2_XS_init()
+#define dXSUB_SYS int fake = OS2_XS_init() PERL_UNUSED_DECL
 
 #ifdef PERL_IS_AOUT
 /* #  define HAS_FORK */
diff --git a/plan9/plan9ish.h b/plan9/plan9ish.h
index 0fdce12..5c326f6 100644
--- a/plan9/plan9ish.h
+++ b/plan9/plan9ish.h
@@ -106,7 +106,7 @@
 #define BIT_BUCKET "/dev/null"
 #define PERL_SYS_INIT_BODY(c,v)				    \
 	MALLOC_CHECK_TAINT2(*c,*v) PERLIO_INIT; MALLOC_INIT
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 #define PERL_SYS_TERM_BODY()	PERLIO_TERM; MALLOC_TERM
 
 /*
diff --git a/symbian/symbianish.h b/symbian/symbianish.h
index 80c580b..9100405 100644
--- a/symbian/symbianish.h
+++ b/symbian/symbianish.h
@@ -128,7 +128,7 @@
 
 #define BIT_BUCKET "NUL:"
 
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 #define NO_ENVIRON_ARRAY
 
diff --git a/unixish.h b/unixish.h
index e05cb6a..4cd8e43 100644
--- a/unixish.h
+++ b/unixish.h
@@ -159,7 +159,7 @@ int afstat(int fd, struct stat *statb);
 
 #define BIT_BUCKET "/dev/null"
 
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 
 #ifndef NO_ENVIRON_ARRAY
 #define USE_ENVIRON_ARRAY
diff --git a/vms/vmsish.h b/vms/vmsish.h
index 1aea829..5011590 100644
--- a/vms/vmsish.h
+++ b/vms/vmsish.h
@@ -317,7 +317,7 @@ struct interp_intern {
 #define PERL_SYS_INIT_BODY(c,v)	MALLOC_CHECK_TAINT2(*c,*v) vms_image_init((c),(v)); PERLIO_INIT; MALLOC_INIT
 #define PERL_SYS_TERM_BODY()    HINTS_REFCNT_TERM; OP_REFCNT_TERM;      \
                                 PERLIO_TERM; MALLOC_TERM; LOCALE_TERM
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
 #define HAS_KILL
 #define HAS_WAIT
 
-- 
2.1.4

@p5pRT
Copy link
Author

p5pRT commented Jan 19, 2017

From @tonycoz

On Mon, 16 May 2016 00​:08​:41 -0700, tonyc wrote​:

On Mon Oct 19 21​:06​:37 2015, bulk88 wrote​:

I am leaning towards reverting the 1997 chip patch, but I'd rather go
towards whatever solution is common to cperl and perl to the sake of
commonality.

How about the attached?

Applied as 564894e.

Tony

@p5pRT
Copy link
Author

p5pRT commented Jan 19, 2017

@tonycoz - Status changed from 'open' to 'pending release'

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

From @khwilliamson

Thank you for filing this report. You have helped make Perl better.

With the release today of Perl 5.26.0, this and 210 other issues have been
resolved.

Perl 5.26.0 may be downloaded via​:
https://metacpan.org/release/XSAWYERX/perl-5.26.0

If you find that the problem persists, feel free to reopen this ticket.

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

@khwilliamson - Status changed from 'pending release' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant