Live data from Hacker News

Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

open-std.org

21–30 of 39 posts

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#21
post #2

"We started by looking at a paper from Paul Pedriana on N2771 “EASTL -- Electronic Arts Standard Template Library”. While this paper was submitted in 2007, neither chairs of LWG recall reviewing this paper and no record of its review exists." I give you the C++ standardization committee. Someone submits a paper to them with their issues and, moreover with solutions fully implemented in a library and also details the…

I also remember Bloomberg submitted in 2005 some very nice template library changes that avoid some very real pain points of STL:

www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1850.pdf

"Using an existing implementation of the C++ standard library as a base, we made backward-compatible modifications to enable such per-instance allocators."

I still don't know how I'd achieve per-instance allocator in modern "part-of-standard C++ STL." Is it possible? If yes, how? Does anybody know?

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#22
post #19

C++ has left the horrors of the '90s largely behind it, and I'm rather liking it these days... But every time I work on a C++ project, I soon get "array angst" -- a feeling of profound incompetence because I feel uncertain about basic array operations. Seems like every project has its own take on array classes and their ownership semantics. Std::vector appears to be largely useless (or at least it's not used anywhere…

Could you explain why you think std::vector is useless?

Like I wrote in my comment, it doesn't seem to be used in the real-world projects and SDKs that I deal with.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#23
post #19

C++ has left the horrors of the '90s largely behind it, and I'm rather liking it these days... But every time I work on a C++ project, I soon get "array angst" -- a feeling of profound incompetence because I feel uncertain about basic array operations. Seems like every project has its own take on array classes and their ownership semantics. Std::vector appears to be largely useless (or at least it's not used anywhere…

> I wish the C++ standard had something like Cocoa's NSArray/CFArrayRef

I think the proposed array_view is a much better choice in C++ land. The actual storage format of data (the data structure) should be an implementation detail, but there should be standard ways to share that data across various unrelated pieces of code.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n417...

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#24
post #21
post #2

"We started by looking at a paper from Paul Pedriana on N2771 “EASTL -- Electronic Arts Standard Template Library”. While this paper was submitted in 2007, neither chairs of LWG recall reviewing this paper and no record of its review exists." I give you the C++ standardization committee. Someone submits a paper to them with their issues and, moreover with solutions fully implemented in a library and also details the…

I also remember Bloomberg submitted in 2005 some very nice template library changes that avoid some very real pain points of STL: www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1850.pdf "Using an existing implementation of the C++ standard library as a base, we made backward-compatible modifications to enable such per-instance allocators." I still don't know how I'd achieve per-instance allocator in modern "part-o…

> I still don't know how I'd achieve per-instance allocator in modern "part-of-standard C++ STL." Is it possible? If yes, how? Does anybody know?

Well, there are two things you can do.

1. (Accepted in C++11) Allow stateful allocators. This is especially useful for things like pool allocators. Your container would keep a pointer to its allocator and perform allocator operations through it.

2. (Proposed but not accepted yet) Allow polymorphic allocators. This would allow different data structures to use different allocators but still have the same type. Basically it would look like 1 above, but instead of keeping an allocator pointer, you would keep a pointer to an allocator interface and perform allocator operations through virtual method calls.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#25
post #12

It's actually kind of fascinating that the HN shortened title omits "games," which is really what this document focuses on. Specifically the document investigates "EASTL", i.e. the Electronic Arts STL, and how its learnings can be applied to the common STL. The actual title: "Towards improved support for games, graphics, real-time, low latency, embedded systems." These little pieces of censorship—that's not a sign th…

>It's certainly what most software people are working on, and it is probably where the plurality of the money is made. Not sure where you got those ideas, but they're not even remotely true. Enterprise, while boring as all hell, is _huge_. The largest software vendors are (consistently) Microsoft, Oracle, IBM, and SAP[1]. According to Gartner, software was a $407.3B industry in 2013, and enterprise driven companies a…

> software was a $407.3B industry in 2013

And that's not counting embedded software, which is often sold as part of a hardware package.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#26
post #17
post #16

Earlier quoted context omitted.

You're getting it backwards. Games are prominent because it's in their modus operandi. Their relationship with tech remains symbiotic only as long as they can act as a flashy demo. This is a thing that occurs only some of the time, and more often than not, one of the two is compromised. The other side of it, that a lot of games are made, is mostly reflective of the wishful thinking everyone has about games as a busin…

Games have been a huge driving force behind tech from the beginning. For example, Unix only exists because Ken Thompson wanted to port his game Space Travel to the PDP-7.

Is this true? That's a great piece of trivia if so.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#27
post #12

It's actually kind of fascinating that the HN shortened title omits "games," which is really what this document focuses on. Specifically the document investigates "EASTL", i.e. the Electronic Arts STL, and how its learnings can be applied to the common STL. The actual title: "Towards improved support for games, graphics, real-time, low latency, embedded systems." These little pieces of censorship—that's not a sign th…

>It's certainly what most software people are working on, and it is probably where the plurality of the money is made. Not sure where you got those ideas, but they're not even remotely true. Enterprise, while boring as all hell, is _huge_. The largest software vendors are (consistently) Microsoft, Oracle, IBM, and SAP[1]. According to Gartner, software was a $407.3B industry in 2013, and enterprise driven companies a…

You misread that chart; The video game industry pulled in $887M in the US in One Month (February) of 2014. For scale, bear in mind that GTA5 made worldwide revenue of $1billion in it's first three days.

If we go by Gartner[1], the games industry was predicted at $93billion in 2013. That's over 21%, so a couple of orders of magnitude more than 0.21%.

[1]:http://www.gartner.com/newsroom/id/2614915

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#28
post #18
post #8

The allocator support in C++11 and, from what I've seen, the proposed allocator support in C++1y/z/whatever still leaves a massive amount to be desired. Polymorphic allocators solve what's basically a non-problem for games (ABI boundary problems) while introducing huge other issues. Alignment is a PITA but not really a pressing IMO. The real issue is stuff like rebind and the requirements to call destructors (which d…

There are no gamdevs on the c++ committee, probably because games companies are cheap bastards and don't want to expend resources on something that will affect them 10 years down the line (or even 2). Join the committee.

Haha, even if that were something I was interested in at all, I'm honestly not sure what you could do to fix it at this point. I think that ship has sailed. Most of the issues are library issues (and are far deeper than my complaints about allocators). The language issues largely come from having too many features, and its not like any of them can be taken out.

FWIW, I'm currently pinning my hopes on JAI, even though it's a long shot.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#29
post #28
post #18

Earlier quoted context omitted.

There are no gamdevs on the c++ committee, probably because games companies are cheap bastards and don't want to expend resources on something that will affect them 10 years down the line (or even 2). Join the committee.

Haha, even if that were something I was interested in at all, I'm honestly not sure what you could do to fix it at this point. I think that ship has sailed. Most of the issues are library issues (and are far deeper than my complaints about allocators). The language issues largely come from having too many features, and its not like any of them can be taken out. FWIW, I'm currently pinning my hopes on JAI, even though…

What's "JAI"? I've never heard of it, and Google/Wikipedia aren't showing any plausible candidates.

Re: Towards improved C++ support for games, graphics, real-time, embedded systems [pdf]

#30
post #29
post #28

Earlier quoted context omitted.

Haha, even if that were something I was interested in at all, I'm honestly not sure what you could do to fix it at this point. I think that ship has sailed. Most of the issues are library issues (and are far deeper than my complaints about allocators). The language issues largely come from having too many features, and its not like any of them can be taken out. FWIW, I'm currently pinning my hopes on JAI, even though…

What's "JAI"? I've never heard of it, and Google/Wikipedia aren't showing any plausible candidates.

Jonathan Blow's language/compiler/live performance.

https://www.youtube.com/user/jblow888/playlists

See https://sites.google.com/site/jailanguageprimer/ for some fan-made notes from the videos

Post reply on HN