Raised This Month: $81 Target: $400
 20% 

metaeng


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
yakumo
New Member
Join Date: Sep 2004
Old 10-08-2004 , 17:31   metaeng
Reply With Quote #1

so tell me about metaeng??

i have have a working 64bit vm finished, with an assembler 99% done. just need to write a compiler for it now. i have well and truly given up on small. blah. i went completly 64bit. you can write scripts with the assembler now, with publics and execute publics from C etc just like small with natives. basically that syntax is exactly the same...

im interested in details of your metaeng... currently i have a register based engine (31 64bit registers), memory on demand as paged, etc.

your abstraction layer to other scripting languages sounds very grand, but you dont have many details...

my hard part has begun, the writing of a compiler for my engine....

(ps, i still never had a reply from my bugs on the small forum ;), small, nice ideas, waste of time! hahaha).

good luck on the new metaeng project.

-stu
yakumo is offline
BAILOPAN
Join Date: Jan 2004
Old 10-08-2004 , 17:43  
Reply With Quote #2

df: the assembler and the VM are the easy parts to write (unless you use better memory management, like dynamic allocation instead of stacks).

However, it is interesting you have written a 64bit one. Wouldn't it make more sense to write one that is independent of the bitsize? Could your VM compile on a 32bit machine? 64bit is still not big yet and working on other architectures is important.

Small's main problems are a lack of dynamic allocation (heap + intelligent garbage collection), and a terrible/buggy compiler. So far I've added new debugging features to Small and made an embeddable assembler for it, but I haven't written a new compiler yet. In the future I plan to do so, but not yet. Small has other problems, such as very messy code and beta code - so I agree a rewrite of everything is necessary (but I don't have the time yet). My additions to Small (Small++?) would be:
  • Native Garbage Collection with intelligent heap allocation
  • More registers (r0-r7)
  • Remove compaction, use a better bytecode storage
  • Add exception handling
  • Add a debug format (debug opcodes are a bad idea)
  • Compiler written in standard C++, embeddable
  • Compiler supports inline assembly
  • Virtual machine supports on the fly compiling and bytecode processing from a string

Maybe in the future ;]

MetaEng is very simple, you make wrappers for a VM that interface to a main API. For example, you make a function called "MetaEng_LoadScript" and MetaEng will call it to load a script. It gets more complicated and powerful with the system for modularity. I'll try to post the API and alpha source implementation soon.
BAILOPAN is offline
PM
hello, i am pm
Join Date: Jan 2004
Location: Canalization
Old 10-09-2004 , 04:48  
Reply With Quote #3

Quote:
Compiler supports inline assembly
Try #emit, should work
__________________
hello, i am pm
PM is offline
yakumo
New Member
Join Date: Sep 2004
Old 10-09-2004 , 05:53  
Reply With Quote #4

Quote:
However, it is interesting you have written a 64bit one. Wouldn't it make more sense to write one that is independent of the bitsize? Could your VM compile on a 32bit machine? 64bit is still not big yet and working on other architectures is important.
sure. i dont have a 64bit machine myself. the VM is 64bit and runs fine on my 32bit machine. I have no interest in doing a 32bit VM on 32 and 64bit on 64. Makes running VM code a hassle when it was compiled on different machines. thats the whole point of a VM... So i went with full 64bit.

I think your wrong about 64bit not being plenty big enough.
Endianness is enforced in the VM so running it on sparc vs alpha vs sgi vs x86 makes no difference. What do you need a bigger size for? What are you doing that needs a 128bit VM or that??

Quote:
Small's main problems are a lack of dynamic allocation (heap + intelligent garbage collection), and a terrible/buggy compiler. So far I've added new debugging features to Small and made an embeddable assembler for it, but I haven't written a new compiler yet. In the future I plan to do so, but not yet. Small has other problems, such as very messy code and beta code - so I agree a rewrite of everything is necessary (but I don't have the time yet). My additions to Small (Small++?) would be:
things like garbage collection etc are down to the language and not the VM. My compiler willl do dynamic allocation/garbage compaction etc. since that is not the job of the VM. Most of all things in your list are compiler enhancehments, and your right about that, the compiler is harder than the vm and assembler, but I am getting there

It wll be very interesting to see how MetaEng develops and I am going to keep an eye on it! good luck guys!

ps, you go to wpi?? cool! home of megazone, gryphon and undocumented features...
yakumo is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 00:33.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode