Getting Wales Moving 2019

2019-01-25 Thread Getting Wales Moving Conference
GETTING WALES MOVING

DELIVERING ON THE WELL-BEING OF WALES

27TH JUNE 2019

RADISSON BLU HOTEL - CARDIFF

Following on from the hugely successful Getting Wales Moving 2018
Conference, we are delighted to announce that we will deliver the second
conference in this series on the 27th of June 2019 at the Radisson Blu
Hotel, Cardiff.

Once again, we have set the bar high, both in terms of quality and
expectation of stimulating real change. The 2019 conference will feature
influential and well-respected speakers with detailed insight from the
Welsh Government, Sport Wales, The Welsh Rugby Union and leading figures
involved in improving population health and tackling inactivity and skills
shortages across Welsh communities.

[1]CLICK FOR CONFERENCE WEBSITE

Ken Skates

Cabinet Secretary for Economy and Infrastructure

Welsh Government

Gareth Davies

Chairman

Welsh Rugby Union

Geoff Thompson

Executive Chair, MBE, FRSA, FL

The Youth Charter

Kate Evans

Head of Communication and Policy

Welsh Sports Association

The ambition for this series of "Getting Wales Moving" conferences is to
create a long term framework of communication and knowledge transfer to
ensure all available measures are being taken to deliver on the the Well -
Being of Future Generations Act.

To register for the conference, simply click the button below.

[2]REGISTER NOW

The Why Sports Getting Wales Moving conference - "Delivering on the Well -
being of Wales" will be open to professionals, decision makers and
influencers from across the sector whom are responsible and accountable for
delivering strong outcomes and increasing physical activity across the
country.

The conference will cover the following topics:
* Update on The Wellbeing of Future Generations Act
* What needs to change from both a policy and organisational perspective
to make the act a success.
* Developing a 6-36 month approach to delivery
* How do we drive improvements in our communities to deliver on the act
* What skills do we need that are not currently in place to ensure the
act is a success
* How can we work collaboratively? A unified approach to delivering the
act

DELEGATE TICKET PRICING

PUBLIC & 3RD SECTOR TICKETS £175

PRIVATE SECTOR £295

Register online or call our conference team for more information on - +44
(0)161 246 6265

[3]CASE STUDY PRESENTATIONS

[4]

We are a social research and technology company helping organisations that
do good, think smarter. Using both research and technology, we are able to
give organisations the knowledge and insight that then need to do what they
do, better. We work alongside individuals, organisations and police makers
alike to embed key research findings into future practice and strategic
development and use a range of technologies to ensure our projects are
relevant, scalable and sustainable.

Our own Views project management and evaluation programme was designed to
help organisations improve and demonstrate their impact and value. Now
incorporated into over 600 organisation's day to day activities, we know
Views delivers the ideal means to record and monitor the inspirational work
of organisations across the world.

[5]

4global is an international sports consultancy and sport intelligence
agency, which provides a range of services to government, local
authorities, organising committees and sports governing bodies. Established
in 2002, 4global Consultancy is involved in events, planning and strategic
services, while the intelligence arm of the business offers unparalleled
data services to clients.

4global provides its clients with accurate and actionable insight and
information management solutions across two sector-leading platforms:
DataHub and SportsHub. 4global helps its clients get more people active and
shape the future of sport. We use our experience, evidence-based advice,
new technologies and insight to empower our clients.

[6]

Management consultants specialising in Sport, Leisure and Physical Activity

Strategic Leisure is one of the most established and successful specialist
sport, physical activity and leisure consultancy practices in the UK
specialising in the planning, development, management and evaluation of
sport, leisure and physical activity facilities, services and events.

Our experience spans well over 30 years' of working in the UK leisure
industry in the voluntary, public and commercial sectors, and
internationally, across a significant range of projects.

Strategic Leisure's consultant team is known for providing innovative
solutions and excellent standards of service. Our reputation is founded on
our people focus – our clients and our team.

[7]TAKE ME TO THE WEBSITE

Follow us on social media for more info & updates
[8]Twitter [9]LinkedIn [10]YouTube

References

1. 
http://wales2019.whysports.co.uk/index.php?alias=creating-active-communities-2018-conference-2&option=com_content&view=article&id=57&Itemid=134
2. http://wales2019.whysports.co.uk/index.php?option=com_reg&refcode=NOV2018
3. h

