Thursday, January 7, 2016

Digest for comp.lang.c++@googlegroups.com - 23 updates in 5 topics

Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jan 07 11:29PM

are we human or are we dancer sausages?
woodbrian77@gmail.com: Jan 07 08:47AM -0800

http://meetingcpp.com/index.php/newsreader/items/c-user-group-meetings-in-january-2016.html
 
The monthly overview on upcoming C++ User Group meetings! There is a new C++ User Group in Iasi, Romania and a lot of C++ User Groups which are meeting in January!
 
 
The Meetings
 
6th Saint Louis - "TMP is dead, long live constexpr!!", Scott Meyers' book
9th Delhi - C++11 community meetup
11th Denver - Denver Tech Center C++ Developers
11th Zentralschweiz - Coding Dojo
13th Utah - Package Management with Hunter and CMake
13th San Francisco - Presentation and Q&A
13th Washington, DC - Q & A / Info Sharing
14th NRW/Aachen - C++ Atomics, Boost.Lookfree, Hazard-Pointer und die Thread-Höll
14th Zürich - Variadic and Variable Templates Meetup
14th Dresden - Transducers
18th Austin - C/C++ Pub Social
19th Portland - January Meetup
19th Hamburg - boost::python
20th Düsseldorf - z=z^2+c - Mandelbrot in C++
20th Seattle/Northwest - C++ coroutines
23rd Juce - JUCE meet up at NAMM 2016
26th Sacramento - Talk C++
27th San Francisco - Workshop and Discussion Group
27th Washington, DC - Q & A / Info Sharing
28th Rhein-Neckar - C++ Usergroup Meeting
28th Munich - Lightning Talks
 
 
If others are interested in a C++ meeting in the St. Paul,
Minnesota area, please let me know. By the grace of G-d,
I'm able to provide a meeting area in a conference room in
the office building where Ebenezer Enterprises is, and I
would be happy to give a talk or two.
 
Brian
Ebenezer Enterprises - In G-d we trust.
http://webEbenezer.net
Jerry Stuckle <jstucklex@attglobal.net>: Jan 07 02:32PM -0500


> Brian
> Ebenezer Enterprises - In G-d we trust.
> http://webEbenezer.net
 
I'm just wondering if anyone actually checks these meetings. For
instance, the Washington, DC group links to a meetup which hasn't
existed for several months (or even longer - that's just when I started
checking).
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
legalize+jeeves@mail.xmission.com (Richard): Jan 07 11:24PM

[Please do not mail me a copy of your followup]
 
Jerry Stuckle <jstucklex@attglobal.net> spake the secret code
>instance, the Washington, DC group links to a meetup which hasn't
>existed for several months (or even longer - that's just when I started
>checking).
 
Jens leaves it up to the meeting maintainers to pay attention. He
wrote a tool that scraped up the meeting announcements from
meetup.com, so if a defunct group listed meetups occurring regularly
way into the future his tool was "greedy" in pulling those events into
the database.
 
If there is something defunct being listed there, simply send him an
email in order to get things adjusted. He has been very helpful and
gracious in helping me get my event titles corrected (a small bug in
his scraping tool, apparently).
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
The Terminals Wiki <http://terminals.classiccmp.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Jorgen Grahn <grahn+nntp@snipabacken.se>: Jan 05 05:37PM

On Tue, 2016-01-05, Christian Gollwitzer wrote:
> This opens up an editor with an overview of the changes, you enter a
> description to cimmit your changes. These are then stored locally only
> (in the .git folder)
 
Note that that's just one of many ways of producing commits.
 
> 2) git push
> send all commits to the server (github, in that case), i.e. publish them.
 
Well ...
 
The more general form is 'git push <remote> <my_commit>:<your_branch>',
so 'git push github master:master' means:
 
"Dear github, please take your "master" branch and make it so
that its tip becomes my commit called "master". You may steal
as many commits from me as you need. And if you refuse because
doing it would mean something more disruptive than just adding a
string of commits on top of your present "master", that's ok
too; I'll survive (and perhaps add a --force next time)."
 
> the changes from the server. As opposed to a centralized VCS like CVS or
> SVN, you do not need to push everything to the server - you can happily
> commit to your local repo, and once you think it is working as desired,
 
And once you see it's split into commits in a nice and logical way.
You can do pretty much anything to the commits as long as they're unpublished,
using e.g. rebase -i.
 
> developers also perform a rebase operation, which allows you to bundle
> several commits into one before you publish the changes. Personally, I
> do not do this, I publish every typo correction.
 
