try_realloc

349 views
Skip to first unread message

denis bider

unread,
Aug 2, 2015, 1:23:49 AM8/2/15
to ISO C++ Standard - Future Proposals
It strikes me that the language relatively desperately needs a function like try_realloc. This function would work like realloc, except that it would guarantee to fail if memory can't be reallocated in place.

It seems to me that, even if property like is_relocatable or is_location_agnostic is introduced, allowing use of realloc with containers of such types, a function like try_realloc would be remain highly useful for containers of other types. It would avoid having to deep-copy objects if memory can be reallocated in place.

On Windows, this is already available like this:

HeapReAlloc(GetProcessHeap(), HEAP_REALLOC_IN_PLACE_ONLY, p, n);

Thiago Macieira

unread,
Aug 2, 2015, 2:23:39 AM8/2/15
to std-pr...@isocpp.org
We need that, but I think WG14 needs to consider it too.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358

David Krauss

unread,
Aug 2, 2015, 2:29:21 AM8/2/15
to std-pr...@isocpp.org
It would be nice to have members in std::allocator_traits, called grow_allocation and shrink_allocation. They could simply return false by default, to indicate failure.

I wrote a very fast tokenizer, a while back, using a custom string class which reserved maximum space on construction, and shrink to fit when the next token was found. I had to depart from the standard allocator model and roll my own string class. It really should be doable with the standard library.

Sooner or later, if nobody else proposes it, I will.

Magnus Fromreide

unread,
Aug 2, 2015, 6:28:20 AM8/2/15
to std-pr...@isocpp.org
On Sat, Aug 01, 2015 at 11:23:32PM -0700, Thiago Macieira wrote:
> On Saturday 01 August 2015 22:23:49 denis bider wrote:
> > It strikes me that the language relatively desperately needs a function
> > like try_realloc. This function would work like realloc, except that it
> > would guarantee to fail if memory can't be reallocated in place.
> >
> > It seems to me that, even if property like is_relocatable or
> > is_location_agnostic is introduced, allowing use of realloc with containers
> > of such types, a function like try_realloc would be remain highly useful
> > for containers of other types. It would avoid having to deep-copy objects
> > if memory can be reallocated in place.
> >
> > On Windows, this is already available like this:
> >
> > HeapReAlloc(GetProcessHeap(), HEAP_REALLOC_IN_PLACE_ONLY, p, n);
>
> We need that, but I think WG14 needs to consider it too.

I agree. Does anybody know why WG14/N1085 didn't move forward or where that
paper ended up?

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1085.htm

/MF

Howard Hinnant

unread,
Aug 2, 2015, 10:56:38 AM8/2/15
to std-pr...@isocpp.org
On Aug 2, 2015, at 6:28 AM, Magnus Fromreide <ma...@lysator.liu.se> wrote:
>
> Does anybody know why WG14/N1085 didn't move forward or where that
> paper ended up?
>
> http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1085.htm
>

I did not attend WG14 personally to present this paper. The feedback I got was that there was insufficient interest to move forward with it. I.e. no one present was excited enough about it to do the hard work, and even I, the author, wasn’t willing to shell out the vacation time and travel expense to make it happen.

I.e. good ideas are often not enough by themselves. Someone has to be willing to champion it in person. It takes time and money (the money for travel, nothing nefarious).

Howard

denis bider

unread,
Aug 2, 2015, 3:20:11 PM8/2/15
to ISO C++ Standard - Future Proposals
This highlights the whole problem of moving the language forward in face to face meetings.

This wastes resources on travel, excludes people who could contribute, and silences worthwhile ideas who don't happen to have a champion with disposable time and money.

It further corrupts the process by comingling standardization with socializing, leading to an inner clique who know each other from years of face to face meetings, further excluding outsiders.

This is an inefficient process that became unnecessary around the year 2000. Yet it continues to persist, most likely because most people who would vote to change it enjoy being paid by their companies to socialize and travel.

This is fairly disgusting and must be ended.

Explore new countries on your own time, people.

Ville Voutilainen

unread,
Aug 2, 2015, 3:25:15 PM8/2/15
to ISO C++ Standard - Future Proposals
On 2 August 2015 at 22:20, denis bider <isocp...@denisbider.com> wrote:
> This highlights the whole problem of moving the language forward in face to
> face meetings.
> This wastes resources on travel, excludes people who could contribute, and
> silences worthwhile ideas who don't happen to have a champion with
> disposable time and money.
> It further corrupts the process by comingling standardization with
> socializing, leading to an inner clique who know each other from years of
> face to face meetings, further excluding outsiders.
> This is an inefficient process that became unnecessary around the year 2000.
> Yet it continues to persist, most likely because most people who would vote
> to change it enjoy being paid by their companies to socialize and travel.
> This is fairly disgusting and must be ended.
> Explore new countries on your own time, people.


If you wish us to not take you seriously, by all means continue on
that track. All
the standardization work I do happens on my own time, mostly outside
working hours,
without getting paid for it. I must have missed the memo where somebody died
and made you the authority to tell me what I should or should not do.

Ville Voutilainen

unread,
Aug 2, 2015, 3:33:28 PM8/2/15
to ISO C++ Standard - Future Proposals
On 2 August 2015 at 22:25, Ville Voutilainen
<ville.vo...@gmail.com> wrote:
> the standardization work I do happens on my own time, mostly outside
> working hours,
> without getting paid for it. I must have missed the memo where somebody died
> and made you the authority to tell me what I should or should not do.

Oh, pardon me, almost all of it, a mere 90%. The rest of it is
face-to-face meetings,
which my employer sponsors. You're more than welcome to pick up those costs
if you want to have a say on it.

Howard Hinnant

unread,
Aug 2, 2015, 3:39:49 PM8/2/15
to std-pr...@isocpp.org
Ditto. Indeed, Ville and I work together on standards issues (on our own time as volunteers) despite the fact that we live on opposite sides of the globe. Most of the work is done between meetings.

But to be able to get a consensus of experts, there is still nothing better than face to face meetings. It isn’t a perfect system by any means. But it is the best one we have to date, despite our advanced communications.

I have personally attended a couple of standards meetings “remotely”. It doesn’t work, despite the best efforts of volunteers on the committee donating their time and equipment to help people attend remotely.

If I implied the meetings were purely social events, then I communicated poorly. The meetings are a key part of the process, and significant effort has been made (and significant money donated by volunteers) to hold those meetings around the globe so that no one is always disadvantaged more than anyone else because of the length of travel required.

And that reminds me … I need help updating this map:

https://www.google.com/maps/@35.723858,-101.096717,4z/data=!3m1!4b1!4m2!6m1!1sz7MoBTfGFGPs.ksrK1wcwCvwk

:-)

Howard

Patrice Roy

unread,
Aug 2, 2015, 4:29:20 PM8/2/15
to std-pr...@isocpp.org
I'm only a recent member but socializing was a very, very minor part of the time there (even though everyone was nice). It was highly interesting but very intense, work-wise.

We also do remote meetings, conference calls and such, but it's much, much more productive face to face.

Which makes sense, come to think of it. We give our own (valuable) time there because we (really) care.


--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposal...@isocpp.org.
To post to this group, send email to std-pr...@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

denis bider

unread,
Aug 2, 2015, 7:44:08 PM8/2/15
to ISO C++ Standard - Future Proposals
Oh, come on guys. Stop the pretense.