"const"-related gcc warnings with pointers around, annoying

2019-01-25 Thread Warren D Smith
"foo" is a type that is a struct containing a uint64_t field x[4]
(among other things).

bool Proc( const foo *dog ){
   uint64_t *a, *b;
   a = dog->x;   // pointer a  now points to dog->x[0]
   b = something else;
   if( *a == *b ) return(TRUE);
   return(FALSE);
}

Now gcc complains
warning: assigning to 'uint64_t *' (aka 'unsigned long long *') from
'uint64_t const[4]' discards qualifiers
[-Wincompatible-pointer-types-discards-qualifiers]

but the thing is, those pointers a and b, never got used to alter
anything.  They merely
were used to read harmlessly from memory.  So dog still clearly was never
altered, and hence genuinely was const.

The problem here seems to me to be a lack of intelligence inside gcc's
thinking on the subject of "const"s.Sure assigning to a pointer
could be harmful to const-hood because
that pointer could get used someplace else to write to the "const" part of
memory.  BUT, if we know that pointer never can be used to write
to memory anywhere, because it lives only inside the restricted scope of
Proc(){}, and never is used to write to memory anywhere, and never is
copied to any
other variable (because we examine the code inside Proc to verify
this), then it was
ok and gcc should not warn.



-- 
Warren D. Smith
http://RangeVoting.org  <-- add your endorsement (by clicking
"endorse" as 1st step)


Re: "const"-related gcc warnings with pointers around, annoying

2019-01-25 Thread Jonathan Wakely
On Fri, 25 Jan 2019 at 13:48, Warren D Smith  wrote:
>
> "foo" is a type that is a struct containing a uint64_t field x[4]
> (among other things).
>
> bool Proc( const foo *dog ){
>uint64_t *a, *b;
>a = dog->x;   // pointer a  now points to dog->x[0]
>b = something else;
>if( *a == *b ) return(TRUE);
>return(FALSE);
> }
>
> Now gcc complains
> warning: assigning to 'uint64_t *' (aka 'unsigned long long *') from
> 'uint64_t const[4]' discards qualifiers
> [-Wincompatible-pointer-types-discards-qualifiers]
>
> but the thing is, those pointers a and b, never got used to alter
> anything.  They merely
> were used to read harmlessly from memory.  So dog still clearly was never
> altered, and hence genuinely was const.
>
> The problem here seems to me to be a lack of intelligence inside gcc's
> thinking on the subject of "const"s.Sure assigning to a pointer
> could be harmful to const-hood because
> that pointer could get used someplace else to write to the "const" part of
> memory.  BUT, if we know that pointer never can be used to write
> to memory anywhere, because it lives only inside the restricted scope of
> Proc(){}, and never is used to write to memory anywhere, and never is
> copied to any
> other variable (because we examine the code inside Proc to verify
> this), then it was
> ok and gcc should not warn.

This belongs on the gcc-help list, not here. If you want changes to
GCC's diagnostics please file a bug report in Bugzilla.

Basically you're asking for GCC to do escape analysis on the converted
pointer, and suppress the warnings if it doesn't escape and no stores
are done through the pointer.

I think it would have to be an optional behaviour for the warning,
because some people *do* want that warning. Maybe the pointer doesn't
escape today, but the code could change tomorrow, and they'd want to
be warned about the discarded qualifiers today.

Also, if the pointer's scope is strictly limited to that function, and
you never write through it, why not just make it const? What is the
advantage of writing your code that way, and requiring changes to the
compiler to deal with your desire to ignore the const qualifiers?


Re: "const"-related gcc warnings with pointers around, annoying

