Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
Checking mergeability… Don’t worry, you can still create the pull request.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Jun 05, 2011
@cotto cotto add a note about call frame size 3611fa4
@cotto cotto switch m0b to be based on 32-bit unsigned integers
This doesn't change anything that the assembler or interpreter need to
care about (other than a minor change in the header) but should be much
less ambiguous than defining everything in terms of the under-defined
@cotto cotto define how the endianness bit is used e331522
Commits on Jun 06, 2011
@cotto cotto add new test (actually a calling conventions brain dump) and a new op
The new file isn't even remotely valid code yet, so it's blacklisted
from the integration test until it works.  The new op will probably be
permanent, but I don't want to update the spec until there's a
demonstration that what's there can fully implement calling conventions.
@cotto cotto add the beginnings of a description of M0 calling conventions 6a5c064
Commits on Jun 07, 2011
@cotto cotto make a few changes to allow implementing CPS with call frames 62c85d9
@cotto cotto initial attempt at a calling conventions test
It doesn't run correctly yet but it tries really hard.  It does
assemble, which is progress.
@leto leto Make a test diagnostic message more useful 060b494
@leto leto Add coverage for command line argument to m0 assembler 4eff688
@leto leto Add coverage for detecting invalid M0 symbolic register names 19c59c3
@leto leto Add more coverage for detecting invalid registers 644daa0
@leto leto Add coverage for a goto with an invalid label e9e48dc
@leto leto Add test coverage for invalid opcode detection 89fa31c
@cotto cotto make calling conventions test less wrong, but still wrong
Also, hijack print_n to dump a register and exit.
Commits on Jun 08, 2011
@cotto cotto make assembler debugging output optional 72b359e
@cotto cotto make M0 smart enough to use a manually-initialized call frame
poke_caller still doesn't pass, but it properly goes to the callee chunk
using a call frame initialized by M0 code, so there's progress
@cotto cotto various (mostly) minor interpreter fixes f328a33
@cotto cotto get poke_caller returning to the address in its RETPC, though not los…
Commits on Jun 09, 2011
@cotto cotto remove some obsolete ops from the assembler 7c6c1ce
@cotto cotto possibly make the calling conventions test work
It seems to output what I expect it to, but the PC jumps around
@cotto cotto remove a couple of superceded ops from the m0 spec 37d00ea
Commits on Jun 10, 2011
@cotto cotto make the interp pass around a reference to the current call frame
Passing around a reference to the current call frame makes it possible
for ops to change which call frame is currently active.  This and an
off-by-one fix in poke_caller get poke_caller working as expected.
@cotto cotto simplify op execution loop a bit febedca
@cotto cotto update assembler tests 0a4fdd0
@cotto cotto update canonical hello world m0b 77de53a
@cotto cotto remove bogus m0 test f1b698f
@cotto cotto add newline parsing to m0 assembler, update poke_caller to use it 1754b36
@cotto cotto update tests to use explicit newlines, fix a few minor goofs 83b560d
@cotto cotto update canonical hello world with an explicit newline db498f3
@cotto cotto start converting poke_caller to spit out TAP 79cc5c7
@cotto cotto add an explanation of what this test does 78e574f
@cotto cotto make semantics of set_ref match deref, update poke_caller 8ba3698
@cotto cotto add a bunch of comments to poke_caller ce2b99d
@cotto cotto remove the unneeded RETCHUNK register, put its space up for rent ef992cb
@cotto cotto remove references to RETCHUNK, update canonical hello world b73907c
Commits on Jun 12, 2011
@leto leto Add some updates about checksums 0eb454e
Commits on Jun 13, 2011
@cotto cotto rename iton to convert_n_i, etc 1921ceb
Commits on Jun 14, 2011
@cotto cotto use little-endian byte order d353305
@cotto cotto specify possible sizes of INSP registers 7b67dd3
@cotto cotto expand the semantics of goto_chunk to match what the prototype interp…
… does
Commits on Jun 19, 2011
@cotto cotto more comments in poke_caller 8091bba
@cotto cotto add ARGV and ARGC to assembler, simplify register parsing d4f4d9a
@cotto cotto fix typo in poke_caller 6d4fd21
@cotto cotto add argv support and an incomplete test c3af1b2
@cotto cotto clean up some failing tests d7a80e5
@cotto cotto add a whole mess of vim codas 54cd050
Commits on Jun 24, 2011
@cotto cotto the default exception handler must be installed by M0 code, not by th…
…e interp
@cotto cotto call frames aren't necessarily fixed-size df3bc4c
Commits on Jun 30, 2011
@chromatic chromatic Added skeleton of C-based M0 interpreter. 087b5c0
@chromatic chromatic Added m0b file magic number verification. 80907fe
@chromatic chromatic [m0c] Added m0b version check to file loading. 23aed14
@chromatic chromatic Added basic Makefile. 23925da
@chromatic chromatic Added m0b header configuration reading. e740606
@chromatic chromatic Added padding reader. a2ac260
@chromatic chromatic Added tags and default targets. 883408d
@chromatic chromatic Added constants and segment id verification. fb70896
@chromatic chromatic Tidied a few declarations. 8227788
Commits on Jul 01, 2011
@chromatic chromatic Added chunk name parsing and storage. 52e891d
@chromatic chromatic Added skeleton for m0b segments parsing. bd39d9d
@chromatic chromatic Added -Wall and cleaned up several warnings. b0ae64c
@chromatic chromatic Rearranged code for simplicity and encapsulation. 9c837dd
Commits on Jul 02, 2011
@chromatic chromatic Added debugging binary build rule. 2b67d33
@chromatic chromatic Added m0b constant segment parsing. 606aa97
@chromatic chromatic Added m0b metadata segment parsing. 84311ae
@chromatic chromatic Added m0b bytecode segment parsing. 844b9a4
@chromatic chromatic Added a ROADMAP for this C M0 implementation. 8b1430a
@chromatic chromatic Moved run_ops() to m0_ops.c and added m0_ops.h. eb17d98
@chromatic chromatic Added skeleton for "Hello, world!" handling.
This adds m0_ops.c with its header.
Commits on Jul 03, 2011
@chromatic chromatic Made "Hello, world!" example work.
Little else will work, and there are some definite hacks here, but progress is
@chromatic chromatic Updated ROADMAP. 57ad086
@cotto cotto add a suggestion from particle++ for an M0 completeness test 2836026
Commits on Jul 07, 2011
@cotto cotto remove a confusing bit, add some safe assumptions about special regis…
Commits on Jul 09, 2011
@martinolsen martinolsen Add test for xor. a45cd59
@martinolsen martinolsen Merge branch 'm0-xor-test' into m0-prototype 0200eda
@martinolsen martinolsen make xor test actually fail on error. 4804260
@martinolsen martinolsen return proper exit codes in xor test. 5e0a584
@cotto cotto Merge pull request #139 from martinolsen/m0-prototype
add test for xor from mro++
@cotto cotto change iton/ntoi to match the spec 1272180
@martinolsen martinolsen remove eager exits from XOR test. 8313968
Commits on Jul 10, 2011
@martinolsen martinolsen Add M0 and, or operator test. 712eace
@martinolsen martinolsen Move old iton M0 opcode test to new convert_i_n. Fix test logic. 253a05b
@martinolsen martinolsen Add tests for M0 ashr, lshr, shl operators. eaa043d
@cotto cotto Merge pull request #140 from martinolsen/m0-prototype
complete math ops coverage, courtesy of mro++
@martinolsen martinolsen Add tests for M0 register ops. 436416b
@martinolsen martinolsen Fix TAP output from M0 integration tests. c8ff7a0
Commits on Jul 11, 2011
@cotto cotto remove a bit of apparently dead code e7365ae
Commits on Jul 12, 2011
@cotto cotto fix a batch of goofs found by fivetonsflax++ 646d461
@cotto cotto fix another batch of typos, courtesy of fivetonsflax++ 6085d65
Commits on Jul 14, 2011
@cotto cotto add a couple experimental byte manipulation ops f359fc4
@cotto cotto implement the [gs]et_byte ops, though no tests yet b5ae2ab
Commits on Jul 15, 2011
@cotto cotto add a header to M0 primitive strings, making most test fail 069285a
@cotto cotto add get_ and set_word ops, hopefully not for long
This lets me deal with strings with headers in a reasonable fashion, but
it's also another two ops.  Preferable would be to roll get/set
word/byte into a single op.  For now, this serves as a tolerable first
@cotto cotto implement get/set word ops and add some header-awareness and null ter…

