Live data from Hacker News

JSVM

github.com

11–17 of 17 posts

Re: JSVM

#11
post #10

Your VM will work much faster if you take the time to do a second pass over the generated "code" and resolve the jumps to LABELs all at once instead of linearly scanning the code for the appropriate target on each jump.

I agree with you, I'll fix these ASAP.

Re: JSVM

#12

If I make make a few suggestions (mostly from a desire to see a more familiar sort of spec): > Add arithmetic shift left/right > Add logical shift left/right > Add exclusive OR (XOR) > Pick a word size so your integer and bit ops have meaning Questions: > How do I set the program counter from my assembly? > Do I have registers (seems like a stack-based VM, so no)? If not, can I have more stacks? > Can you setup a ded…

> Add arithmetic shift left/right .. I'll add > Add logical shift left/right .. I'll add > Add exclusive OR (XOR) .. I'll add > Pick a word size so your integer and bit ops have meaning .. I think I'll just rely on js types to keep things simple, If you see any reason not to please explain further

> How do I set the program counter from my assembly? The only way to set PC is through branching

> Do I have registers (seems like a stack-based VM, so no)? If not, can I have more stacks? Like you said it's a stack-based VM, so no registers. Currently it's a single stack since it's enough. I never encountered a machine with multiple stacks, can you enlighten me about this ?

> Can you setup a dedicated block of memory to use as a framebuffer and render it to a tag I made this machine to be used by students to test compilers, But I think I'll add this feature in case there is any ambitious student who wants to embed a graphics library in his language :)

Thanks,

Re: JSVM

#13
post #9
post #8

Better name it VM.js !!

I real disappointed when I discovered this was not an amateur JS vm that I could read in a weekend or two, that would be awesome to have :(

Sorry for disappointing you, the name is correct, what you're looking for is called a javascript engine like V8, SpiderMonkey ...

Re: JSVM

#14
post #8

Better name it VM.js !!

I didn't want to call it VM.js since it sounds like a library, this project is a library (you can find it in js/vm.js) + UI which uses the library and define IO methods and callbacks. It's a webapp, briefly

Re: JSVM

#15
post #12

If I make make a few suggestions (mostly from a desire to see a more familiar sort of spec): > Add arithmetic shift left/right > Add logical shift left/right > Add exclusive OR (XOR) > Pick a word size so your integer and bit ops have meaning Questions: > How do I set the program counter from my assembly? > Do I have registers (seems like a stack-based VM, so no)? If not, can I have more stacks? > Can you setup a ded…

> Add arithmetic shift left/right .. I'll add > Add logical shift left/right .. I'll add > Add exclusive OR (XOR) .. I'll add > Pick a word size so your integer and bit ops have meaning .. I think I'll just rely on js types to keep things simple, If you see any reason not to please explain further > How do I set the program counter from my assembly? The only way to set PC is through branching > Do I have registers (s…

I think I understand the thing about word size, thank you I'll fix it

Re: JSVM

#16
post #15
post #12

Earlier quoted context omitted.

> Add arithmetic shift left/right .. I'll add > Add logical shift left/right .. I'll add > Add exclusive OR (XOR) .. I'll add > Pick a word size so your integer and bit ops have meaning .. I think I'll just rely on js types to keep things simple, If you see any reason not to please explain further > How do I set the program counter from my assembly? The only way to set PC is through branching > Do I have registers (s…

I think I understand the thing about word size, thank you I'll fix it

No worries--nothing broken, just undefined. :)

Having a fixed word size in a machine is important for being able to say, for example, what the largest and smallest integers are (assuming twos-complement arithmetic).

Re: JSVM

#17
post #15

Earlier quoted context omitted.

I think I understand the thing about word size, thank you I'll fix it

No worries--nothing broken, just undefined. :) Having a fixed word size in a machine is important for being able to say, for example, what the largest and smallest integers are (assuming twos-complement arithmetic).

It's 32bit now
Post reply on HN