The very next WG21 meeting is being held this October at the absurd location of Kona, Hawaii. This is 5000 miles from New York, 7,400 miles from Berlin, and 2400 miles from San Francisco.

Of course, it would be too rushed to arrange this as a fly-in and fly-out 2-3 day event. If that were the case, it might as well be held in Bentonville, AR, in a non-descript WalMart office building. To allow work to get done, it's going to be a leisurely occasion of 5 nights and 6 days. This allows for convenient early arrival and late departure, which I'm sure no one will use to enjoy a volcano, or a nice leisurely day at the beach. After all, this is for work!

The average fuel economy of long-distance travel is >3L of jet fuel per 100 miles per passenger seat. With 90 - 100 attendees traveling an average of 5,000 miles each, return trip, this is going to involve the burning of 27,000 L of jet fuel, and the release of 68 metric tons of CO2 into the atmosphere.

Apparently, all of this must happen 2-3 times per year, because otherwise it's impossible to advance the language.

This is even though the IETF somehow manages to advance internet standards without any travel at all, at a rate of 300 RFCs per year.

> I have personally attended a couple of standards
> meetings “remotely”. It doesn’t work,

Of course it doesn't work, when you're a second class participant compared to everyone else.

With meetings held in places like Hawaii, you're spending at least $2,000 per person per event. The annual cost is $400,000 - $600,000, just in what each participant pays.

You could get absolutely amazing teleconferencing if you were spending on it $500,000 per year. And that's just one group. How many other active groups are there? What kind of teleconferencing could you get for a $2 million budget, or more?

But of course, that would make sense if you wanted teleconferencing. As opposed to a week in Hawaii.

Magnus Fromreide

unread,
Aug 2, 2015, 8:08:55 PM8/2/15
to std-pr...@isocpp.org
On Sun, Aug 02, 2015 at 04:44:08PM -0700, denis bider wrote:
>
> This is even though the IETF somehow manages to advance internet standards
> without any travel at all, at a rate of 300 RFCs per year.

Please see https://www.ietf.org/meetings

/MF

Ville Voutilainen

unread,
Aug 2, 2015, 8:11:12 PM8/2/15
to ISO C++ Standard - Future Proposals
On 3 August 2015 at 02:44, denis bider <isocp...@denisbider.com> wrote:
> Oh, come on guys. Stop the pretense.

Oh, thanks. It's nice that you know what's pretense and what's not. If
you wanted
to ensure me you don't know what you're talking about, you accomplished that
goal splendidly.

> The very next WG21 meeting is being held this October at the absurd location
> of Kona, Hawaii. This is 5000 miles from New York, 7,400 miles from Berlin,
> and 2400 miles from San Francisco.

Yes, it's there because there's a host willing to organize a
face-to-face meeting
there.

> Of course, it would be too rushed to arrange this as a fly-in and fly-out
> 2-3 day event. If that were the case, it might as well be held in
> Bentonville, AR, in a non-descript WalMart office building. To allow work to
> get done, it's going to be a leisurely occasion of 5 nights and 6 days. This

Yes, it's very leisurely indeed to begin working at 8am every morning and work
until 5pm, every day.

> Apparently, all of this must happen 2-3 times per year, because otherwise
> it's impossible to advance the language.

We're not saying it's impossible to advance the language otherwise. However,
we do know that it's more efficient to have 2-3 face-to-face meetings annually
than work remotely, because we'll get everybody in the same venue in the
same time zone.

> But of course, that would make sense if you wanted teleconferencing. As
> opposed to a week in Hawaii.

If you're so concerned about "second-class citizens", feel free to tell me which
of us get to attend those teleconferences in the middle of the night.
See, there's
that minor issue, time zones.

dgutson .

unread,
Aug 2, 2015, 8:15:15 PM8/2/15
to std-proposals


El 2/8/2015 21:11, "Ville Voutilainen" <ville.vo...@gmail.com> escribió:
>
> On 3 August 2015 at 02:44, denis bider <isocp...@denisbider.com> wrote:
> > Oh, come on guys. Stop the pretense.
>
> Oh, thanks. It's nice that you know what's pretense and what's not. If
> you wanted
> to ensure me you don't know what you're talking about, you accomplished that
> goal splendidly.
>
> > The very next WG21 meeting is being held this October at the absurd location
> > of Kona, Hawaii. This is 5000 miles from New York, 7,400 miles from Berlin,
> > and 2400 miles from San Francisco.
>
> Yes, it's there because there's a host willing to organize a
> face-to-face meeting
> there.
>
> > Of course, it would be too rushed to arrange this as a fly-in and fly-out
> > 2-3 day event. If that were the case, it might as well be held in
> > Bentonville, AR, in a non-descript WalMart office building. To allow work to
> > get done, it's going to be a leisurely occasion of 5 nights and 6 days. This
>
> Yes, it's very leisurely indeed to begin working at 8am every morning and work
> until 5pm, every day.

I only attended one meeting in 2003 and two in 2014. I can't remember a single day finishing that early. Most finished 19hs, sometimes 20hs...and one day 23hs! Yes, from the morning.
One of them was my first time in Switzerland, I had time to visit nothing.

>
> > Apparently, all of this must happen 2-3 times per year, because otherwise
> > it's impossible to advance the language.
>
> We're not saying it's impossible to advance the language otherwise. However,
> we do know that it's more efficient to have 2-3 face-to-face meetings annually
> than work remotely, because we'll get everybody in the same venue in the
> same time zone.
>
> > But of course, that would make sense if you wanted teleconferencing. As
> > opposed to a week in Hawaii.
>
> If you're so concerned about "second-class citizens", feel free to tell me which
> of us get to attend those teleconferences in the middle of the night.
> See, there's
> that minor issue, time zones.
>

Ville Voutilainen

unread,
Aug 2, 2015, 8:16:58 PM8/2/15
to ISO C++ Standard - Future Proposals
On 3 August 2015 at 03:15, dgutson . <daniel...@gmail.com> wrote:
>> Yes, it's very leisurely indeed to begin working at 8am every morning and
>> work
>> until 5pm, every day.
> I only attended one meeting in 2003 and two in 2014. I can't remember a
> single day finishing that early. Most finished 19hs, sometimes 20hs...and
> one day 23hs! Yes, from the morning.
> One of them was my first time in Switzerland, I had time to visit nothing.


Well, since we have such leisurely time in our meetings, we shouldn't mention
that we sometimes do have evening working sessions that a very large
portion of us attend.

Ville Voutilainen

unread,
Aug 2, 2015, 8:19:44 PM8/2/15
to ISO C++ Standard - Future Proposals
On 3 August 2015 at 03:08, Magnus Fromreide <ma...@lysator.liu.se> wrote:
>> This is even though the IETF somehow manages to advance internet standards
>> without any travel at all, at a rate of 300 RFCs per year.
> Please see https://www.ietf.org/meetings

Oh, snap. This mythical IETF that doesn't travel has 3 face-to-face
meetings every
year, with a wider range of travel than WG21 does, without exception.
Not 2-3, 3.
And they have 1000+ attendees in every one of them. Imagine the wonders of the
teleconferencing system they could buy with the money they use for traveling.

Patrice Roy

unread,
Aug 2, 2015, 8:35:16 PM8/2/15
to std-pr...@isocpp.org
In Lenexa, I got to see a bit of Kansas on my way back to the airport. People were nice, but what I know I learned from people I talked to (nice people, that being said).

I would prefer going to Finland in Feb. 2016 but my schedule won't allow it. I.m a cold weather person. I would have liked to bring my wife to Kona (I'll work all the time but she could not, too much work on her side). I don't expect to see much of it.