This enables basic string manipulation ( see ).
Commits on Jul 18, 2011
@cotto cotto add not op, tighten binary op semantics, improve debugging output 4edb3d1
@cotto cotto add passing test that calculates the hash of a string
It's full of hacks but it passes.  Making the hacks unnecessary is a
good next step.
@cotto cotto add a note about a bit of screwiness in the assembler d81470d
@cotto cotto start smartening up the assembler wrt constant types
The reason this appeared to work before was because Perl was helpfully
converting the string value of an int to its int value when the int was
stored as a string in bytecode.
Commits on Jul 20, 2011
@cotto cotto better debugging messages, bugfix in constant serialization 77f1ba6
Commits on Jul 21, 2011
@cotto cotto start to implement full-on C int semantics in M0
I tried to limit the hackiness and make it readable, but the concept of
implementing low-level semantics in Perl implies a certain amount of
hackery.  A basic test to add two ints and print the result works,
but anything more complex fails.
@cotto cotto add a note about how to fix the assembler and some temporary debuggin…
…g code
Commits on Jul 22, 2011
@cotto cotto start making m0 assembler and inter smarter about encoding strings
still not smart enough to work though
@cotto cotto get string encoding (and m0b loading) to work 968b07d
@cotto cotto Don't print the terminal null from print_s. It makes a test sad. e0edb1d
@cotto cotto fix a couple of tests, update canonical hello world m0b 74c93bf
@cotto cotto add naive float parsing to the M0 assembler f68715a
@cotto cotto fix M0 interp's N handling, get another batch of tests passing a6d210f
Commits on Jul 23, 2011
@cotto cotto fix ashr test output f1b7342
@cotto cotto use signed ints in M0 instead of unsigned d45fd62
@cotto cotto fix ARGC handling and the exit op 1a5749e
@cotto cotto fix handling of negative constants 863bbaf
@cotto cotto clean up ops output and convert_i_n 8e83444
@cotto cotto fix convert_i_n test 7927698
@cotto cotto fix goto_chunk, now down to one failing test 26e37dd
@cotto cotto simplify and add debugging output to hashing test 702eb30
@cotto cotto simplify/fix M0 ops; all tests pass f9019ed
@cotto cotto move one milestone to the "completed" section 5b644bd
@cotto cotto bitwise not isn't necessary if you know how big a word is b844546
@cotto cotto use int32 instead of uint32 for all values
Using uint32 for everything meant that negative numbers were not
available by default.  int32 for all values means that there's no need
to think about how to convert values from bytecode.  There are some
places where negative values can exist that don't make sense (e.g.
sizes), but watching for those is a straightforward validation issue.
@cotto cotto fix op numbering in assembler d605e93
@cotto cotto fix tests after "not" op removal 4d0460e
Commits on Jul 24, 2011
@cotto cotto avoid single-letter variable name ddfc731
@cotto cotto specify a way to efficiently refer to a chunk without looking it up a…
…t compiletime
@cotto cotto add a chunk map to the assembler 56fc846
@cotto cotto add support for chunk name constants to M0 p5 prototype 13296a1
@cotto cotto make debugging output a bit nicer 83305c5
@cotto cotto fix chunk name constant translation 9fed493
@cotto cotto add test containing chunk name constants
goto_chunk's semantics need to be changed before chunk name constants
can be used, but updating the asssembler and interpreter to understand
them was the hard part.
@cotto cotto update hello_canon.m0b 1fa6437
@cotto cotto update semantics and test of goto_chunk b72fdeb
@cotto cotto update spec of goto_chunk to use chunk indicies 426e71e
@cotto cotto add explanatory note to goto_chunk's description ef29614
@cotto cotto make CHUNK a little easier to deal with 72e68e0
@cotto cotto handle PC, RETPC and CHUNK as native ints
starts to fix poke_caller, but it's still not quite working
@cotto cotto fix poke_caller; now it needs to spit out TAP so breaks are more obvious 770cfd2
@cotto cotto add TODOs for TAP output with examples to poke_caller d2a2dca
@cotto cotto convert some of poke_caller's output to useful TAP 20dfbde
@cotto cotto finish making poke_caller output TAP, add it to integration tests 645b8ca
Commits on Jul 25, 2011
@cotto cotto expand the chunk name constants teswt a bit 2f76eee
Commits on Jul 26, 2011
@cotto cotto make debugging output for hashing test easier to enable 823bed4
@cotto cotto fix test so that it can pass 093802e
Commits on Jul 27, 2011
@cotto cotto use 'i' with pack/unpack, be more careful about int over/underflow 83ca83b
@cotto cotto fix thinkographical error, get all of m0_tests passing on x86 and x86…
@cotto cotto remove some debugging code 54288e7
Commits on Jul 28, 2011
@cotto cotto add a basic metadata test + assembler support (test fails) 7b03c58
@cotto cotto fix metadata segment generation, all tests pass again 1eb0f8c
Commits on Aug 02, 2011
@cotto cotto describe primitive string layout, make INSP sizes less self-contradic…
@cotto cotto tighten conversion semantics 8af0e30
@cotto cotto specify what happens with out-of-range conversions 6e776a4
Commits on Aug 06, 2011
@nbrown nbrown make sure m0 perl code and tests are treating bytecode files as binar…
…y files on Windows
@nbrown nbrown Make m0 c code treat m0b files as binary on Windows dd6e84a
Commits on Aug 07, 2011
@cotto cotto Merge pull request #149 from nbrown/m0-prototype-binary-files
make M0 tests pass on platforms where binmode is necessary
@nbrown nbrown initialize chunk->next to NULL and set interp->last if there is only …
…one chunk
@cotto cotto fix a couple of typos in the goto* op descriptions found by not_gerd++ ebb4243
Commits on Aug 08, 2011
@cotto cotto add clarification about copy_mem and GC d02371e
Commits on Aug 09, 2011
@nbrown nbrown Add set_byte, get_byte, set_word and get_word to the M0_OPS enum 4d5be65
@nbrown nbrown Add string constant loading to parse_mob_constants_segment 04a055e
@leto leto Merge pull request #150 from nbrown/m0-prototype-c-hello-world
M0 prototype c hello world
Commits on Sep 02, 2011
@nbrown nbrown Add basic testing support for the m0 c implementation
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add M0_NOOP op to pass bytcode loading tests
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add implementations for add_i, sub_i, goto, goto_if
Also, enable the add_i and sub_i integration tests.

Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add mult_i op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add div_i op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add mod_i op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add and op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add lshr op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add shl op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add or op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add xor op and integration test.
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Enable 5 passing tests
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add goto_chunk and the loading of chunk names
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add a very hacky exit op
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Enable goto_chunk test
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown enable m0_chunk_name_const tests
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add print_i op
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown Add arithmetic right shift op and test
Signed-off-by: Jonathan "Duke" Leto <>
@nbrown nbrown remove double loop by pulling chunk id search into goto_chunk
Signed-off-by: Jonathan "Duke" Leto <>
@leto leto Don't hardcode m0.exe 1da2b0c
@leto leto Deduplicate m0 C tests by adding a M0_INTERP env var
We now run the C implementation with exactly the same test files as the
Perl implementation.  The m0_c_tests Makefile target merely sets a
M0_INTERP env var to tell the test which binary it should be testing

