[parrot/parrot] 703fb9: use double-precision float instead of single-preci...

GitHub noreply at github.com
Sun Apr 29 19:10:28 UTC 2012


  Branch: refs/heads/m0
  Home:   https://github.com/parrot/parrot
  Commit: 703fb9112e8b59d571caf0ced9fc3d156239bac0
      https://github.com/parrot/parrot/commit/703fb9112e8b59d571caf0ced9fc3d156239bac0
  Author: Jimmy Zhuo <zhuomingliang at yahoo.com.cn>
  Date:   2012-04-02 (Mon, 02 Apr 2012)

  Changed paths:
    M src/m0/perl5/m0_assembler.pl

  Log Message:
  -----------
  use double-precision float instead of single-precision float


  Commit: 3d427d73e660f57ef70da549aaefc08bfa405627
      https://github.com/parrot/parrot/commit/3d427d73e660f57ef70da549aaefc08bfa405627
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-02 (Mon, 02 Apr 2012)

  Changed paths:
    M src/m0/perl5/m0_interp.pl

  Log Message:
  -----------
  Use double precision floating point values for the perl m0_interp.pl per the spec


  Commit: 3f8ddf24a776775d2f02ba562543e434ba3ee6f8
      https://github.com/parrot/parrot/commit/3f8ddf24a776775d2f02ba562543e434ba3ee6f8
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-02 (Mon, 02 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_deref.m0
    M t/m0/integration/m0_set.m0
    M t/m0/integration/m0_set_imm.m0
    M t/m0/integration/m0_set_ref.m0

  Log Message:
  -----------
  Use sub_i with integer constants instead of sub_n


  Commit: 48a8cc2ccfd06f772251be2a247df2f09fa1f6c3
      https://github.com/parrot/parrot/commit/48a8cc2ccfd06f772251be2a247df2f09fa1f6c3
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-03 (Tue, 03 Apr 2012)

  Changed paths:
    M src/m0/c/m0_interp.c
    M src/m0/c/m0_ops.c
    M t/m0/integration/m0_add_n.m0
    M t/m0/integration/m0_convert_i_n.m0
    M t/m0/integration/m0_deref.m0
    M t/m0/integration/m0_div_n.m0
    M t/m0/integration/m0_hash.m0
    M t/m0/integration/m0_mod_n.m0
    M t/m0/integration/m0_mult_n.m0
    M t/m0/integration/m0_poke_caller.m0
    M t/m0/integration/m0_set.m0
    M t/m0/integration/m0_set_imm.m0
    M t/m0/integration/m0_set_ref.m0
    M t/m0/integration/m0_sub_n.m0

  Log Message:
  -----------
  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
tests.


  Commit: 65a169a6839c0847b4457eb8c164a91aab7aaa7c
      https://github.com/parrot/parrot/commit/65a169a6839c0847b4457eb8c164a91aab7aaa7c
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-05 (Thu, 05 Apr 2012)

  Changed paths:
    M src/m0/c/m0_mob.c
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  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.


  Commit: 092a2c0b15f2dd4124425cbba73e42ec0974248a
      https://github.com/parrot/parrot/commit/092a2c0b15f2dd4124425cbba73e42ec0974248a
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-05 (Thu, 05 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  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.


  Commit: c1973c061fa76b53d78d5e46d9eb76d615e8c2fd
      https://github.com/parrot/parrot/commit/c1973c061fa76b53d78d5e46d9eb76d615e8c2fd
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-05 (Thu, 05 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  Add a simple placeholder implementation for the gc_alloc op
This op is required for the poke_caller test.


  Commit: 3d278b2826dceda68c6085e1ffa99cc7f7ac4e2f
      https://github.com/parrot/parrot/commit/3d278b2826dceda68c6085e1ffa99cc7f7ac4e2f
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-08 (Sun, 08 Apr 2012)

  Changed paths:
    M src/m0/c/include/m0_interp_structures.h
    M src/m0/c/m0_interp.c
    M src/m0/c/m0_mob.c
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  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.


  Commit: ad01bd6062d08bbff923b680d2bfc4784204d28c
      https://github.com/parrot/parrot/commit/ad01bd6062d08bbff923b680d2bfc4784204d28c
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-08 (Sun, 08 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_add_n.m0
    M t/m0/integration/m0_convert_i_n.m0
    M t/m0/integration/m0_deref.m0
    M t/m0/integration/m0_div_n.m0
    M t/m0/integration/m0_mod_n.m0
    M t/m0/integration/m0_mult_n.m0
    M t/m0/integration/m0_poke_caller.m0
    M t/m0/integration/m0_set.m0
    M t/m0/integration/m0_set_imm.m0
    M t/m0/integration/m0_set_ref.m0
    M t/m0/integration/m0_sub_n.m0

  Log Message:
  -----------
  Update deref calls to use registers instead of values.


  Commit: eb814820fdfdf15ccdbc55017e41b1f599aeeaff
      https://github.com/parrot/parrot/commit/eb814820fdfdf15ccdbc55017e41b1f599aeeaff
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-08 (Sun, 08 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_poke_caller.m0

  Log Message:
  -----------
  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.


  Commit: 777dfbfbae4f750ac8fc06bd47417e84fafe4ae1
      https://github.com/parrot/parrot/commit/777dfbfbae4f750ac8fc06bd47417e84fafe4ae1
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-08 (Sun, 08 Apr 2012)

  Changed paths:
    M src/m0/c/include/m0.h
    M src/m0/c/include/m0_compiler_defines.h
    M src/m0/c/include/m0_constants.h
    M src/m0/c/include/m0_interp.h
    M src/m0/c/include/m0_interp_structures.h
    M src/m0/c/include/m0_mob.h
    M src/m0/c/include/m0_mob_structures.h
    M src/m0/c/include/m0_ops.h
    M src/m0/c/m0_interp.c
    M src/m0/c/m0_mob.c
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  Add vim mode line for consistent indenting


  Commit: 0ade1d5171e69c06cdbc74486304004423dd7b0d
      https://github.com/parrot/parrot/commit/0ade1d5171e69c06cdbc74486304004423dd7b0d
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-08 (Sun, 08 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_hash.m0

  Log Message:
  -----------
  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.


  Commit: 163df79814ed2b0c539f7c41df00f86188df398d
      https://github.com/parrot/parrot/commit/163df79814ed2b0c539f7c41df00f86188df398d
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  Fix the order of the get_byte arguments.


  Commit: f48bbc258bbab3191bd08a24f66ff24bd6635f80
      https://github.com/parrot/parrot/commit/f48bbc258bbab3191bd08a24f66ff24bd6635f80
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_interp.c

  Log Message:
  -----------
  Remove the first commandline argument from ARGV


  Commit: d18445fcf466cd3ac121538d733608728ecad140
      https://github.com/parrot/parrot/commit/d18445fcf466cd3ac121538d733608728ecad140
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_args.m0

  Log Message:
  -----------
  Add debugging code to the args test
If the argc test fails, tell how many arguments were found.


  Commit: a738f9128c0ce7f6e489754c66791f3aec90337c
      https://github.com/parrot/parrot/commit/a738f9128c0ce7f6e489754c66791f3aec90337c
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_args.m0

  Log Message:
  -----------
  Check to see if the first argument is "kittens"
The algorithm is simple and makes some assumptions, but it works.


  Commit: 68f8cfe6457cb583c2217625ada193dc87a404b4
      https://github.com/parrot/parrot/commit/68f8cfe6457cb583c2217625ada193dc87a404b4
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_mob.c

  Log Message:
  -----------
  Use the right pointer type for return type in add_chunk


  Commit: 5e0e065d69b4d465dee11ebd8b72e268723cb32b
      https://github.com/parrot/parrot/commit/5e0e065d69b4d465dee11ebd8b72e268723cb32b
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  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.


  Commit: a66e9695eb059d79183cae08efdcfcd4cd1c1ad5
      https://github.com/parrot/parrot/commit/a66e9695eb059d79183cae08efdcfcd4cd1c1ad5
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_mob.c

  Log Message:
  -----------
  Eliminate casting warning with an explicit cast.


  Commit: ab0c08ac1247cf549a7348561f2020ea03f279ca
      https://github.com/parrot/parrot/commit/ab0c08ac1247cf549a7348561f2020ea03f279ca
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-09 (Mon, 09 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c

  Log Message:
  -----------
  Expand tab.


  Commit: 748ae418b15e12ad5b2784f6871eb22c2cb7d17e
      https://github.com/parrot/parrot/commit/748ae418b15e12ad5b2784f6871eb22c2cb7d17e
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-10 (Tue, 10 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod

  Log Message:
  -----------
  Use hyperlink L<> instead of code C<> where appropriate


  Commit: faa67111fd6086f84053e66d0ef07bda43496c72
      https://github.com/parrot/parrot/commit/faa67111fd6086f84053e66d0ef07bda43496c72
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-10 (Tue, 10 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod

  Log Message:
  -----------
  make the opcode numbers match the perl implementation


  Commit: c3af9ae0733a0490af42e44bad266063961d3f84
      https://github.com/parrot/parrot/commit/c3af9ae0733a0490af42e44bad266063961d3f84
  Author: Nathan Brown <nbrown04 at gmail.com>
  Date:   2012-04-14 (Sat, 14 Apr 2012)

  Changed paths:
    M src/m0/c/include/m0_interp_structures.h

  Log Message:
  -----------
  Remove accidental include


  Commit: 0fa8ca1bf44cd9ab31986e139335df632692fc08
      https://github.com/parrot/parrot/commit/0fa8ca1bf44cd9ab31986e139335df632692fc08
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-15 (Sun, 15 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod

  Log Message:
  -----------
  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.


  Commit: 88c8816001926d3aca71d250b173040a61cf1966
      https://github.com/parrot/parrot/commit/88c8816001926d3aca71d250b173040a61cf1966
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-15 (Sun, 15 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod

  Log Message:
  -----------
  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.


  Commit: 780e12ae10cfba322772f1ed2d2f7304329a9c44
      https://github.com/parrot/parrot/commit/780e12ae10cfba322772f1ed2d2f7304329a9c44
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-23 (Mon, 23 Apr 2012)

  Changed paths:
    M t/m0/integration/m0_add_n.m0
    M t/m0/integration/m0_convert_i_n.m0
    M t/m0/integration/m0_deref.m0
    M t/m0/integration/m0_div_n.m0
    M t/m0/integration/m0_hash.m0
    M t/m0/integration/m0_mod_n.m0
    M t/m0/integration/m0_mult_n.m0
    M t/m0/integration/m0_poke_caller.m0
    M t/m0/integration/m0_set.m0
    M t/m0/integration/m0_set_imm.m0
    M t/m0/integration/m0_set_ref.m0
    M t/m0/integration/m0_sub_n.m0

  Log Message:
  -----------
  Revert double derefs


  Commit: 6a75a09a24d410b01ac68eb6ca0765a30a899e0c
      https://github.com/parrot/parrot/commit/6a75a09a24d410b01ac68eb6ca0765a30a899e0c
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-23 (Mon, 23 Apr 2012)

  Changed paths:
    M src/m0/c/include/m0_mob_structures.h
    M src/m0/c/m0_interp.c
    M src/m0/c/m0_mob.c

  Log Message:
  -----------
  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
semantics.


  Commit: fa5c366a7384acafbf59f3a631613af1a23534f0
      https://github.com/parrot/parrot/commit/fa5c366a7384acafbf59f3a631613af1a23534f0
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-24 (Tue, 24 Apr 2012)

  Changed paths:
    M src/m0/c/m0_ops.c
    M t/m0/integration/m0_poke_caller.m0

  Log Message:
  -----------
  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.


  Commit: 5b3a6b5f8ce61ebda249a5160f39c2ed99991c01
      https://github.com/parrot/parrot/commit/5b3a6b5f8ce61ebda249a5160f39c2ed99991c01
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-24 (Tue, 24 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod

  Log Message:
  -----------
  Note that the PC should be incremented by one on each iteration of the runloop


  Commit: 2f1e85a58e728873c5439d95091b4fc0536d00b6
      https://github.com/parrot/parrot/commit/2f1e85a58e728873c5439d95091b4fc0536d00b6
  Author: nbrown <nbrown04 at gmail.com>
  Date:   2012-04-26 (Thu, 26 Apr 2012)

  Changed paths:
    A t/m0/integration/m0_pc_increment.m0

  Log Message:
  -----------
  Add a test that ensures PC is incremented 1 per operation


  Commit: 9bde02013fe12d81c15c0264277390bfd276a7be
      https://github.com/parrot/parrot/commit/9bde02013fe12d81c15c0264277390bfd276a7be
  Author: Christoph Otto <christoph_github at mksig.org>
  Date:   2012-04-29 (Sun, 29 Apr 2012)

  Changed paths:
    M docs/pdds/draft/pdd32_m0.pod
    M src/m0/c/include/m0.h
    M src/m0/c/include/m0_compiler_defines.h
    M src/m0/c/include/m0_constants.h
    M src/m0/c/include/m0_interp.h
    M src/m0/c/include/m0_interp_structures.h
    M src/m0/c/include/m0_mob.h
    M src/m0/c/include/m0_mob_structures.h
    M src/m0/c/include/m0_ops.h
    M src/m0/c/m0_interp.c
    M src/m0/c/m0_mob.c
    M src/m0/c/m0_ops.c
    M src/m0/perl5/m0_assembler.pl
    M src/m0/perl5/m0_interp.pl
    M t/m0/integration/m0_and.m0
    M t/m0/integration/m0_args.m0
    M t/m0/integration/m0_deref.m0
    M t/m0/integration/m0_lshr.m0
    M t/m0/integration/m0_or.m0
    A t/m0/integration/m0_pc_increment.m0
    M t/m0/integration/m0_poke_caller.m0
    M t/m0/integration/m0_set.m0
    M t/m0/integration/m0_set_imm.m0
    M t/m0/integration/m0_set_ref.m0
    M t/m0/integration/m0_shl.m0
    M t/m0/integration/m0_xor.m0

  Log Message:
  -----------
  Merge remote-tracking branch 'nbrown/m0-c-single-deref' into m0


Compare: https://github.com/parrot/parrot/compare/703fb91^...9bde020


More information about the parrot-commits mailing list