It drives my kids crazy. They don't get that it's non-paid work, so we actually mean business as free time is out of our own wallets. I'm part of academia; wallets are thin to the point where actually going there to work is a fight very time. We actually go there to work, not visit.

Please, by all means, instead of presuming, come by and contribute!

Howard Hinnant

unread,
Aug 2, 2015, 8:43:34 PM8/2/15
to std-pr...@isocpp.org
On Aug 2, 2015, at 7:44 PM, denis bider <isocp...@denisbider.com> wrote:
>
> Oh, come on guys. Stop the pretense.
>
> The very next WG21 meeting is being held this October at the absurd location of Kona, Hawaii. This is 5000 miles from New York, 7,400 miles from Berlin, and 2400 miles from San Francisco.
>

We are always looking for volunteers to host one of our meetings. We go wherever they are willing to host. I’m not in authority to accept, but if you offer to host a meeting, I’m fairly certain we will come to you.

We need one meeting room large enough to hold 100 people, and 3 to 4 more able to hold about 20. We need a projector for each room. We need this from a Monday through a Saturday. It is customary for the host to provide coffee breaks (perhaps with some snacks) twice a day. Sometimes a host will also provide a dinner one night. We’ve been very fortunate with the generousness of our past hosts, including Plum Hall, our host in Kona (where the company presides). I am personally very grateful to each and every host.

Here is a partial list of those generous hosts:

https://isocpp.org/std/meetings-and-participation/upcoming-meetings

Please coordinate your offer to host through our Convener:

http://www.open-std.org/jtc1/sc22/wg21/docs/contacts

His list of our requirements may differ from mine, and you should believe his. He has coordinated many of these meetings, and I none.

Howard

Nevin Liber

unread,
Aug 2, 2015, 8:57:03 PM8/2/15
to std-pr...@isocpp.org
On 2 August 2015 at 19:43, Howard Hinnant <howard....@gmail.com> wrote:
We need one meeting room large enough to hold 100 people, and 3 to 4 more able to hold about 20.  We need a projector for each room.  We need this from a Monday through a Saturday.  It is customary for the host to provide coffee breaks (perhaps with some snacks) twice a day. 

Don't forget free wifi for the attendees as well, as the meetings depend upon it.  That, combined with what Howard mentioned above, is the minimum you are required to cover when you sponsor.

That is just the monetary side.  You also have to do the logistics of making sure it goes smoothly.


So, can we put you down for sponsoring and coordinating a meeting in a nondescript Walmart building in Bentonville, AR in 2017?  We can sure use more sponsors!
-- 
 Nevin ":-)" Liber  <mailto:ne...@eviloverlord.com(847) 691-1404

Howard Hinnant

unread,
Aug 2, 2015, 9:24:50 PM8/2/15
to std-pr...@isocpp.org
Trust Nevin far more than me on this matter.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3577.pdf

That was a great meeting Nevin, and thanks again! :-)

Howard

Howard Hinnant

unread,
Aug 2, 2015, 9:32:39 PM8/2/15
to std-pr...@isocpp.org
PS: Nevin’s travel expenses for this meeting were minuscule, right Nevin? ;-)

Howard

Brent Friedman

unread,
Aug 2, 2015, 9:48:14 PM8/2/15
to std-pr...@isocpp.org
We can sure use more sponsors!

Is there an option for small individual contributions? I'd happily contribute but the $1k bronze membership for the Standard C++ Foundation is a bit much.

--

Howard Hinnant

unread,
Aug 2, 2015, 10:01:59 PM8/2/15
to std-pr...@isocpp.org
On Aug 2, 2015, at 9:48 PM, Brent Friedman <fourt...@gmail.com> wrote:
>
> Is there an option for small individual contributions? I'd happily contribute but the $1k bronze membership for the Standard C++ Foundation is a bit much.

That’s a really good question, and I suspect it does not have an equally good answer. My best guess (I honestly do not know) is that there is not an infrastructure set up to accept a relatively massive amount of relatively small donations.

[Deity!] We (meaning me) should do something about this.

https://ripple.com

I’m not completely joking. But this isn’t something that is going to happen tomorrow. You may have to wait until the day after tomorrow… It’s all about being able to move money around at an order of magnitude (or two) lower cost.

Howard

Nevin Liber

unread,
Aug 2, 2015, 11:05:49 PM8/2/15
to std-pr...@isocpp.org
On 2 August 2015 at 20:32, Howard Hinnant <howard....@gmail.com> wrote:
PS:  Nevin’s travel expenses for this meeting were minuscule, right Nevin? ;-)

Only relative to everyone else...

The Metra (commuter) rail schedule on Sunday is pretty bad, so I had to drive down and part my car at the hotel for the duration.  Downtown hotel rates for parking are like room costs in other parts of the country.  Had I really thought about it, I would have just taken a limo or taxi...

Anyway, glad I (and by extension, the company I work for, DRW) were able to do it!
 Nevin :-)

Nevin Liber

unread,
Aug 2, 2015, 11:12:27 PM8/2/15
to std-pr...@isocpp.org
On 2 August 2015 at 19:11, Ville Voutilainen <ville.vo...@gmail.com> wrote:
On 3 August 2015 at 02:44, denis bider <isocp...@denisbider.com> wrote:
> Oh, come on guys. Stop the pretense.

Oh, thanks. It's nice that you know what's pretense and what's not. If
you wanted
to ensure me you don't know what you're talking about, you accomplished that
goal splendidly.

Apparently he has immortalized his position in a blog post: <http://denisbider.blogspot.com/2015/08/ossification-and-hawaii-current-state.html>.
-- 

isocp...@denisbider.com

unread,
Aug 3, 2015, 9:44:00 PM8/3/15
to ISO C++ Standard - Future Proposals
The IETF does have meetings. However, they are in no way required to contribute to RFCs, or get them published.

Nicol Bolas posted a thoughtful comment on my blog. I think I owe it to the group to respond to the following part here:


Nicol: Fifth, you show a profound disrespect for the work the ISO C++ committee members actually do by claiming that they're basically taking a week of vacation

That is true. It's true completely, and I apologize to those I have offended. It is unfair for me to judge, without having attended the meetings, at all.

I do believe the language is much better off with this type of guardianship, than no type of guardianship at all — or many other types that would be inferior. The work being done is highly valuable. I benefit from it; millions of other developers do; the entire world does, in our use of the resulting software and services. The working group is at the center of these invaluable efforts.

So yes; it is unfair that I poke fun at your meeting at the Royal Kona. ;) This is better than many other ways of doing things.

However, I believe that there is room for great improvement. I'm convinced that an online system of collaboration would allow both for greater participation, and for a more comprehensive addressing of the needs of users. Especially minor improvements and tweaks.

An agile online collaboration system would facilitate small-scale improvement much better than a waterfall meet-for-a-week system. Possibly, the two could even be combined. If those of you who are the most dedicated to the standardization process prefer to meet for a week, that's okay; that is your prerogative. But the mechanisms for taking small proposals into account must also be improved.

I would like to call attention again that it costs on the order of USD 200,000, in the participants' own costs alone, to hold just one ISO group meeting.

I understand that ISO may currently be lacking the infrastructure to hold these meetings equally effectively online. However, a single ISO working group — and there are many — burns through USD 500,000 of participants money alone per year.