In the future, we will want something to specify the m0 assembler to
use, but that is not an issue now.

Currently, the m0_c_tests target has some expected failures. This should
motivate us to make them pass, or come up with a "fudge framework."
@leto leto Merge branch 'pull_request_156' into m0-prototype f1ab0d0
Commits on Sep 08, 2011
@nbrown nbrown Fix m0_integration test when using $ENV{M0_INTERP}
In the m0_integration tests, use "$ENV{M0_INTERP}" or "perl",
but not "perl $ENV{M0_INTERP}".
@nbrown nbrown Fix setting M0_INTERP on Windows in the Makefile
The *nix style of setting an environment variable doesn't work in Windows.
So if the platform is win32, set the M0_INTERP using the Windows 'set'
syntax. Also, use backslash as the path seperator on Windows.
@leto leto Add a clean target to M0 c4b3eb6
Commits on Oct 02, 2011
@cotto cotto add a canonical machine-readable list of M0 ops 6ff1cbb
@cotto cotto make P5 M0 code more amenable to ops changes 9234787
Commits on Jan 21, 2012
@leto leto Merge remote-tracking branch 'origin/m0-prototype' into m0-spec 5a25e29
@leto leto Merge remote-tracking branch 'origin/master' into m0-spec
Commits on Mar 02, 2012
@leto leto Merge branch 'master' into m0 bae9ca3
Commits on Mar 03, 2012
@leto leto [t] Add a m0 test group 0b47f2c
Commits on Mar 05, 2012
@leto leto Move m0 to the near core test group b20eea4
Commits on Mar 09, 2012
@leto leto Make t/src/checkdepend.t report the correct line of the failing test 67f9c93
Commits on Mar 11, 2012
@leto leto Migrate m0 makefile rules to the main makefile 926ab69
Commits on Mar 21, 2012
@cotto cotto implement get_byte and set_byte for m0_c 7a27563
@cotto cotto tab -> space fix 22451c9
Commits on Mar 25, 2012
@leto leto [m0] Start adding convert_* ops to C implementation 061d58e
@leto leto [ci] Update travis config to test m0 stuff 2e8c33a
@leto leto [ci] Update travis config to use a perl worker b08ccd1
Commits on Mar 26, 2012
@leto leto [m0] Add convert_(i_n|n_i) ops to the main C runloop 10fa048
@nbrown nbrown the size of the M0_META_SEG should include the size of the header (12) 93f878c
Commits on Mar 27, 2012
@leto leto Merge pull request #751 from nbrown/93f878cea015f56e9de3e41c1bc9a2954…