YMMV, but that's one of the best things about Git. You don't have to
be professional to appreciate that -- just perhaps a bit more
interested in the history than the average person.
 
/Jorgen
 
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Jan 05 01:08PM +0100

A bit off-topic, but, since clc++ never had a charter I feel safe, ;-)
 
I finally got cppx to compile with MinGW g++ (next step is adding
Unicode console i/o support for g++), but when I tried to commit to
GitHub the "GitHub" GUI thingy didn't seem to present all changes and
new files.
 
Sure enough, after committing it listed like 30 new changes, which I
then had to commit again.
 
And after that, a single remaining change that I had to commit.
 
Surely it's not meant to work like that, incremental commits?
 
I haven't used Git earlier so it's all new to me, including that I
haven't the foggiest idea what the difference is between committing and
pushing changes (sync) to GitHub.
 
 
Cheers & thanks for not biting me now,
 
- Alf
 
https://github.com/alf-p-steinbach/cppx/commits/plutonium
Christian Gollwitzer <auriocus@gmx.de>: Jan 05 01:46PM +0100

Am 05.01.16 um 13:44 schrieb Christian Gollwitzer:
>> pushing changes (sync) to GitHub.
 
> Are you talking about some GUI from GitHub? I've only ever used pure git
> from the commandline, where it works like this
 
PS: On Windows, I've used TortoiseSVN in the past, which nicely
integrates with the explorer. Maybe you try TortoiseGIT?
 
Christian
Darko Miletic <darko.miletic@gmail.com>: Jan 05 09:56AM -0300

On 05/01/16 09:08, Alf P. Steinbach wrote:
> then had to commit again.
 
> And after that, a single remaining change that I had to commit.
 
> Surely it's not meant to work like that, incremental commits?
 
In general it should not behave like that. In any case the best results
are obtained by using command line git client. There you have the full
control over everything and it mostly works once configured.
 
For example let us assume you have your project in foo dir.
Open the command line, position yourself in that dir. Execute:
git add -A
git commit -m "My latest changes"
git push origin mybranchname
 
That's it. All this assumes that your git is properly configured, that
you have github keys in place, that your .gitignore is correct etc.
 
What does that mean? It means:
* Install git client - https://git-scm.com/download/win (for windows)
* configure git client
from command line execute:
git config --global user.name "Your Name"
git config --global user.email yourmail@domain.tld
git config --global core.filemode false
git config --global core.autocrlf false
git config --global color.ui true
git config --global merge.renamelimit 10000
git config --global push.default simple
 
* generate and configure github ssh keys
https://help.github.com/articles/generating-ssh-keys/
 
However if you are into gui for vcs than check this one out -
https://tortoisegit.org/
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 05 07:43PM

On Tue, 5 Jan 2016 13:08:58 +0100
 
> I haven't used Git earlier so it's all new to me, including that I
> haven't the foggiest idea what the difference is between committing
> and pushing changes (sync) to GitHub.
 
git seems to be available as a windows binary so I would strongly
suggest that you use that.
 
git is a distributed system. 'commit' commits to your local
repository. 'push' pushes the changes you have committed locally to
another repository that you happen to have chosen to commit to (or have
set as your remote repository). pushing may or may not succeed. It
should succeed if you are the only one pushing to the remote repository,
unless something else has gone adrift.
 
Chris
red floyd <no.spam@its.invalid>: Jan 06 04:54PM -0800

On 1/6/2016 12:26 PM, Gareth Owen wrote:
 
>> I can take CalTrain to the stadium, but it takes well over an hour
>> each way. I live 50 miles south of PacBell^H^H^H^H^H^H^H AT&T park.
 
> Watch the A's
 
In that tarp-covered monstrosity full of sewage overflow?
Gareth Owen <gwowen@gmail.com>: Jan 07 06:59AM


>> Watch the A's
 
> In that tarp-covered monstrosity full of sewage overflow?
 
Sure. But on the plus side, there's plenty of parking, and you're less
likely to get too-stoned-to-drive from second hand smoke. :)
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 04 10:24PM

On Mon, 4 Jan 2016 21:18:59 +0000
 
> However - Alf told me not to do it. Paavo quoted me the spec (which I
> spent 5 minutes reading again and again) and if those two tell me not
> to I won't.
 
No they didn't. They told you that the initialization:
 
unsigned x = -1;
 
is guaranteed to initialize all the bits of the integer to 1, by §4.7/2
of the standard. It is guaranteed to work, subject to the slight
imperfection of the wording to which Alf referred but which does not
affect the clear intention. (However, behaviour in the reverse
direction, namely on overflow on conversion to signed, is not
guaranteed. It is implementation defined - §4.7/3.)
 