Do you not think that an amazing online collaboration system could be developed; to serve the needs of one or all of ISO working groups; for a fraction of the cost currently spent on travel?

Consider all the effort being spent on the standardization. Not just the expense of travel; but the work of valuable and talented individuals, whose time is worth $50, $100, $200 per hour.

All of this effort is being spent, and what does the group use for coordination?

We're using 1980s, 1990s era technology! Right now, we're communicating through... Google Groups! A most basic, free online service!

Nothing we're doing here; nothing in the way we communicate; could not have been done on Usenet, or on a Bulletin Board System in the 1980s.

There is an Eastern European proverb saying that "The blacksmith's horse has no horseshoes." 

I believe pretty strongly that this is the case here; and that all of us technologists could do much better.

David Krauss

unread,
Aug 3, 2015, 10:45:37 PM8/3/15
to ISO C++ Standard - Future Proposals
On 2015–08–04, at 9:44 AM, isocp...@denisbider.com wrote:

Nicol: Fifth, you show a profound disrespect for the work the ISO C++ committee members actually do by claiming that they're basically taking a week of vacation

That is true. It's true completely, and I apologize to those I have offended. It is unfair for me to judge, without having attended the meetings, at all.

You apologize here, but you doubled down and rebutted him solidly on your blog. The word “apologize” was inserted for the benefit of this list.

Anyway, teleconferencing has always been part of the WG21 process as well, and the role of telepresence is constantly renegotiated under the pressures of scheduling and openness. (I’m not an old timer, this is simply apparent from the published records.) Teleconferences are in many ways less open than face-to-face meetings.

Logistics and bureaucratic protocols aren’t resolved by flamewars, so let’s end this now.

isocp...@denisbider.com

unread,
Aug 4, 2015, 1:33:57 AM8/4/15
to ISO C++ Standard - Future Proposals
I don't think the two responses - on the blog and here - express substantially different, or incompatible, positions. Yes, I formed the response I sent to this list specifically for this list. There's more need to apologize here because the position I expressed here was an earlier and harsher version of what ended up on my blog.

At this time, I do not see much benefit from my continued participation in this group. The standards body does not appear to be in a position where it can meaningfully accept and integrate input from language users, in any way other than strictly informal.

There is no system for registering such feedback. There is no system to integrate it. There is no system to measure it. There is no system to act on it.

There appears to be little sense of accountability to language users; of the need to shepherd ideas that no one is passionate about on their own. There's little concern that something of value is being lost, when worthwhile ideas don't make it to meetings.

There seems to be little understanding that every idea is valuable. That ideas must be collected, registered, reconciled in some way. That ideas are opportunities, and are valuable for their own, not just when someone champions them.

You are the 1% of 1%; a few hundred out of millions of language users. And yet, the ideas you focus on; the ideas you standardize; well, ... they are mostly your own. The ideas of the few.

You're not taking advantage of the millions...


> Logistics and bureaucratic protocols aren’t resolved by flamewars

To be clear: I'm not saying the current system is too bureaucratic. I'm saying it's not enough. It relies too much on individual passion, and not enough on objective accounting.

Ville Voutilainen

unread,
Aug 4, 2015, 2:01:54 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 08:33, <isocp...@denisbider.com> wrote:
> At this time, I do not see much benefit from my continued participation in
> this group. The standards body does not appear to be in a position where it
> can meaningfully accept and integrate input from language users, in any way
> other than strictly informal.
> There is no system for registering such feedback. There is no system to
> integrate it. There is no system to measure it. There is no system to act on
> it.

Just in case some innocent observer reads these assertions of yours and thinks
they are correct, they are not. You never bothered to make any effort to find
out how to register such feedback.

> There appears to be little sense of accountability to language users; of the
> need to shepherd ideas that no one is passionate about on their own. There's
> little concern that something of value is being lost, when worthwhile ideas
> don't make it to meetings.
> There seems to be little understanding that every idea is valuable. That
> ideas must be collected, registered, reconciled in some way. That ideas are
> opportunities, and are valuable for their own, not just when someone
> champions them.

Do tell us how an idea would get adopted if nobody does any work to champion
it.

isocp...@denisbider.com

unread,
Aug 4, 2015, 2:56:39 AM8/4/15
to ISO C++ Standard - Future Proposals
> Just in case some innocent observer reads these assertions of yours
> and thinks they are correct, they are not. You never bothered to make
> any effort to find out how to register such feedback.

I've done exactly what this page suggests:


I came here, and I've discussed some proposals. I've abandoned some based on feedback, while I still believe in others.

I could go on and continue and write formal proposals, as the above page outlines.

The problem is that, based on what I have learned here, this would be a futile exercise.

If something as simple N1085, dated as far back as 2004, never makes it into the language, even after 11 years; simply because Howard didn't go to the right meeting... well then. What chance does a proposal of mine possibly have?

You're putting up a checklist and a form, but if no one is shepherding other people's proposals, this is an empty gesture.

You can't expect people to fly to a meeting, for every proposal they have.

Ville Voutilainen

unread,
Aug 4, 2015, 3:22:05 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 09:56, <isocp...@denisbider.com> wrote:
> I could go on and continue and write formal proposals, as the above page
> outlines.
> The problem is that, based on what I have learned here, this would be a
> futile exercise.

What makes it futile is mostly that people don't agree on what you're proposing.
There's very little any process can do about that.

> If something as simple N1085, dated as far back as 2004, never makes it into
> the language, even after 11 years; simply because Howard didn't go to the
> right meeting... well then. What chance does a proposal of mine possibly
> have?

N1085 is a WG14 proposal. Howard didn't fly into that meeting because
it was a C committee meeting, not a C++ committee meeting.

> You're putting up a checklist and a form, but if no one is shepherding other
> people's proposals, this is an empty gesture.
> You can't expect people to fly to a meeting, for every proposal they have.


I expect people to find an attending champion for their proposals if they can't
attend themselves. Many people have done that, successfully.

isocp...@denisbider.com

unread,
Aug 4, 2015, 4:05:37 AM8/4/15
to ISO C++ Standard - Future Proposals
> N1085 is a WG14 proposal. Howard didn't fly into that meeting
> because it was a C committee meeting, not a C++ committee
> meeting.

Both are ISO groups. Are you honestly saying that, in WG21, it would have worked differently?


> What makes it futile is mostly that people don't agree on what
> you're proposing. There's very little any process can do about that.

There's legitimate interest in a relocatable property, to allow objects to be moved via realloc/memcpy.

The people who don't agree are those who lack have the flexibility to see that an object is a concept, not a piece of data. That by copying bytes, the object-concept can move in memory. This works with the language as-is; with a variety of compilers and platforms; in practice.

It is not clear that this proposal is not viable. If it is truly not viable, then I have worse things to say about you and your group than I already have.

If you truly cannot adjust to the idea that an object-concept can be moved in memory, then God have mercy on your soul. That's all I can say.


> I expect people to find an attending champion for their proposals
> if they can't attend themselves. Many people have done that,
> successfully.

Yes. It's exactly what I said. The whole thing is based on personal passions. If someone isn't pursuing something, it's dead.

There's no sense of duty to keep track of ideas, and reconcile them, even if they aren't your own.

Ville Voutilainen

unread,
Aug 4, 2015, 4:34:12 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 11:05, <isocp...@denisbider.com> wrote:
>> N1085 is a WG14 proposal. Howard didn't fly into that meeting
>> because it was a C committee meeting, not a C++ committee
>> meeting.
> Both are ISO groups. Are you honestly saying that, in WG21, it would have
> worked differently?