The size of the M0_META_SEG should include the header
Commits on Apr 01, 2012
@nbrown nbrown make sure that the nok case precedes the ok case
The nok case must precede the ok case so that a failing test prints 'nok ...'
instead of 'n'.
Also, use the correct names ('and' and 'or') for the labels instead of
@nbrown nbrown check the appropriate register with goto_if 57c4a73
Commits on Apr 02, 2012
@nbrown nbrown Add a simplistic way to pass most of the *_n tests 23c7154
@nbrown nbrown add the set op c51c2c9
@nbrown nbrown use int64_t pointers so that the convert functions handle negative nu…
…mbers correctly
Commits on Apr 03, 2012
Jimmy Zhuo use double-precision float instead of single-precision float 703fb91
@nbrown nbrown Use double precision floating point values for the perl …
…per the spec
@nbrown nbrown Use sub_i with integer constants instead of sub_n 3f8ddf2
Commits on Apr 04, 2012
@nbrown nbrown Implement double deref for I&N registers
Make deref do what the spec says and make all of the ops do the appropriate
type interpretation.

Implementing deref this way (and using the current constant segment loading
method) means that the value types (I&N) need to be dereferenced twice when
loaded from the constants segment. This commit fixes that in all existing
Commits on Apr 06, 2012
@nbrown nbrown Change the loading of constants so string metadata is retained
When loading the consts table, point to the full string
(length+encoding+string) instead of just the string itself. This will enable
the length and encoding to be accessed later. This fix requires a fix to the
print_s op to not print the metadata.