2019-01-25 Thread Warren D Smith
On 1/25/19, Jonathan Wakely  wrote:
> On Fri, 25 Jan 2019 at 13:48, Warren D Smith  wrote:
>>
>> "foo" is a type that is a struct containing a uint64_t field x[4]
>> (among other things).
>>
>> bool Proc( const foo *dog ){
>>uint64_t *a, *b;
>>a = dog->x;   // pointer a  now points to dog->x[0]
>>b = something else;
>>if( *a == *b ) return(TRUE);
>>return(FALSE);
>> }
>>
>> Now gcc complains
>> warning: assigning to 'uint64_t *' (aka 'unsigned long long *') from
>> 'uint64_t const[4]' discards qualifiers
>> [-Wincompatible-pointer-types-discards-qualifiers]
>>
>> but the thing is, those pointers a and b, never got used to alter
>> anything.  They merely
>> were used to read harmlessly from memory.  So dog still clearly was never
>> altered, and hence genuinely was const.
>>
>> The problem here seems to me to be a lack of intelligence inside gcc's
>> thinking on the subject of "const"s.Sure assigning to a pointer
>> could be harmful to const-hood because
>> that pointer could get used someplace else to write to the "const" part
>> of
>> memory.  BUT, if we know that pointer never can be used to write
>> to memory anywhere, because it lives only inside the restricted scope of
>> Proc(){}, and never is used to write to memory anywhere, and never is
>> copied to any
>> other variable (because we examine the code inside Proc to verify
>> this), then it was
>> ok and gcc should not warn.
>
> This belongs on the gcc-help list, not here. If you want changes to
> GCC's diagnostics please file a bug report in Bugzilla.
>
> Basically you're asking for GCC to do escape analysis on the converted
> pointer, and suppress the warnings if it doesn't escape and no stores
> are done through the pointer.
>
> I think it would have to be an optional behaviour for the warning,
> because some people *do* want that warning. Maybe the pointer doesn't
> escape today, but the code could change tomorrow, and they'd want to
> be warned about the discarded qualifiers today.
>
> Also, if the pointer's scope is strictly limited to that function, and
> you never write through it, why not just make it const?

--good idea.  I thought I wasn't allowed to do that... but tried it
and I am allowed
and it worked.  Thanks.


-- 
Warren D. Smith
http://RangeVoting.org  <-- add your endorsement (by clicking
"endorse" as 1st step)


Re: Enabling LTO for target libraries (e.g., libgo, libstdc++)

2019-01-25 Thread Richard Biener
On January 25, 2019 7:22:36 AM GMT+01:00, Nikhil Benesch 
 wrote:
>I am attempting to convince GCC to build target libraries with
>link-time
>optimizations enabled. I am primarily interested in libgo, but this
>discussion
>seems like it would be applicable to libstdc++, libgfortran, etc. The
>benchmarking I've done suggests that LTOing libgo yields a 5-20%
>speedup on
>various Go programs, which is quite substantial.
>
>The trouble is convincing GCC's build system to apply the various LTO
>flags to
>the correct places. Ian Taylor suggested the following to plumb -flto
>into
>libgo compilation:
>
>$ make GOCFLAGS_FOR_TARGET="-g -O3 -flto"
>
>This nearly works, and I believe there are analogous options that would
>apply to
>the other target libraries that GCC builds.
>
>The trouble is that while building libgo, the build system uses ar and
>ranlib
>directly from binutils, without providing them with the LTO plugin that
>was
>built earlier. This means that the LTO information is dropped on the
>floor, and
>attempting to link with the built libgo archive will fail.
>
>I have a simple patch to the top-level configure.ac that resolves the
>issue by
>teaching the build system to use the gcc-ar and gcc-ranlib wrappers
>which were
>built earlier and know how to pass the linker plugin to the underlying
>ar/ranlib
>commands. The patch is small enough that I've included it at the end of
>this
>email.
>
>My question is whether this is a reasonable thing to do. It seems like
>using
>the gcc-ar and gcc-ranlib wrappers strictly improves the situation, and
>won't
>impact compilations that don't specify -flto. But I'm not familiar
>enough with
>the build system to say for sure.
>
>Does anyone have advice to offer? Has anyone tried convincing the build
>system
>to compile some of the other target libraries (like libstdc++ or
>libgfortran)
>with -flto?

Using the built gcc-ar and ranlib sounds good but the patch looks not Form a 
quick look. I think we want to change the top level makefile to pass down the 
appropriate ar/ranlib_FOR_TARGET similar to how we pass CC_FOR_tARGET. 

Richard. 

