On Tue, Jul 30, 2013 at 2:49 PM, Jonathan S. Shapiro <[email protected]>wrote:

> ..and I'm reasonably confident, given some conversations with Tim Sweeney,
> that the game examples you cite can be solved.
>

I would love to hear his opinion on a mandatory managed code systems
runtime.

Currently he uses the same pattern as most other games, which is a big
unsafe C++ core with GC and scripting for high-level language objects. Back
when he wrote something about earlier revs of the system, the GCed
scripting objects were so high level and lacking allocation they were only
garbage collected in-between levels.

http://floodyberry.com/sweeney/posting.html#s1999071705210

AFAIK, the "most managed high end game project" to date was LucasArts Force
Unleashed, which was written substantially in CLR with SlimDX DirectX
bindings. I can't find anything written about it.

Unity3d, which uses Mono for mobile game development, recommends either
making the heap big and trying to avoid collection until a similar "time in
between levels", or use a tiny tiny heap.

http://docs.unity3d.com/Documentation/Manual/UnderstandingAutomaticMemoryManagement.html

Their small heap guidelines are: "The typical heap size when using this
[small heap] strategy on iOS is about 200KB and garbage collection will
take about 5ms on an iPhone 3G. If the heap increases to 1MB, the
collection will take about 7ms."

Keeping the managed heap below 1MB is really tough. I think it would be
impossible if the entire iOS UIKIt framework was managed.

Fortunately, C4 exists, and I do trust that in time we will get a CLR-ish
with C4 whether anyone on this list writes it or not. I recently thought C4
was also stalled on kernel patches, but I read something which leads me to
believe they came up with a new implementation that deploys on current
linux. I will need to read more about that.

A really interesting alternate path would be to design CLI/CLR' and proceed
> from there. The three interesting questions in that would appear to be: (1)
> what does the type system look like, (2) what concurrency deficiencies do
> we want to resolve, and how, (3) what does the new GC look like. The main
> thing that stops me from going there right off is that I think that type
> system is informed by our HLL type system requirements.


I'm interested to know more about your thoughts on concurrency. I agree
it's a challenging space. So far I view shared-nothing concurrency models
like you view checked-exceptions, where the curse is worse than the
disease.

Are there any particular papers or posts I can read about your
bias/leanings?
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to