This fix is required for the m0_hash test.
@nbrown nbrown Add get_word and set_word ops
The get_word op is required for the m0_hash test. The set_word op was added
for completeness.

This commit makes the C implementation pass the m0_hash test.
@nbrown nbrown Add a simple placeholder implementation for the gc_alloc op
This op is required for the poke_caller test.
Commits on Apr 09, 2012
@nbrown nbrown Update the internal interpretter data storage to match the spec.
Update the internal storage mechanism to allow indexing into the callframe to
work correctly. Also, add ARGC and ARGV to the interpetter data array.

This is required to pass the poke_caller and args tests.
@nbrown nbrown Update deref calls to use registers instead of values. ad01bd6
@nbrown nbrown Fix setting the PC and CF when changing callframe.
When trying to move the PC forward one op, increment by 4.
Also, before returning to the caller callframe, set the caller CF to point to
itself instead of the callee.
@nbrown nbrown Add vim mode line for consistent indenting 777dfbf
@nbrown nbrown Update deref calls to use registers instead of values.
This make the hash test pass for the c m0 implementation.

All existing m0 tests pass for the c implementation.
@nbrown nbrown Fix the order of the get_byte arguments. 163df79
@nbrown nbrown Remove the first commandline argument from ARGV f48bbc2
@nbrown nbrown Add debugging code to the args test
If the argc test fails, tell how many arguments were found.
@nbrown nbrown Check to see if the first argument is "kittens"
The algorithm is simple and makes some assumptions, but it works.
@nbrown nbrown Use the right pointer type for return type in add_chunk 68f8cfe
@nbrown nbrown Remove interp argument from ops functions.
The spec says "The current call frame is passed as the first argument to all
op functions. The remaining three bytes of the op are passed to the op
function directly."

Since the interpreter is accessible through the call frame, remove the
interpreter argument and use the call frame.
@nbrown nbrown Eliminate casting warning with an explicit cast. a66e969
@nbrown nbrown Expand tab. ab0c08a
Commits on Apr 11, 2012
@nbrown nbrown Use hyperlink L<> instead of code C<> where appropriate 748ae41
@nbrown nbrown make the opcode numbers match the perl implementation faa6711
Commits on Apr 14, 2012
@nbrown nbrown Remove accidental include c3af9ae
Commits on Apr 15, 2012
@nbrown nbrown Add the CHUNK_MAP field to the interpreter data
I'm not sure what this is, but it's missing from the spec and included in the
perl M0 assembler implementation. Any interpreter using the perl assembler
needs to know about the field otherwise there will be a mismatch.
@nbrown nbrown The in-memory layout of a call frame must be specified
If it's not specified, operations on the call frame registers will be
implementation specific.
Commits on Apr 24, 2012
@nbrown nbrown Revert double derefs 780e12a
@nbrown nbrown Change how constants are stored
Use a similar strategy as the callframe storage, store each constant as either
a uint64_t or a pointer to something larger. This gives integer & floating
point constants value semantics and strings pointer semantics.

This allows the c implementation to pass all tests using a single deref call
instead of the double deref previously required for constants with value
Commits on Apr 25, 2012
@nbrown nbrown Increment PC by 1 instead of 4 in m0_poke_caller and c implementation
Undo workaround for the m0 c implementation. This allows the c and perl
implementations to both pass the m0_poke_caller test.
@nbrown nbrown Note that the PC should be incremented by one on each iteration of th…
…e runloop
Commits on Apr 27, 2012
@nbrown nbrown Add a test that ensures PC is incremented 1 per operation 2f1e85a
Commits on Apr 29, 2012
@cotto cotto Merge remote-tracking branch 'nbrown/m0-c-single-deref' into m0 9bde020
Commits on Apr 30, 2012
@cotto cotto comment up the m0 args test a05aa57
@cotto cotto fix p5 interp to encode cli arguments as M0 strings 50bf1d7
@cotto cotto update cm0 to encode cli arguments as M0 strings
The code emits a warning and needs a bit of cleanup, but the new
args_basic test successfully prints out its first arg.  Issues with the
m0_args.t are probably due a bug in that test.
@cotto cotto remove a stray newline from the p5 m0 interp 525be62
Commits on May 01, 2012
@nbrown nbrown Use 32 bit integers for the string length and encoding 6811dd3
@nbrown nbrown Make interp_argv be uint64_t* instead of char**
The pointers in interp_argv need to be uniformly 8 bytes each. This will
make m0_args_basic access the correct argument.
@cotto cotto remove bogus test. m0_args tests this more effectively 6618c48
@cotto cotto macroize op invocations to make debugging a bit less painful 5140899
Commits on May 02, 2012
@nbrown nbrown Fail m0_args if argv[1] doesn't have the right number of bytes 827748e
@nbrown nbrown Treat argv[1] as an m0 string instead of a C string e6473c6
@cotto cotto fix perl5-m0's encoding of cli arguments 9d8bde2
@cotto cotto add a debugging macro for c-m0 07708ab
@cotto cotto fix the args test, add some disabled debugging code 273be9f
@cotto cotto remove reference to load_const, fix some formatting df7bafd
@cotto cotto try to clarify how string constants work c1e846b