Frequently Asked Questions


Use the scripts provided in the run directory (e.g., run-sort.sh or run-all.sh).

Yes. Nanos4 uses user-level threads called nano-threads that allows to easily migrate tasks from one kernel thread to another.

Using the NTH_SCHEDULE enviroment variable. It can be set to one of the following schedules:

bff, bfl, wfff, wffl, wflf, wfll and cilk

Mercurium faithfully represents input source code, this means keeping lots of extra details that usually a compiler would disregard. You can get a breakdown of used memory using --debug-flags=memory_report

Please check our nightly build generated documentation.

We strive for being as much compatible as possible with gcc. Almost every syntactic extension is supported with the major exception of nested functions.

Some attributes in declarations might not be enough honoured, in particular those related with the exact layout and alignment of data types: these include __attribute__((packed)), __attribute__((aligned(n)) and so on.

Maybe we will fix this in the future.

Note: As of Mercurium 1.3.5.6 rofi-bison is not required anymore. This FAQ, applies, still for plain bison when no rofi-bison is required.

Not strictly although we strongly recommend it.

Distributed tarball does not require those applications to be installed since the tarball includes the generated files. As long as you do not modify any grammar file (*.y), lexer file (*.l) and gperf file (*.gperf) everything should compile fine.

If these files get modified the compilation will abort.

See the installation from tarball guidelines to learn how to selectively disable source code regeneration.

Currently unavailable at the moment. We apologize for any inconvenience.

No, you can use the prebuilt binaries from the download section.