Howard has the ability to attend WG21 meetings, so in a sense, yes. He could've
solicited an attending champion for the WG14 meeting. He happened to have
higher-priority things to do. That does not logically constitute proof that the
process is somehow broken, regardless of whether you've decided that it is
just because your ideas aren't immediately agreed on by the people on
this forum (a forum which, I remind again, is not an official
discussion forum of the
standards committee - most people here are committee outsiders. The reason
why it's suggested to float proposals here is that this forum provides feedback
from technically able people.).

>> What makes it futile is mostly that people don't agree on what
>> you're proposing. There's very little any process can do about that.
>
> There's legitimate interest in a relocatable property, to allow objects to
> be moved via realloc/memcpy.
>
> The people who don't agree are those who lack have the flexibility to see
> that an object is a concept, not a piece of data. That by copying bytes, the
> object-concept can move in memory. This works with the language as-is; with
> a variety of compilers and platforms; in practice.

You have failed to answer how the lifetime of the moved-from object is handled.
I said that its lifetime ends; you claimed it doesn't. That's complete nonsense,
because the C++ memory model doesn't have such virtual memory, and an
object is a region of storage, not something you have privately envisioned
it to be.

> It is not clear that this proposal is not viable. If it is truly not viable,
> then I have worse things to say about you and your group than I already
> have.

We'll see what happens when Pablo follows up. With regards to things
you have to say, I don't think I could care less.

> If you truly cannot adjust to the idea that an object-concept can be moved
> in memory, then God have mercy on your soul. That's all I can say.

I fail to see what souls have to do with a technical discussion. If you want
a proposal to be adopted, answer the feedback questions and keep
your colorful remarks to yourself. If it's this hard for you to
discuss a proposal
or an idea, it's perhaps indeed better that you don't bother us with your
ideas. We have plenty of people who are mature enough to understand
that they do need to provide answers to the technical questions
asked about their proposals.

>> I expect people to find an attending champion for their proposals
>> if they can't attend themselves. Many people have done that,
>> successfully.
> Yes. It's exactly what I said. The whole thing is based on personal
> passions. If someone isn't pursuing something, it's dead.

And you expect that your ideas are automatically pursued by other
people who have more
urgent work to do?

> There's no sense of duty to keep track of ideas, and reconcile them, even if
> they aren't your own.

Nonsense. We have issue lists for exactly that purpose, and
hard-working volunteers
who keep them up to date and follow open issues actively. Again, you haven't got
the slightest idea of what you're talking about.

Bengt Gustafsson

unread,
Aug 4, 2015, 5:31:04 AM8/4/15
to ISO C++ Standard - Future Proposals
Going back to the original subject I would like to see an investigation into how often such a realloc_in_place would actually be possible. Usually mallocs try to pack blocks end to end so the chance that you can get more memory without
moving the data is probably slim. Reducing the size of course works but could leave the heap in a much more fragmented state.

On the meta-discussion I find it very hard to find what has been suggested before and even more so what the problems were with those suggestions. This of course increases the number of times that the same (possibly stupid) suggestions recur which annoys those who have already dismissed similar suggestions for good reasons. I don't know where those issue lists Ville mentions are despite having monitored this forum for a few years now, for instance. I think that the main problem is that there is no funding for administration of the "fringes" of the standardization process that this forum is part of. I think this is a pity as this is where statistics about what is really concerning the programmers out there can be collected.

Ville Voutilainen

unread,
Aug 4, 2015, 5:42:43 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 12:31, Bengt Gustafsson
<bengt.gu...@beamways.com> wrote:
> suggestions for good reasons. I don't know where those issue lists Ville
> mentions are despite having monitored this forum for a few years now, for


http://open-std.org/JTC1/SC22/WG21/docs/cwg_active.html
http://cplusplus.github.io/LWG/lwg-active.html
http://cplusplus.github.io/EWG/ewg-active.html
https://issues.isocpp.org/

isocp...@denisbider.com

unread,
Aug 4, 2015, 7:49:41 AM8/4/15
to ISO C++ Standard - Future Proposals
Ville - you are making my points!


Firstly: Yes! I am prone to make colorful remarks. But how level-headed I am, and how good an idea I bring, are two independent concepts! Ideas need to be accepted from anyone, level-headed or not, because they are not that person's ideas, they are ideas, and they have merit regardless of who voiced them. This is why it's wrong to require that the person who brings the idea also represents it in meeting. Ideas need to be brought by anyone, but then they need to be picked up by people more experienced with the process.

Now of course, the whole problem here is the volunteerism. Volunteers work for whom? For their values; for their conscience; for their aspirations; for themselves. This is not to say they won't serve others also.

So: you're not set up to take ideas from people who can't represent them well.


Secondly: Yes! I lack the knowledge to explain, in language terms, how moving an object with memcpy is properly described. I can explain it in intuitive terms, but this isn't the answer you want. The answer you want is in terms of the existing language spec, and here I completely lack the background.

But just because I lack the background, doesn't mean the idea is bad! Again, you're not set up to take ideas from people who bring them in intuitive terms.

Are you seeing, or are you not seeing, that if N libraries do the same thing X, and this works under the language as-is, but it's undefined according to specification - that the problem is in the specification, not in the use?

Are you seeing that someone who points this out is not necessarily in a position to resolve the issue with the specification; but that this doesn't mean that the issue should not be resolved?


Now, consider this:

Why should it be possible for me to come to your mailing list, and unload my ideas on you free of charge, no matter whether anyone likes, or will accept, any of my proposals?

Why should I not have to pay, for example, $100, or $200, to have a suggestion be reviewed and considered, by someone in the standards process?

Why should I not, in exchange for this payment, receive some assistance with my deficiencies?

Why do I have to become part of the standards process; to seriously invest myself in it; when all I want is to float an idea, and have it be properly represented?

I understand I can hire someone to do this. Maybe someone on this list would be willing to do so? I don't know!

But what if this was a service, provided as a matter of course? What if this was the interface by which language users, who want to just express a need, could communicate these needs, in whatever non-expert ways they can express them; and then still have these needs be properly represented in meetings?

Would that not be an improvement, over the current state of things?

And the money collected this way - could it not be spent on something useful? What if it - for example - helped pay for expenses of working group meetings; or for the work done by the volunteers?

isocp...@denisbider.com

unread,
Aug 4, 2015, 8:19:24 AM8/4/15
to ISO C++ Standard - Future Proposals, isocp...@denisbider.com
What I'm saying, basically, is that what you have here is a type of court. This court has its laws, its procedures; it has case law that needs to be studied (past proposals); it has its judges and its juries.

Right now, it seems as though you're expecting everyone who brings a case to not only represent themselves; but also to learn the ins and the outs of the court, just like veteran participants. A person who brings a proposal is expected to learn the court's laws, the procedures, to study the case law, and to express their proposal in terms that are legally correct and accurate. No quarter is given to those that cannot, or will not.

What you need in this court system is - lawyers. By that, I don't mean people who argue for the sake of arguing. I mean attorneys: people who can represent clients, who provide an interface between the public and the court. People who can take a case, and represent that case properly in front of the court.

Right now, you don't have that interface. Which means that, nominally, your process is open; aaanyone can participate (wink wink). But in fact, you have a brick wall of statutory law, case law, and procedure, all of which have to be followed to achieve anything; and which keep out anyone but the most committed.

David Rodríguez Ibeas

