Exemplo n.º 1
0
Arquivo: chain.c Projeto: ahma88/magro
void chain_init(CHAIN* chain, int nchain)
{
	int i,t, noise=327;

	assert(chain!=NULL);
	assert(nchain<=CHAIN_MAX);

	chain->nchain = nchain;
	t = (int)time(NULL);
#ifdef _DEBUG
	t = 0;
	noise = 0;
#endif
	for( i = 0 ; i < nchain ; i++, t+=noise)
	{
		CHAINCORE* core = &chain->core[i];
		core->threadid = 0;
		core->nciter = 0;
		core->compiler = compiler_create();
		core->monitor_buff = NULL;
		NMath_Init(&core->ms);
		RNG_Init(&core->ms, t);
	}	
	chain->niter = 0;
	chain->minterval = 100;
}
Exemplo n.º 2
0
rt_value rt_eval(rt_value self, const char *input, const char *filename)
{
	struct compiler *compiler = compiler_create(input, filename);

	struct node* expression = parse_main(compiler);

	if(compiler->err_count != 0)
		return RT_NIL;

	extern rt_value get_node_name(struct node *node);

	#ifdef DEBUG
		printf("Tree: %s\n", rt_string_to_cstr(get_node_name(expression)));
	#endif

	struct block *code_block = gen_block(expression);

	rt_compiled_block_t compiled_block = compile_block(code_block);

	compiler_destroy(compiler);

	return compiled_block(self, RT_NIL, 0, 0);
}