>diff --git a/configure.ac b/configure.ac
>index 87f2aee05008..1c38ac5979ff 100644
>--- a/configure.ac
>+++ b/configure.ac
>@@ -3400,7 +3400,8 @@
>ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
> 
> RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
> 
>-GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
>+GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR,
>+  [gcc/gcc-ar -B$$r/$(HOST_SUBDIR)/gcc/])
> GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
>GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc
>-B$$r/$(HOST_SUBDIR)/gcc/])
> dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
>@@ -3424,7 +3425,8 @@ GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM,
>[binutils/nm-new])
>GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJCOPY,
>[binutils/objcopy])
>GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP,
>[binutils/objdump])
> GCC_TARGET_TOOL(otool, OTOOL_FOR_TARGET, OTOOL)
>-GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
>+GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB,
>+  [gcc/gcc-ranlib -B$$r/$(HOST_SUBDIR)/gcc/])
>GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF,
>[binutils/readelf])
> GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
>GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES,
>[binutils/windres])



Re: Enabling LTO for target libraries (e.g., libgo, libstdc++)

2019-01-25 Thread Joseph Myers
On Fri, 25 Jan 2019, Nikhil Benesch wrote:

> I am attempting to convince GCC to build target libraries with link-time
> optimizations enabled. I am primarily interested in libgo, but this discussion

Note that as far as I know issues with host-dependencies of LTO bytecode 
(bug 41526) may still exist, so this wouldn't work with Canadian cross 
compilers.

> I have a simple patch to the top-level configure.ac that resolves the issue by
> teaching the build system to use the gcc-ar and gcc-ranlib wrappers which were
> built earlier and know how to pass the linker plugin to the underlying 
> ar/ranlib
> commands. The patch is small enough that I've included it at the end of this
> email.

Will those wrappers properly wrap round tools for the target that were 
configured using --with-build-time-tools?

-- 
Joseph S. Myers
jos...@codesourcery.com


Re: Enabling LTO for target libraries (e.g., libgo, libstdc++)

2019-01-25 Thread Richard Biener
On January 25, 2019 6:17:54 PM GMT+01:00, Joseph Myers 
 wrote:
>On Fri, 25 Jan 2019, Nikhil Benesch wrote:
>
>> I am attempting to convince GCC to build target libraries with
>link-time
>> optimizations enabled. I am primarily interested in libgo, but this
>discussion
>
>Note that as far as I know issues with host-dependencies of LTO
>bytecode 
>(bug 41526) may still exist, so this wouldn't work with Canadian cross 
>compilers.

I was expecting the LTO byte code not to be retained in the built libraries. 

>> I have a simple patch to the top-level configure.ac that resolves the
>issue by
>> teaching the build system to use the gcc-ar and gcc-ranlib wrappers
>which were
>> built earlier and know how to pass the linker plugin to the
>underlying ar/ranlib
>> commands. The patch is small enough that I've included it at the end
>of this
>> email.
>
>Will those wrappers properly wrap round tools for the target that were 
>configured using --with-build-time-tools?



Re: Enabling LTO for target libraries (e.g., libgo, libstdc++)

2019-01-25 Thread Nikhil Benesch
Richard, regarding your first mail, I'm afraid I'm not sure what you
mean. Isn't this exactly the section of configure.ac that handles
CC_FOR_TARGET? The Makefile is dumb and just passes the
autoconf-substituted value for CC_FOR_TARGET directly through.

(I agree the patch will need some tweaks to work for all the
build/host/target combination possibilities.)

On Fri, Jan 25, 2019 at 12:18 PM Joseph Myers  wrote:
>
> On Fri, 25 Jan 2019, Nikhil Benesch wrote:
>
> > I am attempting to convince GCC to build target libraries with link-time
> > optimizations enabled. I am primarily interested in libgo, but this 
> > discussion
>
> Note that as far as I know issues with host-dependencies of LTO bytecode
> (bug 41526) may still exist, so this wouldn't work with Canadian cross
> compilers.

Ack, thanks for the heads up. For now I'm only interested in turning on
LTO during native builds.

> > I have a simple patch to the top-level configure.ac that resolves the issue 
> > by
> > teaching the build system to use the gcc-ar and gcc-ranlib wrappers which 
> > were
> > built earlier and know how to pass the linker plugin to the underlying 
> > ar/ranlib
> > commands. The patch is small enough that I've included it at the end of this
> > email.
>
> Will those wrappers properly wrap round tools for the target that were
> configured using --with-build-time-tools?