unread,
Aug 4, 2015, 8:22:00 AM8/4/15
to std-pr...@isocpp.org
I try to avoid going ad-hominem, and don't take it harsh, try to think about it. You are being childish here, you said you followed the process in coming here to discuss the idea, but as soon as there is no 100% agreement you bail out into personal remarks and attacks on other people. That is not what discussion means.

You claim that ideas should be valued not by who presents them but by the idea itself, you also admit not to be knowledgeable in the language of the specification. Yet, when you are told that the idea is good, but that it cannot be "implemented" in the language as straightforward as you think you erupt into insults.  You want to discuss ideas for their worth but half of your messages are offensive rants with no technical content.

Let me tell you how this really went in a different conversation:

- I want X
- That is a nice to have feature, cannot be done exactly like that, let's work on that.
[At this point there are two different approaches that aim to make the feature work within the language and are being discussed]
- But that is not how I see X and I want this for yesterday you morons! You hate me and I hate you and how you do things.

Being able to relocate objects in memory is a valuable idea, you are not the first to come up with it.  Different people here have added to the discussion, there is currently a proposal being worked on (presented, in the process of being updated) and David Krauss. This is far far far away from the idea being rejected, as a matter of fact I see kind interest in making this work within the language, if not in your terms --you don't understand the complexity of maintaining a language-- in some terms.

I am sorry that you felt rejection, and I am even sorrier that you cannot maintain a minimal amount of composure and attacked others.

I am not in the committee, I do personally know some people that are. I won't defend them, not because they don't deserve it but because your attacks are not worth it.

   David


--

David Rodríguez Ibeas

unread,
Aug 4, 2015, 8:36:50 AM8/4/15
to std-pr...@isocpp.org
This is much more polite than other messages, but that does not make it right.

On Tue, Aug 4, 2015 at 1:19 PM, <isocp...@denisbider.com> wrote:
What I'm saying, basically, is that what you have here is a type of court. This court has its laws, its procedures; it has case law that needs to be studied (past proposals); it has its judges and its juries.

Right now, it seems as though you're expecting everyone who brings a case to not only represent themselves; but also to learn the ins and the outs of the court, just like veteran participants. A person who brings a proposal is expected to learn the court's laws, the procedures, to study the case law, and to express their proposal in terms that are legally correct and accurate. No quarter is given to those that cannot, or will not.

False. You came with an idea (not novel, but an idea) and the idea has been partly discussed --the discussion is pretty much washed off due to your deviation from technical discussion into useless attacks that have probably offended people that volunteer their own personal time for *you* (and 10 other million) people. The idea is not being ignored.

What you need in this court system is - lawyers. By that, I don't mean people who argue for the sake of arguing. I mean attorneys: people who can represent clients, who provide an interface between the public and the court. People who can take a case, and represent that case properly in front of the court.

You can discuss how you view the solution, and you can convince people in the list of its value. If it is valuable I am sure that some of the people here that are in the committee may volunteer to champion it. Your problem is that you have not convinced and you cannot coerce them into defending your idea. That is the point, after personal attacks, when you've been suggested to go and defend the idea yourself.

Right now, you don't have that interface. Which means that, nominally, your process is open; aaanyone can participate (wink wink). But in fact, you have a brick wall of statutory law, case law, and procedure, all of which have to be followed to achieve anything; and which keep out anyone but the most committed.

Don't confuse terms, a process is open if people can participate. Openness does not mean that it is cost-free, and clearly it does not mean that you get your say, just that you get to say it. There are different ways of working with this, you can convince people here, or you can go to your national body and convince them to defend your case... but any of those depends on your approach being viable.

Unless you can make your approach work within the language there is little hope for your particular view of how the feature is laid out.  At any rate I feel that the idea will progress in one form or another because it is a good idea and good ideas are valued. Even if one of the people defending it is offensive.

    David
 

Ville Voutilainen

unread,
Aug 4, 2015, 8:53:08 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 14:49, <isocp...@denisbider.com> wrote:
> Ville - you are making my points!

No I'm not, you continue to deliberately misunderstand what I'm
saying, and claiming
that I'm making your points seriously misrepresents what I said.

> Firstly: Yes! I am prone to make colorful remarks. But how level-headed I
> am, and how good an idea I bring, are two independent concepts! Ideas need
> to be accepted from anyone, level-headed or not, because they are not that

Ideas don't need to be accepted from anyone. Ideas can be discussed, accepting
them is a completely different matter.

> person's ideas, they are ideas, and they have merit regardless of who voiced
> them. This is why it's wrong to require that the person who brings the idea
> also represents it in meeting. Ideas need to be brought by anyone, but then

No such requirement has ever been made. We have never ever required
that a proposal author presents his proposal himself, it's always been ok
to find a champion to present a proposal instead of the author.

> So: you're not set up to take ideas from people who can't represent them
> well.

Correct - we are not mindreaders, so if nobody can explain a proposal, there's
little reason that it should be accepted.

> Secondly: Yes! I lack the knowledge to explain, in language terms, how
> moving an object with memcpy is properly described. I can explain it in
> intuitive terms, but this isn't the answer you want. The answer you want is
> in terms of the existing language spec, and here I completely lack the
> background.

I want that explanation in terms that make sense, and I most certainly
don't want it in terms that invent new meaning for the terms in the standard.
If "lifetime" is a term non-intuitive to you, I can't help you there.
If you don't
even understand the lifetime concerns of destructive move, it's about time
you let other people already working on destructive move handle it, because
they can understand those concerns.

> Are you seeing, or are you not seeing, that if N libraries do the same thing
> X, and this works under the language as-is, but it's undefined according to
> specification - that the problem is in the specification, not in the use?

That is far from obvious, and is under active dispute.

> Are you seeing that someone who points this out is not necessarily in a
> position to resolve the issue with the specification; but that this doesn't
> mean that the issue should not be resolved?

In other words, you're not pointing out anything the authors of the destructive
move proposals don't already know, so you're just making pointless noise?

> Now, consider this:
> Why should it be possible for me to come to your mailing list, and unload my
> ideas on you free of charge, no matter whether anyone likes, or will accept,
> any of my proposals?

I don't know what you refer to by "your mailing list", but there are reasons
why not just any random idea-generator is welcomed on the committee-internal
mailing list. You have provided an ample example why that is necessary.

> Why should I not have to pay, for example, $100, or $200, to have a
> suggestion be reviewed and considered, by someone in the standards process?

There's no requirement to pay anyone anything. If you wish to seek paid help,
this is not the place.

> Why do I have to become part of the standards process; to seriously invest
> myself in it; when all I want is to float an idea, and have it be properly
> represented?

"Properly represented"? You want things to just happen, without doing any work?

Giovanni Piero Deretta

unread,
Aug 4, 2015, 9:10:09 AM8/4/15
to ISO C++ Standard - Future Proposals
On Sunday, August 2, 2015 at 3:56:38 PM UTC+1, Howard Hinnant wrote:
On Aug 2, 2015, at 6:28 AM, Magnus Fromreide <ma...@lysator.liu.se> wrote:
>
> Does anybody know why WG14/N1085 didn't move forward or where that
> paper ended up?
>
> http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1085.htm
>

I did not attend WG14 personally to present this paper.  The feedback I got was that there was insufficient interest to move forward with it.  I.e. no one present was excited enough about it to do the hard work, and even I, the author, wasn’t willing to shell out the vacation time and travel expense to make it happen.

