Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
[PATCH] Small updates to parrot MD5 library
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  2 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Nick Glencross  
View profile  
 More options Mar 28 2005, 6:11 am
Newsgroups: perl.perl6.internals
From: parrotbug-follo...@parrotcode.org (Nick Glencross)
Date: Mon, 28 Mar 2005 03:11:35 -0800
Local: Mon, Mar 28 2005 6:11 am
Subject: [perl #34592] [PATCH] Small updates to parrot MD5 library

# New Ticket Created by  Nick Glencross
# Please include the string:  [perl #34592]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=34592 >

Folks,

This patch makes some small cosmetic changes to the md5 library, harness
and tests (comments and formatting).

There's also a new test on a long string.

[If anyone can provide access to big endian or 64-bit systems, I'd like
very much to try it out/fix so that the test doesn't need to skip these
platforms]

Thanks,

Nick

[ md5.patch 6K ]
Index: examples/assembly/md5sum.imc
===================================================================
RCS file: /cvs/public/parrot/examples/assembly/md5sum.imc,v
retrieving revision 1.1
diff -c -r1.1 md5sum.imc
*** examples/assembly/md5sum.imc        22 Mar 2005 10:15:40 -0000      1.1
--- examples/assembly/md5sum.imc        28 Mar 2005 10:59:44 -0000
***************
*** 1,7 ****
  # Parrot md5sum; Nick Glencross <ni...@glencros.demon.co.uk>
  #
! # Based on md5.c, from md5sum
! #           written by Ulrich Drepper <drep...@gnu.ai.mit.edu>, 1995.

  =head1 NAME

--- 1,7 ----
  # Parrot md5sum; Nick Glencross <ni...@glencros.demon.co.uk>
+ #                Improvements from Leo
  #
! # Harness for the library/Digest/MD5.imc library

  =head1 NAME

***************
*** 15,31 ****

  Behave very much like md5sum(1).

  =cut

  ###########################################################################

!
! # Main Harness to show that it works

  .sub _main @MAIN
      .param pmc args

!     .local int   size
      load_bytecode "library/Digest/MD5.imc"
      # Argument count
      $I0 = args
--- 15,33 ----

  Behave very much like md5sum(1).

+ Running parrot with -j will give a significant performance boost (often
+ about ten-fold).
+
  =cut

  ###########################################################################

! # Main Harness to demonstrate MD5.imc

  .sub _main @MAIN
      .param pmc args

!     .local int size
      load_bytecode "library/Digest/MD5.imc"
      # Argument count
      $I0 = args
***************
*** 46,52 ****
      if $I1 > $I0 goto iter_done
      $S0 = args[$I1]
      .include "stat.pasm"
!     # get size of file
      stat size, $S0, .STAT_FILESIZE
      open $P0, $S0, "<"
      defined $I2, $P0
--- 48,54 ----
      if $I1 > $I0 goto iter_done
      $S0 = args[$I1]
      .include "stat.pasm"
!     # Get size of file
      stat size, $S0, .STAT_FILESIZE
      open $P0, $S0, "<"
      defined $I2, $P0
Index: runtime/parrot/library/Digest/MD5.imc
===================================================================
RCS file: /cvs/public/parrot/runtime/parrot/library/Digest/MD5.imc,v
retrieving revision 1.1
diff -c -r1.1 MD5.imc
*** runtime/parrot/library/Digest/MD5.imc       22 Mar 2005 10:15:42 -0000      1.1
--- runtime/parrot/library/Digest/MD5.imc       28 Mar 2005 10:59:46 -0000
***************
*** 1,4 ****
--- 1,5 ----
  # Parrot md5sum; Nick Glencross <ni...@glencros.demon.co.uk>
+ #                Improvements from Leo
  #
  # Based on md5.c, from md5sum
  #           written by Ulrich Drepper <drep...@gnu.ai.mit.edu>, 1995.
***************
*** 36,42 ****

  =item * Might work on 64 bit platforms

! =item * Might not work on big endian systems

  =back

--- 37,43 ----

  =item * Might work on 64 bit platforms

! =item * Might not work on big endian systems (confirmed)

  =back

***************
*** 95,100 ****
--- 96,102 ----
      _md5_process_buffer (context, buffer)

      .return(context)
+
  .end

***************
*** 275,281 ****
       shift = 8*subcounter
       word = word << shift
       if endian goto endian_ok2
!        .swap (word)
  endian_ok2:

       buffer[slow_counter] = word
--- 277,283 ----
       shift = 8*subcounter
       word = word << shift
       if endian goto endian_ok2
!      .swap (word)
  endian_ok2:

       buffer[slow_counter] = word
***************
*** 300,314 ****
      .param pmc    context
      .param pmc  buffer

!     .local int A
!     .local int B
!     .local int C
!     .local int D
!
!     .local int A_save
!     .local int B_save
!     .local int C_save
!     .local int D_save

      .local int tmp, idx, len

--- 302,309 ----
      .param pmc    context
      .param pmc  buffer

!     .local int A, B, C, D
!     .local int A_save, B_save, C_save, D_save

      .local int tmp, idx, len

***************
*** 413,419 ****
      context[2] = C
      context[3] = D

!     # _print_vals (A,B,C,D)
      # print "\n"

  .end
--- 408,414 ----
      context[2] = C
      context[3] = D

!     # print_vals (A,B,C,D)
      # print "\n"

  .end
***************
*** 470,475 ****
--- 465,471 ----
  dont_swap:

      _print_vals (A,B,C,D)
+
  .end

  ###########################################################################
***************
*** 501,506 ****
--- 497,503 ----
  print_buffer_done:

      print "\n"
+
  .end

  ###########################################################################
***************
*** 523,526 ****
--- 520,524 ----
      sprintf $S0, $S1, $P0

      .return($S0)
+
  .end
Index: t/library/md5.t
===================================================================
RCS file: /cvs/public/parrot/t/library/md5.t,v
retrieving revision 1.1
diff -c -r1.1 md5.t
*** t/library/md5.t     22 Mar 2005 10:15:44 -0000      1.1
--- t/library/md5.t     28 Mar 2005 10:59:47 -0000
***************
*** 6,24 ****
  # $ echo -n Hello World! | md5sum
  # a0f32c7d31302c1427285b1a0fcbb015  -

  use strict;
! use Parrot::Test tests => 3;

  use Parrot::Config;

- my $bigendian = $PConfig{bigendian};
  my $intsize   = $PConfig{intsize};

  SKIP: {

  if ($bigendian || $intsize != 4)
  {
!     skip('MD5 only known to work on small endian 32 bit processors', 3)
  }

--- 6,27 ----
  # $ echo -n Hello World! | md5sum
  # a0f32c7d31302c1427285b1a0fcbb015  -

+ # As well as testing the MD5 library itself, it is useful for spotting
+ # regressisions in the parrot VM, JIT and GC
+
  use strict;
! use Parrot::Test tests => 4;

  use Parrot::Config;

  my $intsize   = $PConfig{intsize};
+ my $bigendian = $PConfig{bigendian};

  SKIP: {

  if ($bigendian || $intsize != 4)
  {
!     skip('MD5 only known to work on small endian 32 bit processors', 4)
  }

***************
*** 53,58 ****
--- 56,63 ----
  ed076287532e86365e841e92bfc50d8c
  OUT

+
+
  pir_output_is(<<'CODE', <<'OUT', "Funny chars");
  .sub _main
      load_bytecode "library/Digest/MD5.imc"
***************
*** 78,83 ****
--- 83,89 ----
  ;
       }
       (
+       "",
        "0",
        "01",
        "012",
***************
*** 200,205 ****
--- 206,212 ----
      end
  .end
  CODE
+ d41d8cd98f00b204e9800998ecf8427e
  cfcd208495d565ef66e7dff9f98764da
  96a3be3cf272e017046d1b2674a52bd3
  d2490f048dc3b77a457e3e450ab4eb38
***************
*** 312,315 ****
--- 319,338 ----
  09e32555adc12a6f2c8fed9a459935af
  6c27622d1d5365e4abfd02f2eccfd8f9
  OUT
+
+
+ my $text = "Hello Parrot World! " x 50_000;
+
+ pir_output_is(<<CODE, <<'OUT', "REALLY long string");
+ .sub _main
+     load_bytecode "library/Digest/MD5.imc"
+     \$P0 = _md5sum ("$text")
+     _md5_print (\$P0)
+     print "\\n"
+     end
+ .end
+ CODE
+ 840e4dec51660b1f52473e0b0b9545f5
+ OUT
+
  }


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Leopold Toetsch  
View profile  
 More options Mar 28 2005, 7:23 am
Newsgroups: perl.perl6.internals
From: l...@toetsch.at (Leopold Toetsch)
Date: Mon, 28 Mar 2005 14:23:05 +0200
Local: Mon, Mar 28 2005 7:23 am
Subject: Re: [perl #34592] [PATCH] Small updates to parrot MD5 library

Nick Glencross <parrotbug-follo...@parrotcode.org> wrote:
> This patch makes some small cosmetic changes to the md5 library, harness
> and tests (comments and formatting).

Thanks, applied.
leo

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google