That's a good question. I think the answer is no. I'll investigate
further.

On Fri, Jan 25, 2019 at 12:39 PM Richard Biener
 wrote:
>
> On January 25, 2019 6:17:54 PM GMT+01:00, Joseph Myers 
>  wrote:
> >On Fri, 25 Jan 2019, Nikhil Benesch wrote:
> >
> >> I am attempting to convince GCC to build target libraries with
> >link-time
> >> optimizations enabled. I am primarily interested in libgo, but this
> >discussion
> >
> >Note that as far as I know issues with host-dependencies of LTO
> >bytecode
> >(bug 41526) may still exist, so this wouldn't work with Canadian cross
> >compilers.
>
> I was expecting the LTO byte code not to be retained in the built libraries.
>
> >> I have a simple patch to the top-level configure.ac that resolves the
> >issue by
> >> teaching the build system to use the gcc-ar and gcc-ranlib wrappers
> >which were
> >> built earlier and know how to pass the linker plugin to the
> >underlying ar/ranlib
> >> commands. The patch is small enough that I've included it at the end
> >of this
> >> email.
> >
> >Will those wrappers properly wrap round tools for the target that were
> >configured using --with-build-time-tools?
>


Re: Enabling LTO for target libraries (e.g., libgo, libstdc++)

2019-01-25 Thread Allan Sandfeld Jensen
On Freitag, 25. Januar 2019 07:22:36 CET Nikhil Benesch wrote:
> Does anyone have advice to offer? Has anyone tried convincing the build
> system to compile some of the other target libraries (like libstdc++ or
> libgfortran) with -flto?
> 
Make sure the static versions of the libraries are partially linked before 
being archived so they do not have LTO code in the final libraries.

gcc -r  -o libname.o
ar x libname.a libname.o

Never done it with gcc libraries though.

'Allan




Re: About GSOC.

2019-01-25 Thread Tejas Joshi
It took some time to get know using GDB, but upto some end I got it to
work. The enum real_value_class is used to classify the number into
zero, normal, infinity and NaN.
This class is represented by r->cl in real_value and values in struct
real_value are used as flags or representations while string to real
conversion (real_from_string) in real.c and other functions. The
decimal/hex string value is converted into real in real_from_string
function with byte-byte comparison which also include mpfr. (Correct
me if I am wrong.) What is the significance of mpfr related to these
internal representations?
Thanks.

-Tejas

On Wed, 23 Jan 2019 at 23:06, Joseph Myers  wrote:
>
> On Wed, 23 Jan 2019, Tejas Joshi wrote:
>
> > But I really dont know how to inspect a file like real.h 
> > (real_value)/real.c?
>
> Use cc1 to build a test program with selected floating-point constants in
> it.  Set breakpoints on appropriate functions in real.c (e.g. related to
> converting strings for real constants into the internal representation).
> Look at the representation produced for those constants to determine the
> particular conventions being used.
>
> --
> Joseph S. Myers
> jos...@codesourcery.com


Re: About GSOC.

2019-01-25 Thread Joseph Myers
On Sat, 26 Jan 2019, Tejas Joshi wrote:

> function with byte-byte comparison which also include mpfr. (Correct
> me if I am wrong.) What is the significance of mpfr related to these
> internal representations?

real.c provides a fixed-size representation of floating-point numbers that 
allows for various non-IEEE formats supported by GCC, and also allows 
functions from dfp.c to be used for decimal floating-point formats.

MPFR is used in GCC to provide operations that are nontrivial to 
implement, especially those that are nontrivial to implement in such a 
fixed-size context.  real.c operations wrap around MPFR ones where 
appropriate, doing whatever's needed in cases where there are non-IEEE 
semantics or sets of values.

-- 
Joseph S. Myers
jos...@codesourcery.com


gcc-8-20190125 is now available

2019-01-25 Thread gccadmin
Snapshot gcc-8-20190125 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/8-20190125/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 8 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-8-branch 
revision 268281

You'll find:

 gcc-8-20190125.tar.xzComplete GCC

  SHA256=c0dd87a33a7af607bf139bf5396696c21dc8252e9433d2c4a567097c398b87ab
  SHA1=8e3d5c24cae5ab33ef971f8e42818ac20be910d0

Diffs from 8-20190118 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-8
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.