I.e. good ideas are often not enough by themselves.  Someone has to be willing to champion it in person.  It takes time and money (the money for travel, nothing nefarious).


Even without WG14 buy-in, it might be worthwhile adding it to C++ under the std namespace. The nice thing about the try_realloc interface is that it is best effort. A trivial implementation that always returns false would be conforming and on systems where the C++ implementors can influence the C standard library, a better implementation is possible. With time and implementation experience, the interface might finally make into C. The actual interface proposed by n1085 is more complicated, but from a cursory look most entry points still seem to be best effort and allow trivial implementations. The only issue seems to be sizeof_alloc which could be dropped.

-- gpd

Ville Voutilainen

unread,
Aug 4, 2015, 9:38:23 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 16:10, Giovanni Piero Deretta <gpde...@gmail.com> wrote:
>> > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1085.htm
> Even without WG14 buy-in, it might be worthwhile adding it to C++ under the
> std namespace. The nice thing about the try_realloc interface is that it is


Agreed, WG14 is sometimes so extension-averse that it's fairly difficult to move
things forward if it's considered a must to have their buy-in.

Thiago Macieira

unread,
Aug 4, 2015, 11:07:25 AM8/4/15
to std-pr...@isocpp.org
On Tuesday 04 August 2015 02:31:04 Bengt Gustafsson wrote:
> Going back to the original subject I would like to see an investigation
> into how often such a realloc_in_place would actually be possible. Usually
> mallocs try to pack blocks end to end so the chance that you can get more
> memory without
> moving the data is probably slim. Reducing the size of course works but
> could leave the heap in a much more fragmented state.

Without actually doing a test, I imagine there's one particular case where
realloc-in-place would succeed: when you're appending to a container in a
loop. Usually that's going to be the last block you allocated, so the
reallocation succeeds without changing the pointer address.

It's also true that regular realloc() would have succeeded, but the point here
is that the container can use try_realloc() or equivalent even for non-
relocatable objects.

There's a possible pathological case here, though: when the loop that appends
also allocates memory for each element. If they do, then the reallocation will
usually fail, requiring a regular malloc + copy, which is actually worse for
fragmentation...
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358

Matthew Woehlke

unread,
Aug 4, 2015, 11:08:03 AM8/4/15
to std-pr...@isocpp.org
On 2015-08-03 21:44, isocp...@denisbider.com wrote:
> We're using 1980s, 1990s era technology! Right now, we're communicating
> through... Google Groups! A most basic, free online service!
>
> Nothing we're doing here; nothing in the way we communicate; could not have
> been done on Usenet, or on a Bulletin Board System in the 1980s.

Funny you should put it that way... ;-) *You* may be using Google's
atrocious web interface. *I'm* using NNTP via gmane.org, because NNTP is
still the best way to deal with high-volume mailing lists. And mailing
lists are a de-facto standard for online collaboration. They're
effective, easy to use, and open access. A specialized system *might* be
more effective in some ways, but at the cost of raising the bar to
entry; the very thing you are ranting against! (But see also comments
below.)

If you don't believe me, just take a look at how many lists gmane.org
carries. It's a *lot*, and they're all software related.

New isn't *always* better... though I have to be honest, I'd also prefer
if there was the possibility to make a proposal without going to a
week-long meeting in a remote location.

Also, responding to a comment you made on your blog:

> I think charging for proposals actually sounds like a really good
> idea. Why should I be able to litter a working group mailing list
> with whatever weird proposal I might fancy, that no one else likes,
> or is going to accept?

This is effectively what requiring people to present proposals face to
face *does*. If you've been around the list (or any open internet forum)
for a while, you'll notice that one problem with truly open, low-or-zero
entry cost forums is that they *do* attract all sorts of people, from
the serious to the outrageous. Some of the benefit of a higher entry
cost venue is that it *does* weed out people that aren't serious, or at
least willing to make the effort to be taken seriously.

What would probably help is to have multiple levels of participation
with increasing "cost of entry", with changes happening only at the
highest level, but with more upwards filtration from the lower levels,
e.g. people at the higher levels who cherry pick valuable suggestions
from the lower levels and champion them. (The problem, of course, is
that there isn't enough manpower at the top; everyone is already
overloaded with their own stuff and rarely has time to take on anything
else.)

--
Matthew

Thiago Macieira

unread,
Aug 4, 2015, 11:14:05 AM8/4/15
to std-pr...@isocpp.org
On Tuesday 04 August 2015 06:10:09 Giovanni Piero Deretta wrote:
> Even without WG14 buy-in, it might be worthwhile adding it to C++ under the
> std namespace. The nice thing about the try_realloc interface is that it is
> best effort. A trivial implementation that always returns false would be
> conforming and on systems where the C++ implementors can influence the C
> standard library, a better implementation is possible. With time and
> implementation experience, the interface might finally make into C. The
> actual interface proposed by n1085 is more complicated, but from a cursory
> look most entry points still seem to be best effort and allow trivial
> implementations. The only issue seems to be sizeof_alloc which could be
> dropped.

Agreed. I'd miss sizeof_alloc() though, since most containers today end up
double-booking that fact in the allocated block itself. But it's also possible
that some implementations don't keep a size at all, in which case it's not
double-booking...

One thing I'd ask, though: please be sure to keep the alignment requirements
in the API.

Matthew Woehlke

unread,
Aug 4, 2015, 11:23:50 AM8/4/15
to std-pr...@isocpp.org
On 2015-08-04 05:31, Bengt Gustafsson wrote:
> On the meta-discussion I find it very hard to find what has been suggested
> before and even more so what the problems were with those suggestions. This
> of course increases the number of times that the same (possibly stupid)
> suggestions recur which annoys those who have already dismissed similar
> suggestions for good reasons.

That's almost exactly what I was thinking. There are lists of actual
proposals that somewhat cover this¹ (i.e. the ones Ville noted), but I'm
not sure there is anywhere maintained a list of ideas that people want
to see (which, ideally, would include actual proposals as well as things
that haven't made it that far) along with comments whether there is room
for growing them into official proposals or if they've been shot down hard.

It would be great if there was a maintained list (maybe a wiki?) of
ideas, cross referenced with applicable discussions, so that one could
look for ideas that they may wish to champion, or shouldn't touch, or
whatnot.

(¹ Among other things, I find these lists very difficult to read. Mostly
because there is simply too much information with inadequate summation,
but partly because they are literally illegible. While not specifying
colors isn't necessarily a bad thing (and fortunately, these don't
engage in the cardinal sin of specifying exactly one of foreground or
background color), changes specify bright background colors but do NOT
specify a foreground color. My default foreground color is near white.
Thus, it is extremely difficult to read changes without selecting the
text in order to override the colors. One fix, that doesn't lose the
benefit of using the reader's preferred colors otherwise, is to specify
the background as e.g. rgb(255, 0, 0, 0.2).)

> I think this is a pity as this is where statistics about what is
> really concerning the programmers out there can be collected.

See my previous comment in this thread. While I agree that in the ideal
case, this would be tremendously valuable, I'd be concerned as to how
unbiased anything like an open voting mechanism would be. (Maybe if
voting required registration that included [industry] demographic
information, e.g. gaming, embedded, financial...)

--
Matthew

Matthew Woehlke

unread,
Aug 4, 2015, 11:40:45 AM8/4/15
to std-pr...@isocpp.org
Define "work". If you mean it in the absolute general sense of any sort
of effort at all, regardless of relevance to the C++ standards process,
than I am confident that's not what Denis means. If you mean work
directly related to a C++ proposal... then... yes!