Chris
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 04 10:37PM

On Mon, 4 Jan 2016 22:24:16 +0000
Chris Vine <chris@cvine--nospam--.freeserve.co.uk> wrote:
[snip]
> does not affect the clear intention. (However, behaviour in the
> reverse direction, namely on overflow on conversion to signed, is not
> guaranteed. It is implementation defined - §4.7/3.)
 
It occurs to me that you may have been confused by the reference to bit
alteration in §4.7/2. The point here is that even where negative
numbers are represented by, say, one's complement
 
unsigned x = -1;
 
will still set all the bits of the integer to 1. However in one's
complement this is bit altering, because in the one's complement
representation of -1, the first bit is not set (all bits set in one's
complement is equivalent to -0, which is a value that two's complement
does not have).
 
Chris
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jan 04 10:54PM

On 04/01/2016 22:37, Chris Vine wrote:
> representation of -1, the first bit is not set (all bits set in one's
> complement is equivalent to -0, which is a value that two's complement
> does not have).
 
There is no such thing as negative 0 which makes (if you are correct)
one's complement erroneous. IEEE floating point is also wrong to include
support for negative 0 sausages.
 
/Flibble
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 04 11:08PM

On Mon, 4 Jan 2016 22:54:31 +0000
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk> wrote:
[snip]
> There is no such thing as negative 0 which makes (if you are correct)
> one's complement erroneous. IEEE floating point is also wrong to
> include support for negative 0 sausages.
 
On the mathematical number line, only 0 exists. But -0 exists in one's
complement. No bits set is +0, all bits set is -0. The two compare
equal so it is an artifact of the representation - in one's complement,
all bits set is equal to no bits set.
 
This is a necessary consequence of the fact that in one's complement
a negative number of a given value is obtained by inverting all the
bits of its positive equivalent. This in turn means that in one's
complement, the range of an 8 bit signed integer is 127 to -127, not
127 to -128 as in two's complement.
 
Chris
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jan 04 11:29PM

On 04/01/2016 23:08, Chris Vine wrote:
> bits of its positive equivalent. This in turn means that in one's
> complement, the range of an 8 bit signed integer is 127 to -127, not
> 127 to -128 as in two's complement.
 
The last time I had to think about 1's complement was in my first year
at university (1990) which just reinforces (in my mind) that 1's
complement is broken sausages.
 
/Flibble
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 05 03:59PM

On Tue, 05 Jan 2016 14:06:13 GMT
> >complement, all bits set is equal to no bits set.
 
> -0 also exists in BCD architectures. In general, it's treated by
> the hardware as identical to +0.
 
And in any sign-and-magnitude representation of signed integers
generally.
 
I saw your interesting post on BCD systems, which I took to mean that
they use 4-bit binary coded decimal for their numbers. I don't think
such systems could validly run a C++11 program, because §3.9.1/4
requires a standard power-of-2 per bit representation of unsigned
integers, something which is also assumed by §4.7/2 dealing with
unsigned overflow. I am not as familiar with the C11 standard but I
suspect that a BCD system may be able to run C. In particular
§6.3.1.3/2 of C11 on unsigned overflow does not assume power-of-2
representation, and although its effect is identical to §4.7/2 of C++11
on such representations, its requirements work OK for others (systems
would have to ensure that all necessary bit transformations are made so
that initialization or assignment of -1 to their unsigned integer type
sets the unsigned integer to its maximum value, which happens to be
all-bits-set for power-of-2 representations). Perhaps something else
in C rules out BCD, I don't know.
 
I remember many years ago having some hardware based logic in an
electronic device using BCD for its numbers. That is as close as I
have ever come to it. It struck me then as wasteful of storage, albeit
very convenient in that particular usage.
 
Chris
scott@slp53.sl.home (Scott Lurndal): Jan 05 04:44PM

>generally.
 
>I saw your interesting post on BCD systems, which I took to mean that
>they use 4-bit binary coded decimal for their numbers.
 
I was one of the OS engineers for the Burroughs BCD systems three
decades ago. We did look (circa 1984) at porting V6 C to the
architecture, but it would have been very limiting; The architecture
allows variable length numeric fields of one to 100 digits. We looked
at mapping 'unsigned int' to a 8-digit (32-bit) field, but the largest
magnitude number supported would be 9,999,999 which wasn't particularly
useful. It was really designed as a target for COBOL compilers.
 
