On Thursday, 16 January 2014 at 19:54:45 UTC, Ross Hays wrote:
I was reading about Rust and one thing that caught my attention as interesting was the inclusion of std::prelude in the beginning of every package. I was curious what the advantage of this were versus having things declared in object.d for what seems to be the same effect.

Also after looking at the source code of Rust on Github, I don't see anything in the runtime that mirrors the D core.* modules. I know that it isn't required to be there, but I am just curious why D took the approach of having some core modules in the runtime? Is it just so Phobos doesn't need ported in order for D to be ported to a new system?

Sorry if these questions seem a bit out there, just trying to learn some more about programming languages design/implementation.

Thanks,

Ross

There is two libraries that go along with D by default. Druntime and Phobos. Druntime's job is to make D work on a platform. This includes the garbage collector and basic types.

The core package you are referring to is provided by druntime[0]. Basically any common function that requires underlying interaction should occur here, by my understanding. Example, threading.

Where as phobos[1] does not contain any core functionality. Only helper types/functions to make things easy and hopefully idiomatic D style.

The documentation on the site may have it generated together i.e. the menu's but they are not together in repository and linking side of things.

[0] https://github.com/D-Programming-Language/druntime/tree/master/src/core [1] https://github.com/D-Programming-Language/phobos/tree/master/std

Reply via email to