And what's wrong with that? This is the ENTIRE BASIS of economics, if
not civilization. If everyone that wanted something had to directly
accomplish it themselves, we'd be no different from wild cats... strict
hunter-gatherers with no socialization. The reason we HAVE economy,
society, and civilization is because we exchange goods and services and
specialize work.

Note that Denis multiple times suggested willingness to exchange effort
for money. He's not asking for "something for nothing", he's asking for
a system that allows non-experts to have a way to contribute by paying
in some currency other than having to personally become language experts
and first tier participants in the committee. (Hence the court analogy,
which I think is apt.)

--
Matthew

Ville Voutilainen

unread,
Aug 4, 2015, 11:54:20 AM8/4/15
to ISO C++ Standard - Future Proposals
On 4 August 2015 at 18:40, Matthew Woehlke <mwoehlk...@gmail.com> wrote:
>> "Properly represented"? You want things to just happen, without doing any work?
> Define "work". If you mean it in the absolute general sense of any sort
> of effort at all, regardless of relevance to the C++ standards process,
> than I am confident that's not what Denis means. If you mean work
> directly related to a C++ proposal... then... yes!

Fine, then everybody should understand that mere wanting of things to happen
rarely leads into any fruition.

> Note that Denis multiple times suggested willingness to exchange effort
> for money. He's not asking for "something for nothing", he's asking for

Ah, yes, he started talking about that after his other falsehoods were
dismissed.

> a system that allows non-experts to have a way to contribute by paying
> in some currency other than having to personally become language experts
> and first tier participants in the committee. (Hence the court analogy,
> which I think is apt.)

Feel free to use http://careers.stackoverflow.com/jobs/tag/c++
for that. Or sponsor the C++ Foundation, they provide financial assistance
for paper authors for important papers. Probably not specifically for personal
pet peeves, because voting by currency on what would get discussed and/or
adopted is going to meet very justified opposition.

Ryan Nicholl

unread,
Oct 13, 2015, 1:05:53 AM10/13/15
to ISO C++ Standard - Future Proposals, isocp...@denisbider.com
I agree. Standardization should probably take place online only.

On Sunday, August 2, 2015 at 3:20:11 PM UTC-4, denis bider wrote:
This highlights the whole problem of moving the language forward in face to face meetings.

This wastes resources on travel, excludes people who could contribute, and silences worthwhile ideas who don't happen to have a champion with disposable time and money.

It further corrupts the process by comingling standardization with socializing, leading to an inner clique who know each other from years of face to face meetings, further excluding outsiders.

This is an inefficient process that became unnecessary around the year 2000. Yet it continues to persist, most likely because most people who would vote to change it enjoy being paid by their companies to socialize and travel.

This is fairly disgusting and must be ended.

Explore new countries on your own time, people.


On Sunday, August 2, 2015 at 8:56:38 AM UTC-6, Howard Hinnant wrote:
On Aug 2, 2015, at 6:28 AM, Magnus Fromreide <ma...@lysator.liu.se> wrote:
>
> Does anybody know why WG14/N1085 didn't move forward or where that
> paper ended up?
>
> http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1085.htm
>

I did not attend WG14 personally to present this paper.  The feedback I got was that there was insufficient interest to move forward with it.  I.e. no one present was excited enough about it to do the hard work, and even I, the author, wasn’t willing to shell out the vacation time and travel expense to make it happen.

I.e. good ideas are often not enough by themselves.  Someone has to be willing to champion it in person.  It takes time and money (the money for travel, nothing nefarious).

Howard

olena.r...@gmail.com

unread,
Oct 17, 2015, 5:48:29 PM10/17/15
to ISO C++ Standard - Future Proposals


On Tuesday, August 4, 2015 at 11:14:05 AM UTC-4, Thiago Macieira wrote:
On Tuesday 04 August 2015 06:10:09 Giovanni Piero Deretta wrote:
> Even without WG14 buy-in, it might be worthwhile adding it to C++ under the
> std namespace. The nice thing about the try_realloc interface is that it is
> best effort. A trivial implementation that always returns false would be
> conforming and on systems where the C++ implementors can influence the C
> standard library, a better implementation is possible. With time and
> implementation experience, the interface might finally make into C. The
> actual interface proposed by n1085 is more complicated, but from a cursory
> look most entry points still seem to be best effort and allow trivial
> implementations. The only issue seems to be sizeof_alloc which could be
> dropped.

Agreed. I'd miss sizeof_alloc() though, since most containers today end up
double-booking that fact in the allocated block itself. But it's also possible
that some implementations don't keep a size at all, in which case it's not
double-booking...

One thing I'd ask, though: please be sure to keep the alignment requirements
in the API.

I'm not sure sizeof_alloc() is really that useful in practice outside of heap debugging. Even if sizeof_alloc() was guaranteed to exist, I imagine sizeof_alloc() could be slow. Possibly requiring acquiring a lock or at least atomic memory barriers.  Even if you could reduce sizeof(vector) by 1/3 by not storing the capacity is it worth pessimizing push_back() and insert()?

try_realloc() keeps coming up over and over again. In Alexandrescu's allocator talk at cppcon 2015 he also presented an allocator interface with this feature.

Another alternative interface which would be harder to use but maybe more efficient is a kind of realloc which either resizes the buffer and returns it or returns a newly allocated buffer for you the caller to perform the moves and free the old one yourself. A templated renew<T>() kind of wrapper in the C++ library can handle the move construction / exception safety / free() dance on top of the untyped allocator primitive. The reason it can be faster is that try_realloc() == false followed by a malloc() means you need to enter the allocator subsystem twice, possibly grabbing locks twice and doing other search and initialization that could be avoided with 1 entry point. WIth that overhead, adding try_realloc() support to vector could actually become a pessimization instead of a optimization for workloads where the inplace resize cannot be triggered often.

olena.r...@gmail.com

unread,
Oct 17, 2015, 6:07:20 PM10/17/15
to ISO C++ Standard - Future Proposals, olena.r...@gmail.com


On Saturday, October 17, 2015 at 5:48:29 PM UTC-4, olena.r...@gmail.com wrote:

Another alternative interface which would be harder to use but maybe more efficient is a kind of realloc which either resizes the buffer and returns it or returns a newly allocated buffer for you the caller to perform the moves and free the old one yourself. A templated renew<T>() kind of wrapper in the C++ library can handle the move construction / exception safety / free() dance on top of the untyped allocator primitive. The reason it can be faster is that try_realloc() == false followed by a malloc() means you need to enter the allocator subsystem twice, possibly grabbing locks twice and doing other search and initialization that could be avoided with 1 entry point. WIth that overhead, adding try_realloc() support to vector could actually become a pessimization instead of a optimization for workloads where the inplace resize cannot be triggered often.

I'd also mention that most of the uses of inplace resize that exist today usually involve a manually specified is_relocatable type trait and realloc() being called under the hood. So the current benchmarks showing speedups from realloc() depend on only 1 allocator call. In other words, the current evidence for the benefit of supporting realloc() in C++ does not account for the possible overhead of 2 calls into the memory system required to implement reallocation in C++ using a try_realloc() and malloc() approach.

There's probably enough desire for this feature to make this real, but whoever wants to write the proposal and do the work will have to consider these concerns. I would also recommend getting some domain experts help. You can start by contacting the authors of the various malloc implementations like dmalloc, jemalloc, etc..
Reply all
Reply to author
Forward
0 new messages