Making it more difficult, the user-level architecture included segmentation (up to
seven active data and one code segment at any time, with a non-local
function call instruction (virtual enter, VEN) to switch to a different
set of eight "segments". Each segment maxed out at 1 million digits
(i.e. a 6-digit address within the segment).
 
nullptr was a 6-digit EEEEEE (8-digits in an index register to allow
selection of one of the 8 active segments).
 
Segment 0, which contained the stack and the first three index registers
(which were mapped to addresses 8-15, 16-23 and 24-31) was generally
the same in all of an application environments (sets of segments).
The stack pointer was mapped to address 40-45 in segment zero.
 
Each process (task) had its own segment zero. Code segments (being
immutable) were shared as necessary both within a task and between
tasks.
 
Application APIS (core-to-core(synchronous) and storage queues(asynchronous))
allowed data to be shared between cooperating tasks.
 
Debugging was dead simple given that everything was in BCD.
 
The architecture did not have bit shifting capabilities[*], but did have
bit test, bit set and bit clear instructions as well as the logical
bit manipulation instructions (and, or, not).
 
[*] although the processor internally had a barrel shifter to efficiently
store and access nibbles using COTS memory parts (post magnetic core).
 
Early 70's versions (the architecture dates to 1965) didn't trap on
'undigit arithmetic' and the results were 'undefined'. Later architectures
would trap such operations; several customers had funky code that relied
on undigit (e.g. bcd values of 0xa - 0xf) arithmetic which was one of the
few backward compatability issues we had over the 30 year life of the
architecture; most applications written in 1966 still ran in 1996 on
the latest version of the hardware (a good thing, since the source for
many of those applications had been lost).
 
City of Santa Ana replaced their V380 (built 1987) with 20 windows
boxes in 2010, which was the last system I'm aware of that was still
in production. The system is now operational at the Living Computer
Museum in Seattle, Wash.
 
scott
 
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 05 07:24PM

On Tue, 05 Jan 2016 16:44:40 GMT
scott@slp53.sl.home (Scott Lurndal) wrote:
[snip]
> boxes in 2010, which was the last system I'm aware of that was still
> in production. The system is now operational at the Living Computer
> Museum in Seattle, Wash.
 
That's an interesting historical perspective. You must be about my age.
 
Having just looked at the museum's website I will see if I can fit in a
visit the next time I am at the west coast. I am a UK resident and
don't go there that often as it is such a long haul - I was last there
at the end of September to watch the Dodgers-Giants series (seeing
Bumgarner, Kershaw and Greinke pitching in the space of 2 days was
persuasive).
 
Chris
scott@slp53.sl.home (Scott Lurndal): Jan 05 08:38PM

>is fantastic (and there are some decent bars to call in at on the way
>back to Market if that is where you are picking up your tram/bus/train).
>AT&T Park is one of the great venues.
 
I can take CalTrain to the stadium, but it takes well over an hour
each way. I live 50 miles south of PacBell^H^H^H^H^H^H^H AT&T park.
 
s
Rosario19 <Ros@invalid.invalid>: Jan 05 06:23PM +0100

On Mon, 4 Jan 2016 23:08:47 +0000, Chris Vine wrote:
>complement. No bits set is +0, all bits set is -0. The two compare
>equal so it is an artifact of the representation - in one's complement,
>all bits set is equal to no bits set.
 
+0 or -0 are == 0
in what i have seen not exist in mathematic...
fixed point float would not have them too
 
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 05 08:26PM

On Tue, 05 Jan 2016 19:57:27 GMT
> (although they take more parking away every year and I'm no longer
> much interested in weekday night games so I've been attending fewer
> games lately :-).
 
Stay in SF. Hotel prices are high but the public transport system there
is fantastic (and there are some decent bars to call in at on the way
back to Market if that is where you are picking up your tram/bus/train).
AT&T Park is one of the great venues.

> Many of my friends from the UK (Burroughs had offices in Citygate,
> Uxbridge, Milton Keynes and other locations that I used to visit)
> consider american baseball akin to rounders.
 
This is getting off topic so I will end it here, but having spent a
part of my formative years in the US I am ambidextrous with respect to
baseball and cricket (and other sports for that matter). I guess I
would have to say that the best sporting competition in the world in my
opinion is the European Champions League.
 
Chris
Jorgen Grahn <grahn+nntp@snipabacken.se>: Jan 04 10:10PM

On Mon, 2016-01-04, Scott Lurndal wrote:
 
> In general, if an interface says it returns -1 on error, then the only
> correct way to code the test is to compare directly to -1; it is
> not correct to consider any value less than zero to be an error.
 
Just for clarity (not to disagree) I'd like to point out again that
we're talking about /two different/ interfaces: Winsock and BSD
sockets.
 
/Jorgen
 
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: