VM: Refactor run.cpp/hpp to Factor style

db4
Erik Charlebois 2013-05-11 22:27:19 -04:00
parent 435ac636c6
commit debdb11538
2 changed files with 19 additions and 30 deletions

View File

@ -1,37 +1,27 @@
#include "master.hpp" #include "master.hpp"
namespace factor namespace factor {
{
void factor_vm::primitive_exit() void factor_vm::primitive_exit() { exit((int) to_fixnum(ctx->pop())); }
{
exit((int)to_fixnum(ctx->pop())); void exit(int status) {
factor_vm::close_console();
::exit(status);
} }
void exit(int status) void factor_vm::primitive_nano_count() {
{ u64 nanos = nano_count();
factor_vm::close_console(); if (nanos < last_nano_count) {
::exit(status); std::cout << "Monotonic counter decreased from 0x";
std::cout << std::hex << last_nano_count;
std::cout << " to 0x" << nanos << "." << std::dec << "\n";
std::cout << "Please report this error.\n";
current_vm()->factorbug();
}
last_nano_count = nanos;
ctx->push(from_unsigned_8(nanos));
} }
void factor_vm::primitive_nano_count() void factor_vm::primitive_sleep() { sleep_nanos(to_unsigned_8(ctx->pop())); }
{
u64 nanos = nano_count();
if(nanos < last_nano_count)
{
std::cout << "Monotonic counter decreased from 0x";
std::cout << std::hex << last_nano_count;
std::cout << " to 0x" << nanos << "." << std::dec << "\n";
std::cout << "Please report this error.\n";
current_vm()->factorbug();
}
last_nano_count = nanos;
ctx->push(from_unsigned_8(nanos));
}
void factor_vm::primitive_sleep()
{
sleep_nanos(to_unsigned_8(ctx->pop()));
}
} }

View File

@ -1,5 +1,4 @@
namespace factor namespace factor {
{
void abort(); void abort();
void exit(int status); void exit(int status);